diff --git a/guides/01_INSTALLATION.md b/guides/01_INSTALLATION.md
index e1fa750..740f19b 100644
--- a/guides/01_INSTALLATION.md
+++ b/guides/01_INSTALLATION.md
@@ -122,7 +122,6 @@ umount /mnt
```bash
mount -o subvol=root,noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt
-mount --mkdir -o subvol=snapshots,noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt/snapshots
mount --mkdir -o subvol=home,noatime,lazytime,commit=120,compress=zstd:5 /dev/mapper/cryptfs /mnt/data
mount --mkdir -o noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt/.btrfs
mount --mkdir -o subvol=swap /dev/mapper/cryptfs /mnt/swap
@@ -166,10 +165,10 @@ cd ~/dots
./install_root.sh
```
-Enter a fish shell for a better experience
+Enter the ZSH shell for a better experience
```bash
-fish
+zsh
```
Create non-privileged user
@@ -181,7 +180,6 @@ install -o itsdrike -g itsdrike -d /home/itsdrike
mv ~/dots /home/itsdrike
chown -R itsdrike:itsdrike /home/itsdrike/dots
passwd itsdrike
-chsh -s /usr/bin/zsh itsdrike
su -l itsdrike
fish
```
@@ -200,6 +198,13 @@ exit
su -l itsdrike
```
+Setup neovim
+
+```bash
+git clone https://github.com/ItsDrike/lazyvim ~/.config/nvim
+nvim --headless "+Lazy! sync" +qa
+```
+
## Fstab adjustments
Finally, we'll want to make some slight modifications to `/etc/fstab` file, so
@@ -226,7 +231,6 @@ they're way too permissive. This is how I like to structure my fstab:
# /dev/mapper/cryptfs LABEL=FS UUID=bffc7a62-0c7e-4aa9-b10e-fd68bac477e0
/dev/mapper/cryptfs / btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async,subvol=/root 0 1
/dev/mapper/cryptfs /data btrfs rw,noatime,lazytime,compress=zstd:5,ssd,space_cache=v2,commit=120,discard=async,subvol=/data 0 2
-/dev/mapper/cryptfs /snapshots btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async,subvol=/snapshots 0 2
/dev/mapper/cryptfs /swap btrfs rw,subvol=/swap 0 0
/dev/mapper/cryptfs /.btrfs btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async 0 2
diff --git a/guides/99_GREETD.md b/guides/99_GREETD.md
index 1769435..7868edf 100644
--- a/guides/99_GREETD.md
+++ b/guides/99_GREETD.md
@@ -104,6 +104,13 @@ script_name="$0"
shell="$(getent passwd "$USER" | awk -F: '{print $NF}')"
command=("$@")
+# This syntax might be a bit confusing at first. It works as follows:
+# 1. Replace this wrapper process with the user's login shell (through exec)
+# 2. The shell is told to run 'exec $@' replacing itself with another process
+# 3. The $@ in the exec above referrs to the arguments passed the shell (after -c '...')
+# 4. "$script_name" is passed to the shell as $0 (process name), not included in $@
+# 5. The ${command[@]} matches the $@ which this script was called with
+# -> The command passed into this script as args is ran within the user's shell
exec "$shell" -c 'exec "$@"' "$script_name" "${command[@]}"
```
@@ -150,3 +157,5 @@ command = "tuigreet --time --remember --remember-user-session --asterisks --gree
# in the `video` group.
user = "greeter"
```
+
+Do note that if you're using UWSM, you'll want to run `uwsm start hyprland.desktop` instead of directly running `Hyprland`.
diff --git a/home/.config/java/.keep b/home/.cache/nv/.gitkeep
similarity index 100%
rename from home/.config/java/.keep
rename to home/.cache/nv/.gitkeep
diff --git a/home/.config/alacritty/alacritty.yml b/home/.config/alacritty/alacritty.yml
deleted file mode 100644
index 6013557..0000000
--- a/home/.config/alacritty/alacritty.yml
+++ /dev/null
@@ -1,815 +0,0 @@
-# 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: alacritty
-
-window:
- # Window dimensions (changes require restart)
- #
- # Number of lines/columns (not pixels) in the terminal. 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: 6
- y: 6
-
- # 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.9
-
- # 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
-
- # 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
-
- # GTK theme variant (Linux/BSD only)
- #
- # Override the variant of the GTK theme. Commonly supported values are `dark`
- # and `light`. Set this to `None` to use the default theme variant.
- #gtk_theme_variant: 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: JetBrains Mono
- #family: Comic Mono
- #family: Source Code Pro
-
- # The `style` can be specified to pick a specific face.
- style: Medium
-
- # 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
- #family: Source Code Pro
-
- # 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
- #family: Source Code Pro
-
- # 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: 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
-
- # Thin stroke font rendering (macOS only)
- #
- # Thin strokes are suitable for retina displays, but for non-retina screens
- # it is recommended to set `use_thin_strokes` to `false`.
- #use_thin_strokes: 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: "#191919"
- foreground: "#d8dee9"
- #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 and 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 and 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 and CellBackground, which reference the
- # affected cell, or hexadecimal colors like #ff00ff.
- #matches:
- # foreground: '#000000'
- # background: '#ffffff'
- #focused_match:
- # foreground: CellBackground
- # background: CellForeground
-
- #bar:
- # background: '#c5c8c6'
- # foreground: '#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
-
- # Selection colors
- #
- # Colors which should be used to draw the selection area.
- #
- # Allowed values are CellForeground and CellBackground, which reference the
- # affected cell, or hexadecimal colors like #ff00ff.
- #selection:
- # text: CellBackground
- # background: CellForeground
-
- # Normal colors
- normal:
- #black: '#191919'
- black: "#46494d"
- red: "#b02626"
- green: "#40a62f"
- yellow: "#f2e635"
- blue: "#314ad0"
- magenta: "#b30ad0"
- cyan: "#32d0fc"
- white: "#acadb1"
-
- # Bright colors
- bright:
- black: "#666666"
- red: "#ce2727"
- green: "#47c930"
- yellow: "#fff138"
- blue: "#2e4bea"
- magenta: "#cc15ed"
- cyan: "#54d9ff"
- white: "#dbdbdb"
-
- # Dim colors
- dim:
- black: "#676f78"
- red: "#b55454"
- green: "#78a670"
- yellow: "#faf380"
- blue: "#707fd0"
- magenta: "#c583d0"
- cyan: "#8adaf1"
- white: "#e0e3e7"
-
- # 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: []
-# 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
-
-# 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:
-# - (macOS) /bin/bash --login
-# - (Linux/BSD) user login shell
-# - (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
-
-# Send ESC (\x1b) before characters when alt is pressed.
-#alt_send_esc: 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
-
-#url:
-# URL launcher
-#
-# This program is executed when clicking on a text which is recognized as a
-# URL. The URL is always added to the command as the last parameter.
-#
-# When set to `launcher: None`, URL launching will be disabled completely.
-#
-# Default:
-# - (macOS) open
-# - (Linux/BSD) xdg-open
-# - (Windows) explorer
-#launcher:
-# program: xdg-open
-# args: []
-
-# URL modifiers
-#
-# These are the modifiers that need to be held down for opening URLs when
-# clicking on them. The available modifiers are documented in the key
-# binding section.
-#modifiers: None
-
-# 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)
-#
-# And optionally:
-#
-# - `mods` (see key bindings)
-#mouse_bindings:
-# - { mouse: Middle, 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/glutin/*/glutin/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
-# - SpawnNewInstance
-# Spawn a new instance of Alacritty.
-# - ClearLogNotice
-# Clear Alacritty's UI warning and error notice.
-# - ClearSelection
-# Remove the active selection.
-# - ReceiveChar
-# - None
-#
-# - Vi mode exclusive actions:
-#
-# - Open
-# Open URLs at the cursor location with the launcher configured in
-# `url.launcher`.
-# - ToggleNormalSelection
-# - ToggleLineSelection
-# - ToggleBlockSelection
-# - ToggleSemanticSelection
-# Toggle semantic selection based on `selection.semantic_escape_chars`.
-#
-# - 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: Vi|~Search, action: ScrollToBottom }
-#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
-#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
-#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
-#- { key: I, mode: Vi|~Search, action: ToggleViMode }
-#- { 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: 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: M, mods: Command, action: Minimize }
-#- { key: Q, mods: Command, action: Quit }
-#- { key: W, mods: Command, action: Quit }
-#- { key: N, mods: Command, action: SpawnNewInstance }
-#- { 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
-
-# Print all received window events.
-#print_events: false
diff --git a/home/.config/code-flags.conf b/home/.config/code-flags.conf
new file mode 100644
index 0000000..da26db9
--- /dev/null
+++ b/home/.config/code-flags.conf
@@ -0,0 +1 @@
+--ozone-platform-hint=auto
diff --git a/home/.config/codium-flags.conf b/home/.config/codium-flags.conf
new file mode 100644
index 0000000..da26db9
--- /dev/null
+++ b/home/.config/codium-flags.conf
@@ -0,0 +1 @@
+--ozone-platform-hint=auto
diff --git a/home/.config/dunst/dunstrc b/home/.config/dunst/dunstrc
deleted file mode 100644
index b131168..0000000
--- a/home/.config/dunst/dunstrc
+++ /dev/null
@@ -1,500 +0,0 @@
-[global]
-
- ### Display ###
-
- # Which monitor should the notifications be shown on
- monitor = 0
-
- # Display notification on focused monitor. Possible modes are:
- # mouse: follow mouse pointer
- # keyboard: follow window with keyboard focus
- # none: don't follow anything
- #
- # "keyboard" needs a window manager that exports the
- # _NET_ACTIVE_WINDOW property.
- # This should be the case for almost all modern window managers.
- #
- # If this option is set to mouse or keyboard, the monitor option
- # will be ignored.
- follow = mouse
-
- ### Geometry ###
-
- # Dynamic width from 0 to 300
- # width = (0, 300)
- # constant width of 300
- # width = 300
- width = 270
-
- # The dynamic height of a single notification, excluding the frame.
- height = (0, 300)
-
- # Position the notification in the top right corner
- origin = top-right
-
- # Offset from the origin
- offset = 30x30
-
- # Scale factor. It is auto-detected if value is 0.
- scale = 0
-
- # Maximum number of notifications (0 means no limit)
- notification_limit = 10
-
- ### Progress bar ###
-
- # Turn on the progress bar. It appears when a progress hint is passed
- # with for example dunstify -h int:value:12
- progress_bar = true
-
- # Set the progress bar height. This includes the frame, so make sure
- # it's at least twice as big as the frame width.
- progress_bar_height = 30
-
- # Set the frame width of the progress bar
- progress_bar_frame_width = 1
-
- # Set the minimum width for the progress bar
- progress_bar_min_width = 150
-
- # Set the maximum width for the progress bar
- progress_bar_max_width = 300
-
- # Corner radius for the progress bar. 0 disables rounded corners.
- progress_bar_corner_radius = 0
-
- # Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
- # is set to 0 this option will be ignored.
- progress_bar_corners = all
-
- # Corner radius for the icon image.
- icon_corner_radius = 0
-
- # Define which corners to round when drawing the icon image. If icon_corner_radius
- # is set to 0 this option will be ignored.
- icon_corners = all
-
- # Show how many messages are currently hidden (because of
- # notification_limit).
- indicate_hidden = yes
-
- # The transparency of the window. Range: [0; 100].
- # This option will only work if a compositing window manager is
- # present (e.g. xcompmgr, compiz, picom, etc.). (X11 only)
- transparency = 20
-
- # Draw a line of "separator_height" pixel height between two
- # notifications.
- # Set to 0 to disable.
- # If gap_size is greater than 0, this setting will be ignored.
- separator_height = 2
-
- # Padding between text and separator.
- padding = 10
-
- # Horizontal padding
- horizontal_padding = 10
-
- # Padding between text and icon.
- text_icon_padding = 0
-
- # Defines width in pixels of fram around the notification window.
- # Set to 0 to disable.
- frame_width = 3
-
- # Defines color of the frame around the notification window
- frame_color = "#27292c";
-
- # Size of gap to display between notifications - requires a compositor.
- # If value is greater than 0, separator_height will be ignored and a border
- # of size frame_width will be drawn around each notification instead.
- # Click events on gaps do not currently propagate to applications below.
- gap_size = 0
-
- # Define a color for the separator.
- # possible values are:
- # * auto: dunst tries to find a color fitting to the background;
- # * foreground: use the same color as the foreground;
- # * frame: use the same color as the frame;
- # * anything else will be interpreted as a X color.
- separator_color = frame
-
- # Sort type.
- # possible values are:
- # * id: sort by id
- # * urgency_ascending: sort by urgency (low then normal then critical)
- # * urgency_descending: sort by urgency (critical then normal then low)
- # * update: sort by update (most recent always at the top)
- sort = yes
-
- # Don't remove messages, if the user is idle (no mouse or keyboard input)
- # for longer than idle_threshold seconds.
- # Set to 0 to disable.
- # A client can set the 'transient' hint to bypass this. See the rules
- # section for how to disable this if necessary
- idle_threshold = 120
-
- ### Text ###
-
- font = JetBrains Mono 11
-
- # The spacing between lines. If the height is smaller than the
- # font height, it will get raised to the font height.
- line_height = 0
-
- # Possible values are:
- # full: Allow a small subset of html markup in notifications:
- # bold
- # italic
- # strikethrough
- # underline
- #
- # For a complete reference see
- # .
- #
- # strip: This setting is provided for compatibility with some broken
- # clients that send markup even though it's not enabled on the
- # server. Dunst will try to strip the markup but the parsing is
- # simplistic so using this option outside of matching rules for
- # specific applications *IS GREATLY DISCOURAGED*.
- #
- # no: Disable markup parsing, incoming notifications will be treated as
- # plain text. Dunst will not advertise that it has the body-markup
- # capability if this is set as a global setting.
- #
- # It's important to note that markup inside the format option will be parsed
- # regardless of what this is set to.
- markup = full
-
- # The format of the message. Possible variables are:
- # %a appname
- # %s summary
- # %b body
- # %i iconname (including its path)
- # %I iconname (without its path)
- # %p progress value if set ([ 0%] to [100%]) or nothing
- # %n progress value if set without any extra characters
- # %% Literal %
- # Markup is allowed
- format = "%a - %s\n%b"
-
- # Alignment of the message text.
- # Possible values are "left", "center" and "right".
- alignment = left
-
- # Vertical alignment of message text and icon.
- # Possible values are "top", "center" and "bottom".
- vertical_alignment = center
-
- # Wrap longer sentences which don't fit into the horizonal size
- # of the noticication. If set to no, longer sententences will be truncated
- word_wrap = yes
-
- # Show age of message if message is older than show_age_threshold
- # seconds.
- # Set to -1 to disable.
- show_age_threshold = 60
-
- # Specify where to make an ellipsis in long lines.
- # Possible values are "start", "middle" and "end".
- ellipsize = middle
-
- # Ignore newlines '\n' in notifications.
- ignore_newline = no
-
- # Merge multiple notifications with the same content
- stack_duplicates = true
-
- # Hide the count of merged notifications with the same content
- hide_duplicate_count = false
-
- # Display indicators for URLs (U) and actions (A)
- show_indicators = yes
-
- ### Icons ###
-
- # Recursive icon lookup. You can set a single theme, instead of having to
- # define all lookup paths.
- enable_recursive_icon_lookup = true
-
- # Set icon theme (only used for recursive icon lookup)
- # You can also set multiple icon themes, with the leftmost one being used first.
- # icon_theme = "Adwaita, breeze"
- icon_theme = Papirus-Dark, Adwaita
-
- # Align icons left/right/off
- icon_position = left
-
- # Scale small icons up to this size, set to 0 to disable. Helpful
- # for e.g. small files or high-dpi screens. In case of conflict,
- # max_icon_size takes precedence over this.
- min_icon_size = 0
-
- # Scale larger icons down to this size, set to 0 to disable
- max_icon_size = 32
-
- # Paths to default icons (only necessary when not using recursive icon lookup)
- #icon_path = /usr/share/icons/hicolor/16x16/status/:/usr/share/icons/hicolor/16x16/devices/:/usr/share/icons/hicolor/16x16/apps/
-
- ### History ###
-
- # Should a notification popped up from history be sticky or timeout
- # as if it would normally do.
- sticky_history = yes
-
- # Maximum amount of notifications kept in history
- history_length = 20
-
- ### Misc/Advanced ###
-
- # dmenu path
- dmenu = /usr/local/bin/dmenu -p dunst:
-
- # Browser for opening urls in content menu
- browser = /usr/bin/xdg-open
-
- # Always run rule-defined scripts, even if the notification is suppressed
- always_run_script = true
-
- # Define the title of the windows spawned by dunst
- title = Dunst
-
- # Define the class of the windows spawned by dunst
- class = Dunst
-
- # Define the corner radius of the notification window
- # in pixel size. If the radius is 0, you have no rounded
- # corners.
- # The radius will be automatically lowered if it exceeds half of the
- # notification height to avoid clipping text and/or icons.
- corner_radius = 0
-
- # Define which corners to round when drawing the window. If the corner radius
- # is set to 0 this option will be ignored.
- #
- # Comma-separated list of the corners. The accepted corner values are bottom-right,
- # bottom-left, top-right, top-left, top, bottom, left, right or all.
- corners = all
-
- # Ignore the dbus closeNotification message.
- # Useful to enforce the timeout set by dunst configuration. Without this
- # parameter, an application may close the notification sent before the
- # user defined timeout.
- ignore_dbusclose = false
-
- ### Wayland ###
- # These settings are Wayland-specific. They have no effect when using X11
-
- # Uncomment this if you want to let notications appear under fullscreen
- # applications (default: overlay)
- # layer = top
-
- # Set this to true to use X11 output on Wayland.
- force_xwayland = false
-
- ### Legacy ###
-
- # Use the Xinerama extension instead of RandR for multi-monitor support.
- # This setting is provided for compatibility with older nVidia drivers that
- # do not support RandR and using it on systems that support RandR is highly
- # discouraged.
- #
- # By enabling this setting dunst will not be able to detect when a monitor
- # is connected or disconnected which might break follow mode if the screen
- # layout changes.
- force_xinerama = false
-
- ### Mouse ###
-
- # Defines list of actions for each mouse event
- # Possible values are:
- # * none: Don't do anything.
- # * do_action: Invoke the action determined by the action_name rule. If there is no
- # such action, open the context menu.
- # * open_url: If the notification has exactly one url, open it. If there are multiple
- # ones, open the context menu.
- # * close_current: Close current notification.
- # * close_all: Close all notifications.
- # * context: Open context menu for the notification.
- # * context_all: Open context menu for all notifications.
- # These values can be strung together for each mouse event, and
- # will be executed in sequence.
- mouse_left_click = do_action, open_url, close_current
- mouse_middle_click = context
- mouse_right_click = close_current
-
-# Experimental features that may or may not work correctly. Do not expect them
-# to have a consistent behaviour across releases.
-[experimental]
- # Calculate the dpi to use on a per-monitor basis.
- # If this setting is enabled the Xft.dpi value will be ignored and instead
- # dunst will attempt to calculate an appropriate dpi value for each monitor
- # using the resolution and physical size. This might be useful in setups
- # where there are multiple screens with very different dpi values.
- per_monitor_dpi = false
-
-[urgency_low]
- highlight = "#fe6c5a"
- background = "#1e2137fa"
- frame_color = "#27292c"
- foreground = "#ffffff"
-
- timeout = 5
-
- # Icon for notifications with low urgency, uncomment to enable
- #default_icon = /path/to/icon
-
-[urgency_normal]
- highlight = "#fe6c5a"
- background = "#141c21fa"
- frame_color = "#27292c"
- foreground = "#ffffffff"
-
- timeout = 10
-
- # Icon for notifications with normal urgency, uncomment to enable
- #default_icon = /path/to/icon
-
-[urgency_critical]
- highlight = "#fe6c5a"
- background = "#dd130ddd"
- frame_color = "#27292c"
- foreground = "#ffffffff"
-
- timeout = 0
- override_pause_level = 60
-
- icon = arbt
-
- # Icon for notifications with critical urgency, uncomment to enable
- #icon = /path/to/icon
-
-
-# Every section that isn't one of the above is interpreted as a rules to
-# override settings for certain messages.
-#
-# Messages can be matched by
-# appname (discouraged, see desktop_entry)
-# body
-# category
-# desktop_entry
-# icon
-# match_transient
-# msg_urgency
-# stack_tag
-# summary
-#
-# and you can override the
-# background
-# foreground
-# format
-# frame_color
-# fullscreen
-# new_icon
-# set_stack_tag
-# set_transient
-# set_category
-# timeout
-# urgency
-# icon_position
-# skip_display
-# history_ignore
-# action_name
-# word_wrap
-# ellipsize
-# alignment
-# hide_text
-# override_pause_level
-#
-# Shell-like globbing will get expanded.
-#
-# Instead of the appname filter, it's recommended to use the desktop_entry filter.
-# GLib based applications export their desktop-entry name. In comparison to the appname,
-# the desktop-entry won't get localized.
-#
-# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
-# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
-# override_pause_level = X
-
-# SCRIPTING
-# You can specify a script that gets run when the rule matches by
-# setting the "script" option.
-# The script will be called as follows:
-# script appname summary body icon urgency
-# where urgency can be "LOW", "NORMAL" or "CRITICAL".
-#
-# NOTE: It might be helpful to run dunst -print in a terminal in order
-# to find fitting options for rules.
-
-# Disable the transient hint so that idle_threshold cannot be bypassed from the
-# client
-#[transient_disable]
-# match_transient = yes
-# set_transient = no
-#
-# Make the handling of transient notifications more strict by making them not
-# be placed in history.
-#[transient_history_ignore]
-# match_transient = yes
-# history_ignore = yes
-
-# fullscreen values
-# show: show the notifications, regardless if there is a fullscreen window opened
-# delay: displays the new notification, if there is no fullscreen window active
-# If the notification is already drawn, it won't get undrawn.
-# pushback: same as delay, but when switching into fullscreen, the notification will get
-# withdrawn from screen again and will get delayed like a new notification
-#[fullscreen_delay_everything]
-# fullscreen = delay
-#[fullscreen_show_critical]
-# msg_urgency = critical
-# fullscreen = show
-
-#[espeak]
-# summary = "*"
-# script = dunst_espeak.sh
-
-#[script-test]
-# summary = "*script*"
-# script = dunst_test.sh
-
-#[ignore]
-# # This notification will not be displayed
-# summary = "foobar"
-# skip_display = true
-
-#[history-ignore]
-# # This notification will not be saved in history
-# summary = "foobar"
-# history_ignore = yes
-
-#[skip-display]
-# # This notification will not be displayed, but will be included in the history
-# summary = "foobar"
-# skip_display = yes
-
-#[signed_on]
-# appname = Pidgin
-# summary = "*signed on*"
-# urgency = low
-#
-#[signed_off]
-# appname = Pidgin
-# summary = *signed off*
-# urgency = low
-#
-#[says]
-# appname = Pidgin
-# summary = *says*
-# urgency = critical
-#
-#[twitter]
-# appname = Pidgin
-# summary = *twitter.com*
-# urgency = normal
-#
-#[stack-volumes]
-# appname = "some_volume_notifiers"
-# set_stack_tag = "volume"
-#
-# vim: ft=cfg
diff --git a/home/.config/electron-flags.conf b/home/.config/electron-flags.conf
new file mode 100644
index 0000000..da26db9
--- /dev/null
+++ b/home/.config/electron-flags.conf
@@ -0,0 +1 @@
+--ozone-platform-hint=auto
diff --git a/home/.config/eww/css/_colors.scss b/home/.config/eww/css/_colors.scss
deleted file mode 100644
index 1534b69..0000000
--- a/home/.config/eww/css/_colors.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-$rosewater: #f5e0dc;
-$flamingo: #f2cdcd;
-$pink: #f5c2e7;
-$mauve: #cba6f7;
-$red: #f38ba8;
-$maroon: #eba0ac;
-$peach: #fab387;
-$yellow: #f9e2af;
-$gold: #efcb10;
-$green: #a6e3a1;
-$lime: #78db32;
-$teal: #94e2d5;
-$sky: #89dceb;
-$sapphire: #74c7ec;
-$blue: #89b4fa;
-$lavender: #b4befe;
-$orange: #ffa500;
-
-$text: #cdd6f4;
-$subtext1: #bac2de;
-$subtext0: #a6adc8;
-$overlay2: #9399b2;
-$overlay1: #7f849c;
-$overlay0: #6c7086;
-
-$surface2: #585b70;
-$surface1: #45475a;
-$surface0: #313244;
-
-$base-a: rgba(30, 30, 40, 0.65);
-$base: rgba(30, 30, 40, 1);
-$base1-a: rgba(49, 50, 68, 0.85);
-$base1: rgba(49, 50, 68, 1);
-$mantle: #181825;
-$crust: #11111b;
-
-$fg: $text;
-$bg-a: $base-a;
-$bg: $base;
-$bg1: $base1;
-$bg1-a: $base1-a;
-$border: #28283d;
-$shadow: $crust;
diff --git a/home/.config/eww/css/modules/_battery.scss b/home/.config/eww/css/modules/_battery.scss
deleted file mode 100644
index d4894a4..0000000
--- a/home/.config/eww/css/modules/_battery.scss
+++ /dev/null
@@ -1,55 +0,0 @@
-@keyframes blink {
- 0%{
- opacity: 0;
- }
- 50%{
- opacity: 0.7;
- }
- 100%{
- opacity: 0;
- }
- }
-
-// .unplugged.low {
-// color: #0000ff;
-// }
-
-.battery {
-
- .icon, .icon label {
- font-family: "Material Symbols Outlined";
-
- .extra, .extra label {
- font-family: "Font Awesome 6 Free";
- }
- }
-
- .critical {
- .unplugged {
- color: #f00;
- .extra { animation: blink 1.2s linear infinite; }
- }
-
- .plugged {
- .icon { color: $orange }
- .extra { color: $green; }
- }
- }
-
- .normal {
- .unplugged {
- .icon { color: $orange }
- }
- .plugged {
- .icon { color: $green; }
- }
- }
-
- .full {
- .icon { color: $green; }
- .extra { color: $lime; }
- }
-
- .extra { margin-right: 5px; }
- .icon { margin-right: 5px; }
-}
diff --git a/home/.config/eww/css/modules/_bitcoin.scss b/home/.config/eww/css/modules/_bitcoin.scss
deleted file mode 100644
index 82d5a61..0000000
--- a/home/.config/eww/css/modules/_bitcoin.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.bitcoin {
- .icon { margin-right: 6px; color: $gold; }
-}
diff --git a/home/.config/eww/css/modules/_clock.scss b/home/.config/eww/css/modules/_clock.scss
deleted file mode 100644
index 98d9823..0000000
--- a/home/.config/eww/css/modules/_clock.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.clock {
- // color: $sapphire;
- .icon { margin-right: 6px; color: $sapphire; }
-}
diff --git a/home/.config/eww/css/modules/_cpu.scss b/home/.config/eww/css/modules/_cpu.scss
deleted file mode 100644
index a183c58..0000000
--- a/home/.config/eww/css/modules/_cpu.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.cpu {
- .icon { color: $lime; }
-}
diff --git a/home/.config/eww/css/modules/_gammarelay.scss b/home/.config/eww/css/modules/_gammarelay.scss
deleted file mode 100644
index f62dcc8..0000000
--- a/home/.config/eww/css/modules/_gammarelay.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-.gammarelay {
- .icon {
- color: $peach;
- margin-left: 2px;
- margin-right: 2px;
- }
-}
diff --git a/home/.config/eww/css/modules/_kernel.scss b/home/.config/eww/css/modules/_kernel.scss
deleted file mode 100644
index 652a60d..0000000
--- a/home/.config/eww/css/modules/_kernel.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.kernel {
- .icon { color: $lavender; }
-}
diff --git a/home/.config/eww/css/modules/_memory.scss b/home/.config/eww/css/modules/_memory.scss
deleted file mode 100644
index 37d8432..0000000
--- a/home/.config/eww/css/modules/_memory.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.memory {
- .icon { color: $maroon; }
-}
diff --git a/home/.config/eww/css/modules/_uptime.scss b/home/.config/eww/css/modules/_uptime.scss
deleted file mode 100644
index 63b1353..0000000
--- a/home/.config/eww/css/modules/_uptime.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.uptime {
- .icon { color: $green; }
-}
diff --git a/home/.config/eww/css/modules/_volume.scss b/home/.config/eww/css/modules/_volume.scss
deleted file mode 100644
index 7a94630..0000000
--- a/home/.config/eww/css/modules/_volume.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.volume {
- .icon { color: $peach; }
- .speaker {
- .icon {
- margin-left: 8px;
- margin-right: 5px;
- }
- }
-}
diff --git a/home/.config/eww/css/modules/_window_name.scss b/home/.config/eww/css/modules/_window_name.scss
deleted file mode 100644
index 0f360da..0000000
--- a/home/.config/eww/css/modules/_window_name.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.window_name {
- font-family: "Monaspace Krypton";
- font-size: 1.4rem;
-}
diff --git a/home/.config/eww/css/modules/_workspaces.scss b/home/.config/eww/css/modules/_workspaces.scss
deleted file mode 100644
index 09c5078..0000000
--- a/home/.config/eww/css/modules/_workspaces.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-.workspaces {
- background-color: $bg1-a;
- border-radius: 25px;
-
- .icon,
- .icon label {
- font-family: "JetBrainsMono Nerd Font", "Material Symbols Outlined";
- font-size: 1.2rem;
- }
-
- .value {
- margin: 0 10px;
- }
-
- .focused {
- // text-decoration: underline;
- // text-decoration-color: red;
- // text-decoration-style: double;
- color: $fg;
- }
-
- .active {
- color: #bbb;
- }
-
- .inactive {
- color: #555;
- }
-}
diff --git a/home/.config/eww/css/windows/_calendar.scss b/home/.config/eww/css/windows/_calendar.scss
deleted file mode 100644
index 2aadfa3..0000000
--- a/home/.config/eww/css/windows/_calendar.scss
+++ /dev/null
@@ -1,32 +0,0 @@
-.calendar-win {
- @include window;
- background-color: $bg;
- border: 1px solid $border;
- color: $fg;
- padding: .2em;
-}
-
-calendar {
- padding: 5px;
-
- :selected {
- color: $mauve;
- }
-
- .header {
- color: $subtext1;
- }
-
- .highlight {
- color: $maroon;
- font-weight: bold;
- }
-
- .button {
- color: $sapphire;
- }
-
- :indeterminate {
- color: $overlay0;
- }
-}
diff --git a/home/.config/eww/css/windows/_radio_menu.scss b/home/.config/eww/css/windows/_radio_menu.scss
deleted file mode 100644
index e6d0e48..0000000
--- a/home/.config/eww/css/windows/_radio_menu.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-.radio-menu-box {
- @include window;
- background-color: $bg;
- border: 1px solid $border;
- color: $text;
- font-family: "Jost *", "JetBrains Mono", "Font Awesome 6 Free", sans-serif;
-
- .icon, .icon label {
- font-family: "Material Symbols Outlined";
- font-size: 1.15rem;
- }
-
- .text-row {
- margin: 1rem 1.5rem 0;
-
- .title { font-size: 1.2rem; }
- }
-
- .element-row {
- margin: .5rem .7rem;
-
- label {
- font-size: 1rem;
- margin: 0 .1rem;
- }
- }
-
- .element {
- @include rounding;
- background-color: $surface0;
- margin: .3rem;
-
- button {
- @include rounding;
- padding: .5rem;
-
- label {
- font-size: 1.5rem;
- }
-
- &:hover {
- background-color: $overlay0;
- }
- }
- }
-}
diff --git a/home/.config/eww/eww.scss b/home/.config/eww/eww.scss
deleted file mode 100644
index e2d2ef1..0000000
--- a/home/.config/eww/eww.scss
+++ /dev/null
@@ -1,114 +0,0 @@
-@import "css/colors";
-
-@mixin rounding {
- border-radius: 16px;
-}
-
-@mixin window {
- border: 1px solid $border;
- box-shadow: 0 2px 3px $shadow;
- margin: 5px 5px 10px;
- @include rounding;
-}
-
-* {
- all: unset;
- transition: 200ms ease;
-}
-
-@import "css/windows/calendar";
-@import "css/windows/radio_menu";
-@import "css/modules/clock";
-@import "css/modules/volume";
-@import "css/modules/bitcoin";
-@import "css/modules/cpu";
-@import "css/modules/memory";
-@import "css/modules/uptime";
-@import "css/modules/kernel";
-@import "css/modules/battery";
-@import "css/modules/workspaces";
-@import "css/modules/gammarelay";
-@import "css/modules/window_name";
-
-.bar {
- background-color: $bg-a;
- color: $fg;
-
- font-family: "JetBrains Mono";
-
- label {
- font-size: 14px;
- }
-
- // TODO: Use percentages (for some reason it fails now)
- min-width: 1900px;
-}
-
-tooltip {
- background: $bg;
- border: 1px solid $border;
- border-radius: 8px;
-
- label {
- font-size: 1rem;
- }
-}
-
-.icon,
-.icon label {
- font-family: "Font Awesome 6 Free", "Material Symbols Outlined";
-}
-
-.module {
- margin: 0 5px;
-}
-
-.separ {
- color: $surface0;
- font-size: 1.5rem;
- padding-bottom: 2px;
-}
-
-scale trough {
- background-color: $bg1-a;
- border-radius: 24px;
- margin: 0 1rem;
- min-height: 10px;
- min-width: 70px;
-}
-
-.tray {
- margin-right: 12px;
-}
-
-menu {
- background: $bg1;
- border-bottom-left-radius: 12px;
- border-bottom-right-radius: 12px;
- border: 2px solid rgba($crust, 0.5);
- padding: 0.5rem 0;
-}
-
-menu menu {
- border-top-left-radius: 12px;
- border-top-right-radius: 12px;
-}
-
-menu > menuitem {
- padding: 0.4em 1rem;
- background: transparent;
- transition: 0.2s ease background;
-}
-
-menu > menuitem:hover {
- background: rgba($overlay1, 0.4);
-}
-
-menu > menuitem check:checked ~ label {
- color: $bg1-a;
- font-weight: 600;
-}
-
-menubar > menuitem {
- margin-left: 0.6rem;
-}
diff --git a/home/.config/eww/eww.yuck b/home/.config/eww/eww.yuck
deleted file mode 100644
index ff4aef7..0000000
--- a/home/.config/eww/eww.yuck
+++ /dev/null
@@ -1,94 +0,0 @@
-(defvar terminal "kitty -e")
-
-(include "./modules/variables.yuck")
-
-(include "./modules/clock.yuck")
-(include "./modules/volume.yuck")
-(include "./modules/bitcoin.yuck")
-(include "./modules/cpu.yuck")
-(include "./modules/memory.yuck")
-(include "./modules/uptime.yuck")
-; (include "./modules/kernel.yuck")
-(include "./modules/battery.yuck")
-(include "./modules/window_name.yuck")
-(include "./modules/workspaces.yuck")
-(include "./modules/gammarelay.yuck")
-
-(include "./windows/calendar.yuck")
-(include "./windows/radio-menu.yuck")
-
-(defwidget sep []
- (label :class "separ module" :text "|"))
-
-(defwidget left []
- (box
- :space-evenly false
- :halign "start"
- (gammarelay_module)
- (sep)
- (window_name_module)
- ))
-
-(defwidget right []
- (box
- :space-evenly false
- :halign "end"
- ; (kernel_module)
- ; (sep)
- (volume_module)
- (sep)
- (battery_module)
- (sep)
- (bitcoin_module)
- (sep)
- (cpu_module)
- (sep)
- (memory_module)
- (sep)
- ; (uptime_module)
- ; (sep)
- (clock_module)
- (sep)
- (systray
- :pack-direction "left"
- :class "module tray"
- )
- ))
-
-(defwidget center []
- (box
- :space-evenly false
- :halign "center"
- (workspaces_module)
- ))
-
-(defwidget bar []
- (centerbox
- :class "bar"
- :orientation "horizontal"
- (left)
- (center)
- (right)))
-
-(defwindow bar0
- :monitor 0
- :geometry (geometry :x "0%"
- :y "0%"
- :width: "100%"
- :height "32px"
- :anchor "top center")
- :stacking "fg"
- :exclusive true
- (bar))
-
-
-(defwindow bar1
- :monitor 1
- :geometry (geometry :x "0%"
- :y "0%"
- :width: "100%"
- :height "32px"
- :anchor "top center")
- :stacking "fg"
- :exclusive true
- (bar))
diff --git a/home/.config/eww/modules/battery.yuck b/home/.config/eww/modules/battery.yuck
deleted file mode 100644
index b0f033e..0000000
--- a/home/.config/eww/modules/battery.yuck
+++ /dev/null
@@ -1,24 +0,0 @@
-(defwidget battery_module []
- (eventbox
- :class "module battery"
-
- (box
- :class {battery.critical ? "critical" : battery.full ? "full" : "normal"}
- (box
- :space-evenly false
- :class {battery.plugged ? "plugged" : "unplugged" }
-
- (box
- :class "icon"
- :space-evenly false
-
- (label
- :class "extra"
- :text {battery.extra_icon})
- (label
- :text {battery.capacity_icon}))
- (label
- :class "value"
- :text "${battery.percent}%"
- )
- ))))
diff --git a/home/.config/eww/modules/bitcoin.yuck b/home/.config/eww/modules/bitcoin.yuck
deleted file mode 100644
index d4e59f7..0000000
--- a/home/.config/eww/modules/bitcoin.yuck
+++ /dev/null
@@ -1,14 +0,0 @@
-(defwidget bitcoin_module []
- (eventbox
- :onclick "bitcoin | xargs -I{} ${EWW_CMD} update bitcoin={}"
- :class "module bitcoin"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text "")
- (label :text {bitcoin}))
- )
-)
diff --git a/home/.config/eww/modules/clock.yuck b/home/.config/eww/modules/clock.yuck
deleted file mode 100644
index f9e3f94..0000000
--- a/home/.config/eww/modules/clock.yuck
+++ /dev/null
@@ -1,18 +0,0 @@
-(defwidget clock_module []
-
- (eventbox
- :tooltip {time.day}
- :class "module clock"
- :onclick "${EWW_CMD} open --toggle calendar"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text "")
- (label
- :class "value"
- :text "${time.date} ${time.hour}:${time.minute}")
- )))
-
diff --git a/home/.config/eww/modules/cpu.yuck b/home/.config/eww/modules/cpu.yuck
deleted file mode 100644
index 940ffb3..0000000
--- a/home/.config/eww/modules/cpu.yuck
+++ /dev/null
@@ -1,15 +0,0 @@
-(defwidget cpu_module []
- (eventbox
- :class "module cpu"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text " ")
- (label
- :class "value"
- :text "${round(EWW_CPU.avg,2)}%"
- )
- )))
diff --git a/home/.config/eww/modules/gammarelay.yuck b/home/.config/eww/modules/gammarelay.yuck
deleted file mode 100644
index 513d50a..0000000
--- a/home/.config/eww/modules/gammarelay.yuck
+++ /dev/null
@@ -1,41 +0,0 @@
-(defwidget gammarelay_module []
- (box
- :class "module gammarelay"
-
- (eventbox
- :onscroll "scripts/gammarelay temperature scroll {}"
- :onclick "scripts/gammarelay temperature set toggle"
- :onrightclick "scripts/gammarelay temperature set off"
- :tooltip "${temperature} K"
- :class "temperature"
- (box
- (label
- :class "icon"
- :text "")
- ))
-
- (eventbox
- :onscroll "scripts/gammarelay brightness scroll {}"
- :onclick "scripts/gammarelay brightness set toggle"
- :onrightclick "scripts/gammarelay brightness set off"
- :tooltip "${brightness}%"
- :class "brightness"
- (box
- (label
- :class "icon"
- :text "")
- ))
-
- ; (eventbox
- ; :onscroll "scripts/gammarelay gamma scroll {}"
- ; :onclick "scripts/gammarelay gamma set toggle"
- ; :onrightclick "scripts/gammarelay gamma set off"
- ; :tooltip "${gamma}%"
- ; :class "gamma"
- ; :valign "top"
- ; (box
- ; (label
- ; :class "icon"
- ; :text "γ")
- ; ))
- ))
diff --git a/home/.config/eww/modules/kernel.yuck b/home/.config/eww/modules/kernel.yuck
deleted file mode 100644
index c784049..0000000
--- a/home/.config/eww/modules/kernel.yuck
+++ /dev/null
@@ -1,15 +0,0 @@
-(defwidget kernel_module []
- (eventbox
- :class "module kernel"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text " ")
- (label
- :class "value"
- :text {kernel}
- )
- )))
diff --git a/home/.config/eww/modules/memory.yuck b/home/.config/eww/modules/memory.yuck
deleted file mode 100644
index 43bcca4..0000000
--- a/home/.config/eww/modules/memory.yuck
+++ /dev/null
@@ -1,15 +0,0 @@
-(defwidget memory_module []
- (eventbox
- :class "module memory"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text " ")
- (label
- :class "value"
- :text "${round(EWW_RAM.used_mem / 1000000000,1)}G: ${round(EWW_RAM.used_mem_perc,0)}%"
- )
- )))
diff --git a/home/.config/eww/modules/nightlight.yuck b/home/.config/eww/modules/nightlight.yuck
deleted file mode 100644
index fd2f2fe..0000000
--- a/home/.config/eww/modules/nightlight.yuck
+++ /dev/null
@@ -1,3 +0,0 @@
-(deflisten nightlight
- :initial `{"running": false,"temperature": 0}`
- `scripts/nightlight --state`)
diff --git a/home/.config/eww/modules/uptime.yuck b/home/.config/eww/modules/uptime.yuck
deleted file mode 100644
index 972b3e1..0000000
--- a/home/.config/eww/modules/uptime.yuck
+++ /dev/null
@@ -1,15 +0,0 @@
-(defwidget uptime_module []
- (eventbox
- :class "module uptime"
-
- (box
- :space-evenly false
-
- (label
- :class "icon"
- :text " ")
- (label
- :class "value"
- :text {uptime}
- )
- )))
diff --git a/home/.config/eww/modules/variables.yuck b/home/.config/eww/modules/variables.yuck
deleted file mode 100644
index f3be245..0000000
--- a/home/.config/eww/modules/variables.yuck
+++ /dev/null
@@ -1,60 +0,0 @@
-(defpoll time
- :interval "5s"
- :initial '{"date": "01 Jan", "hour": "00", "minute": "00", "day": "Monday"}'
- `date +'{"date": "%d %b", "hour": "%H", "minute": "%M", "day": "%A"}'`)
-
-(deflisten volume
- :initial '{ "speaker_vol": "100", "speaker_mute": false, "speaker_icon": "", "microphone_mute": false, "microphone_vol": "100", "microphone_icon": "" }'
- `scripts/volume loop`)
-
-(deflisten window_name
- :initial `{"class":"","name":"","formatted_name":""}`
- `scripts/window_name`)
-
-(deflisten workspaces
- :initial `[{"id": 1,"name": "N/A","monitor": "N/A","windows": 1,"hasfullscreen": false,"lastwindow": "N/A","lastwindowtitle": "N/A","format_name": "N/A","active": true}]`
- `scripts/workspaces --loop`)
-
-(defpoll battery
- :interval "1s"
- :initial '{"percent":"0","plugged":"false","status":"N/A","capacity_icon":"","extra_icon":"","manufacturer":"N/A","model_name":"N/A","technology":"N/A","energy_now":"0","enerfy_full":"0","enerfy_full_design":"0","cycle_count":"0","critical":"false","full":"false"}'
- `scripts/battery`)
-
-(defpoll uptime
- :interval "1m"
- :initial 'N/A'
- `uptime -p | sed \\
- -e 's/^up //' \\
- -e 's/ years\\?,\\?/y/' \\
- -e 's/ months\\?,\\?/m/' \\
- -e 's/ weeks\\?,\\?/w/' \\
- -e 's/ days\\?,\\?/d/' \\
- -e 's/ hours\\?,\\?/h/' \\
- -e 's/ minutes\\?,\\?/m/' \\
- -e 's/ seconds\\?,\\?/s/' \\
- | cut -d' ' -f-2`)
-
-(defpoll bitcoin
- :interval "5m"
- :initial "$N/A"
- `bitcoin`)
-
-; TODO: Figure out how to store this one-time
-(defpoll kernel
- :interval "10000h"
- :initial 'N/A'
- ; `uname -r | sed -r 's/(.+)-arch(.+)/\\1/'`
- `uname -r`)
-
-(deflisten temperature `scripts/gammarelay temperature watch`)
-(deflisten brightness `scripts/gammarelay brightness watch`)
-(deflisten gamma `scripts/gammarelay gamma watch`)
-
-(defpoll net
- :interval "3s"
- :initial '{"essid":"N/A","icon":"","state":"unknown","signal":"0"}'
- `scripts/net status`)
-(defpoll bluetooth
- :interval "3s"
- :initial '{"icon":"","status":"unknown","name":"","mac":"","battery":""}'
- `scripts/bluetooth status`)
diff --git a/home/.config/eww/modules/volume.yuck b/home/.config/eww/modules/volume.yuck
deleted file mode 100644
index 1f689c9..0000000
--- a/home/.config/eww/modules/volume.yuck
+++ /dev/null
@@ -1,40 +0,0 @@
-(defvar mic_rev false)
-
-(defwidget volume_module []
- (box
- :class "module volume"
- :space-evenly false
-
- (eventbox
- :onscroll "scripts/volume setvol SOURCE 0.5 {}"
- :onclick "scripts/volume togglemute SOURCE"
- :onrightclick "${terminal} pulsemixer &"
- :onhover "${EWW_CMD} update mic_rev=true"
- :onhoverlost "${EWW_CMD} update mic_rev=false"
- :class "microphone"
- (box
- (label
- :class "icon"
- :text {volume.microphone_icon})
- (label
- :visible {mic_rev && !volume.microphone_mute}
- :class "value"
- :text "${volume.microphone_vol}%")
- ))
-
- (eventbox
- :onscroll "scripts/volume setvol SINK 0.5 {}"
- :onclick "scripts/volume togglemute SINK"
- :onrightclick "${terminal} pulsemixer &"
- :class "speaker"
- (box
- (label
- :class "icon"
- :text {volume.speaker_icon})
- (label
- :visible {!volume.speaker_mute}
- :class "value"
- :text "${volume.speaker_vol}%")
- ))
-
- ))
diff --git a/home/.config/eww/modules/window_name.yuck b/home/.config/eww/modules/window_name.yuck
deleted file mode 100644
index 16ace74..0000000
--- a/home/.config/eww/modules/window_name.yuck
+++ /dev/null
@@ -1,11 +0,0 @@
-; Consider making the window name clickable, opening up a full window that's showing
-; the selected window details (class, unformatted name, and perhaps even more, like
-; xwayland status, ...)
-(defwidget window_name_module []
- (box
- :class "module window_name"
-
- (label
- :class "value"
- :text "${window_name.formatted_name}")
- ))
diff --git a/home/.config/eww/modules/workspaces.yuck b/home/.config/eww/modules/workspaces.yuck
deleted file mode 100644
index 3f4feb1..0000000
--- a/home/.config/eww/modules/workspaces.yuck
+++ /dev/null
@@ -1,21 +0,0 @@
-; (defwidget sep []
-; (label :class "separ module" :text "|"))
-
-
-; Consider making the window name clickable, opening up a full window that's showing
-; the selected window details (class, unformatted name, and perhaps even more, like
-; xwayland status, ...)
-(defwidget workspaces_module []
- (box
- :class "module workspaces"
-
- (for workspace in workspaces
- (eventbox
- :class {workspace.active ? 'focused' : workspace.windows > 0 ? 'active' : 'inactive'}
- :onclick `scripts/workspaces --switch ${workspace.id}`
-
- (label
- :class "value icon"
- :text {workspace.format_name}))
- )
- ))
diff --git a/home/.config/eww/scripts/.flake8 b/home/.config/eww/scripts/.flake8
deleted file mode 100644
index ce90fbd..0000000
--- a/home/.config/eww/scripts/.flake8
+++ /dev/null
@@ -1,11 +0,0 @@
-[flake8]
-max-line-length=119
-extend-ignore=E203
-extend-select=B902,B904
-exclude=.venv,.git,.cache
-ignore=
- ANN002, # *args annotation
- ANN003, # **kwargs annotation
- ANN101, # self param annotation
- ANN102, # cls param annotation
- ANN204, # return type annotation for special methods
diff --git a/home/.config/eww/scripts/battery b/home/.config/eww/scripts/battery
deleted file mode 100755
index 86d1152..0000000
--- a/home/.config/eww/scripts/battery
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-# $BATTERY and $ADAPTER env vars can be set manually, being the names of the
-# devices (in /sys/class/power_supply/) i.e. BATTERY=BAT0 ADAPTER=ADP0
-# or, if left unset, they will be automatically picked.
-
-CAPACITY_ICONS=("" "" "" "" "" "" "" "" "" "")
-CHARGING_ICON=""
-DISCHARGING_ICON=""
-FULL_ICON="" # Plugged in, but no longer charging (fully charged)
-CRITICAL_ICON=""
-CRITICAL_PERCENTAGE=15
-
-if [ -z "$BATTERY" ]; then
- # shellcheck disable=SC2010
- BATTERY="$(\ls -t /sys/class/power_supply | grep "BAT" | head -n 1)"
-fi
-
-if [ -z "$ADAPTER" ]; then
- # shellcheck disable=SC2010
- ADAPTER="$(\ls -t /sys/class/power_supply | grep -E "ADP|AC" | head -n 1)"
-fi
-
-get_bat_info() {
- cat /sys/class/power_supply/"$BATTERY"/"$1"
-}
-
-get_adp_info() {
- cat /sys/class/power_supply/"$ADAPTER"/"$1"
-}
-
-manufacturer="$(get_bat_info manufacturer)"
-model_name="$(get_bat_info model_name)"
-technology="$(get_bat_info technology)"
-energy_now="$(get_bat_info energy_now)"
-energy_full="$(get_bat_info energy_full)"
-energy_full_design="$(get_bat_info energy_full_design)"
-cycle_count="$(get_bat_info cycle_count)"
-
-capacity="$(get_bat_info capacity)"
-status="$(get_bat_info status)"
-[ "$(get_adp_info online)" -eq 1 ] && adp_connected="true" || adp_connected="false"
-
-# Quick overrides to showcase how battery works
-# capacity=100
-# adp_connected="true"
-# status="Charging"
-# status="Not charging"
-# status="Discharging"
-
-full="false"
-capacity_icon="$(pick_icon "$capacity" 0 100 "${CAPACITY_ICONS[@]}")"
-
-if [ "$status" = "Not charging" ] || [ "$status" = "Full" ] && [ "$adp_connected" = "true" ]; then
- extra_icon="$FULL_ICON"
- full="true"
-elif [ "$status" = "Discharging" ] && [ "$capacity" -le "$CRITICAL_PERCENTAGE" ]; then
- extra_icon="$CRITICAL_ICON"
-elif [ "$status" = "Discharging" ]; then
- extra_icon="$DISCHARGING_ICON"
-elif [ "$status" = "Charging" ]; then
- extra_icon="$CHARGING_ICON"
-fi
-
-[ "$capacity" -le "$CRITICAL_PERCENTAGE" ] && critical="true" || critical="false"
-
-jq -n -c --monochrome-output \
- --arg percent "$capacity" \
- --arg plugged "$adp_connected" \
- --arg status "$status" \
- --arg capacity_icon "$capacity_icon" \
- --arg extra_icon "$extra_icon" \
- --arg manufacturer "$manufacturer" \
- --arg model_name "$model_name" \
- --arg technology "$technology" \
- --arg energy_now "$energy_now" \
- --arg energy_full "$energy_full" \
- --arg energy_full_design "$energy_full_design" \
- --arg cycle_count "$cycle_count" \
- --arg critical "$critical" \
- --arg full "$full" \
- '$ARGS.named'
diff --git a/home/.config/eww/scripts/bluetooth b/home/.config/eww/scripts/bluetooth
deleted file mode 100755
index 240c4ca..0000000
--- a/home/.config/eww/scripts/bluetooth
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env bash
-
-ICON_IDLE=""
-ICON_CONNECTED=""
-ICON_OFF=""
-
-toggle() {
- status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "bluetooth") | .soft' | head -1)
-
- if [ "$status" = "unblocked" ]; then
- rfkill block bluetooth
- else
- rfkill unblock bluetooth
- if ! systemctl -q is-active bluetooth.service; then
- # This will use polkit for privillege elevation
- systemctl start bluetooth
- fi
- fi
-}
-
-get_report() {
- status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "bluetooth") | .soft' | head -1)
- if [ "$status" = "blocked" ] || ! systemctl -q is-active bluetooth.service || ! command -v bluetoothctl >/dev/null 2>&1; then
- jq -n -c --monochrome-output \
- --arg icon "$ICON_OFF" \
- --arg status "unknown" \
- --arg name "" \
- --arg mac "" \
- --arg battery "" \
- '$ARGS.named'
-
- return
- fi
-
- status="$(bluetoothctl show)"
-
- powered="$(echo "$status" | grep Powered | cut -d' ' -f 2-)"
- if [ "$powered" != "yes" ]; then
- jq -n -c --monochrome-output \
- --arg icon "$ICON_OFF" \
- --arg status "unpowered" \
- --arg name "" \
- --arg mac "" \
- --arg battery "" \
- '$ARGS.named'
-
- return
- fi
-
- status="$(bluetoothctl info)"
- if [ "$status" == "Missing device address argument" ]; then
- jq -n -c --monochrome-output \
- --arg icon "$ICON_IDLE" \
- --arg status "idle" \
- --arg name "" \
- --arg mac "" \
- --arg battery "" \
- '$ARGS.named'
-
- return
- fi
-
- name="$(echo "$status" | grep Name | cut -d' ' -f 2-)"
- mac="$(echo "$status" | head -1 | awk '{print $2}' | tr ':' '_')"
-
- if [ "$(echo "$status" | grep Percentage)" != "" ] && command -v upower >/dev/null 2>&1; then
- battery="$(upower -i /org/freedesktop/UPower/devices/headset_dev_"$mac" | grep percentage | awk '{print $2}' | cut -f 1 -d '%')%"
- else
- battery=""
- fi
-
- jq -n -c --monochrome-output \
- --arg icon "$ICON_CONNECTED" \
- --arg status "connected" \
- --arg name "$name" \
- --arg mac "$mac" \
- --arg battery "$battery" \
- '$ARGS.named'
-}
-
-case "$1" in
- "status") get_report ;;
- "toggle") toggle ;;
- *) >&2 echo "Invalid usage, argument '$1' not recognized."; exit 1 ;;
-esac
diff --git a/home/.config/eww/scripts/gammarelay b/home/.config/eww/scripts/gammarelay
deleted file mode 100755
index 79f1ec4..0000000
--- a/home/.config/eww/scripts/gammarelay
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env bash
-
-if [ "$1" = "temperature" ]; then
- watch_cmd="{t}"
- update_cmd="UpdateTemperature"
- update_signature="n"
- set_cmd="Temperature"
- set_signature="q"
- default_val=6500
- click_val=4500
- scroll_change=100
- cmp_op="<"
-
-elif [ "$1" = "brightness" ]; then
- watch_cmd="{bp}"
- update_cmd="UpdateBrightness"
- update_signature="d"
- set_cmd="Brightness"
- set_signature="d"
- default_val=1
- click_val=0.8
- scroll_change=0.02
- cmp_op="<"
-
-elif [ "$1" = "gamma" ]; then
- watch_cmd="{g}"
- update_cmd="UpdateGamma"
- update_signature="d"
- set_cmd="Gamma"
- set_signature="d"
- default_val=1
- click_val=1.1
- scroll_change=0.02
- cmp_op=">"
-
-else
- >&2 echo "Invalid option, first argument must be one of: temperature, brightness, gamma"
- exit 1
-fi
-
-if [ "$2" = "watch" ]; then
- exec wl-gammarelay-rs watch "$watch_cmd"
-
-elif [ "$2" = "get" ]; then
- exec busctl --user get-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" | cut -d' ' -f2
-
-elif [ "$2" = "scroll" ]; then
- if [ "$3" = "up" ]; then
- sign="+"
- elif [ "$3" = "down" ]; then
- sign="-"
- else
- >&2 echo "Invalid sign, second argument must be one of: up, down"
- exit 1
- fi
-
- exec busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay "$update_cmd" "$update_signature" ${sign}${scroll_change}
-
-elif [ "$2" = "set" ]; then
- mode="$3"
- if [ "$mode" = "toggle" ]; then
- cur_val="$(busctl --user get-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" | cut -d' ' -f2)"
- if [ "$(echo "$cur_val $cmp_op $default_val" | bc -l)" = "1" ]; then
- mode="off"
- else
- mode="on"
- fi
- fi
-
- if [ "$mode" = "on" ]; then
- exec busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" "$set_signature" "$click_val"
- elif [ "$mode" = "off" ]; then
- exec busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" "$set_signature" "$default_val"
- else
- >&2 echo "Invalid mode, third argument, must be one of: toggle, on, off"
- exit 1
- fi
-
-else
- >&2 echo "Invalid operation, second argument must be one of: watch, scroll, set"
- exit 1
-fi
diff --git a/home/.config/eww/scripts/include b/home/.config/eww/scripts/include
deleted file mode 100755
index b67e164..0000000
--- a/home/.config/eww/scripts/include
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env bash
-
-# $1: Current number
-# $2: Range minimum
-# $3: Range maximum
-# $4-: Icons as individual arguments
-pick_icon() {
- cur="$1"
- min="$2"
- max="$3"
- shift 3
- icons=("$@")
-
- index="$(echo "($cur-$min)/(($max-$min)/${#icons[@]})" | bc)"
-
- # Print the picked icon, handling overflows/underflows, i.e. if our index is <0 or >len(icons)
- if [ "$index" -ge "${#icons[@]}" ]; then
- index=-1
- elif [ "$index" -lt 0 ]; then
- index=0
- fi
-
- echo "${icons[index]}"
-}
-
-# Will block and listen to the hyprland socket messages and output them
-# Generally used like: hyprland_ipc | while read line; do handle $line; done
-# Read for output format and available events
-# Note: requires openbsd version of netcat.
-# $1 - Optional event to listen for (no event filtering will be done if not provided)
-hyprland_ipc() {
- if [ -z "$HYPRLAND_INSTANCE_SIGNATURE" ]; then
- >&2 echo "Hyprland is not running, IPC not available"
- exit 1
- fi
-
- SOCKET_PATH="${XDG_RUNTIME_DIR:-/run/user/$UID}/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
- #SOCKET_PATH="/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
-
- if [ -z "$1" ]; then
- nc -U "$SOCKET_PATH" | while read -r test; do
- echo "$test"
- done
- else
- nc -U "$SOCKET_PATH" | while read -r test; do
- # shellcheck disable=SC2016
- echo "$test" | grep --line-buffered -E "^$1>>" | stdbuf -oL awk -F '>>' '{print $2}'
- done
- fi
-}
diff --git a/home/.config/eww/scripts/net b/home/.config/eww/scripts/net
deleted file mode 100755
index 7d84697..0000000
--- a/home/.config/eww/scripts/net
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-STRENGTH_ICONS=("" "" "" "" "" "")
-DISCONNECTED_ICON=""
-WIFI_OFF=""
-
-toggle() {
- status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "wlan") | .soft' | head -1)
-
- if [ "$status" = "unblocked" ]; then
- rfkill block wlan
- else
- rfkill unblock wlan
- fi
-}
-
-get_report() {
- connection_details="$(nmcli -t -f NAME,TYPE,DEVICE connection show --active | grep wireless | head -n1)"
- essid="$(echo $connection_details | cut -d':' -f1)"
- device="$(echo $connection_details | cut -d':' -f3)"
- if [ -n "$device" ]; then
- state="$(nmcli -t -f DEVICE,STATE device status | grep "$device" | head -n1 | cut -d':' -f2)"
- signal="$(nmcli -t -f in-use,signal dev wifi | grep "\*" | cut -d':' -f2)"
- else
- state="unknown"
- signal="0"
- fi
-
- if [ "$state" = "disconnected" ] ; then
- icon="$DISCONNECTED_ICON"
- elif [ "$state" = "unknown" ]; then
- icon="$WIFI_OFF"
- else
- icon="$(pick_icon "$signal" 0 100 "${STRENGTH_ICONS[@]}")"
- fi
-
- jq -n -c --monochrome-output \
- --arg essid "$essid" \
- --arg icon "$icon" \
- --arg state "$state" \
- --arg signal "$signal" \
- '$ARGS.named'
-}
-
-case "$1" in
- "toggle") toggle ;;
- "status") get_report ;;
- *) >&2 echo "Invalid usage, argument '$1' not recognized."; exit 1 ;;
-esac
diff --git a/home/.config/eww/scripts/nightlight b/home/.config/eww/scripts/nightlight
deleted file mode 100644
index 5052dca..0000000
--- a/home/.config/eww/scripts/nightlight
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-# Consider usning a file as a flag for whether nightlight is on or off
-# as we might be in transition state and just killing the program might
-# not be enough.
-
-if [ "$1" = "toggle" ]; then
- gammastep -x
-fi
diff --git a/home/.config/eww/scripts/pyproject.toml b/home/.config/eww/scripts/pyproject.toml
deleted file mode 100644
index e3a2d4f..0000000
--- a/home/.config/eww/scripts/pyproject.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-[tool.black]
-line-length = 119
-extend-exclude = "^/.cache"
-
-[tool.isort]
-profile = "black"
-line_length = 119
-atomic = true
-order_by_type = false
-case_sensitive = true
-combine_as_imports = true
-skip = [".venv", ".git", ".cache"]
diff --git a/home/.config/eww/scripts/storage b/home/.config/eww/scripts/storage
deleted file mode 100755
index aded231..0000000
--- a/home/.config/eww/scripts/storage
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env bash
-
-MOUNTPOINTS=("/" "/mnt/ext")
-
-data="$(df -H)"
-
-as_json() {
- mountpoint="$1"
- res="$2"
- arr_res=($res)
-
- jq -n -c --monochrome-output \
- --arg mountpoint "$mountpoint" \
- --arg size "${arr_res[0]}" \
- --arg used "${arr_res[1]}" \
- --arg avail "${arr_res[2]}" \
- --arg percent "${arr_res[3]}" \
- '$ARGS.named'
-}
-
-output_json="[]"
-for mountpoint in "${MOUNTPOINTS[@]}"; do
- res="$(echo "$data" | awk -v m="$mountpoint" '$6 == m {print $2 " " $3 " " $4 " " $5}')"
- out="$(as_json "$mountpoint" "$res")"
-
- # echo "$output_json $out" | jq -c -s
-
- jq --argjson arr1 "$output_json" --argjson arr2 "[$out]" -n \
- '$arr1 + $arr2'
-
- # mount_data+=("$mountpoint" $res)
- # echo "${mount_data[@]}"
-done
-
-# echo "${mount_data[@]}"
diff --git a/home/.config/eww/scripts/temp b/home/.config/eww/scripts/temp
deleted file mode 100755
index b6cdd13..0000000
--- a/home/.config/eww/scripts/temp
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-#hyprland_ipc "workspace|createworkspace|destroyworkspace|activewindow"
-hyprland_ipc
diff --git a/home/.config/eww/scripts/volume b/home/.config/eww/scripts/volume
deleted file mode 100755
index 23cf284..0000000
--- a/home/.config/eww/scripts/volume
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env bash
-
-# Define some icons
-SPEAKER_ICONS=("" "" "")
-SPEAKER_MUTED_ICON=""
-MIC_ICON=""
-MIC_MUTED_ICON=""
-
-# Define some helper functions for getting/setting audio data using wireplumber (wpctl)
-
-# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
-get_vol() {
- wpctl get-volume "@DEFAULT_AUDIO_${1}@" | awk '{print int($2*100)}'
-}
-
-# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
-# #2 is the voulme (as percentage) to set the volume to
-# $3 is optional, if set, it can be '+' or '-', which then adds/decreases volume, instead of setting
-set_vol() {
- wpctl set-volume "@DEFAULT_AUDIO_${1}@" "$(awk -v n="$2" 'BEGIN{print (n / 100)}')$3"
-}
-
-# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
-check_mute() {
- wpctl get-volume "@DEFAULT_AUDIO_${1}@" | grep -i muted >/dev/null
- echo $?
-}
-
-# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
-toggle_mute() {
- wpctl set-mute "@DEFAULT_AUDIO_${1}@" toggle
-}
-
-get_report() {
- spkr_vol="$(get_vol "SINK")"
- mic_vol="$(get_vol "SOURCE")"
-
- if [ "$(check_mute "SINK")" == "0" ]; then
- spkr_mute="true"
- spkr_icon="$SPEAKER_MUTED_ICON"
- else
- spkr_mute="false"
- index="$(awk -v n="$spkr_vol" -v m="${#SPEAKER_ICONS[@]}" 'BEGIN{print int(n/(100/m))}')"
-
- # We might end up with an higher than the length of icons, if the volume is over 100%
- # in this case, set the index to last icon
- if [ "$index" -ge "${#SPEAKER_ICONS[@]}" ]; then
- spkr_icon="${SPEAKER_ICONS[-1]}"
- else
- spkr_icon="${SPEAKER_ICONS[$index]}"
- fi
- fi
-
- if [ "$(check_mute "SOURCE")" = "0" ]; then
- mic_mute="true"
- mic_icon="$MIC_MUTED_ICON"
- else
- mic_mute="false"
- mic_icon="$MIC_ICON"
- fi
-
- echo "{ \"speaker_vol\": \"$spkr_vol\", \"speaker_mute\": $spkr_mute, \"speaker_icon\": \"$spkr_icon\", \"microphone_mute\": $mic_mute, \"microphone_vol\": \"$mic_vol\", \"microphone_icon\": \"$mic_icon\" }"
-}
-
-# Continually run and report every volume change (into stdout)
-loop() {
- get_report
- pactl subscribe | grep --line-buffered "change" | while read -r _; do
- get_report
- done
-}
-
-case "$1" in
-"loop") loop ;;
-
-"once") get_report ;;
-
-"togglemute")
- if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
- >&2 echo "Invalid usage, expected second argument to be 'SINK' or 'SOURCE', got '$2'"
- exit 1
- fi
- toggle_mute "$2"
- ;;
-
-"setvol")
- if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
- >&2 echo "Invalid usage, expected second argument to be 'SINK' or 'SOURCE', got '$2'"
- exit 1
- fi
-
- if [[ "$3" =~ ^[+-]?[0-9]*\.?[0-9]+$ ]]; then
- case "$4" in
- "") set_vol "$2" "$3" ;;
- up | +) set_vol "$2" "$3" "+" ;;
- down | -) set_vol "$2" "$3" "-" ;;
- *)
- >&2 echo "Invalid usage, expected fourth argument to be up/down or +/-, got '$4'"
- exit 1
- ;;
- esac
- else
- >&2 echo "Invalid usage, exepcted third argument to be a number, got '$3'"
- exit 1
- fi
- ;;
-
-*)
- >&2 echo "Invalid usage, argument '$1' not recognized."
- exit 1
- ;;
-esac
diff --git a/home/.config/eww/scripts/window_name b/home/.config/eww/scripts/window_name
deleted file mode 100755
index f9e8a59..0000000
--- a/home/.config/eww/scripts/window_name
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-hyprland_ipc "activewindow" | ./scripts/window_name.py
diff --git a/home/.config/eww/scripts/window_name.py b/home/.config/eww/scripts/window_name.py
deleted file mode 100755
index 7f4a069..0000000
--- a/home/.config/eww/scripts/window_name.py
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/env python3
-"""This is a utility script for regex remaps on window names.
-
-This is done in python, because of the complex regex logic, which would be pretty hard to
-recreate in bash. This python script is expected to be called from the bash script controlling
-the window names. Window name and class are obtained from piped stdin, to prevent having to
-needlessly keep restarting this program, which takes a while due to the interpreter starting
-overhead.
-"""
-
-import json
-import re
-import sys
-from typing import Iterator, Optional
-
-
-class RemapRule:
- __slots__ = ("name_pattern", "output_pattern", "class_pattern")
-
- def __init__(
- self,
- name_pattern: str,
- output_pattern: str,
- class_pattern: Optional[str] = None,
- ):
- self.name_pattern = re.compile(name_pattern)
- self.output_pattern = output_pattern
- self.class_pattern = re.compile(class_pattern) if class_pattern else None
-
- def apply(self, window_name: str, window_class: str) -> str:
- """Returns new name after this remap rule was applied."""
- if self.class_pattern is not None:
- if not self.class_pattern.fullmatch(window_class):
- # Rule doesn't apply, class mismatch, return original name
- return window_name
-
- res = self.name_pattern.fullmatch(window_name)
- if not res:
- # Rule doesn't apply, name mismatch, return original name
- return window_name
-
- # NOTE: This is potentially unsafe, since output_pattern might be say {0.__class__}, etc.
- # meaning this allows arbitrary attribute access, however it doesn't allow running functions
- # here. That said, code could still end up being run if there's some descriptor defined,
- # and generally I wouldn't trust this in production. However, this code is for my personal
- # use here, and all of the output patterns are hard-coded in this file, so in this case, it's
- # fine. But if you see this code and you'd like to use it in your production code, maybe don't
- return self.output_pattern.format(*res.groups())
-
-
-# Rules will be applied in specified order
-REMAP_RULES: list[RemapRule] = [
- RemapRule(r"", "", ""),
- RemapRule(r"(.*) — Mozilla Firefox", " {}", "firefox"),
- RemapRule(r"Mozilla Firefox", " Mozilla Firefox", "firefox"),
- RemapRule(r"Alacritty", " Alacritty", "Alacritty"),
- RemapRule(
- r"zsh;#toggleterm#1 - \(term:\/\/(.+)\/\/(\d+):(.+)\) - N?VIM",
- " Terminal: {0}",
- ),
- RemapRule(r"(.+) \+ \((.+)\) - N?VIM", " {0} ({1}) [MODIFIED]"),
- RemapRule(r"(.+) \((.+)\) - N?VIM", " {0} ({1})"),
- RemapRule(r"(?:\[\d+\] )?\*?WebCord - (.+)", " {}", "WebCord"),
- RemapRule(r"(.+) - Discord", " {}", "discord"),
- RemapRule(r"(?:\(\d+\) )?Discord \| (.+)", " {}", "vesktop"),
- RemapRule(r"(.+) - mpv", " {}", "mpv"),
- RemapRule(r"Stremio - (.+)", " Stremio - {}", r"(Stremio)|(com.stremio.stremio)"),
- RemapRule(r"Spotify((?: Premium)?)", " Spotify{}", "[Ss]potify"),
- RemapRule(r"pulsemixer", " Pulsemixer"),
- RemapRule(r"(.*)", " {}", "Pcmanfm"),
- RemapRule(r"(.*)", " {}", "pcmanfm-qt"),
- # Needs to be last
- RemapRule(r"(.*)", " {}", "kitty"),
-]
-
-MAX_LENGTH = 65
-
-
-def iter_window() -> Iterator[tuple[str, str]]:
- """Listen for the window parameters from stdin/pipe, yields (window_name, window_class)."""
- for line in sys.stdin:
- line = line.removesuffix("\n")
- els = line.split(",", maxsplit=1)
- if len(els) != 2:
- raise ValueError(
- f"Expected 2 arguments from stdin line (name, class), but got {len(els)}"
- )
- yield els[1], els[0]
-
-
-def main() -> None:
- for window_name, window_class in iter_window():
- formatted_name = window_name
- for remap_rule in REMAP_RULES:
- new_name = remap_rule.apply(formatted_name, window_class)
- if new_name != formatted_name:
- formatted_name = new_name
- break
-
- formatted_name = formatted_name.split("\n")[0]
- if len(formatted_name) > MAX_LENGTH:
- formatted_name = formatted_name[: MAX_LENGTH - 3] + "..."
-
- ret = json.dumps(
- {
- "name": window_name,
- "class": window_class,
- "formatted_name": formatted_name,
- }
- )
- print(ret)
- sys.stdout.flush()
-
-
-if __name__ == "__main__":
- main()
diff --git a/home/.config/eww/scripts/workspaces b/home/.config/eww/scripts/workspaces
deleted file mode 100755
index f8e45ed..0000000
--- a/home/.config/eww/scripts/workspaces
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env bash
-
-# shellcheck source=include
-source "./scripts/include"
-
-if [ "$1" = "--switch" ]; then
- hyprctl dispatch focusworkspaceoncurrentmonitor "$2" >/dev/null
-elif [ "$1" = "--loop" ]; then
- hyprland_ipc "workspace|createworkspace|destroyworkspace" | ./scripts/workspaces.py "$@"
-else
- ./scripts/workspaces.py "$@"
-fi
diff --git a/home/.config/eww/scripts/workspaces.py b/home/.config/eww/scripts/workspaces.py
deleted file mode 100755
index 4c31f4b..0000000
--- a/home/.config/eww/scripts/workspaces.py
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/usr/bin/env python3
-import argparse
-import json
-import subprocess
-import sys
-from typing import TypedDict, TYPE_CHECKING
-
-if TYPE_CHECKING:
- from _typeshed import SupportsRichComparison
-
-
-class WorkspaceInfo(TypedDict):
- id: int
- name: str
- monitor: str
- windows: int
- hasfullscreen: bool
- lastwindow: str
- lastwindowtitle: str
-
-
-class ActiveWorkspaceInfo(TypedDict):
- id: int
- name: str
-
-
-class MonitorInfo(TypedDict):
- id: int
- name: str
- description: str
- make: str
- model: str
- width: int
- height: int
- refreshRate: float
- x: int
- y: int
- activeWorkspace: ActiveWorkspaceInfo
- reserved: list[int]
- scale: float
- transform: int
- focused: bool
- dpmsStatus: bool
- vrr: bool
-
-
-class OutputWorkspaceInfo(WorkspaceInfo):
- format_name: str
- active: bool
- monitor_id: int
-
-
-# workspace id -> remapped name
-REMAPS = {
- 1: "",
- 2: "",
- 3: "",
- 4: "",
- 5: "",
- 6: "",
- 7: "7",
- 8: "8",
- 9: "9",
-}
-
-# Skip the special (scratchpad) workspace
-SKIP = {-99}
-
-
-def workspace_sort(obj: OutputWorkspaceInfo) -> "SupportsRichComparison":
- """Returns a key to sort by, given the current element."""
- return obj["id"]
-
-
-def fill_blank_workspaces(open: list[OutputWorkspaceInfo]) -> list[OutputWorkspaceInfo]:
- """Add in the rest of the workspaces which don't have any open windows on them.
-
- This is needed because hyprland deletes workspaces with nothing in them.
- Note that this assumes all available workspaces were listed in REMAPS, and will
- only fill those. These blank workspaces will have most string values set to "N/A",
- and most int values set to 0.
- """
- # Work on a copy, we don't want to alter the original list
- lst = open.copy()
-
- for remap_id, format_name in REMAPS.items():
- # Skip for already present workspaces
- if any(ws_info["id"] == remap_id for ws_info in lst):
- continue
-
- blank_ws: OutputWorkspaceInfo = {
- "id": remap_id,
- "name": str(remap_id),
- "monitor": "N/A",
- "windows": 0,
- "hasfullscreen": False,
- "lastwindow": "N/A",
- "lastwindowtitle": "N/A",
- "active": False,
- "format_name": format_name,
- "monitor_id": 0,
- }
- lst.append(blank_ws)
-
- return lst
-
-
-def get_workspaces() -> list[OutputWorkspaceInfo]:
- """Obtain workspaces from hyprctl, sort them and add format_name arg."""
- proc = subprocess.run(["hyprctl", "workspaces", "-j"], stdout=subprocess.PIPE)
- proc.check_returncode()
- try:
- workspaces: list[WorkspaceInfo] = json.loads(proc.stdout)
- except json.JSONDecodeError:
- sys.stderr.writelines([
- "Error decoding json response from hyprctl, returning empty workspaces",
- f"Actual captured output from hyprctl: {proc.stdout!r}"
- ])
- sys.stderr.flush()
- workspaces = []
-
- proc = subprocess.run(["hyprctl", "monitors", "-j"], stdout=subprocess.PIPE)
- proc.check_returncode()
- monitors: list[MonitorInfo] = json.loads(proc.stdout)
-
- active_workspaces = {monitor["activeWorkspace"]["id"] for monitor in monitors}
-
- out: list[OutputWorkspaceInfo] = []
- for workspace in workspaces:
- if workspace["id"] in SKIP:
- continue
- format_name = REMAPS.get(workspace["id"], workspace["name"])
- active = workspace["id"] in active_workspaces
- try:
- mon_id = [monitor["id"] for monitor in monitors if monitor["name"] == workspace["monitor"]][0]
- except IndexError: # Sometimes workspace["monitor"] is "?", which doesn't match any monitor
- mon_id = -1
- out.append({**workspace, "format_name": format_name, "active": active, "monitor_id": mon_id})
-
- out = fill_blank_workspaces(out)
- out.sort(key=workspace_sort)
- return out
-
-
-def print_workspaces() -> None:
- wks = get_workspaces()
- ret = json.dumps(wks)
- print(ret)
- sys.stdout.flush()
-
-
-def main() -> None:
- parser = argparse.ArgumentParser()
- parser.add_argument(
- "--oneshot",
- action="store_true",
- help="Don't listen to stdout for updates, only run once and quit",
- )
- parser.add_argument(
- "--loop",
- action="store_true",
- help="Listen to stdout input, once something is received, re-print workspaces"
- )
- args = parser.parse_args()
-
- if args.loop and args.oneshot:
- print("Can't use both --oneshot and --loop", file=sys.stdout)
- sys.exit(1)
-
- if args.loop is None and args.oneshot is None:
- print("No option specified!", file=sys.stdout)
- sys.exit(1)
-
- # Print workspaces here immediately, we don't want to have to wait for the first
- # update from stdin as we only receive those on actual workspace change.
- print_workspaces()
-
- if args.oneshot:
- # We've already printed the workspaces once, we can exit now
- return
-
- # Reprint workspaces on each stdin update (flush)
- for _ in sys.stdin:
- print_workspaces()
-
-
-if __name__ == "__main__":
- main()
diff --git a/home/.config/eww/windows/calendar.yuck b/home/.config/eww/windows/calendar.yuck
deleted file mode 100644
index 610f00a..0000000
--- a/home/.config/eww/windows/calendar.yuck
+++ /dev/null
@@ -1,14 +0,0 @@
-(defwidget calendar-win []
- (box
- :class "calendar-win"
- (calendar)))
-
-(defwindow calendar
- :monitor 0
- :geometry (geometry
- :x "0%"
- :y "0%"
- :anchor "top right"
- :width "0px"
- :height "0px")
- (calendar-win))
diff --git a/home/.config/eww/windows/radio-menu.yuck b/home/.config/eww/windows/radio-menu.yuck
deleted file mode 100644
index c9a51b5..0000000
--- a/home/.config/eww/windows/radio-menu.yuck
+++ /dev/null
@@ -1,78 +0,0 @@
-(defwidget radio-menu-win []
- (box
- :class "radio-menu-box"
- :space-evenly false
- :orientation "v"
-
- (box
- :class "text-row"
- :space-evenly false
- (label
- :class "title"
- :text "Radio/Connections Panel"))
-
- (box
- :class "element-row"
-
- (box
- :class "wifi-box"
- :space-evenly false
- :orientation "v"
- (box
- :class "element icon"
- :space-evenly false
- :halign "center"
- (button
- :class "wifi-button"
- :tooltip "${net.state} (strength: ${net.signal}%)"
- :onclick "scripts/net toggle"
- {net.icon})
- (label
- :class "separator"
- :text "│")
- (button
- :class "wifi-arrow-btn"
- :onclick "eww close radio-menu && nm-connection-editor &"
- ""))
- (label
- :text {net.essid}
- :xalign 0.5
- :limit-width 15))
-
- (box
- :class "bluetooth-box"
- :space-evenly false
- :orientation "v"
- (box
- :class "element icon"
- :space-evenly false
- :halign "center"
- (button
- :class "bluetooth-button"
- :onclick "scripts/bluetooth toggle"
- :tooltip "${bluetooth.name} (${bluetooth.mac}) ${bluetooth.battery}"
- {bluetooth.icon})
- (label
- :class "separator"
- :text "│")
- (button
- :class "bluetooth-arrow-btn"
- :onclick "eww close radio-menu && blueberry"
- ""))
- (label
- :text {bluetooth.name}
- :xalign 0.5
- :tooltip "${bluetooth.name} (${bluetooth.mac}) ${bluetooth.battery}"
- :limit-width 15)))
- ))
-
-(defwindow radio-menu
- :stacking "fg"
- :monitor 0
- :geometry (geometry
- :x "0"
- :y "0"
- :width "0%"
- :height "0%"
- :anchor "right top")
- (radio-menu-win))
diff --git a/home/.config/gh/config.yml b/home/.config/gh/config.yml
new file mode 100644
index 0000000..8b25011
--- /dev/null
+++ b/home/.config/gh/config.yml
@@ -0,0 +1,27 @@
+# The current version of the config schema
+version: 1
+# What protocol to use when performing git operations. Supported values: ssh, https
+git_protocol: https
+# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
+editor:
+# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
+prompt: enabled
+# Preference for editor-based interactive prompting. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
+prefer_editor_prompt: disabled
+# A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager.
+pager:
+# Aliases allow you to create nicknames for gh commands
+aliases:
+ co: pr checkout
+# The path to a unix socket through which to send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
+http_unix_socket:
+# What web browser gh should use when opening URLs. If blank, will refer to environment.
+browser:
+# Whether to display labels using their RGB hex color codes in terminals that support truecolor. Supported values: enabled, disabled
+color_labels: disabled
+# Whether customizable, 4-bit accessible colors should be used. Supported values: enabled, disabled
+accessible_colors: disabled
+# Whether an accessible prompter should be used. Supported values: enabled, disabled
+accessible_prompter: disabled
+# Whether to use a animated spinner as a progress indicator. If disabled, a textual progress indicator is used instead. Supported values: enabled, disabled
+spinner: enabled
diff --git a/home/.config/gh/hosts.yml b/home/.config/gh/hosts.yml
new file mode 100644
index 0000000..eca830c
--- /dev/null
+++ b/home/.config/gh/hosts.yml
@@ -0,0 +1,5 @@
+github.com:
+ git_protocol: https
+ users:
+ ItsDrike:
+ user: ItsDrike
diff --git a/home/.config/gtk-4.0/gtk.css b/home/.config/gtk-4.0/gtk.css
deleted file mode 100644
index 59f0852..0000000
--- a/home/.config/gtk-4.0/gtk.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
-* GTK 4 reads the theme configured by gtk-theme-name, but ignores it.
-* It does however respect user CSS, so import the theme from here.
-**/
-@import url("file:///usr/share/themes/Tokyonight-Dark/gtk-4.0/gtk.css");
diff --git a/home/.config/hypr/hyprland.conf b/home/.config/hypr/hyprland.conf
index 2a01ea1..664a0ec 100644
--- a/home/.config/hypr/hyprland.conf
+++ b/home/.config/hypr/hyprland.conf
@@ -1,22 +1,9 @@
-general {
- # cursor_inactive_timeout = 10
- # no_cursor_warps = true
-}
-
-debug {
- overlay = false
- #disable_logs = false
- enable_stdout_logs = true
-}
-
-source = ~/.config/hypr/hyprland.d/exec.conf
-source = ~/.config/hypr/hyprland.d/layout.conf
+source = ~/.config/hypr/hyprland.d/permissions.conf
+source = ~/.config/hypr/hyprland.d/keybinds.conf
source = ~/.config/hypr/hyprland.d/input.conf
source = ~/.config/hypr/hyprland.d/style.conf
-source = ~/.config/hypr/hyprland.d/keybinds.conf
source = ~/.config/hypr/hyprland.d/window_rules.conf
-source = ~/.config/hypr/hyprland.d/gestures.conf
source = ~/.config/hypr/hyprland.d/misc.conf
-source = ~/.config/hypr/hyprland.d/plugins.conf
+source = ~/.config/hypr/hyprland.d/debug.conf
-# vi: ft=hyprlang
+exec-once = uwsm finalize
diff --git a/home/.config/hypr/hyprland.d/debug.conf b/home/.config/hypr/hyprland.d/debug.conf
new file mode 100644
index 0000000..8c625b7
--- /dev/null
+++ b/home/.config/hypr/hyprland.d/debug.conf
@@ -0,0 +1,7 @@
+debug {
+ overlay = false
+
+ #disable_logs = false
+ enable_stdout_logs = true
+}
+
diff --git a/home/.config/hypr/hyprland.d/exec.conf b/home/.config/hypr/hyprland.d/exec.conf
deleted file mode 100644
index 95e1bbe..0000000
--- a/home/.config/hypr/hyprland.d/exec.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-exec-once = uwsm finalize
-exec-once = sleep 3 && uwsm app vesktop
-
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprland.d/gestures.conf b/home/.config/hypr/hyprland.d/gestures.conf
deleted file mode 100644
index 02d4b3a..0000000
--- a/home/.config/hypr/hyprland.d/gestures.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-gestures {
- workspace_swipe = true
- workspace_swipe_fingers = 3
- workspace_swipe_distance = 300
- workspace_swipe_invert = false
- workspace_swipe_min_speed_to_force = 20
- workspace_swipe_cancel_ratio = 0.650000
-}
-
-# vi: ft=hyprlang
-
diff --git a/home/.config/hypr/hyprland.d/input.conf b/home/.config/hypr/hyprland.d/input.conf
index 6a1fddc..0ce00dc 100644
--- a/home/.config/hypr/hyprland.d/input.conf
+++ b/home/.config/hypr/hyprland.d/input.conf
@@ -3,11 +3,14 @@
# ################
# Should be configured per-profile
-monitor = desc:Microstep MSI MAG 256F BC1H174600235, 1920x1080@120, 1920x0, 1 # left
-monitor = desc:AOC 2260WG5 KBEH81A000795, 1920x1080@60, 1920x0, 1, # left
+# Primary (laptop)
monitor = eDP-1, 1920x1200@60, 0x0, 1
+# Externals
+monitor = desc:Microstep MSI MAG 256F BC1H174600235, 1920x1080@120, 1920x0, 1 # right
+monitor = desc:AOC 2260WG5 KBEH81A000795, 1920x1080@60, 1920x0, 1, # right
+
# Mirror the primary (laptop) monitor on externals
#monitor= , preferred, auto, 1, mirror, eDP-1
# Extend on externals
@@ -34,3 +37,4 @@ input {
}
# vi: ft=hyprlang
+
diff --git a/home/.config/hypr/hyprland.d/keybinds.conf b/home/.config/hypr/hyprland.d/keybinds.conf
index cad7aeb..2df0dd5 100644
--- a/home/.config/hypr/hyprland.d/keybinds.conf
+++ b/home/.config/hypr/hyprland.d/keybinds.conf
@@ -12,34 +12,65 @@ $XF86Favorites = 164
bind = SUPER, W, killactive,
bind = SUPER, F, togglefloating,
-bind = SUPER, Space, fullscreen, 0 # regular fullscreen
-bind = SUPER_SHIFT, Space, fullscreen, 1 # maximize without client fullscreen
-bind = SUPER_CTRL, Space, fullscreenstate, 2, 0 # fullscreen without client knowing
-bind = SUPER_CTRL_SHIFT, Space, fullscreenstate, 1, 2 # maximize with client being full-screen
-bind = CTRL_SHIFT, Space, exec, toggle-fake-fullscreen # fake fullscreen + custom border
-bind = SUPER_SHIFT, S, layoutmsg, togglesplit
-
-# ################
-# ### PROGRAMS ###
-# ################
-
-bind = SUPER, R, exec, uwsm app -- $(uwsm app -- wofi --show drun --define=drun-print_desktop_file=true)
-bind = SUPER_SHIFT, V, exec, uwsm app -- clipman pick -t wofi
-
-bind = SUPER, Return, exec, uwsm app -- kitty
-bind = SUPER, X, exec, uwsm app -- pcmanfm-qt
-bind = SUPER, B, exec, uwsm app -- firefox
-bind = SUPER, C, exec, uwsm app -- qalculate-gtk
-bind = , XF86Calculator, exec, uwsm app -- qalculate-gtk
+bind = SUPER SHIFT, S, layoutmsg, togglesplit
+bind = SUPER, P, pseudo
# #####################
# ### DE/WM CONTROL ###
# #####################
-bind = SUPER_SHIFT, Q, exec, uwsm app -- menuquit
-bind = SUPER_CTRL, L, exec, loginctl lock-session
-bind = SUPER_SHIFT, L, exec, uwsm app -- wlogout -p layer-shell
-bind = SUPER_SHIFT, T, exec, toggle-idle
+bind = SUPER CTRL, L, exec, loginctl lock-session
+bind = SUPER SHIFT, L, exec, uwsm app -- wlogout -p layer-shell
+bind = SUPER SHIFT, T, exec, toggle-idle
+#
+
+# ################
+# ### PROGRAMS ###
+# ################
+
+bind = SUPER, R, exec, uwsm app -- walker
+bind = SUPER, Return, exec, uwsm app -- kitty
+bind = SUPER, X, exec, uwsm app -- pcmanfm-qt
+bind = SUPER, B, exec, uwsm app -- firefox
+bind = SUPER, C, exec, uwsm app -- qalculate-gtk
+bind = , XF86Calculator, exec, uwsm app -- qalculate-gtk
+bind = SUPER SHIFT, V, exec, uwsm app -- cliphist list | walker -d | cliphist decode | wl-copy
+
+# ###################
+# ### FULL-SCREEN ###
+# ###################
+
+bind = SUPER, Space, fullscreen, 0 # regular fullscreen
+bind = SUPER SHIFT, Space, fullscreen, 1 # maximize without client fullscreen
+bind = SUPER CTRL, Space, fullscreenstate, 2, 0 # fullscreen without client knowing
+bind = SUPER CTRL SHIFT, Space, fullscreenstate, 1, 2 # maximize with client being full-screen
+bind = CTRL SHIFT, Space, exec, toggle-fake-fullscreen # fake fullscreen + custom border
+
+# ############################
+# ### AUDIO/VOLUME CONTROL ###
+# ############################
+
+bindel = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
+bindel = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
+bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
+bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
+
+bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bindl = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+
+bindl = , XF86AudioNext, exec, playerctl next
+bindl = , XF86AudioPause, exec, playerctl play-pause
+bindl = , XF86AudioPlay, exec, playerctl play-pause
+bindl = , XF86AudioPrev, exec, playerctl previous
+
+# ##########################
+# ### BRIGHTNESS CONTROL ###
+# ##########################
+
+bindel = SUPER, Right, exec, brightnessctl -n2 set 5%+
+bindel = SUPER, Left, exec, brightnessctl -n2 set 5%-
+bindel = ,XF86MonBrightnessDown, exec, brightnessctl -n2 set 5%-
+bindel = ,XF86MonBrightnessUp, exec, brightnessctl -n2 set 5%+
# ###################
# ### SCREENSHOTS ###
@@ -50,58 +81,28 @@ $SCREENSHOT_FORMAT = "${XDG_SCREENSHOTS_DIR:-$HOME/Media/Pictures/Screenshots}/S
$SCREENSHOT_DELAY = 2000
$PRINTSCR_KEY = Print #Menu # Print
-#bind = ALT, $PRINTSCR_KEY, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
bind = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area
-#bindl = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed)
+#bindl = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed, dangerous)
bind = SUPER, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --edit
bind = SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area
bind = CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY
-bind = SUPER_SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
-bind = SUPER_CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
-bind = SUPER_SHIFT_CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
-bind = SUPER_ALT, $PRINTSCR_KEY, exec, ocr && notify-send "OCR" "Text copied to clipboard"
+bind = SUPER SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
+bind = SUPER CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
+bind = SUPER SHIFT CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
+bind = SUPER ALT, $PRINTSCR_KEY, exec, ocr && notify-send "OCR" "Text copied to clipboard"
+bind = ALT, $PRINTSCR_KEY, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
# XF86Favorites key for recording
# (don't question me, I had it free)
bind = , 164, exec, uwsm app -- quick-record --notify toggle
bind = SUPER, 164, exec, uwsm -- app quick-record toggle
-# #####################
-# ### NOTIFICATIONS ###
-# #####################
-
-bind = CTRL, grave, exec, swaync-client --close-latest
-bind = CTRL_SHIFT, grave, exec, swaync-client --close-all
-bind = CTRL_ALT, grave, exec, swaync-client --hide-latest
-bind = CTRL, period, exec, swaync-client --toggle-panel
-bind = SUPER_SHIFT, D, exec, toggle-notifications
-
-# ############################
-# ### AUDIO/VOLUME CONTROL ###
-# ############################
-
-binde = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
-binde = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
-binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
-binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
-bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
-bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
-
-# ##########################
-# ### BRIGHTNESS CONTROL ###
-# ##########################
-
-binde = SUPER, Right, exec, brightness -i 5% -n
-binde = SUPER, Left, exec, brightness -d 5% -n
-binde = , XF86MonBrightnessUp, exec, brightness -i 5% -n
-binde = , XF86MonBrightnessDown, exec, brightness -d 5% -n
-
# #####################
# ### WINDOW GROUPS ###
# #####################
bind = SUPER, G, togglegroup,
-bind = SUPER_SHIFT, G, lockactivegroup, toggle
+bind = SUPER SHIFT, G, lockactivegroup, toggle
bind = ALT, tab, changegroupactive, f
bind = ALT, grave, changegroupactive, b
@@ -122,33 +123,14 @@ bind = SUPER, k, movefocus, u
bind = SUPER, j, movefocus, d
# #######################################
-# ### MOVE ACTIVE WINDOW IN DIRECTION ###
+# ### MOVE FLOATING OR ACTIVE WINDOWS ###
# #######################################
-bind = SUPER_ALT, h, movewindow, l
-bind = SUPER_ALT, l, movewindow, r
-bind = SUPER_ALT, k, movewindow, u
-bind = SUPER_ALT, j, movewindow, d
-
-# #######################################
-# ### MOVE FLOATING WINDOWS ###
-# #######################################
-
-$myMoveSize = 100
-bind = SUPER_ALT, left, exec, hyprland-move-window $myMoveSiez l
-bind = SUPER_ALT, right, exec, hyprland-move-window $myMoveSize r
-bind = SUPER_ALT, up, exec, hyprland-move-window $myMoveSize u
-bind = SUPER_ALT, down, exec, hyprland-move-window $myMoveSize d
-
-
-# ################################################################
-# ### OVERRIDE SPLIT DIRECTION FOR NEXT WINDOW (MANUAL TILING) ###
-# ################################################################
-
-bind = SUPER_ALT, left, layoutmsg, preselect l
-bind = SUPER_ALT, right, layoutmsg, preselect r
-bind = SUPER_ALT, up, layoutmsg, preselect u
-bind = SUPER_ALT, down, layoutmsg, preselect d
+$floatMoveSize = 100
+bind = SUPER ALT, h, exec, hyprland-move-window $floatMoveSize l
+bind = SUPER ALT, l, exec, hyprland-move-window $floatMoveSize r
+bind = SUPER ALT, k, exec, hyprland-move-window $floatMoveSize u
+bind = SUPER ALT, j, exec, hyprland-move-window $floatMoveSize d
# ######################################################
# ### SWITCH WORKSPACE (SWAPPING TO CURRENT MONITOR) ###
@@ -168,15 +150,15 @@ bind = SUPER, 9, focusworkspaceoncurrentmonitor, 9
# ### MOVE WINDOW TO WORKSPACE ###
# ################################
-bind = SUPER_SHIFT, 1, movetoworkspacesilent, 1
-bind = SUPER_SHIFT, 2, movetoworkspacesilent, 2
-bind = SUPER_SHIFT, 3, movetoworkspacesilent, 3
-bind = SUPER_SHIFT, 4, movetoworkspacesilent, 4
-bind = SUPER_SHIFT, 5, movetoworkspacesilent, 5
-bind = SUPER_SHIFT, 6, movetoworkspacesilent, 6
-bind = SUPER_SHIFT, 7, movetoworkspacesilent, 7
-bind = SUPER_SHIFT, 8, movetoworkspacesilent, 8
-bind = SUPER_SHIFT, 9, movetoworkspacesilent, 9
+bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
+bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
+bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
+bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
+bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
+bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
+bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
+bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
+bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
# ###########################################
# ### MOVE WINDOW TO WORKSPACE + FOCUS IT ###
@@ -196,18 +178,15 @@ bind = ALT, 9, movetoworkspace, 9
# ### CYCLE WORKSPACES (RELATIVE MOVEMENT) ###
# ############################################
-bind = SUPER, mouse_down, workspace, +1
-bind = SUPER, mouse_up, workspace, -1
bind = SUPER, bracketleft, workspace, -1
bind = SUPER, bracketright, workspace, +1
-
# ##########################################
# ### CYCLE MONITORS (RELATIVE MOVEMENT) ###
# ##########################################
-bind = SUPER_SHIFT, bracketleft, focusmonitor, -1
-bind = SUPER_SHIFT, bracketright, focusmonitor, +1
+bind = SUPER SHIFT, bracketleft, focusmonitor, -1
+bind = SUPER SHIFT, bracketright, focusmonitor, +1
# #######################
# ### WINDOW RESIZING ###
@@ -222,54 +201,11 @@ binde = ALT, right, resizeactive, 10 0
binde = ALT, left, resizeactive, -10 0
binde = ALT, up, resizeactive, 0 -10
binde = ALT, down, resizeactive, 0 10
-binde = ALT, H, resizeactive, -10 0
-binde = ALT, K, resizeactive, 0 -10
-binde = ALT, J, resizeactive, 0 10
-binde = ALT, L, resizeactive, 10 0
-## Precise keyboard resizing (submap)
-bind = SUPER, slash, submap, resize
-submap = resize
-
-binde = , right, resizeactive, 10 0
-binde = , left, resizeactive, -10 0
-binde = , up, resizeactive, 0 -10
-binde = , down, resizeactive, 0 10
-
-binde = SUPER, right, resizeactive, 30 0
-binde = SUPER, left, resizeactive, -30 0
-binde = SUPER, up, resizeactive, 0 -30
-binde = SUPER, down, resizeactive, 0 30
-
-binde = SHIFT, right, resizeactive, 1 0
-binde = SHIFT, left, resizeactive, -1 0
-binde = SHIFT, up, resizeactive, 0 -1
-binde = SHIFT, down, resizeactive, 0 1
-
-binde = , H, resizeactive, -10 0
-binde = , K, resizeactive, 0 -10
-binde = , J, resizeactive, 0 10
-binde = , L, resizeactive, 10 0
-
-binde = , right, resizeactive, 10 0
-binde = , left, resizeactive, -10 0
-binde = , up, resizeactive, 0 -10
-binde = , down, resizeactive, 0 10
-
-binde = SUPER, H, resizeactive, -30 0
-binde = SUPER, K, resizeactive, 0 -30
-binde = SUPER, J, resizeactive, 0 30
-binde = SUPER, L, resizeactive, 30 0
-
-binde = SHIFT, H, resizeactive, -1 0
-binde = SHIFT, K, resizeactive, 0 -1
-binde = SHIFT, J, resizeactive, 0 1
-binde = SHIFT, L, resizeactive, 1 0
-
-bind = , escape, submap, reset
-bind = , return, submap, reset
-bind = SUPER, slash, submap, reset
-submap = reset
+binde = ALT, h, resizeactive, -10 0
+binde = ALT, k, resizeactive, 0 -10
+binde = ALT, j, resizeactive, 0 10
+binde = ALT, l, resizeactive, 10 0
# ########################################################
# ### GLOBAL KEYBINDS (PASSING KEYS TO OTHER PROGRAMS) ###
@@ -288,4 +224,3 @@ submap = isolate
bind = SUPER, End, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off"
submap = reset
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprland.d/layout.conf b/home/.config/hypr/hyprland.d/layout.conf
deleted file mode 100644
index 9035619..0000000
--- a/home/.config/hypr/hyprland.d/layout.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-general {
- layout = dwindle
-}
-
-dwindle {
- # Don't change the split (side/top) regardless
- # of what happens to the container
- preserve_split = true
-
- # Scale down special workspaces (bigger borders)
- special_scale_factor = 0.9
-}
-
-group {
- # Add new windows in the group after the current window
- # rather than after the group tail window
- insert_after_current = true
-
- # Focus the window that was just moved out of the group
- focus_removed_window = true
-}
-
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprland.d/misc.conf b/home/.config/hypr/hyprland.d/misc.conf
index 44aa48e..b8162a0 100644
--- a/home/.config/hypr/hyprland.d/misc.conf
+++ b/home/.config/hypr/hyprland.d/misc.conf
@@ -1,14 +1,12 @@
misc {
- # Disable redundant renders (covered by wallpaper)
- disable_hyprland_logo = true
- disable_splash_rendering = true
+ # Follow requests from windows to be focused
+ focus_on_activate = true
- # follow requests from windows to be focused
- focus_on_activate = true
+ # Enable DPMS on these actions
+ mouse_move_enables_dpms = true
+ key_press_enables_dpms = true
- # Enable DPMS on these actions
- mouse_move_enables_dpms = true
- key_press_enables_dpms = true
+ # Disable the primary clipboard (everyone uses Ctrl+C: unnamedplus,
+ # primary is not needed and can get annoying sometimes)
+ middle_click_paste = false
}
-
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprland.d/permissions.conf b/home/.config/hypr/hyprland.d/permissions.conf
new file mode 100644
index 0000000..9471d02
--- /dev/null
+++ b/home/.config/hypr/hyprland.d/permissions.conf
@@ -0,0 +1,11 @@
+ecosystem {
+ enforce_permissions = true
+}
+
+permission = /usr/(lib|lib64)/xdg-portal-hyprland, screencopy, allow
+
+permission = /usr/bin/grim, screencopy, allow
+permission = /usr/bin/wf-recorder, screencopy, allow
+permission = /usr/bin/hyprlock, screencopy, allow
+
+# permission = /usr/(bin)/hyprpm, plugin, allow
diff --git a/home/.config/hypr/hyprland.d/plugins.conf b/home/.config/hypr/hyprland.d/plugins.conf
deleted file mode 100644
index a3b737f..0000000
--- a/home/.config/hypr/hyprland.d/plugins.conf
+++ /dev/null
@@ -1,28 +0,0 @@
-# #######################
-# ### LOADING PLUGINS ###
-# #######################
-
-exec-once=hyprpm reload -n
-#exec-once=hyprctl plugin load $HOME/.local/share/hyprload/plugins/bin/dwindle-autogroup.so
-
-# ################
-# ### HYPRBARS ###
-# ################
-
-plugin {
- hyprbars {
- bar_height = 20
- bar_color = rgb(505152)
-
- col.text = rgb(ff0000)
- bar_text_size = 10
-
- # example buttons (R -> L)
- # hyprbars-button = color, size, on-click
- hyprbars-button = rgb(ff4040), 10, , hyprctl dispatch killactive
- hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1
- }
-}
-
-
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprland.d/style.conf b/home/.config/hypr/hyprland.d/style.conf
index 946f2ee..6f09254 100644
--- a/home/.config/hypr/hyprland.d/style.conf
+++ b/home/.config/hypr/hyprland.d/style.conf
@@ -1,10 +1,34 @@
+# ##############
+# ### LAYOUT ###
+# ##############
+
+general {
+ layout = dwindle
+}
+
+dwindle {
+ # Allow pseudo-tiling (tiled window that retains it's floating size)
+ pseudotile = true
+
+ # Don't change the split regardless of what happens to the container
+ preserve_split = true
+
+ # Scale down special workspaces (bigger borders)
+ special_scale_factor = 0.95
+}
+
+group {
+ # Don't auto-insert newly created windows into a group
+ auto_group = false
+}
+
# ###################
# ### WINDOW GAPS ###
# ###################
general {
gaps_in = 5
- gaps_out = 8
+ gaps_out = 10
}
# ###############
@@ -12,30 +36,30 @@ general {
# ###############
decoration {
- rounding = 8
+ rounding = 8
+ rounding_power = 2
}
general {
border_size = 2
# Regular windows
- col.active_border = rgba(FFA500FF) # orange
- #col.active_border = rgba(FFFFFFEE) # white
- col.inactive_border = rgba(666666AA) # transparent gray
+ col.active_border = rgba(ffa500ff) # orange
+ col.inactive_border = rgba(666666aa) # transparent gray
# Windows with nogroup property
- col.nogroup_border_active = rgba(FF00FFFF) # purple
- col.nogroup_border = rgba(FF00FFAA) # transparent purple
+ col.nogroup_border_active = rgba(ff00ffff) # purple
+ col.nogroup_border = rgba(ff00ffaa) # transparent purple
}
group {
- # Groupped windows
- col.border_active = rgba(00A500FF) # green
- col.border_inactive = rgba(5AA500FF) # transparent green
+ # Groupped windows
+ col.border_active = rgba(00a500ff) # green
+ col.border_inactive = rgba(5aa500ff) # transparent green
- # Locked groupped windows
- col.border_locked_active = rgba(A0A500FF) # yellow
- col.border_locked_inactive = rgba(A0A500AA) # transparent yellow
+ # Locked groupped windows
+ col.border_locked_active = rgba(a0a500ff) # yellow
+ col.border_locked_inactive = rgba(a0a500aa) # transparent yellow
}
# #################
@@ -46,7 +70,7 @@ group {
groupbar {
# Title box above window
render_titles = false # disable, looks kinda bad
- font_family = Monaspace Krypton
+ #font_family = Monaspace Krypton
font_size = 11
text_color = rgba(FFFFFFFF) # white
@@ -70,14 +94,15 @@ group {
# ###################
decoration {
- shadow {
- enabled = true # enable drop shadow
- range = 20
- render_power = 2
- color = rgba(0F0F0FE6)
- #color = rgba(FFA500FF)
- color_inactive = rgba(0F0F0F99)
- }
+ shadow {
+ # I don't really need drop shadow, it just consumes more battery
+ # and I honestly don't see a huge difference with it on.
+ enabled = false
+ range = 4
+ render_power = 3
+ color = rgba(0f0f0fe6)
+ color_inactive = rgba(0f0f0f99)
+ }
}
# ###################
@@ -87,44 +112,49 @@ decoration {
decoration {
blur {
enabled = true
- size = 8
+ size = 6
passes = 1
}
}
-# ########################
-# ### INACTIVE WINDOWS ###
-# ########################
-
-decoration {
- #dim_inactive = true
- dim_strength = 0.05
- dim_special = 0.2
-
- # inactive_opacity = 0.9
-}
-
# ##################
# ### ANIMATIONS ###
# ##################
animations {
- enabled = true
- first_launch_animation = true # fade in on first launch
+ enabled = true
- animation = windows, 1, 3, default, popin 50%
- animation = border, 1, 4, default
- animation = fade, 1, 4, default
- animation = workspaces, 1, 3, default
- animation = specialWorkspace, 1, 2, default, slidefadevert
-}
+ bezier = easeOutQuint,0.23,1,0.32,1
+ bezier = easeInOutCubic,0.65,0.05,0.36,1
+ bezier = linear,0,0,1,1
+ bezier = almostLinear,0.5,0.5,0.75,1.0
+ bezier = quick,0.15,0,0.1,1
-misc {
- animate_manual_resizes = true
+ animation = global, 1, 10, default
+ animation = border, 1, 5.39, easeOutQuint
+ animation = windows, 1, 4.79, easeOutQuint
+ animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
+ animation = windowsOut, 1, 1.49, linear, popin 87%
+ animation = fadeIn, 1, 1.73, almostLinear
+ animation = fadeOut, 1, 1.46, almostLinear
+ animation = fade, 1, 3.03, quick
+ animation = layers, 1, 3.81, easeOutQuint
+ animation = layersIn, 1, 4, easeOutQuint, fade
+ animation = layersOut, 1, 1.5, linear, fade
+ animation = fadeLayersIn, 1, 1.79, almostLinear
+ animation = fadeLayersOut, 1, 1.39, almostLinear
+ animation = workspaces, 1, 1.94, almostLinear, fade
+ animation = workspacesIn, 1, 1.21, almostLinear, fade
+ animation = workspacesOut, 1, 1.94, almostLinear, fade
+ animation = specialWorkspace, 1, 2, default, slidefadevert
}
# #################
# ### WALLPAPER ###
# #################
-# vi: ft=hyprlang
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ force_default_wallpaper = -1
+}
diff --git a/home/.config/hypr/hyprland.d/window_rules.conf b/home/.config/hypr/hyprland.d/window_rules.conf
index a286ef4..c1b6688 100644
--- a/home/.config/hypr/hyprland.d/window_rules.conf
+++ b/home/.config/hypr/hyprland.d/window_rules.conf
@@ -10,53 +10,20 @@ windowrulev2 = workspace 5, class:^(Spotify)$
windowrulev2 = workspace 6, class:^(Stremio)$
windowrulev2 = workspace 6, class:^(com.stremio.stremio)$
-# #######################
-# ### IDLE INHIBITION ###
-# #######################
+# #############################################
+# ### CORRECT SIZE / AUTO TILE / AUTO FLOAT ###
+# ############################################
-windowrulev2 = idleinhibit focus, class:^(Stremio)$
-windowrulev2 = idleinhibit focus, class:^(com.stremio.stremio)$
-windowrulev2 = idleinhibit focus, class:^(mpv)$
-windowrulev2 = idleinhibit focus, class:^(firefox)$,title:^(.+ - YouTube — Mozilla Firefox)$
-windowrulev2 = idleinhibit focus, class:^(firefox)$,title:^(Picture-in-Picture)$
-
-# ################################
-# ### CORRECT SIZE / AUTO TILE ###
-# ################################
-
-windowrulev2 = size 800 550, class:^(qalculate-gtk)$
-windowrulev2 = tile, class:^(Spotify)$
-
-# ##################
-# ### AUTO FLOAT ###
-# ##################
-
-windowrulev2 = float, class:^(Lxappearance)$
-windowrulev2 = float, class:^(Rofi)$
-windowrulev2 = float, class:^(feh)$
-windowrulev2 = float, class:^(pavucontrol-qt)$
-windowrulev2 = float, class:^(pavucontrol)$
-windowrulev2 = float, class:^(file-roller)$
+# Float and properly size qualculate
windowrulev2 = float, class:^(qalculate-gtk)$
-windowrulev2 = float, class:^(com.github.wwmm.easyeffects)
-windowrulev2 = float, class:^(opensnitch_ui)$
-windowrulev2 = float, class:^(Brave-browser)$,title:^(_crx_.+)$
+windowrulev2 = size 800 550, class:^(qalculate-gtk)$
-## Float hyprland-share-picker & some extra actions
+# Float hyprland-share-picker & some extra actions
windowrulev2 = float, class:^(hyprland-share-picker)$
windowrulev2 = center, class:^(hyprland-share-picker)$
windowrulev2 = animation slide, class:^(hyprland-share-picker)$
-## Float firefox windows (like bookmark menus, or some extension windows)
-windowrulev2 = float, class:^(firefox)$,title:^(Revert Bookmarks)$
-windowrulev2 = float, class:^(firefox)$,title:^(Library)$
-windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(uBlock Origin\))
-windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(Bitwarden Password Manager\) - Bitwarden — Mozilla Firefox)$
-windowrulev2 = float, class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
-windowrulev2 = float, class:^(firefox)$,title:^(Opening .+)$
-windowrulev2 = float, class:^(firefox)$,title:^$
-
-## Float some pcmanfm windows
+# Float some pcmanfm windows
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Mount)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Preferences)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Move files)$
@@ -65,45 +32,21 @@ windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Copy Files)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Confirm to replace files)$
windowrulev2 = float, class:^(pcmanfm-qt|)$,title:^(Choose an Application)$
-## Float some qimgv windows
-windowrulev2 = float, class:^(qimgv)$,title:^(Add shortcut)$
-windowrulev2 = float, class:^(qimgv)$,title:^(Preferences — qimgv)$
-
-## Float some windows from other apps
-windowrulev2 = float, class:^(Spotify)$,title:^(Ozone X11)$
-windowrulev2 = float, class:^(python3)$,title:^(Tor Browser Launcher Settings)$
-windowrulev2 = float, class:^(python3)$,title:^(Tor Browser)$
-
-## General float rules
-windowrulev2 = float, class:^(file_progress)$
-windowrulev2 = float, class:^(confirm)$
-windowrulev2 = float, class:^(dialog)$
-windowrulev2 = float, class:^(download)$
-windowrulev2 = float, class:^(notification)$
-windowrulev2 = float, class:^(error)$
-windowrulev2 = float, class:^(splash)$
-windowrulev2 = float, class:^(confirmreset)$
-windowrulev2 = float, class:^(floating)$
-
-## Float all windows that don't have a title nor a class
+# Float all windows that don't have a title nor a class
windowrulev2 = float, class:^$,title:^$
-# #############
-# ### FIXES ###
-# #############
+# Other apps
+windowrulev2 = float, class:^(file-roller)$
+windowrulev2 = float, class:^(opensnitch_ui)$
+windowrulev2 = float, class:^(Brave-browser)$,title:^(_crx_.+)$
+windowrulev2 = float, class:^(qimgv)$,title:^(Add shortcut)$
-# jetbrains
+# ############
+# ### MISC ###
+# ############
-windowrulev2 = center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
-windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
-windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
-windowrulev2 = center, class:^(jetbrains-.*)$,title:^( )$,floating:1
-windowrulev2 = stayfocused, class:^(jetbrains-.*)$,title:^( )$,floating:1
-windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^( )$,floating:1
-windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(win.*)$,floating:1
-windowrulev2 = noinitialfocus, class:^(jetbrains-.*)$,title:^(win.*)$
+# Ignore maximize requests from apps.
+windowrule = suppressevent maximize, class:.*
-# Don't add borders to grim selections when taking screenshots
-layerrule = noanim, ^(selection)$
-
-# vi: ft=hyprlang
+# Fix some dragging issues with XWayland
+windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
diff --git a/home/.config/hypr/hyprlock.conf b/home/.config/hypr/hyprlock.conf
index 4361a21..a923418 100644
--- a/home/.config/hypr/hyprlock.conf
+++ b/home/.config/hypr/hyprlock.conf
@@ -3,9 +3,8 @@
# ######################
general {
- disable_loading_bar = false
hide_cursor = true
- grace = 3
+ fail_timeout = 2000
}
auth {
@@ -13,9 +12,8 @@ auth {
#fingerprint:enabled = true
}
-
background {
- path = ~/Media/Pictures/Wallpapers/Categories/Extra/origami.png
+ path = ~/Media/Pictures/Wallpapers/hyprlock-bg
blur_passes = 3
blur_size = 6
#contrast = 0.7
@@ -222,5 +220,3 @@ label {
halign = left
valign = bottom
}
-
-# vi: ft=hyprlang
diff --git a/home/.config/hypr/hyprsunset.conf b/home/.config/hypr/hyprsunset.conf
new file mode 100644
index 0000000..1e819a2
--- /dev/null
+++ b/home/.config/hypr/hyprsunset.conf
@@ -0,0 +1,9 @@
+profile {
+ time = 7:30
+ identity = true
+}
+
+profile {
+ time = 23:30
+ temperature = 2700
+}
diff --git a/home/.config/hypr/xdph.conf b/home/.config/hypr/xdph.conf
deleted file mode 100644
index e40a11d..0000000
--- a/home/.config/hypr/xdph.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-screencopy {
- allow_token_by_default = true
-}
diff --git a/home/.config/hyprland-monitord/added.sh b/home/.config/hyprland-monitord/added.sh
deleted file mode 100755
index 41a6f90..0000000
--- a/home/.config/hyprland-monitord/added.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-MONITOR_ID="$1"
-MONITOR_NAME="$2"
-MONITOR_DESCRIPTION="$3"
-
-systemctl --user start eww-window@bar1.service
-#eww open bar1
diff --git a/home/.config/hyprland-monitord/init.sh b/home/.config/hyprland-monitord/init.sh
deleted file mode 100755
index 23fffde..0000000
--- a/home/.config/hyprland-monitord/init.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-MONITORS_AMT="$(hyprctl monitors -j | jq length)"
-
-if [ "$MONITORS_AMT" -lt 1 ]; then
- >&2 echo "You seem to have 0 monitors..."
- exit 1
-fi
-
-if [ "$MONITORS_AMT" -eq 2 ]; then
- systemctl --user start eww-window@bar1.service
- #eww open bar1
-fi
-
-if [ "$MONITORS_AMT" -eq 1 ]; then
- if eww active-windows | grep "bar1"; then
- systemctl --user stop eww-window@bar1.service
- #eww close bar1
- fi
-fi
-
-if [ "$MONITORS_AMT" -gt 2 ]; then
- >&2 echo "Unexpected monitor configuration (more than 2 monitors)"
- exit 1
-fi
diff --git a/home/.config/hyprland-monitord/removed.sh b/home/.config/hyprland-monitord/removed.sh
deleted file mode 100755
index b9b7a10..0000000
--- a/home/.config/hyprland-monitord/removed.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-MONITOR_NAME="$1"
-
-systemctl --user stop eww-window@bar1.service
-# eww close bar1
diff --git a/home/.config/java/.gitkeep b/home/.config/java/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/home/.config/kitty/kitty.conf b/home/.config/kitty/kitty.conf
index 86477be..95d3e99 100644
--- a/home/.config/kitty/kitty.conf
+++ b/home/.config/kitty/kitty.conf
@@ -53,7 +53,7 @@ select_by_word_characters :@-./_~?&=%+#
# Keybindings
map ctrl+alt+c copy_to_clipboard
map ctrl+alt+v paste_from_clipboard
-map ctrl+c copy_or_interrupt
+#map ctrl+c copy_or_interrupt
map ctrl+shift+, move_tab_backward
map ctrl+shift+. move_tab_forward
map ctrl+shift+0 tenth_window
diff --git a/home/.config/lf/clear_img.sh b/home/.config/lf/clear_img.sh
deleted file mode 100755
index dbc35d7..0000000
--- a/home/.config/lf/clear_img.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-readonly PREVIEW_ID="preview"
-
-printf '{"action": "remove", "identifier": "%s"}\n' "$PREVIEW_ID" > "$FIFO_UEBERZUG"
-
diff --git a/home/.config/lf/draw_img.sh b/home/.config/lf/draw_img.sh
deleted file mode 100755
index 1547ca0..0000000
--- a/home/.config/lf/draw_img.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-path="$1"
-x="$2"
-y="$3"
-width="$4"
-height="$5"
-PREVIEW_ID="preview"
-
-if [ -n "$FIFO_UEBERZUG" ]; then
- printf '{"action": "add", "identifier": "%s", "x": %d, "y": %d, "width": %d, "height": %d, "scaler": "contain", "scaling_position_x": 0.5, "scaling_position_y": 0.5, "path": "%s"}\n' \
- "$PREVIEW_ID" "$x" "$y" "$width" "$height" "$path" > "$FIFO_UEBERZUG"
-else
- # Ueberzug isn't avialable, try to use pixterm
- if command -v pixterm > /dev/null; then
- pixterm -s 2 -tr "$x" -tc "$width" "$path"
- else
- >&2 echo "ueberzug not running, pixterm fallback not found!"
- exit 1
- fi
-fi
diff --git a/home/.config/lf/lfrc b/home/.config/lf/lfrc
deleted file mode 100644
index 8857c5e..0000000
--- a/home/.config/lf/lfrc
+++ /dev/null
@@ -1,144 +0,0 @@
-# Basic settings
-set previewer ~/.config/lf/previewer.sh
-set cleaner ~/.config/lf/clear_img.sh
-set preview true
-set hidden true
-set drawbox true
-set icons true
-set ignorecase true
-set scrolloff 5
-
-# Use $EDITOR for text
-cmd open ${{
- case $(file --mime-type "$f" -bL) in
- text/*|application/json) $EDITOR "$f";;
- *) devour xdg-open "$f" ;;
- esac
-}}
-
-# File/Directory control functions
-cmd mkdir %{{
- printf "Directory Name: "
- read ans
- mkdir $ans
-}}
-
-cmd mkfile %{{
- printf "File Name: "
- read ans
- touch $ans
-}}
-
-cmd chmod %{{
- printf "Mode Bits: "
- read ans
-
- for file in "$fx"; do
- chmod $ans $file
- done
-
- lf -remote 'send reload'
-}}
-
-# Add z.lua functionality for easy autojumps
-cmd zlua %{{
- printf "z.lua input: "
- read ans
-
- /usr/local/src/z.lua/z.lua $ans
-}}
-
-
-# Archive bindings
-cmd unarchive ${{
- case "$f" in
- *.zip) unzip "$f" ;;
- *.tar.gz) tar -xzvf "$f" ;;
- *.tar.bz2) tar -xjvf "$f" ;;
- *.tar) tar -xvf "$f" ;;
- *) echo "Unsuported format" ;;
- esac
-}}
-
-cmd zip %zip -r "$f" "$f"
-cmd tar %tar cvf "$f.tar" "$f"
-cmd targz %tar cvzf "%f.tar.gz" "$f"
-cmd tarbz2 %tar cjvf "$f.tar.bz2" "$f"
-
-# Trash-cli bindings
-cmd trash ${{
- files=$(printf "$fx" | tr '\n' ':')
- while [ "$files" ]; do
- # extract the substring from start of string up to delimeter.
- # this is the first "element" of the string
- file=${files%%:*}
-
- trash-put "$(basename "$file")"
- # if there's only one element left, set `files` to an empty string.
- # this causes us to exit this `while` loop.
- # else, we delete the first "element" of the string from files, and
- # move onto the next.
- if [ "$files" = "$file" ]; then
- files=''
- else
- files="${files#*;}"
- fi
- done
-}}
-
-cmd clear_trash %trash-empty
-
-cmd restore_trash ${{
- trash-restore
-}}
-
-# Bindings
-# Remove some defaults
-map m
-map n
-map "'"
-map '"'
-map d
-map c
-
-# Archive mappings
-map az zip
-map at tar
-map ag targz
-map au unarchive
-
-# Trash mappings
-map dd trash
-map tc clear_trash
-map tr restore_trash
-
-# Basic functions
-map . set hidden!
-map DD delete
-map p paste
-map x cut
-map y copy
-map open
-map md mkdir
-map mf mkfile
-map ch chmod
-map r rename
-map H top
-map L bottom
-map R reload
-map C clear
-map z zlua
-
-# Movement
-map gh cd ~
-map gc cd ~/.config
-map gl cd ~/.local
-map gs cd ~/.local/bin/scripts
-map gtr cd ~/.local/share/Trash/files
-map gE. cd /etc
-map gEp cd /etc/portage
-map gU. cd /usr
-map gUs cd /usr/share
-map gUl cd /usr/local
-map gM cd /mnt
-
diff --git a/home/.config/lf/previewer.sh b/home/.config/lf/previewer.sh
deleted file mode 100755
index 73784f3..0000000
--- a/home/.config/lf/previewer.sh
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/sh
-# This script handles showing file-previews within lf.
-
-# It can also show image previews using ueberzug, however
-# that requires lf to be started with a script that also starts
-# ueberzug alongside of it.
-# (In my dotfiles, this script is in '~/.local/bin/scripts/lfu')
-# Alternatively, we could also handle ANSI previews with pixterms
-# this will be in a pretty low quiality, but it will work without
-# ueberzug. To enable this, change PIXTERM_ENABLED to 1.
-# if both ueberzug and pixterm are enabled, ueberzug takes precedence.
-PIXTERM_ENABLED=1
-
-run_cmd() {
- # Try to run given command, if it is installed.
- # If it isn't try to fallback to text_handle,
- # otherwise fail completely.
- cmd="$1"
- shift
-
- if command -v "$cmd" > /dev/null; then
- $cmd $@
- else
- # If we didn't found the requested command, check if
- # the file is text-like and try to use the text_handle
- # to show the preview, this may not be ideal for given
- # file-format, but at least we won't fail.
- case $(file --mime-type "$1" -bL) in
- # TODO: Consider checking for UTF-8 formatting instead,
- # or show previews for any file-type
- text/*|application/json)
- echo "@@PREVIEW FALLBACK: Using text handle, $cmd command not found!"
- text_handle "$1"
- ;;
- *)
- echo "@@PREVIEW ERROR: Preview failed, $cmd command not found!"
- ;;
- esac
- fi
-}
-
-draw_image() {
- # Draw passed image with use of given draw_script.
- # If the image contains EXIF (metadata) orientation info,
- # handle it and draw the rotated image.
- draw_script="$1"
- file="$2"
- shift
- shift
-
- # Calculate where the image should be placed on the screen.
- num=$(printf "%0.f\n" "`echo "$(tput cols) / 2" | bc`")
- numb=$(printf "%0.f\n" "`echo "$(tput cols) - $num - 1" | bc`")
- numc=$(printf "%0.f\n" "`echo "$(tput lines) - 2" | bc`")
-
- # Handle EXIF (metadata) orientation.
- exif_orientation="$(identify -format '%[EXIF:Orientation]\n' -- "$file")"
- if [ -n "$exif_orientation" ] && [ "$exif_orientation" != 1 ]; then
- # In case `convert` command isn't aviable, ignore EXIF rotation
- if command -v convert > /dev/null; then
- cache=$(mktemp /tmp/thumbcache.XXXXX)
- convert -- "$file" -auto-orient "$cache"
- $draw_script "$cache" $num 1 $numb $numc
- else
- $draw_script "$file" $num 1 $numb $numc
- fi
- else
- $draw_script "$file" $num 1 $numb $numc
- fi
-
- # Exit with status code 1 to signal lf that the function
- # should be re-ran next time instead of caching the result.
- exit 1
-}
-
-media_handle() {
- # Handle media type files (videos, photos). These types of
- # files are usually not stored in any form of textually readable
- # format and they require a special way of displaying them.
- # This mostly uses ueberzug (if available) for this.
-
- draw_script="${XDG_CONFIG_HOME:-$HOME/.config}/lf/draw_img.sh"
- file="$1"
- shift
-
- # Set ENABLED=1 if ueberzug or pixterm is enabled
- command -v pixterm > /dev/null && [ "$PIXTERM_ENABLED" = 1 ] && ENABLED=1
- [ -n "$FIFO_UEBERZUG" ] && [ -f "$draw_script" ] && ENABLED=1
-
- case "$file" in
- *.bmp|*.jpg|*.jpeg|*.png|*.xpm)
- if [ -n "$ENABLED" ]; then
- draw_image $draw_script "$file"
- else
- echo "@@PREVIEW FALLBACK: Using mediainfo, ueberzug isn't available."
- run_cmd mediainfo "$file"
- fi
- ;;
- *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|\
- *.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
- if [ -n "$ENABLED" ]; then
- cache="$(mktemp /tmp/thumbcache.XXXXX)"
- ffmpegthumbnailer -i "$file" -o "$cache" -s 0
- draw_image $draw_script "$cache"
- else
- echo "@@PREVIEW FALLBACK: Using exiftool, ueberzug isn't aviable."
- run_cmd exiftool "$file"
- fi
- ;;
- *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.flac)
- # These types can't make use of ueberzug easily, so simply use eixftool
- run_cmd exiftool "$file"
- ;;
- *)
- echo "@@PREVIEW FALLBACK: Unrecognized media file, falling back to text handle."
- text_handle "$file"
- ;;
- esac
-}
-
-text_handle() {
- # Handle all other formats as text and cat them
- # if highlighting tools are aviable, try to use them
- if command -v bat > /dev/null; then
- num=$(printf "%0.f\n" "`echo "$(tput cols) / 2" | bc`")
- numb=$(printf "%d\n" "`echo "$(tput cols) - $num - 3" | bc`")
- bat -pp --color=always --wrap=character --terminal-width="$numb" "$1"
- elif command -v highlight > /dev/null; then
- highlight "$1" --out-format ansi --force
- else
- cat "$1"
- fi
-}
-
-# Capture all directories at first, since they could
-# potentionally match one of the file case statements
-if [ -d "$1" ]; then
- tree "$1" -La 1
-elif [ -f "$1" ]; then
- case "$1" in
- *.tgz|*.tar.gz) run_cmd tar tzf "$1";;
- *.tar.bz2|*.tbz2) run_cmd tar tjf "$1";;
- *.tar.txz|*.txz) run_cmd xz --list "$1";;
- *.tar) run_cmd tar tf "$1";;
- *.zip|*.jar|*.war|*.ear|*.oxt) run_cmd unzip -l "$1";;
- *.rar) run_cmd unrar l "$1";;
- *.7z) run_cmd 7z l "$1";;
- *.iso) run_cmd iso-info --no-header -l "$1";;
- *.o) run_cmd nm "$1" | less ;;
- *.csv) cat "$1" | sed s/,/\\n/g ;;
- *odt,*.ods,*.odp,*.sxw) run_cmd odt2txt "$1";;
- *.doc) run_cmd catdoc "$1" ;;
- *.docx) run_cmd docx2txt "$1" - ;;
- *.torrent) run_cmd transmission-show "$1";;
- *.pdf) run_cmd pdftotext "$1";;
- *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.flac|\
- *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|\
- *.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx|\
- *.bmp|*.jpg|*.jpeg|*.png|*.xpm) media_handle "$1" ;;
- *) text_handle "$1" ;;
- esac
-fi
diff --git a/home/.config/mozilla/.gitkeep b/home/.config/mozilla/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/home/.config/neofetch/config.conf b/home/.config/neofetch/config.conf
deleted file mode 100644
index d3abfcd..0000000
--- a/home/.config/neofetch/config.conf
+++ /dev/null
@@ -1,832 +0,0 @@
-print_info() {
-
- prin "$(color 16)┌─────────────────────$(color 12)SOFTWARE$(color 16)─────────────────────┐"
- info "$(color 9) OS" distro
- info "$(color 9) Kernel" kernel
- info "$(color 9) Packages" packages
- info "$(color 3) Terminal" term
- info "$(color 3) Font" term_font
- info "$(color 3) Shell" shell
- info "$(color 2) DE/WM" de
- info "$(color 2) Theme" theme
- info "$(color 2) Icons" icons
- prin "$(color 16)└──────────────────────────────────────────────────┘"
-
- prin "$(color 16)┌─────────────────────$(color 12)HARDWARE$(color 16)─────────────────────┐"
- info "$(color 5) PC " model
- info "$(color 4) CPU" cpu
- info "$(color 4) GPU" gpu
- info "$(color 4) RAM" memory
- # info "$(color 6) Disk" disk
- # info "$(color 6) BAT" battery
- info "$(color 2) Uptime" uptime
- info "$(color 2) Resolution" resolution
- prin "$(color 16)└──────────────────────────────────────────────────┘"
-
- echo
- prin "$(color 1)${dot}$(color 2)${dot}$(color 3)${dot}$(color 4)${dot}$(color 5)${dot}$(color 6)${dot}$(color 7)${dot}$(color 8)${dot}\n \n $(color 9)${dot}$(color 10)${dot}$(color 11)${dot}$(color 12)${dot}$(color 13)${dot}$(color 14)${dot}$(color 15)${dot}$(color 16)${dot}"
- # prin "$(color 1) 1 $(color 2) 2 $(color 3) 3 $(color 4) 4 $(color 5) 5 $(color 6) 6 $(color 7) 7 $(color 8) 8 \n \n $(color 9) \n 9 $(color 10) 10 $(color 11) 11 $(color 12) 12 $(color 13) 13 $(color 14) 14 $(color 15) 15 $(color 16) 16 "
- # prin "$(color 5) Eat , $(color 3)Sleep , $(color 6)Linux ."
-}
-
-dot=" ⬤ "
-
-##--------- Title
-
-# Hide/Show Fully qualified domain name.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --title_fqdn
-title_fqdn="off"
-
-
-##--------- Kernel
-
-# Shorten the output of the kernel function.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --kernel_shorthand
-# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
-#
-# Example:
-# on: '4.8.9-1-ARCH'
-# off: 'Linux 4.8.9-1-ARCH'
-kernel_shorthand="on"
-
-
-##--------- Distro
-
-# Shorten the output of the distro function
-#
-# Default: 'off'
-# Values: 'on', 'tiny', 'off'
-# Flag: --distro_shorthand
-# Supports: Everything except Windows and Haiku
-distro_shorthand="off"
-
-# Show/Hide OS Architecture.
-# Show 'x86_64', 'x86' and etc in 'Distro:' output.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --os_arch
-#
-# Example:
-# on: 'Arch Linux x86_64'
-# off: 'Arch Linux'
-os_arch="on"
-
-
-##--------- Uptime
-
-# Shorten the output of the uptime function
-#
-# Default: 'on'
-# Values: 'on', 'tiny', 'off'
-# Flag: --uptime_shorthand
-#
-# Example:
-# on: '2 days, 10 hours, 3 mins'
-# tiny: '2d 10h 3m'
-# off: '2 days, 10 hours, 3 minutes'
-uptime_shorthand="on"
-
-
-##--------- Memory
-
-# Show memory pecentage in output.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --memory_percent
-#
-# Example:
-# on: '1801MiB / 7881MiB (22%)'
-# off: '1801MiB / 7881MiB'
-memory_percent="off"
-
-# Change memory output unit.
-#
-# Default: 'mib'
-# Values: 'kib', 'mib', 'gib'
-# Flag: --memory_unit
-#
-# Example:
-# kib '1020928KiB / 7117824KiB'
-# mib '1042MiB / 6951MiB'
-# gib: ' 0.98GiB / 6.79GiB'
-memory_unit="mib"
-
-
-##--------- Packages
-
-# Show/Hide Package Manager names.
-#
-# Default: 'tiny'
-# Values: 'on', 'tiny' 'off'
-# Flag: --package_managers
-#
-# Example:
-# on: '998 (pacman), 8 (flatpak), 4 (snap)'
-# tiny: '908 (pacman, flatpak, snap)'
-# off: '908'
-package_managers="on"
-
-
-##--------- Shell
-
-# Show the path to $SHELL
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --shell_path
-#
-# Example:
-# on: '/bin/bash'
-# off: 'bash'
-shell_path="off"
-
-# Show $SHELL version
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --shell_version
-#
-# Example:
-# on: 'bash 4.4.5'
-# off: 'bash'
-shell_version="on"
-
-
-##--------- CPU
-
-# CPU speed type
-#
-# Default: 'bios_limit'
-# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
-# Flag: --speed_type
-# Supports: Linux with 'cpufreq'
-# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
-speed_type="bios_limit"
-
-# CPU speed shorthand
-#
-# Default: 'off'
-# Values: 'on', 'off'.
-# Flag: --speed_shorthand
-# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
-#
-# Example:
-# on: 'i7-6500U (4) @ 3.1GHz'
-# off: 'i7-6500U (4) @ 3.100GHz'
-speed_shorthand="off"
-
-# Enable/Disable CPU brand in output.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --cpu_brand
-#
-# Example:
-# on: 'Intel i7-6500U'
-# off: 'i7-6500U (4)'
-cpu_brand="on"
-
-# CPU Speed
-# Hide/Show CPU speed.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --cpu_speed
-#
-# Example:
-# on: 'Intel i7-6500U (4) @ 3.1GHz'
-# off: 'Intel i7-6500U (4)'
-cpu_speed="on"
-
-# CPU Cores
-# Display CPU cores in output
-#
-# Default: 'logical'
-# Values: 'logical', 'physical', 'off'
-# Flag: --cpu_cores
-# Support: 'physical' doesn't work on BSD.
-#
-# Example:
-# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
-# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
-# off: 'Intel i7-6500U @ 3.1GHz'
-cpu_cores="logical"
-
-# CPU Temperature
-# Hide/Show CPU temperature.
-# Note the temperature is added to the regular CPU function.
-#
-# Default: 'off'
-# Values: 'C', 'F', 'off'
-# Flag: --cpu_temp
-# Supports: Linux, BSD
-# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
-# coretemp kernel module. This only supports newer Intel processors.
-#
-# Example:
-# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
-# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
-# off: 'Intel i7-6500U (4) @ 3.1GHz'
-cpu_temp="on"
-
-
-##--------- GPU
-
-# Enable/Disable GPU Brand
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gpu_brand
-#
-# Example:
-# on: 'AMD HD 7950'
-# off: 'HD 7950'
-gpu_brand="on"
-
-# Which GPU to display
-#
-# Default: 'all'
-# Values: 'all', 'dedicated', 'integrated'
-# Flag: --gpu_type
-# Supports: Linux
-#
-# Example:
-# all:
-# GPU1: AMD HD 7950
-# GPU2: Intel Integrated Graphics
-#
-# dedicated:
-# GPU1: AMD HD 7950
-#
-# integrated:
-# GPU1: Intel Integrated Graphics
-gpu_type="all"
-
-
-##--------- Resolution
-
-# Display refresh rate next to each monitor
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --refresh_rate
-# Supports: Doesn't work on Windows.
-#
-# Example:
-# on: '1920x1080 @ 60Hz'
-# off: '1920x1080'
-refresh_rate="off"
-
-
-##--------- Gtk Theme / Icons / Font
-
-# Shorten output of GTK Theme / Icons / Font
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --gtk_shorthand
-#
-# Example:
-# on: 'Numix, Adwaita'
-# off: 'Numix [GTK2], Adwaita [GTK3]'
-gtk_shorthand="off"
-
-# Enable/Disable gtk2 Theme / Icons / Font
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gtk2
-#
-# Example:
-# on: 'Numix [GTK2], Adwaita [GTK3]'
-# off: 'Adwaita [GTK3]'
-gtk2="on"
-
-# Enable/Disable gtk3 Theme / Icons / Font
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --gtk3
-#
-# Example:
-# on: 'Numix [GTK2], Adwaita [GTK3]'
-# off: 'Numix [GTK2]'
-gtk3="on"
-
-
-##--------- IP Address
-
-# Website to ping for the public IP
-#
-# Default: 'http://ident.me'
-# Values: 'url'
-# Flag: --ip_host
-public_ip_host="http://ident.me"
-
-# Public IP timeout.
-#
-# Default: '2'
-# Values: 'int'
-# Flag: --ip_timeout
-public_ip_timeout=2
-
-# Desktop Environment
-
-# Show Desktop Environment version
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --de_version
-de_version="on"
-
-
-##--------- Disk
-
-# Which disks to display.
-# The values can be any /dev/sdXX, mount point or directory.
-# NOTE: By default we only show the disk info for '/'.
-#
-# Default: '/'
-# Values: '/', '/dev/sdXX', '/path/to/drive'.
-# Flag: --disk_show
-#
-# Example:
-# disk_show=('/' '/dev/sdb1'):
-# 'Disk (/): 74G / 118G (66%)'
-# 'Disk (/mnt/Videos): 823G / 893G (93%)'
-#
-# disk_show=('/'):
-# 'Disk (/): 74G / 118G (66%)'
-#
-disk_show=('/')
-
-# Disk subtitle.
-# What to append to the Disk subtitle.
-#
-# Default: 'mount'
-# Values: 'mount', 'name', 'dir', 'none'
-# Flag: --disk_subtitle
-#
-# Example:
-# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
-# 'Disk (/dev/sdb2): 74G / 118G (66%)'
-#
-# mount: 'Disk (/): 74G / 118G (66%)'
-# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
-# 'Disk (/mnt/Videos): 74G / 118G (66%)'
-#
-# dir: 'Disk (/): 74G / 118G (66%)'
-# 'Disk (Local Disk): 74G / 118G (66%)'
-# 'Disk (Videos): 74G / 118G (66%)'
-#
-# none: 'Disk: 74G / 118G (66%)'
-# 'Disk: 74G / 118G (66%)'
-# 'Disk: 74G / 118G (66%)'
-disk_subtitle="mount"
-
-# Disk percent.
-# Show/Hide disk percent.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --disk_percent
-#
-# Example:
-# on: 'Disk (/): 74G / 118G (66%)'
-# off: 'Disk (/): 74G / 118G'
-disk_percent="on"
-
-
-##--------- Song
-
-# Manually specify a music player.
-#
-# Default: 'auto'
-# Values: 'auto', 'player-name'
-# Flag: --music_player
-#
-# Available values for 'player-name':
-#
-# amarok
-# audacious
-# banshee
-# bluemindo
-# clementine
-# cmus
-# deadbeef
-# deepin-music
-# dragon
-# elisa
-# exaile
-# gnome-music
-# gmusicbrowser
-# gogglesmm
-# guayadeque
-# io.elementary.music
-# iTunes
-# juk
-# lollypop
-# mocp
-# mopidy
-# mpd
-# muine
-# netease-cloud-music
-# olivia
-# playerctl
-# pogo
-# pragha
-# qmmp
-# quodlibet
-# rhythmbox
-# sayonara
-# smplayer
-# spotify
-# strawberry
-# tauonmb
-# tomahawk
-# vlc
-# xmms2d
-# xnoise
-# yarock
-music_player="auto"
-
-# Format to display song information.
-#
-# Default: '%artist% - %album% - %title%'
-# Values: '%artist%', '%album%', '%title%'
-# Flag: --song_format
-#
-# Example:
-# default: 'Song: Jet - Get Born - Sgt Major'
-song_format="%artist% - %album% - %title%"
-
-# Print the Artist, Album and Title on separate lines
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --song_shorthand
-#
-# Example:
-# on: 'Artist: The Fratellis'
-# 'Album: Costello Music'
-# 'Song: Chelsea Dagger'
-#
-# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
-song_shorthand="off"
-
-# 'mpc' arguments (specify a host, password etc).
-#
-# Default: ''
-# Example: mpc_args=(-h HOST -P PASSWORD)
-mpc_args=()
-
-
-##--------- Text Colors
-
-# Text Colors
-#
-# Default: 'distro'
-# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
-# Flag: --colors
-#
-# Each number represents a different part of the text in
-# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
-#
-# Example:
-# colors=(distro) - Text is colored based on Distro colors.
-# colors=(4 6 1 8 8 6) - Text is colored in the order above.
-colors=(distro)
-
-
-##--------- Text Options
-
-# Toggle bold text
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --bold
-bold="on"
-
-# Enable/Disable Underline
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --underline
-underline_enabled="on"
-
-# Underline character
-#
-# Default: '-'
-# Values: 'string'
-# Flag: --underline_char
-underline_char=""
-
-# Info Separator
-# Replace the default separator with the specified string.
-#
-# Default: ':'
-# Flag: --separator
-#
-# Example:
-# separator="->": 'Shell-> bash'
-# separator=" =": 'WM = dwm'
-separator="$(color 8) ➜" # ›
-
-
-##--------- Color Blocks
-
-# Color block range
-# The range of colors to print.
-#
-# Default: '0', '15'
-# Values: 'num'
-# Flag: --block_range
-#
-# Example:
-#
-# Display colors 0-7 in the blocks. (8 colors)
-# neofetch --block_range 0 7
-#
-# Display colors 0-15 in the blocks. (16 colors)
-# neofetch --block_range 0 15
-block_range=(0 15)
-
-# Toggle color blocks
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --color_blocks
-color_blocks="on"
-
-# Color block width in spaces
-#
-# Default: '3'
-# Values: 'num'
-# Flag: --block_width
-block_width=3
-
-# Color block height in lines
-#
-# Default: '1'
-# Values: 'num'
-# Flag: --block_height
-block_height=1
-
-# Color Alignment
-#
-# Default: 'auto'
-# Values: 'auto', 'num'
-# Flag: --col_offset
-#
-# Number specifies how far from the left side of the terminal (in spaces) to
-# begin printing the columns, in case you want to e.g. center them under your
-# text.
-# Example:
-# col_offset="auto" - Default behavior of neofetch
-# col_offset=7 - Leave 7 spaces then print the colors
-col_offset="auto"
-
-##--------- Progress Bars
-
-# Bar characters
-#
-# Default: '-', '='
-# Values: 'string', 'string'
-# Flag: --bar_char
-#
-# Example:
-# neofetch --bar_char 'elapsed' 'total'
-# neofetch --bar_char '-' '='
-bar_char_elapsed="-"
-bar_char_total="="
-
-# Toggle Bar border
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --bar_border
-bar_border="on"
-
-# Progress bar length in spaces
-# Number of chars long to make the progress bars.
-#
-# Default: '15'
-# Values: 'num'
-# Flag: --bar_length
-bar_length=15
-
-# Progress bar colors
-# When set to distro, uses your distro's logo colors.
-#
-# Default: 'distro', 'distro'
-# Values: 'distro', 'num'
-# Flag: --bar_colors
-#
-# Example:
-# neofetch --bar_colors 3 4
-# neofetch --bar_colors distro 5
-bar_color_elapsed="distro"
-bar_color_total="distro"
-
-# Info display
-# Display a bar with the info.
-#
-# Default: 'off'
-# Values: 'bar', 'infobar', 'barinfo', 'off'
-# Flags: --cpu_display
-# --memory_display
-# --battery_display
-# --disk_display
-#
-# Example:
-# bar: '[---=======]'
-# infobar: 'info [---=======]'
-# barinfo: '[---=======] info'
-# off: 'info'
-cpu_display="off"
-memory_display="off"
-battery_display="off"
-disk_display="off"
-
-
-##--------- Backend Settings
-
-# Image backend.
-#
-# Default: 'ascii'
-# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
-# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
-# Flag: --backend
-image_backend="ascii"
-
-# Image Source
-#
-# Which image or ascii file to display.
-#
-# Default: 'auto'
-# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
-# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
-# Flag: --source
-#
-# NOTE: 'auto' will pick the best image source for whatever image backend is used.
-# In ascii mode, distro ascii art will be used and in an image mode, your
-# wallpaper will be used.
-image_source="auto"
-
-
-##--------- Ascii Options
-
-# Ascii distro
-# Which distro's ascii art to display.
-#
-# Default: 'auto'
-# Values: 'auto', 'distro_name'
-# Flag: --ascii_distro
-# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
-# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
-# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
-# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
-# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
-# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
-# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
-# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
-# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
-# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
-# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
-# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
-# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
-# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
-# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
-# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
-# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
-# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
-# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
-# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
-# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
-# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
-# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
-# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
-# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
-# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
-# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
-# and IRIX have ascii logos
-# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
-# Use '{distro name}_old' to use the old logos.
-# NOTE: Ubuntu has flavor variants.
-# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
-# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
-# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
-# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
-# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
-# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
-# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
-# postmarketOS, and Void have a smaller logo variant.
-# Use '{distro name}_small' to use the small variants.
-ascii_distro="auto"
-
-# Ascii Colors
-#
-# Default: 'distro'
-# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
-# Flag: --ascii_colors
-#
-# Example:
-# ascii_colors=(distro) - Ascii is colored based on Distro colors.
-# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
-# ascii_colors=(1 2 3 4 5 6 7 8)
-
-# Bold ascii logo
-# Whether or not to bold the ascii logo.
-#
-# Default: 'on'
-# Values: 'on', 'off'
-# Flag: --ascii_bold
-ascii_bold="on"
-
-
-##--------- Image Options
-
-# Image loop
-# Setting this to on will make neofetch redraw the image constantly until
-# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
-#
-# Default: 'off'
-# Values: 'on', 'off'
-# Flag: --loop
-image_loop="off"
-
-# Thumbnail directory
-#
-# Default: '~/.cache/thumbnails/neofetch'
-# Values: 'dir'
-thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
-
-# Crop mode
-#
-# Default: 'normal'
-# Values: 'normal', 'fit', 'fill'
-# Flag: --crop_mode
-#
-# See this wiki page to learn about the fit and fill options.
-# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
-crop_mode="normal"
-
-# Crop offset
-# Note: Only affects 'normal' crop mode.
-#
-# Default: 'center'
-# Values: 'northwest', 'north', 'northeast', 'west', 'center'
-# 'east', 'southwest', 'south', 'southeast'
-# Flag: --crop_offset
-crop_offset="center"
-
-# Image size
-# The image is half the terminal width by default.
-#
-# Default: 'auto'
-# Values: 'auto', '00px', '00%', 'none'
-# Flags: --image_size
-# --size
-image_size="auto"
-
-# Gap between image and text
-#
-# Default: '3'
-# Values: 'num', '-num'
-# Flag: --gap
-gap=2
-
-# Image offsets
-# Only works with the w3m backend.
-#
-# Default: '0'
-# Values: 'px'
-# Flags: --xoffset
-# --yoffset
-yoffset=0
-xoffset=0
-
-# Image background color
-# Only works with the w3m backend.
-#
-# Default: ''
-# Values: 'color', 'blue'
-# Flag: --bg_color
-background_color=
-
-
-##--------- Misc Options
-
-# Stdout mode
-# Turn off all colors and disables image backend (ASCII/Image).
-# Useful for piping into another command.
-# Default: 'off'
-# Values: 'on', 'off'
-stdout="off"
diff --git a/home/.config/pcmanfm-qt/default/settings.conf b/home/.config/pcmanfm-qt/default/settings.conf
index 31874fd..ee13976 100644
--- a/home/.config/pcmanfm-qt/default/settings.conf
+++ b/home/.config/pcmanfm-qt/default/settings.conf
@@ -19,7 +19,7 @@ DesktopCellMargins=@Size(3 1)
DesktopIconSize=48
DesktopShortcuts=@Invalid()
FgColor=#ffffff
-Font="Sans Serif,9,-1,5,50,0,0,0,0,0"
+Font="Sans Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
HideItems=false
LastSlide=
OpenWithDefaultFileManager=false
@@ -84,7 +84,7 @@ SIUnit=false
SuCommand=lxqt-sudo %s
TemplateRunApp=false
TemplateTypeOnce=false
-Terminal=alacritty
+Terminal=kitty
[Thumbnail]
MaxExternalThumbnailFileSize=-1
@@ -102,9 +102,9 @@ MountRemovable=true
AlwaysShowTabs=true
FixedHeight=480
FixedWidth=640
-LastWindowHeight=657
+LastWindowHeight=571
LastWindowMaximized=true
-LastWindowWidth=962
+LastWindowWidth=466
PathBarButtons=true
RememberWindowSize=true
ReopenLastTabs=false
@@ -113,6 +113,7 @@ ShowTabClose=true
SidePaneMode=places
SidePaneVisible=true
SplitView=false
+SplitViewTabsNum=0
SplitterPos=150
SwitchToNewTab=false
TabPaths=@Invalid()
diff --git a/home/.config/rye/config.toml b/home/.config/rye/config.toml
deleted file mode 100644
index 9b33dae..0000000
--- a/home/.config/rye/config.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[default]
-license = "GPL-3.0-or-later"
diff --git a/home/.config/shell/environment b/home/.config/shell/environment
index 44a0027..1d7175c 100755
--- a/home/.config/shell/environment
+++ b/home/.config/shell/environment
@@ -14,6 +14,7 @@ if [ -d "$HOME/.local/bin" ]; then
PATH+=":$(find -L ~/.local/bin -type d | tr '\n' ':' | sed 's/:$//')"
fi
+# Add all NPM global binaries to PATH
if [ -d "$HOME/.local/share/npm/bin" ]; then
PATH+=":$HOME/.local/share/npm/bin"
fi
@@ -30,7 +31,7 @@ uid="$(id -u)"
# Default programs
export EDITOR="nvim"
export BROWSER="firefox"
-export TERMINAL="alacritty"
+export TERMINAL="kitty"
export DIFFPROG="nvim -d"
export FILEMANAGER="pcmanfm-qt"
@@ -43,7 +44,7 @@ export XDG_STATE_HOME="$HOME/.local/state"
export XDG_BIN_HOME="$HOME/.local/bin"
# XDG User directories (should match ~/.config/user-dirs.dirs)
-#export XDG_DESKTOP_DIR="$HOME/Desktop"
+export XDG_DESKTOP_DIR="$HOME/Desktop"
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
export XDG_TEMPLATES_DIR="$XDG_DATA_HOME/templates"
export XDG_PUBLICSHARE_DIR="$XDG_DATA_HOME/public"
@@ -53,15 +54,13 @@ export XDG_PICTURES_DIR="$HOME/Media/Pictures"
export XDG_VIDEOS_DIR="$HOME/Media/Videos"
export XDG_SCREENSHOTS_DIR="$HOME/Media/Pictures/Screenshots"
-# ZSH dirs
+# ZSH settings
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export ZSH_CACHE="$HOME/.cache/zsh"
export HISTFILE="$ZSH_CACHE/history"
export ZSH_COMPDUMP="$ZSH_CACHE/zcompdump-${ZSH_VERSION:-}"
# Per-Application XDG settings
-export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
-#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs.
export LESSHISTFILE="-"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc":"$XDG_CONFIG_HOME/gtk-2.0/gtkrc.mine"
export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
@@ -81,7 +80,6 @@ export RANDFILE="$XDG_CACHE_HOME/rnd"
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc.py"
export PYTHONPYCACHEPREFIX="$XDG_CACHE_HOME/python"
export PYTHONUSERBASE="$XDG_DATA_HOME/python"
-export _ZL_DATA="$XDG_DATA_HOME/zlua"
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"
export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
@@ -140,8 +138,6 @@ fi
export HISTTIMEFORMAT="%Y-%m-%d %T "
export SUDO_ASKPASS="$HOME/.local/bin/scripts/gui/prompt/menupass"
export PIPENV_VENV_IN_PROJECT=1 # Force pipenv to create new environments within projects ./.venv
-export XSECURELOCK_SHOW_HOSTNAME=0 # Don't show hostname in xsecurelock
-export XSECURELOCK_SHOW_DATETIME=1 # Show current date and time in xsecurelock
# Remove irrelevant variables added for posix compatibility
unset posix
diff --git a/home/.config/spotify-flags.conf b/home/.config/spotify-flags.conf
new file mode 100644
index 0000000..da26db9
--- /dev/null
+++ b/home/.config/spotify-flags.conf
@@ -0,0 +1 @@
+--ozone-platform-hint=auto
diff --git a/home/.config/swaync/config.json b/home/.config/swaync/config.json
index 4149f10..c788454 100644
--- a/home/.config/swaync/config.json
+++ b/home/.config/swaync/config.json
@@ -5,12 +5,12 @@
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
- "cssPriority": "application",
+ "cssPriority": "user",
"control-center-margin-top": 0,
"control-center-margin-bottom": 0,
"control-center-margin-right": 0,
"control-center-margin-left": 0,
- "notification-2fa-action": true,
+ "notification-2fa-action": false,
"notification-inline-replies": false,
"notification-icon-size": 48,
"notification-body-image-height": 100,
diff --git a/home/.config/systemd/user/battery-notification.service b/home/.config/systemd/user/battery-notification.service
deleted file mode 100644
index bb03ae7..0000000
--- a/home/.config/systemd/user/battery-notification.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Show a notification when the battery is low
-Requires=graphical-session.target
-
-[Service]
-Type=oneshot
-ExecStart=%h/.local/bin/scripts/gui/battery-notification
-RemainAfterExit=false
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
-
diff --git a/home/.config/systemd/user/battery-notification.timer b/home/.config/systemd/user/battery-notification.timer
deleted file mode 100644
index ec0044a..0000000
--- a/home/.config/systemd/user/battery-notification.timer
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Timer for low battery notification sendout
-After=graphical-session.target
-Requires=graphical-session.target
-PartOf=graphical-session.target
-
-[Timer]
-OnUnitActiveSec=20s
-
-[Install]
-WantedBy=graphical-session.target
-
diff --git a/home/.config/systemd/user/cliphist.service b/home/.config/systemd/user/cliphist.service
new file mode 100644
index 0000000..dc34bbb
--- /dev/null
+++ b/home/.config/systemd/user/cliphist.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=Clipboard history "manager" for Wayland
+After=graphical-session.target
+PartOf=graphical-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/wl-paste --watch /usr/bin/cliphist -max-items 10 store
+Restart=on-failure
+
+# Use the background slice rather than the session slice. Cliphist isn't
+# a fundamental part of the graphical session experience.
+Slice=background-graphical.slice
+
+CPUQuota=2%
+
+# Cliphist allows storng up to 5 MB per item entries, with 10 entries
+# limit, this means 50 MB. Annoyingly, it seems to load all entries
+# even when it's just writing a single new one (during `cliphist store`),
+# so we need to account for this. See:
+# https://github.com/sentriz/cliphist/issues/155 to understand
+#
+# If the above issue gets addressed, these limits can likely be lowered.
+MemoryHigh=60M
+MemoryMax=120M
+
+# Because of the issue above, significantly increase the likelihood of
+# this process getting terminated during OOM I don't really care that
+# much about a clipboard manager staying up anyways.
+OOMScoreAdjust=300
+
+
+[Install]
+WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/clipman.service b/home/.config/systemd/user/clipman.service
deleted file mode 100644
index a0815bb..0000000
--- a/home/.config/systemd/user/clipman.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Clipman clipboard manager
-After=graphical-session.target
-Requires=graphical-session.target
-
-[Service]
-ExecStart=/usr/bin/wl-paste -t text --watch /usr/bin/clipman store --no-persist
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
-
diff --git a/home/.config/systemd/user/dconf.service.d/override.conf b/home/.config/systemd/user/dconf.service.d/override.conf
new file mode 100644
index 0000000..01c6612
--- /dev/null
+++ b/home/.config/systemd/user/dconf.service.d/override.conf
@@ -0,0 +1,14 @@
+[Service]
+# Place dconf in session.slice instead of the default app.slice.
+#
+# Do not use session-graphical.slice here: it is tied to
+# graphical-session.target, which dconf should not have to wait for,
+# since it can be used outside of graphical sessions as well.
+#
+# Some compositors read certain gsettings values early in their
+# initialization. These compositors are themselves a requirement for
+# graphical-session.target. If dconf were in session-graphical.slice,
+# systemd would delay starting it until graphical-session.target was
+# reached, meaning dconf would not respond in time and compositor
+# startup might stall, or even fail.
+Slice=session.slice
diff --git a/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service b/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service
deleted file mode 120000
index b7c9720..0000000
--- a/home/.config/systemd/user/default.target.wants/systemd-lock-handler.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/systemd-lock-handler.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/elephant.service b/home/.config/systemd/user/elephant.service
new file mode 100644
index 0000000..a8f5b65
--- /dev/null
+++ b/home/.config/systemd/user/elephant.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Elephant data provider and executor backend for application launchers
+Documentation=https://github.com/abenz1267/elephant
+After=graphical-session.target
+PartOf=graphical-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/elephant
+Restart=on-failure
+
+Slice=session-graphical.slice
+
+[Install]
+WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/eww-window@.service b/home/.config/systemd/user/eww-window@.service
deleted file mode 100644
index 158eb1f..0000000
--- a/home/.config/systemd/user/eww-window@.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Open %I eww window
-After=graphical-session.target
-After=eww.service
-PartOf=eww.service
-
-[Service]
-Type=oneshot
-ExecStartPre=/usr/bin/eww ping
-ExecStart=/usr/bin/eww open %i
-ExecStop=/usr/bin/eww close %i
-RemainAfterExit=true
-Restart=on-failure
-RestartSec=3s
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/eww.service b/home/.config/systemd/user/eww.service
deleted file mode 100644
index c4038f2..0000000
--- a/home/.config/systemd/user/eww.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Eww daemon
-After=graphical-session.target
-After=pipewire.service
-Requires=graphical-session.target
-Requires=pipewire.service
-
-[Service]
-ExecStart=/usr/bin/eww daemon --no-daemonize
-Restart=always
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/gh-notification.service b/home/.config/systemd/user/gh-notification.service
deleted file mode 100644
index c4cabf0..0000000
--- a/home/.config/systemd/user/gh-notification.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Show unread GitHub notifications
-Requires=graphical-session.target
-
-[Service]
-Type=oneshot
-ExecStart=%h/.local/bin/scripts/gui/gh-notification -vv
-RemainAfterExit=false
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
-
diff --git a/home/.config/systemd/user/gh-notification.timer b/home/.config/systemd/user/gh-notification.timer
deleted file mode 100644
index 2b59c82..0000000
--- a/home/.config/systemd/user/gh-notification.timer
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Timer for GitHub notification sendout
-After=graphical-session.target
-Requires=graphical-session.target
-PartOf=graphical-session.target
-
-[Timer]
-OnUnitActiveSec=1m
-Unit=gh-notification.service
-
-[Install]
-WantedBy=graphical-session.target
-
diff --git a/home/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf b/home/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf
new file mode 100644
index 0000000..7bd1ede
--- /dev/null
+++ b/home/.config/systemd/user/gnome-keyring-daemon.service.d/override.conf
@@ -0,0 +1,2 @@
+[Service]
+Slice=session-graphical.slice
diff --git a/home/.config/systemd/user/graphical-session.target.wants/battery-notification.timer b/home/.config/systemd/user/graphical-session.target.wants/battery-notification.timer
deleted file mode 120000
index ba852da..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/battery-notification.timer
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/battery-notification.timer
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/clipman.service b/home/.config/systemd/user/graphical-session.target.wants/clipman.service
deleted file mode 120000
index c783f9a..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/clipman.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/clipman.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/eww-window@bar0.service b/home/.config/systemd/user/graphical-session.target.wants/eww-window@bar0.service
deleted file mode 120000
index dd9257e..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/eww-window@bar0.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/eww-window@.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/eww.service b/home/.config/systemd/user/graphical-session.target.wants/eww.service
deleted file mode 120000
index 144544a..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/eww.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/eww.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/fumon.service b/home/.config/systemd/user/graphical-session.target.wants/fumon.service
deleted file mode 120000
index 78696ee..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/fumon.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/fumon.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/gh-notification.timer b/home/.config/systemd/user/graphical-session.target.wants/gh-notification.timer
deleted file mode 120000
index d39d60c..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/gh-notification.timer
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/gh-notification.timer
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/hypridle.service b/home/.config/systemd/user/graphical-session.target.wants/hypridle.service
deleted file mode 120000
index 55da293..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/hypridle.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/hypridle.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/hyprpaper.service b/home/.config/systemd/user/graphical-session.target.wants/hyprpaper.service
deleted file mode 120000
index 3f75e9e..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/hyprpaper.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/hyprpaper.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/policykit-agent.service b/home/.config/systemd/user/graphical-session.target.wants/policykit-agent.service
deleted file mode 120000
index d9ab5b8..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/policykit-agent.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/policykit-agent.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/swaync.service b/home/.config/systemd/user/graphical-session.target.wants/swaync.service
deleted file mode 120000
index 9c6a60f..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/swaync.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/user/swaync.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/graphical-session.target.wants/wl-gammarelay.service b/home/.config/systemd/user/graphical-session.target.wants/wl-gammarelay.service
deleted file mode 120000
index 2ca58e6..0000000
--- a/home/.config/systemd/user/graphical-session.target.wants/wl-gammarelay.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/wl-gammarelay.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/hypridle.service.d/override.conf b/home/.config/systemd/user/hypridle.service.d/override.conf
index e639392..f34a5d5 100644
--- a/home/.config/systemd/user/hypridle.service.d/override.conf
+++ b/home/.config/systemd/user/hypridle.service.d/override.conf
@@ -1,2 +1,7 @@
[Service]
-Slice=background-graphical.slice
+Slice=session-graphical.slice
+
+# These values are experimental, your mileage may vary
+CPUQuota=10%
+MemoryHigh=10M
+MemoryMax=50M
diff --git a/home/.config/systemd/user/hyprland-monitord.service b/home/.config/systemd/user/hyprland-monitord.service
deleted file mode 100644
index b954eaf..0000000
--- a/home/.config/systemd/user/hyprland-monitord.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Daemon watching for Hyprland monitor updates
-After=wayland-session@hyprland.desktop.target
-After=eww.service
-Requires=eww.service
-Requires=wayland-session@hyprland.desktop.target
-
-[Service]
-ExecStart=%h/.local/bin/scripts/gui/hyprland/hyprland-monitord
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=wayland-session@hyprland.desktop.target
diff --git a/home/.config/systemd/user/hyprlock.service b/home/.config/systemd/user/hyprlock.service
deleted file mode 100644
index 3140220..0000000
--- a/home/.config/systemd/user/hyprlock.service
+++ /dev/null
@@ -1,18 +0,0 @@
-[Unit]
-Description=Run hyprlock screenlocker on lock dbus event (using systemd-lock-handler)
-Requisite=graphical-session.target
-# if hyprlock exists cleanly, enter a 'unlock' target
-OnSuccess=unlock.target
-# When lock.target is stopped, stop this unit too
-PartOf=lock.target
-
-[Service]
-ExecStart=/usr/bin/hyprlock
-StandardOutput=journal
-ExecStopPost=/bin/loginctl unlock-session
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=lock.target
-
diff --git a/home/.config/systemd/user/hyprpaper.service.d/override.conf b/home/.config/systemd/user/hyprpaper.service.d/override.conf
index ac8a77e..00a02e9 100644
--- a/home/.config/systemd/user/hyprpaper.service.d/override.conf
+++ b/home/.config/systemd/user/hyprpaper.service.d/override.conf
@@ -1,3 +1,7 @@
[Service]
-ExecCondition=/lib/systemd/systemd-xdg-autostart-condition "Hyprland" ""
-Slice=background-graphical.slice
+Slice=session-graphical.slice
+
+# These values are experimental, your mileage may vary
+CPUQuota=2%
+MemoryHigh=50M
+MemoryMax=100M
diff --git a/home/.config/systemd/user/hyprsunset.service.d/override.conf b/home/.config/systemd/user/hyprsunset.service.d/override.conf
new file mode 100644
index 0000000..4565179
--- /dev/null
+++ b/home/.config/systemd/user/hyprsunset.service.d/override.conf
@@ -0,0 +1,7 @@
+[Service]
+Slice=session-graphical.slice
+
+# These values are experimental, your mileage may vary
+CPUQuota=2%
+MemoryHigh=3M
+MemoryMax=15M
diff --git a/home/.config/systemd/user/lock.target.wants/hyprlock.service b/home/.config/systemd/user/lock.target.wants/hyprlock.service
deleted file mode 120000
index 6db6455..0000000
--- a/home/.config/systemd/user/lock.target.wants/hyprlock.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/hyprlock.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/lock.target.wants/swaync-inhibit-lock.service b/home/.config/systemd/user/lock.target.wants/swaync-inhibit-lock.service
deleted file mode 120000
index bf1d322..0000000
--- a/home/.config/systemd/user/lock.target.wants/swaync-inhibit-lock.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/swaync-inhibit-lock.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/policykit-agent.service b/home/.config/systemd/user/polkit-gnome-agent.service
similarity index 61%
rename from home/.config/systemd/user/policykit-agent.service
rename to home/.config/systemd/user/polkit-gnome-agent.service
index a41b847..baad984 100644
--- a/home/.config/systemd/user/policykit-agent.service
+++ b/home/.config/systemd/user/polkit-gnome-agent.service
@@ -1,12 +1,12 @@
[Unit]
-Description="PolicyKit authentication agent"
+Description="Gnome PolicyKit authentication agent"
After=graphical-session.target
-Requires=graphical-session.target
+PartOf=graphical-session.target
[Service]
ExecStart=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
Restart=on-failure
-Slice=background-graphical.slice
+Slice=session-graphical.slice
[Install]
WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/swaync-inhibit-lock.service b/home/.config/systemd/user/swaync-inhibit-lock.service
deleted file mode 100644
index fab3e5d..0000000
--- a/home/.config/systemd/user/swaync-inhibit-lock.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Inhibit swaync notifications on lock dbus event (using systemd-lock-handler)
-Requisite=swaync.service
-Before=lock.target
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/swaync-client --inhibitor-add screen-locker
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=lock.target
-
diff --git a/home/.config/systemd/user/swaync-inhibit-unlock.service b/home/.config/systemd/user/swaync-inhibit-unlock.service
deleted file mode 100644
index 1497e13..0000000
--- a/home/.config/systemd/user/swaync-inhibit-unlock.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Uninhibit swaync notifications on unlock event
-Requisite=swaync.service
-After=unlock.target
-
-[Service]
-Type=oneshot
-ExecStart=/usr/bin/swaync-client --inhibitor-remove screen-locker
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=unlock.target
diff --git a/home/.config/systemd/user/swaync.service.d/override.conf b/home/.config/systemd/user/swaync.service.d/override.conf
index e639392..7bd1ede 100644
--- a/home/.config/systemd/user/swaync.service.d/override.conf
+++ b/home/.config/systemd/user/swaync.service.d/override.conf
@@ -1,2 +1,2 @@
[Service]
-Slice=background-graphical.slice
+Slice=session-graphical.slice
diff --git a/home/.config/systemd/user/unlock.target.wants/swaync-inhibit-unlock.service b/home/.config/systemd/user/unlock.target.wants/swaync-inhibit-unlock.service
deleted file mode 120000
index 5bf3a7d..0000000
--- a/home/.config/systemd/user/unlock.target.wants/swaync-inhibit-unlock.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/swaync-inhibit-unlock.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/walker.service b/home/.config/systemd/user/walker.service
new file mode 100644
index 0000000..f9d0512
--- /dev/null
+++ b/home/.config/systemd/user/walker.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Walker - A Modern Application Launcher
+Documentation=https://github.com/abenz1267/walker
+After=graphical-session.target elephant.service
+Requires=elephant.service
+PartOf=graphical-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/walker --gapplication-service
+Restart=on-failure
+
+Slice=session-graphical.slice
+
+[Install]
+WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/wayland-session@hyprland.desktop.target.wants/hyprland-monitord.service b/home/.config/systemd/user/wayland-session@hyprland.desktop.target.wants/hyprland-monitord.service
deleted file mode 120000
index 72f9575..0000000
--- a/home/.config/systemd/user/wayland-session@hyprland.desktop.target.wants/hyprland-monitord.service
+++ /dev/null
@@ -1 +0,0 @@
-/home/itsdrike/.config/systemd/user/hyprland-monitord.service
\ No newline at end of file
diff --git a/home/.config/systemd/user/wayland-wm@.service.d/override.conf b/home/.config/systemd/user/wayland-wm@.service.d/override.conf
new file mode 100644
index 0000000..faed091
--- /dev/null
+++ b/home/.config/systemd/user/wayland-wm@.service.d/override.conf
@@ -0,0 +1,3 @@
+[Service]
+# Reduce the likelihood of the compositor getting killed during OOM events
+OOMScoreAdjust=-100
diff --git a/home/.config/systemd/user/wayland-wm@hyprland.desktop.service.d/override.conf b/home/.config/systemd/user/wayland-wm@hyprland.desktop.service.d/override.conf
new file mode 100644
index 0000000..4d698ae
--- /dev/null
+++ b/home/.config/systemd/user/wayland-wm@hyprland.desktop.service.d/override.conf
@@ -0,0 +1,4 @@
+[Service]
+# Guarantee this much minimum memory to Hyprland in case of OOM
+# reclaim events, giving it an advantage against being killed.
+MemoryLow=100M
diff --git a/home/.config/systemd/user/wl-gammarelay.service b/home/.config/systemd/user/wl-gammarelay.service
deleted file mode 100644
index 3ce392a..0000000
--- a/home/.config/systemd/user/wl-gammarelay.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Redshift and brightness control for Wayland
-After=graphical-session.target
-Requires=graphical-session.target
-
-[Service]
-ExecStart=/usr/bin/wl-gammarelay-rs run
-Restart=on-failure
-Slice=background-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
diff --git a/home/.config/systemd/user/xdg-desktop-portal-gtk.service.d/override.conf b/home/.config/systemd/user/xdg-desktop-portal-gtk.service.d/override.conf
new file mode 100644
index 0000000..09bac38
--- /dev/null
+++ b/home/.config/systemd/user/xdg-desktop-portal-gtk.service.d/override.conf
@@ -0,0 +1,2 @@
+[Service]
+Slice=session.slice
diff --git a/home/.config/wireplumber/main.lua.d/51-device-rename.lua b/home/.config/wireplumber/main.lua.d/51-device-rename.lua
deleted file mode 100644
index 27cdaf9..0000000
--- a/home/.config/wireplumber/main.lua.d/51-device-rename.lua
+++ /dev/null
@@ -1,59 +0,0 @@
-
-table.insert(
- alsa_monitor.rules,
- {
- matches = {
- {
- { "node.name", "equals", "alsa_output.pci-0000_05_00.6.analog-stereo" },
- },
- },
- apply_properties = {
- ["node.description"] = "Laptop-output",
- },
- }
-)
-
-table.insert(
- alsa_monitor.rules,
- {
- matches = {
- {
- { "node.name", "equals", "alsa_input.pci-0000_05_00.6.analog-stereo" },
- },
- },
- apply_properties = {
- ["node.description"] = "Laptop-input",
- },
- }
-)
-
-
-table.insert(
- alsa_monitor.rules,
- {
- matches = {
- {
- { "node.name", "equals", "alsa_input.usb-C-Media_Electronics_Inc._Bloody_Gaming_Audio_Device-00.analog-stereo" },
- },
- },
- apply_properties = {
- ["node.description"] = "Bloody_Gaming_Headphones-input",
- },
- }
-)
-
-
-table.insert(
- alsa_monitor.rules,
- {
- matches = {
- {
- { "node.name", "equals", "alsa_output.usb-C-Media_Electronics_Inc._Bloody_Gaming_Audio_Device-00.analog-stereo" },
- },
- },
- apply_properties = {
- ["node.description"] = "Bloody_Gaming_Headphones-output",
- },
- }
-)
-
diff --git a/home/.config/wofi/config b/home/.config/wofi/config
deleted file mode 100644
index 9217ff5..0000000
--- a/home/.config/wofi/config
+++ /dev/null
@@ -1,7 +0,0 @@
-width=40%
-height=30%
-show=drun
-prompt=Search
-allow_images=true
-allow_markup=true
-insensitive=true
diff --git a/home/.config/wofi/style.css b/home/.config/wofi/style.css
deleted file mode 100644
index 0ef36a6..0000000
--- a/home/.config/wofi/style.css
+++ /dev/null
@@ -1,51 +0,0 @@
-window {
- font-family: "DejaVu Sans", "Font Awesome 5 Free";
- margin: 0px;
- border: 1px solid rgba(0, 0, 0, 0.9);
- background-color: rgba(29, 31, 33, 0.95);
- border-radius: 10px;
-}
-
-#input {
- margin: 5px;
- border: none;
- color: #f8f8f2;
- background-color: rgba(55, 59, 65, 0.95);
-}
-
-#inner-box {
- margin: 5px;
- border: none;
- background-color: transparent;
-}
-
-#outer-box {
- margin: 5px;
- border: none;
- background-color: transparent;
-}
-
-#scroll {
- margin: 0px;
- border: none;
-}
-
-#text {
- margin: 5px;
- border: none;
- color: #c5c8c6;
-}
-
-#entry {
- border: none;
-}
-
-#entry:focus {
- border: none;
-}
-
-#entry:selected {
- background-color: rgba(55, 59, 65, 0.95);
- border-radius: 5px;
- border: none;
-}
diff --git a/home/.config/xsettingsd/xsettingsd.conf b/home/.config/xsettingsd/xsettingsd.conf
deleted file mode 100644
index c987a84..0000000
--- a/home/.config/xsettingsd/xsettingsd.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-Net/ThemeName "Tokyonight-Dark"
-Net/IconThemeName "Papirus-Dark"
-Gtk/CursorThemeName "BreezeX-RosePine-Linux"
-Net/EnableEventSounds 1
-EnableInputFeedbackSounds 0
-Xft/Antialias 1
-Xft/Hinting 1
-Xft/HintStyle "hintslight"
-Xft/RGBA "rgb"
diff --git a/home/.config/zsh/.zcompdump b/home/.config/zsh/.zcompdump
new file mode 100644
index 0000000..70c290f
--- /dev/null
+++ b/home/.config/zsh/.zcompdump
@@ -0,0 +1,1895 @@
+#files: 873 version: 5.9
+
+_comps=(
+'-' '_precommand'
+'.' '_source'
+'5g' '_go'
+'5l' '_go'
+'6g' '_go'
+'6l' '_go'
+'8g' '_go'
+'8l' '_go'
+'a2ps' '_a2ps'
+'aaaa' '_hosts'
+'aap' '_aap'
+'abcde' '_abcde'
+'ack' '_ack'
+'ack2' '_ack'
+'ack-grep' '_ack'
+'ack-standalone' '_ack'
+'acpi' '_acpi'
+'acpitool' '_acpitool'
+'acroread' '_acroread'
+'adb' '_adb'
+'add-zle-hook-widget' '_add-zle-hook-widget'
+'add-zsh-hook' '_add-zsh-hook'
+'admin' '_sccs'
+'ali' '_mh'
+'alias' '_alias'
+'amaya' '_webbrowser'
+'analyseplugin' '_analyseplugin'
+'animate' '_imagemagick'
+'anno' '_mh'
+'ansible' '_ansible'
+'ansible-config' '_ansible'
+'ansible-console' '_ansible'
+'ansible-doc' '_ansible'
+'ansible-galaxy' '_ansible'
+'ansible-inventory' '_ansible'
+'ansible-playbook' '_ansible'
+'ansible-pull' '_ansible'
+'ansible-vault' '_ansible'
+'ant' '_ant'
+'antiword' '_antiword'
+'aodh' '_openstack'
+'aoss' '_precommand'
+'apache2ctl' '_apachectl'
+'apachectl' '_apachectl'
+'aplay' '_alsa-utils'
+'apm' '_apm'
+'appletviewer' '_java'
+'apropos' '_man'
+'apvlv' '_pdf'
+'arch-audit' '_arch-audit'
+'arduino-ctags' '_ctags'
+'arecord' '_alsa-utils'
+'arena' '_webbrowser'
+'_arguments' '__arguments'
+'arp' '_arp'
+'arping' '_arping'
+'-array-value-' '_value'
+'asciidoctor' '_asciidoctor'
+'asciinema' '_asciinema'
+'ash' '_sh'
+'-assign-parameter-' '_assign'
+'at' '_at'
+'atq' '_at'
+'atrm' '_at'
+'attr' '_attr'
+'augtool' '_augeas'
+'autoload' '_typeset'
+'avahi-browse' '_avahi'
+'avahi-browse-domains' '_avahi'
+'avahi-resolve' '_avahi'
+'avahi-resolve-address' '_avahi'
+'avahi-resolve-host-name' '_avahi'
+'awk' '_awk'
+'b2sum' '_md5sum'
+'barbican' '_openstack'
+'base32' '_base64'
+'base64' '_base64'
+'basename' '_basename'
+'basenc' '_basenc'
+'bash' '_bash'
+'bat' '_bat'
+'batch' '_at'
+'baz' '_baz'
+'beep' '_beep'
+'bg' '_jobs_bg'
+'bibtex' '_bibtex'
+'bindkey' '_bindkey'
+'bison' '_bison'
+'bluetoothctl' '_bluetoothctl'
+'bmake' '_make'
+'bogofilter' '_bogofilter'
+'bogotune' '_bogofilter'
+'bogoutil' '_bogofilter'
+'bootctl' '_bootctl'
+'bpython' '_bpython'
+'bpython2' '_bpython'
+'bpython2-gtk' '_bpython'
+'bpython2-urwid' '_bpython'
+'bpython3' '_bpython'
+'bpython3-gtk' '_bpython'
+'bpython3-urwid' '_bpython'
+'bpython-gtk' '_bpython'
+'bpython-urwid' '_bpython'
+'-brace-parameter-' '_brace_parameter'
+'brctl' '_brctl'
+'bsdgrep' '_grep'
+'bsdtar' '_tar'
+'btdownloadcurses' '_bittorrent'
+'btdownloadgui' '_bittorrent'
+'btdownloadheadless' '_bittorrent'
+'btlaunchmany' '_bittorrent'
+'btlaunchmanycurses' '_bittorrent'
+'btmakemetafile' '_bittorrent'
+'btreannounce' '_bittorrent'
+'btrename' '_bittorrent'
+'btrfs' '_btrfs'
+'btshowmetainfo' '_bittorrent'
+'bttrack' '_bittorrent'
+'buildhash' '_ispell'
+'builtin' '_builtin'
+'bunzip2' '_bzip2'
+'burst' '_mh'
+'busctl' '_busctl'
+'bzcat' '_bzip2'
+'bzegrep' '_grep'
+'bzfgrep' '_grep'
+'bzgrep' '_grep'
+'bzip2' '_bzip2'
+'bzip2recover' '_bzip2'
+'bzr' '_bzr'
+'c++' '_gcc'
+'cabal' '_cabal'
+'cal' '_cal'
+'calendar' '_calendar'
+'cargo' '_cargo'
+'cat' '_cat'
+'catchsegv' '_precommand'
+'cc' '_gcc'
+'ccal' '_ccal'
+'cd' '_cd'
+'cdc' '_sccs'
+'cdcd' '_cdcd'
+'cdr' '_cdr'
+'cdrdao' '_cdrdao'
+'cdrecord' '_cdrecord'
+'ceilometer' '_openstack'
+'certtool' '_gnutls'
+'cftp' '_twisted'
+'chage' '_users'
+'chattr' '_chattr'
+'chcon' '_chcon'
+'chdir' '_cd'
+'checkupdates' '_checkupdates'
+'chfn' '_users'
+'chgrp' '_chown'
+'chimera' '_webbrowser'
+'chkconfig' '_chkconfig'
+'chkstow' '_stow'
+'chmod' '_chmod'
+'choom' '_choom'
+'chown' '_chown'
+'chpass' '_chsh'
+'chroot' '_chroot'
+'chrt' '_chrt'
+'chsh' '_chsh'
+'ci' '_rcs'
+'cifsiostat' '_sysstat'
+'cinder' '_openstack'
+'ckeygen' '_twisted'
+'cksum' '_cksum'
+'clang' '_gcc'
+'clang++' '_gcc'
+'clay' '_clay'
+'clear' '_nothing'
+'cloudkitty' '_openstack'
+'clusterdb' '_postgresql'
+'cmp' '_cmp'
+'co' '_rcs'
+'code' '_code'
+'column' '_column'
+'comb' '_sccs'
+'combine' '_imagemagick'
+'combinediff' '_patchutils'
+'comm' '_comm'
+'-command-' '_autocd'
+'command' '_command'
+'-command-line-' '_normal'
+'comp' '_mh'
+'compadd' '_compadd'
+'compdef' '_compdef'
+'composer' '_composer'
+'composer.phar' '_composer'
+'composite' '_imagemagick'
+'compress' '_compress'
+'conch' '_twisted'
+'-condition-' '_condition'
+'config.status' '_configure'
+'configure' '_configure'
+'convert' '_imagemagick'
+'coredumpctl' '_coredumpctl'
+'cowsay' '_cowsay'
+'cowthink' '_cowsay'
+'cp' '_cp'
+'cpio' '_cpio'
+'cplay' '_cplay'
+'cpupower' '_cpupower'
+'createdb' '_postgresql'
+'createuser' '_postgresql'
+'crontab' '_crontab'
+'crsh' '_cssh'
+'cryptsetup' '_cryptsetup'
+'cscope' '_cscope'
+'csh' '_sh'
+'csplit' '_csplit'
+'cssh' '_cssh'
+'ctags' '_ctags'
+'ctags-exuberant' '_ctags'
+'ctags-universal' '_ctags'
+'curl' '_curl'
+'cut' '_cut'
+'cvs' '_cvs'
+'darcs' '_darcs'
+'dash' '_sh'
+'date' '_date'
+'dbus-launch' '_dbus'
+'dbus-monitor' '_dbus'
+'dbus-send' '_dbus'
+'dconf' '_dconf'
+'dcop' '_dcop'
+'dcopclient' '_dcop'
+'dcopfind' '_dcop'
+'dcopobject' '_dcop'
+'dcopref' '_dcop'
+'dcopstart' '_dcop'
+'dd' '_dd'
+'declare' '_typeset'
+'-default-' '_default'
+'delta' '_delta'
+'designate' '_openstack'
+'devtodo' '_devtodo'
+'df' '_df'
+'dhclient' '_dhclient'
+'dhclient3' '_dhclient'
+'dict' '_dict'
+'diff' '_diff'
+'diff3' '_diff3'
+'diffstat' '_diffstat'
+'dig' '_dig'
+'dillo' '_webbrowser'
+'dircmp' '_directories'
+'dirs' '_dirs'
+'disable' '_disable'
+'disown' '_jobs_fg'
+'display' '_imagemagick'
+'dist' '_mh'
+'django-admin' '_django'
+'django-admin.py' '_django'
+'dkms' '_dkms'
+'dmake' '_make'
+'dmesg' '_dmesg'
+'dmidecode' '_dmidecode'
+'doas' '_doas'
+'domainname' '_yp'
+'dos2unix' '_dos2unix'
+'downgrade' '_downgrade'
+'drill' '_drill'
+'dropbox' '_dropbox'
+'dropdb' '_postgresql'
+'dropuser' '_postgresql'
+'dsh' '_dsh'
+'dtruss' '_dtruss'
+'du' '_du'
+'dust' '_dust'
+'dvibook' '_dvi'
+'dviconcat' '_dvi'
+'dvicopy' '_dvi'
+'dvidvi' '_dvi'
+'dvipdf' '_dvi'
+'dvips' '_dvi'
+'dviselect' '_dvi'
+'dvitodvi' '_dvi'
+'dvitype' '_dvi'
+'dwb' '_webbrowser'
+'e2label' '_e2label'
+'eatmydata' '_precommand'
+'ecasound' '_ecasound'
+'echotc' '_echotc'
+'echoti' '_echoti'
+'ed' '_ed'
+'egrep' '_grep'
+'elfdump' '_elfdump'
+'elinks' '_elinks'
+'emulate' '_emulate'
+'enable' '_enable'
+'enscript' '_enscript'
+'entr' '_entr'
+'env' '_env'
+'eog' '_eog'
+'epdfview' '_pdf'
+'epsffit' '_psutils'
+'-equal-' '_equal'
+'erb' '_ruby'
+'espeak' '_espeak'
+'etags' '_etags'
+'ethtool' '_ethtool'
+'eu-nm' '_nm'
+'eu-objdump' '_objdump'
+'eu-readelf' '_readelf'
+'eu-strings' '_strings'
+'eval' '_precommand'
+'eview' '_vim'
+'evim' '_vim'
+'evince' '_evince'
+'ex' '_vi'
+'exec' '_exec'
+'expand' '_unexpand'
+'export' '_typeset'
+'express' '_webbrowser'
+'extcheck' '_java'
+'extractres' '_psutils'
+'eza' '_eza'
+'fakeroot' '_fakeroot'
+'false' '_nothing'
+'fastfetch' '_fastfetch'
+'fc' '_fc'
+'fc-list' '_xft_fonts'
+'fc-match' '_xft_fonts'
+'fd' '_fd'
+'feh' '_feh'
+'fetchmail' '_fetchmail'
+'ffmpeg' '_ffmpeg'
+'fg' '_jobs_fg'
+'fgrep' '_grep'
+'figlet' '_figlet'
+'filterdiff' '_patchutils'
+'find' '_find'
+'findaffix' '_ispell'
+'findmnt' '_findmnt'
+'finger' '_finger'
+'firefox' '_mozilla'
+'-first-' '_first'
+'fixdlsrps' '_psutils'
+'fixfmps' '_psutils'
+'fixmacps' '_psutils'
+'fixpsditps' '_psutils'
+'fixpspps' '_psutils'
+'fixscribeps' '_psutils'
+'fixtpps' '_psutils'
+'fixwfwps' '_psutils'
+'fixwpps' '_psutils'
+'fixwwps' '_psutils'
+'flac' '_flac'
+'flex' '_flex'
+'flex++' '_flex'
+'flipdiff' '_patchutils'
+'flist' '_mh'
+'flists' '_mh'
+'float' '_typeset'
+'fmt' '_fmt'
+'fmttest' '_mh'
+'fned' '_zed'
+'fnext' '_mh'
+'fold' '_fold'
+'folder' '_mh'
+'folders' '_mh'
+'fortune' '_fortune'
+'forw' '_mh'
+'fprev' '_mh'
+'free' '_free'
+'freebsd-make' '_make'
+'freezer' '_openstack'
+'fsh' '_fsh'
+'ftp' '_hosts'
+'functions' '_typeset'
+'fuser' '_fuser'
+'fusermount' '_fusermount'
+'fwhois' '_whois'
+'g++' '_gcc'
+'galeon' '_webbrowser'
+'gawk' '_awk'
+'gb2sum' '_md5sum'
+'gbase32' '_base64'
+'gbase64' '_base64'
+'gbasename' '_basename'
+'gcat' '_cat'
+'gcc' '_gcc'
+'gccgo' '_go'
+'gchgrp' '_chown'
+'gchmod' '_chmod'
+'gchown' '_chown'
+'gchroot' '_chroot'
+'gcksum' '_cksum'
+'gcmp' '_cmp'
+'gcomm' '_comm'
+'gcore' '_gcore'
+'gcp' '_cp'
+'gcut' '_cut'
+'gdate' '_date'
+'gdb' '_gdb'
+'gdd' '_dd'
+'gdf' '_df'
+'gdiff' '_diff'
+'gdu' '_du'
+'geany' '_geany'
+'gegrep' '_grep'
+'gem' '_gem'
+'genisoimage' '_genisoimage'
+'genv' '_env'
+'get' '_sccs'
+'getafm' '_psutils'
+'getconf' '_getconf'
+'getent' '_getent'
+'getfacl' '_getfacl'
+'getfacl.exe' '_getfacl'
+'getfattr' '_attr'
+'getmail' '_getmail'
+'getopt' '_getopt'
+'getopts' '_vars'
+'gex' '_vim'
+'gexpand' '_unexpand'
+'gfgrep' '_grep'
+'gfind' '_find'
+'gfmt' '_fmt'
+'gfold' '_fold'
+'ggetopt' '_getopt'
+'ggrep' '_grep'
+'ggv' '_gnome-gv'
+'gh' '_gh'
+'ghead' '_head'
+'ghostscript' '_ghostscript'
+'ghostview' '_pspdf'
+'gid' '_id'
+'ginstall' '_install'
+'git' '_git'
+'git-cvsserver' '_git'
+'gitk' '_git'
+'git-receive-pack' '_git'
+'git-shell' '_git'
+'git-upload-archive' '_git'
+'git-upload-pack' '_git'
+'gjoin' '_join'
+'glance' '_openstack'
+'gln' '_ln'
+'global' '_global'
+'glocate' '_locate'
+'glow' '_glow'
+'gls' '_ls'
+'gm' '_graphicsmagick'
+'gmake' '_make'
+'gmd5sum' '_md5sum'
+'gmkdir' '_mkdir'
+'gmkfifo' '_mkfifo'
+'gmknod' '_mknod'
+'gmktemp' '_mktemp'
+'gmplayer' '_mplayer'
+'gmv' '_mv'
+'gnl' '_nl'
+'gnocchi' '_openstack'
+'gnome-gv' '_gnome-gv'
+'gnumfmt' '_numfmt'
+'gnupod_addsong' '_gnupod'
+'gnupod_addsong.pl' '_gnupod'
+'gnupod_check' '_gnupod'
+'gnupod_check.pl' '_gnupod'
+'gnupod_INIT' '_gnupod'
+'gnupod_INIT.pl' '_gnupod'
+'gnupod_search' '_gnupod'
+'gnupod_search.pl' '_gnupod'
+'gnutls-cli' '_gnutls'
+'gnutls-cli-debug' '_gnutls'
+'gnutls-serv' '_gnutls'
+'god' '_od'
+'gofmt' '_go'
+'gpasswd' '_gpasswd'
+'gpaste' '_paste'
+'gpatch' '_patch'
+'gpg' '_gpg'
+'gpg2' '_gpg'
+'gpgv' '_gpg'
+'gpg-zip' '_gpg'
+'gphoto2' '_gphoto2'
+'gprintenv' '_printenv'
+'gprof' '_gprof'
+'gqview' '_gqview'
+'gradle' '_gradle'
+'gradlew' '_gradle'
+'grail' '_webbrowser'
+'greadlink' '_readlink'
+'grep' '_grep'
+'grepdiff' '_patchutils'
+'grm' '_rm'
+'grmdir' '_rmdir'
+'groff' '_groff'
+'groupadd' '_user_admin'
+'groupdel' '_groups'
+'groupmod' '_user_admin'
+'groups' '_users'
+'growisofs' '_growisofs'
+'gs' '_ghostscript'
+'gsbj' '_pspdf'
+'gsdj' '_pspdf'
+'gsdj500' '_pspdf'
+'gsed' '_sed'
+'gseq' '_seq'
+'gsettings' '_gsettings'
+'gsha1sum' '_md5sum'
+'gsha224sum' '_md5sum'
+'gsha256sum' '_md5sum'
+'gsha384sum' '_md5sum'
+'gsha512sum' '_md5sum'
+'gshred' '_shred'
+'gshuf' '_shuf'
+'gslj' '_pspdf'
+'gslp' '_pspdf'
+'gsnd' '_pspdf'
+'gsort' '_sort'
+'gsplit' '_split'
+'gstat' '_stat'
+'gstdbuf' '_stdbuf'
+'gstrings' '_strings'
+'gstty' '_stty'
+'gsum' '_cksum'
+'gtac' '_tac'
+'gtail' '_tail'
+'gtar' '_tar'
+'gtee' '_tee'
+'gtimeout' '_timeout'
+'gtouch' '_touch'
+'gtr' '_tr'
+'gtty' '_tty'
+'guilt' '_guilt'
+'guilt-add' '_guilt'
+'guilt-applied' '_guilt'
+'guilt-delete' '_guilt'
+'guilt-files' '_guilt'
+'guilt-fold' '_guilt'
+'guilt-fork' '_guilt'
+'guilt-header' '_guilt'
+'guilt-help' '_guilt'
+'guilt-import' '_guilt'
+'guilt-import-commit' '_guilt'
+'guilt-init' '_guilt'
+'guilt-new' '_guilt'
+'guilt-next' '_guilt'
+'guilt-patchbomb' '_guilt'
+'guilt-pop' '_guilt'
+'guilt-prev' '_guilt'
+'guilt-push' '_guilt'
+'guilt-rebase' '_guilt'
+'guilt-refresh' '_guilt'
+'guilt-rm' '_guilt'
+'guilt-series' '_guilt'
+'guilt-status' '_guilt'
+'guilt-top' '_guilt'
+'guilt-unapplied' '_guilt'
+'guname' '_uname'
+'gunexpand' '_unexpand'
+'guniq' '_uniq'
+'gunzip' '_gzip'
+'guptime' '_uptime'
+'gv' '_gv'
+'gview' '_vim'
+'gvim' '_vim'
+'gvimdiff' '_vim'
+'gwc' '_wc'
+'gwho' '_who'
+'gxargs' '_xargs'
+'gzcat' '_gzip'
+'gzegrep' '_grep'
+'gzfgrep' '_grep'
+'gzgrep' '_grep'
+'gzilla' '_webbrowser'
+'gzip' '_gzip'
+'hash' '_hash'
+'hd' '_hexdump'
+'head' '_head'
+'heat' '_openstack'
+'help' '_sccs'
+'hexdump' '_hexdump'
+'hilite' '_precommand'
+'histed' '_zed'
+'history' '_fc'
+'host' '_host'
+'hostname' '_hostname'
+'hostnamectl' '_hostnamectl'
+'hotjava' '_webbrowser'
+'htop' '_htop'
+'hyfetch' '_hyfetch'
+'hyperfine' '_hyperfine'
+'hyprctl' '_hyprctl'
+'hyprpm' '_hyprpm'
+'iceweasel' '_mozilla'
+'icombine' '_ispell'
+'iconv' '_iconv'
+'iconvconfig' '_iconvconfig'
+'id' '_id'
+'identify' '_imagemagick'
+'ifconfig' '_ifconfig'
+'ifdown' '_net_interfaces'
+'iftop' '_iftop'
+'ifup' '_net_interfaces'
+'ijoin' '_ispell'
+'img2sixel' '_img2sixel'
+'import' '_imagemagick'
+'inc' '_mh'
+'includeres' '_psutils'
+'info' '_texinfo'
+'infocmp' '_terminals'
+'initctl' '_initctl'
+'initdb' '_postgresql'
+'insmod' '_insmod'
+'install' '_install'
+'install-info' '_texinfo'
+'integer' '_typeset'
+'interdiff' '_patchutils'
+'ionice' '_ionice'
+'iostat' '_iostat'
+'ip' '_ip'
+'ip6tables' '_iptables'
+'ip6tables-restore' '_iptables'
+'ip6tables-save' '_iptables'
+'ipkg' '_opkg'
+'ipsec' '_ipsec'
+'ipset' '_ipset'
+'iptables' '_iptables'
+'iptables-restore' '_iptables'
+'iptables-save' '_iptables'
+'irb' '_ruby'
+'ironic' '_openstack'
+'irssi' '_irssi'
+'isag' '_sysstat'
+'ispell' '_ispell'
+'iwconfig' '_iwconfig'
+'jadetex' '_tex'
+'jar' '_java'
+'jarsigner' '_java'
+'java' '_java'
+'javac' '_java'
+'javadoc' '_java'
+'javah' '_java'
+'javap' '_java'
+'jdb' '_java'
+'jobs' '_jobs_builtin'
+'joe' '_joe'
+'join' '_join'
+'journalctl' '_journalctl'
+'jq' '_jq'
+'kdeconnect-cli' '_kdeconnect'
+'kernel-install' '_kernel-install'
+'keystone' '_openstack'
+'keytool' '_java'
+'kfmclient' '_kfmclient'
+'kill' '_kill'
+'killall' '_killall'
+'killall5' '_killall'
+'kioclient' '_kfmclient'
+'kitty' '_kitty'
+'knock' '_knock'
+'konqueror' '_webbrowser'
+'kpartx' '_kpartx'
+'kpdf' '_pdf'
+'ksh' '_sh'
+'ksh88' '_sh'
+'ksh93' '_sh'
+'kvno' '_kvno'
+'last' '_last'
+'lastb' '_last'
+'latex' '_tex'
+'latexmk' '_tex'
+'ldconfig' '_ldconfig'
+'ldconfig.real' '_ldconfig'
+'ldd' '_ldd'
+'less' '_less'
+'let' '_math'
+'lf' '_lf'
+'lfcd' '_lf'
+'lftp' '_ncftp'
+'lha' '_lha'
+'libinput' '_libinput'
+'light' '_webbrowser'
+'limit' '_limit'
+'links' '_links'
+'links2' '_links'
+'linux' '_uml'
+'lldb' '_lldb'
+'llvm-g++' '_gcc'
+'llvm-gcc' '_gcc'
+'llvm-objdump' '_objdump'
+'ln' '_ln'
+'loadkeys' '_loadkeys'
+'local' '_typeset'
+'locale' '_locale'
+'localectl' '_localectl'
+'localedef' '_localedef'
+'locate' '_locate'
+'log' '_nothing'
+'logger' '_logger'
+'loginctl' '_loginctl'
+'logname' '_nothing'
+'look' '_look'
+'losetup' '_losetup'
+'lp' '_lp'
+'lpadmin' '_lp'
+'lpinfo' '_lp'
+'lpoptions' '_lp'
+'lpq' '_lp'
+'lpr' '_lp'
+'lprm' '_lp'
+'lpstat' '_lp'
+'ls' '_ls'
+'lsattr' '_lsattr'
+'lsblk' '_lsblk'
+'lsdiff' '_patchutils'
+'lsinitcpio' '_mkinitcpio'
+'lsmod' '_lsmod'
+'lsns' '_lsns'
+'lsof' '_lsof'
+'lsusb' '_lsusb'
+'ltrace' '_ltrace'
+'lua' '_lua'
+'luarocks' '_luarocks'
+'luarocks-admin' '_luarocks-admin'
+'lynx' '_lynx'
+'lz4' '_lz4'
+'lz4c' '_lz4'
+'lz4c32' '_lz4'
+'lz4cat' '_lz4'
+'lzcat' '_xz'
+'lzma' '_xz'
+'lzop' '_lzop'
+'mac2unix' '_dos2unix'
+'machinectl' '_machinectl'
+'magnum' '_openstack'
+'mail' '_mail'
+'Mail' '_mail'
+'mailx' '_mail'
+'make' '_make'
+'makeinfo' '_texinfo'
+'makepkg' '_pacman'
+'man' '_man'
+'manage.py' '_django'
+'manila' '_openstack'
+'mark' '_mh'
+'mat' '_mat'
+'mat2' '_mat2'
+'-math-' '_math'
+'matlab' '_matlab'
+'mattrib' '_mtools'
+'mcd' '_mtools'
+'mcopy' '_mtools'
+'md2' '_cksum'
+'md4' '_cksum'
+'md5' '_cksum'
+'md5sum' '_md5sum'
+'mdadm' '_mdadm'
+'mdel' '_mtools'
+'mdeltree' '_mtools'
+'mdir' '_mtools'
+'mdu' '_mtools'
+'mencal' '_mencal'
+'mere' '_mere'
+'merge' '_rcs'
+'meson' '_meson'
+'metaflac' '_flac'
+'mformat' '_mtools'
+'mgv' '_pspdf'
+'mhfixmsg' '_mh'
+'mhlist' '_mh'
+'mhmail' '_mh'
+'mhn' '_mh'
+'mhparam' '_mh'
+'mhpath' '_mh'
+'mhshow' '_mh'
+'mhstore' '_mh'
+'mii-tool' '_mii-tool'
+'mistral' '_openstack'
+'mkdir' '_mkdir'
+'mkfifo' '_mkfifo'
+'mkinitcpio' '_mkinitcpio'
+'mkisofs' '_growisofs'
+'mknod' '_mknod'
+'mksh' '_sh'
+'mktemp' '_mktemp'
+'mktunes' '_gnupod'
+'mktunes.pl' '_gnupod'
+'mlabel' '_mtools'
+'mlocate' '_locate'
+'mmd' '_mtools'
+'mmm' '_webbrowser'
+'mmount' '_mtools'
+'mmove' '_mtools'
+'modinfo' '_modutils'
+'modprobe' '_modutils'
+'module' '_module'
+'mogrify' '_imagemagick'
+'monasca' '_openstack'
+'mondoarchive' '_mondo'
+'montage' '_imagemagick'
+'moosic' '_moosic'
+'Mosaic' '_webbrowser'
+'mosh' '_mosh'
+'mount' '_mount'
+'mozilla' '_mozilla'
+'mozilla-firefox' '_mozilla'
+'mozilla-xremote-client' '_mozilla'
+'mpc' '_mpc'
+'mplayer' '_mplayer'
+'mpstat' '_sysstat'
+'mpv' '_mpv'
+'mr' '_myrepos'
+'mrd' '_mtools'
+'mread' '_mtools'
+'mren' '_mtools'
+'msgchk' '_mh'
+'mt' '_mt'
+'mtn' '_monotone'
+'mtoolstest' '_mtools'
+'mtr' '_mtr'
+'mtype' '_mtools'
+'munchlist' '_ispell'
+'mupdf' '_mupdf'
+'murano' '_openstack'
+'mush' '_mail'
+'mutt' '_mutt'
+'mv' '_mv'
+'mvim' '_vim'
+'mx' '_hosts'
+'mysql' '_mysql_utils'
+'mysqladmin' '_mysql_utils'
+'mysqldiff' '_mysqldiff'
+'mysqldump' '_mysql_utils'
+'mysqlimport' '_mysql_utils'
+'mysqlshow' '_mysql_utils'
+'nail' '_mail'
+'native2ascii' '_java'
+'nautilus' '_nautilus'
+'nawk' '_awk'
+'nc' '_netcat'
+'ncal' '_cal'
+'ncftp' '_ncftp'
+'ncl' '_nedit'
+'nedit' '_nedit'
+'nedit-nc' '_nedit'
+'netcat' '_netcat'
+'netrik' '_webbrowser'
+'netscape' '_netscape'
+'netstat' '_netstat'
+'networkctl' '_networkctl'
+'neutron' '_openstack'
+'new' '_mh'
+'newgrp' '_groups'
+'next' '_mh'
+'nginx' '_nginx'
+'ngrep' '_ngrep'
+'nice' '_nice'
+'ninja' '_ninja'
+'nkf' '_nkf'
+'nl' '_nl'
+'nm' '_nm'
+'nmap' '_nmap'
+'nmblookup' '_samba'
+'nmcli' '_networkmanager'
+'nocorrect' '_precommand'
+'noglob' '_precommand'
+'nohup' '_precommand'
+'nova' '_openstack'
+'npm' '_npm'
+'ns' '_hosts'
+'nsenter' '_nsenter'
+'nslookup' '_nslookup'
+'ntalk' '_other_accounts'
+'numfmt' '_numfmt'
+'nvim' '_vim'
+'objdump' '_objdump'
+'od' '_od'
+'ogg123' '_vorbis'
+'oggdec' '_vorbis'
+'oggenc' '_vorbis'
+'ogginfo' '_vorbis'
+'oksh' '_sh'
+'okular' '_okular'
+'oomctl' '_oomctl'
+'openstack' '_openstack'
+'opera' '_webbrowser'
+'opera-next' '_webbrowser'
+'opkg' '_opkg'
+'opusdec' '_opustools'
+'opusenc' '_opustools'
+'opusinfo' '_opustools'
+'p4' '_perforce'
+'p4d' '_perforce'
+'pacat' '_pulseaudio'
+'paccache' '_paccache'
+'pacdiff' '_pacdiff'
+'pacignore' '_pacignore'
+'pack' '_pack'
+'packf' '_mh'
+'paclist' '_paclist'
+'paclog-pkglist' '_paclog-pkglist'
+'pacman' '_pacman'
+'pacman-conf' '_pacman'
+'pacman-key' '_pacman'
+'pacman.static' '_pacman'
+'pacmd' '_pulseaudio'
+'pacscripts' '_pacscripts'
+'pacsearch' '_pacsearch'
+'pacsort' '_pacsort'
+'pactl' '_pulseaudio'
+'pactree' '_pactree'
+'padsp' '_pulseaudio'
+'pandoc' '_pandoc'
+'paplay' '_pulseaudio'
+'parallel' '_parallel'
+'-parameter-' '_parameter'
+'parec' '_pulseaudio'
+'parecord' '_pulseaudio'
+'paru' '_paru'
+'passwd' '_users'
+'paste' '_paste'
+'pasuspender' '_pulseaudio'
+'patch' '_patch'
+'pax' '_pax'
+'pcat' '_pack'
+'pcp-htop' '_htop'
+'pcred' '_pids'
+'pdf2dsc' '_pdf'
+'pdf2ps' '_pdf'
+'pdffonts' '_pdf'
+'pdfimages' '_pdf'
+'pdfinfo' '_pdf'
+'pdfjadetex' '_tex'
+'pdflatex' '_tex'
+'pdfopt' '_pdf'
+'pdftex' '_tex'
+'pdftexi2dvi' '_texinfo'
+'pdftk' '_pdftk'
+'pdftopbm' '_pdf'
+'pdftops' '_pdf'
+'pdftotext' '_pdf'
+'pdksh' '_sh'
+'perf' '_perf'
+'perl' '_perl'
+'perldoc' '_perldoc'
+'pfiles' '_pids'
+'pflags' '_pids'
+'pg_config' '_postgresql'
+'pg_ctl' '_postgresql'
+'pg_dump' '_postgresql'
+'pg_dumpall' '_postgresql'
+'pg_isready' '_postgresql'
+'pgrep' '_pgrep'
+'pg_restore' '_postgresql'
+'pg_upgrade' '_postgresql'
+'php' '_php'
+'pick' '_mh'
+'picocom' '_picocom'
+'pidof' '_pidof'
+'pidstat' '_sysstat'
+'pigz' '_gzip'
+'pine' '_pine'
+'pinef' '_pine'
+'pinfo' '_texinfo'
+'ping' '_ping'
+'ping6' '_ping'
+'pkgadd' '_pkgadd'
+'pkg-config' '_pkg-config'
+'pkgfile' '_pkgfile'
+'pkginfo' '_pkginfo'
+'pkgrm' '_pkgrm'
+'pkill' '_pgrep'
+'playerctl' '_playerctl'
+'pldd' '_pids'
+'pmake' '_make'
+'pman' '_perl_modules'
+'pmap' '_pmap'
+'pmcat' '_perl_modules'
+'pmdesc' '_perl_modules'
+'pmeth' '_perl_modules'
+'pmexp' '_perl_modules'
+'pmfunc' '_perl_modules'
+'pmload' '_perl_modules'
+'pmls' '_perl_modules'
+'pmpath' '_perl_modules'
+'pmvers' '_perl_modules'
+'podgrep' '_perl_modules'
+'podpath' '_perl_modules'
+'podtoc' '_perl_modules'
+'poff' '_pon'
+'policytool' '_java'
+'pon' '_pon'
+'popd' '_directory_stack'
+'postconf' '_postfix'
+'postgres' '_postgresql'
+'postmaster' '_postgresql'
+'postqueue' '_postfix'
+'postsuper' '_postfix'
+'powerprofilesctl' '_powerprofilesctl'
+'pr' '_pr'
+'prev' '_mh'
+'print' '_print'
+'printenv' '_printenv'
+'printf' '_print'
+'procs' '_procs'
+'prompt' '_prompt'
+'prove' '_prove'
+'prs' '_sccs'
+'prt' '_sccs'
+'prun' '_pids'
+'ps' '_ps'
+'ps2ascii' '_pspdf'
+'ps2epsi' '_postscript'
+'ps2pdf' '_postscript'
+'ps2pdf12' '_postscript'
+'ps2pdf13' '_postscript'
+'ps2pdf14' '_postscript'
+'ps2pdfwr' '_postscript'
+'ps2ps' '_postscript'
+'psbook' '_psutils'
+'psed' '_sed'
+'psig' '_pids'
+'psmerge' '_psutils'
+'psmulti' '_postscript'
+'psnup' '_psutils'
+'psql' '_postgresql'
+'psresize' '_psutils'
+'psselect' '_psutils'
+'pstack' '_pids'
+'pstoedit' '_pspdf'
+'pstop' '_pids'
+'pstops' '_psutils'
+'pstotgif' '_pspdf'
+'pswrap' '_postscript'
+'ptx' '_ptx'
+'pulseaudio' '_pulseaudio'
+'pump' '_pump'
+'pushd' '_cd'
+'pv' '_pv'
+'pwait' '_pids'
+'pwdx' '_pids'
+'pwgen' '_pwgen'
+'pyhtmlizer' '_twisted'
+'qdbus' '_qdbus'
+'qiv' '_qiv'
+'quilt' '_quilt'
+'r' '_fc'
+'rake' '_rake'
+'rankmirrors' '_rankmirrors'
+'ranlib' '_ranlib'
+'rar' '_rar'
+'rc' '_sh'
+'rclone' '_rclone'
+'rcp' '_rlogin'
+'rcs' '_rcs'
+'rcsdiff' '_rcs'
+'rdesktop' '_rdesktop'
+'read' '_read'
+'readelf' '_readelf'
+'readlink' '_readlink'
+'readonly' '_typeset'
+'-redirect-' '_redirect'
+'-redirect-,<,bunzip2' '_bzip2'
+'-redirect-,<,bzip2' '_bzip2'
+'-redirect-,>,bzip2' '_bzip2'
+'-redirect-,<,compress' '_compress'
+'-redirect-,>,compress' '_compress'
+'-redirect-,-default-,-default-' '_files'
+'-redirect-,<,gunzip' '_gzip'
+'-redirect-,<,gzip' '_gzip'
+'-redirect-,>,gzip' '_gzip'
+'-redirect-,<,uncompress' '_compress'
+'-redirect-,<,unxz' '_xz'
+'-redirect-,<,xz' '_xz'
+'-redirect-,>,xz' '_xz'
+'refile' '_mh'
+'rehash' '_hash'
+'reindexdb' '_postgresql'
+'reload' '_initctl'
+'remsh' '_rlogin'
+'renice' '_renice'
+'repl' '_mh'
+'resolvectl' '_resolvectl'
+'restart' '_initctl'
+'retawq' '_webbrowser'
+'rg' '_rg'
+'rgrep' '_grep'
+'rgview' '_vim'
+'rgvim' '_vim'
+'ri' '_ri'
+'rlogin' '_rlogin'
+'rm' '_rm'
+'rmd160' '_cksum'
+'rmdel' '_sccs'
+'rmdir' '_rmdir'
+'rmf' '_mh'
+'rmic' '_java'
+'rmid' '_java'
+'rmiregistry' '_java'
+'rmm' '_mh'
+'rmmod' '_rmmod'
+'route' '_route'
+'rrdtool' '_rrdtool'
+'rsh' '_rlogin'
+'rsync' '_rsync'
+'rtin' '_tin'
+'rubber' '_rubber'
+'rubber-info' '_rubber'
+'rubber-pipe' '_rubber'
+'ruby' '_ruby'
+'ruby-mri' '_ruby'
+'ruff' '_ruff'
+'run0' '_run0'
+'run-help' '_run-help'
+'rup' '_hosts'
+'rusage' '_precommand'
+'rustup' '_rustup'
+'rview' '_vim'
+'rvim' '_vim'
+'rwho' '_hosts'
+'rxvt' '_urxvt'
+'s2p' '_sed'
+'sact' '_sccs'
+'sadf' '_sysstat'
+'sahara' '_openstack'
+'sar' '_sysstat'
+'sbctl' '_sbctl'
+'scan' '_mh'
+'sccs' '_sccs'
+'sccsdiff' '_sccs'
+'sched' '_sched'
+'schedtool' '_schedtool'
+'scons' '_scons'
+'scp' '_ssh'
+'screen' '_screen'
+'script' '_script'
+'scriptreplay' '_script'
+'seaf-cli' '_seafile'
+'sed' '_sed'
+'senlin' '_openstack'
+'sensors' '_sensors'
+'sensors-detect' '_sensors-detect'
+'seq' '_seq'
+'serialver' '_java'
+'service' '_service'
+'set' '_set'
+'setfacl' '_setfacl'
+'setfacl.exe' '_setfacl'
+'setfattr' '_attr'
+'setopt' '_setopt'
+'setpriv' '_setpriv'
+'setsid' '_setsid'
+'setxkbmap' '_setxkbmap'
+'sftp' '_ssh'
+'sh' '_sh'
+'sha1' '_cksum'
+'sha1sum' '_md5sum'
+'sha224sum' '_md5sum'
+'sha256' '_cksum'
+'sha256sum' '_md5sum'
+'sha384' '_cksum'
+'sha384sum' '_md5sum'
+'sha512' '_cksum'
+'sha512sum' '_md5sum'
+'sha512t256' '_cksum'
+'shasum' '_shasum'
+'shift' '_arrays'
+'show' '_mh'
+'showchar' '_psutils'
+'showmount' '_showmount'
+'shred' '_shred'
+'shuf' '_shuf'
+'shutdown' '_shutdown'
+'sisu' '_sisu'
+'sk' '_sk'
+'skein1024' '_cksum'
+'skein256' '_cksum'
+'skein512' '_cksum'
+'skipstone' '_webbrowser'
+'slabtop' '_slabtop'
+'slitex' '_tex'
+'slocate' '_locate'
+'slogin' '_ssh'
+'slrn' '_slrn'
+'smartctl' '_smartmontools'
+'smbclient' '_samba'
+'smbcontrol' '_samba'
+'smbstatus' '_samba'
+'soa' '_hosts'
+'socket' '_socket'
+'sort' '_sort'
+'sortm' '_mh'
+'source' '_source'
+'spamassassin' '_spamassassin'
+'split' '_split'
+'splitdiff' '_patchutils'
+'sqlite' '_sqlite'
+'sqlite3' '_sqlite'
+'sqsh' '_sqsh'
+'sr' '_surfraw'
+'srptool' '_gnutls'
+'ss' '_ss'
+'ssh' '_ssh'
+'ssh-add' '_ssh'
+'ssh-agent' '_ssh'
+'ssh-copy-id' '_ssh'
+'sshfs' '_sshfs'
+'ssh-keygen' '_ssh'
+'ssh-keyscan' '_ssh'
+'star' '_tar'
+'start' '_initctl'
+'stat' '_stat'
+'status' '_initctl'
+'stdbuf' '_stdbuf'
+'stg' '_stgit'
+'stop' '_initctl'
+'stow' '_stow'
+'strace' '_strace'
+'strace64' '_strace'
+'strftime' '_strftime'
+'strings' '_strings'
+'strip' '_strip'
+'strongswan' '_ipsec'
+'stty' '_stty'
+'su' '_su'
+'subl' '_sublimetext'
+'-subscript-' '_subscript'
+'sudo' '_sudo'
+'sudoedit' '_sudo'
+'sum' '_cksum'
+'surfraw' '_surfraw'
+'sv' '_runit'
+'svn' '_subversion'
+'svnadmin' '_subversion'
+'svnadmin-static' '_subversion'
+'svnlite' '_subversion'
+'svnliteadmin' '_subversion'
+'swaks' '_swaks'
+'swanctl' '_swanctl'
+'swaync' '_swaync'
+'swaync-client' '_swaync-client'
+'swift' '_swift'
+'swiftc' '_swift'
+'sync' '_nothing'
+'sysctl' '_sysctl'
+'systemctl' '_systemctl'
+'systemd-analyze' '_systemd-analyze'
+'systemd-ask-password' '_systemd'
+'systemd-cat' '_systemd'
+'systemd-cgls' '_systemd'
+'systemd-cgtop' '_systemd'
+'systemd-delta' '_systemd-delta'
+'systemd-detect-virt' '_systemd'
+'systemd-inhibit' '_systemd-inhibit'
+'systemd-machine-id-setup' '_systemd'
+'systemd-notify' '_systemd'
+'systemd-nspawn' '_systemd-nspawn'
+'systemd-path' '_systemd-path'
+'systemd-resolve' '_resolvectl'
+'systemd-run' '_systemd-run'
+'systemd-tmpfiles' '_systemd-tmpfiles'
+'systemd-tty-ask-password-agent' '_systemd'
+'tac' '_tac'
+'tacker' '_openstack'
+'tail' '_tail'
+'talk' '_other_accounts'
+'tar' '_tar'
+'tardy' '_tardy'
+'tcpdump' '_tcpdump'
+'tcp_open' '_tcpsys'
+'tcptraceroute' '_tcptraceroute'
+'tcsh' '_sh'
+'tda' '_devtodo'
+'tdd' '_devtodo'
+'tde' '_devtodo'
+'tdr' '_devtodo'
+'tee' '_tee'
+'telnet' '_telnet'
+'tex' '_tex'
+'texi2any' '_texinfo'
+'texi2dvi' '_texinfo'
+'texi2pdf' '_texinfo'
+'texindex' '_texinfo'
+'tg' '_topgit'
+'tidy' '_tidy'
+'tig' '_git'
+'-tilde-' '_tilde'
+'time' '_precommand'
+'timedatectl' '_timedatectl'
+'timeout' '_timeout'
+'times' '_nothing'
+'tin' '_tin'
+'tkconch' '_twisted'
+'tkinfo' '_texinfo'
+'tla' '_tla'
+'tldr' '_tldr'
+'tload' '_tload'
+'tmux' '_tmux'
+'todo' '_devtodo'
+'todo.sh' '_todo.sh'
+'toilet' '_toilet'
+'top' '_top'
+'totdconfig' '_totd'
+'touch' '_touch'
+'tpb' '_tpb'
+'tput' '_tput'
+'tr' '_tr'
+'tracepath' '_tracepath'
+'tracepath6' '_tracepath'
+'traceroute' '_hosts'
+'transmission-remote' '_transmission'
+'trap' '_trap'
+'trash' '_trash'
+'trash-empty' '_trash-empty'
+'trash-list' '_trash-list'
+'trash-put' '_trash-put'
+'trash-restore' '_trash-restore'
+'tree' '_tree'
+'trial' '_twisted'
+'trove' '_openstack'
+'true' '_nothing'
+'truncate' '_truncate'
+'truss' '_truss'
+'tryaffix' '_ispell'
+'tty' '_tty'
+'ttyctl' '_ttyctl'
+'tunctl' '_uml'
+'tune2fs' '_tune2fs'
+'tunes2pod' '_gnupod'
+'tunes2pod.pl' '_gnupod'
+'twidge' '_twidge'
+'twist' '_twisted'
+'twistd' '_twisted'
+'txt' '_hosts'
+'type' '_which'
+'typeset' '_typeset'
+'udevadm' '_udevadm'
+'udiskie' '_udiskie'
+'udiskie-mount' '_udiskie-mount'
+'udiskie-umount' '_udiskie-umount'
+'udisksctl' '_udisks2'
+'ulimit' '_ulimit'
+'uml_mconsole' '_uml'
+'uml_moo' '_uml'
+'uml_switch' '_uml'
+'umount' '_mount'
+'unace' '_unace'
+'unalias' '_aliases'
+'uname' '_uname'
+'uncompress' '_compress'
+'unexpand' '_unexpand'
+'unfunction' '_functions'
+'unget' '_sccs'
+'unhash' '_unhash'
+'uniq' '_uniq'
+'unison' '_unison'
+'units' '_units'
+'unix2dos' '_dos2unix'
+'unix2mac' '_dos2unix'
+'unlimit' '_limits'
+'unlz4' '_lz4'
+'unlzma' '_xz'
+'unpack' '_pack'
+'unpigz' '_gzip'
+'unrar' '_rar'
+'unset' '_vars'
+'unsetopt' '_setopt'
+'unshare' '_unshare'
+'unwrapdiff' '_patchutils'
+'unxz' '_xz'
+'unzip' '_zip'
+'updpkgsums' '_updpkgsums'
+'upower' '_upower'
+'uptime' '_uptime'
+'urxvt' '_urxvt'
+'urxvt256c' '_urxvt'
+'urxvt256cc' '_urxvt'
+'urxvt256c-ml' '_urxvt'
+'urxvt256c-mlc' '_urxvt'
+'urxvtc' '_urxvt'
+'useradd' '_user_admin'
+'userdel' '_users'
+'usermod' '_user_admin'
+'uv' '_uv'
+'vacuumdb' '_postgresql'
+'val' '_sccs'
+'valgrind' '_valgrind'
+'-value-' '_value'
+'-value-,ADB_TRACE,-default-' '_adb'
+'-value-,ANDROID_LOG_TAGS,-default-' '_adb'
+'-value-,ANDROID_SERIAL,-default-' '_adb'
+'-value-,ANSIBLE_INVENTORY_ENABLED,-default-' '_ansible'
+'-value-,ANSIBLE_STDOUT_CALLBACK,-default-' '_ansible'
+'-value-,ANT_ARGS,-default-' '_ant'
+'-value-,CFLAGS,-default-' '_gcc'
+'-value-,CPPFLAGS,-default-' '_gcc'
+'-value-,CXXFLAGS,-default-' '_gcc'
+'-value-,-default-,-command-' '_zargs'
+'-value-,-default-,-default-' '_value'
+'-value-,DISPLAY,-default-' '_x_display'
+'-value-,GREP_OPTIONS,-default-' '_grep'
+'-value-,GZIP,-default-' '_gzip'
+'-value-,LANG,-default-' '_locales'
+'-value-,LANGUAGE,-default-' '_locales'
+'-value-,LD_DEBUG,-default-' '_ld_debug'
+'-value-,LDFLAGS,-default-' '_gcc'
+'-value-,LESSCHARSET,-default-' '_less'
+'-value-,LESS,-default-' '_less'
+'-value-,LOOPDEV_DEBUG,-default-' '_losetup'
+'-value-,LPDEST,-default-' '_printers'
+'-value-,MPD_HOST,-default' '_mpc'
+'-value-,P4CLIENT,-default-' '_perforce'
+'-value-,P4MERGE,-default-' '_perforce'
+'-value-,P4PORT,-default-' '_perforce'
+'-value-,P4USER,-default-' '_perforce'
+'-value-,PERLDOC,-default-' '_perldoc'
+'-value-,PRINTER,-default-' '_printers'
+'-value-,PROMPT2,-default-' '_ps1234'
+'-value-,PROMPT3,-default-' '_ps1234'
+'-value-,PROMPT4,-default-' '_ps1234'
+'-value-,PROMPT,-default-' '_ps1234'
+'-value-,PS1,-default-' '_ps1234'
+'-value-,PS2,-default-' '_ps1234'
+'-value-,PS3,-default-' '_ps1234'
+'-value-,PS4,-default-' '_ps1234'
+'-value-,RPROMPT2,-default-' '_ps1234'
+'-value-,RPROMPT,-default-' '_ps1234'
+'-value-,RPS1,-default-' '_ps1234'
+'-value-,RPS2,-default-' '_ps1234'
+'-value-,SPROMPT,-default-' '_ps1234'
+'-value-,TERM,-default-' '_terminals'
+'-value-,TERMINFO_DIRS,-default-' '_dir_list'
+'-value-,TZ,-default-' '_time_zone'
+'-value-,VALGRIND_OPTS,-default-' '_valgrind'
+'-value-,WWW_HOME,-default-' '_urls'
+'-value-,XML_CATALOG_FILES,-default-' '_xmlsoft'
+'-value-,XZ_DEFAULTS,-default-' '_xz'
+'-value-,XZ_OPT,-default-' '_xz'
+'-vared-' '_in_vared'
+'vared' '_vared'
+'varlinkctl' '_varlinkctl'
+'vcs_info_hookadd' '_vcs_info'
+'vcs_info_hookdel' '_vcs_info'
+'vi' '_vi'
+'view' '_vi'
+'vim' '_vim'
+'vimdiff' '_vim'
+'virsh' '_libvirt'
+'virt-admin' '_libvirt'
+'virt-host-validate' '_libvirt'
+'virt-pki-validate' '_libvirt'
+'virt-xml-validate' '_libvirt'
+'visudo' '_visudo'
+'vitrage' '_openstack'
+'vmstat' '_vmstat'
+'vncserver' '_vnc'
+'vncviewer' '_vnc'
+'vorbiscomment' '_vorbis'
+'vpnc' '_vpnc'
+'vpnc-connect' '_vpnc'
+'vserver' '_vserver'
+'w' '_w'
+'w3m' '_w3m'
+'wait' '_wait'
+'watch' '_watch'
+'watcher' '_openstack'
+'wc' '_wc'
+'wget' '_wget'
+'what' '_sccs'
+'whatis' '_man'
+'whence' '_which'
+'where' '_which'
+'whereis' '_whereis'
+'which' '_which'
+'who' '_who'
+'whoami' '_nothing'
+'whois' '_whois'
+'whom' '_mh'
+'wiggle' '_wiggle'
+'wipefs' '_wipefs'
+'wl-copy' '_wl-copy'
+'wlogout' '_wlogout'
+'wl-paste' '_wl-paste'
+'wodim' '_cdrecord'
+'wpa_cli' '_wpa_cli'
+'wpctl' '_wpctl'
+'write' '_users_on'
+'www' '_webbrowser'
+'xargs' '_xargs'
+'xattr' '_attr'
+'xauth' '_xauth'
+'xautolock' '_xautolock'
+'xclip' '_xclip'
+'xdpyinfo' '_x_utils'
+'xdvi' '_xdvi'
+'xelatex' '_tex'
+'xetex' '_tex'
+'xev' '_x_utils'
+'xfd' '_x_utils'
+'xfig' '_xfig'
+'xfontsel' '_x_utils'
+'xfreerdp' '_rdesktop'
+'xhost' '_x_utils'
+'xinput' '_xinput'
+'xkill' '_x_utils'
+'xli' '_xloadimage'
+'xloadimage' '_xloadimage'
+'xlsatoms' '_x_utils'
+'xlsclients' '_x_utils'
+'xml' '_xmlstarlet'
+'xmllint' '_xmlsoft'
+'xmlstarlet' '_xmlstarlet'
+'xmms2' '_xmms2'
+'xmodmap' '_xmodmap'
+'xmosaic' '_webbrowser'
+'xon' '_x_utils'
+'xournal' '_xournal'
+'xpdf' '_xpdf'
+'xping' '_hosts'
+'xprop' '_x_utils'
+'xrandr' '_xrandr'
+'xrdb' '_x_utils'
+'xscreensaver-command' '_xscreensaver'
+'xset' '_xset'
+'xsetbg' '_xloadimage'
+'xsetroot' '_x_utils'
+'xsltproc' '_xmlsoft'
+'xterm' '_xterm'
+'xtightvncviewer' '_vnc'
+'xtp' '_imagemagick'
+'xv' '_xv'
+'xview' '_xloadimage'
+'xvnc4viewer' '_vnc'
+'xvncviewer' '_vnc'
+'xwd' '_x_utils'
+'xwininfo' '_x_utils'
+'xwit' '_xwit'
+'xwud' '_x_utils'
+'xxd' '_xxd'
+'xz' '_xz'
+'xzcat' '_xz'
+'yafc' '_yafc'
+'yash' '_sh'
+'ypbind' '_yp'
+'ypcat' '_yp'
+'ypmatch' '_yp'
+'yppasswd' '_yp'
+'yppoll' '_yp'
+'yppush' '_yp'
+'ypserv' '_yp'
+'ypset' '_yp'
+'ypwhich' '_yp'
+'ypxfr' '_yp'
+'ytalk' '_other_accounts'
+'yt-dlp' '_yt-dlp'
+'zargs' '_zargs'
+'zcalc' '_zcalc'
+'-zcalc-line-' '_zcalc_line'
+'zcat' '_zcat'
+'zcompile' '_zcompile'
+'zcp' '_zmv'
+'zdb' '_zfs'
+'zdelattr' '_zattr'
+'zdump' '_zdump'
+'zeal' '_zeal'
+'zed' '_zed'
+'zegrep' '_grep'
+'zen' '_webbrowser'
+'zf_chgrp' '_chown'
+'zf_chmod' '_chmod'
+'zf_chown' '_chown'
+'zfgrep' '_grep'
+'zf_ln' '_ln'
+'zf_mkdir' '_mkdir'
+'zf_mv' '_mv'
+'zf_rm' '_rm'
+'zf_rmdir' '_rmdir'
+'zfs' '_zfs'
+'zgetattr' '_zattr'
+'zgrep' '_grep'
+'zip' '_zip'
+'zipinfo' '_zip'
+'zle' '_zle'
+'zlistattr' '_zattr'
+'zln' '_zmv'
+'zmail' '_mail'
+'zmodload' '_zmodload'
+'zmv' '_zmv'
+'zone' '_hosts'
+'zparseopts' '_zparseopts'
+'zpool' '_zfs'
+'zpty' '_zpty'
+'zsetattr' '_zattr'
+'zsh' '_zsh'
+'zsh-mime-handler' '_zsh-mime-handler'
+'zsocket' '_zsocket'
+'zstat' '_stat'
+'zstyle' '_zstyle'
+'ztodo' '_ztodo'
+'zun' '_openstack'
+'zxpdf' '_xpdf'
+)
+
+_services=(
+'bzcat' 'bunzip2'
+'gchgrp' 'chgrp'
+'gchown' 'chown'
+'gnupod_addsong.pl' 'gnupod_addsong'
+'gnupod_check.pl' 'gnupod_check'
+'gnupod_INIT.pl' 'gnupod_INIT'
+'gnupod_search.pl' 'gnupod_search'
+'gpg2' 'gpg'
+'gzcat' 'gunzip'
+'iceweasel' 'firefox'
+'lzcat' 'unxz'
+'lzma' 'xz'
+'Mail' 'mail'
+'mailx' 'mail'
+'mktunes.pl' 'mktunes'
+'nail' 'mail'
+'ncl' 'nc'
+'nedit-nc' 'nc'
+'pacman.static' 'pacman'
+'pcat' 'unpack'
+'-redirect-,<,bunzip2' 'bunzip2'
+'-redirect-,<,bzip2' 'bzip2'
+'-redirect-,>,bzip2' 'bunzip2'
+'-redirect-,<,compress' 'compress'
+'-redirect-,>,compress' 'uncompress'
+'-redirect-,<,gunzip' 'gunzip'
+'-redirect-,<,gzip' 'gzip'
+'-redirect-,>,gzip' 'gunzip'
+'-redirect-,<,uncompress' 'uncompress'
+'-redirect-,<,unxz' 'unxz'
+'-redirect-,<,xz' 'xz'
+'-redirect-,>,xz' 'unxz'
+'remsh' 'rsh'
+'slogin' 'ssh'
+'svnadmin-static' 'svnadmin'
+'svnlite' 'svn'
+'svnliteadmin' 'svnadmin'
+'tunes2pod.pl' 'tunes2pod'
+'unlzma' 'unxz'
+'xelatex' 'latex'
+'xetex' 'tex'
+'xzcat' 'unxz'
+'zf_chgrp' 'chgrp'
+'zf_chown' 'chown'
+)
+
+_patcomps=(
+'*/(init|rc[0-9S]#).d/*' '_init_d'
+)
+
+_postpatcomps=(
+'_*' '_compadd'
+'c++-*' '_gcc'
+'g++-*' '_gcc'
+'gcc-*' '_gcc'
+'gem[0-9.]#' '_gem'
+'lua[0-9.-]##' '_lua'
+'(p[bgpn]m*|*top[bgpn]m)' '_pbm'
+'php[0-9.-]' '_php'
+'pip[0-9.]#' '_pip'
+'pydoc[0-9.]#' '_pydoc'
+'python[0-9.]#' '_python'
+'qemu(|-system-*)' '_qemu'
+'(ruby|[ei]rb)[0-9.]#' '_ruby'
+'shasum(|5).*' '_shasum'
+'(texi(2*|ndex))' '_texi'
+'(tiff*|*2tiff|pal2rgb)' '_tiff'
+'-value-,(ftp|http(|s))_proxy,-default-' '_urls'
+'-value-,LC_*,-default-' '_locales'
+'-value-,*path,-default-' '_directories'
+'-value-,*PATH,-default-' '_dir_list'
+'-value-,RUBY(LIB|OPT|PATH),-default-' '_ruby'
+'*/X11(|R<4->)/*' '_x_arguments'
+'yodl(|2*)' '_yodl'
+'zf*' '_zftp'
+)
+
+_compautos=(
+'_call_program' '+X'
+)
+
+zle -C _bash_complete-word .complete-word _bash_completions
+zle -C _bash_list-choices .list-choices _bash_completions
+zle -C _complete_debug .complete-word _complete_debug
+zle -C _complete_help .complete-word _complete_help
+zle -C _complete_tag .complete-word _complete_tag
+zle -C _correct_filename .complete-word _correct_filename
+zle -C _correct_word .complete-word _correct_word
+zle -C _expand_alias .complete-word _expand_alias
+zle -C _expand_word .complete-word _expand_word
+zle -C _history-complete-newer .complete-word _history_complete_word
+zle -C _history-complete-older .complete-word _history_complete_word
+zle -C _list_expansions .list-choices _expand_word
+zle -C _most_recent_file .complete-word _most_recent_file
+zle -C _next_tags .list-choices _next_tags
+zle -C _read_comp .complete-word _read_comp
+bindkey '^X^R' _read_comp
+bindkey '^X?' _complete_debug
+bindkey '^XC' _correct_filename
+bindkey '^Xa' _expand_alias
+bindkey '^Xc' _correct_word
+bindkey '^Xd' _list_expansions
+bindkey '^Xe' _expand_word
+bindkey '^Xh' _complete_help
+bindkey '^Xm' _most_recent_file
+bindkey '^Xn' _next_tags
+bindkey '^Xt' _complete_tag
+bindkey '^X~' _bash_list-choices
+bindkey '^[,' _history-complete-newer
+bindkey '^[/' _history-complete-older
+bindkey '^[~' _bash_complete-word
+
+autoload -Uz _arch-audit _bat _bluetoothctl _bootctl _busctl \
+ _cargo _checkupdates _coredumpctl _curl _delta \
+ _downgrade _dust _eza _fastfetch _fd \
+ _gh _glow _hostnamectl _hyfetch _hyperfine \
+ _hyprctl _hyprpm _img2sixel _insmod _journalctl \
+ _kernel-install _kitty _lf _libinput _localectl \
+ _loginctl _lsmod _luarocks _luarocks-admin _machinectl \
+ _meson _mkinitcpio _mpv _networkctl _ninja \
+ _oomctl _paccache _pacdiff _pacignore _paclist \
+ _paclog-pkglist _pacman _pacscripts _pacsearch _pacsort \
+ _pactree _parallel _paru _pip _pkgfile \
+ _playerctl _powerprofilesctl _procs _pulseaudio _rankmirrors \
+ _resolvectl _rg _rmmod _ruff _run0 \
+ _rustup _sbctl _sd_hosts_or_user_at_host _sd_machines _sd_outputmodes \
+ _sd_unit_files _sensors _sensors-detect _sk _swaync \
+ _swaync-client _systemctl _systemd _systemd-analyze _systemd-delta \
+ _systemd-inhibit _systemd-nspawn _systemd-path _systemd-run _systemd-tmpfiles \
+ _timedatectl _tldr _trash _trash-empty _trash-list \
+ _trash-put _trash-restore _udevadm _udiskie _udiskie-canonical_paths \
+ _udiskie-mount _udiskie-umount _udisks2 _updpkgsums _upower \
+ _uv _varlinkctl _wl-copy _wlogout _wl-paste \
+ _wpctl _yt-dlp _cdr _all_labels _all_matches \
+ _alternative _approximate _arg_compile _arguments _bash_completions \
+ _cache_invalid _call_function _combination _complete _complete_debug \
+ _complete_help _complete_help_generic _complete_tag _comp_locale _correct \
+ _correct_filename _correct_word _describe _description _dispatch \
+ _expand _expand_alias _expand_word _extensions _external_pwds \
+ _generic _guard _history _history_complete_word _ignored \
+ _list _main_complete _match _menu _message \
+ _most_recent_file _multi_parts _next_label _next_tags _normal \
+ _nothing _numbers _oldlist _pick_variant _prefix \
+ _read_comp _regex_arguments _regex_words _requested _retrieve_cache \
+ _sep_parts _sequence _set_command _setup _store_cache \
+ _sub_commands _tags _user_expand _values _wanted \
+ _acpi _acpitool _alsa-utils _analyseplugin _basenc \
+ _brctl _btrfs _capabilities _chattr _chcon \
+ _choom _chrt _cpupower _cryptsetup _dkms \
+ _e2label _ethtool _findmnt _free _fuse_arguments \
+ _fusermount _fuse_values _gpasswd _htop _iconvconfig \
+ _ionice _ipset _iptables _iwconfig _kpartx \
+ _losetup _lsattr _lsblk _lsns _lsusb \
+ _ltrace _mat _mat2 _mdadm _mii-tool \
+ _modutils _mondo _networkmanager _nsenter _opkg \
+ _perf _pidof _pmap _qdbus _schedtool \
+ _selinux_contexts _selinux_roles _selinux_types _selinux_users _setpriv \
+ _setsid _slabtop _ss _sshfs _strace \
+ _sysstat _tload _tpb _tracepath _tune2fs \
+ _uml _unshare _valgrind _vserver _wakeup_capable_devices \
+ _wipefs _wpa_cli _a2ps _aap _abcde \
+ _absolute_command_paths _ack _adb _ansible _ant \
+ _antiword _apachectl _apm _arch_archives _arch_namespace \
+ _arp _arping _asciidoctor _asciinema _at \
+ _attr _augeas _avahi _awk _base64 \
+ _basename _bash _baudrates _baz _beep \
+ _bibtex _bind_addresses _bison _bittorrent _bogofilter \
+ _bpf_filters _bpython _bzip2 _bzr _cabal \
+ _cal _calendar _canonical_paths _cat _ccal \
+ _cdcd _cdrdao _cdrecord _chkconfig _chmod \
+ _chown _chroot _chsh _cksum _clay \
+ _cmdambivalent _cmdstring _cmp _column _comm \
+ _composer _compress _configure _cowsay _cp \
+ _cpio _cplay _crontab _cscope _csplit \
+ _cssh _ctags _ctags_tags _curl _cut \
+ _cvs _darcs _date _date_formats _dates \
+ _dbus _dconf _dd _devtodo _df \
+ _dhclient _dict _dict_words _diff _diff3 \
+ _diff_options _diffstat _dig _directories _dir_list \
+ _django _dmesg _dmidecode _dns_types _doas \
+ _domains _dos2unix _drill _dropbox _dsh \
+ _dtruss _du _dvi _ecasound _ed \
+ _elfdump _elinks _email_addresses _enscript _entr \
+ _env _espeak _etags _fakeroot _feh \
+ _fetchmail _ffmpeg _figlet _file_modes _files \
+ _file_systems _find _find_net_interfaces _finger _flac \
+ _flex _fmt _fold _fortune _fsh \
+ _fuser _gcc _gcore _gdb _gem \
+ _genisoimage _getconf _getent _getfacl _getmail \
+ _getopt _ghostscript _git _global _global_tags \
+ _gnu_generic _gnupod _gnutls _go _gpg \
+ _gphoto2 _gprof _gradle _graphicsmagick _grep \
+ _groff _groups _growisofs _gsettings _guilt \
+ _gzip _have_glob_qual _head _hexdump _host \
+ _hostname _hosts _iconv _id _ifconfig \
+ _iftop _imagemagick _initctl _init_d _install \
+ _iostat _ip _ipsec _irssi _ispell \
+ _java _java_class _joe _join _jq \
+ _killall _knock _kvno _last _ldconfig \
+ _ldd _ld_debug _less _lha _libvirt \
+ _links _list_files _lldb _ln _loadkeys \
+ _locale _localedef _locales _locate _logger \
+ _look _lp _ls _lsof _lua \
+ _luarocks _lynx _lz4 _lzop _mail \
+ _mailboxes _make _man _md5sum _mencal \
+ _mh _mime_types _mkdir _mkfifo _mknod \
+ _mktemp _module _monotone _moosic _mosh \
+ _mount _mpc _mt _mtools _mtr \
+ _mutt _mv _my_accounts _myrepos _mysqldiff \
+ _mysql_utils _ncftp _netcat _net_interfaces _netstat \
+ _newsgroups _nginx _ngrep _nice _nkf \
+ _nl _nm _nmap _npm _nslookup \
+ _numfmt _objdump _object_files _od _openstack \
+ _opustools _other_accounts _pack _pandoc _paste \
+ _patch _patchutils _path_commands _path_files _pax \
+ _pbm _pdf _perforce _perl _perl_basepods \
+ _perldoc _perl_modules _pgids _pgrep _php \
+ _picocom _pids _pine _ping _pip \
+ _pkgadd _pkg-config _pkginfo _pkg_instance _pkgrm \
+ _pon _ports _postfix _postgresql _postscript \
+ _pr _printenv _printers _process_names _prove \
+ _ps _pspdf _psutils _ptx _pump \
+ _pv _pwgen _pydoc _python _python_modules \
+ _qemu _quilt _rake _ranlib _rar \
+ _rclone _rcs _readelf _readlink _remote_files \
+ _renice _ri _rlogin _rm _rmdir \
+ _route _rrdtool _rsync _rubber _ruby \
+ _runit _samba _sccs _scons _screen \
+ _script _seafile _sed _seq _service \
+ _services _setfacl _sh _shasum _showmount \
+ _shred _shuf _shutdown _signals _sisu \
+ _slrn _smartmontools _socket _sort _spamassassin \
+ _split _sqlite _sqsh _ssh _ssh_hosts \
+ _stat _stdbuf _stgit _stow _strings \
+ _strip _stty _su _subversion _sudo \
+ _surfraw _swaks _swanctl _swift _sys_calls \
+ _sysctl _tac _tail _tar _tar_archive \
+ _tardy _tcpdump _tcptraceroute _tee _telnet \
+ _terminals _tex _texi _texinfo _tidy \
+ _tiff _tilde_files _timeout _time_zone _tin \
+ _tla _tmux _todo.sh _toilet _top \
+ _topgit _totd _touch _tput _tr \
+ _transmission _tree _truncate _truss _tty \
+ _ttys _twidge _twisted _umountable _unace \
+ _uname _unexpand _uniq _unison _units \
+ _uptime _urls _user_admin _user_at_host _users \
+ _users_on _vi _vim _visudo _vmstat \
+ _vorbis _vpnc _w _w3m _watch \
+ _wc _webbrowser _wget _whereis _who \
+ _whois _wiggle _xargs _xmlsoft _xmlstarlet \
+ _xmms2 _xxd _xz _yafc _yodl \
+ _yp _zcat _zdump _zfs _zfs_dataset \
+ _zfs_pool _zip _zsh _acroread _code \
+ _dcop _eog _evince _geany _gnome-gv \
+ _gqview _gv _kdeconnect _kfmclient _matlab \
+ _mozilla _mplayer _mupdf _nautilus _nedit \
+ _netscape _okular _pdftk _qiv _rdesktop \
+ _setxkbmap _sublimetext _urxvt _vnc _x_arguments \
+ _xauth _xautolock _x_borderwidth _xclip _x_color \
+ _x_colormapid _x_cursor _x_display _xdvi _x_extension \
+ _xfig _x_font _xft_fonts _x_geometry _xinput \
+ _x_keysym _xloadimage _x_locale _x_modifier _xmodmap \
+ _x_name _xournal _xpdf _xrandr _x_resource \
+ _xscreensaver _x_selection_timeout _xset _xt_arguments _xterm \
+ _x_title _xt_session_id _x_utils _xv _x_visual \
+ _x_window _xwit _zeal _add-zle-hook-widget _add-zsh-hook \
+ _alias _aliases __arguments _arrays _assign \
+ _autocd _bindkey _brace_parameter _builtin _cd \
+ _command _command_names _compadd _compdef _completers \
+ _condition _default _delimiters _directory_stack _dirs \
+ _disable _dynamic_directory_name _echotc _echoti _emulate \
+ _enable _equal _exec _fc _file_descriptors \
+ _first _functions _globflags _globqual_delims _globquals \
+ _hash _history_modifiers _in_vared _jobs _jobs_bg \
+ _jobs_builtin _jobs_fg _kill _limit _limits \
+ _math _math_params _mere _module_math_func _options \
+ _options_set _options_unset _parameter _parameters _precommand \
+ _print _prompt _ps1234 _read _redirect \
+ _run-help _sched _set _setopt _source \
+ _strftime _subscript _suffix_alias_files _tcpsys _tilde \
+ _trap _ttyctl _typeset _ulimit _unhash \
+ _user_math_func _value _vared _vars _vcs_info \
+ _vcs_info_hooks _wait _which _widgets _zargs \
+ _zattr _zcalc _zcalc_line _zcompile _zed \
+ _zftp _zle _zmodload _zmv _zparseopts \
+ _zpty _zsh-mime-handler _zsocket _zstyle _ztodo
+autoload -Uz +X _call_program
+
+typeset -gUa _comp_assocs
+_comp_assocs=( '' )
diff --git a/home/.config/zsh/.zgenom b/home/.config/zsh/.zgenom
index 86f3681..e9a7125 160000
--- a/home/.config/zsh/.zgenom
+++ b/home/.config/zsh/.zgenom
@@ -1 +1 @@
-Subproject commit 86f3681d2b151b3c2acbb386890b4984cc5ffd86
+Subproject commit e9a7125d533e7acd3bae80e461cc6b9ab233cfa7
diff --git a/home/.config/zsh/.zshrc b/home/.config/zsh/.zshrc
index 13974c1..2a89692 100755
--- a/home/.config/zsh/.zshrc
+++ b/home/.config/zsh/.zshrc
@@ -15,8 +15,3 @@ source ~/.config/zsh/rc/auto_cleanup.zsh
source ~/.config/zsh/rc/misc.zsh
source ~/.config/zsh/rc/plugins.zsh
source ~/.config/zsh/rc/zgenom.zsh
-
-# Override the comment color to make comments visible on black bg
-# (this needs to be after zgenom, as it requires the zsh-fast-highlighting plugin
-# to be loaded)
-FAST_HIGHLIGHT_STYLES[comment]='fg=#696C76'
diff --git a/home/.config/zsh/rc/zgenom.zsh b/home/.config/zsh/rc/zgenom.zsh
index f1a7a8f..d81b0f7 100644
--- a/home/.config/zsh/rc/zgenom.zsh
+++ b/home/.config/zsh/rc/zgenom.zsh
@@ -16,3 +16,7 @@ if ! zgenom saved; then
zgenom save
fi
+# Override the comment color to make comments visible on black bg
+# (overrides the zsh-fast-highlighting plugin)
+FAST_HIGHLIGHT_STYLES[comment]='fg=#696C76'
+
diff --git a/home/.local/share/gnupg/.gitkeep b/home/.local/share/gnupg/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/home/.local/share/icons/default/index.theme b/home/.local/share/icons/default/index.theme
new file mode 100644
index 0000000..66588b1
--- /dev/null
+++ b/home/.local/share/icons/default/index.theme
@@ -0,0 +1,4 @@
+[Icon Theme]
+Name=Default
+Comment=Default Cursor Theme
+Inherits=BreezeX-RosePine-Linux
diff --git a/home/.local/share/npm/lib/.gitkeep b/home/.local/share/npm/lib/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/home/.local/share/pki/.gitkeep b/home/.local/share/pki/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/home/.local/share/thumbnailers/video.thumbnailer b/home/.local/share/thumbnailers/video.thumbnailer
deleted file mode 100644
index 0272a1d..0000000
--- a/home/.local/share/thumbnailers/video.thumbnailer
+++ /dev/null
@@ -1,5 +0,0 @@
-[Thumbnailer Entry]
-Exec=ffmpegthumbnailer -f -s %s -i %i -o %o
-MimeType=video/mp4
-
-# vi: ft=toml
diff --git a/home/.local/state/.gitkeep b/home/.local/state/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/install_gui.sh b/install_gui.sh
index 47ec471..5b9c789 100755
--- a/install_gui.sh
+++ b/install_gui.sh
@@ -13,103 +13,108 @@ if [ "$UID" = 0 ]; then
fi
# cd into the dotfiles dir, no matter where the script was called from
-pushd "$(dirname "$0")"
+pushd "$(dirname "$0")" >/dev/null
-# Copy over various settings
-cp -a home/.pki ~ # symlink
+# XDG base dir stuff
mkdir -p ~/.local/share/pki
-cp -a home/.mozilla ~ # symlink
+ln -s ~/.local/share/pki ~/.pki
mkdir -p ~/.config/mozilla
-mkdir -p ~/.config/nv
+ln -s ~/.config/mozilla ~/.mozilla
mkdir -p ~/.cache/nv
-touch ~/.cache/nv/.keep
-cp -ar home/.local/share/thumbnailers ~/.local/share
-cp -ar home/.local/share/icons ~/.local/
-cp -ar home/.config/fontconfig ~/.config
-cp -ar home/.config/python_keyring ~/.config
cp -ra home/.config/wget ~/.config
+mkdir -p ~/.config/gtk-2.0
+touch ~/.config/gtk-2.0/gtkrc
-# More opinionated settings
-cp home/.config/mimeapps.list ~/.config
-cp -ar home/.config/mpv ~/.config
-cp -ar home/.config/pcmanfm ~/.config
-cp -ar home/.config/pcmanfm-qt ~/.config
-cp -ar home/.config/pypoetry ~/.config
+# DE configs (core apps/tools that make up the base graphical experience)
+cp -ra home/.config/xdg-desktop-portal ~/.config
+cp -ra home/.config/hypr ~/.config
+cp -ra home/.config/swappy ~/.config
+cp -ra home/.config/systemd ~/.config
+#cp -ar home/.config/fontconfig ~/.config
+cp -ra home/.config/swaync ~/.config
+
+# Theme configs
cp -ar home/.config/qt5ct ~/.config
cp -ar home/.config/qt6ct ~/.config
cp -ar home/.config/Kvantum ~/.config
-cp -ar home/.config/gtk-2.0 ~/.config
+cp -arf home/.config/gtk-2.0 ~/.config
cp -ar home/.config/gtk-3.0 ~/.config
cp -ar home/.config/gtk-4.0 ~/.config
-cp -ar home/.config/tmux ~/.config
-cp -ra home/.config/hyfetch ~/.config
-cp -ra home/.config/wireplumber ~/.config
-cp -ra home/.config/alacritty ~/.config
-cp -ra home/.config/kitty ~/.config
-cp -ra home/.config/systemd ~/.config
-cp -ra home/.config/swaync ~/.config
-cp -ra home/.config/eww ~/.config
-cp -ra home/.config/hypr ~/.config
+cp -ar home/.local/share/icons ~/.local/share
+sudo cp root/etc/fonts/local.conf /etc/fonts
+
+# Electron flags to make apps use wayland
cp home/.config/chromium-flags.conf ~/.config
-cp -ra home/.config/swappy ~/.config
-cp -ra home/.config/wofi ~/.config
-cp -ra home/.config/nomacs ~/.config
-cp -ra home/.config/qimgv ~/.config
-cp -ra home/.config/xdg-desktop-portal ~/.config
+cp home/.config/code-flags.conf ~/.config
+cp home/.config/codium-flags.conf ~/.config
+cp home/.config/electron-flags.conf ~/.config
+cp home/.config/spotify-flags.conf ~/.config
+
+# Specific application configs (fairly opinionated)
+cp -ar home/.config/kitty ~/.config
+cp -ar home/.config/pcmanfm ~/.config
+cp -ar home/.config/pcmanfm-qt ~/.config
+cp -ar home/.config/nomacs ~/.config
+cp -ar home/.config/qimgv ~/.config
+cp -ar home/.config/mpv ~/.config
+cp -ar home/.config/pypoetry ~/.config
+cp -ar home/.config/tmux ~/.config
+cp -ar home/.config/hyfetch.json ~/.config
+
+# Other configs
+cp -ar home/.config/python_keyring ~/.config
+cp home/.config/mimeapps.list ~/.config
+cp home/.config/user-dirs.dirs ~/.config
+cp home/.config/user-dirs.locale ~/.config
# Sync mirrors and update before other installations
paru -Syu --noconfirm
-# Instal fonts
-paru -S --needed \
- libxft xorg-font-util \
- ttf-joypixels otf-jost lexend-fonts-git ttf-sarasa-gothic \
- ttf-roboto ttf-work-sans ttf-comic-neue \
- gnu-free-fonts tex-gyre-fonts ttf-liberation otf-unifont \
- inter-font ttf-lato ttf-dejavu noto-fonts noto-fonts-cjk \
- noto-fonts-emoji ttf-material-design-icons-git \
- ttf-font-awesome ttf-twemoji otf-openmoji \
- adobe-source-code-pro-fonts adobe-source-han-mono-otc-fonts \
- adobe-source-sans-fonts ttf-jetbrains-mono otf-monaspace \
- ttf-ms-fonts
-# nerd fonts (I like to install specific pkgs instead of the whole nerd-fonts group
-# as it's pretty large: ~8GB)
-paru -S --needed \
- ttf-firacode-nerd otf-firamono-nerd ttf-iosevka-nerd ttf-nerd-fonts-symbols \
- ttf-hack-nerd ttf-heavydata-nerd ttf-gohu-nerd
-
-# Audio
-paru -S --noconfirm --needed \
- pipewire pipewire-pulse pipewire-pulse pipewire-jack wireplumber alsa-utils pulsemixer
-
-# Themes
-paru -S --noconfirm --needed \
- rose-pine-cursor papirus-folders-catppuccin-git tokyonight-gtk-theme-git \
- nwg-look kvantum kvantum-qt5 qt5ct qt6ct kvantum-theme-catppuccin-git
-
-# Extra themes (I don't use these in my config, but I might switch at some point
-# and it's nice to have them listed and available)
-paru -S --noconfirm --needed \
- gnome-themes-extra gnome-icon-theme-extras python-qt-material notify-osd papirus-icon-theme \
- adwaita-qt5 adwaita-qt6
-
# WM Essentials
paru -S --noconfirm --needed \
- swaync udisks2 udiskie gvfs gvfs-mtp gnome-keyring xorg-xinput polkit-gnome brightnessctl
+ udisks2 udiskie gvfs gvfs-mtp gnome-keyring xorg-xinput polkit-gnome brightnessctl \
+ xdg-user-dirs playerctl
# Wayland WM essentials
paru -S --noconfirm --needed \
- wl-clipboard xdg-desktop-portal xdg-desktop-portal-gtk qt5-wayland qt6-wayland wev wl-gammarelay-rs wdisplays \
- uwsm
-
-# Utilities
-paru -S --noconfirm --needed \
- nm-connection-editor ffmpegthumbnailer upower devour hyfetch fastfetch bottom tesseract tesseract-data-eng \
- nvtop
+ xdg-desktop-portal xdg-desktop-portal-gtk qt5-wayland qt6-wayland \
+ wl-clipboard uwsm
# Wayland Utilities
paru -S --noconfirm --needed \
- grim slurp wofi swappy wf-recorder wlogout clipman hyprpicker hyprpaper
+ wev wdisplays grim slurp swappy wf-recorder wlogout cliphist \
+ hyprpicker hyprpaper hyprsunset
+
+# Application launcher
+paru -S --noconfirm --needed walker elephant elephant-desktopapplications elephant-files elephant-runner elephant-websearch elephant-symbols elephant-calc elephant-menus
+
+# Hyprland
+paru -S --noconfirm --needed hyprland xdg-desktop-portal-hyprland
+
+# Audio
+paru -S --noconfirm --needed \
+ pipewire wireplumber pipewire-alsa pipewire-pulse pipewire-jack \
+ alsa-utils pulsemixer
+
+# Other Utilities
+paru -S --noconfirm --needed \
+ nm-connection-editor ffmpegthumbnailer hyfetch fastfetch tesseract tesseract-data-eng \
+ nvtop
+
+# Themes (Qt theme, GTK theme, icons theme, cursor theme)
+paru -S --noconfirm --needed \
+ papirus-folders-catppuccin-git tokyonight-gtk-theme-git \
+ kvantum kvantum-qt5 qt5ct qt6ct kvantum-theme-catppuccin-git \
+ rose-pine-cursor rose-pine-hyprcursor
+
+# Fonts
+paru -S --noconfirm --needed \
+ gnu-free-fonts noto-fonts noto-fonts-emoji noto-fonts-cjk \
+ ttf-jost ttf-comic-neue ttf-material-design-icons-webfont ttf-joypixels \
+ ttf-twemoji otf-openmoji ttf-ms-fonts
+
+# Nerd Fonts (These contain most of the other fonts that I need)
+paru -S --noconfirm --needed nerd-fonts
# Applications
paru -S --noconfirm --needed \
@@ -119,30 +124,34 @@ paru -S --noconfirm --needed \
# Bluetooth
paru -S --noconfirm --needed bluez bluez-utils blueberry
-# Hyprcursor theme of my choice
-mkdir -p ~/.local/share/icons
-pushd ~/.local/share/icons
-git clone https://github.com/ndom91/rose-pine-cursor-hyprcursor
-popd
-
# Lockscreen
# To test the lockscreen, you can run loginctl lock-session, while in a graphical session
paru -S --noconfirm --needed hyprlock hypridle systemd-lock-handler
-# Eww bar
-paru -S --noconfirm --needed eww
+# Temporary
+# TODO: Swaync should be replaced by quickshell (also remove swaync.service)
+# TODO: Quickshell should be moved outside of temporary once config is ready
+paru -S --noconfirm --needed quickshell swaync
-# Hyprland
-paru -S --noconfirm --needed hyprland xdg-desktop-portal-hyprland
-sudo pacman -R --noconfirm xdg-desktop-portal-gnome || true # don't fail if this isn't installed
+# Dconf/Gsettings
+paru -S --needed --noconfirm dconf
+gsettings set org.gnome.desktop.interface color-scheme prefer-dark
+gsettings set org.gnome.desktop.interface gtk-theme 'Tokyonight-Dark'
+gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark'
+gsettings set org.gnome.desktop.interface font-name 'Noto Sans 10'
+gsettings set org.gnome.desktop.interface document-font-name 'Noto Sans 10'
+gsettings set org.gnome.desktop.interface monospace-font-name 'Source Code Pro 10'
+gsettings set org.gnome.desktop.interface cursor-theme 'BreezeX-RosePine-Linux'
+gsettings set org.gnome.desktop.interface cursor-size 24
-# Tools needed to build hyprland from source
-# (even though I will not be building hyprland here and will instead use the packaged version,
-# I like to have these on my system, since I sometimes want to experiment with building hyprland
-# for debuggin)
-paru -S --noconfirm --needed \
- gdb ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite \
- xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland \
- libinput libliftoff libdisplay-info cpio hyprlang hyprcursor
+# Services
+sudo systemctl enable --now seatd.service
+systemctl --user enable polkit-gnome-agent.service fumon.service hyprpaper.service hypridle.service hyprsunset.service elephant.service walker.service swaync.service
-popd
+echo "GUI Installation finished, you should now reboot and run uwsm start hyprland.desktop"
+echo ""
+echo "Optional extra steps:"
+echo " - setup greetd (follow guide)"
+echo " - setup printing (follow guide)"
+
+popd >/dev/null
diff --git a/install_root.sh b/install_root.sh
index 5672466..b395c3d 100755
--- a/install_root.sh
+++ b/install_root.sh
@@ -15,7 +15,7 @@ if [ "$UID" != 0 ]; then
fi
# cd into the dotfiles dir, no matter where the script was called from
-pushd "$(dirname "$0")"
+pushd "$(dirname "$0")" >/dev/null
# Sync mirrors and update before other installations
pacman -Syu --noconfirm
@@ -23,7 +23,7 @@ pacman -Syu --noconfirm
# Install essential packages
pacman -S --noconfirm --needed \
networkmanager neovim sudo reflector pacman-contrib man-db man-pages rsync btop \
- bind tealdeer base-devel git pkgfile fd ripgrep fwupd arch-audit
+ bind base-devel git fd ripgrep fwupd arch-audit
# Install packages necessary for this script / other scripts in this dotfiles repo
pacman -S --noconfirm --needed python-rich bc lua jq bat
@@ -44,34 +44,32 @@ cp root/.rsync-filter /
# Sync pacman repos after /etc/pacman.conf got updated
sudo pacman -Sy
-# Install zsh and make it the default shell for root
-sudo pacman -S --noconfirm --needed zsh zoxide
-chsh -s /usr/bin/zsh root
+# Enable some basic services
+systemctl enable \
+ systemd-resolved.service systemd-timesyncd.service systemd-oomd.service \
+ paccache.timer pacman-filesdb-refresh.timer reflector.timer \
+ NetworkManager.service
+systemctl mask systemd-networkd.service # We have NetworkManager for this
-# Copy ZSH shell configuration
-mkdir -p /etc/zsh
-cp -ra root/etc/zsh /etc
-mkdir -p ~/.config
+# Install ZSH shell
+pacman -S --noconfirm --needed zsh
cp -ra home/.config/shell ~/.config
+rm -rf ~/.config/zsh/ || true # in case there is already some zsh config
cp -ra home/.config/zsh ~/.config
-rm ~/.config/shell/py-alias # we don't need pyenv python aliases for root
rm -rf ~/.config/zsh/.zgenom
git clone https://github.com/jandamm/zgenom ~/.config/zsh/.zgenom
-install -m 700 -d ~/.local/share/gnupg
+chsh -s /usr/bin/zsh root
-# Enable some basic services
-systemctl enable systemd-resolved
-systemctl enable systemd-timesyncd
-systemctl enable NetworkManager
-systemctl mask systemd-networkd # We have NetworkManager for this
-systemctl enable seatd
-systemctl enable paccache.timer
-systemctl enable reflector.timer
-systemctl enable pkgfile-update.timer
-systemctl enable fstrim.timer
+echo ""
+echo "You can now run zsh or exit the chroot, and re-run it with: arch-chroot /mnt zsh."
+echo "This will put you into a configured ZSH shell, you can continue " \
+ "configuring the rest of the system manually from there."
+echo ""
+echo "Optional extra steps:"
+echo " - enable cronie & copy /etc/crontab & anacrontab from dotfiles"
+echo " - install docker and copy /etc/docker"
+echo " - setup MAC address randomization by copying /etc/NetworkManager"
+echo " - setup battery optimizations (follow guide)"
+echo " - setup UKIs -> secure-boot -> systemd initramfs -> tpm unlocking (follow guides)"
-echo "You can exit the chroot and re-run it with: arch-chroot /mnt zsh"
-echo "This will put you into a configured ZSH shell, you can continue" \
- "configuring the rest of the system manually from there"
-
-popd
+popd >/dev/null
diff --git a/install_user.sh b/install_user.sh
index 3438cab..e682270 100755
--- a/install_user.sh
+++ b/install_user.sh
@@ -7,10 +7,10 @@ set -euo pipefail
# $ useradd itsdrike
# $ usermod -aG wheel itsdrike
# $ install -o itsdrike -g itsdrike -d /home/itsdrike
+# $ mv ~/dots /home/itsdrike
+# $ chown -R itsdrike:itsdrike /home/itsdrike/dots
# $ passwd itsdrike
-# $ chsh -s /usr/bin/zsh itsdrike
# $ su -l itsdrike
-# $ git clone --recursive https://github.com/ItsDrike/dotfiles ~/dots
# $ cd ~/dots
# $ ./install_user.sh
# ---------------------------------------------------------------------------------------
@@ -21,45 +21,62 @@ if [ "$UID" = 0 ]; then
fi
# cd into the dotfiles dir, no matter where the script was called from
-pushd "$(dirname "$0")"
+pushd "$(dirname "$0")" >/dev/null
-if 0; then
+# Source the environment file to make sure the commands below
+# install to the correct (XDG) locations.
+source home/.config/shell/environment
+
+# Sync mirrors and update all packages first
+sudo pacman -Syu --noconfirm
+
+# Make sure we have rustup installed and with the stable channel rust toolchain. This is required for
+# installing paru later on (and any other rust dependencies), to prevent a prompt asking whether we
+# want rust or rustup package and with rustup to also prevent the no default channel configured.
+sudo pacman -S --needed --noconfirm rustup
+rustup default stable
+
+if ! command -v paru >/dev/null; then
# Install AUR helper (paru)
git clone https://aur.archlinux.org/paru.git ~/paru
pushd ~/paru
- # Install rustup first, as otherwise, makepkg would ask whether to install rust or rustup
- # and we always want rustup, user shouldn't choose here
- sudo pacman -S rustup
makepkg -si
popd
rm -rf ~/paru
fi
-# Sync mirrors and update before other installations
+# Sync mirrors and update with paru before other installations
paru -Syu --noconfirm
# Install some useful packages
paru -S --noconfirm --needed \
openssh cronie exa bat dust mlocate lshw trash-cli ncdu btop \
dnsutils net-tools wget jq fzf polkit rebuild-detector hyperfine mediainfo git-delta \
- python-pip ripgrep zip p7zip unzip usbutils hexyl strace python-poetry rye uv yt-dlp \
- luarocks cargo cmake meson npm downgrade lf glow xdg-ninja-git github-cli act lsof \
- procs du-dust skim thermald
+ python-pip ripgrep zip p7zip unzip usbutils hexyl strace uv yt-dlp luarocks cargo \
+ cmake meson npm downgrade glow xdg-ninja-git github-cli act lsof procs skim thermald \
+ tealdeer pkgfile zoxide
# Make paru properly track git dependencies
paru --gendb
-# Install some extensions for github-cli
-gh auth login
-gh extension install dlvhdr/gh-dash
-gh extension install jrnxf/gh-eco
-gh extension install meiji163/gh-notify
+## Install some extensions for github-cli
+## This is currently disabled as doing the login here is very annoying
+## (requires manually typing out the github auth token, since we don't have a browser)
+#gh auth login
+#gh extension install dlvhdr/gh-dash
+#gh extension install jrnxf/gh-eco
+
+# Create some basic dirs
+mkdir -p ~/.config
+mkdir -p ~/.local/{share,state,bin}
# Copy over zsh configuration
+#
# Note that this assumes you've ran install_root.sh, whcih created /etc/zsh/zshenv
-# with $ZOOTDIR exported. If you haven't done that, you'll want to symlink the
-# ~/.config/zsh/.zshenv to your home directory.
-mkdir -p ~/.config
+# with $ZOOTDIR exported. If you haven't done that, you'll want to copy it over from
+# my dotfiles. If you can't (don't have root rights), it's also possible to use ~/.zshenv,
+# which you can symlink to ~/.config/zsh/.zshenv.
+pacman -S --noconfirm --needed zsh
cp -ra home/.config/shell ~/.config
rm -rf ~/.config/zsh/ || true # in case there is already some zsh config
cp -ra home/.config/zsh ~/.config
@@ -67,49 +84,29 @@ rm -rf ~/.config/zsh/.zgenom
git clone https://github.com/jandamm/zgenom ~/.config/zsh/.zgenom
mkdir -p ~/.cache/zsh
touch ~/.cache/zsh/history
+chsh -s /usr/bin/zsh "$USER"
-# Copy other user configurations
-mkdir -p ~/.local
-cp -ra home/.local/bin ~/.local
-cp -ra home/.config/python ~/.config
+# GnuPG
install -m 700 -d ~/.local/share/gnupg
-mkdir -p ~/.local/share/npm/lib
-mkdir -p ~/.local/state
-cp -ra home/.config/btop ~/.config
-mkdir -p ~/.config/gtk-2.0
-mkdir -p ~/.config/gtk-3.0
-mkdir -p ~/.config/java
-
-# More opinionated settings, you may not need some of these
-cp home/.config/black ~/.config
-cp -ra home/.config/git ~/.config/git
-cp -ra home/.config/gtk-2.0 ~/.config
-cp -ra home/.config/gtk-3.0 ~/.config
-cp -ra home/.config/lf ~/.config
-cp -ra home/.config/npm ~/.config
-cp home/.config/pythonrc.py ~/.config
cp -ra home/.local/share/gnupg/gpg.conf ~/.local/share/gnupg
chmod 600 ~/.local/share/gnupg/gpg.conf
-mkdir ~/.config/wakatime
-cp home/.config/user-dirs.dirs ~/.config
-cp home/.config/user-dirs.locale ~/.config
+
+# Copy other user configurations
+mkdir -p ~/.config/java
+mkdir -p ~/.local/share/npm/lib
+cp -ra home/.local/bin ~/.local
+cp -ra home/.config/python ~/.config
+cp -ra home/.config/btop ~/.config
+cp -ra home/.config/git ~/.config
+cp -ra home/.config/gh ~/.config
+cp -ra home/.config/npm ~/.config
cp -ra home/.config/tealdeer ~/.config
-# Source the environment file to make sure the commands below
-# install to the correct (XDG) location.
-export ZSH_VERSION=0 # necessary for the environment script to succeed
-# shellcheck source=home/.config/shell/environment
-source ~/.config/shell/environment
-
-# Install stable channel default rust toolchain
-rustup default stable
-
# Install various python versions with uv
-uv python install 3.12 3.11 3.10 3.9 3.8 3.7
+uv python install 3.13 3.12 3.11 3.10 3.9 3.8
# Install various useful python packages
-paru -S --noconfirm --needed ipython ruff pyright mypy
-uv tool install basedpyright
+paru -S --noconfirm --needed ipython ruff pyright mypy basedpyright
# Pull my public key and give it ultimate trust
# (Obviously, you might not want to do this in your case,
@@ -118,10 +115,15 @@ gpg --keyserver keys.openpgp.org --recv-keys FA2745890B7048C0
echo "136F5E08AFF7F6DD3E9227A0FA2745890B7048C0:6:" | gpg --import-ownertrust
# Enable systemd services
-sudo systemctl enable --now thermald
+sudo systemctl enable thermald pkgfile-update.timer
echo "You should now exit (logout) the user and relogin with: su -l itsdrike"
echo "This will put you into a configured ZSH shell, you can continue" \
"configuring the rest of of the system manually from there"
+echo ""
+echo "Optional extra steps:"
+echo "- import gpg private keys"
+echo "- import ssh config"
+echo "- import git credentials"
-popd
+popd >/dev/null
diff --git a/root/etc/anacrontab b/root/etc/anacrontab
index dbd9fbd..df77b84 100644
--- a/root/etc/anacrontab
+++ b/root/etc/anacrontab
@@ -10,14 +10,11 @@ RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
-#period in days delay in minutes job-identifier command
-1 5 cron.daily nice run-parts /etc/cron.daily
-7 25 cron.weekly nice run-parts /etc/cron.weekly
-@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
+#period in days delay in minutes job-identifier command
+1 5 cron.daily nice run-parts /etc/cron.daily
+7 25 cron.weekly nice run-parts /etc/cron.weekly
+@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
-@daily 15 pacman_file_db /usr/bin/pacman -Fy
-
-
-@daily 10 snapshot.daily /usr/local/bin/btrfs-backup -l daily -k 8 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
-@weekly 20 snapshot.weekly /usr/local/bin/btrfs-backup -l weekly -k 5 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
-@monthly 30 snapshot.monthly /usr/local/bin/btrfs-backup -l monthly -k 3 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
+@daily 10 snapshot.daily /usr/local/bin/btrfs-backup -l daily -k 7 -d /.brtfs/snapshots -- /.btrfs/root /.btrfs/data
+@weekly 10 snapshot.daily /usr/local/bin/btrfs-backup -l weekly -k 7 -d /.brtfs/snapshots -- /.btrfs/root /.btrfs/data
+@montly 10 snapshot.daily /usr/local/bin/btrfs-backup -l monthly -k 7 -d /.brtfs/snapshots -- /.btrfs/root /.btrfs/data
diff --git a/root/etc/crontab b/root/etc/crontab
index 43dda85..405ac55 100644
--- a/root/etc/crontab
+++ b/root/etc/crontab
@@ -3,7 +3,5 @@
# See cron(8) and crontab(5) for details.
# m h dom mon dow user command
-*/30 * * * * root /usr/bin/updatedb
-
-15,30,45 * * * * root /usr/local/bin/btrfs-backup -l quaterly -k 4 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
+15,30,45 * * * * root /usr/local/bin/btrfs-backup -l querter-hourly -k 4 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
0 * * * * root /usr/local/bin/btrfs-backup -l hourly -k 8 -d /.btrfs/snapshots -- /.btrfs/root /.btrfs/data
diff --git a/root/etc/default/grub b/root/etc/default/grub
deleted file mode 100644
index a45adad..0000000
--- a/root/etc/default/grub
+++ /dev/null
@@ -1,74 +0,0 @@
-# GRUB boot loader configuration
-
-GRUB_DEFAULT=0
-GRUB_TIMEOUT=5
-GRUB_DISTRIBUTOR="Arch"
-GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3"
-
-# Since we're using encrypted root, grub won't be able to automatically pick up the UUID of our
-# root paritition (it will just pick up the UUID of the already decrypted mapper device). Because
-# of this, we need to specify the UUID of the actual physical (stil encrypted) partition ourselves.
-#
-# We then also set the name of the mapper device (cryptroot), and additional LUKS options.
-# Specifically, we set allow-discards, which is here for SSD optimizations.
-#
-# Handling the decryption of this device will then be delegated to initramfs. Note that we do need
-# to specify the encrypt hook, along with some other hooks (like keyboard), into our mkinitcpio
-# config, and recompile it, so that it will support asking us for the encryption password.
-GRUB_CMDLINE_LINUX="cryptdevice=UUID=1864bad3-7e73-415a-a36d-49d941eb98c2:cryptroot:allow-discards"
-
-# Preload both GPT and MBR modules so that they are not missed
-GRUB_PRELOAD_MODULES="part_gpt part_msdos"
-
-# Uncomment to enable booting from LUKS encrypted /boot partition
-#GRUB_ENABLE_CRYPTODISK=y
-
-# Set to 'countdown' or 'hidden' to change timeout behavior,
-# press ESC key to display menu.
-GRUB_TIMEOUT_STYLE=menu
-
-# Uncomment to use basic console
-GRUB_TERMINAL_INPUT=console
-
-# Uncomment to disable graphical terminal
-#GRUB_TERMINAL_OUTPUT=console
-
-# The resolution used on graphical terminal
-# note that you can use only modes which your graphic card supports via VBE
-# you can see them in real GRUB with the command `vbeinfo'
-GRUB_GFXMODE=auto
-
-# Uncomment to allow the kernel use the same resolution used by grub
-GRUB_GFXPAYLOAD_LINUX=keep
-
-# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
-# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
-#GRUB_DISABLE_LINUX_UUID=true
-
-# Uncomment to disable generation of recovery mode menu entries
-GRUB_DISABLE_RECOVERY=true
-
-# Uncomment and set to the desired menu colors. Used by normal and wallpaper
-# modes only. Entries specified as foreground/background.
-#GRUB_COLOR_NORMAL="light-blue/black"
-#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
-
-# Uncomment one of them for the gfx desired, a image background or a gfxtheme
-#GRUB_BACKGROUND="/path/to/wallpaper"
-#GRUB_THEME="/path/to/gfxtheme"
-
-# Uncomment to get a beep at GRUB start
-#GRUB_INIT_TUNE="480 440 1"
-
-# Uncomment to make GRUB remember the last selection. This requires
-# setting 'GRUB_DEFAULT=saved' above.
-#GRUB_SAVEDEFAULT=true
-
-# Uncomment to disable submenus in boot menu
-#GRUB_DISABLE_SUBMENU=y
-
-# Probing for other operating systems is disabled for security reasons. Read
-# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
-# functionality install os-prober and uncomment to detect and include other
-# operating systems.
-#GRUB_DISABLE_OS_PROBER=false
diff --git a/root/etc/docker/daemon.json b/root/etc/docker/daemon.json
index 993b8de..7454968 100644
--- a/root/etc/docker/daemon.json
+++ b/root/etc/docker/daemon.json
@@ -1,3 +1,9 @@
{
- "storage-driver": "btrfs"
+ "storage-driver": "btrfs",
+ "default-address-pools": [
+ {
+ "base": "192.168.64.0/18",
+ "size": 24
+ }
+ ]
}
diff --git a/root/etc/fonts/local.conf b/root/etc/fonts/local.conf
index 7736a4e..d0b62d2 100644
--- a/root/etc/fonts/local.conf
+++ b/root/etc/fonts/local.conf
@@ -44,10 +44,4 @@
Noto Color Emoji
-
-
-
- /usr/share/fonts/nerd-fonts-git/TTF/Caskaydia*
-
-
diff --git a/root/etc/greetd/config.toml b/root/etc/greetd/config.toml
index 2ac1c1a..5134243 100644
--- a/root/etc/greetd/config.toml
+++ b/root/etc/greetd/config.toml
@@ -7,11 +7,10 @@ vt = 1
# If the user logs out, greetd will render the default session
[initial_session]
user = "itsdrike"
-command = "/usr/local/bin/greetd-session-wrapper uwsm start hyprland.desktop"
+command = "/usr/local/bin/greetd-session-wrapper uwsm start default"
# The default session, also known as the greeter.
[default_session]
-
command = "tuigreet --time --remember --remember-user-session --asterisks --greeting 'Stop staring and log in already' --theme 'border=magenta;text=cyan;prompt=green;time=red;action=white;button=yellow;container=black;input=gray' --sessions /usr/share/wayland-sessions --xsessions /usr/share/xsessions --session-wrapper /usr/local/bin/greetd-session-wrapper --xsession-wrapper /usr/local/bin/greetd-session-wrapper startx /usr/bin/env"
# The user to run the command as. The privileges this user must have depends
diff --git a/root/etc/hosts b/root/etc/hosts
index 8f67611..fba36bb 100644
--- a/root/etc/hosts
+++ b/root/etc/hosts
@@ -29,7 +29,7 @@
# IPv4 and IPv6 localhost aliases
127.0.0.1 localhost ip4-localhost
-::1 ip6-localhost
+::1 localhost ip6-localhost
# Current system definition
127.0.1.1 pc.localdomain pc
diff --git a/root/etc/pacman.conf b/root/etc/pacman.conf
index 59b1836..1d61f71 100644
--- a/root/etc/pacman.conf
+++ b/root/etc/pacman.conf
@@ -31,11 +31,13 @@ Architecture = auto
# Misc options
#UseSyslog
Color
+#NoProgressBar
CheckSpace
VerbosePkgLists
-#DisableDownloadTimeout
-#ILoveCandy
ParallelDownloads = 8
+DownloadUser = alpm
+#DisableSandbox
+#ILoveCandy
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
@@ -70,22 +72,16 @@ LocalFileSigLevel = Optional
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
-# Use blackarch first, so that other indices can take precedence in
-# versions, usually core/extra/community/multilib have newer versions
-# in comparison to blackarch index
-#[testing]
+#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
-[extra]
-Include = /etc/pacman.d/mirrorlist
-
-#[community-testing]
+#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
-[community]
+[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
@@ -94,12 +90,11 @@ Include = /etc/pacman.d/mirrorlist
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
-[multilib]
-Include = /etc/pacman.d/mirrorlist
+#[multilib]
+#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
-
diff --git a/root/etc/systemd/sleep.conf b/root/etc/systemd/sleep.conf
index 08470f6..93203cd 100644
--- a/root/etc/systemd/sleep.conf
+++ b/root/etc/systemd/sleep.conf
@@ -23,5 +23,7 @@
#AllowHybridSleep=yes
#SuspendState=mem standby freeze
#HibernateMode=platform shutdown
+#MemorySleepMode=
HibernateDelaySec=10800
+#HibernateOnACPower=yes
#SuspendEstimationSec=60min
diff --git a/root/etc/zsh/zshenv b/root/etc/zsh/zshenv
index d7db1dc..8df5b23 100644
--- a/root/etc/zsh/zshenv
+++ b/root/etc/zsh/zshenv
@@ -1 +1,15 @@
-export ZDOTDIR="$HOME"/.config/zsh
+# Environmental variable definitions for ZSH.
+#
+# This is the very first startup file that ZSH will read and will always get sourced,
+# regardless of whether the shell is login or non-login, interactive or non-interactive,
+# used in a script or just ran as a command.
+
+
+# I prefer defining my environment variables through user-specific files, however, doing
+# so with ZSH generally requires at least a ~/.zshenv file. For this reason, this global
+# file is used to override the $ZDOTDIR env var, which allows me to instead use the more
+# XDG compliant path of ~/.config/zsh/.zshenv, avoiding clutter in my home directory.
+#
+# If you wish to replicate my setup but you don't have root rights, you can instead
+# symlink your ~/.zshenv to point to ~/.config/zsh/.zshenv and set $ZDOTDIR from there.
+export ZDOTDIR="$HOME/.config/zsh"
diff --git a/root/usr/local/bin/greetd-session-wrapper b/root/usr/local/bin/greetd-session-wrapper
index 743e401..2a2c62b 100755
--- a/root/usr/local/bin/greetd-session-wrapper
+++ b/root/usr/local/bin/greetd-session-wrapper
@@ -14,4 +14,11 @@ script_name="$0"
shell="$(getent passwd "$USER" | awk -F: '{print $NF}')"
command=("$@")
+# This syntax might be a bit confusing at first. It works as follows:
+# 1. Replace this wrapper process with the user's login shell (through exec)
+# 2. The shell is told to run 'exec $@' replacing itself with another process
+# 3. The $@ in the exec above referrs to the arguments passed the shell (after -c '...')
+# 4. "$script_name" is passed to the shell as $0 (process name), not included in $@
+# 5. The ${command[@]} matches the $@ which this script was called with
+# -> The command passed into this script as args is ran within the user's shell
exec "$shell" -c 'exec "$@"' "$script_name" "${command[@]}"
diff --git a/sync.py b/sync.py
index c1487ca..56a8cbf 100755
--- a/sync.py
+++ b/sync.py
@@ -364,7 +364,7 @@ def show_diffs(diffs: Iterable[FileDiff], ask_show_diff: bool, apply_fix_prompt:
def exclude_fun(diff: FileDiff) -> bool:
exclude_rules: list[Callable[[FileDiff], bool]] = [
lambda d: d.status is DiffStatus.MATCH,
- lambda d: d.dot_file.name == ".keep" and d.sys_file.parent.is_dir(),
+ lambda d: d.dot_file.name == ".gitkeep" and d.sys_file.parent.is_dir(),
lambda d: Path("root/etc/opensnitchd/rules") in d.rel_dot_file.parents,
lambda d: Path("root/usr/local/src/eww") in d.rel_dot_file.parents,
lambda d: Path("root/usr/local/src/z.lua") in d.rel_dot_file.parents,