commit c7f6d5227ca4e050caaa39cd1a88a008fbc6e490 Author: Skylar Hill Date: Sun Nov 19 22:49:43 2023 -0600 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b6f6704 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +nushell/history.txt +nushell/zoxide.nu +tmux/newsboat +tmux/plugins diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml new file mode 100644 index 0000000..473afca --- /dev/null +++ b/alacritty/alacritty.yml @@ -0,0 +1,914 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Import additional configuration files +# +# Imports are loaded in order, skipping all missing files, with the importing +# file being loaded last. If a field is already present in a previous import, it +# will be replaced. +# +# All imports must either be absolute paths starting with `/`, or paths relative +# to the user's home directory starting with `~/`. +#import: +# - /path/to/alacritty.yml + +import: + - ~/.config/alacritty/catppuccin-mocha.yml + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + #TERM: alacritty + +window: + # Window dimensions (changes require restart) + # + # Number of lines/columns (not pixels) in the terminal. Both lines and columns + # must be non-zero for this to take effect. The number of columns must be at + # least `2`, while using a value of `0` for columns and lines will fall back + # to the window manager's recommended size + #dimensions: + # columns: 0 + # lines: 0 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + #padding: + # x: 0 + # y: 0 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background and no title bar buttons + #decorations: full + + # Background opacity + # + # Window opacity as a floating point number from `0.0` to `1.0`. + # The value `0.0` is completely transparent and `1.0` is opaque. + opacity: 0.8 + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + #startup_mode: Windowed + + # Window title + #title: Alacritty + + # Allow terminal applications to change Alacritty's window title. + #dynamic_title: true + + # Window class (Linux/BSD only): + #class: + # Application instance name + #instance: Alacritty + # General application class + #general: Alacritty + + # Decorations theme variant + # + # Override the variant of the System theme/GTK theme/Wayland client side + # decorations. Commonly supported values are `Dark`, `Light`, and `None` for + # auto pick-up. Set this to `None` to use the default theme variant. + #decorations_theme_variant: None + + # Resize increments + # + # Prefer resizing window by discrete steps equal to cell dimensions. + #resize_increments: false + + # Make `Option` key behave as `Alt` (macOS only): + # - OnlyLeft + # - OnlyRight + # - Both + # - None (default) + #option_as_alt: None + +#scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + #history: 10000 + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + family: MonaspaceXenon Nerd Font + + # The `style` can be specified to pick a specific face. + #style: Regular + + # Bold font face + #bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold + + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Italic + + # Bold italic font face + #bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold Italic + + # Point size + size: 12.0 + + # Offset is the extra space around each character. `offset.y` can be thought + # of as modifying the line spacing, and `offset.x` as modifying the letter + # spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the + # right, increasing `y` moves the glyph upward. + #glyph_offset: + # x: 0 + # y: 0 + + # Use built-in font for box drawing characters. + # + # If `true`, Alacritty will use a custom built-in font for box drawing + # characters (Unicode points 2500 - 259f). + # + #builtin_box_drawing: true + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false + +# Colors (Tomorrow Night) +#colors: + # Default colors + #primary: + # background: '#1d1f21' + # foreground: '#c5c8c6' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not + # present. If the bright foreground color is not set, or + # `draw_bold_text_with_bright_colors` is `false`, the normal foreground + # color will be used. + #dim_foreground: '#828482' + #bright_foreground: '#eaeaea' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #cursor: + # text: CellBackground + # cursor: CellForeground + + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #vi_mode_cursor: + # text: CellBackground + # cursor: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + #search: + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #matches: + # foreground: '#000000' + # background: '#ffffff' + #focused_match: + # foreground: '#ffffff' + # background: '#000000' + + # Keyboard hints + #hints: + # First character in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #start: + # foreground: '#1d1f21' + # background: '#e9ff5e' + + # All characters after the first one in the hint label + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #end: + # foreground: '#e9ff5e' + # background: '#1d1f21' + + # Line indicator + # + # Color used for the indicator displaying the position in history during + # search and vi mode. + # + # By default, these will use the opposing primary color. + #line_indicator: + # foreground: None + # background: None + + # Footer bar + # + # Color used for the footer bar on the bottom, used by search regex input, + # hyperlink URI preview, etc. + # + #footer_bar: + # background: '#c5c8c6' + # foreground: '#1d1f21' + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground/CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Normal colors + #normal: + # black: '#1d1f21' + # red: '#cc6666' + # green: '#b5bd68' + # yellow: '#f0c674' + # blue: '#81a2be' + # magenta: '#b294bb' + # cyan: '#8abeb7' + # white: '#c5c8c6' + + # Bright colors + #bright: + # black: '#666666' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0b1' + # white: '#eaeaea' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#131415' + # red: '#864343' + # green: '#777c44' + # yellow: '#9e824c' + # blue: '#556a7d' + # magenta: '#75617b' + # cyan: '#5b7d78' + # white: '#828482' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + + # Transparent cell backgrounds + # + # Whether or not `window.opacity` applies to all cell backgrounds or only to + # the default background. When set to `true` all cells will be transparent + # regardless of their background color. + #transparent_background_colors: false + +# Bell +# +# The bell is rung every time the BEL control character is received. +#bell: + # Visual Bell Animation + # + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo + + # Duration of the visual bell flash in milliseconds. A `duration` of `0` will + # disable the visual bell animation. + #duration: 0 + + # Visual bell animation color. + #color: '#ffffff' + + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + #command: None + +#selection: + # This string contains all characters that are used as separators for + # "semantic words" in Alacritty. + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +#cursor: + # Cursor style + #style: + # Cursor shape + # + # Values for `shape`: + # - ▇ Block + # - _ Underline + # - | Beam + #shape: Block + + # Cursor blinking state + # + # Values for `blinking`: + # - Never: Prevent the cursor from ever blinking + # - Off: Disable blinking by default + # - On: Enable blinking by default + # - Always: Force the cursor to always blink + #blinking: Off + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + #vi_mode_style: None + + # Cursor blinking interval in milliseconds. + #blink_interval: 750 + + # Time after which cursor stops blinking, in seconds. + # + # Specifying '0' will disable timeout for blinking. + #blink_timeout: 5 + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# Live config reload (changes require restart) +#live_config_reload: true + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. +# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the +# shell. +# +# Default: +# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset +# - (Windows) powershell +shell: + program: nu +# args: +# - --login + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# Offer IPC using `alacritty msg` (unix only) +#ipc_socket: true + +#mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + #double_click: { threshold: 300 } + #triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + #hide_when_typing: false + +# Hints +# +# Terminal hints can be used to find text or hyperlink in the visible part of +# the terminal and pipe it to other applications. +#hints: + # Keys used for the hint labels. + #alphabet: "jfkdls;ahgurieowpq" + + # List with all available hints + # + # Each hint must have any of `regex` or `hyperlinks` field and either an + # `action` or a `command` field. The fields `mouse`, `binding` and + # `post_processing` are optional. + # + # The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be + # highlighted. + # + # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and + # `mouse.mods` accept the same values as they do in the `key_bindings` section. + # + # The `mouse.enabled` field controls if the hint should be underlined while + # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it. + # + # If the `post_processing` field is set to `true`, heuristics will be used to + # shorten the match if there are characters likely not to be part of the hint + # (e.g. a trailing `.`). This is most useful for URIs and applies only to + # `regex` matches. + # + # Values for `action`: + # - Copy + # Copy the hint's text to the clipboard. + # - Paste + # Paste the hint's text to the terminal or search. + # - Select + # Select the hint's text. + # - MoveViModeCursor + # Move the vi mode cursor to the beginning of the hint. + #enabled: + # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\ + # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+" + # hyperlinks: true + # command: xdg-open + # post_processing: true + # mouse: + # enabled: true + # mods: None + # binding: + # key: U + # mods: Control|Shift + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty +# captures the mouse, the `Shift` modifier is automatically added as a +# requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings for actions not exclusive to mouse mode) +# +# - Mouse exclusive actions: +# +# - ExpandSelection +# Expand the selection to the current mouse cursor location. +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Right, action: ExpandSelection } +# - { mouse: Right, mods: Control, action: ExpandSelection } +# - { mouse: Middle, mode: ~Vi, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/winit/*/winit/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - ToggleViMode +# - SearchForward +# Start searching toward the right of the search origin. +# - SearchBackward +# Start searching toward the left of the search origin. +# - Copy +# - Paste +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# Remove the terminal's scrollback history. +# - Hide +# Hide the Alacritty window. +# - Minimize +# Minimize the Alacritty window. +# - Quit +# Quit Alacritty. +# - ToggleFullscreen +# - ToggleMaximized +# - SpawnNewInstance +# Spawn a new instance of Alacritty. +# - CreateNewWindow +# Create a new Alacritty window from the current process. +# - ClearLogNotice +# Clear Alacritty's UI warning and error notice. +# - ClearSelection +# Remove the active selection. +# - ReceiveChar +# - None +# +# - Vi mode exclusive actions: +# +# - Open +# Perform the action of the first matching hint under the vi mode cursor +# with `mouse.enabled` set to `true`. +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# Toggle semantic selection based on `selection.semantic_escape_chars`. +# - CenterAroundViCursor +# Center view around vi mode cursor +# +# - Vi mode exclusive cursor motion actions: +# +# - Up +# One line up. +# - Down +# One line down. +# - Left +# One character left. +# - Right +# One character right. +# - First +# First column, or beginning of the line when already at the first column. +# - Last +# Last column, or beginning of the line when already at the last column. +# - FirstOccupied +# First non-empty cell in this terminal row, or first non-empty cell of +# the line when already at the first cell of the row. +# - High +# Top of the screen. +# - Middle +# Center of the screen. +# - Low +# Bottom of the screen. +# - SemanticLeft +# Start of the previous semantically separated word. +# - SemanticRight +# Start of the next semantically separated word. +# - SemanticLeftEnd +# End of the previous semantically separated word. +# - SemanticRightEnd +# End of the next semantically separated word. +# - WordLeft +# Start of the previous whitespace separated word. +# - WordRight +# Start of the next whitespace separated word. +# - WordLeftEnd +# End of the previous whitespace separated word. +# - WordRightEnd +# End of the next whitespace separated word. +# - Bracket +# Character matching the bracket at the cursor's location. +# - SearchNext +# Beginning of the next match. +# - SearchPrevious +# Beginning of the previous match. +# - SearchStart +# Start of the match to the left of the vi mode cursor. +# - SearchEnd +# End of the match to the right of the vi mode cursor. +# +# - Search mode exclusive actions: +# - SearchFocusNext +# Move the focus to the next search match. +# - SearchFocusPrevious +# Move the focus to the previous search match. +# - SearchConfirm +# - SearchCancel +# - SearchClear +# Reset the search regex. +# - SearchDeleteWord +# Delete the last word in the search regex. +# - SearchHistoryPrevious +# Go to the previous regex in the search history. +# - SearchHistoryNext +# Go to the next regex in the search history. +# +# - macOS exclusive actions: +# - ToggleSimpleFullscreen +# Enter fullscreen without occupying another space. +# +# - Linux/BSD exclusive actions: +# +# - CopySelection +# Copy from the selection buffer. +# - PasteSelection +# Paste from the selection buffer. +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Search +# - Alt +# - Vi +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +#key_bindings: + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } + #- { key: Escape, mode: Vi|~Search, action: ClearSelection } + #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } + #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } + #- { key: G, mode: Vi|~Search, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi|~Search, action: Copy } + #- { key: Y, mode: Vi|~Search, action: ClearSelection } + #- { key: Copy, mode: Vi|~Search, action: ClearSelection } + #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi|~Search, action: Open } + #- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor } + #- { key: K, mode: Vi|~Search, action: Up } + #- { key: J, mode: Vi|~Search, action: Down } + #- { key: H, mode: Vi|~Search, action: Left } + #- { key: L, mode: Vi|~Search, action: Right } + #- { key: Up, mode: Vi|~Search, action: Up } + #- { key: Down, mode: Vi|~Search, action: Down } + #- { key: Left, mode: Vi|~Search, action: Left } + #- { key: Right, mode: Vi|~Search, action: Right } + #- { key: Key0, mode: Vi|~Search, action: First } + #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last } + #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi|~Search, action: High } + #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle } + #- { key: L, mods: Shift, mode: Vi|~Search, action: Low } + #- { key: B, mode: Vi|~Search, action: SemanticLeft } + #- { key: W, mode: Vi|~Search, action: SemanticRight } + #- { key: E, mode: Vi|~Search, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight } + #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket } + #- { key: Slash, mode: Vi|~Search, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward } + #- { key: N, mode: Vi|~Search, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious } + + # Search Mode + #- { key: Return, mode: Search|Vi, action: SearchConfirm } + #- { key: Escape, mode: Search, action: SearchCancel } + #- { key: C, mods: Control, mode: Search, action: SearchCancel } + #- { key: U, mods: Control, mode: Search, action: SearchClear } + #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord } + #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious } + #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext } + #- { key: Up, mode: Search, action: SearchHistoryPrevious } + #- { key: Down, mode: Search, action: SearchHistoryNext } + #- { key: Return, mode: Search|~Vi, action: SearchFocusNext } + #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward } + #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Plus, mods: Control, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" } + #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Plus, mods: Command, action: IncreaseFontSize } + #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: H, mods: Command|Alt, action: HideOtherApplications } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: CreateNewWindow } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, mode: ~Search, action: SearchForward } + #- { key: B, mods: Command, mode: ~Search, action: SearchBackward } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - Off + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Renderer override. + # - glsl3 + # - gles2 + # - gles2_pure + #renderer: None + + # Print all received window events. + #print_events: false + + # Highlight window damage information. + #highlight_damage: false diff --git a/alacritty/catppuccin-mocha.yml b/alacritty/catppuccin-mocha.yml new file mode 100644 index 0000000..e787352 --- /dev/null +++ b/alacritty/catppuccin-mocha.yml @@ -0,0 +1,78 @@ +colors: + primary: + background: "#1E1E2E" # base + foreground: "#CDD6F4" # text + # Bright and dim foreground colors + dim_foreground: "#CDD6F4" # text + bright_foreground: "#CDD6F4" # text + + # Cursor colors + cursor: + text: "#1E1E2E" # base + cursor: "#F5E0DC" # rosewater + vi_mode_cursor: + text: "#1E1E2E" # base + cursor: "#B4BEFE" # lavender + + # Search colors + search: + matches: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + focused_match: + foreground: "#1E1E2E" # base + background: "#A6E3A1" # green + footer_bar: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + + # Keyboard regex hints + hints: + start: + foreground: "#1E1E2E" # base + background: "#F9E2AF" # yellow + end: + foreground: "#1E1E2E" # base + background: "#A6ADC8" # subtext0 + + # Selection colors + selection: + text: "#1E1E2E" # base + background: "#F5E0DC" # rosewater + + # Normal colors + normal: + black: "#45475A" # surface1 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#BAC2DE" # subtext1 + + # Bright colors + bright: + black: "#585B70" # surface2 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#A6ADC8" # subtext0 + + # Dim colors + dim: + black: "#45475A" # surface1 + red: "#F38BA8" # red + green: "#A6E3A1" # green + yellow: "#F9E2AF" # yellow + blue: "#89B4FA" # blue + magenta: "#F5C2E7" # pink + cyan: "#94E2D5" # teal + white: "#BAC2DE" # subtext1 + + indexed_colors: + - { index: 16, color: "#FAB387" } + - { index: 17, color: "#F5E0DC" } diff --git a/bat/themes/Catppuccin-mocha.tmTheme b/bat/themes/Catppuccin-mocha.tmTheme new file mode 100644 index 0000000..3b9b72c --- /dev/null +++ b/bat/themes/Catppuccin-mocha.tmTheme @@ -0,0 +1,959 @@ + + + + + name + Catppuccin + settings + + + settings + + foreground + #cdd6f4 + background + #1e1e2e + caret + #bac2de + invisibles + #a6adc8 + gutterForeground + #9399b2 + gutterForegroundHighlight + #a6e3a1 + lineHighlight + #585b70 + selection + #6c7086 + selectionBorder + #1e1e2e + activeGuide + #fab387 + findHighlightForeground + #181825 + findHighlight + #f9e2af + bracketsForeground + #9399b2 + bracketContentsForeground + #9399b2 + + + + name + Comment + scope + comment + settings + + foreground + #6c7086 + fontStyle + italic + + + + name + String + scope + string + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + String regex + scope + string.regexp + settings + + foreground + #fab387 + fontStyle + + + + + name + Number + scope + constant.numeric + settings + + foreground + #fab387 + fontStyle + + + + + name + Boolean + scope + constant.language.boolean + settings + + foreground + #fab387 + fontStyle + bold italic + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #b4befe + fontStyle + italic + + + + name + Built-in function + scope + support.function.builtin + settings + + foreground + #fab387 + fontStyle + italic + + + + name + User-defined constant + scope + variable.other.constant + settings + + foreground + #fab387 + fontStyle + + + + + name + Variable + scope + variable + settings + + + + name + Keyword + scope + keyword + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Conditional/loop + scope + keyword.control.loop, keyword.control.conditional, keyword.control.c++ + settings + + foreground + #cba6f7 + fontStyle + bold + + + + name + Return + scope + keyword.control.return, keyword.control.flow.return + settings + + foreground + #f5c2e7 + fontStyle + bold + + + + name + Exception + scope + support.type.exception + settings + + foreground + #fab387 + fontStyle + italic + + + + name + Operator + scope + keyword.operator, punctuation.accessor + settings + + foreground + #89dceb + fontStyle + bold + + + + name + Punctuation separator + scope + punctuation.separator + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Punctuation terminator + scope + punctuation.terminator + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Punctuation bracket + scope + punctuation.section + settings + + foreground + #9399b2 + fontStyle + + + + + name + Include + scope + keyword.control.import.include + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Storage + scope + storage + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Storage type + scope + storage.type + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Storage modifier + scope + storage.modifier + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Storage type namespace + scope + entity.name.namespace, meta.path + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Storage type class + scope + storage.type.class + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Label + scope + entity.name.label + settings + + foreground + #89b4fa + fontStyle + + + + + name + Keyword class + scope + keyword.declaration.class + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Class name + scope + entity.name.class, meta.toc-list.full-identifier + settings + + foreground + #89dceb + fontStyle + + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + foreground + #89dceb + fontStyle + italic + + + + name + Function name + scope + entity.name.function, variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Function macro + scope + entity.name.function.preprocessor + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Macro directive - ifdef + scope + keyword.control.import + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Constructor + scope + entity.name.function.constructor, entity.name.function.destructor + settings + + foreground + #b4befe + fontStyle + + + + + name + Function argument + scope + variable.parameter.function + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Function declaration + scope + keyword.declaration.function + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Library function + scope + support.function + settings + + foreground + #89dceb + fontStyle + + + + + name + Library constant + scope + support.constant + settings + + foreground + #89b4fa + fontStyle + + + + + name + Library class/type + scope + support.type, support.class + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Library variable + scope + support.other.variable + settings + + fontStyle + + + + + name + Variable function + scope + variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Variable parameter + scope + variable.parameter + settings + + foreground + #f5e0dc + fontStyle + italic + + + + name + Variable other + scope + variable.other + settings + + foreground + #cdd6f4 + fontStyle + italic + + + + name + Variable field + scope + variable.other.member + settings + + foreground + #f5e0dc + fontStyle + + + + + name + Variable language + scope + variable.language + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Tag name + scope + entity.name.tag + settings + + foreground + #fab387 + fontStyle + + + + + name + Tag attribute + scope + entity.other.attribute-name + settings + + foreground + #cba6f7 + fontStyle + italic + + + + name + Tag delimiter + scope + punctuation.definition.tag + settings + + foreground + #eba0ac + fontStyle + + + + + name + Markdown URL + scope + markup.underline.link.markdown + settings + + foreground + #f5e0dc + fontStyle + italic underline + + + + name + Markdown reference + scope + meta.link.inline.description + settings + + foreground + #b4befe + fontStyle + bold + + + + name + Markdown literal + scope + comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Markdown title + scope + punctuation.definition.heading, entity.name.section + settings + + foreground + #89b4fa + fontStyle + bold + + + + name + Markdown emphasis + scope + markup.italic + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Markdown strong + scope + markup.bold + settings + + foreground + #eba0ac + fontStyle + bold + + + + name + Escape + scope + constant.character.escape + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Bash built-in function + scope + source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Bash parameter + scope + variable.language.shell + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + Lua field + scope + source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #b4befe + fontStyle + italic + + + + name + Lua constructor + scope + source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua + settings + + foreground + #f2cdcd + fontStyle + + + + + name + Java constant + scope + entity.name.constant.java + settings + + foreground + #94e2d5 + fontStyle + + + + + name + CSS property + scope + support.type.property-name.css + settings + + foreground + #f2cdcd + fontStyle + italic + + + + name + CSS constant + scope + support.constant.property-value.css + settings + + foreground + #cdd6f4 + fontStyle + + + + + name + CSS suffix + scope + constant.numeric.suffix.css, keyword.other.unit.css + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + CSS variable property + scope + variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css + settings + + foreground + #94e2d5 + fontStyle + + + + + name + SCSS tag + scope + entity.name.tag.css + settings + + foreground + #b4befe + fontStyle + + + + + name + SASS variable + scope + variable.other.sass + settings + + foreground + #94e2d5 + fontStyle + + + + + name + Invalid + scope + invalid + settings + + foreground + #cdd6f4 + background + #f38ba8 + fontStyle + + + + + name + Invalid deprecated + scope + invalid.deprecated + settings + + foreground + #cdd6f4 + background + #cba6f7 + fontStyle + + + + + name + Diff header + scope + meta.diff, meta.diff.header + settings + + foreground + #6c7086 + fontStyle + + + + + name + Diff deleted + scope + markup.deleted + settings + + foreground + #f38ba8 + fontStyle + + + + + name + Diff inserted + scope + markup.inserted + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + Diff changed + scope + markup.changed + settings + + foreground + #f9e2af + fontStyle + + + + + name + Message error + scope + message.error + settings + + foreground + #f38ba8 + fontStyle + + + + + uuid + 4d0379b5-ef82-467b-b8b8-365889420646 + colorSpaceName + sRGB + semanticClass + theme.dark.Catppuccin + author + BrunDerSchwarzmagier + + diff --git a/gitui/mocha.ron b/gitui/mocha.ron new file mode 100644 index 0000000..9818424 --- /dev/null +++ b/gitui/mocha.ron @@ -0,0 +1,23 @@ +( + selected_tab: Some(Reset), + command_fg: Some(Rgb(205, 214, 244)), + selection_bg: Some(Rgb(88, 91, 112)), + selection_fg: Some(Rgb(205, 214, 244)), + cmdbar_bg: Some(Rgb(24, 24, 37)), + cmdbar_extra_lines_bg: Some(Rgb(24, 24, 37)), + disabled_fg: Some(Rgb(127, 132, 156)), + diff_line_add: Some(Rgb(166, 227, 161)), + diff_line_delete: Some(Rgb(243, 139, 168)), + diff_file_added: Some(Rgb(249, 226, 175)), + diff_file_removed: Some(Rgb(235, 160, 172)), + diff_file_moved: Some(Rgb(203, 166, 247)), + diff_file_modified: Some(Rgb(250, 179, 135)), + commit_hash: Some(Rgb(180, 190, 254)), + commit_time: Some(Rgb(186, 194, 222)), + commit_author: Some(Rgb(116, 199, 236)), + danger_fg: Some(Rgb(243, 139, 168)), + push_gauge_bg: Some(Rgb(137, 180, 250)), + push_gauge_fg: Some(Rgb(30, 30, 46)), + tag_fg: Some(Rgb(245, 224, 220)), + branch_fg: Some(Rgb(148, 226, 213)) +) diff --git a/helix.toml b/helix.toml new file mode 100644 index 0000000..f35da87 --- /dev/null +++ b/helix.toml @@ -0,0 +1,2 @@ +theme = "catppuccin_mocha" + diff --git a/iamb.json b/iamb.json new file mode 100644 index 0000000..6e680c9 --- /dev/null +++ b/iamb.json @@ -0,0 +1,9 @@ +{ + "profiles": { + "skylar": { + "user_id": "@stellarskylark:solarpunk.moe", + "url": "https://matrix.solarpunk.moe" + } + }, + "default_profile": "skylar" +} diff --git a/mbsyncrc b/mbsyncrc new file mode 100644 index 0000000..71f01d0 --- /dev/null +++ b/mbsyncrc @@ -0,0 +1,21 @@ +IMAPStore posteo-remote +Host posteo.de +Port 993 +User stellarskylark@posteo.net +PassCmd "pass posteo" +SSLType IMAPS + +MaildirStore posteo-local +Subfolders Verbatim +Path ~/.local/mail/posteo/ +INBOX ~/.local/mail/posteo/INBOX +Flatten . + +Channel posteo +Far :posteo-remote: +Near :posteo-local: +Patterns INBOX Drafts Sent Trash +SyncState * +Create Both +Expunge Both +MaxMessages 0 \ No newline at end of file diff --git a/msmtprc b/msmtprc new file mode 100644 index 0000000..1fe3e06 --- /dev/null +++ b/msmtprc @@ -0,0 +1,12 @@ +defaults +auth on +tls on +logfile ~/.config/msmtp/msmtp.log + +account posteo +host posteo.de +port 465 +tls_starttls off +from stellarskylark@posteo.net +user stellarskylark@posteo.net +passwordeval "pass posteo" diff --git a/mutt/mailcap b/mutt/mailcap new file mode 100644 index 0000000..4183ac2 --- /dev/null +++ b/mutt/mailcap @@ -0,0 +1,3 @@ +text/html; firefox %s; +text/html; w3m -I %{charset} -T text/html; copiousoutput; + diff --git a/mutt/muttrc b/mutt/muttrc new file mode 100644 index 0000000..92e91d1 --- /dev/null +++ b/mutt/muttrc @@ -0,0 +1,63 @@ +set from = stellarskylark@posteo.net +set realname = "Skylar Hill" + +set mbox_type = Maildir +set folder = "~/.local/mail/posteo" + +set sendmail = "msmtp -a posteo" + +set header_cache = "~/.cache/mutt/posteo/header_cache" +set message_cachedir = "~/.cache/mutt/posteo/message_cache" + +set spoolfile = +INBOX +set postponed = +Drafts +set record = +Sent +set trash = +Trash + +bind index,pager g noop +macro index,pager gi "=INBOX" "go to inbox" +macro index,pager gs "=Sent" "go to sent" +macro index,pager gd "=Drafts" "go to drafts" +macro index,pager gt "=Trash" "go to trash" + +# synchronization settings ['s' to sync] +macro index S "mbsync -V posteo" "sync email" + +auto_view text/html +set mailcap_path = ~/.config/mutt/mailcap + +# Catppuccin theme +color normal default default # Text is "Text" +color index color2 default ~N # New Messages are Green +color index color1 default ~F # Flagged messages are Red +color index color13 default ~T # Tagged Messages are Red +color index color1 default ~D # Messages to delete are Red +color attachment color5 default # Attachments are Pink +color signature color8 default # Signatures are Surface 2 +color search color4 default # Highlighted results are Blue + +color indicator default color8 # currently highlighted message Surface 2=Background Text=Foreground +color error color1 default # error messages are Red +color status color15 default # status line "Subtext 0" +color tree color15 default # thread tree arrows Subtext 0 +color tilde color15 default # blank line padding Subtext 0 + +color hdrdefault color13 default # default headers Pink +color header color13 default "^From:" +color header color13 default "^Subject:" + +color quoted color15 default # Subtext 0 +color quoted1 color7 default # Subtext 1 +color quoted2 color8 default # Surface 2 +color quoted3 color0 default # Surface 1 +color quoted4 color0 default +color quoted5 color0 default + +color body color2 default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ # email addresses Green +color body color2 default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ # URLs Green +color body color4 default (^|[[:space:]])\\*[^[:space:]]+\\*([[:space:]]|$) # *bold* text Blue +color body color4 default (^|[[:space:]])_[^[:space:]]+_([[:space:]]|$) # _underlined_ text Blue +color body color4 default (^|[[:space:]])/[^[:space:]]+/([[:space:]]|$) # /italic/ text Blue + +color sidebar_flagged color1 default # Mailboxes with flagged mails are Red +color sidebar_new color10 default # Mailboxes with new mail are Green \ No newline at end of file diff --git a/newsboat/config b/newsboat/config new file mode 100644 index 0000000..948b987 --- /dev/null +++ b/newsboat/config @@ -0,0 +1,7 @@ +include ~/.config/newsboat/dark +auto-reload yes # fetch new content when starting program +reload-time 10 # fetch new content every 10 minutes +notify-always yes # update tmux counters after every fetch +notify-format "%d %n %f" +notify-program "~/.config/tmux/plugins/tmux-newsboat/bin/tmux-newsboat" +html-renderer "w3m -dump -T text/html" \ No newline at end of file diff --git a/newsboat/dark b/newsboat/dark new file mode 100644 index 0000000..ac57e94 --- /dev/null +++ b/newsboat/dark @@ -0,0 +1,18 @@ +color listnormal color15 default +color listnormal_unread color2 default +color listfocus_unread color2 color0 +color listfocus default color0 +color background default default +color article default default +color end-of-text-marker color8 default +color info color4 color8 +color hint-separator default color8 +color hint-description default color8 +color title color14 color8 + +highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold +highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold + +highlight article "\\((link|image|video)\\)" color8 default +highlight article "https?://[^ ]+" color4 default +highlight article "\[[0-9]+\]" color6 default bold diff --git a/newsboat/urls b/newsboat/urls new file mode 100644 index 0000000..3bc7ddb --- /dev/null +++ b/newsboat/urls @@ -0,0 +1,4 @@ +http://feeds.feedburner.com/chicagoreporter +http://www.thebaffler.com/feed/ +https://znetwork.org/category/featured/feed/?post_type=znetarticle +http://jacobin.com/feed diff --git a/notmuch b/notmuch new file mode 100644 index 0000000..dd44d7e --- /dev/null +++ b/notmuch @@ -0,0 +1,78 @@ +# .notmuch-config - Configuration file for the notmuch mail system +# +# For more information about notmuch, see https://notmuchmail.org +# Database configuration +# +# The only value supported here is 'path' which should be the top-level +# directory where your mail currently exists and to where mail will be +# delivered in the future. Files should be individual email messages. +# Notmuch will store its database within a sub-directory of the path +# configured here named ".notmuch". +# +[database] +path=/home/skylar/.local/mail +# User configuration +# +# Here is where you can let notmuch know how you would like to be +# addressed. Valid settings are +# +# name Your full name. +# primary_email Your primary email address. +# other_email A list (separated by ';') of other email addresses +# at which you receive email. +# +# Notmuch will use the various email addresses configured here when +# formatting replies. It will avoid including your own addresses in the +# recipient list of replies, and will set the From address based on the +# address to which the original email was addressed. +# +[user] +primary_email=stellarskylark@posteo.net +other_email=stellarskylark@gmail.com +# Configuration for "notmuch new" +# +# The following options are supported here: +# +# tags A list (separated by ';') of the tags that will be +# added to all messages incorporated by "notmuch new". +# +# ignore A list (separated by ';') of file and directory names +# that will not be searched for messages by "notmuch new". +# +# NOTE: *Every* file/directory that goes by one of those +# names will be ignored, independent of its depth/location +# in the mail store. +# +[new] +# Search configuration +# +# The following option is supported here: +# +# exclude_tags +# A ;-separated list of tags that will be excluded from +# search results by default. Using an excluded tag in a +# query will override that exclusion. +# +[search] +# Maildir compatibility configuration +# +# The following option is supported here: +# +# synchronize_flags Valid values are true and false. +# +# If true, then the following maildir flags (in message filenames) +# will be synchronized with the corresponding notmuch tags: +# +# Flag Tag +# ---- ------- +# D draft +# F flagged +# P passed +# R replied +# S unread (added when 'S' flag is not present) +# +# The "notmuch new" command will notice flag changes in filenames +# and update tags, while the "notmuch tag" and "notmuch restore" +# commands will notice tag changes and update flags in filenames +# +[maildir] diff --git a/nushell/config.nu b/nushell/config.nu new file mode 100644 index 0000000..36fd5c8 --- /dev/null +++ b/nushell/config.nu @@ -0,0 +1,770 @@ +# Nushell Config File +# +# version = "0.85.0" + +# For more information on defining custom themes, see +# https://www.nushell.sh/book/coloring_and_theming.html +# And here is the theme collection +# https://github.com/nushell/nu_scripts/tree/main/themes +let dark_theme = { + # color for nushell primitives + separator: white + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'light_cyan' } else { 'light_gray' } } + bool: light_cyan + int: white + filesize: cyan + duration: white + date: purple + range: white + float: white + string: white + nothing: white + binary: white + cell-path: white + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: {bg: red fg: white} + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple +} + +let light_theme = { + # color for nushell primitives + separator: dark_gray + leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off + header: green_bold + empty: blue + # Closures can be used to choose colors for specific values. + # The value (in this case, a bool) is piped into the closure. + # eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } } + bool: dark_cyan + int: dark_gray + filesize: cyan_bold + duration: dark_gray + date: purple + range: dark_gray + float: dark_gray + string: dark_gray + nothing: dark_gray + binary: dark_gray + cell-path: dark_gray + row_index: green_bold + record: white + list: white + block: white + hints: dark_gray + search_result: {fg: white bg: red} + shape_and: purple_bold + shape_binary: purple_bold + shape_block: blue_bold + shape_bool: light_cyan + shape_closure: green_bold + shape_custom: green + shape_datetime: cyan_bold + shape_directory: cyan + shape_external: cyan + shape_externalarg: green_bold + shape_filepath: cyan + shape_flag: blue_bold + shape_float: purple_bold + # shapes are used to change the cli syntax highlighting + shape_garbage: { fg: white bg: red attr: b} + shape_globpattern: cyan_bold + shape_int: purple_bold + shape_internalcall: cyan_bold + shape_list: cyan_bold + shape_literal: blue + shape_match_pattern: green + shape_matching_brackets: { attr: u } + shape_nothing: light_cyan + shape_operator: yellow + shape_or: purple_bold + shape_pipe: purple_bold + shape_range: yellow_bold + shape_record: cyan_bold + shape_redirection: purple_bold + shape_signature: green_bold + shape_string: green + shape_string_interpolation: cyan_bold + shape_table: blue_bold + shape_variable: purple + shape_vardecl: purple +} + +# External completer example +# let carapace_completer = {|spans| +# carapace $spans.0 nushell $spans | from json +# } + +# The default config record. This is where much of your global configuration is setup. +$env.config = { + show_banner: false # true or false to enable or disable the welcome banner at startup + + ls: { + use_ls_colors: true # use the LS_COLORS environment variable to colorize output + clickable_links: true # enable or disable clickable links. Your terminal has to support links. + } + + rm: { + always_trash: false # always act as if -t was given. Can be overridden with -p + } + + table: { + mode: compact # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other + index_mode: auto # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column + show_empty: true # show 'empty list' and 'empty record' placeholders for command output + padding: { left: 1, right: 1 } # a left right padding of each column in a table + trim: { + methodology: wrapping # wrapping or truncating + wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology + truncating_suffix: "..." # A suffix used by the 'truncating' methodology + } + header_on_separator: false # show header text on separator/border line + } + + error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages + + # datetime_format determines what a datetime rendered in the shell would look like. + # Behavior without this configuration point will be to "humanize" the datetime display, + # showing something like "a day ago." + datetime_format: { + # normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables + # table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format + } + + explore: { + status_bar_background: {fg: "#1D1F21", bg: "#C4C9C6"}, + command_bar_text: {fg: "#C4C9C6"}, + highlight: {fg: "black", bg: "yellow"}, + status: { + error: {fg: "white", bg: "red"}, + warn: {} + info: {} + }, + table: { + split_line: {fg: "#404040"}, + selected_cell: {}, + selected_row: {}, + selected_column: {}, + show_cursor: true, + line_head_top: true, + line_head_bottom: true, + line_shift: true, + line_index: true, + }, + } + + history: { + max_size: 100_000 # Session has to be reloaded for this to take effect + sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file + file_format: "plaintext" # "sqlite" or "plaintext" + isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions. + } + + completions: { + case_sensitive: false # set to true to enable case-sensitive completions + quick: true # set this to false to prevent auto-selecting completions when only one remains + partial: true # set this to false to prevent partial filling of the prompt + algorithm: "prefix" # prefix or fuzzy + external: { + enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow + max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options + completer: null # check 'carapace_completer' above as an example + } + } + + filesize: { + metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard) + format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto + } + + cursor_shape: { + emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default) + vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default) + vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default) + } + + color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record + use_grid_icons: true + footer_mode: "25" # always, never, number_of_rows, auto + float_precision: 2 # the precision for displaying floats in tables + buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL + use_ansi_coloring: true + bracketed_paste: true # enable bracketed paste, currently useless on windows + edit_mode: emacs # emacs, vi + shell_integration: false # enables terminal shell integration. Off by default, as some terminals have issues with this. + render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt. + + hooks: { + pre_prompt: [{ null }] # run before the prompt is shown + pre_execution: [{ null }] # run before the repl input is run + env_change: { + PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input + } + display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline + command_not_found: { null } # return an error message when a command is not found + } + + menus: [ + # Configuration for default nushell menus + # Note the lack of source parameter + { + name: completion_menu + only_buffer_difference: false + marker: "| " + type: { + layout: columnar + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: history_menu + only_buffer_difference: true + marker: "? " + type: { + layout: list + page_size: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + { + name: help_menu + only_buffer_difference: true + marker: "? " + type: { + layout: description + columns: 4 + col_width: 20 # Optional value. If missing all the screen width is used to calculate column width + col_padding: 2 + selection_rows: 4 + description_rows: 10 + } + style: { + text: green + selected_text: green_reverse + description_text: yellow + } + } + ] + + keybindings: [ + { + name: completion_menu + modifier: none + keycode: tab + mode: [emacs vi_normal vi_insert] + event: { + until: [ + { send: menu name: completion_menu } + { send: menunext } + { edit: complete } + ] + } + } + { + name: history_menu + modifier: control + keycode: char_r + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: history_menu } + } + { + name: help_menu + modifier: none + keycode: f1 + mode: [emacs, vi_insert, vi_normal] + event: { send: menu name: help_menu } + } + { + name: completion_previous_menu + modifier: shift + keycode: backtab + mode: [emacs, vi_normal, vi_insert] + event: { send: menuprevious } + } + { + name: next_page_menu + modifier: control + keycode: char_x + mode: emacs + event: { send: menupagenext } + } + { + name: undo_or_previous_page_menu + modifier: control + keycode: char_z + mode: emacs + event: { + until: [ + { send: menupageprevious } + { edit: undo } + ] + } + } + { + name: escape + modifier: none + keycode: escape + mode: [emacs, vi_normal, vi_insert] + event: { send: esc } # NOTE: does not appear to work + } + { + name: cancel_command + modifier: control + keycode: char_c + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrlc } + } + { + name: quit_shell + modifier: control + keycode: char_d + mode: [emacs, vi_normal, vi_insert] + event: { send: ctrld } + } + { + name: clear_screen + modifier: control + keycode: char_l + mode: [emacs, vi_normal, vi_insert] + event: { send: clearscreen } + } + { + name: search_history + modifier: control + keycode: char_q + mode: [emacs, vi_normal, vi_insert] + event: { send: searchhistory } + } + { + name: open_command_editor + modifier: control + keycode: char_o + mode: [emacs, vi_normal, vi_insert] + event: { send: openeditor } + } + { + name: move_up + modifier: none + keycode: up + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuup} + {send: up} + ] + } + } + { + name: move_down + modifier: none + keycode: down + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menudown} + {send: down} + ] + } + } + { + name: move_left + modifier: none + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuleft} + {send: left} + ] + } + } + { + name: move_right_or_take_history_hint + modifier: none + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {send: menuright} + {send: right} + ] + } + } + { + name: move_one_word_left + modifier: control + keycode: left + mode: [emacs, vi_normal, vi_insert] + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: control + keycode: right + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: move_to_line_start + modifier: none + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_start + modifier: control + keycode: char_a + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_end_or_take_history_hint + modifier: none + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {edit: movetolineend} + ] + } + } + { + name: move_to_line_end_or_take_history_hint + modifier: control + keycode: char_e + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: historyhintcomplete} + {edit: movetolineend} + ] + } + } + { + name: move_to_line_start + modifier: control + keycode: home + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolinestart} + } + { + name: move_to_line_end + modifier: control + keycode: end + mode: [emacs, vi_normal, vi_insert] + event: {edit: movetolineend} + } + { + name: move_up + modifier: control + keycode: char_p + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menuup} + {send: up} + ] + } + } + { + name: move_down + modifier: control + keycode: char_t + mode: [emacs, vi_normal, vi_insert] + event: { + until: [ + {send: menudown} + {send: down} + ] + } + } + { + name: delete_one_character_backward + modifier: none + keycode: backspace + mode: [emacs, vi_insert] + event: {edit: backspace} + } + { + name: delete_one_word_backward + modifier: control + keycode: backspace + mode: [emacs, vi_insert] + event: {edit: backspaceword} + } + { + name: delete_one_character_forward + modifier: none + keycode: delete + mode: [emacs, vi_insert] + event: {edit: delete} + } + { + name: delete_one_character_forward + modifier: control + keycode: delete + mode: [emacs, vi_insert] + event: {edit: delete} + } + { + name: delete_one_character_forward + modifier: control + keycode: char_h + mode: [emacs, vi_insert] + event: {edit: backspace} + } + { + name: delete_one_word_backward + modifier: control + keycode: char_w + mode: [emacs, vi_insert] + event: {edit: backspaceword} + } + { + name: move_left + modifier: none + keycode: backspace + mode: vi_normal + event: {edit: moveleft} + } + { + name: newline_or_run_command + modifier: none + keycode: enter + mode: emacs + event: {send: enter} + } + { + name: move_left + modifier: control + keycode: char_b + mode: emacs + event: { + until: [ + {send: menuleft} + {send: left} + ] + } + } + { + name: move_right_or_take_history_hint + modifier: control + keycode: char_f + mode: emacs + event: { + until: [ + {send: historyhintcomplete} + {send: menuright} + {send: right} + ] + } + } + { + name: redo_change + modifier: control + keycode: char_g + mode: emacs + event: {edit: redo} + } + { + name: undo_change + modifier: control + keycode: char_z + mode: emacs + event: {edit: undo} + } + { + name: paste_before + modifier: control + keycode: char_y + mode: emacs + event: {edit: pastecutbufferbefore} + } + { + name: cut_word_left + modifier: control + keycode: char_w + mode: emacs + event: {edit: cutwordleft} + } + { + name: cut_line_to_end + modifier: control + keycode: char_k + mode: emacs + event: {edit: cuttoend} + } + { + name: cut_line_from_start + modifier: control + keycode: char_u + mode: emacs + event: {edit: cutfromstart} + } + { + name: swap_graphemes + modifier: control + keycode: char_t + mode: emacs + event: {edit: swapgraphemes} + } + { + name: move_one_word_left + modifier: alt + keycode: left + mode: emacs + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: right + mode: emacs + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: move_one_word_left + modifier: alt + keycode: char_b + mode: emacs + event: {edit: movewordleft} + } + { + name: move_one_word_right_or_take_history_hint + modifier: alt + keycode: char_f + mode: emacs + event: { + until: [ + {send: historyhintwordcomplete} + {edit: movewordright} + ] + } + } + { + name: delete_one_word_forward + modifier: alt + keycode: delete + mode: emacs + event: {edit: deleteword} + } + { + name: delete_one_word_backward + modifier: alt + keycode: backspace + mode: emacs + event: {edit: backspaceword} + } + { + name: delete_one_word_backward + modifier: alt + keycode: char_m + mode: emacs + event: {edit: backspaceword} + } + { + name: cut_word_to_right + modifier: alt + keycode: char_d + mode: emacs + event: {edit: cutwordright} + } + { + name: upper_case_word + modifier: alt + keycode: char_u + mode: emacs + event: {edit: uppercaseword} + } + { + name: lower_case_word + modifier: alt + keycode: char_l + mode: emacs + event: {edit: lowercaseword} + } + { + name: capitalize_char + modifier: alt + keycode: char_c + mode: emacs + event: {edit: capitalizechar} + } + ] +} + +use ~/.cache/starship/init.nu + +source ~/.config/nushell/zoxide.nu + +use ~/.config/nushell/themes/catppuccin-mocha.nu +$env.config = ($env.config | merge {color_config: (catppuccin-mocha)}) + +alias gitui = gitui -t mocha.ron +alias cargo = cargo-mommy \ No newline at end of file diff --git a/nushell/env.nu b/nushell/env.nu new file mode 100644 index 0000000..fa5154e --- /dev/null +++ b/nushell/env.nu @@ -0,0 +1,84 @@ +# Nushell Environment Config File +# +# version = "0.85.0" + +def create_left_prompt [] { + let home = $nu.home-path + + let dir = ([ + ($env.PWD | str substring 0..($home | str length) | str replace $home "~"), + ($env.PWD | str substring ($home | str length)..) + ] | str join) + + let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold }) + let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold }) + let path_segment = $"($path_color)($dir)" + + $path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)" +} + +def create_right_prompt [] { + # create a right prompt in magenta with green separators and am/pm underlined + let time_segment = ([ + (ansi reset) + (ansi magenta) + (date now | format date '%x %X %p') # try to respect user's locale + ] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" | + str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}") + + let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([ + (ansi rb) + ($env.LAST_EXIT_CODE) + ] | str join) + } else { "" } + + ([$last_exit_code, (char space), $time_segment] | str join) +} + +# Use nushell functions to define your right and left prompt +$env.PROMPT_COMMAND = {|| create_left_prompt } +# FIXME: This default is not implemented in rust code as of 2023-09-08. +$env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt } + +# The prompt indicators are environmental variables that represent +# the state of the prompt +$env.PROMPT_INDICATOR = {|| "> " } +$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " } +$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " } +$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " } + +# Specifies how environment variables are: +# - converted from a string to a value on Nushell startup (from_string) +# - converted from a value back to a string when running external commands (to_string) +# Note: The conversions happen *after* config.nu is loaded +$env.ENV_CONVERSIONS = { + "PATH": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } + "Path": { + from_string: { |s| $s | split row (char esep) | path expand --no-symlink } + to_string: { |v| $v | path expand --no-symlink | str join (char esep) } + } +} + +# Directories to search for scripts when calling source or use +$env.NU_LIB_DIRS = [ + # FIXME: This default is not implemented in rust code as of 2023-09-06. + ($nu.default-config-dir | path join 'scripts') # add /scripts +] + +# Directories to search for plugin binaries when calling register +$env.NU_PLUGIN_DIRS = [ + # FIXME: This default is not implemented in rust code as of 2023-09-06. + ($nu.default-config-dir | path join 'plugins') # add /plugins +] + +# To add entries to PATH (on Windows you might use Path), you can use the following pattern: +# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path') +$env.PATH = ($env.PATH | split row (char esep) | prepend "/home/skylar/.cargo/bin") + +$env.BAT_THEME = "Catppuccin-mocha" + +zoxide init nushell | save -f ~/.config/nushell/zoxide.nu +starship init nu | save -f ~/.cache/starship/init.nu diff --git a/nushell/themes/catppuccin-mocha.nu b/nushell/themes/catppuccin-mocha.nu new file mode 100644 index 0000000..df72587 --- /dev/null +++ b/nushell/themes/catppuccin-mocha.nu @@ -0,0 +1,113 @@ +const color_palette = { + rosewater: "#f5e0dc" + flamingo: "#f2cdcd" + pink: "#f5c2e7" + mauve: "#cba6f7" + red: "#f38ba8" + maroon: "#eba0ac" + peach: "#fab387" + yellow: "#f9e2af" + green: "#a6e3a1" + teal: "#94e2d5" + sky: "#89dceb" + sapphire: "#74c7ec" + blue: "#89b4fa" + lavender: "#b4befe" + text: "#cdd6f4" + subtext1: "#bac2de" + subtext0: "#a6adc8" + overlay2: "#9399b2" + overlay1: "#7f849c" + overlay0: "#6c7086" + surface2: "#585b70" + surface1: "#45475a" + surface0: "#313244" + base: "#1e1e2e" + mantle: "#181825" + crust: "#11111b" +} + +export def main [] { return { + separator: $color_palette.overlay0 + leading_trailing_space_bg: { attr: "n" } + header: { fg: $color_palette.blue attr: "b" } + empty: $color_palette.lavender + bool: $color_palette.lavender + int: $color_palette.peach + duration: $color_palette.text + filesize: {|e| + if $e < 1mb { + $color_palette.green + } else if $e < 100mb { + $color_palette.yellow + } else if $e < 500mb { + $color_palette.peach + } else if $e < 800mb { + $color_palette.maroon + } else if $e > 800mb { + $color_palette.red + } + } + date: {|| (date now) - $in | + if $in < 1hr { + $color_palette.green + } else if $in < 1day { + $color_palette.yellow + } else if $in < 3day { + $color_palette.peach + } else if $in < 1wk { + $color_palette.maroon + } else if $in > 1wk { + $color_palette.red + } + } + range: $color_palette.text + float: $color_palette.text + string: $color_palette.text + nothing: $color_palette.text + binary: $color_palette.text + cellpath: $color_palette.text + row_index: { fg: $color_palette.mauve attr: "b" } + record: $color_palette.text + list: $color_palette.text + block: $color_palette.text + hints: $color_palette.overlay1 + search_result: { fg: $color_palette.red bg: $color_palette.text } + + shape_and: { fg: $color_palette.pink attr: "b" } + shape_binary: { fg: $color_palette.pink attr: "b" } + shape_block: { fg: $color_palette.blue attr: "b" } + shape_bool: $color_palette.teal + shape_custom: $color_palette.green + shape_datetime: { fg: $color_palette.teal attr: "b" } + shape_directory: $color_palette.teal + shape_external: $color_palette.teal + shape_externalarg: { fg: $color_palette.green attr: "b" } + shape_filepath: $color_palette.teal + shape_flag: { fg: $color_palette.blue attr: "b" } + shape_float: { fg: $color_palette.pink attr: "b" } + shape_garbage: { fg: $color_palette.text bg: $color_palette.red attr: "b" } + shape_globpattern: { fg: $color_palette.teal attr: "b" } + shape_int: { fg: $color_palette.pink attr: "b" } + shape_internalcall: { fg: $color_palette.teal attr: "b" } + shape_list: { fg: $color_palette.teal attr: "b" } + shape_literal: $color_palette.blue + shape_match_pattern: $color_palette.green + shape_matching_brackets: { attr: "u" } + shape_nothing: $color_palette.teal + shape_operator: $color_palette.peach + shape_or: { fg: $color_palette.pink attr: "b" } + shape_pipe: { fg: $color_palette.pink attr: "b" } + shape_range: { fg: $color_palette.peach attr: "b" } + shape_record: { fg: $color_palette.teal attr: "b" } + shape_redirection: { fg: $color_palette.pink attr: "b" } + shape_signature: { fg: $color_palette.green attr: "b" } + shape_string: $color_palette.green + shape_string_interpolation: { fg: $color_palette.teal attr: "b" } + shape_table: { fg: $color_palette.blue attr: "b" } + shape_variable: $color_palette.pink + + background: $color_palette.base + foreground: $color_palette.text + cursor: $color_palette.blue +}} diff --git a/rofi-themes/catppuccin-mocha.rasi b/rofi-themes/catppuccin-mocha.rasi new file mode 100644 index 0000000..d22a7ea --- /dev/null +++ b/rofi-themes/catppuccin-mocha.rasi @@ -0,0 +1,111 @@ +* { + bg-col: #1e1e2e; + bg-col-light: #1e1e2e; + border-col: #1e1e2e; + selected-col: #1e1e2e; + blue: #89b4fa; + fg-col: #cdd6f4; + fg-col2: #f38ba8; + grey: #6c7086; + + width: 600; + font: "FiraCode Nerd Font 14"; +} + +element-text, element-icon , mode-switcher { + background-color: inherit; + text-color: inherit; +} + +window { + height: 360px; + border: 3px; + border-color: @border-col; + background-color: @bg-col; +} + +mainbox { + background-color: @bg-col; +} + +inputbar { + children: [prompt,entry]; + background-color: @bg-col; + border-radius: 5px; + padding: 2px; +} + +prompt { + background-color: @blue; + padding: 6px; + text-color: @bg-col; + border-radius: 3px; + margin: 20px 0px 0px 20px; +} + +textbox-prompt-colon { + expand: false; + str: ":"; +} + +entry { + padding: 6px; + margin: 20px 0px 0px 10px; + text-color: @fg-col; + background-color: @bg-col; +} + +listview { + border: 0px 0px 0px; + padding: 6px 0px 0px; + margin: 10px 0px 0px 20px; + columns: 2; + lines: 5; + background-color: @bg-col; +} + +element { + padding: 5px; + background-color: @bg-col; + text-color: @fg-col ; +} + +element-icon { + size: 25px; +} + +element selected { + background-color: @selected-col ; + text-color: @fg-col2 ; +} + +mode-switcher { + spacing: 0; + } + +button { + padding: 10px; + background-color: @bg-col-light; + text-color: @grey; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +button selected { + background-color: @bg-col; + text-color: @blue; +} + +message { + background-color: @bg-col-light; + margin: 2px; + padding: 2px; + border-radius: 5px; +} + +textbox { + padding: 6px; + margin: 20px 0px 0px 20px; + text-color: @blue; + background-color: @bg-col-light; +} diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..ef9dbea --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1,18 @@ +configuration{ + modi: "run,drun,window"; + icon-theme: "Oranchelo"; + show-icons: true; + terminal: "kitty"; + drun-display-format: "{icon} {name}"; + location: 0; + disable-history: false; + hide-scrollbar: true; + display-drun: "  Apps "; + display-run: "  Run "; + display-window: " 﩯 Window"; + display-Network: " 󰤨 Network"; + sidebar-mode: true; +} + +@theme "catppuccin-mocha" + diff --git a/stowfile b/stowfile new file mode 100644 index 0000000..be5d6f0 --- /dev/null +++ b/stowfile @@ -0,0 +1,62 @@ +vars: + - confhome=${XDG_CONFIG_HOME} + +stow: + - src: mbsyncrc + links: + - "${HOME}/.mbsyncrc" + - src: msmtprc + links: + - "${HOME}/.msmtprc" + - src: notmuch + links: + - "${HOME}/.notmuch-config" + - src: alacritty + links: + - "${confhome}/alacritty" + - src: bat + links: + - "${confhome}/bat" + - src: gitui + links: + - "${confhome}/gitui" + - src: helix.toml + links: + - "${confhome}/helix/config.toml" + - src: iamb.json + links: + - "${confhome}/iamb/config.json" + - src: mutt + links: + - "${confhome}/mutt" + - src: nushell + links: + - "${confhome}/nushell" + - src: newsboat + links: + - "${confhome}/newsboat" + - src: rofi + links: + - "${confhome}/rofi" + - src: rofi-themes + links: + - "${XDG_DATA_HOME}/rofi/themes" + - src: sway + links: + - "${confhome}/sway" + - src: tmux + links: + - "${confhome}/tmux" + - tut: + - src: config.toml + links: + - "${confhome}/tut/config.toml" + - src: themes + links: + - "${confhome}/tut/themes" + - src: waybar + links: + - "${confhome}/waybar" + - src: wiki-tui.toml + links: + - "${confhome}/wiki-tui/config.toml" diff --git a/sway/catppuccin-mocha b/sway/catppuccin-mocha new file mode 100644 index 0000000..686a5a2 --- /dev/null +++ b/sway/catppuccin-mocha @@ -0,0 +1,25 @@ +set $rosewater #f5e0dc +set $flamingo #f2cdcd +set $pink #f5c2e7 +set $mauve #cba6f7 +set $red #f38ba8 +set $maroon #eba0ac +set $peach #fab387 +set $green #a6e3a1 +set $teal #94e2d5 +set $sky #89dceb +set $sapphire #74c7ec +set $blue #89b4fa +set $lavender #b4befe +set $text #cdd6f4 +set $subtext1 #bac2de +set $subtext0 #a6adc8 +set $overlay2 #9399b2 +set $overlay1 #7f849c +set $overlay0 #6c7086 +set $surface2 #585b70 +set $surface1 #45475a +set $surface0 #313244 +set $base #1e1e2e +set $mantle #181825 +set $crust #11111b diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..aeda4e3 --- /dev/null +++ b/sway/config @@ -0,0 +1,234 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +include catppuccin-mocha + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term alacritty +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu rofi -show drun | xargs swaymsg exec -- + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/local/share/backgrounds/sway/) +output * bg /usr/home/skylar/Pictures/Wallpapers/cyberpunk.jpg fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +# +# Example configuration: +# +# exec swayidle -w \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ +# before-sleep 'swaylock -f -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration +# +# Example configuration: +# +# input "2:14:SynPS/2_Synaptics_TouchPad" { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# You can get the names of your inputs by running: swaymsg -t get_inputs +# Read `man 5 sway-input` for more information about this section. + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + bindsym $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + swaybar_command waybar + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done + + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } +} +input * { + xkb_layout "us" + xkb_variant "cmk_sky_us" + xkb_options "lv5:caps_switch_lock,misc:extend" +} + +bindsym XF86AudioRaiseVolume exec mixer vol.volume=+5% +bindsym XF86AudioLowerVolume exec mixer vol.volume=-5% + +# Appearance settings +default_border pixel 2 +client.focused $lavender $lavender $crust +client.focused_inactive $rosewater $rosewater $crust +client.unfocused $overlay0 $overlay0 $text + +include /usr/local/etc/sway/config.d/* diff --git a/tmux/tmux.conf b/tmux/tmux.conf new file mode 100644 index 0000000..14c2868 --- /dev/null +++ b/tmux/tmux.conf @@ -0,0 +1,42 @@ +# true color +set-option -sa terminal-overrides ",xterm*:Tc" + +# Enable mouse +set -g mouse on + +# Nushell! +set -g default-shell /home/skylar/.cargo/bin/nu + +# Number windows from 1 +set -g base-index 1 +set -g pane-base-index 1 +set-window-option -g pane-base-index 1 +set-option -g renumber-windows on + +# Enable tmux-continuum +set -g @continuum-restore 'on' + +# Set prefix +unbind C-b +set -g prefix C-Space +bind C-Space send-prefix + +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'catppuccin/tmux' +set -g @plugin '27medkamal/tmux-session-wizard' +set -g @plugin 'tmux-plugins/tmux-resurrect' +set -g @plugin 'tmux-plugins/tmux-continuum' +set -g @plugin 'idevtier/tmux-cargo' +set -g @plugin 'olimorris/tmux-pomodoro-plus' +set -g @plugin 'laktak/extrakto' +set -g @plugin 'tmux-plugins/tmux-newsboat' + +# Configure catppuccin modules +set -g @catppuccin_status_modules_right "newsboat application session" +set -g @catppuccin_window_current_text "#W" +set -g @catppuccin_window_default_text "#W" + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' \ No newline at end of file diff --git a/tut/config.toml b/tut/config.toml new file mode 100644 index 0000000..749c924 --- /dev/null +++ b/tut/config.toml @@ -0,0 +1,1283 @@ +# Configuration file for tut + +[general] +# What editor to use. TUT_USE_INTERNAL will use the editor that comes with tut. +# If you want you can set this to $EDITOR to use your environment variable or +# vim if you want to specify the program directly. +# default="TUT_USE_INTERNAL" +editor="TUT_USE_INTERNAL" + +# You need to press yes in a confirmation dialog before favoriting, boosting, +# etc. +# default=true +confirmation=true + +# Enable mouse support in tut. +# default=false +mouse-support=false + +# The date format to be used. See https://pkg.go.dev/time#pkg-constants +# default="2006-01-02 15:04" +date-format="2006-01-02 15:04" + +# Format for dates the same day. See date-format for more info. +# default="15:04" +date-tody-format="15:04" + +# This displays relative dates instead for statuses that are one day or older +# the output is 1y2m1d (1 year 2 months and 1 day) +# +# The value is an integer +# -1 = don't use relative dates +# 0 = always use relative dates, except for dates < 1 day +# 1 - ∞ = number of days to use relative dates +# +# Value: 28 will display a relative date for toots that are between 1-28 days +# old. Otherwise it will use the short or long format. +# default=-1 +date-relative=-1 + +# The max with of text before it wraps when displaying a toot. +# default=0 +max-width=0 + +# The placement of your panes. +# valid: left, right, top, bottom +# default="left" +list-placement="left" + +# How should panes be split? +# valid: row, column +# default="row" +list-split="row" + +# The proportion of panes vs. content. 1 on this and 3 on content below results +# in content taking up 3 times more space. +# default=1 +list-proportion=1 + +# See previous. +# default=2 +content-proportion=2 + +# Hide notifications of this type in your notification timelines. +# valid: mention, status, boost, follow, follow_request, favorite, poll, edit +# default=[] +notifications-to-hide=[] + +# Always include a quote of the message you're replying to. +# default=false +quote-reply=false + +# If you want to show icons in timelines. +# default=true +show-icons=true + +# If you only want to you the letter of keys instead of the full hint. +# default=false +short-hints=false + +# If you want to display the filter that filtered a toot. +# default=true +show-filter-phrase=true + +# Display a message in the commandbar on how to access the help text. +# default=true +show-help=true + +# Always jump to the newest post. May ruin your reading experience. +# default=false +stick-to-top=false + +# Display the username of the person being boosted instead of the person that +# boosted. +# default=false +show-boosted-user=false + +# Open a new pane when you run a command like :timeline home. +# default=true +commands-in-new-pane=true + +# Set a default name for the timeline if the name is empty. So if you run :tag +# linux the title of the pane will be set to #linux +# default=true +dynamic-timeline-name=true + +# 0 = No terminal title +# 1 = Show title in terminal and top bar +# 2 = Only show terminal title, and no top bar in tut +# 3 = No terminal title and no top bar in tut. +# valid: 0, 1, 2, 3 +# default=0 +terminal-title=0 + +# If you don't want the whole UI to update, and only update the text content you +# can disable this. This will lead to some artifacts being left on the screen +# when emojis are present. +# default=true +redraw-ui=true + +# The leader is used as a shortcut to run commands as you can do in Vim. By +# default this is disabled and you enable it by setting a key here. It can only +# consist of one char, so set it to something like a comma. +# default="" +leader-key="" + +# Number of milliseconds before the leader command resets. So if you tap the +# leader-key by mistake or are to slow it empties all the input after X +# milliseconds. +# default=1000 +leader-timeout=1000 + +# [[general.timelines]] +# Timelines adds panes of feeds. You can customize the number of feeds, what +# they should show and the key to activate them. + +# --- START OF EXAMPLE --- +# [[general.timelines]] +# name="home" +# type="home" +# hide-boosts=false +# hide-replies=false +# +# [[general.timelines]] +# name="Notifications" +# type="notifications" +# keys=["n", "N"] +# closed=true +# on-creation-closed="new-pane" +# on-focus="focus-self" +# --- END OF EXAMPLE --- + +# The name to display above the timeline +# default="" +# name="" + +# The type of the timeline +# valid: home, direct, local, federated, bookmarks, saved, favorited, notifications, +# lists, mentions, tag +# default="" +# type="" + +# Used for the tag type, so here you set the tag. If you have multiple you +# separate them with a space. +# default="" +# data="" + +# A list of keys to give this timeline focus. See under the input section to +# learn more about keys. +# default=[] +# keys=[] + +# A list of special-keys to give this timeline focus. See under the input +# section to learn more about special-keys. +# default=[] +# special-keys=[] + +# A shortcut to give this timeline focus with your leader-key + this shortcut. +# default="" +# shortcut="" + +# Hide boosts in this timeline. +# default="false" +# hide-boosts="false" + +# Hide replies in this timeline. +# default="false" +# hide-replies="false" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# default="false" +# closed="false" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# valid: new-pane, current-pane +# default="new-pane" +# on-creation-closed="new-pane" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# valid: focus-pane, focus-self +# default="focus-pane" +# on-focus="focus-pane" + +# [[general.leader-actions]] +# You set actions leader-key with one or more leader-actions. +# +# The shortcuts are up to you, but keep them quite short and make sure they +# don't collide. If you have one shortcut that is "f" and an other one that is +# "fav", the one with "f" will always run and "fav" will never run. +# +# Some special actions that requires data to be set: +# pane is special as it's a shortcut for switching between the panes you've set +# under general and they are zero indexed. pane 0 = your first timeline, pane 1 +# = your second and so on. +# list-placement as it takes the argument top, right, bottom or left +# list-split as it takes the argument column or row +# proportions takes the arguments [int] [int], where the first integer is the +# list and the other content, e.g. proportions 1 3. See list-proportion above +# for more information. + +# --- START OF EXAMPLE --- +# [[general.leader-actions]] +# type="close-pane" +# shortcut="q" +# +# [[general.leader-actions]] +# type="list-split" +# data="row" +# shortcut="r" +# +# [[general.leader-actions]] +# type="list-split" +# data="column" +# shortcut="c" +# --- END OF EXAMPLE --- + +# The action you want to run. +# valid: blocking, boosts, clear-notifications, close-pane, compose, edit, favorited, +# favorites, followers, following, history, list-placement, list-split, lists, +# move-pane-left, move-pane-right, move-pane-up, move-pane-down, move-pane-home, +# move-pane-end, muting, newer, pane, preferences, profile, proportions, +# refetch, stick-to-top, tags +# default="" +# type="" + +# Data to pass to the action. +# default="" +# data="" + +# A shortcut to run this action with your leader-key + this shortcut. +# default="" +# shortcut="" + +[media] +# Media files will be removed directly after they've been opened. Some programs +# doesn't like this, so if your media doesn't open, try set this to false. Tut +# will remove all files once you close the program. +# default=true +delete-temp-files=true + +[media.image] +# The program to open images. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.video] +# The program to open videos. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.audio] +# The program to open audio. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.link] +# The program to open links. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +[desktop-notification] +# Enable notifications when someone follows you. +# default=false +followers=false + +# Enable notifications when one of your toots gets favorited. +# default=false +favorite=false + +# Enable notifications when someone mentions you. +# default=false +mention=false + +# Enable notifications when a post you have interacted with gets edited. +# default=false +update=false + +# Enable notifications when one of your toots gets boosted. +# default=false +boost=false + +# Enable notifications when a poll ends. +# default=false +poll=false + +# Enable notifications for new posts. +# default=false +posts=false + +[open-custom] +# --- START OF EXAMPLE --- +# [[open-custom.programs]] +# program = 'chromium' +# terminal = false +# hint = "[C]hrome" +# keys = ["c", "C"] +# +# [[open-custom.programs]] +# program = 'imv' +# terminal = false +# hint = "[I]mv" +# keys = ["i", "I"]" +# --- END OF EXAMPLE --- + +# [[open-custom.programs]] +# The program to open the file with. +# default="" +# program="" + +# Arguments to pass to the program. +# default="" +# args="" + +# If the program runs in the terminal set this to true. +# default=false +# terminal=false + +# What should the key hint in tut be for this program. See under the input +# section to learn more about hint. +# default="" +# hint="" + +# A list of keys to to open files with this program. See under the input section +# to learn more about keys. +# default=[] +# keys=[] + +# A list of special-keys to open files with this program. See under the input +# section to learn more about special-keys. +# default=[] +# special-keys=[] + +[open-pattern] +# [[open-pattern.programs]] +# Here you can set your own glob patterns for opening matching URLs in the +# program you want them to open up in. You could for example open Youtube videos +# in your video player instead of your default browser. To see the syntax for +# glob pattern you can follow this URL https://github.com/gobwas/glob#syntax. +# default="" +# matching="" + +# The program to open the file with. +# default="" +# program="" + +# Arguments to pass to the program. +# default="" +# args="" + +# If the program runs in the terminal set this to true. +# default=false +# terminal=false + +[style] +# All styles can be represented in their HEX value like #ffffff or with their +# name, so in this case white. The only special value is "default" which equals +# to transparent, so it will be the same color as your terminal. +# You can also use xrdb colors like this xrdb:color1 The program will use colors +# prefixed with an * first then look for URxvt or XTerm if it can't find any +# color prefixed with an asterisk. If you don't want tut to guess the prefix you +# can set the prefix yourself. If the xrdb color can't be found a preset color +# will be used. You'll have to set theme="none" for this to work. + +# The theme to use. You can use some themes that comes bundled with tut. Check +# out the themes available on the URL below. If a theme is named nord.toml you +# just write theme="nord". +# +# https://github.com/RasmusLindroth/tut/tree/master/config/themes +# +# You can also create a theme file in your config directory e.g. +# ~/.config/tut/themes/foo.toml and then set theme=foo. +# +# If you want to use your own theme but don't want to create a new file, set +# theme="none" and then you can create your own theme below. +# +# default="default" +theme="catppuccin-mocha" + +# The xrdb prefix used for colors in .Xresources. +# default="guess" +xrdb-prefix="guess" + +# The background color used on most elements. +# default="" +background="" + +# The text color used on most of the text. +# default="" +text="" + +# The color to display subtle elements or subtle text. Like lines and help text. +# default="" +subtle="" + +# The color for errors or warnings +# default="" +warning-text="" + +# This color is used to display username. +# default="" +text-special-one="" + +# This color is used to display username and key hints. +# default="" +text-special-two="" + +# The color of the bar at the top +# default="" +top-bar-background="" + +# The color of the text in the bar at the top. +# default="" +top-bar-text="" + +# The color of the bar at the bottom +# default="" +status-bar-background="" + +# The color of the text in the bar at the bottom. +# default="" +status-bar-text="" + +# The color of the bar at the bottom in view mode. +# default="" +status-bar-view-background="" + +# The color of the text in the bar at the bottom in view mode. +# default="" +status-bar-view-text="" + +# The color of the text in the command bar at the bottom. +# default="" +command-text="" + +# Background of selected list items. +# default="" +list-selected-background="" + +# The text color of selected list items. +# default="" +list-selected-text="" + +# The background color of selected list items that are out of focus. +# default="" +list-selected-inactive-background="" + +# The text color of selected list items that are out of focus. +# default="" +list-selected-inactive-text="" + +# The main color of the text for key hints +# default="" +controls-text="" + +# The highlight color of for key hints +# default="" +controls-highlight="" + +# The background color in drop-downs and autocompletions +# default="" +autocomplete-background="" + +# The text color in drop-downs at autocompletions +# default="" +autocomplete-text="" + +# The background color for selected value in drop-downs and autocompletions +# default="" +autocomplete-selected-background="" + +# The text color for selected value in drop-downs and autocompletions +# default="" +autocomplete-selected-text="" + +# The background color on selected button and the text color of unselected +# buttons +# default="" +button-color-one="" + +# The text color on selected button and the background color of unselected +# buttons +# default="" +button-color-two="" + +# The background on named timelines. +# default="" +timeline-name-background="" + +# The text color on named timelines +# default="" +timeline-name-text="" + +[input] +# In this section you set the keys to be used in tut. +# +# The hint option lets you set which part of the hint that will be highlighted +# in tut. E.g. [F]avorite results in a highlighted F and the rest of the text is +# displayed normally. +# Some of the options can be in two states, like favorites, so there you can set +# the hint-alt option to something like Un[F]avorite. +# +# Examples: +# "[D]elete" = Delete with a highlighted D +# "Un[F]ollow" = UnFollow with a highlighted F +# "[Enter]" = Enter where everything is highlighted +# "Yan[K]" = YanK with a highlighted K +# +# The keys option lets you define what key that should be pressed. This is +# limited to on character only and they are case sensitive. +# Example: +# keys=["j","J"] +# +# You can also set special-keys and they're for keys like Escape and Enter. To +# find the names of special keys you have to go to the following site and look +# for "var KeyNames = map[Key]string{" +# +# https://github.com/gdamore/tcell/blob/master/key.go + +[input.global-down] +# Keys for moving down + +# default=["j", "J"] +keys=["j","J"] + +# default=["Down"] +special-keys=["Down"] + +[input.global-up] +# Keys for moving down + +# default=["k", "K"] +keys=["k","K"] + +# default=["Up"] +special-keys=["Up"] + +[input.global-enter] +# To select items + +# default=["Enter"] +special-keys=["Enter"] + +[input.global-back] +# To go back + +# default="[Esc]" +hint="[Esc]" + +# default=["Esc"] +special-keys=["Esc"] + +[input.global-exit] +# To go back or exit + +# default="[Q]uit" +hint="[Q]uit" + +# default=["q", "Q"] +keys=["q","Q"] + +[input.main-home] +# Move to the top + +# default=["g"] +keys=["g"] + +# default=["Home"] +special-keys=["Home"] + +[input.main-end] +# Move to the bottom + +# default=["G"] +keys=["G"] + +# default=["End"] +special-keys=["End"] + +[input.main-prev-feed] +# Go to previous feed + +# default=["h", "H"] +keys=["h","H"] + +# default=["Left"] +special-keys=["Left"] + +[input.main-next-feed] +# Go to next feed + +# default=["l", "L"] +keys=["l","L"] + +# default=["Right"] +special-keys=["Right"] + +[input.main-prev-pane] +# Focus on the previous feed pane + +# default=["Backtab"] +special-keys=["Backtab"] + +[input.main-next-pane] +# Focus on the next feed pane + +# default=["Tab"] +special-keys=["Tab"] + +[input.main-next-account] +# Focus on the next account + +# default=["Ctrl-N"] +special-keys=["Ctrl-N"] + +[input.main-prev-account] +# Focus on the previous account + +# default=["Ctrl-P"] +special-keys=["Ctrl-P"] + +[input.main-compose] +# Compose a new toot + +# default=["c", "C"] +keys=["c","C"] + +[input.status-avatar] +# Open avatar + +# default="[A]vatar" +hint="[A]vatar" + +# default=["a", "A"] +keys=["a","A"] + +[input.status-boost] +# Boost a toot + +# default="[B]oost" +hint="[B]oost" + +# default=["b", "B"] +keys=["b","B"] + +[input.status-edit] +# Edit a toot + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.status-delete] +# Delete a toot + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.status-favorite] +# Favorite a toot + +# default="[F]avorite" +hint="[F]avorite" + +# default=["f", "F"] +keys=["f","F"] + +[input.status-media] +# Open toots media files + +# default="[M]edia" +hint="[M]edia" + +# default=["m", "M"] +keys=["m","M"] + +[input.status-links] +# Open links + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.status-poll] +# Open poll + +# default="[P]oll" +hint="[P]oll" + +# default=["p", "P"] +keys=["p","P"] + +[input.status-reply] +# Reply to toot + +# default="[R]eply" +hint="[R]eply" + +# default=["r", "R"] +keys=["r","R"] + +[input.status-bookmark] +# Save/bookmark a toot + +# default="[S]ave" +hint="[S]ave" + +# default="Un[S]ave" +hint-alt="Un[S]ave" + +# default=["s", "S"] +keys=["s","S"] + +[input.status-thread] +# View thread + +# default="[T]hread" +hint="[T]hread" + +# default=["t", "T"] +keys=["t","T"] + +[input.status-user] +# Open user profile + +# default="[U]ser" +hint="[U]ser" + +# default=["u", "U"] +keys=["u","U"] + +[input.status-view-focus] +# Open the view mode + +# default="[V]iew" +hint="[V]iew" + +# default=["v", "V"] +keys=["v","V"] + +[input.status-yank] +# Yank the url of the toot + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.status-toggle-cw] +# Show the content in a content warning + +# default="Press [Z] to toggle cw" +hint="Press [Z] to toggle cw" + +# default=["z", "Z"] +keys=["z","Z"] + +[input.status-show-filtered] +# Show the content of a filtered toot + +# default="Press [Z] to view filtered toot" +hint="Press [Z] to view filtered toot" + +# default=["z", "Z"] +keys=["z","Z"] + +[input.user-avatar] +# View avatar + +# default="[A]vatar" +hint="[A]vatar" + +# default=["a", "A"] +keys=["a","A"] + +[input.user-block] +# Block the user + +# default="[B]lock" +hint="[B]lock" + +# default="Un[B]lock" +hint-alt="Un[B]lock" + +# default=["b", "B"] +keys=["b","B"] + +[input.user-follow] +# Follow user + +# default="[F]ollow" +hint="[F]ollow" + +# default="Un[F]ollow" +hint-alt="Un[F]ollow" + +# default=["f", "F"] +keys=["f","F"] + +[input.user-follow-request-decide] +# Follow user + +# default="Follow [R]equest" +hint="Follow [R]equest" + +# default="Follow [R]equest" +hint-alt="Follow [R]equest" + +# default=["r", "R"] +keys=["r","R"] + +[input.user-mute] +# Mute user + +# default="[M]ute" +hint="[M]ute" + +# default="Un[M]ute" +hint-alt="Un[M]ute" + +# default=["m", "M"] +keys=["m","M"] + +[input.user-links] +# Open links + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.user-user] +# View user profile + +# default="[U]ser" +hint="[U]ser" + +# default=["u", "U"] +keys=["u","U"] + +[input.user-view-focus] +# Open view mode + +# default="[V]iew" +hint="[V]iew" + +# default=["v", "V"] +keys=["v","V"] + +[input.user-yank] +# Yank the user URL + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.list-open-feed] +# Open list + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.list-user-list] +# List all users in a list + +# default="[U]sers" +hint="[U]sers" + +# default=["u", "U"] +keys=["u","U"] + +[input.list-user-add] +# Add user to list + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.list-user-delete] +# Delete user from list + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.link-open] +# Open URL + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.link-yank] +# Yank the URL + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.tag-open-feed] +# Open tag feed + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.tag-follow] +# Toggle follow on tag + +# default="[F]ollow" +hint="[F]ollow" + +# default="Un[F]ollow" +hint-alt="Un[F]ollow" + +# default=["f", "F"] +keys=["f","F"] + +[input.compose-edit-cw] +# Edit content warning text on new toot + +# default="[C]W text" +hint="[C]W text" + +# default=["c", "C"] +keys=["c","C"] + +[input.compose-edit-text] +# Edit the text on new toot + +# default="[E]dit text" +hint="[E]dit text" + +# default=["e", "E"] +keys=["e","E"] + +[input.compose-include-quote] +# Include a quote when replying + +# default="[I]nclude quote" +hint="[I]nclude quote" + +# default=["i", "I"] +keys=["i","I"] + +[input.compose-media-focus] +# Focus on adding media to toot + +# default="[M]edia" +hint="[M]edia" + +# default=["m", "M"] +keys=["m","M"] + +[input.compose-post] +# Post the new toot + +# default="[P]ost" +hint="[P]ost" + +# default=["p", "P"] +keys=["p","P"] + +[input.compose-toggle-content-warning] +# Toggle content warning on toot + +# default="[T]oggle CW" +hint="[T]oggle CW" + +# default=["t", "T"] +keys=["t","T"] + +[input.compose-visibility] +# Edit the visibility on new toot + +# default="[V]isibility" +hint="[V]isibility" + +# default=["v", "V"] +keys=["v","V"] + +[input.compose-language] +# Edit the language of a toot + +# default="[L]ang" +hint="[L]ang" + +# default=["l", "L"] +keys=["l","L"] + +[input.compose-poll] +# Switch to creating a poll + +# default="P[O]ll" +hint="P[O]ll" + +# default=["o", "O"] +keys=["o","O"] + +[input.media-delete] +# Delete media file + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.media-edit-desc] +# Edit the description on media file + +# default="[E]dit desc" +hint="[E]dit desc" + +# default=["e", "E"] +keys=["e","E"] + +[input.media-add] +# Add a new media file + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.vote-vote] +# Vote on poll + +# default="[V]ote" +hint="[V]ote" + +# default=["v", "V"] +keys=["v","V"] + +[input.vote-select] +# Select item to vote on + +# default="[Enter] to select" +hint="[Enter] to select" + +# default=["Enter"] +special-keys=["Enter"] + +[input.poll-add] +# Add a new poll option + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.poll-edit] +# Edit a poll option + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.poll-delete] +# Delete a poll option + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.poll-multi-toggle] +# Toggle voting on multiple options + +# default="Toggle [M]ultiple" +hint="Toggle [M]ultiple" + +# default=["m", "M"] +keys=["m","M"] + +[input.poll-expiration] +# Change the expiration of poll + +# default="E[X]pires" +hint="E[X]pires" + +# default=["x", "X"] +keys=["x","X"] + +[input.preference-name] +# Change display name + +# default="[N]ame" +hint="[N]ame" + +# default=["n", "N"] +keys=["n","N"] + +[input.preference-visibility] +# Change default visibility of toots + +# default="[V]isibility" +hint="[V]isibility" + +# default=["v", "V"] +keys=["v","V"] + +[input.preference-bio] +# Change bio in profile + +# default="[B]io" +hint="[B]io" + +# default=["b", "B"] +keys=["b","B"] + +[input.preference-save] +# Save your preferences + +# default="[S]ave" +hint="[S]ave" + +# default=["s", "S"] +keys=["s","S"] + +[input.preference-fields] +# Edit profile fields + +# default="[F]ields" +hint="[F]ields" + +# default=["f", "F"] +keys=["f","F"] + +[input.preference-fields-add] +# Add new field + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.preference-fields-edit] +# Edit current field + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.preference-fields-delete] +# Delete current field + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.editor-exit] +# Exit the editor + +# default="[Esc] when done" +hint="[Esc] when done" + +# default=["Esc"] +special-keys=["Esc"] diff --git a/tut/themes/catppuccin-mocha.toml b/tut/themes/catppuccin-mocha.toml new file mode 100644 index 0000000..18af186 --- /dev/null +++ b/tut/themes/catppuccin-mocha.toml @@ -0,0 +1,27 @@ +background="#11111b" +text="#cdd6f4" +subtle="#a6adc8" +warning-text="#f38ba8" +text-special-one="#cba6f7" +text-special-two="#a6e3a1" +top-bar-background="#89dceb" +top-bar-text="#181825" +status-bar-background="#313244" +status-bar-text="#cdd6f4" +status-bar-view-background="#6c7086" +status-bar-view-text="#cdd6f4" +list-selected-background="#74c7ec" +list-selected-text="#181825" +list-selected-inactive-background="#313244" +list-selected-inactive-text="#a6adc8" +controls-text="#cdd6f4" +controls-highlight="#fab387" +autocomplete-background="#1e1e2e" +autocomplete-text="#a6adc8" +autocomplete-selected-background="#7f849c" +autocomplete-selected-text="#cdd6f4" +button-color-one="#a6e3a1" +button-color-two="#181825" +timeline-name-background="#1e1e2e" +timeline-name-text="#cdd6f4" +command-text="#cdd6f4" \ No newline at end of file diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..4f1b47a --- /dev/null +++ b/waybar/config @@ -0,0 +1,167 @@ +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"], + "modules-center": ["sway/window"], + "modules-right": ["mpd", "cpu", "memory", "temperature", "battery", "battery#bat2", "clock", "tray"], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "warp-on-scroll": false, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} + diff --git a/waybar/mocha.css b/waybar/mocha.css new file mode 100644 index 0000000..98e218a --- /dev/null +++ b/waybar/mocha.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Mocha palette +* Maintainer: rubyowo +* +*/ + +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; + +@define-color text #cdd6f4; +@define-color subtext0 #a6adc8; +@define-color subtext1 #bac2de; + +@define-color surface0 #313244; +@define-color surface1 #45475a; +@define-color surface2 #585b70; + +@define-color overlay0 #6c7086; +@define-color overlay1 #7f849c; +@define-color overlay2 #9399b2; + +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color sapphire #74c7ec; +@define-color sky #89dceb; +@define-color teal #94e2d5; +@define-color green #a6e3a1; +@define-color yellow #f9e2af; +@define-color peach #fab387; +@define-color maroon #eba0ac; +@define-color red #f38ba8; +@define-color mauve #cba6f7; +@define-color pink #f5c2e7; +@define-color flamingo #f2cdcd; +@define-color rosewater #f5e0dc; diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..7996698 --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,162 @@ +@import "mocha.css"; +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: MonaspaceXenon Nerd Font, FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; +} + +window#waybar { + background-color: @base; + color: @text; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px @rosewater; +} + +#workspaces button { + padding: 0 5px; + background-color: @mantle; + color: @subtext0; +} + +#workspaces button:hover { + background: @surface0; +} + +#workspaces button.focused { + background-color: @surface1; + box-shadow: inset 0 -3px @rosewater; +} + +#workspaces button.urgent { + background-color: @yellow; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 10px; + background-color: @surface1; + color: @text; +} + +#mpd { + background-color: @sky; + color: @crust; +} + +#clock { + background-color: @mauve; + color: @crust; +} + +#cpu { + background-color: @green; + color: @crust; +} + +#memory { + background-color: @pink; + color: @crust; +} + +#battery { + background-color: @peach; + color: @crust; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#battery.charging, #battery.plugged { + color: @crust; + background-color: @teal; +} + +@keyframes blink { + to { + background-color: @crust; + color: @red; + } +} + +#battery.critical:not(.charging) { + background-color: @red; + color: @crust; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #000000; +} + +#temperature { + background-color: @blue; + color: @crust; +} + +#temperature.critical { + background-color: @red; +} + diff --git a/wiki-tui.toml b/wiki-tui.toml new file mode 100644 index 0000000..94b24a1 --- /dev/null +++ b/wiki-tui.toml @@ -0,0 +1,62 @@ +[api] +pre_language = 'https://' +post_language = '.wikipedia.org/w/api.php' +language = 'English' +language_changed_popup = true +article_language_changed_popup = true + +[theme] +text = '#cdd6f4' +title = 'a6e3a1' +highlight = 'fab387' +background = '11111b' +search_match = 'f9e2af' +highlight_text = '313244' +highlight_inactive = 'b4befe' + +[logging] +enabled = true +log_level = 'INFO' + +[features] +links = true +toc = true +[keybindings.down] +key = 'down' +mode = 'normal' + +[keybindings.up] +key = 'up' +mode = 'normal' + +[keybindings.left] +key = 'left' +mode = 'normal' + +[keybindings.right] +key = 'right' +mode = 'normal' + +[keybindings.focus_next] +key = 'tab' +mode = 'normal' + +[keybindings.focus_prev] +key = 'tab' +mode = 'shift' + +[keybindings.toggle_language_selection] +key = 'f2' +mode = 'normal' + +[keybindings.toggle_article_language_selection] +key = 'f3' +mode = 'normal' +[settings.toc] +position = 'Right' +title = 'Default' +min_width = 20 +max_width = 60 +scroll_x = true +scroll_y = true +item_format = '{NUMBER} {TEXT}'