diff options
| -rw-r--r-- | .config/alacritty/alacritty.yml | 913 | ||||
| -rw-r--r-- | .config/dunst/dunstrc | 4 | ||||
| -rw-r--r-- | .config/hypr/hyprland.conf | 197 | ||||
| -rw-r--r-- | .config/hypr/hyprpaper.conf | 4 | ||||
| -rw-r--r-- | .config/mimeapps.list | 8 | ||||
| -rw-r--r-- | .config/nvim/lua/keymap.lua | 2 | ||||
| -rw-r--r-- | .config/nvim/lua/plug.lua | 1 | ||||
| -rw-r--r-- | .config/nvim/lua/settings.lua | 2 | ||||
| -rw-r--r-- | .config/qutebrowser/autoconfig.yml | 69 | ||||
| -rw-r--r-- | .config/sway/config | 2 | ||||
| -rw-r--r-- | .config/waybar/config | 248 | ||||
| -rw-r--r-- | .config/waybar/style.css | 154 | ||||
| -rw-r--r-- | .config/waybar/waybar/config | 92 | ||||
| -rw-r--r-- | .config/waybar/waybar/style.css | 59 | ||||
| -rw-r--r-- | .config/zsh/knight | 6 | ||||
| -rwxr-xr-x | .local/bin/autostart_dwl | 7 | ||||
| -rw-r--r-- | .local/bin/bar | 4 | ||||
| -rw-r--r-- | .local/bin/es | 6 | ||||
| -rw-r--r-- | .local/bin/manuals | 2 | ||||
| -rwxr-xr-x | .local/bin/start_dwl | 2 | ||||
| -rw-r--r-- | .profile | 37 |
21 files changed, 1494 insertions, 325 deletions
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..1f40273 --- /dev/null +++ b/.config/alacritty/alacritty.yml @@ -0,0 +1,913 @@ +# 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 + +# 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: xterm-256color + +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: 5 + y: 5 + + # 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: SauceCodePro 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: SauceCodePro Nerd Font + + # 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: SauceCodePro Nerd Font + + # 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: SauceCodePro Nerd Font + + # The `style` can be specified to pick a specific face. + style: Bold Italic + + # Point size + size: 11.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: true + +# Colors (Tomorrow Night) +colors: + # Default colors + primary: + background: '#282828' + foreground: '#ebdbb2' + + # 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: '#ebdbb2' + background: '#3c3836' + focused_match: + foreground: '#ebdbb2' + background: '#689d6a' + + # 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: '#282828' + red: '#cc241d' + green: '#98971a' + yellow: '#d79921' + blue: '#458588' + magenta: '#b16286' + cyan: '#689d6a' + white: '#ebdbb2' + + # Bright colors + bright: + black: '#928374' + red: '#fb4934' + green: '#b8bb26' + yellow: '#fadb2f' + blue: '#83a598' + magenta: '#d3869b' + cyan: '#8ec07c' + white: '#fbf1c7' + + # 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: /bin/bash +# 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: true + +# 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: C, mods: Alt, action: Copy } + - { key: V, mods: Alt, action: Paste } + #- { 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/.config/dunst/dunstrc b/.config/dunst/dunstrc index 01f3dc0..3411ddd 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -41,7 +41,7 @@ # The transparency of the window. Range: [0; 100]. # This option will only work if a compositing window manager is # present (e.g. xcompmgr, compiz, etc.). - transparency = 10 + transparency = 0 # The height of the entire notification. If the height is smaller # than the font height and padding combined, it will be raised @@ -213,7 +213,7 @@ # corners. # The radius will be automatically lowered if it exceeds half of the # notification height to avoid clipping text and/or icons. - corner_radius = 15 + corner_radius = 0 ### Legacy diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..7a3f2c9 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,197 @@ +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=DP-2,preferred,0x0,1 +monitor=DP-3,preferred,1920x0,1 +monitor=HDMI-A-1,preferred,3840x0,1 + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once = waybar +exec-once = swaybg -i .config/bg/orion.png +exec-once = blueberry-tray +exec-once = element-desktop --hidden +exec-once = /usr/lib/kdeconnectd && kdeconnect-indicator + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = caps:escape + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 10 + gaps_out = 10 + border_size = 3 + col.active_border = rgba(b16286ff) + col.inactive_border = rgba(3c3836ff) + layout = dwindle +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 3, myBezier + animation = windowsOut, 1, 3, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 5, default + animation = workspaces, 1, 3, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +#windowrule = float,^(Hyprmenu)$ +# Example windowrule v2 +windowrulev2 = pin,title:^(Hyprmenu)$ +windowrulev2 = float,title:^(Hyprmenu)$ +windowrulev2 = center,title:^(Hyprmenu)$ + +windowrulev2 = pin,class:^(floating)$ +windowrulev2 = float,class:^(floating)$ +windowrulev2 = center,class:^(floating)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, C, killactive, +bind = $mainMod+Shift, Q, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, S, togglesplit, # dwindle +bind = $mainMod, Space, exec, hyprmenu_run +bind = $mainMod+Shift, P, exec, passmenu +bind = $mainMod+Shift, B, exec, qutebrowser +bind = $mainMod+Shift, E, exec, alacritty -e neomutt +bind = $mainMod+Shift, Return, exec, alacritty +bind = $mainMod, F, fullscreen, 0 +bind = $mainMod, M, exec, doc +binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ +binde=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bind =, XF86AudioPlay, exec, playerctl play-pause +bind =, Scroll_Lock, exec, wlock +bind = , Print, exec, grimshot copy area +bind = $mainMod, F12, exec, sh -c 'keyusbctl -t && pkill -RTMIN+10 waybar' +bind = $mainMod, F1, movecurrentworkspacetomonitor, 0 +bind = $mainMod, F2, movecurrentworkspacetomonitor, 1 +bind = $mainMod, F3, movecurrentworkspacetomonitor, 2 + +# Move focus with mainMod + arrow keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# will switch to a submap called resize +bind=$mainMod,R,submap,resize +# will start a submap called "resize" +submap=resize +# sets repeatable binds for resizing the active window +binde=,l,resizeactive,20 0 +binde=,h,resizeactive,-20 0 +binde=,k,resizeactive,0 -20 +binde=,j,resizeactive,0 20 +# use reset to go back to the global submap +bind=,escape,submap,reset +# will reset the submap, meaning end the current one and return to the global one +submap=reset + +bind = $mainMod+Shift, l, movewindow, r +bind = $mainMod+Shift, h, movewindow, l +bind = $mainMod+Shift, j, movewindow, d +bind = $mainMod+Shift, k, movewindow, u diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..3af9d31 --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,4 @@ +preload = ~/.config/bg/orion.png +wallpaper = DP-2,~/.config/bg/orion.png +wallpaper = HDMI-A-1,~/.config/bg/orion.png +wallpaper = DP-3,~/.config/bg/orion.png diff --git a/.config/mimeapps.list b/.config/mimeapps.list index f46b958..d1e166b 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -1,9 +1,11 @@ [Default Applications] +text/html=qutebrowser.desktop + x-scheme-handler/lbry=lbry.desktop -x-scheme-handler/etcher=balena-etcher-electron.desktop -x-scheme-handler/http=librewolf.desktop -x-scheme-handler/https=librewolf.desktop +x-scheme-handler/etcher=balena-etcher.desktop +x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop +x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop x-scheme-handler/qute=org.qutebrowser.qutebrowser.desktop x-scheme-handler/mailto=neomutt.desktop diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua index 17f80e1..ccab671 100644 --- a/.config/nvim/lua/keymap.lua +++ b/.config/nvim/lua/keymap.lua @@ -43,6 +43,8 @@ vim.api.nvim_set_keymap("v", "{", "s{<ESC>pa}", {noremap = true}) vim.api.nvim_set_keymap("v", '"', 's"<ESC>pa"', {noremap = true}) vim.api.nvim_set_keymap("v", "'", "s'<ESC>pa'", {noremap = true}) vim.cmd('autocmd Filetype c nnoremap <buffer> <tab> :CSelNextArg<Cr>') +vim.cmd('autocmd Filetype rust nnoremap <buffer> <leader>r :!cargo run<Cr>') +vim.cmd('autocmd Filetype rust nnoremap <buffer> <leader>R :!cargo run --release<Cr>') vim.api.nvim_set_keymap("n", "<leader>dB", ":GdbBreakpointToggle", {noremap = true}) vim.api.nvim_set_keymap("n", "<leader>dn", ":GdbNext", {noremap = true}) diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua index 2ce8e04..d95fe31 100644 --- a/.config/nvim/lua/plug.lua +++ b/.config/nvim/lua/plug.lua @@ -18,6 +18,7 @@ Plug 'sakhnik/nvim-gdb' Plug 'nvim-treesitter/nvim-treesitter' Plug 'jalvesaq/Nvim-R' Plug('neoclide/coc.nvim', {branch = 'release'}) +Plug("theRealCarneiro/hyprland-vim-syntax", { ft = "hypr" }) vim.call('plug#end') diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua index 5253c27..02cc457 100644 --- a/.config/nvim/lua/settings.lua +++ b/.config/nvim/lua/settings.lua @@ -60,6 +60,6 @@ configs.setup({ enable = true, }, indent = { - enable = false, + enable = true, }, }) diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml index 5bb0465..d8faa43 100644 --- a/.config/qutebrowser/autoconfig.yml +++ b/.config/qutebrowser/autoconfig.yml @@ -12,71 +12,71 @@ settings: gle: spawn --userscript leo-eng glf: spawn --userscript leo-fr colors.completion.category.bg: - global: '#252525' + global: '#282828' colors.completion.category.border.bottom: - global: '#252525' + global: '#282828' colors.completion.category.border.top: - global: '#252525' + global: '#282828' colors.completion.even.bg: - global: '#181818' + global: '#1d2021' colors.completion.item.selected.bg: - global: '#547f62' + global: '#b16286' colors.completion.item.selected.border.bottom: - global: '#547f62' + global: '#b16286' colors.completion.item.selected.border.top: - global: '#547f62' + global: '#b16286' colors.completion.item.selected.match.fg: global: '#ffffff' colors.completion.match.fg: - global: '#547f62' + global: '#b16286' colors.completion.odd.bg: - global: '#181818' + global: '#1d2021' colors.completion.scrollbar.bg: - global: '#252525' + global: '#282828' colors.completion.scrollbar.fg: - global: '#547f62' + global: '#b16286' colors.messages.error.bg: - global: '#bc5858' + global: '#cc241d' colors.messages.info.bg: - global: '#181818' + global: '#1d2021' colors.messages.warning.bg: global: '#e8c75c' colors.statusbar.command.bg: - global: '#181818' + global: '#1d2021' colors.statusbar.insert.bg: - global: '#252525' + global: '#282828' colors.statusbar.normal.bg: - global: '#181818' + global: '#1d2021' colors.statusbar.progress.bg: - global: '#547f62' + global: '#b16286' colors.statusbar.url.error.fg: - global: '#bc5858' + global: '#cc241d' colors.statusbar.url.hover.fg: - global: '#6da6ce' + global: '#458588' colors.statusbar.url.success.http.fg: global: '#989898' colors.statusbar.url.success.https.fg: - global: '#547f62' + global: '#b16286' colors.tabs.bar.bg: - global: '#181818' + global: '#1d2021' colors.tabs.even.bg: - global: '#181818' + global: '#1d2021' colors.tabs.even.fg: global: '#999' colors.tabs.indicator.error: global: '#e8c75c' colors.tabs.indicator.start: - global: '#6da6ce' + global: '#458588' colors.tabs.indicator.stop: - global: '#547f62' + global: '#b16286' colors.tabs.odd.bg: - global: '#181818' + global: '#1d2021' colors.tabs.odd.fg: global: '#999' colors.tabs.selected.even.bg: - global: '#547f62' + global: '#b16286' colors.tabs.selected.odd.bg: - global: '#547f62' + global: '#b16286' colors.webpage.darkmode.algorithm: global: lightness-cielab colors.webpage.darkmode.enabled: @@ -94,8 +94,14 @@ settings: content.blocking.enabled: global: true content.blocking.method: - global: adblock + global: both + content.desktop_capture: + https://live-samples.mdn.mozilla.net: true + https://live.mdnplay.dev: true + https://meet.element.io: true content.notifications.enabled: + https://chat.nathanreiner.xyz: true + https://lichess.org: true https://www.chess.com: false https://www.reddit.com: false downloads.location.directory: @@ -133,6 +139,9 @@ settings: tabs.position: global: top url.default_page: - global: ~/.config/startpage/start.html + global: https://search.nathanreiner.xyz + url.searchengines: + global: + DEFAULT: https://duckduckgo.com/?q={} url.start_pages: - global: ~/.config/startpage/start.html + global: https://search.nathanreiner.xyz diff --git a/.config/sway/config b/.config/sway/config index 3621a50..21c523e 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -40,8 +40,6 @@ set $lock swaylock -c 181818 \ ### Output configuration # # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) - -output * bg /home/nathanreiner/Bilder/bg.png fill # # Example configuration: # diff --git a/.config/waybar/config b/.config/waybar/config index 9743a0f..1a5e021 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,160 +1,92 @@ { - // "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"], - "modules-center": ["sway/window"], - "modules-right": ["pulseaudio", "network", "sway/language", "clock", "tray"], - // Modules configuration - // "sway/workspaces": { - // "disable-scroll": true, - // "all-outputs": true, - // "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": "<span style=\"italic\">{}</span>" - }, - "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": "<span color=\"#f53c3c\"></span> ", - "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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", - "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-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": { - "Playing": ">", - "Pause": "||", - "No players found": "0" - }, - "escape": true, - "exec": "playerctl status 2> /dev/null" // Script in resources folder - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name - }, + "layer": "top", + "position": "top", + "height": 50, + "spacing": 5, + "margin-bottom": -11, + "margin-left": 10, + "margin-right": 13, + "modules-left": ["hyprland/workspaces"], + "modules-center": ["hyprland/window"], + "modules-right": ["tray","custom/keylock","custom/media","pulseaudio","memory","cpu","clock"], + // custom modules //////////////// + "wlr/workspaces": { + "format": "{icon}", + "format-active": "{icon}", + "on-click": "activate", + "format-icons":{ + "1": "α", + "2": "β", + "3": "γ", + "4": "δ", + "5": "ε", + "6": "ζ", + "7": "η", + "8": "θ", + "9": "ι", + "10":"κ" + } + }, + "hyprland/window": { + "format": "{}", + "rewrite": { + "(.*) - Mozilla Firefox": "$1", + "(.*) - qutebrowser": "$1", + "": "Hyprland" + }, + "separate-outputs": true + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "interval": 60, + "format": "{:%H:%M %d.%m.%y}", + "max-length": 25 + }, + "cpu": { + "interval":1, + "format": "{icon0} {icon1} {icon2} {icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + "on-click": "alacritty -e btop" + }, + "memory": { + "format": "{}% " + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "interval": "once", + "format": "{}", + "max-length": 40, + "on-click": "playerctl play-pause && pkill -RTMIN+9 waybar", + "on-click-right": "playerctl stop && pkill -RTMIN+9 waybar", + "exec": "sleep 0.1 && playerctl status", + "signal": 9 + }, + "custom/keylock": { + "interval": "once", + "format": "{}", + "on-click": "keyusbctl -t && pkill -RTMIN+10 waybar", + "exec": "keylock", + "exec-on-event" : true, + "signal": 10 + } } - diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 99be8d7..8955b4e 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -1,127 +1,59 @@ * { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: 'Source Code Pro', Roboto, Helvetica, Arial, sans-serif; + font-family: SauceCodePro Nerd Font,FontAwesome, Roboto, Helvetica, Arial, sans-serif; font-size: 13px; + font-weight: bold; + color: #ebdbb2; } window#waybar { - background-color: #191919; - border-bottom: 3px solid #282828; - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; + background-color: transparent; + /*background-color: #1d2021;*/ } -window#waybar.hidden { - opacity: 0.2; +#workspaces{ + background-color: transparent; + margin-top: 10px; + margin-bottom: 10px; + margin-right: 10px; } - -/* -window#waybar.empty { -background-color: transparent; -} -window#waybar.solo { -background-color: #FFFFFF; +#workspaces button { + background-color: #3c3836; + border-radius: 20px; + font-weight: bolder; + margin-left: 5px; } - */ - - window#waybar.termite { - background-color: #3F3F3F; - } - - window#waybar.chromium { - background-color: #000000; - border: none; - } - - #workspaces button { - padding: 0 5px; - background-color: transparent; - color: #ffffff; - /* Use box-shadow instead of border so the text isn't offset */ - box-shadow: inset 0 -3px transparent; - /* Avoid rounded borders under each workspace name */ - border: none; - border-radius: 0; - } - /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ - #workspaces button:hover { - background: rgba(0, 0, 0, 0); - box-shadow: inset 0 -3px #547f62; - } - - #workspaces button.focused { - background-color: #547f62; - box-shadow: inset 0 -3px #547f62; - } - - #workspaces button.urgent { - background-color: #eb4d4b; - } - - #mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; - } - - #clock, - #battery, - #cpu, - #memory, - #disk, - #temperature, - #backlight, - #network, - #pulseaudio, - #custom-media, - #language, - #tray, - #mode, - #idle_inhibitor, - #mpd { - padding: 0 10px; - color: #ffffff; - background-color: #282828; - } - - #window, - #workspaces { - margin: 0 4px; - } - - /* If workspaces is the leftmost module, omit left margin */ - .modules-left > widget:first-child > #workspaces { - margin-left: 0; - } +#workspaces button.active { + background-color: #b16286; +} - /* If workspaces is the rightmost module, omit right margin */ - .modules-right > widget:last-child > #workspaces { - margin-right: 0; +@keyframes gradient { + 0% { + background-position: 0% 50%; } - - @keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } + 50% { + background-position: 100% 50%; } - - #battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; + 100% { + background-position: 0% 50%; } +} - #tray > .passive { - -gtk-icon-effect: dim; - } +#tray, +#custom-media, +#custom-keylock, +#pulseaudio, +#memory, +#cpu, +#clock, +#window +{ + background-color: #3c3836; + border-radius: 20px; + margin: 10px 0; + padding: 5px 10px; +} - #tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; - } +#custom-keylock { + padding: 5px 13px; +} diff --git a/.config/waybar/waybar/config b/.config/waybar/waybar/config new file mode 100644 index 0000000..1a5e021 --- /dev/null +++ b/.config/waybar/waybar/config @@ -0,0 +1,92 @@ +{ + "layer": "top", + "position": "top", + "height": 50, + "spacing": 5, + "margin-bottom": -11, + "margin-left": 10, + "margin-right": 13, + "modules-left": ["hyprland/workspaces"], + "modules-center": ["hyprland/window"], + "modules-right": ["tray","custom/keylock","custom/media","pulseaudio","memory","cpu","clock"], + // custom modules //////////////// + "wlr/workspaces": { + "format": "{icon}", + "format-active": "{icon}", + "on-click": "activate", + "format-icons":{ + "1": "α", + "2": "β", + "3": "γ", + "4": "δ", + "5": "ε", + "6": "ζ", + "7": "η", + "8": "θ", + "9": "ι", + "10":"κ" + } + }, + "hyprland/window": { + "format": "{}", + "rewrite": { + "(.*) - Mozilla Firefox": "$1", + "(.*) - qutebrowser": "$1", + "": "Hyprland" + }, + "separate-outputs": true + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", + "interval": 60, + "format": "{:%H:%M %d.%m.%y}", + "max-length": 25 + }, + "cpu": { + "interval":1, + "format": "{icon0} {icon1} {icon2} {icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + "on-click": "alacritty -e btop" + }, + "memory": { + "format": "{}% " + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "interval": "once", + "format": "{}", + "max-length": 40, + "on-click": "playerctl play-pause && pkill -RTMIN+9 waybar", + "on-click-right": "playerctl stop && pkill -RTMIN+9 waybar", + "exec": "sleep 0.1 && playerctl status", + "signal": 9 + }, + "custom/keylock": { + "interval": "once", + "format": "{}", + "on-click": "keyusbctl -t && pkill -RTMIN+10 waybar", + "exec": "keylock", + "exec-on-event" : true, + "signal": 10 + } +} diff --git a/.config/waybar/waybar/style.css b/.config/waybar/waybar/style.css new file mode 100644 index 0000000..8955b4e --- /dev/null +++ b/.config/waybar/waybar/style.css @@ -0,0 +1,59 @@ +* { + font-family: SauceCodePro Nerd Font,FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: bold; + color: #ebdbb2; +} + +window#waybar { + background-color: transparent; + /*background-color: #1d2021;*/ +} + +#workspaces{ + background-color: transparent; + margin-top: 10px; + margin-bottom: 10px; + margin-right: 10px; +} +#workspaces button { + background-color: #3c3836; + border-radius: 20px; + font-weight: bolder; + margin-left: 5px; +} + +#workspaces button.active { + background-color: #b16286; +} + +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +#tray, +#custom-media, +#custom-keylock, +#pulseaudio, +#memory, +#cpu, +#clock, +#window +{ + background-color: #3c3836; + border-radius: 20px; + margin: 10px 0; + padding: 5px 10px; +} + +#custom-keylock { + padding: 5px 13px; +} diff --git a/.config/zsh/knight b/.config/zsh/knight index 84f4ece..74fd69b 100644 --- a/.config/zsh/knight +++ b/.config/zsh/knight @@ -2,8 +2,8 @@ prompt_git_status() { if [ -n "$(git branch 2>/dev/null)" ]; then - sign="\ue725"; - [[ -n "$(git status -s)" ]] && sign="\ufc1a"; + sign=""; + [[ -n "$(git status -s)" ]] && sign=""; git_branch=$(git branch); echo "%F{5}%f%F{0}%K{5}${sign} ${git_branch##*\* }%k%F{5}%k"; fi; @@ -13,6 +13,6 @@ update_prompt() { export RPROMPT="$(prompt_git_status)" } -PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%K{0}%f%k%F{cyan}%K{0} %f%k%K{cyan}%F{0}%m%k%f%F{cyan}%K{0} %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f " +PROMPT="%F{cyan}%F{0}%K{cyan}%n%k%f%F{cyan}%k%f %F{cyan}%f%k%K{cyan}%F{0}%m%k%f%F{cyan}%k %f%k%F{magenta}%F{0}%K{magenta}%~%f%k%F{magenta}%k%f " [[ -z "$precmd_functions" ]] && precmd_functions=() precmd_functions=($precmd_functions update_prompt) diff --git a/.local/bin/autostart_dwl b/.local/bin/autostart_dwl index 5cc67a8..a3d7f59 100755 --- a/.local/bin/autostart_dwl +++ b/.local/bin/autostart_dwl @@ -1,6 +1,13 @@ #!/bin/sh +systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway + +nextcloud --background & dbar & status -d & +dunst & +/usr/lib/kdeconnectd & +cat ~/.config/bg/dwl.ff | ffbg & exec <&- diff --git a/.local/bin/bar b/.local/bin/bar index 39267a6..c0db944 100644 --- a/.local/bin/bar +++ b/.local/bin/bar @@ -13,7 +13,7 @@ if [ "$usage" -gt "$STEPS" ]; then usage=$STEPS fi -printf "" +printf "" repeat "" "$usage" repeat "" "$(expr $STEPS - $usage)" -printf "\n" +printf "\n" diff --git a/.local/bin/es b/.local/bin/es index e162559..f8a6b2e 100644 --- a/.local/bin/es +++ b/.local/bin/es @@ -1,3 +1,7 @@ #!/bin/sh -nvim $HOME/.local/bin/$(ls $HOME/.local/bin | fzf) +path="$HOME/.local/bin/$(ls $HOME/.local/bin | dmenu)" + +nvim "$path" + +chmod +x $path diff --git a/.local/bin/manuals b/.local/bin/manuals index 8b57b2b..080a817 100644 --- a/.local/bin/manuals +++ b/.local/bin/manuals @@ -1,2 +1,2 @@ #!/bin/sh -st man $(man -k - | dmenu | awk '{print $1}') +$TERM -e man $(man -k - | dmenu | awk '{print $1}') diff --git a/.local/bin/start_dwl b/.local/bin/start_dwl index 7be33bb..818252e 100755 --- a/.local/bin/start_dwl +++ b/.local/bin/start_dwl @@ -1,5 +1,5 @@ #!/bin/sh while (true); do - dwl -s autostart_dwl + dwl -s autostart_dwl 2> ~/.cache/dwl_log done @@ -2,17 +2,19 @@ export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" export XDG_DOCUMENTS_DIR="$HOME/documents/" export XDG_DOWNLOADS_DIR="$HOME/" export JAVA_HOME=/usr/lib/jvm/default export PATH="$HOME/.local/bin:/":$PATH export PATH="$HOME/.gem/ruby/2.7.0/bin":$PATH +export PATH="/opt/rocm/bin":$PATH export EDITOR="nvim" export TERMINAL="st" -export BROWSER="brave" +export BROWSER="qutebrowser" export READER="zathura" -export MANPAGER="sh -c 'col -bx | bat -l man --paging always -p'" +export LOCKSCREEN="wlock" export GEM_HOME="$XDG_DATA_HOME"/gem export GEM_SPEC_CACHE="$XDG_CACHE_HOME"/gem export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle @@ -27,14 +29,27 @@ export GNUPGHOME="$XDG_DATA_HOME/gnupg" export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/config" export WWW_HOME="https://search.nathanreiner.xyz" export GDBHISTFILE="$XDG_DATA_HOME/gdb/history" +export R_LIBS_USER="$XDG_DATA_HOME/R/" +export RUSTUP_HOME="$XDG_DATA_HOME"/rustup +export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java +export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc +export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history +export KODI_DATA="$XDG_DATA_HOME"/kodi +export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config +export CABAL_DIR="$XDG_DATA_HOME"/cabal +export HISTFILE="${XDG_STATE_HOME}"/bash/history +export ANDROID_HOME="$XDG_DATA_HOME"/android +export PAGER="nvimpager -p" +export MANPAGER="$PAGER" -alias gpg2='gpg2 --homedir "$XDG_DATA_HOME/gnupg"' -alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"' -alias mbsync='mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc' -alias v='nvim' -alias fmount='udisksctl mount -b' -alias funmount='udisksctl unmount -b' -alias open='setsid xdg-open' +alias gpg2=gpg2 --homedir "$XDG_DATA_HOME/gnupg" +alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts" +alias mbsync=mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc +alias v=nvim +alias fmount=udisksctl mount -b +alias funmount=udisksctl unmount -b +alias open=setsid xdg-open export LESSHISTFILE="$XDG_CACHE_HOME/less/history" export MYSQL_HISTFILE="$XDG_DATA_HOME/mysql/history" @@ -71,5 +86,7 @@ compactbutton=white,black ' if [ -z "${DISPLAY}${WAYLAND_DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then - start_dwl + #start_dwl + Hyprland 2> /dev/null > /dev/null + exit fi |