[Sync] replace the flat layout with the unified stow tree

Supersedes the old flat .config/ layout (last published 2026-06-28) with the
private repo's structure: one shared base plus per-host overlays.

- packages: common/ gui/ lw/ fl/ wm/ plus install.sh and bin/ tooling
  (dotsync, reconcile-hyde.sh)
- new README covering the layout, deploy order and the HyDE dependency
- current HyDE waybar rig (layouts/, cava), pi agent extensions, claude/
  config, tmux, presenterm, aichat roles
- fish: kp (keepassxc-cli + fzf picker, db path from $KP_DB) and
  bind_M_n_history (alt+1..9 recalls the nth history entry)
- drops cruft that should never have been tracked: the duplicate top-level
  .pi/ copy, btop.log, zellij config.kdl.bak, fish_variables
- .pi/agent/auth.json is gitignored; auth.json.example ships instead

Host-specific work sessions and the personal backlog stay in the private
tree. Endpoint locators in the llamacpp/whisper guides are placeholders
($SERVER, <own-domain>) — the guides themselves stay, since they are the
useful part.
This commit is contained in:
coja
2026-08-13 02:53:06 +02:00
parent f62cb40499
commit 1e39e0cb4b
314 changed files with 12306 additions and 10772 deletions
+50
View File
@@ -0,0 +1,50 @@
[general]
import = ["theme.toml"]
[window]
opacity = 0.7
padding.x = 25
padding.y = 25
decorations = "Full"
decorations_theme_variant = "Dark"
[font]
size = 12.0
[font.bold]
family = "CaskaydiaCove Nerd Font Mono"
style = "Bold"
[font.bold_italic]
family = "CaskaydiaCove Nerd Font Mono"
style = "Bold Italic"
[font.italic]
family = "CaskaydiaCove Nerd Font Mono"
style = "Italic"
[font.normal]
family = "CaskaydiaCove Nerd Font Mono"
style = "Regular"
# family = "Source Code Pro"
# family = "Liberation Mono"
[cursor]
blink_interval = 400
blink_timeout = 15
[cursor.style]
shape = "Block"
blinking = "On"
[keyboard]
bindings = [
{ key = "J", mods = "Control|Shift", action = "ScrollLineDown" },
{ key = "K", mods = "Control|Shift", action = "ScrollLineUp" },
{ key = "D", mods = "Control|Shift", action = "ScrollPageDown" },
{ key = "U", mods = "Control|Shift", action = "ScrollPageUp" },
]
+33
View File
@@ -0,0 +1,33 @@
# Synthwave '84 — matches ../kitty/theme.conf
[colors.primary]
background = "#262335"
foreground = "#ffffff"
[colors.cursor]
text = "#262335"
cursor = "#f97e72"
[colors.selection]
text = "#262335"
background = "#f97e72"
[colors.normal]
black = "#232530"
red = "#fe4450"
green = "#72f1b8"
yellow = "#ff7edb"
blue = "#03edf9"
magenta = "#fede5d"
cyan = "#03edf9"
white = "#ffffff"
[colors.bright]
black = "#232530"
red = "#fe4450"
green = "#72f1b8"
yellow = "#ff7edb"
blue = "#03edf9"
magenta = "#f3e70f"
cyan = "#03edf9"
white = "#ffffff"
+8
View File
@@ -0,0 +1,8 @@
## gui package — waybar helpers. Lives in conf.d/ (fish sources every conf.d/*.fish),
## NOT in host.fish: each host package ships its own host.fish, which stow deploys last
## with --override — a gui/host.fish would be shadowed on every host that has one.
# Reload the custom waybar (kill + relaunch, detached so it survives this shell).
# Same invocation as userprefs.conf exec-once / the Ctrl+Alt+W bind. Killing waybar
# also stops its cava child (cava-waybar.sh is a child of the bar).
abbr wbar 'killall waybar; setsid -f waybar -c ~/.config/waybar/layouts/custom.jsonc -s ~/.config/waybar/layouts/custom.css'
+12
View File
@@ -0,0 +1,12 @@
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# See https://wiki.hypr.land/Configuring/Animations/
# Edit or add presets in ./animations/, then run 'animations.sh --select' to switch.
# (noanim layerrules for hyprpicker/selection live in userprefs.conf)
$ANIMATION=theme
# Absolute, not ./ — HyDE re-sources $ANIMATION_PATH from ~/.local/share/hyde/hyprland.conf,
# where a relative path resolves against that directory instead of this one.
$ANIMATION_PATH=~/.config/hypr/animations/theme.conf
source = $ANIMATION_PATH
+18
View File
@@ -0,0 +1,18 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Classic"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
+35
View File
@@ -0,0 +1,35 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Diablo-1"
# credit https://github.com/Itz-Abhishek-Tiwari
# -----------------------------------------------------
animations {
enabled = 1
bezier = default, 0.05, 0.9, 0.1, 1.05
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = overshot, 0.13, 0.99, 0.29, 1.08
bezier = liner, 1, 1, 1, 1
bezier = bounce, 0.4, 0.9, 0.6, 1.0
bezier = snappyReturn, 0.4, 0.9, 0.6, 1.0
bezier = slideInFromRight, 0.5, 0.0, 0.5, 1.0
animation = windows, 1, 5, snappyReturn, slidevert
animation = windowsIn, 1, 5, snappyReturn, slidevert right
animation = windowsOut, 1, 5, snappyReturn, slide
animation = windowsMove, 1, 6, bounce, slide
animation = layersOut, 1, 5, bounce, slidevert right
animation = fadeIn, 1, 10, default
animation = fadeOut, 1, 10, default
animation = fadeSwitch, 1, 10, default
animation = fadeShadow, 1, 10, default
animation = fadeDim, 1, 10, default
animation = fadeLayers, 1, 10, default
animation = workspaces, 1, 7, overshot, slidevert
animation = border, 1, 1, liner
animation = layers, 1, 4, bounce, slidevert right
animation = borderangle, 1, 30, liner, loop
}
+29
View File
@@ -0,0 +1,29 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Diablo-2"
# credit https://github.com/Itz-Abhishek-Tiwari
# -----------------------------------------------------
animations {
enabled = 1
bezier = default, 0.05, 0.9, 0.1, 1.05
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = overshot, 0.13, 0.99, 0.29, 1.08
bezier = liner, 1, 1, 1, 1
animation = windows, 1, 7, wind, popin
animation = windowsIn, 1, 7, overshot, popin
animation = windowsOut, 1, 5, overshot, popin
animation = windowsMove, 1, 6, overshot, slide
animation = layers, 1, 5, default, popin
animation = fadeIn, 1, 10, default
animation = fadeOut, 1, 10, default
animation = fadeSwitch, 1, 10, default
animation = fadeShadow, 1, 10, default
animation = fadeDim, 1, 10, default
animation = fadeLayers, 1, 10, default
animation = workspaces, 1, 7, overshot, slidevert
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
}
+9
View File
@@ -0,0 +1,9 @@
# // ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# // █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
# See https://wiki.hyprland.org/Configuring/Animations/
# credits: https://github.com/prasanthrangan/hyprdots
animations:enabled=false
+23
View File
@@ -0,0 +1,23 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Dynamic"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 6, winIn, slide
animation = windowsOut, 1, 5, winOut, slide
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
animation = fade, 1, 10, default
animation = workspaces, 1, 5, wind
}
+43
View File
@@ -0,0 +1,43 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "End4"
# credit https://github.com/end-4/dots-hyprland
# -----------------------------------------------------
animations {
enabled = true
# Animation curves
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
animation = windows, 1, 3, md3_decel, popin 60%
animation = windowsIn, 1, 3, md3_decel, popin 60%
animation = windowsOut, 1, 3, md3_accel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 4.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
# animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
+26
View File
@@ -0,0 +1,26 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Fast"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = fluent_decel, 0.1, 1, 0, 1
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
animation = windows, 1, 3, md3_decel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 2.5, md3_decel
animation = workspaces, 1, 3.5, easeOutExpo, slide
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
+23
View File
@@ -0,0 +1,23 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "High"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 6, winIn, slide
animation = windowsOut, 1, 5, winOut, slide
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
animation = fade, 1, 10, default
animation = workspaces, 1, 5, wind
}
+32
View File
@@ -0,0 +1,32 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Ja"
# credit https://github.com/JaKooLit/Hyprland-Dots
# -----------------------------------------------------
animations {
enabled = yes
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
bezier = overshot, 0.05, 0.9, 0.1, 1.05
bezier = smoothOut, 0.5, 0, 0.99, 0.99
bezier = smoothIn, 0.5, -0.5, 0.68, 1.5
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 5, winIn, slide
animation = windowsOut, 1, 3, smoothOut, slide
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 1, liner
#animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors
animation = fade, 1, 3, smoothOut
animation = workspaces, 1, 5, overshot
# animations for -git or version >0.42.0
animation = workspacesIn, 1, 5, winIn, slide
animation = workspacesOut, 1, 5, winOut, slide
}
+58
View File
@@ -0,0 +1,58 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Me-1"
# credit https://github.com/mahaveergurjar
# -----------------------------------------------------
animations {
enabled = true
# Animation curves
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
# bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
# animation = windows, 1, 3, md3_decel, popin 60%
# animation = windowsIn, 1, 3, md3_decel, popin 60%
# animation = windowsOut, 1, 3, md3_accel, popin 60%
# animation = windows, 1, 6, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 6, winIn, slide
animation = windowsOut, 1, 5, winOut, slide
animation = windowsMove, 1, 5, wind, slide
# animation = border, 1, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 4.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
animation = workspaces, 1, 5, wind
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
+50
View File
@@ -0,0 +1,50 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Me-2"
# credit https://github.com/mahaveergurjar
# -----------------------------------------------------
animations {
enabled = true
# Animation curves
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
bezier = OutBack, 0.34, 1.56, 0.64, 1
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
# animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 6, winIn, slide
# animation = windowsOut, 1, 5, winOut, slide
animation = windows, 1, 5, easeInOutCirc
animation = windowsOut, 1, 5, OutBack
animation = windowsMove, 1, 5, wind, slide
animation = fade, 1, 3, md3_decel
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 4.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
animation = workspaces, 1, 5, wind
animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}
@@ -0,0 +1,29 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Minimal-1"
# -----------------------------------------------------
animations {
enabled = true
# █▄▄ █▀▀ ▀█ █ █▀▀ █▀█   █▀▀ █░█ █▀█ █░█ █▀▀
# █▄█ ██▄ █▄ █ ██▄ █▀▄   █▄▄ █▄█ █▀▄ ▀▄▀ ██▄
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
#▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
#█▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 6, winIn, slide
animation = windowsOut, 1, 5, winOut, slide
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, loop
animation = fade, 1, 10, default
animation = workspaces, 1, 5, wind
}
@@ -0,0 +1,18 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Minimal-2"
# -----------------------------------------------------
animations {
enabled = yes
bezier = quart, 0.25, 1, 0.5, 1
animation = windows, 1, 6, quart, slide
animation = border, 1, 6, quart
animation = borderangle, 1, 6, quart
animation = fade, 1, 6, quart
animation = workspaces, 1, 6, quart
}
+22
View File
@@ -0,0 +1,22 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Moving"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = overshot, 0.05, 0.9, 0.1, 1.05
bezier = smoothOut, 0.5, 0, 0.99, 0.99
bezier = smoothIn, 0.5, -0.5, 0.68, 1.5
animation = windows, 1, 5, overshot, slide
animation = windowsOut, 1, 3, smoothOut
animation = windowsIn, 1, 3, smoothOut
animation = windowsMove, 1, 4, smoothIn, slide
animation = border, 1, 5, default
animation = fade, 1, 5, smoothIn
animation = fadeDim, 1, 5, smoothIn
animation = workspaces, 1, 6, default
}
@@ -0,0 +1,43 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Optimized"
# -----------------------------------------------------
animations {
enabled = true
bezier = wind, 0.05, 0.85, 0.03, 0.97
bezier = winIn, 0.07, 0.88, 0.04, 0.99
bezier = winOut, 0.20, -0.15, 0, 1
bezier = liner, 1, 1, 1, 1
bezier = md3_standard, 0.12, 0, 0, 1
bezier = md3_decel, 0.05, 0.80, 0.10, 0.97
bezier = md3_accel, 0.20, 0, 0.80, 0.08
bezier = overshot, 0.05, 0.85, 0.07, 1.04
bezier = crazyshot, 0.1, 1.22, 0.68, 0.98
bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94
bezier = menu_decel, 0.05, 0.82, 0, 1
bezier = menu_accel, 0.20, 0, 0.82, 0.10
bezier = easeInOutCirc, 0.75, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.48, 0.38, 1
bezier = easeOutExpo, 0.10, 0.94, 0.23, 0.98
bezier = softAcDecel, 0.20, 0.20, 0.15, 1
bezier = md2, 0.30, 0, 0.15, 1
bezier = OutBack, 0.28, 1.40, 0.58, 1
bezier = easeInOutCirc, 0.78, 0, 0.15, 1
animation = border, 1, 1.6, liner
animation = borderangle, 1, 82, liner, loop
animation = windowsIn, 1, 3.2, winIn, slide
animation = windowsOut, 1, 2.8, easeOutCirc
animation = windowsMove, 1, 3.0, wind, slide
animation = fade, 1, 1.8, md3_decel
animation = layersIn, 1, 1.8, menu_decel, slide
animation = layersOut, 1, 1.5, menu_accel
animation = fadeLayersIn, 1, 1.6, menu_decel
animation = fadeLayersOut, 1, 1.8, menu_accel
animation = workspaces, 1, 4.0, menu_decel, slide
animation = specialWorkspace, 1, 2.3, md3_decel, slidefadevert 15%
}
+18
View File
@@ -0,0 +1,18 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Standard"
# credit https://github.com/mylinuxforwork/dotfiles
# -----------------------------------------------------
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
+1
View File
@@ -0,0 +1 @@
source = ./HyDE.conf
+34
View File
@@ -0,0 +1,34 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# name "Vertical"
# -----------------------------------------------------
animations {
bezier = fluent_decel, 0, 0.2, 0.4, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutCubic, 0.33, 1, 0.68, 1
bezier = easeinoutsine, 0.37, 0, 0.63, 1
# Windows
animation = windowsIn, 1, 1.5, easeinoutsine, popin 60% # window open
animation = windowsOut, 1, 1.5, easeOutCubic, popin 60% # window close.
animation = windowsMove, 1, 1.5, easeinoutsine, slide # everything in between, moving, dragging, resizing.
# Fading
animation = fade, 1, 2.5, fluent_decel
animation = fadeLayersIn, 0
animation = border, 0
# Layers
animation = layers, 1, 1.5, easeinoutsine, popin
# Workspaces
#animation = workspaces, 1, 3, fluent_decel, slidefade 30% # styles: slide, slidevert, fade, slidefade, slidefadevert
animation = workspaces, 1, 3, fluent_decel, slidefadevert 30% # styles: slide, slidevert, fade, slidefade, slidefadevert
animation = specialWorkspace, 1, 2, fluent_decel, slidefade 10%
}
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Battery readout for the hyprlock label. Prints nothing on machines without a
# battery (wm desktop), so the label just stays empty there.
for bat in /sys/class/power_supply/BAT*; do
[ -r "$bat/capacity" ] || continue
cap=$(<"$bat/capacity")
glyph="󰁹"
[ "$(cat "$bat/status" 2>/dev/null)" = "Charging" ] && glyph="󰂄"
printf '%s %s%%' "$glyph" "$cap"
exit 0
done
+4
View File
@@ -0,0 +1,4 @@
# Default (empty) per-host extras — fallback shared by all GUI hosts.
# Real host.conf comes from the per-host overlay (e.g. wm/ sources nvidia.conf here).
# Present so `source = ./host.conf` in hyprland.conf always resolves, even mid-install
# before the host overlay is stowed (avoids the transient "source globbing error").
+134
View File
@@ -0,0 +1,134 @@
#!   ░▒▒▒░░░▓▓          ___________
#! ░░▒▒▒░░░░░▓▓        //___________/
#! ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#! ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#!    ░▒▓▓   ▓▓  //____/
# Use this for reference to override the default HyDE' hyprland configuration
# ! Never source ~/.config/hypr/hyde.conf directly, it is sourced by the main configuration file
# This file acts as an override configuration for the user to set their environment variables and startup commands
# Static variable declaration in hyde.conf will be prioritized over the default and dynamic configuration
#  NOTE 
# Leaving the variable empty will unset the variable
# Commenting out the variable will use the default value
# For updated configuration options, see https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/hyde.conf
# For simplicity, ./hyde.conf ONLY accepts $ for variables and # for comments, will sanitize the file to remove any other characters
# $start.VAR , $env.VAR are ONLY HyDE specific conventions for consistency.
# Keyboard modifier
# $mainMod = SUPER # windows key
# ▄▀█ █▀█ █▀█ █▀
# █▀█ █▀▀ █▀▀ ▄█
# $QUICKAPPS = # used for quick app launcher
# $BROWSER = firefox # default browser, if commented out , will use the default browser
# $EDITOR = code # default editor, if commented out , will use the default editor
# $EXPLORER= dolphin # default file manager, if commented out , will use the default file manager
# $TERMINAL = kitty # default terminal, if commented out , will use the org.gnome.desktop.default-applications.terminal
# $LOCKSCREEN=hyprlock # default lockscreen, you can use any lockscreen you want, eg swaylock
# $IDLE=hypridle # default idle manager, you can use any idle manager you want,eg swayidle
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
# See https://wiki.hyprland.org/Configuring/Keywords/
# Override the default startup commands
# $start.XDG_PORTAL_RESET=$scrPath/resetxdgportal.sh
# $start.DBUS_SHARE_PICKER=dbus-update-activation-environment --systemd --all # for XDPH
# $start.SYSTEMD_SHARE_PICKER=systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH
# $start.BAR=waybar
# $start.NOTIFICATIONS=swaync # dunst
# $start.APPTRAY_BLUETOOTH=blueman-applet
# $start.WALLPAPER=$scrPath/swwwallpaper.sh
# $start.TEXT_CLIPBOARD=wl-paste --type text --watch cliphist store
# $start.IMAGE_CLIPBOARD=wl-paste --type image --watch cliphist store
# $start.BATTERY_NOTIFY=$scrPath/batterynotify.sh
# $start.NETWORK_MANAGER=nm-applet --indicator
# $start.REMOVABLE_MEDIA=udiskie --no-automount --smart-tray
# $start.AUTH_DIALOGUE=$scrPath/polkitkdeauth.sh
# $start.IDLE_DAEMON=$IDLE
# // █▀▀ █▄░█ █░█
# // ██▄ █░▀█ ▀▄▀
# See https://wiki.hyprland.org/Configuring/Environment-variables/
# Override the default environment variables
# # Toolkit Backend Variables - https://wiki.hyprland.org/Configuring/Environment-variables/#toolkit-backend-variables
# $env.GDK_BACKEND = wayland,x11,* #s GTK: Use wayland if available. If not: try x11, then any other GDK backend.
# # $env.QT_QPA_PLATFORM = wayland;xcb #Qt: Use wayland if available, fall back to x11 if not.
# $env.SDL_VIDEODRIVER = wayland #s Run SDL2 applications on Wayland. Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
# $env.CLUTTER_BACKEND = wayland #s Clutter package already has wayland enabled, this variable will force Clutter applications to try and use the Wayland backend
# # XDG Specifications - https://wiki.hyprland.org/Configuring/Environment-variables/#xdg-specifications
# $env.XDG_CURRENT_DESKTOP = Hyprland
# $env.XDG_SESSION_TYPE = wayland
# $env.XDG_SESSION_DESKTOP = Hyprland
# # Qt Variables - https://wiki.hyprland.org/Configuring/Environment-variables/#qt-variables
# $env.QT_AUTO_SCREEN_SCALE_FACTOR = 1 # (From the Qt documentation) enables automatic scaling, based on the monitors pixel density
# $env.QT_QPA_PLATFORM=wayland;xcb # Tell Qt applications to use the Wayland backend, and fall back to x11 if Wayland is unavailable
# $env.QT_WAYLAND_DISABLE_WINDOWDECORATION = 1 # Disables window decorations on Qt applications
# $env.QT_QPA_PLATFORMTHEME = qt6ct # Tells Qt based applications to pick your theme from qt5ct, use with Kvantum.
# # HyDE Environment Variables -
# $env.PATH =
# $env.MOZ_ENABLE_WAYLAND=1 # Enable Wayland for Firefox
# $env.GDK_SCALE=1 # Set GDK scale to 1 // For Xwayland on HiDPI
# $env.ELECTRON_OZONE_PLATFORM_HINT=auto # Set Electron Ozone Platform Hint to auto // For Electron apps on Wayland
# # XDG-DIRS
# $env.XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR
# $env.XDG_CONFIG_HOME=$HOME/.config
# $env.XDG_CACHE_HOME=$HOME/.cache
# $env.XDG_DATA_HOME=$HOME/.local/share
# These variable will override the default and the theme configuration
# Do not uncomment the variables if you want want HyDE do the theme configuration for you
# // █▀▀ ▀█▀ █▄▀
# // █▄█ ░█░ █░█
#$GTK_THEME=Wallbash-Gtk
#$ICON_THEME=Tela-circle-dracula
#$COLOR_SCHEME=prefer-dark
# // █▀▀ █░█ █▀█ █▀ █▀█ █▀█
# // █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄
#$CURSOR_THEME=Bibata-Modern-Ice
#$CURSOR_SIZE=30
# // █▀▀ █▀█ █▄░█ ▀█▀
# // █▀░ █▄█ █░▀█ ░█░
#$FONT=Canterell
#$FONT_SIZE=10
#$DOCUMENT_FONT=Cantarell
#$DOCUMENT_FONT_SIZE=10
#$MONOSPACE_FONT=CaskaydiaCove Nerd Font Mono
#$MONOSPACE_FONT_SIZE=9
#$FONT_ANTIALIASING=rgba
#$FONT_HINTING=full
# // █░░ █▀█ █▀▀ █▄▀ █▀ █▀▀ █▀█ █▀▀ █▀▀ █▄░█
# // █▄▄ █▄█ █▄▄ █░█ ▄█ █▄▄ █▀▄ ██▄ ██▄ █░▀█
#Setting the Hyprlock layout will override any layout set in the ./hypr/hyprlock.sh
# Dynamic Hyprlock layout should be set in the ./hypr/hyprlock.sh file
# $LAYOUT_PATH=/path/to/hyprlock/layout.conf
+50
View File
@@ -0,0 +1,50 @@
#!   ░▒▒▒░░░▓▓          ___________
#! ░░▒▒▒░░░░░▓▓        //___________/
#! ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#! ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#!    ░▒▓▓   ▓▓  //____/
# $LOCKSCREEN = hyprlock # preferred LOCKSCREEN e.g swaylock
$LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland
general {
lock_cmd = $LOCKSCREEN
unlock_cmd = #notify-send "unlock!" # same as above, but unlock
before_sleep_cmd = $LOCKSCREEN # command ran before sleep
after_sleep_cmd = # notify-send "Awake!" # command ran after sleep
ignore_dbus_inhibit = 0
}
# Dims the display
listener {
timeout = 120
on-timeout = { brightnessctl -s && brightnessctl s 1% ;}
on-resume = brightnessctl -r
}
# Lock it first before dpms off so that screen won't show for a moment after wake up.
listener {
timeout = 240
on-timeout = $LOCKSCREEN
}
# DPMS off
listener {
timeout = 2300
on-timeout = hyprctl dispatch dpms off #do not turn off display while media is playing
on-resume = hyprctl dispatch dpms on
}
# Suspend
# listener {
# timeout = 500
# on-timeout = systemctl suspend
# }
# hyprlang noerror true
# Source anything from this path if you want to add your own listener
# source command actually do not exist yet
source = ~/.config/hypridle/*
# hyprlang noerror false
+117
View File
@@ -0,0 +1,117 @@
$HYDE_HYPRLAND=set #! Do not remove - HyDE marker to prevent file overwrite
#!   ░▒▒▒░░░▓▓          ___________
#! ░░▒▒▒░░░░░▓▓        //___________/
#! ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#! ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#!    ░▒▓▓   ▓▓  //____/
#?  HyDE's Hyprland Configuration 
# First, let's understand the structure of the configuration file
# It is divided into 3 sections: Boilerplate, Overrides, and Users
#* 1. Boilerplate
# - This section is for the default configuration of HyDE
# - It is recommended to not change this section
# - Filepath: $XDG_DATA_HOME/share/hyde/hyprland.conf
#* 2. Overrides
# - This section is for overriding the default configuration of HyDE
# - Change this section if you intended to:
# - Change the startup and env variables
# - Stop a app/service from starting
# - Override HyDE specific variables
# - Filepath: $XDG_CONFIG_HOME/hypr/hyde.conf
#* 3. Users
# - This section is for user configuration
# - It is recommended to change this section to your liking
# - Filepath: ./keybindings.conf, ./windowrules.conf, ./monitors.conf, ./userprefs.conf
#?  Boilerplate 
source = ~/.local/share/hyde/hyprland.conf
#?  Overrides 
# Overriding startup and env variables
# To avoid breaking and conflicts, HyDE will use variables to store the env and startup variables
# See ~/.config/hypr/hyde.conf for overriding the default env and startup variables
#* startup:
# - The startup variables are the variables that are set when the shell starts
# - $start.BAR=waybar will launch waybar on startup (default waybar)
# - $start.BAR= will unset the variable
# - $start.BAR=other_bar will launch other_bar on startup, overriding the default (waybar)
#* env:
# - The env variables are the variables that are set when the shell starts
# - $env.QT_QPA_PLATFORMTHEME= will unset the variable
# - $env.QT_QPA_PLATFORMTHEME=qt6ct will set the variable to qt6ct
# for updated configuration, see the https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/hyde.conf
#?  Users 
# These files are for user configuration
# Edit the files to your liking
# Refer to https://wiki.hyprland.org
source = ./keybindings.conf # Keyboard shortcuts
source = ./windowrules.conf # Window rules
source = ./monitors.conf # Monitor configuration (from per-host overlay)
source = ./userprefs.conf # Personal hyprland configuration
source = ./host.conf # Per-host extras: nvidia, etc. (from per-host overlay)
#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄
#? █▀█ █▀▀ █▀▀ █▀▀ █▀█ █▀▀ █▄░█ █▀▀ █▀▀
#? █▀▄ ██▄ █▀░ ██▄ █▀▄ ██▄ █░▀█ █▄▄ ██▄
#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄
#?  Reference 
# Configurations below are for reference ONLY
# They are not essential for HyDE to work but can be used to enhance QOL
# Copy the config line and paste it in the Users section to use it
# This is to prevent bloating users configuration files when not needed
# // █▀▀ █▄░█ █░█
# // ██▄ █░▀█ ▀▄▀
# env = MANGOHUD,1
# env = MANGOHUD_DLSYM,1
# // █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# // █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
# bind = Ctrl+Alt+Shift, R, pass, ^(com\.obsproject\.Studio)$ # toggle obs screen recording // install obs flatpak
# bind = $mainMod+Shift, G, exec, pkill -x rofi || $scrPath/gamelauncher.sh # launch steam game launcher // install steam
# bind = $mainMod, Period, exec, emote # launch emoji selector // install emote
# bind = $mainMod+Alt, XF86MonBrightnessDown, exec, hyprshade on blue-light-filter # enable blue light filter // install hyprshade
# bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue light filter // install hyprshade
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
# exec-once = swayidle -w timeout 600 'swaylock' timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # lock after 10 mins, sleep after 15 mins // install swayidle
# exec-once = swayidle -w timeout 1200 'swaylock; hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' timeout 1800 'systemctl suspend' # lock and sleep after 20 mins, suspend after 30 mins // install swayidle
# exec-once = libinput-gestures // install libinput-gestures
# exec-once = swayosd-server # enable swayosd service
# exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)
# // █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# // ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
# // █░█ █▀▄▀█
# // ▀▄▀ █░▀░█
# bind = Ctrl+Alt_L, V, submap, passthrough
# submap = passthrough
# bind = Ctrl+Alt_L, V, submap, reset
# submap = reset
+9
View File
@@ -0,0 +1,9 @@
# Default (empty) per-host hyprlock sizes — fallback shared by all GUI hosts.
# The real one comes from the per-host overlay (see lw/.config/hypr/hyprlock-host.conf).
# Present so `source = ~/.config/hypr/hyprlock-host.conf` in hyprlock.conf always resolves,
# even mid-install before the host overlay is stowed. A missing `source` target is a hard
# parse error in hyprlang — for hyprlock that means the lock screen itself fails, so this
# file must never be deleted.
#
# gui's defaults are tuned for wm (3072x1728 logical). To override, redefine any of:
# $fsClock $fsDate $fsMeta $fsSmall $fsIcon $logoSize
+195
View File
@@ -0,0 +1,195 @@
#! █░█ █▄█ █▀█ █▀█ █░░ █▀█ █▀▀ █▄▀
#! █▀█ ░█░ █▀▀ █▀▄ █▄▄ █▄█ █▄▄ █░█
#* Hyprlock Configuration File
# Everything is anchored to the CENTRE (only the two bottom-corner labels use valign), in this
# order top to bottom: uptime, greeting, logo, input field, clock, date. The offsets spread the
# content out to the top and bottom edges. Centre-anchoring is deliberate: an earlier pass used
# TOP/BOTTOM valign bands and silently reordered the clock and date, putting the date above the
# clock and the clock half off the bottom edge — don't reintroduce that.
# Every `position` and `size` is a percentage (hyprlock accepts them: both are LAYOUTCONFIG
# values), so the arrangement scales instead of being the fixed pixel offsets it once was.
# The percentages are the old pixel offsets expressed against a 1080-tall screen.
#
# `font_size` and `image:size` are plain ints in hyprlock 0.9.6 and cannot take a
# percentage, so they can't scale on their own. They're hoisted into the variables below:
# retune those few numbers for a very different screen (they are tuned for wm, 3072x1728 logical),
# or `source` a per-host file that redefines them, as kitty.conf does with host.conf.
#
# Coordinates: +x is right, +y is UP — so centre-anchored, a positive y sits above centre.
# (For the two bottom-corner labels, valign = bottom means positive y moves up from it.)
$fontColor = rgba(255,255,255,0.5)
$fontFamily = SourceCodeVF ExtraBold
$timeFontFamily = Cantarell ExtraBold
# Type scale — tuned for wm's 3072x1728 logical screen (this file is shared with lw —
# see ToDo.md). Since these can't be
# percentages, they are the one thing to retune on a very different display: they are
# roughly clock 13%, date 2.5%, meta 1.5% of screen height.
$fsClock = 220
$fsDate = 44
$fsMeta = 26
$fsSmall = 24
$fsIcon = 40
$logoSize = 280
# Vertical positions — % of screen height from centre, + is up. Order top to bottom: uptime,
# greet, logo, input, clock, date. Deliberately pushed OUT to the edges: uptime/greet ride near
# the top, clock/date near the bottom, leaving logo + input as the only things near the middle.
# Anchored to centre rather than valign top/bottom on purpose — an earlier pass used bands and
# silently reordered the clock and date (see the header). Percentages scale, and because each
# host's font sizes are set to the same *proportion* of its screen (clock ~12.8% of height on
# both), one set of offsets gives both hosts the same layout — hence no per-host override here
# by default. Add $y* to hyprlock-host.conf if a host ever needs to differ.
$yUptime = 45%
$yGreet = 41%
$yLogo = 12%
$yInput = -5%
$yClock = -30%
$yDate = -42%
# Per-host override for the six sizes above. They are ints, not percentages, so they are the
# one thing that cannot scale itself — a host with a different panel redefines whichever it
# needs here, and everything below picks up the new value (hyprlang expands in file order).
# Shipped empty in gui/ so this always resolves even mid-install, before a host overlay is
# stowed — same idiom, and same reason, as hypr/host.conf.
source = ~/.config/hypr/hyprlock-host.conf
general {
ignore_empty_input = true
text_trim = true
}
# Dropped as of hyprlock 0.9.6 — it rejected all four as "config option does not exist"
# and carried on without them, so they never took effect:
# no_fade_in / fade_in_time -> fade-in is CLI-only now: lockscreen.sh --no-fade-in
# grade, disable_loading_bar -> no equivalent
background {
monitor =
path = ~/.config/hypr/hyprlock/assets/background.jpg
# Heavier blur than you'd expect: the wallpaper has "open source" set across its
# middle, which otherwise reads as text competing with the clock sitting on top of it.
blur_passes = 3
blur_size = 6
contrast = 0.7
brightness = 0.38
vibrancy = 0.15
vibrancy_darkness = 0.5
}
# // ▀█▀ █▀█ █▀█
# // ░█░ █▄█ █▀▀
# uptime
label {
monitor =
text = cmd[update:5000] echo "<span alpha='40%'>$(uptime -p)</span>"
color = $fontColor
font_family = $fontFamily
font_size = $fsMeta
position = 0, $yUptime
halign = center
valign = center
}
# greeting / weather
label {
monitor =
text = cmd[update:300000] echo "<span alpha='50%'>$(cat ~/.config/fish/greet.txt)</span>"
color = $fontColor
font_family = $fontFamily
font_size = $fsSmall
position = 0, $yGreet
halign = center
valign = center
}
# // █▀▄▀█ █ █▀▄ █▀▄ █░░ █▀▀
# // █░▀░█ █ █▄▀ █▄▀ █▄▄ ██▄
image {
monitor =
path = ~/.config/hypr/hyprlock/assets/logo.jpg
size = $logoSize
position = 0, $yLogo
halign = center
valign = center
reload_time = -1
reload_cmd =
}
input-field {
monitor =
size = 20%, 5%
position = 0, $yInput
halign = center
valign = center
outline_thickness = 3
dots_size = 0.08
dots_spacing = 0.2
dots_center = true
outer_color = rgba(0,0,0,0.1)
inner_color = $fontColor
fade_on_empty = true
}
# // █▄▄ █▀█ ▀█▀ ▀█▀ █▀█ █▀▄▀█
# // █▄█ █▄█ ░█░ ░█░ █▄█ █░▀░█
# date — sits BELOW the clock (-28% vs the clock's -17%), as it did before the band rewrite.
label {
monitor =
text = cmd[update:1000] echo "<span alpha='50%'>$(LC_TIME=en_US.UTF-8 date +'%A, %B %d')</span>"
color = $fontColor
font_family = $fontFamily
font_size = $fsDate
position = 0, $yDate
halign = center
valign = center
}
# clock — 17% below centre, directly under the input field, with the date below it. Centre-
# anchored, so y is the box's CENTRE and the glyphs grow both ways from it; budget for that
# when changing $fsClock, which is by far the tallest text here.
label {
monitor =
text = cmd[update:1000] echo "<span alpha='50%'>$(date +"%H:%M")</span>"
color = $fontColor
font_family = $timeFontFamily
font_size = $fsClock
position = 0, $yClock
halign = center
valign = center
shadow_passes = 1
shadow_size = 1
shadow_color = rgba(0, 0, 0, 0.5)
}
# power
label {
monitor =
text = cmd[] echo "<span alpha='50%'>⏻ </span>"
color = $fontColor
font_size = $fsIcon
onclick = systemctl poweroff
position = 3%, 3%
halign = left
valign = bottom
}
# battery (prints nothing on a desktop)
label {
monitor =
text = cmd[update:1000] echo -e "<span alpha='50%'>$(~/.config/hypr/battery.sh)</span>"
color = $fontColor
font_family = $fontFamily
font_size = $fsSmall
position = -3%, 3%
halign = right
valign = bottom
}
+132
View File
@@ -0,0 +1,132 @@
# ░▒▒▒░░░░░▓▓ ___________
# ░░▒▒▒░░░░░▓▓ //___________/
# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
# ░▒▓▓ ▓▓ //____/
$fontFamily = JetBrainsMono Nerd Font # We already have this font installed
# Resolving custom fonts
# Provide the font name and the download link separated by a pipe |
# Run font.sh resolve $LAYOUT_PATH to install the font
$resolve.font=Anurati|https://font.download/dl/font/anurati.zip
$resolve.font=Inter|https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip
background {
monitor =
color = $wallbash_pry1_rgba
path = $BACKGROUND_PATH
blur_size = 4
blur_passes = 3 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
# DAY
label {
monitor =
text = cmd[update:1000] echo "$(date +"%A" | sed 's/./&/g' | tr '[:lower:]' '[:upper:]')" # Add a thin space between each character
color = $wallbash_1xa9_rgba
font_size = 110 # Wednesday is too long
font_family = Anurati
position = 0, 100
halign = center
valign = center
}
# DATE
label {
monitor =
text = cmd[update:1000] echo "$(date +"%B %d")"
color = $wallbash_2xa9_rgba
font_size = 35
font_family = $font_family Thin
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = cmd[update:1000] echo "$(date +"%-I:%M %p")"
#text = $TIME
color = $wallbash_txt1_rgba
font_size = 20 #!
font_family = $font_family
position = 0, 150
halign = center
valign = bottom
}
# INPUT FIELD
input-field {
monitor =
size = 200, 50 #!
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = $wallbash_pry4_rgba
inner_color = $wallbash_pry2_rgba
font_color = $wallbash_3xa9_rgba
fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
check_color = $wallbash_pry4_rgba
fail_color = rgba(FF0000FF) # if authentication failed, changes outer_color and fail message color
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = true # see below
position = 0, 80
halign = center
valign = bottom
}
#User tag
label {
monitor =
text =  $USER
color = $wallbash_4xa9_rgba
font_size = 20
font_family = Inter Display Medium
position = 0, 30
halign = center
valign = bottom
}
# Battery Status if present
label {
monitor =
text = cmd[update:5000] $BATTERY_ICON
color = $wallbash_4xa9_rgba
font_size = 20
font_family = JetBrainsMono Nerd Font
position = -1%, 1%
halign = right
valign = bottom
}
# Current Keyboard Layout
label {
monitor =
text = cmd[update:1000] $KEYBOARD_LAYOUT
color = $wallbash_4xa9_rgba
font_size = 20
font_family = Inter Display Medium
position = -2%, 1%
halign = right
valign = bottom
}
@@ -0,0 +1,158 @@
# Hyprclouds from Arfan on Clouds
# By: Arfan on Clouds https://github.com/arfan-on-clouds/hyprclouds
# Modified by: The HyDE Project
$resolve.font=SF Pro Display|https://font.download/dl/font/sf-pro-display.zip
$resolve.font=AlfaSlabOne|https://font.download/dl/font/alfa-slab-one.zip
# BACKGROUND
background {
monitor =
color = $wallbash_pry1_rgba
path = $BACKGROUND_PATH
blur_size = 4
blur_passes = 3 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
# INPUT FIELD
input-field {
monitor =
size = 190, 50
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
fade_on_empty = true
font_family = SF Pro Display Bold
placeholder_text = <i><span foreground="##ffffff99"></span></i>
hide_input = false
position = 0, -170
halign = center
valign = center
outer_color = $wallbash_pry4_rgba
inner_color = $wallbash_pry2_rgba
font_color = $wallbash_3xa9_rgba
check_color = $wallbash_pry4_rgba
}
# Hour-Time
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%I")"
color = $wallbash_1xa8_rgba
shadow_passes = 3
shadow_size = 2
font_size = 100
font_family = AlfaSlabOne
position = 0, 100
halign = center
valign = center
}
# Minute-Time
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%M")"
color = $wallbash_3xa9_rgba
font_size = 100
font_family = AlfaSlabOne
shadow_passes = 3
shadow_size = 2
position = 0, -20
halign = center
valign = center
}
# Day-Date-Month
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%d %b %A")"
color = $wallbash_3xa9_rgba
shadow_passes = 3
shadow_size = 1
font_size = 12
font_family = JetBrains Mono Nerd Font Mono ExtraBold
position = 1%, -1%
halign = left
valign = top
}
# CURRENT SONG
label {
monitor =
text = cmd[update:1000] $MPRIS_TEXT # Outputs the song title when mpris is available, otherwise, it will output the splash command.
color = $wallbash_3xa9_rgba
shadow_passes = 3
shadow_size = 1
font_size = 14
font_family = JetBrains Mono Nerd, SF Pro Display Bold
position = 0, 20
halign = center
valign = bottom
}
image {
monitor =
path = $MPRIS_IMAGE
size = 80 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 0
shadow_passes = 3
shadow_size = 3
border_color = rgb(221, 221, 221)
rotate = 0 # degrees, counter-clockwise
reload_time = 0 # seconds between reloading, 0 to reload with SIGUSR2
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
position = 0, 10%
halign = center
valign = bottom
}
# Battery Status if present
label {
monitor =
text = cmd[update:5000] $BATTERY_ICON
color = $wallbash_4xa9_rgba
font_size = 20
font_family = JetBrainsMono Nerd Font
position = -1%, 1%
halign = right
valign = bottom
}
# Current Keyboard Layout
label {
monitor =
text = cmd[update:1000] $KEYBOARD_LAYOUT
color = $wallbash_4xa9_rgba
font_size = 20
font_family = JetBrains Mono Nerd, SF Pro Display Bold
position = -2%, 1%
halign = right
valign = bottom
}
# Weather
#! Put the weather command last to lessen the load time of other modules
label {
monitor =
text = cmd[update:18000000] $WEATHER_CMD
color = $wallbash_3xa9_rgba
font_size = 16
shadow_passes = 3
shadow_size = 1
font_family = JetBrains Mono Nerd, SF Pro Display Bold
position = -1%, -1%
halign = right
valign = top
}
+112
View File
@@ -0,0 +1,112 @@
# ░▒▒▒░░░░░▓▓ ___________
# ░░▒▒▒░░░░░▓▓ //___________/
# ░░▒▒▒░░░░░▓▓ _ _ _ _ _____
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | | | | __/
# ░▒▒░░░░▓▓ ▓▓ | |_| | |_/ /| |___
# ░▒▒░░▓▓ ▓▓ \__ |____/ |____/
# ░▒▓▓ ▓▓ //____/
$fontFamily = IBM Plex Sans
$resolve.font=IBM Plex Sans|https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-sans%401.1.0/ibm-plex-sans.zip
# GENERAL
background {
monitor =
path = $BACKGROUND_PATH
blur_size = 5
blur_passes = 0
noise = 0.0117
contrast = 1.3000 # Vibrant!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
# Current time
label {
monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"
color = $wallbash_2xa7_rgba
font_size = 180
font_family = $fontFamily Medium 10
position = 0, 80
halign = center
valign = center
}
label {
monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"
color = $wallbash_2xa9_rgba
font_size = 180
font_family = $fontFamily Medium 10
position = 0, -120
halign = center
valign = center
}
label {
monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%d %b") </big></b>"
color = $wallbash_2xa8_rgba
font_size = 20
font_family = $fontFamily Medium 10
position = 0, -230
halign = center
valign = center
}
label {
monitor =
text = cmd[update:1000] echo "<b><big> $(date +"%A") </big></b>"
color = $wallbash_2xa8_rgba
font_size = 20
font_family = $fontFamily Medium 10
position = 0, -250
halign = center
valign = center
}
#INPUT FIELD
input-field {
monitor =
# size = 15%, 5% # hyprlock-git
size = 200, 50
outline_thickness = 3
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 1.00 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = $wallbash_pry2_rgba
inner_color = $wallbash_pry3_rgba
font_color = $color7
fade_on_empty = true
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
position = 0, 60
halign = center
valign = bottom
}
# Battery Status if present
label {
monitor =
text = cmd[update:5000] $BATTERY_ICON
color = $wallbash_4xa9_rgba
font_size = 20
font_family = JetBrainsMono Nerd Font
position = -1%, 1%
halign = right
valign = bottom
}
# Current Keyboard Layout
label {
monitor =
text = cmd[update:1000] $KEYBOARD_LAYOUT
color = $wallbash_4xa9_rgba
font_size = 20
font_family = $fontFamily
position = -2%, 1%
halign = right
valign = bottom
}
+161
View File
@@ -0,0 +1,161 @@
# Hyprlock style-4
# By: Vivek Rajan https://github.com/MrVivekRajan/Hyprlock-Styles/tree/main/Style-4
# Modified by: The HyDE Project
$resolve.font=SF Pro Display|https://font.download/dl/font/sf-pro-display.zip
# BACKGROUND
background {
monitor =
path = $BACKGROUND_PATH
blur_passes = 0
contrast = 0.8916
brightness = 0.8916
vibrancy = 0.8916
vibrancy_darkness = 0.0
}
# GENERAL
general {
no_fade_in = false
grace = 0
disable_loading_bar = false
}
# Profile-Photo
image {
monitor =
path = $PROFILE_IMAGE
border_size = 2
border_color = $wallbash_pry4_rgba
size = 100
rounding = -1
rotate = 0
reload_time = -1
reload_cmd =
position = 25, 200
halign = center
valign = center
}
# NAME
label {
monitor =
text = cmd[update:60000] $GREET_TEXT
color = $wallbash_txt1_rgba
outline_thickness = 0
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
font_size = 20
font_family = SF Pro Display Bold
position = 25, 110
halign = center
valign = center
}
# Time
label {
monitor =
text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"
color = $wallbash_txt1_rgba
font_size = 60
font_family = SF Pro Display Bold
position = 30, -8
halign = center
valign = center
}
# Day-Month-Date
label {
monitor =
text = cmd[update:1000] echo -e "$(date +"%A, %B %d")"
color = $wallbash_txt1_rgba
font_size = 19
font_family = SF Pro Display Bold
position = 35, -60
halign = center
valign = center
}
# USER-BOX
shape {
monitor =
size = 320, 55
color = rgba(255, 255, 255, 0.1)
rounding = -1
border_size = 0
border_color = $wallbash_txt3_rgba
rotate = 0
xray = false # if true, make a "hole" in the background (rectangle of specified size, no rotation)
position = 34, -190
halign = center
valign = center
}
# USER
label {
monitor =
text =  $USER
color = $wallbash_1xa9_rgba
outline_thickness = 0
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
font_size = 16
font_family = SF Pro Display Bold
position = 38, -190
halign = center
valign = center
}
# INPUT FIELD
input-field {
monitor =
size = 320, 55
outline_thickness = 0
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(255, 255, 255, 0)
inner_color = rgba(255, 255, 255, 0.1)
font_color = $wallbash_2xa6_rgba
fade_on_empty = false
font_family = SF Pro Display Bold
placeholder_text = <i><span foreground="##ffffff99">🔒 Enter Pass</span></i>
hide_input = false
position = 34, -268
halign = center
valign = center
check_color = $wallbash_txt4_rgba
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
}
# Battery Status if present
label {
monitor =
text = cmd[update:5000] $BATTERY_ICON
color = $wallbash_4xa9_rgba
font_size = 20
font_family = JetBrainsMono Nerd Font
position = -1%, 1%
halign = right
valign = bottom
}
# Current Keyboard Layout
label {
monitor =
text = cmd[update:1000] $KEYBOARD_LAYOUT
color = $wallbash_4xa9_rgba
font_size = 20
font_family = SF Pro Display Bold
position = -2%, 1%
halign = right
valign = bottom
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

+1
View File
@@ -0,0 +1 @@
source = ./HyDE.conf
+265
View File
@@ -0,0 +1,265 @@
## █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
## █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
# see https://wiki.hyprland.org/configuring/keywords/ for more
# example binds, see https://wiki.hyprland.org/configuring/binds/ for more
# Grouping of binds for easier management
# $d=[Group Name|Subgroup Name1|Subgroup Name2|...]
# '$d' is a variable that is used to group binds together (or use another variable)
# This is only for organization purposes and is not a defined hyprland variable
# What we did here is to modify the Description of the binds to include the group name
# The $d will be parsed as a separate key to be use for a GUI or something pretty
# [Main|Subgroup1|Subgroup2|...]
# Main - The main groupname
# Subgroup1.. - The subgroup names can be use to avoid repeating the same description
#*  Variables 
# Default if commented out
# $mainMod = Super # super / meta / windows key
# Assign apps
# $TERMINAL = kitty
# $EDITOR = code
# $EXPLORER = dolphin
# $BROWSER = firefox
$wm=Window Management
$d=[$wm]
bindd = $mainMod, Q, $d close focused window, exec, $scrPath/dontkillsteam.sh
bindd = Alt, F4, $d close focused window, exec, $scrPath/dontkillsteam.sh
bindd = $mainMod, Delete, $d kill hyprland session, exit
bindd = $mainMod, W, $d toggle float, togglefloating, #
bindd = $mainMod Shift, G, $d toggle group, togglegroup
bindd = Shift, F11, $d toggle fullscreen, fullscreen
bindd = Alt, Return, $d toggle fullscreen, fullscreen
bindd = $mainMod, L, $d lock screen, exec, lockscreen.sh
bindd = $mainMod Shift, F, $d toggle pin on focused window, exec, $scrPath/window.pin.sh
bindd = Control Alt, Delete, $d logout menu, exec, $scrPath/logoutlaunch.sh
bindd = Control Alt, W, $d toggle waybar, exec, killall waybar || waybar -c ~/.config/waybar/layouts/custom.jsonc -s ~/.config/waybar/layouts/custom.css
# bindd = Control Alt, W, $d toggle waybar, exec, hyde-shell waybar --hide
# bindd = Alt_R, Control_R, W, $d toggle waybar and reload config, exec, killall waybar || (env reload_flag=1 $scrPath/wbarconfgen.sh) # was throwing error
# bindd = ALT_R, Control_R,toggle waybar, exec, killall waybar || waybar # toggle waybar without reloading, this is faster
$d=[$wm|Group Navigation]
bindd = $mainMod Control, H, $d change active group backwards , changegroupactive, b
bindd = $mainMod Control, L, $d change active group forwards , changegroupactive, f
$d=[$wm|Change focus]
bindd = $mainMod, Left, $d focus left, movefocus, l
bindd = $mainMod, Right, $d focus right , movefocus, r
bindd = $mainMod, Up, $d focus up , movefocus, u
bindd = $mainMod, Down , $d focus down, movefocus, d
bindd = $mainMod Control, Left, $d focus left, movefocus, l
bindd = $mainMod Control, Right, $d focus right , movefocus, r
bindd = $mainMod Control, Up, $d focus up , movefocus, u
bindd = $mainMod Control, Down, $d focus down, movefocus, d
# Super+Ctrl h/l intentionally share a combo with Group Navigation above: hyprland fires
# every bind matching a combo, and changegroupactive is a no-op outside a group.
bindd = $mainMod Control, h, $d focus left, movefocus, l
bindd = $mainMod Control, l, $d focus right , movefocus, r
bindd = $mainMod Control, k, $d focus up , movefocus, u
bindd = $mainMod Control, j , $d focus down, movefocus, d
bindd = Alt Control, Left, $d focus left, movefocus, l
bindd = Alt Control, Right, $d focus right , movefocus, r
bindd = Alt Control, Up, $d focus up , movefocus, u
bindd = Alt Control, Down, $d focus down, movefocus, d
bindd = Alt Control, h, $d focus left, movefocus, l
bindd = Alt Control, l, $d focus right , movefocus, r
bindd = Alt Control, k, $d focus up , movefocus, u
bindd = Alt Control, j , $d focus down, movefocus, d
bindd = Alt, Tab, $d focus , movefocus, d
$d=[$wm|Resize Active Window]
# Resize windows
bindde = $mainMod Shift, Right, $d resize window right , resizeactive, 30 0
bindde = $mainMod Shift, Left, $d resize window left, resizeactive, -30 0
bindde = $mainMod Shift, Up, $d resize window up, resizeactive, 0 -30
bindde = $mainMod Shift, Down, $d resize window down, resizeactive, 0 30
bindde = $mainMod Shift, l, $d resize window right , resizeactive, 30 0
bindde = $mainMod Shift, h, $d resize window left, resizeactive, -30 0
bindde = $mainMod Shift, k, $d resize window up, resizeactive, 0 -30
bindde = $mainMod Shift, j, $d resize window down, resizeactive, 0 30
# Move active window around current workspace with mainMod + Shift + Control [←→↑↓]
$d=[$wm|Move active window across workspace]
$moveactivewindow=grep -q "true" <<< $(hyprctl activewindow -j | jq -r .floating) && hyprctl dispatch moveactive
bindde = $mainMod Alt, left, Move activewindow to the left, exec, $moveactivewindow -30 0 || hyprctl dispatch swapwindow l
bindde = $mainMod Alt, right, Move activewindow to the right, exec, $moveactivewindow 30 0 || hyprctl dispatch swapwindow r
bindde = $mainMod Alt, up, Move activewindow up, exec, $moveactivewindow 0 -30 || hyprctl dispatch swapwindow u
bindde = $mainMod Alt, down, Move activewindow down, exec, $moveactivewindow 0 30 || hyprctl dispatch swapwindow d
bindde = $mainMod Alt, h, Move activewindow to the left, exec, $moveactivewindow -30 0 || hyprctl dispatch swapwindow l
bindde = $mainMod Alt, l, Move activewindow to the right, exec, $moveactivewindow 30 0 || hyprctl dispatch swapwindow r
bindde = $mainMod Alt, k, Move activewindow up, exec, $moveactivewindow 0 -30 || hyprctl dispatch swapwindow u
bindde = $mainMod Alt, j, Move activewindow down, exec, $moveactivewindow 0 30 || hyprctl dispatch swapwindow d
# (Super+Alt+Ctrl h/l belong to "move window to relative workspace" below; the movewindow
# variant duplicated the swapwindow block above and double-fired with those binds)
# Move/Resize focused window
$d=[$wm|Move & Resize with mouse]
binddm = $mainMod, mouse:272, $d hold to move window, movewindow
binddm = $mainMod, mouse:273, $d hold to resize window, resizewindow
binddm = $mainMod, Z, $d hold to move window , movewindow
binddm = $mainMod, X, $d hold to resize window, resizewindow
# Toggle focused window split
$d=[$wm]
bindd = $mainMod, J, $d toggle split, layoutmsg, togglesplit
$l=Launcher
$d=[$l|Apps]
bindd = $mainMod, T, $d terminal emulator , exec, $TERMINAL
bindd = $mainMod Shift, T, $d terminal emulator , exec, alacritty
bindd = Control Alt, T, $d terminal emulator , exec, $TERMINAL
# bindd = Control Shift, Alt, T, $d terminal emulator , exec, tilix # launch tilix terminal emulator - using for ssh
bindd = $mainMod Control, T, $d terminal emulator, exec, tilix # launch tilix terminal emulator
# bindd = $mainMod, R, $d pyradio, exec, $TERMINAL pyradio #radio
bindd = $mainMod, I, $d work, exec, kitty --session ~/.config/kitty/c2.conf
bindd = $mainMod, O, $d work, exec, kitty --session ~/.config/kitty/runners.conf
bindd = $mainMod, R, $d pyradio, exec, kitty --session ~/.config/kitty/music.conf
bindd = $mainMod, E, $d file explorer , exec, $EXPLORER
bindd = $mainMod, C, $d neovim, exec, $TERMINAL nvim #editor
bindd = $mainMod, B, $d web browser , exec, $BROWSER
bindd = $mainMod Shift, B, $d web browser , exec, librewolf
bindd = $mainMod Control, B, $d web browser , exec, firefox
bindd = $mainMod, Y, $d ferdium, exec, ferdium
bindd = Control Shift, Escape, $d system monitor , exec, $scrPath/sysmonlaunch.sh
bindd = $mainMod, F, $d freetube , exec, freetube # youtube alternative
bindd = $mainMod, K, $d password manager , exec, keepassxc # launch password manager
bindd = $mainMod, G, $d xmpp, exec, gajim # launch messanger
bindd = $mainMod, M, $d betterbird, exec, betterbird
# bindd = $mainMod, M, exec, $notes # launch notes app
# bindd = Ctrl+Shift, Escape, exec, $scrPath/sysmonlaunch.sh # launch system monitor (htop/btop or fallback to top)
$d=[$l|Rofi menus]
$rofi-launch=$scrPath/rofilaunch.sh
bindd = $mainMod, A, $d application finder , exec, pkill -x rofi || $rofi-launch d
bindd = $mainMod, TAB, $d window switcher , exec, pkill -x rofi || $rofi-launch w
bindd = $mainMod Shift, E, $d file finder , exec, pkill -x rofi || $rofi-launch f
bindd = $mainMod, slash, $d keybindings hint, exec, pkill -x rofi || $scrPath/keybinds_hint.sh c # launch keybinds hint
bindd = $mainMod, comma, $d emoji picker , exec, pkill -x rofi || $scrPath/emoji-picker.sh # launch emoji picker
bindd = $mainMod, period, $d glyph picker , exec, pkill -x rofi || $scrPath/glyph-picker.sh # launch glyph picker
bindd = $mainMod, V, $d clipboard , exec, pkill -x rofi || $scrPath/cliphist.sh -c # launch clipboard,
bindd = $mainMod Shift, V, $d clipboard manager , exec, pkill -x rofi || $scrPath/cliphist.sh # launch clipboard Manager
bindd = $mainMod Shift, A, $d select rofi launcher , exec, pkill -x rofi || $scrPath/rofiselect.sh # launch select menu
$hc=Hardware Controls
$d=[$hc|Audio]
binddl = , F10, $d toggle mute output , exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
binddl = , XF86AudioMute,$d toggle mute output, exec, $scrPath/volumecontrol.sh -o m # toggle audio mute
# binddel = , F11, $d decrease volume , exec, $scrPath/volumecontrol.sh -o d # decrease volume
# binddel = , F12, $d increase volume , exec, $scrPath/volumecontrol.sh -o i # increase volume
binddl = , XF86AudioMicMute,$d un/mute microphone , exec, $scrPath/volumecontrol.sh -i m # toggle microphone mute
binddel = , XF86AudioLowerVolume, $d decrease volume , exec, $scrPath/volumecontrol.sh -o d # decrease volume
binddel = , XF86AudioRaiseVolume, $d increase volume , exec, $scrPath/volumecontrol.sh -o i # increase volume
$d=[$hc|Media]
binddl = , XF86AudioPlay,$d play media, exec, playerctl play-pause # toggle between media play and pause
binddl = , XF86AudioPause,$d pause media, exec, playerctl play-pause # toggle between media play and pause
binddl = , XF86AudioNext,$d next media , exec, playerctl next # media next
binddl = , XF86AudioPrev,$d previous media , exec, playerctl previous # media previous
$d=[$hc|Brightness]
binddel = , XF86MonBrightnessUp, $d increase brightness , exec, $scrPath/brightnesscontrol.sh i # increase brightness
binddel = , XF86MonBrightnessDown, $d decrease brightness , exec, $scrPath/brightnesscontrol.sh d # decrease brightness
$ut=Utilities
$d=[$ut]
# binddl = $mainMod, K, $d toggle keyboard layout , exec, $scrPath/keyboardswitch.sh # switch keyboard layout
bindd = $mainMod Alt, G, $d game mode , exec, $scrPath/gamemode.sh # disable hypr effects for gamemode
$d=[$ut|Screen Capture]
bindd = $mainMod Shift, P, $d color picker, exec, hyprpicker -an # Pick color (Hex) >> clipboard#
bindd = $mainMod, P, $d snip screen , exec, $scrPath/screenshot.sh s # partial screenshot capture
bindd = $mainMod Control, P, $d freeze and snip screen, exec, $scrPath/screenshot.sh sf # partial screenshot capture (frozen screen)
binddl = $mainMod Alt, P, $d print monitor , exec, $scrPath/screenshot.sh m # monitor screenshot capture
binddl = , Print, $d print all monitors , exec, $scrPath/screenshot.sh p # all monitors screenshot capture
# TODO Make a main rofi menu for these selectors
$rice=Theming and Wallpaper
$d=[$rice]
bindd = $mainMod Alt Control Shift, Right, $d next global wallpaper , exec, $scrPath/wallpaper.sh -Gn # next global wallpaper
bindd = $mainMod Alt Control Shift, Left, $d previous global wallpaper , exec, $scrPath/wallpaper.sh -Gp # previous global wallpaper
bindd = $mainMod Shift, W, $d select a global wallpaper , exec, pkill -x rofi || $scrPath/wallpaper.sh -SG # launch wallpaper select menu
# bindd = $mainMod Alt, Up, $d next waybar layout , exec, $scrPath/wbarconfgen.sh n # next waybar mode
# bindd = $mainMod Alt, Down, $d previous waybar layout , exec, $scrPath/wbarconfgen.sh p # previous waybar mode
bindd = $mainMod Shift, R, $d reload hyprland + waybar, exec, hyprctl reload; killall waybar; setsid -f waybar -c ~/.config/waybar/layouts/custom.jsonc -s ~/.config/waybar/layouts/custom.css
# bindd = $mainMod Shift, R, $d wallbash mode selector , exec, pkill -x rofi || $scrPath/wallbashtoggle.sh -m # (HyDE default; needs framework)
# bindd = $mainMod Shift, T, $d select a theme, exec, pkill -x rofi || $scrPath/themeselect.sh # launch theme select menu
$ws=Workspaces
$d=[$ws|Navigation]
bindd = $mainMod, 1, $d navigate to workspace 1 , workspace, r~1
bindd = $mainMod, 2, $d navigate to workspace 2 , workspace, r~2
bindd = $mainMod, 3, $d navigate to workspace 3 , workspace, r~3
bindd = $mainMod, 4, $d navigate to workspace 4 , workspace, r~4
bindd = $mainMod, 5, $d navigate to workspace 5 , workspace, r~5
bindd = $mainMod, 6, $d navigate to workspace 6 , workspace, r~6
bindd = $mainMod, 7, $d navigate to workspace 7 , workspace, r~7
bindd = $mainMod, 8, $d navigate to workspace 8 , workspace, r~8
bindd = $mainMod, 9, $d navigate to workspace 9 , workspace, r~9
bindd = $mainMod, 0, $d navigate to workspace 10 , workspace, r~10
$d=[$ws|Navigation|Relative workspace]
bindd = $mainMod Control Shift, Right, $d change active workspace forwards , workspace, r+1
bindd = $mainMod Control Shift, Left, $d change active workspace backwards , workspace, r-1
bindd = $mainMod Control Shift, L, $d change active workspace forwards , workspace, r+1
bindd = $mainMod Control Shift, H, $d change active workspace backwards , workspace, r-1
$d=[$ws|Navigation]
# E for "empty" — Super+Ctrl+Down is taken by movefocus above
bindd = $mainMod Control, E, $d navigate to the nearest empty workspace , workspace, empty
# Move focused window to a workspace
$d=[$ws|Move window to workspace]
bindd = $mainMod Control, 1, $d move to workspace 1 , movetoworkspace, r~1
bindd = $mainMod Control, 2, $d move to workspace 2 , movetoworkspace, r~2
bindd = $mainMod Control, 3, $d move to workspace 3 , movetoworkspace, r~3
bindd = $mainMod Control, 4, $d move to workspace 4 , movetoworkspace, r~4
bindd = $mainMod Control, 5, $d move to workspace 5 , movetoworkspace, r~5
bindd = $mainMod Control, 6, $d move to workspace 6 , movetoworkspace, r~6
bindd = $mainMod Control, 7, $d move to workspace 7 , movetoworkspace, r~7
bindd = $mainMod Control, 8, $d move to workspace 8 , movetoworkspace, r~8
bindd = $mainMod Control, 9, $d move to workspace 9 , movetoworkspace, r~9
bindd = $mainMod Control, 0, $d move to workspace 10 , movetoworkspace, r~10
# Move focused window to a relative workspace
$d=[$ws]
bindd = $mainMod Control Alt, Right, $d move window to next relative workspace , movetoworkspace, r+1
bindd = $mainMod Control Alt, Left, $d move window to previous relative workspace , movetoworkspace, r-1
bindd = $mainMod Control Alt, l, $d move window to next relative workspace , movetoworkspace, r+1
bindd = $mainMod Control Alt, h, $d move window to previous relative workspace , movetoworkspace, r-1
# Scroll through existing workspaces
$d=[$ws|Navigation]
bindd = $mainMod, mouse_down, $d next workspace, workspace, e+1
bindd = $mainMod, mouse_up, $d previous workspace, workspace, e-1
# Move/Switch to special workspace (scratchpad)
$d=[$ws|Navigation|Special workspace]
bindd = $mainMod Shift, S, $d move to scratchpad , movetoworkspace, special
bindd = $mainMod Alt, S, $d move to scratchpad (silent) , movetoworkspacesilent, special
bindd = $mainMod, S, $d toggle scratchpad , togglespecialworkspace
# Move focused window to a workspace silently
$d=[$ws|Navigation|Move window silently]
bindd = $mainMod Alt, 1, $d move to workspace 1 (silent), movetoworkspacesilent, r~1
bindd = $mainMod Alt, 2, $d move to workspace 2 (silent), movetoworkspacesilent, r~2
bindd = $mainMod Alt, 3, $d move to workspace 3 (silent), movetoworkspacesilent, r~3
bindd = $mainMod Alt, 4, $d move to workspace 4 (silent), movetoworkspacesilent, r~4
bindd = $mainMod Alt, 5, $d move to workspace 5 (silent), movetoworkspacesilent, r~5
bindd = $mainMod Alt, 6, $d move to workspace 6 (silent), movetoworkspacesilent, r~6
bindd = $mainMod Alt, 7, $d move to workspace 7 (silent), movetoworkspacesilent, r~7
bindd = $mainMod Alt, 8, $d move to workspace 8 (silent), movetoworkspacesilent, r~8
bindd = $mainMod Alt, 9, $d move to workspace 9 (silent), movetoworkspacesilent, r~9
bindd = $mainMod Alt, 0, $d move to workspace 10 (silent), movetoworkspacesilent, r~10
$d=#! unset the group name
+6
View File
@@ -0,0 +1,6 @@
# Default monitor config (fallback shared by all GUI hosts).
# Per-host overlays (lw/, wm/, fl/, …) override this with their own monitors.conf via
# stow --override. It exists here so `source = ./monitors.conf` in hyprland.conf always
# resolves — even mid-install, before the host overlay is stowed (avoids the transient
# "source globbing error: found no match").
monitor = , preferred, auto, 1
+43
View File
@@ -0,0 +1,43 @@
# █░█ █▀ █▀▀ █▀█   █▀█ █▀█ █▀▀ █▀▀ █▀
# █▄█ ▄█ ██▄ █▀▄   █▀▀ █▀▄ ██▄ █▀░ ▄█
# Set your personal hyprland configuration here
# BAR BLUR
#
# The blur behind the bars only ever came from HyDE's *generated* `hypr/themes/theme.conf`,
# which this repo deliberately does not carry (HyDE writes it per host) — so without this
# block the bars have no blur behind them. That generated file also still ships the pre-0.45
# form (`layerrule = blur,waybar`), which current hyprland rejects; HyDE wraps the source in
# `hyprlang noerror true`, so it fails silently either way. Re-declared here in the current
# `<rule>,match:namespace <ns>` syntax, matching windowrules.conf. `layerrule` is additive.
# Keep comments on their own lines: a trailing one is parsed as part of the value.
# (`cavabar` is the standalone cava bar from waybar/layouts/custom.jsonc.)
layerrule = blur true,match:namespace waybar
layerrule = ignore_alpha 0,match:namespace waybar
layerrule = blur true,match:namespace cavabar
layerrule = ignore_alpha 0,match:namespace cavabar
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
# (xremap lives in lw's host.conf — it's the only host with an xremap config; wm uses evremap)
env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket # ssh on start
env = ELECTRON_OZONE_PLATFORM_HINT,x11 # Disable after hyprland fixes electron flickering
exec-once = waybar -c ~/.config/waybar/layouts/custom.jsonc -s ~/.config/waybar/layouts/custom.css
# (No static `noanim` layerrule: current Hyprland rejects it in the match: syntax, and
# grimblast already suppresses selection animation at runtime via `hyprctl keyword layerrule`.)
# I know there is like two 'solutions' already, so have third one - (tested GTX 1060, 555.58.02 drivers) - run flickery apps with --disable-gpu-compositing. This makes apps slightly less smooth (GPU still used tho), but fixes the issue. I think this is better then to disable damage_tracking, which works too.
# render {
# explicit_sync = 1
# explicit_sync_kms = 1
# direct_scanout = no
# }
+145
View File
@@ -0,0 +1,145 @@
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
# See https://wiki.hypr.land/Configuring/Window-Rules/
#? ------- WINDOWRULES_HYPRLAND_V_0_53 COMPATIBLE ----------------
# This Config is compatible with windowrules changes in Hyprland v0.53+
# Any future breaking changes disables this block and notifies the user to update.
# User template files will be provided in $XDG_DATA_HOME/hyde/templates/hypr/windowrules.conf for manual update.
# hyprlang if WINDOWRULES_HYPRLAND_V_0_53
# idle_inhibit rules
windowrule = idle_inhibit fullscreen, match:class ^(.*celluloid.*)$|^(.*mpv.*)$|^(.*vlc.*)$
windowrule = idle_inhibit fullscreen, match:class ^(.*[Ss]potify.*)$
windowrule = idle_inhibit fullscreen, match:class ^(.*LibreWolf.*)$|^(.*floorp.*)$|^(.*brave-browser.*)$|^(.*firefox.*)$|^(.*chromium.*)$|^(.*zen.*)$|^(.*vivaldi.*)$
# Picture-in-Picture
windowrule {
name = hyde_picture_in_picture
match:title = ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
tag = +picture-in-picture
tag = +hyde_picture_in_picture
float = true
keep_aspect_ratio = true
move = (monitor_w*0.73) (monitor_h*0.72)
size = (monitor_w*0.25) (monitor_h*0.25)
pin = true
}
windowrule = opacity 0.90 $& 0.90 $& 1,match:class ^(firefox)$
windowrule = opacity 0.90 $& 0.90 $& 1,match:class ^(zen)$
windowrule = opacity 0.90 $& 0.90 $& 1,match:class ^(brave-browser)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(code-oss)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^([Cc]ode)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(code-url-handler)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(code-insiders-url-handler)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(kitty)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(org.kde.dolphin)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(org.kde.ark)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(nwg-look)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(qt5ct)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(qt6ct)$
windowrule = opacity 0.80 $& 0.80 $& 1,match:class ^(kvantummanager)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(org.pulseaudio.pavucontrol)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(blueman-manager)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(nm-applet)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(nm-connection-editor)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(hyprpolkitagent)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(org.freedesktop.impl.portal.desktop.gtk)$
windowrule = opacity 0.80 $& 0.70 $& 1,match:class ^(org.freedesktop.impl.portal.desktop.hyprland)$
windowrule = opacity 0.70 $& 0.70 $& 1,match:class ^([Ss]team)$
windowrule = opacity 0.70 $& 0.70 $& 1,match:class ^(steamwebhelper)$
windowrule = opacity 0.70 $& 0.70 $& 1,match:class ^([Ss]potify)$
windowrule = opacity 0.70 $& 0.70 $& 1,match:initial_title ^(Spotify Free)$
windowrule = opacity 0.70 $& 0.70 $& 1,match:initial_title ^(Spotify Premium)$
windowrule = opacity 1.00 $& 1.00 $& 1,match:class ^(blender)$
windowrule = opacity 0.90 0.90,match:class ^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrule = opacity 0.80 0.80,match:class ^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
windowrule = opacity 0.80 0.80,match:class ^(hu.kramo.Cartridges)$ # Cartridges-Gtk
windowrule = opacity 0.80 0.80,match:class ^(com.obsproject.Studio)$ # Obs-Qt
windowrule = opacity 0.80 0.80,match:class ^(gnome-boxes)$ # Boxes-Gtk
windowrule = opacity 0.80 0.80,match:class ^(vesktop)$ # Vesktop
windowrule = opacity 0.80 0.80,match:class ^(discord)$ # Discord-Electron
windowrule = opacity 0.80 0.80,match:class ^(WebCord)$ # WebCord-Electron
windowrule = opacity 0.80 0.80,match:class ^(ArmCord)$ # ArmCord-Electron
windowrule = opacity 0.80 0.80,match:class ^(app.drey.Warp)$ # Warp-Gtk
windowrule = opacity 0.80 0.80,match:class ^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrule = opacity 0.80 0.80,match:class ^(yad)$ # Protontricks-Gtk
windowrule = opacity 0.80 0.80,match:class ^(Signal)$ # Signal-Gtk
windowrule = opacity 0.80 0.80,match:class ^(io.github.alainm23.planify)$ # planify-Gtk
windowrule = opacity 0.80 0.80,match:class ^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrule = opacity 0.80 0.80,match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk
windowrule = opacity 0.80 0.80,match:class ^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
windowrule = opacity 0.80 0.80,match:class ^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
windowrule = opacity 0.80 0.80,match:class ^(io.github.flattool.Warehouse)$ # Warehouse-Gtk
windowrule = float true,match:class ^(Signal)$ # Signal-Gtk
windowrule = float true,match:class ^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrule = float true,match:class ^(app.drey.Warp)$ # Warp-Gtk
windowrule = float true,match:class ^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrule = float true,match:class ^(yad)$ # Protontricks-Gtk
windowrule = float true,match:class ^(eog)$ # Imageviewer-Gtk
windowrule = float true,match:class ^(io.github.alainm23.planify)$ # planify-Gtk
windowrule = float true,match:class ^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrule = float true,match:class ^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
windowrule = float true,match:class ^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk
windowrule = float true,match:class ^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk
windowrule = float true,match:title ^(Friends List)$ # Steam Friends List
windowrule = float true,match:title ^(Steam Settings)$ # Steam Settings
windowrule = float true,match:initial_title ^(Image Editor)$,match:class ^(blender)$ # Blender Render
windowrule = size (monitor_w*0.5) (monitor_h*0.5),match:initial_title ^(Image Editor)$,match:class ^(blender)$
windowrule = float true, match:initial_title ^(Ghidra: NO ACTIVE PROJECT) #Ghidra Project manager
# workaround for jetbrains IDEs dropdowns/popups cause flickering
windowrule = no_initial_focus true,match:class ^(.*jetbrains.*)$,match:title ^(win[0-9]+)$
# █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀
# █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█
layerrule = blur true,match:namespace rofi
layerrule = ignore_alpha 0,match:namespace rofi
layerrule = blur true,match:namespace notifications
layerrule = ignore_alpha 0,match:namespace notifications
layerrule = blur true,match:namespace swaync-notification-window
layerrule = ignore_alpha 0,match:namespace swaync-notification-window
layerrule = blur true,match:namespace swaync-control-center
layerrule = ignore_alpha 0,match:namespace swaync-control-center
layerrule = blur true,match:namespace logout_dialog
# █▀▄ █▀█ ▀█▀ █▀ █▀▀ █░█ █▀ ▀█▀ █▀█ █▀▄▀█
# █▄▀ █▄█ ░█░ ▄█ █▄▄ █▄█ ▄█ ░█░ █▄█ █░▀░█
# dots-only rules preserved from the legacy windowrules.conf (converted to v0.53 syntax)
# float utility / settings / dialog windows
windowrule = float true,match:class ^(org.kde.dolphin)$,match:title ^(Progress Dialog — Dolphin)$
windowrule = float true,match:class ^(org.kde.dolphin)$,match:title ^(Copying — Dolphin)$
windowrule = float true,match:title ^(About Mozilla Firefox)$
windowrule = float true,match:class ^(firefox)$,match:title ^(Library)$
windowrule = float true,match:class ^(kitty)$,match:title ^(top)$
windowrule = float true,match:class ^(kitty)$,match:title ^(btop)$
windowrule = float true,match:class ^(kitty)$,match:title ^(htop)$
windowrule = float true,match:class ^(vlc)$
windowrule = float true,match:class ^(kvantummanager)$
windowrule = float true,match:class ^(qt5ct)$
windowrule = float true,match:class ^(qt6ct)$
windowrule = float true,match:class ^(nwg-look)$
windowrule = float true,match:class ^(org.kde.ark)$
windowrule = float true,match:class ^(org.pulseaudio.pavucontrol)$
windowrule = float true,match:class ^(blueman-manager)$
windowrule = float true,match:class ^(nm-applet)$
windowrule = float true,match:class ^(nm-connection-editor)$
windowrule = float true,match:class ^(org.kde.polkit-kde-authentication-agent-1)$
windowrule = float true,match:class ^(xdg-desktop-portal-gtk)$
# common file-dialog modals
windowrule = float true,match:title ^(Open)$
windowrule = float true,match:title ^(Choose Files)$
windowrule = float true,match:title ^(Save As)$
windowrule = float true,match:title ^(Confirm to replace files)$
windowrule = float true,match:title ^(File Operation Progress)$
# hyprlang endif
+2
View File
@@ -0,0 +1,2 @@
# Per-host kitty overrides. Empty by default — a host overlay (e.g. lw/) replaces this file
# to tweak font_size/padding/opacity for that machine. kitty.conf includes it LAST.
+21
View File
@@ -0,0 +1,21 @@
include theme.conf
font_size 12.0
font_family CaskaydiaCove Nerd Font Mono
bold_font auto
italic_font auto
bold_italic_font auto
window_padding_width 25
enable_audio_bell no
cursor_trail 1
cursor_blink_interval 0.4 ease-in-out
tab_bar_style powerline
tab_powerline_style slanted
confirm_os_window_close 0
#background_opacity 0.60
#hide_window_decorations yes
# Per-host overrides (font_size, padding, opacity…) — included last so it wins.
include host.conf
+20
View File
@@ -0,0 +1,20 @@
# run with `kitty --session ~/.config/kitty/music.conf`
# os_window_size 220c 64c
# create a new tab
new_tab music
layout splits
# set the working directory for windows in the current tab
cd ~
# Splits are sized with --bias (a percentage of the space being split) rather
# than `resize_window taller/wider N`: that takes N *cells*, so on a small window
# N swamps the available space and the other pane collapses to nothing -- cava
# was disappearing. --bias keeps the same proportions at any window size.
# Tune: --bias here is the share the *new* pane takes; cava gets the remainder.
launch --var window=first cava
# create additional terminals
launch --location=hsplit --bias 80 pyradio
focus
launch --location=vsplit --bias 65 pipes-rs
+61
View File
@@ -0,0 +1,61 @@
# The basic colors
foreground #ffffff
background #262335
selection_foreground #262335
selection_background #f97e72
# Cursor colors
cursor #f97e72
cursor_text_color #262335
# URL underline color when hovering with mouse
url_color #f97e72
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Colors for marks (marked text in the terminal)
mark1_foreground #262335
mark1_background #614D85
mark2_foreground #262335
mark2_background #614D85
mark3_foreground #262335
mark3_background #614D85
# The 16 terminal colors
# black
color0 #232530
# bright-black = dim/secondary text (menus, comments); was #232530 ≈ background so it
# rendered invisible. Lifted to the theme's muted lavender for legible dim text.
color8 #848bbd
# red
color1 #fe4450
color9 #fe4450
# green
color2 #72f1b8
color10 #72f1b8
# yellow
color3 #ff7edb
color11 #ff7edb
# blue
color4 #03edf9
color12 #03edf9
# magenta
color5 #fede5d
color13 #f3e70f
# cyan
color6 #03edf9
color14 #03edf9
# white
color7 #ffffff
color15 #ffffff
+65
View File
@@ -0,0 +1,65 @@
# Volume
9 add volume -5
0 add volume 5
UP add volume 2
DOWN add volume -2
k add volume 2
j add volume -2
# Seek backward / forward
LEFT seek -5
RIGHT seek 5
l seek 5
h seek -5
# Bigger jumps
Shift+LEFT seek -30
Shift+RIGHT seek 30
# Precise nudge (Shift+h/l): 1s exact seek
H seek -1 exact
L seek 1 exact
# Playback speed
= add speed 0.1
- add speed -0.1
BS set speed 1.0 # backspace resets to normal
# Subtitle sync
z add sub-delay -0.1 # subs earlier
Z add sub-delay 0.1 # subs later
# Chapters
> add chapter 1
< add chapter -1
# A-B loop (moved off L to avoid the precise-nudge conflict)
b ab-loop
# Audio sync (mirrors the z/Z subtitle-delay pair)
x add audio-delay -0.1 # audio earlier
X add audio-delay 0.1 # audio later
# Playlist nav (< / > are used for chapters)
[ playlist-prev
] playlist-next
# Track cycling
a cycle audio # next audio track
n cycle sub # next subtitle track
v cycle sub-visibility # (default) toggle subs on/off
# Loop current file (distinct from the b A-B loop)
r cycle-values loop-file inf no
# Screenshots
s screenshot # (default) with subs
S screenshot video # clean frame: no subs/OSD
# Info overlays
i script-binding stats/display-stats-toggle # (default) stats HUD
o show-progress # flash progress/OSD
+5
View File
@@ -0,0 +1,5 @@
[pyradio]
volume=50
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
# Self-contained waybar cava module: stream `cava` raw output as Unicode bar chars.
# No HyDE dependency — just needs `cava` installed. Usage: cava-waybar.sh [bars]
# bars = number of columns (even; ~screen_px / (font-size * 0.6)); default 94.
#
# waybar's custom/cava module uses restart-interval, so this script is relaunched
# every time it exits. Without cleanup each relaunch would leak an orphaned `cava`
# child and they'd pile up. We enforce a single instance: track cava's own PID,
# kill it on exit, and reap any stale instance left by a previous (crashed) run.
bars="${1:-94}"
chars="▁▂▃▄▅▆▇█" # cava ascii value 0..7 -> these
conf="$(mktemp)"
pidfile="${XDG_RUNTIME_DIR:-/tmp}/cava-waybar.pid"
cava_pid=""
cleanup() {
[[ -n "$cava_pid" ]] && kill "$cava_pid" 2>/dev/null
rm -f "$conf" "$pidfile"
}
trap cleanup EXIT INT TERM
# Reap a stale cava from a previous run that didn't clean up (e.g. hard kill).
if [[ -f "$pidfile" ]]; then
old="$(cat "$pidfile" 2>/dev/null)"
[[ "$old" =~ ^[0-9]+$ ]] && kill "$old" 2>/dev/null
fi
cat >"$conf" <<EOF
[general]
bars = $bars
[output]
method = raw
raw_target = /dev/stdout
data_format = ascii
ascii_max_range = 7
EOF
# sed program: drop the ';' separators, then map each digit 0..7 to its bar char
prog="s/;//g"
for i in 0 1 2 3 4 5 6 7; do
prog+=";s/$i/${chars:$i:1}/g"
done
# Run cava in the background (not a `cava | sed` pipeline) so we hold its real PID
# and can kill it in cleanup. stdbuf -oL line-buffers cava so waybar gets each frame
# immediately (no choppy lag); its stdout is piped to sed via process substitution.
stdbuf -oL cava -p "$conf" > >(sed -u "$prog") &
cava_pid=$!
echo "$cava_pid" >"$pidfile"
wait "$cava_pid"
+1
View File
@@ -0,0 +1 @@
98
+332
View File
@@ -0,0 +1,332 @@
// --// standalone two-bar cava rig — hand-maintained, NOT HyDE-generated (see README "Waybar") //-- //
[
{
// sourced from header module //
"layer": "top",
"position": "top",
"height": 33,
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"reload_style_on_change": true,
// positions generated based on config.ctl //
"modules-left": ["custom/l_end","custom/power","custom/r_end","hyprland/workspaces", "custom/sl_end","hyprland/window","custom/sr_end","custom/l_end","custom/wallchange","custom/cliphist","custom/r_end"],
"modules-center": ["wlr/taskbar"],
"modules-right": ["custom/l_end","backlight","pulseaudio","pulseaudio#microphone","mpris","custom/r_end","custom/l_end","memory","cpu","custom/cpuinfo","battery","custom/r_end","custom/l_end","tray","custom/r_end","custom/l_end","idle_inhibitor","clock","custom/r_end"],
// sourced from modules based on config.ctl //
"tray": {
"icon-size": 19,
"rotate": 0,
"spacing": 5
},
// NOTE: keep in sync with modules/window.jsonc — this layout is launched standalone
// (waybar -c), so the modules/ file is NOT read here; this inline copy is what renders.
"hyprland/window": {
"format": " {}",
"rotate": 0,
"separate-outputs": true,
"max-length": 1000,
"rewrite": {
"(.*) — Kitty": " $1",
"(.*)~": " $1",
"(.*) — Mozilla Firefox": "󰈹 $1",
"(.*)Mozilla Firefox": "󰈹 Firefox",
"(.*) — LibreWolf": "󰈹 $1",
"(.*)LibreWolf": "󰈹 LibreWolf",
"(.*) — Chromium": " $1",
"(.*)Chromium": " Chromium",
"(.*) - VSCodium": "󰨞 $1",
"(.*)VSCodium": "󰨞 VSCodium",
"(.*)Code - OSS": "󰨞 $1",
"(.*) - Visual Studio Code": "󰨞 $1",
"(.*)Visual Studio Code": "󰨞 Code",
"(.*) — Dolphin": "󰉋 $1",
"(.*) - Obsidian(.*)": "󰠮 $1",
"(.*)Ferdium": "󰭻 Ferdium",
"(.*)FreeTube": " FreeTube",
"(.*) - VLC media player": "󰕼 $1",
"(.*)Steam": "󰓓 Steam",
"(.*)Neovide": " Nvim",
"(.*)Neovim": " Nvim",
"(.*)Nvim": " Nvim",
"(.*)Gajim": "󰭹 Gajim",
"(.*)KeePassXC": " KeePassXC",
"(.*)Betterbird": "󰇮 Betterbird",
"(.*)Spotify": "󰓇 Spotify"
}
},
"hyprland/workspaces": {
"window-rewrite-default":"",
"all-outputs": true,
"active-only": false,
"on-click": "activate",
"disable-scroll": false,
"on-scroll-up": "hyprctl dispatch workspace -1",
"on-scroll-down": "hyprctl dispatch workspace +1",
"persistent-workspaces": {}
},
"cpu": {
"interval": 10,
"format": "󰍛 {usage}%",
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
},
"custom/cpuinfo": {
"exec": " cpuinfo.sh",
"return-type": "json",
"format": "{}",
"rotate": 0,
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000
},
"memory": {
"states": {
"c": 90, // critical
"h": 60, // high
"m": 30 // medium
},
"interval": 30,
"rotate": 0,
"format": "󰾆 {used:0.1f}GB",
"format-m": "󰾅 {used:0.1f}GB",
"format-h": "󰓅 {used:0.1f}GB",
"format-c": " {used:0.1f}GB",
"format-alt": "󰾆 {percentage}%",
"max-length": 10,
"tooltip": true,
"tooltip-format": "󰾆 {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
},
"custom/power": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo  logout",
"on-click": "logoutlaunch.sh 2",
"on-click-right": "logoutlaunch.sh 1",
"interval" : 86400, // once every day
"tooltip": true
},
"wlr/taskbar": {
"format": "{icon}",
"rotate": 0,
"icon-size": 19,
"icon-theme": "Tela-circle-dracula",
"spacing": 0,
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"Alacritty"
],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
}
},
"idle_inhibitor": {
"format": "{icon}",
"rotate": 0,
"format-icons": {
"activated": "󰅶",
"deactivated": "󰛊"
}
},
"clock": {
"format": "{:%H:%M}",
"rotate": 0,
"format-alt": "{:%R 󰃭 %d·%m·%y}",
"tooltip-format": "<span>{calendar}</span>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b>{}</b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"custom/cliphist": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo 󰅇 clipboard history",
"on-click": "sleep 0.1 && cliphist.sh c",
"on-click-right": "sleep 0.1 && cliphist.sh d",
"on-click-middle": "sleep 0.1 && cliphist.sh w",
"interval" : 86400, // once every day
"tooltip": true
},
"custom/wallchange": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo 󰆊 switch wallpaper",
"on-click": "swwwallpaper.sh -n",
"on-click-right": "swwwallpaper.sh -p",
"on-click-middle": "sleep 0.1 && swwwallselect.sh",
"interval" : 86400, // once every day
"tooltip": true
},
"pulseaudio": {
"format": "{icon} {volume}",
"rotate": 0,
"format-muted": "婢",
"on-click": "pavucontrol -t 3",
"on-click-right": "volumecontrol.sh -s ''",
"on-click-middle": "volumecontrol.sh -o m",
"on-scroll-up": "volumecontrol.sh -o i",
"on-scroll-down": "volumecontrol.sh -o d",
"tooltip-format": "{icon} {desc} // {volume}%",
"scroll-step": 5,
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
}
},
"pulseaudio#microphone": {
"format": "{format_source}",
"rotate": 0,
"format-source": "",
"format-source-muted": "",
"on-click": "pavucontrol -t 4",
"on-click-middle": "volumecontrol.sh -i m",
"on-scroll-up": "volumecontrol.sh -i i",
"on-scroll-down": "volumecontrol.sh -i d",
"tooltip-format": "{format_source} {source_desc} // {source_volume}%",
"scroll-step": 5
},
"mpris": {
"format": "{player_icon} {dynamic}",
"rotate": 0,
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "▶",
"mpv": "🎵"
},
"status-icons": {
"paused": ""
},
"max-length": 1000,
"interval": 1
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 20
},
"format": "{icon} {capacity}%",
"rotate": 0,
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{time} {icon}",
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"]
},
"backlight": {
"device": "intel_backlight",
"rotate": 0,
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"on-scroll-up": "brightnessctl set 1%+",
"on-scroll-down": "brightnessctl set 1%-",
"min-length": 6
},
// modules for padding //
"custom/l_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/r_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/padd": {
"format": " ",
"interval" : "once",
"tooltip": false
}
},
// full-width cava visualizer layered behind the main bar //
{
"name": "cavabar",
"layer": "bottom",
"position": "top",
"height": 36,
"margin-top": -33,
"exclusive": false,
"passthrough": true,
"modules-center": ["custom/cava"],
"custom/cava": {
"format": "{}",
"exec": "bash $HOME/.config/waybar/cava-waybar.sh $(cat $HOME/.config/waybar/cava.width 2>/dev/null || echo 94)", // per-host cava.width (bars, even; ~screen_px / (font-size*0.6)). gui default 94; wm overrides to 218
"restart-interval": 1,
"hide-empty-text": true
}
}
]
@@ -0,0 +1,307 @@
/*
This is an autogenerated file.
Do not edit this file directly.
This is modified to dynamically
change the border-radius which will
follow the border-radius of hyprland.
To parse this file, we use PT as a unit
to represent the border-radius.
This is stored separately to avoid
issues on parsing the border-radius
*/
/* ? Leaf shape */
window#waybar.top #leaf,
window#waybar.top #leaf button,
window#waybar.top #leaf menu,
window#waybar.top #leaf menuitem,
window#waybar.top #leaf tooltip,
window#waybar.bottom #leaf,
window#waybar.bottom #leaf button,
window#waybar.bottom #leaf menu,
window#waybar.bottom #leaf menuitem,
window#waybar.bottom #leaf tooltip {
border-radius: 10pt 0 10pt 0;
}
window#waybar.left #leaf,
window#waybar.left #leaf button,
window#waybar.left #leaf menu,
window#waybar.left #leaf menuitem,
window#waybar.left #leaf tooltip,
window#waybar.right #leaf,
window#waybar.right #leaf button,
window#waybar.right #leaf menu,
window#waybar.right #leaf menuitem,
window#waybar.right #leaf tooltip {
border-radius: 10pt 0 10pt 0;
}
/* ? Inverse Leaf shape */
window#waybar.top #leaf-inverse,
window#waybar.top #leaf-inverse button,
window#waybar.top #leaf-inverse menu,
window#waybar.top #leaf-inverse menuitem,
window#waybar.top #leaf-inverse tooltip,
window#waybar.bottom #leaf-inverse,
window#waybar.bottom #leaf-inverse button,
window#waybar.bottom #leaf-inverse menu,
window#waybar.bottom #leaf-inverse menuitem,
window#waybar.bottom #leaf-inverse tooltip {
border-radius: 0 10pt 0 10pt;
}
window#waybar.left #leaf-inverse,
window#waybar.left #leaf-inverse button,
window#waybar.left #leaf-inverse menu,
window#waybar.left #leaf-inverse menuitem,
window#waybar.left #leaf-inverse tooltip,
window#waybar.right #leaf-inverse,
window#waybar.right #leaf-inverse button,
window#waybar.right #leaf-inverse menu,
window#waybar.right #leaf-inverse menuitem,
window#waybar.right #leaf-inverse tooltip {
border-radius: 0 10pt 0 10pt;
}
/* ? Full Pill shape*/
window#waybar.bottom #pill menuitem,
window#waybar.bottom #pill menu,
window#waybar.bottom #pill tooltip,
window#waybar.bottom #pill,
window#waybar.bottom #pill button,
window#waybar.top #pill menuitem,
window#waybar.top #pill menu,
window#waybar.top #pill tooltip,
window#waybar.top #pill,
window#waybar.top #pill button {
border-radius: 10pt 10pt 10pt 10pt;
}
window#waybar.left #pill menuitem,
window#waybar.left #pill menu,
window#waybar.left #pill tooltip,
window#waybar.left #pill,
window#waybar.left #pill button,
window#waybar.right #pill menuitem,
window#waybar.right #pill menu,
window#waybar.right #pill tooltip,
window#waybar.right #pill,
window#waybar.right #pill button {
border-radius: 10pt 10pt 10pt 10pt;
}
/* ? half pill with the curve pointing dowmwards */
window#waybar.top #pill-down,
window#waybar.top #pill-down button,
window#waybar.top #pill-down menu,
window#waybar.top #pill-down menuitem,
window#waybar.top #pill-down tooltip,
window#waybar.bottom #pill-down,
window#waybar.bottom #pill-down button,
window#waybar.bottom #pill-down menu,
window#waybar.bottom #pill-down menuitem,
window#waybar.bottom #pill-down tooltip {
border-radius: 0 0 10pt 10pt;
}
window#waybar.left #pill-down,
window#waybar.left #pill-down button,
window#waybar.left #pill-down menu,
window#waybar.left #pill-down menuitem,
window#waybar.left #pill-down tooltip,
window#waybar.right #pill-down,
window#waybar.right #pill-down button,
window#waybar.right #pill-down menu,
window#waybar.right #pill-down menuitem,
window#waybar.right #pill-down tooltip {
border-radius: 0 0 10pt 10pt;
}
/*
? half pill with the curve pointing inwards
*/
window#waybar.top #pill-in,
window#waybar.top #pill-in button,
window#waybar.top #pill-in menu,
window#waybar.top #pill-in menuitem,
window#waybar.top #pill-in tooltip {
border-radius: 0 0 10pt 10pt;
}
window#waybar.right #pill-in,
window#waybar.right #pill-in button,
window#waybar.right #pill-in menu,
window#waybar.right #pill-in menuitem,
window#waybar.right #pill-in tooltip {
border-radius: 10pt 0 0 10pt;
}
window#waybar.bottom #pill-in,
window#waybar.bottom #pill-in button,
window#waybar.bottom #pill-in menu,
window#waybar.bottom #pill-in menuitem,
window#waybar.bottom #pill-in tooltip {
border-radius: 10pt 10pt 0 0;
}
window#waybar.left #pill-in,
window#waybar.left #pill-in button,
window#waybar.left #pill-in menu,
window#waybar.left #pill-in menuitem,
window#waybar.left #pill-in tooltip {
border-radius: 0 10pt 10pt 0;
}
/* ? half pill with the curve pointing to left */
window#waybar.top #pill-left,
window#waybar.top #pill-left button,
window#waybar.top #pill-left menu,
window#waybar.top #pill-left menuitem,
window#waybar.top #pill-left tooltip,
window#waybar.bottom #pill-left,
window#waybar.bottom #pill-left button,
window#waybar.bottom #pill-left menu,
window#waybar.bottom #pill-left menuitem,
window#waybar.bottom #pill-left tooltip {
border-radius: 10pt 0 0 10pt;
}
window#waybar.left #pill-left,
window#waybar.left #pill-left button,
window#waybar.left #pill-left menu,
window#waybar.left #pill-left menuitem,
window#waybar.left #pill-left tooltip,
window#waybar.right #pill-left,
window#waybar.right #pill-left button,
window#waybar.right #pill-left menu,
window#waybar.right #pill-left menuitem,
window#waybar.right #pill-left tooltip {
border-radius: 10pt 0 0 10pt;
}
/* ? half pill with the curve pointing to outwards */
window#waybar.top #pill-out,
window#waybar.top #pill-out button,
window#waybar.top #pill-out menu,
window#waybar.top #pill-out menuitem,
window#waybar.top #pill-out tooltip {
border-radius: 10pt 10pt 0 0;
}
window#waybar.right #pill-out,
window#waybar.right #pill-out button,
window#waybar.right #pill-out menu,
window#waybar.right #pill-out menuitem,
window#waybar.right #pill-out tooltip {
border-radius: 0 10pt 10pt 0;
}
window#waybar.bottom #pill-out,
window#waybar.bottom #pill-out button,
window#waybar.bottom #pill-out menu,
window#waybar.bottom #pill-out menuitem,
window#waybar.bottom #pill-out tooltip {
border-radius: 0 0 10pt 10pt;
}
window#waybar.left #pill-out,
window#waybar.left #pill-out button,
window#waybar.left #pill-out menu,
window#waybar.left #pill-out menuitem,
window#waybar.left #pill-out tooltip {
border-radius: 10pt 0 0 10pt;
}
/* ============================ */
/* ? half pill with the curve pointing to the right */
window#waybar.top #pill-right,
window#waybar.top #pill-right button,
window#waybar.bottom #pill-right menu,
window#waybar.bottom #pill-right menuitem,
window#waybar.bottom #pill-right tooltip,
window#waybar.bottom #pill-right,
window#waybar.bottom #pill-right button,
window#waybar.top #pill-right menu,
window#waybar.top #pill-right menuitem,
window#waybar.top #pill-right tooltip {
border-radius: 0 10pt 10pt 0;
}
window#waybar.left #pill-right,
window#waybar.left #pill-right button,
window#waybar.right #pill-right menu,
window#waybar.right #pill-right menuitem,
window#waybar.right #pill-right tooltip,
window#waybar.right #pill-right,
window#waybar.right #pill-right button,
window#waybar.left #pill-right menu,
window#waybar.left #pill-right menuitem,
window#waybar.left #pill-right tooltip {
border-radius: 0 10pt 10pt 0;
}
/* ? half pill with the flat surface pointing upwards */
window#waybar.top #pill-up,
window#waybar.top #pill-up button,
window#waybar.top #pill-up menu,
window#waybar.top #pill-up menuitem,
window#waybar.top #pill-up tooltip,
window#waybar.bottom #pill-up,
window#waybar.bottom #pill-up button,
window#waybar.bottom #pill-up menu,
window#waybar.bottom #pill-up menuitem,
window#waybar.bottom #pill-up tooltip {
border-radius: 10pt 10pt 0 0;
}
window#waybar.left #pill-up,
window#waybar.left #pill-up button,
window#waybar.left #pill-up menu,
window#waybar.left #pill-up menuitem,
window#waybar.left #pill-up tooltip,
window#waybar.right #pill-up,
window#waybar.right #pill-up button,
window#waybar.right #pill-up menu,
window#waybar.right #pill-up menuitem,
window#waybar.right #pill-up tooltip {
border-radius: 10pt 10pt 0 0;
}
tooltip {
border-radius: 10pt;
}
menu {
border-radius: 10pt;
}
menu menuitem {
border-radius: 10pt;
}
window.popup decoration {
border-radius: 10pt;
}
+14
View File
@@ -0,0 +1,14 @@
/*
Dynamic Style Configuration *
This is handled by HyDE
To generate a dynamic configuration
base on theme and user settings
*/
* {
border-radius: 0em;
font-family: "JetBrainsMono Nerd Font","JetBrainsMono Nerd Font";
font-size: 10px;
}
+120
View File
@@ -0,0 +1,120 @@
{
"include": [
"/home/anon/.config/waybar/modules/backlight.jsonc",
"/home/anon/.config/waybar/modules/bluetooth.jsonc",
"/home/anon/.config/waybar/modules/cava.jsonc",
"/home/anon/.config/waybar/modules/cliphist.jsonc",
"/home/anon/.config/waybar/modules/clock.jsonc",
"/home/anon/.config/waybar/modules/cpu.jsonc",
"/home/anon/.config/waybar/modules/cpuinfo.jsonc",
"/home/anon/.config/waybar/modules/footer.jsonc",
"/home/anon/.config/waybar/modules/github_hyprdots.jsonc",
"/home/anon/.config/waybar/modules/gpuinfo.jsonc",
"/home/anon/.config/waybar/modules/header.jsonc",
"/home/anon/.config/waybar/modules/idle_inhibitor.jsonc",
"/home/anon/.config/waybar/modules/keybindhint.jsonc",
"/home/anon/.config/waybar/modules/language.jsonc",
"/home/anon/.config/waybar/modules/memory.jsonc",
"/home/anon/.config/waybar/modules/mpris.jsonc",
"/home/anon/.config/waybar/modules/network.jsonc",
"/home/anon/.config/waybar/modules/notifications.jsonc",
"/home/anon/.config/waybar/modules/power.jsonc",
"/home/anon/.config/waybar/modules/privacy.jsonc",
"/home/anon/.config/waybar/modules/pulseaudio.jsonc",
"/home/anon/.config/waybar/modules/spotify.jsonc",
"/home/anon/.config/waybar/modules/taskbar.jsonc",
"/home/anon/.config/waybar/modules/theme.jsonc",
"/home/anon/.config/waybar/modules/tray.jsonc",
"/home/anon/.config/waybar/modules/updates.jsonc",
"/home/anon/.config/waybar/modules/wallchange.jsonc",
"/home/anon/.config/waybar/modules/window.jsonc",
"/home/anon/.config/waybar/modules/workspaces.jsonc",
"/home/anon/.config/waybar/modules/battery.jsonc",
"/home/anon/.local/share/waybar/modules/image#wallpaper.json",
"/home/anon/.local/share/waybar/modules/privacy.json",
"/home/anon/.local/share/waybar/modules/tray.json",
"/home/anon/.local/share/waybar/modules/wlr-taskbar#windows.json",
"/home/anon/.local/share/waybar/modules/wlr-taskbar.json",
"/home/anon/.local/share/waybar/modules/backlight.jsonc",
"/home/anon/.local/share/waybar/modules/battery.jsonc",
"/home/anon/.local/share/waybar/modules/bluetooth.jsonc",
"/home/anon/.local/share/waybar/modules/cava.jsonc",
"/home/anon/.local/share/waybar/modules/clock.jsonc",
"/home/anon/.local/share/waybar/modules/cpu.jsonc",
"/home/anon/.local/share/waybar/modules/custom-app-launcher.jsonc",
"/home/anon/.local/share/waybar/modules/custom-cava.jsonc",
"/home/anon/.local/share/waybar/modules/custom-clipboard.jsonc",
"/home/anon/.local/share/waybar/modules/custom-cliphist.jsonc",
"/home/anon/.local/share/waybar/modules/custom-cpuinfo.jsonc",
"/home/anon/.local/share/waybar/modules/custom-display.jsonc",
"/home/anon/.local/share/waybar/modules/custom-dunst.jsonc",
"/home/anon/.local/share/waybar/modules/custom-gamemode.jsonc",
"/home/anon/.local/share/waybar/modules/custom-github_hyde.jsonc",
"/home/anon/.local/share/waybar/modules/custom-gpuinfo#amd.jsonc",
"/home/anon/.local/share/waybar/modules/custom-gpuinfo#intel.jsonc",
"/home/anon/.local/share/waybar/modules/custom-gpuinfo#nvidia.jsonc",
"/home/anon/.local/share/waybar/modules/custom-gpuinfo.jsonc",
"/home/anon/.local/share/waybar/modules/custom-hyde-menu.jsonc",
"/home/anon/.local/share/waybar/modules/custom-hyprsunset.jsonc",
"/home/anon/.local/share/waybar/modules/custom-keybindhint.jsonc",
"/home/anon/.local/share/waybar/modules/custom-mediaplayer.jsonc",
"/home/anon/.local/share/waybar/modules/custom-power.jsonc",
"/home/anon/.local/share/waybar/modules/custom-powermenu.jsonc",
"/home/anon/.local/share/waybar/modules/custom-sensorsinfo.jsonc",
"/home/anon/.local/share/waybar/modules/custom-spotify.jsonc",
"/home/anon/.local/share/waybar/modules/custom-swaync.jsonc",
"/home/anon/.local/share/waybar/modules/custom-theme.jsonc",
"/home/anon/.local/share/waybar/modules/custom-updates.jsonc",
"/home/anon/.local/share/waybar/modules/custom-wallchange.jsonc",
"/home/anon/.local/share/waybar/modules/custom-wbar.jsonc",
"/home/anon/.local/share/waybar/modules/custom-weather.jsonc",
"/home/anon/.local/share/waybar/modules/custom-workflows.jsonc",
"/home/anon/.local/share/waybar/modules/gamemode.jsonc",
"/home/anon/.local/share/waybar/modules/group-eyecare.jsonc",
"/home/anon/.local/share/waybar/modules/group-hide-tray.jsonc",
"/home/anon/.local/share/waybar/modules/group-mediaplayer.jsonc",
"/home/anon/.local/share/waybar/modules/group-volumecontrol.jsonc",
"/home/anon/.local/share/waybar/modules/hyprland-language.jsonc",
"/home/anon/.local/share/waybar/modules/hyprland-window.jsonc",
"/home/anon/.local/share/waybar/modules/hyprland-workspaces#kanji.jsonc",
"/home/anon/.local/share/waybar/modules/hyprland-workspaces#roman.jsonc",
"/home/anon/.local/share/waybar/modules/hyprland-workspaces.jsonc",
"/home/anon/.local/share/waybar/modules/idle_inhibitor.jsonc",
"/home/anon/.local/share/waybar/modules/image#profile.jsonc",
"/home/anon/.local/share/waybar/modules/image#wallpaper.jsonc",
"/home/anon/.local/share/waybar/modules/memory.jsonc",
"/home/anon/.local/share/waybar/modules/mpd.jsonc",
"/home/anon/.local/share/waybar/modules/mpris.jsonc",
"/home/anon/.local/share/waybar/modules/network#bandwidth.jsonc",
"/home/anon/.local/share/waybar/modules/network.jsonc",
"/home/anon/.local/share/waybar/modules/power-profiles-daemon.jsonc",
"/home/anon/.local/share/waybar/modules/privacy.jsonc",
"/home/anon/.local/share/waybar/modules/pulseaudio#microphone.jsonc",
"/home/anon/.local/share/waybar/modules/pulseaudio.jsonc",
"/home/anon/.local/share/waybar/modules/temperature.jsonc",
"/home/anon/.local/share/waybar/modules/tray.jsonc",
"/home/anon/.local/share/waybar/modules/wlr-taskbar#windows.jsonc",
"/home/anon/.local/share/waybar/modules/wlr-taskbar.jsonc"
],
"image#wallpaper": {
"size": 30,
"icon-size-multiplier": 3
},
"privacy": {
"icon-size": 10,
"icon-size-multiplier": 1
},
"tray": {
"icon-size": 16,
"icon-size-multiplier": 1.6
},
"wlr/taskbar#windows": {
"icon-size": 16,
"icon-size-multiplier": 1.6
},
"wlr/taskbar": {
"icon-size": 16,
"icon-size-multiplier": 1.6
},
"position": "top"
}
+207
View File
@@ -0,0 +1,207 @@
* {
border: none;
border-radius: 0px;
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
font-size: 10px;
min-height: 10px;
}
@import "../theme.css"; /* HyDE/wallbash-generated colors, lives one level up */
window#waybar {
/* transparent so the cavabar (bottom layer, same region) shows through; module pills keep @main-bg */
background: transparent;
}
tooltip {
background: @main-bg;
color: @main-fg;
border-radius: 5px;
border-width: 0px;
}
#workspaces {
border-radius: 8px;
}
#custom-padd {
padding-left: 5px;
padding-right: 5px;
}
#workspaces button {
box-shadow: none;
text-shadow: none;
padding: 0px;
border-radius: 5px;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 0px;
padding-left: 3px;
padding-right: 3px;
margin-right: 0px;
color: @main-fg;
animation: ws_normal 20s ease-in-out 1;
}
#workspaces button.active {
background: @wb-act-bg;
color: @wb-act-fg;
animation: ws_active 20s ease-in-out 1;
transition: all 0.4s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button:hover {
background: @wb-hvr-bg;
color: @wb-hvr-fg;
animation: ws_hover 20s ease-in-out 1;
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button {
box-shadow: none;
text-shadow: none;
padding: 0px;
border-radius: 6px;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 0px;
padding-left: 3px;
padding-right: 3px;
margin-right: 0px;
color: @wb-color;
animation: tb_normal 20s ease-in-out 1;
}
#taskbar button.active {
background: @wb-act-bg;
color: @wb-act-color;
/*animation: tb_active 20s ease-in-out 1;*/
box-shadow: 0 0 1px 1px rgba(128, 128, 128, 0.4);
transition: all 0.4s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover {
background: @wb-hvr-bg;
color: @wb-hvr-color;
opacity: 0.8;
animation: tb_hover 20s ease-in-out 1;
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#tray menu * {
min-height: 16px;
}
#tray menu separator {
min-height: 10px;
}
#backlight,
#battery,
#bluetooth,
#custom-cava,
#custom-cliphist,
#clock,
#custom-cpuinfo,
#cpu,
#custom-gpuinfo,
#idle_inhibitor,
#custom-keybindhint,
#language,
#memory,
#mpris,
#network,
#custom-notifications,
#custom-power,
#pulseaudio,
#custom-spotify,
#taskbar,
#custom-theme,
#tray,
#custom-updates,
#custom-wallchange,
#custom-wbar,
#window,
#workspaces,
#custom-l_end,
#custom-r_end,
#custom-sl_end,
#custom-sr_end,
#custom-rl_end,
#custom-rr_end {
color: @main-fg;
background: @main-bg;
opacity: 1;
margin: 4px 0px 4px 0px;
padding-left: 4px;
padding-right: 4px;
}
window#waybar.empty #window,
window#waybar.empty #custom-sl_end,
window#waybar.empty #custom-sr_end {
opacity: 0;
}
#workspaces {
padding-left: 5px;
padding-right: 5px;
}
#taskbar {
border-radius: 8px;
padding-left: 6px;
padding-right: 6px;
}
#custom-r_end {
border-radius: 0px 8px 8px 0px;
margin-right: 3px;
padding-right: 1px;
}
#custom-l_end {
border-radius: 8px 0px 0px 8px;
margin-left: 3px;
padding-left: 1px;
}
#custom-sr_end {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
margin-right: 9px;
padding-right: 3px;
}
#custom-sl_end {
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
margin-left: 9px;
padding-left: 3px;
}
#custom-rr_end {
border-radius: 0px 8px 8px 0px;
margin-right: 9px;
padding-right: 3px;
}
#custom-rl_end {
border-radius: 8px 0px 0px 8px;
margin-left: 9px;
padding-left: 3px;
}
window#waybar.cavabar {
background: transparent;
}
window#waybar.cavabar #custom-cava {
font-size: 24px;
color: alpha(@main-fg, 0.7);
background: rgba(0, 0, 0, 0.2);
margin: 0px;
padding: 0px;
}
+332
View File
@@ -0,0 +1,332 @@
// --// standalone two-bar cava rig — hand-maintained, NOT HyDE-generated (see README "Waybar") //-- //
[
{
// sourced from header module //
"layer": "top",
"position": "top",
"height": 33,
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"reload_style_on_change": true,
// positions generated based on config.ctl //
"modules-left": ["custom/l_end","custom/power","custom/r_end","hyprland/workspaces", "custom/sl_end","hyprland/window","custom/sr_end","custom/l_end","custom/wallchange","custom/cliphist","custom/r_end"],
"modules-center": ["wlr/taskbar"],
"modules-right": ["custom/l_end","backlight","pulseaudio","pulseaudio#microphone","mpris","custom/r_end","custom/l_end","memory","cpu","custom/cpuinfo","battery","custom/r_end","custom/l_end","tray","custom/r_end","custom/l_end","idle_inhibitor","clock","custom/r_end"],
// sourced from modules based on config.ctl //
"tray": {
"icon-size": 19,
"rotate": 0,
"spacing": 5
},
// NOTE: keep in sync with modules/window.jsonc — this layout is launched standalone
// (waybar -c), so the modules/ file is NOT read here; this inline copy is what renders.
"hyprland/window": {
"format": " {}",
"rotate": 0,
"separate-outputs": true,
"max-length": 1000,
"rewrite": {
"(.*) — Kitty": " $1",
"(.*)~": " $1",
"(.*) — Mozilla Firefox": "󰈹 $1",
"(.*)Mozilla Firefox": "󰈹 Firefox",
"(.*) — LibreWolf": "󰈹 $1",
"(.*)LibreWolf": "󰈹 LibreWolf",
"(.*) — Chromium": " $1",
"(.*)Chromium": " Chromium",
"(.*) - VSCodium": "󰨞 $1",
"(.*)VSCodium": "󰨞 VSCodium",
"(.*)Code - OSS": "󰨞 $1",
"(.*) - Visual Studio Code": "󰨞 $1",
"(.*)Visual Studio Code": "󰨞 Code",
"(.*) — Dolphin": "󰉋 $1",
"(.*) - Obsidian(.*)": "󰠮 $1",
"(.*)Ferdium": "󰭻 Ferdium",
"(.*)FreeTube": " FreeTube",
"(.*) - VLC media player": "󰕼 $1",
"(.*)Steam": "󰓓 Steam",
"(.*)Neovide": " Nvim",
"(.*)Neovim": " Nvim",
"(.*)Nvim": " Nvim",
"(.*)Gajim": "󰭹 Gajim",
"(.*)KeePassXC": " KeePassXC",
"(.*)Betterbird": "󰇮 Betterbird",
"(.*)Spotify": "󰓇 Spotify"
}
},
"hyprland/workspaces": {
"window-rewrite-default":"",
"all-outputs": true,
"active-only": false,
"on-click": "activate",
"disable-scroll": false,
"on-scroll-up": "hyprctl dispatch workspace -1",
"on-scroll-down": "hyprctl dispatch workspace +1",
"persistent-workspaces": {}
},
"cpu": {
"interval": 10,
"format": "󰍛 {usage}%",
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
},
"custom/cpuinfo": {
"exec": " cpuinfo.sh",
"return-type": "json",
"format": "{}",
"rotate": 0,
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000
},
"memory": {
"states": {
"c": 90, // critical
"h": 60, // high
"m": 30 // medium
},
"interval": 30,
"rotate": 0,
"format": "󰾆 {used:0.1f}GB",
"format-m": "󰾅 {used:0.1f}GB",
"format-h": "󰓅 {used:0.1f}GB",
"format-c": " {used:0.1f}GB",
"format-alt": "󰾆 {percentage}%",
"max-length": 10,
"tooltip": true,
"tooltip-format": "󰾆 {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
},
"custom/power": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo  logout",
"on-click": "logoutlaunch.sh 2",
"on-click-right": "logoutlaunch.sh 1",
"interval" : 86400, // once every day
"tooltip": true
},
"wlr/taskbar": {
"format": "{icon}",
"rotate": 0,
"icon-size": 19,
"icon-theme": "Tela-circle-dracula",
"spacing": 0,
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"Alacritty"
],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
}
},
"idle_inhibitor": {
"format": "{icon}",
"rotate": 0,
"format-icons": {
"activated": "󰅶",
"deactivated": "󰛊"
}
},
"clock": {
"format": "{:%H:%M}",
"rotate": 0,
"format-alt": "{:%R 󰃭 %d·%m·%y}",
"tooltip-format": "<span>{calendar}</span>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b>{}</b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"custom/cliphist": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo 󰅇 clipboard history",
"on-click": "sleep 0.1 && cliphist.sh c",
"on-click-right": "sleep 0.1 && cliphist.sh d",
"on-click-middle": "sleep 0.1 && cliphist.sh w",
"interval" : 86400, // once every day
"tooltip": true
},
"custom/wallchange": {
"format": "{}",
"rotate": 0,
"exec": "echo ; echo 󰆊 switch wallpaper",
"on-click": "swwwallpaper.sh -n",
"on-click-right": "swwwallpaper.sh -p",
"on-click-middle": "sleep 0.1 && swwwallselect.sh",
"interval" : 86400, // once every day
"tooltip": true
},
"pulseaudio": {
"format": "{icon} {volume}",
"rotate": 0,
"format-muted": "婢",
"on-click": "pavucontrol -t 3",
"on-click-right": "volumecontrol.sh -s ''",
"on-click-middle": "volumecontrol.sh -o m",
"on-scroll-up": "volumecontrol.sh -o i",
"on-scroll-down": "volumecontrol.sh -o d",
"tooltip-format": "{icon} {desc} // {volume}%",
"scroll-step": 5,
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
}
},
"pulseaudio#microphone": {
"format": "{format_source}",
"rotate": 0,
"format-source": "",
"format-source-muted": "",
"on-click": "pavucontrol -t 4",
"on-click-middle": "volumecontrol.sh -i m",
"on-scroll-up": "volumecontrol.sh -i i",
"on-scroll-down": "volumecontrol.sh -i d",
"tooltip-format": "{format_source} {source_desc} // {source_volume}%",
"scroll-step": 5
},
"mpris": {
"format": "{player_icon} {dynamic}",
"rotate": 0,
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "▶",
"mpv": "🎵"
},
"status-icons": {
"paused": ""
},
"max-length": 1000,
"interval": 1
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 20
},
"format": "{icon} {capacity}%",
"rotate": 0,
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{time} {icon}",
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"]
},
"backlight": {
"device": "intel_backlight",
"rotate": 0,
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"on-scroll-up": "brightnessctl set 1%+",
"on-scroll-down": "brightnessctl set 1%-",
"min-length": 6
},
// modules for padding //
"custom/l_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/r_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/padd": {
"format": " ",
"interval" : "once",
"tooltip": false
}
},
// full-width cava visualizer layered behind the main bar //
{
"name": "cavabar",
"layer": "bottom",
"position": "top",
"height": 36,
"margin-top": -33,
"exclusive": false,
"passthrough": true,
"modules-center": ["custom/cava"],
"custom/cava": {
"format": "{}",
"exec": "bash $HOME/.config/waybar/cava-waybar.sh $(cat $HOME/.config/waybar/cava.width 2>/dev/null || echo 94)", // per-host cava.width (bars, even; ~screen_px / (font-size*0.6)). gui default 94; wm overrides to 218
"restart-interval": 1,
"hide-empty-text": true
}
}
]
@@ -0,0 +1,10 @@
"backlight": {
"device": "intel_backlight",
"rotate": ${r_deg},
"format": "{icon} {percent}%",
"format-icons": ["", "", "", "", "", "", "", "", ""],
"on-scroll-up": "brightnessctl set 1%+",
"on-scroll-down": "brightnessctl set 1%-",
"min-length": 6
},
+14
View File
@@ -0,0 +1,14 @@
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 20
},
"format": "{icon} {capacity}%",
"rotate": ${r_deg},
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{time} {icon}",
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"]
},
@@ -0,0 +1,15 @@
"bluetooth": {
"format": "",
"rotate": ${r_deg},
"format-disabled": "",
"format-connected": " {num_connections}",
"format-connected-battery": "{icon} {num_connections}",
// "format-connected-battery": "{icon} {device_alias}-{device_battery_percentage}%",
"format-icons": ["󰥇", "󰤾", "󰤿", "󰥀", "󰥁", "󰥂", "󰥃", "󰥄", "󰥅", "󰥆", "󰥈"],
// "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device If this config option is not defined or none of the devices in the list are connected, it will fall back to showing the last connected device.
"tooltip-format": "{controller_alias}\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{icon} {device_battery_percentage}%"
},
+24
View File
@@ -0,0 +1,24 @@
{
"cava": {
// "cava_config": "$XDG_CONFIG_HOME/cava/cava.conf",
"framerate": 30,
"autosens": 1,
"sensitivity": 100,
"bars": 14,
"lower_cutoff_freq": 50,
"higher_cutoff_freq": 10000,
"method": "pulse",
"source": "auto",
"stereo": true,
"reverse": false,
"bar_delimiter": 0,
"monstercat": false,
"waves": false,
"noise_reduction": 0.77,
"input_delay": 2,
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
"actions": {
"on-click-right": "mode"
}
}
}
+11
View File
@@ -0,0 +1,11 @@
"custom/cliphist": {
"format": "{}",
"rotate": ${r_deg},
"exec": "echo ; echo 󰅇 clipboard history",
"on-click": "sleep 0.1 && cliphist.sh c",
"on-click-right": "sleep 0.1 && cliphist.sh d",
"on-click-middle": "sleep 0.1 && cliphist.sh w",
"interval" : 86400, // once every day
"tooltip": true
},
+25
View File
@@ -0,0 +1,25 @@
"clock": {
"format": "{:%H:%M}",
"rotate": ${r_deg},
"format-alt": "{:%R 󰃭 %d·%m·%y}",
"tooltip-format": "<span>{calendar}</span>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b>{}</b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
+8
View File
@@ -0,0 +1,8 @@
"cpu": {
"interval": 10,
"format": "󰍛 {usage}%",
"rotate": ${r_deg},
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
},
+10
View File
@@ -0,0 +1,10 @@
"custom/cpuinfo": {
"exec": " cpuinfo.sh",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000
},
+47
View File
@@ -0,0 +1,47 @@
// modules for padding //
"custom/l_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/r_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/sr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rl_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/rr_end": {
"format": " ",
"interval" : "once",
"tooltip": false
},
"custom/padd": {
"format": " ",
"interval" : "once",
"tooltip": false
}
}
@@ -0,0 +1,8 @@
{
"custom/github_hyprdots": {
"format": " ",
"rotate": 0,
"tooltip-format": "  Hyprdots repository",
"on-click": "xdg-open https://github.com/prasanthrangan/hyprdots"
}
}
+41
View File
@@ -0,0 +1,41 @@
"custom/gpuinfo": {
"exec": " gpuinfo.sh",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000,
"on-click": "gpuinfo.sh --toggle",
},
"custom/gpuinfo#nvidia": {
"exec": " gpuinfo.sh --use nvidia ",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000,
},
"custom/gpuinfo#amd": {
"exec": " gpuinfo.sh --use amd ",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000,
},
"custom/gpuinfo#intel": {
"exec": " gpuinfo.sh --use intel ",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"interval": 5, // once every 5 seconds
"tooltip": true,
"max-length": 1000,
},
+13
View File
@@ -0,0 +1,13 @@
// --// waybar config generated by wbarconfgen.sh //-- //
{
// sourced from header module //
"layer": "top",
"position": "${w_position}",
"mod": "dock",
"${hv_pos}": ${w_height},
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"reload_style_on_change": true,
@@ -0,0 +1,9 @@
"idle_inhibitor": {
"format": "{icon}",
"rotate": ${r_deg},
"format-icons": {
"activated": "󰅶",
"deactivated": "󰛊"
}
},
@@ -0,0 +1,6 @@
"custom/keybindhint": {
"format": " ",
"rotate": ${r_deg},
"on-click": "keybinds_hint.sh"
},
@@ -0,0 +1,6 @@
"hyprland/language": {
"format": "{short} {variant}",
"rotate": ${r_deg},
"on-click": "keyboardswitch.sh",
},
+18
View File
@@ -0,0 +1,18 @@
"memory": {
"states": {
"c": 90, // critical
"h": 60, // high
"m": 30, // medium
},
"interval": 30,
"format": "󰾆 {used}GB",
"rotate": ${r_deg},
"format-m": "󰾅 {used}GB",
"format-h": "󰓅 {used}GB",
"format-c": " {used}GB",
"format-alt": "󰾆 {percentage}%",
"max-length": 10,
"tooltip": true,
"tooltip-format": "󰾆 {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
},
+16
View File
@@ -0,0 +1,16 @@
"mpris": {
"format": "{player_icon} {dynamic}",
"rotate": ${r_deg},
"format-paused": "{status_icon} <i>{dynamic}</i>",
"player-icons": {
"default": "▶",
"mpv": "🎵"
},
"status-icons": {
"paused": ""
},
// "ignored-players": ["firefox"]
"max-length": 1000,
"interval": 1
},
+13
View File
@@ -0,0 +1,13 @@
"network": {
"tooltip": true,
"format-wifi": " ",
"rotate": ${r_deg},
"format-ethernet": "󰈀 ",
"tooltip-format": "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>",
"format-linked": "󰈀 {ifname} (No IP)",
"format-disconnected": "󰖪 ",
"tooltip-format-disconnected": "Disconnected",
"format-alt": "<span foreground='#99ffdd'> {bandwidthDownBytes}</span> <span foreground='#ffcc66'> {bandwidthUpBytes}</span>",
"interval": 2
}
@@ -0,0 +1,29 @@
"custom/notifications": {
"format": "{icon} {}",
"rotate": ${r_deg},
"format-icons": {
"email-notification": "<span foreground='white'><sup></sup></span>",
"chat-notification": "󱋊<span foreground='white'><sup></sup></span>",
"warning-notification": "󱨪<span foreground='yellow'><sup></sup></span>",
"error-notification": "󱨪<span foreground='red'><sup></sup></span>",
"network-notification": "󱂇<span foreground='white'><sup></sup></span>",
"battery-notification": "󰁺<span foreground='white'><sup></sup></span>",
"update-notification": "󰚰<span foreground='white'><sup></sup></span>",
"music-notification": "󰝚<span foreground='white'><sup></sup></span>",
"volume-notification": "󰕿<span foreground='white'><sup></sup></span>",
"notification": "<span foreground='white'><sup></sup></span>",
"dnd": "",
"none": ""
},
"return-type": "json",
"exec-if": "which dunstctl",
"exec": "notifications.py",
"on-scroll-down": "sleep 0.1 && dunstctl history-pop",
"on-click": "dunstctl set-paused toggle",
"on-click-middle": "dunstctl history-clear",
"on-click-right": "dunstctl close-all",
"interval": 1,
"tooltip": true,
"escape": true
},
+10
View File
@@ -0,0 +1,10 @@
"custom/power": {
"format": "{}",
"rotate": ${r_deg},
"exec": "echo ; echo  logout",
"on-click": "logoutlaunch.sh 2",
"on-click-right": "logoutlaunch.sh 1",
"interval" : 86400, // once every day
"tooltip": true
},
+19
View File
@@ -0,0 +1,19 @@
{
"privacy": {
"icon-size": 18,
"icon-spacing": 5,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 24
}
]
}
}
@@ -0,0 +1,35 @@
"pulseaudio": {
"format": "{icon} {volume}",
"rotate": ${r_deg},
"format-muted": "婢",
"on-click": "pavucontrol -t 3",
"on-click-right": "volumecontrol.sh -s ''",
"on-click-middle": "volumecontrol.sh -o m",
"on-scroll-up": "volumecontrol.sh -o i",
"on-scroll-down": "volumecontrol.sh -o d",
"tooltip-format": "{icon} {desc} // {volume}%",
"scroll-step": 5,
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
}
},
"pulseaudio#microphone": {
"format": "{format_source}",
"rotate": ${r_deg},
"format-source": "",
"format-source-muted": "",
"on-click": "pavucontrol -t 4",
"on-click-middle": "volumecontrol.sh -i m",
"on-scroll-up": "volumecontrol.sh -i i",
"on-scroll-down": "volumecontrol.sh -i d",
"tooltip-format": "{format_source} {source_desc} // {source_volume}%",
"scroll-step": 5
},
+15
View File
@@ -0,0 +1,15 @@
"custom/spotify": {
"exec": "mediaplayer.py --player spotify",
"format": " {}",
"rotate": ${r_deg},
"return-type": "json",
"on-click": "playerctl play-pause --player spotify",
"on-click-right": "playerctl next --player spotify",
"on-click-middle": "playerctl previous --player spotify",
"on-scroll-up": "volumecontrol.sh -p spotify i",
"on-scroll-down": "volumecontrol.sh -p spotify d",
"max-length": 25,
"escape": true,
"tooltip": true
},
+151
View File
@@ -0,0 +1,151 @@
* {
border: none;
border-radius: 0px;
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
font-size: ${s_fontpx}px;
min-height: 10px;
}
@import "theme.css";
window#waybar {
background: @bar-bg;
}
tooltip {
background: @main-bg;
color: @main-fg;
border-radius: ${t_radius}px;
border-width: 0px;
}
#workspaces button {
box-shadow: none;
text-shadow: none;
padding: 0px;
border-radius: ${w_radius}px;
margin-${x1}: ${w_margin}px;
margin-${x2}: ${w_margin}px;
margin-${x3}: 0px;
padding-${x3}: ${w_paddin}px;
padding-${x4}: ${w_paddin}px;
margin-${x4}: 0px;
color: @main-fg;
animation: ws_normal 20s ease-in-out 1;
}
#workspaces button.active {
background: @wb-act-bg;
color: @wb-act-fg;
margin-${x3}: ${w_margin}px;
padding-${x3}: ${w_padact}px;
padding-${x4}: ${w_padact}px;
margin-${x4}: ${w_margin}px;
animation: ws_active 20s ease-in-out 1;
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
}
#workspaces button:hover {
background: @wb-hvr-bg;
color: @wb-hvr-fg;
animation: ws_hover 20s ease-in-out 1;
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
}
#taskbar button {
box-shadow: none;
text-shadow: none;
padding: 0px;
border-radius: ${w_radius}px;
margin-${x1}: ${w_margin}px;
margin-${x2}: ${w_margin}px;
margin-${x3}: 0px;
padding-${x3}: ${w_paddin}px;
padding-${x4}: ${w_paddin}px;
margin-${x4}: 0px;
color: @wb-color;
animation: tb_normal 20s ease-in-out 1;
}
#taskbar button.active {
background: @wb-act-bg;
color: @wb-act-color;
margin-${x3}: ${w_margin}px;
padding-${x3}: ${w_padact}px;
padding-${x4}: ${w_padact}px;
margin-${x4}: ${w_margin}px;
animation: tb_active 20s ease-in-out 1;
transition: all 0.4s cubic-bezier(.55,-0.68,.48,1.682);
}
#taskbar button:hover {
background: @wb-hvr-bg;
color: @wb-hvr-color;
animation: tb_hover 20s ease-in-out 1;
transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
}
#tray menu * {
min-height: 16px
}
#tray menu separator {
min-height: 10px
}
${modules_ls}
#custom-l_end,
#custom-r_end,
#custom-sl_end,
#custom-sr_end,
#custom-rl_end,
#custom-rr_end {
color: @main-fg;
background: @main-bg;
opacity: 1;
margin: ${x1g_margin}px ${x2g_margin}px ${x3g_margin}px ${x4g_margin}px;
padding-${x3}: ${g_paddin}px;
padding-${x4}: ${g_paddin}px;
}
#workspaces,
#taskbar {
padding: 0px;
}
#custom-r_end {
border-radius: ${x1rb_radius}px ${x2rb_radius}px ${x3rb_radius}px ${x4rb_radius}px;
margin-${x4}: ${e_margin}px;
padding-${x4}: ${e_paddin}px;
}
#custom-l_end {
border-radius: ${x1lb_radius}px ${x2lb_radius}px ${x3lb_radius}px ${x4lb_radius}px;
margin-${x3}: ${e_margin}px;
padding-${x3}: ${e_paddin}px;
}
#custom-sr_end {
border-radius: 0px;
margin-${x4}: ${e_margin}px;
padding-${x4}: ${e_paddin}px;
}
#custom-sl_end {
border-radius: 0px;
margin-${x3}: ${e_margin}px;
padding-${x3}: ${e_paddin}px;
}
#custom-rr_end {
border-radius: ${x1rc_radius}px ${x2rc_radius}px ${x3rc_radius}px ${x4rc_radius}px;
margin-${x4}: ${e_margin}px;
padding-${x4}: ${e_paddin}px;
}
#custom-rl_end {
border-radius: ${x1lc_radius}px ${x2lc_radius}px ${x3lc_radius}px ${x4lc_radius}px;
margin-${x3}: ${e_margin}px;
padding-${x3}: ${e_paddin}px;
}
+17
View File
@@ -0,0 +1,17 @@
"wlr/taskbar": {
"format": "{icon}",
"rotate": ${r_deg},
"icon-size": ${i_task},
"icon-theme": "${i_theme}",
"spacing": 0,
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"Alacritty"
],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
}
},
+11
View File
@@ -0,0 +1,11 @@
"custom/theme": {
"format": "{}",
"rotate": ${r_deg},
"exec": "echo ; echo 󰟡 switch theme",
"on-click": "themeswitch.sh -n",
"on-click-right": "themeswitch.sh -p",
"on-click-middle": "sleep 0.1 && themeselect.sh",
"interval" : 86400, // once every day
"tooltip": true
},
+6
View File
@@ -0,0 +1,6 @@
"tray": {
"icon-size": ${i_size},
"rotate": ${r_deg},
"spacing": 5
},
+10
View File
@@ -0,0 +1,10 @@
"custom/updates": {
"exec": "systemupdate.sh",
"return-type": "json",
"format": "{}",
"rotate": ${r_deg},
"on-click": "hyprctl dispatch exec 'systemupdate.sh up'",
"interval": 86400, // once every day
"tooltip": true,
"signal": 20
},
@@ -0,0 +1,11 @@
"custom/wallchange": {
"format": "{}",
"rotate": ${r_deg},
"exec": "echo ; echo 󰆊 switch wallpaper",
"on-click": "swwwallpaper.sh -n",
"on-click-right": "swwwallpaper.sh -p",
"on-click-middle": "sleep 0.1 && swwwallselect.sh",
"interval" : 86400, // once every day
"tooltip": true
},
+35
View File
@@ -0,0 +1,35 @@
{
"hyprland/window": {
"format": " {}",
"rotate": 0,
"separate-outputs": true,
"max-length": 1000,
"rewrite": {
"(.*) — Kitty": " $1",
"(.*)~": " $1",
"(.*) — Mozilla Firefox": "󰈹 $1",
"(.*)Mozilla Firefox": "󰈹 Firefox",
"(.*) — LibreWolf": "󰈹 $1",
"(.*)LibreWolf": "󰈹 LibreWolf",
"(.*) — Chromium": " $1",
"(.*)Chromium": " Chromium",
"(.*) - VSCodium": " $1",
"(.*)VSCodium": " VSCodium",
"(.*)Code - OSS": "󰨞 $1",
"(.*) - Visual Studio Code": "󰨞 $1",
"(.*)Visual Studio Code": "󰨞 Code",
"(.*) — Dolphin": "󰉋 $1",
"(.*) - Obsidian(.*)": "󰠮 $1",
"(.*)Ferdium": "󰭻 Ferdium",
"(.*)FreeTube": " FreeTube",
"(.*)Freetube": " FreeTube",
"(.*) - VLC media player": "󰕼 $1",
"(.*)Steam": "󰓓 Steam",
"(.*)Neovide": " Nvim",
"(.*)Gajim": "󰭹 Gajim",
"(.*)KeePassXC": " KeePassXC",
"(.*)Betterbird": " Betterbird",
"(.*)Spotify": "󰓇 Spotify"
}
}
}
@@ -0,0 +1,13 @@
"hyprland/workspaces": {
"disable-scroll": true,
"rotate": ${r_deg},
"all-outputs": true,
"active-only": false,
"on-click": "activate",
"disable-scroll": false,
"on-scroll-up": "hyprctl dispatch workspace -1",
"on-scroll-down": "hyprctl dispatch workspace +1",
"persistent-workspaces": {
}
},
+10
View File
@@ -0,0 +1,10 @@
@define-color bar-bg rgba(0, 0, 0, 0.1);
@define-color main-bg rgba(0, 0, 0, 0.1);
@define-color main-fg #cdd6f4;
@define-color wb-act-bg #a6adc8;
@define-color wb-act-fg #313244;
@define-color wb-hvr-bg #f5c2e7;
@define-color wb-hvr-fg #313244;
+497
View File
@@ -0,0 +1,497 @@
//
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: ~/.config/zellij/config.kdl.bak
//
keybinds clear-defaults=true {
locked {
bind "Alt g" { SwitchToMode "normal"; }
}
pane {
bind "h" "left" { MoveFocus "left"; }
bind "j" "down" { MoveFocus "down"; }
bind "k" "up" { MoveFocus "up"; }
bind "l" "right" { MoveFocus "right"; }
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
bind "d" { NewPane "down"; SwitchToMode "normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
bind "h" { MoveFocus "left"; }
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
bind "n" { NewPane; SwitchToMode "normal"; }
bind "p" { SwitchFocus; }
bind "Alt p" { SwitchToMode "normal"; }
bind "r" { NewPane "right"; SwitchToMode "normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
}
tab {
bind "h" "left" { GoToPreviousTab; }
bind "j" "down" { GoToNextTab; }
bind "k" "up" { GoToPreviousTab; }
bind "l" "right" { GoToNextTab; }
bind "1" { GoToTab 1; SwitchToMode "normal"; }
bind "2" { GoToTab 2; SwitchToMode "normal"; }
bind "3" { GoToTab 3; SwitchToMode "normal"; }
bind "4" { GoToTab 4; SwitchToMode "normal"; }
bind "5" { GoToTab 5; SwitchToMode "normal"; }
bind "6" { GoToTab 6; SwitchToMode "normal"; }
bind "7" { GoToTab 7; SwitchToMode "normal"; }
bind "8" { GoToTab 8; SwitchToMode "normal"; }
bind "9" { GoToTab 9; SwitchToMode "normal"; }
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
bind "b" { BreakPane; SwitchToMode "normal"; }
bind "h" { GoToPreviousTab; }
bind "j" { GoToNextTab; }
bind "k" { GoToPreviousTab; }
bind "l" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "normal"; }
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
bind "Alt t" { SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "normal"; }
bind "tab" { ToggleTab; }
}
resize {
bind "h" "left" { Resize "Increase left"; }
bind "j" "down" { Resize "Increase down"; }
bind "k" "up" { Resize "Increase up"; }
bind "l" "right" { Resize "Increase right"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "=" { Resize "Increase"; }
bind "H" { Resize "Decrease left"; }
bind "J" { Resize "Decrease down"; }
bind "K" { Resize "Decrease up"; }
bind "L" { Resize "Decrease right"; }
bind "h" { Resize "Increase left"; }
bind "j" { Resize "Increase down"; }
bind "k" { Resize "Increase up"; }
bind "l" { Resize "Increase right"; }
bind "Alt n" { SwitchToMode "normal"; }
}
move {
bind "h" "left" { MovePane "left"; }
bind "j" "down" { MovePane "down"; }
bind "k" "up" { MovePane "up"; }
bind "l" "right" { MovePane "right"; }
bind "h" { MovePane "left"; }
bind "Alt h" { SwitchToMode "normal"; }
bind "j" { MovePane "down"; }
bind "k" { MovePane "up"; }
bind "l" { MovePane "right"; }
bind "n" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "tab" { MovePane; }
}
scroll {
bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; }
bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; }
bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
bind "e" { EditScrollback; SwitchToMode "normal"; }
bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; }
bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; }
bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
bind "Alt s" { SwitchToMode "normal"; }
}
search {
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "n" { Search "down"; }
bind "o" { SearchToggleOption "WholeWord"; }
bind "p" { Search "up"; }
bind "Ctrl s" { SwitchToMode "normal"; }
bind "w" { SearchToggleOption "Wrap"; }
}
session {
bind "a" {
LaunchOrFocusPlugin "zellij:about" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "Alt o" { SwitchToMode "normal"; }
bind "p" {
LaunchOrFocusPlugin "plugin-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
}
shared_among "normal" "locked" {
bind "Ctrl Alt left" { MoveFocusOrTab "left"; }
bind "Ctrl Alt down" { MoveFocus "down"; }
bind "Ctrl Alt up" { MoveFocus "up"; }
bind "Ctrl Alt right" { MoveFocusOrTab "right"; }
bind "Ctrl Alt +" { Resize "Increase"; }
bind "Ctrl Alt -" { Resize "Decrease"; }
bind "Ctrl Alt =" { Resize "Increase"; }
bind "Ctrl Alt [" { PreviousSwapLayout; }
bind "Ctrl Alt ]" { NextSwapLayout; }
bind "Ctrl Alt f" { ToggleFloatingPanes; }
bind "Ctrl Alt h" { MoveFocusOrTab "left"; }
bind "Ctrl Alt i" { MoveTab "left"; }
bind "Ctrl Alt j" { MoveFocus "down"; }
bind "Ctrl Alt k" { MoveFocus "up"; }
bind "Ctrl Alt l" { MoveFocusOrTab "right"; }
bind "Ctrl Alt n" { NewPane; }
bind "Ctrl Alt o" { MoveTab "right"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" "move" "prompt" "tmux" {
bind "Alt h" { SwitchToMode "move"; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Alt g" { SwitchToMode "locked"; }
bind "Alt q" { Quit; }
}
shared_except "locked" "entersearch" "renametab" "renamepane" "session" "prompt" "tmux" {
bind "Alt o" { SwitchToMode "session"; }
}
shared_except "locked" "scroll" "search" "tmux" {
bind "Ctrl b" { SwitchToMode "tmux"; }
}
shared_except "locked" "scroll" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Alt s" { SwitchToMode "scroll"; }
}
shared_except "locked" "tab" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Alt t" { SwitchToMode "tab"; }
}
shared_except "locked" "pane" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Alt p" { SwitchToMode "pane"; }
}
shared_except "locked" "resize" "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Alt n" { SwitchToMode "resize"; }
}
shared_except "normal" "locked" {
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt =" { Resize "Increase"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt f" { ToggleFloatingPanes; }
bind "Alt i" { MoveTab "left"; }
}
shared_except "normal" "locked" "entersearch" {
bind "enter" { SwitchToMode "normal"; }
}
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
bind "esc" { SwitchToMode "normal"; }
}
shared_except "normal" "locked" "scroll" {
bind "Alt left" { MoveFocusOrTab "left"; }
bind "Alt down" { MoveFocus "down"; }
bind "Alt up" { MoveFocus "up"; }
bind "Alt right" { MoveFocusOrTab "right"; }
bind "Alt j" { MoveFocus "down"; }
bind "Alt k" { MoveFocus "up"; }
bind "Alt l" { MoveFocusOrTab "right"; }
}
shared_among "pane" "tmux" {
bind "x" { CloseFocus; SwitchToMode "normal"; }
}
shared_among "scroll" "search" {
bind "PageDown" { PageScrollDown; }
bind "PageUp" { PageScrollUp; }
bind "left" { PageScrollUp; }
bind "down" { ScrollDown; }
bind "up" { ScrollUp; }
bind "right" { PageScrollDown; }
bind "Ctrl b" { PageScrollUp; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
bind "d" { HalfPageScrollDown; }
bind "Ctrl f" { PageScrollDown; }
bind "h" { PageScrollUp; }
bind "j" { ScrollDown; }
bind "k" { ScrollUp; }
bind "l" { PageScrollDown; }
bind "u" { HalfPageScrollUp; }
}
entersearch {
bind "Ctrl c" { SwitchToMode "scroll"; }
bind "esc" { SwitchToMode "scroll"; }
bind "enter" { SwitchToMode "search"; }
}
shared_among "entersearch" "renametab" "renamepane" "prompt" "tmux" {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Alt h" { MoveFocusOrTab "left"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Alt n" { NewPane; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Alt o" { MoveTab "right"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl q" { Quit; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl t" { SwitchToMode "tab"; }
}
renametab {
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
}
shared_among "renametab" "renamepane" {
bind "Ctrl c" { SwitchToMode "normal"; }
}
renamepane {
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
}
shared_among "session" "tmux" {
bind "d" { Detach; }
}
tmux {
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
bind "space" { NextSwapLayout; }
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
bind "%" { NewPane "right"; SwitchToMode "normal"; }
bind "," { SwitchToMode "renametab"; }
bind "[" { SwitchToMode "scroll"; }
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
bind "c" { NewTab; SwitchToMode "normal"; }
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
bind "n" { GoToNextTab; SwitchToMode "normal"; }
bind "o" { FocusNextPane; }
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
about location="zellij:about"
compact-bar location="zellij:compact-bar"
configuration location="zellij:configuration"
filepicker location="zellij:strider" {
cwd "/"
}
plugin-manager location="zellij:plugin-manager"
session-manager location="zellij:session-manager"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
tab-bar location="zellij:tab-bar"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
}
// Plugins to load in the background when a new session starts
// eg. "file:/path/to/my-plugin.wasm"
// eg. "https://example.com/my-plugin.wasm"
load_plugins {
}
// Use a simplified UI without special fonts (arrow glyphs)
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "gruvbox-dark" // defined in themes/gruvbox-dark.kdl
// Choose the base input mode of zellij.
// Default: normal
//
default_mode "normal"
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd "/tmp"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/tmp"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/tmp"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Toggle having pane frames around the panes
// Options:
// - true (default, enabled)
// - false
//
// pane_frames false
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
//
// copy_command "pbcopy"
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable automatic copying (and clearing) of selection when releasing mouse
// Default: true
//
// copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
// scrollback_editor "/usr/bin/vim"
// A fixed name to always give the Zellij session.
// Consider also setting `attach_to_session true,`
// otherwise this will error if such a session exists.
// Default: <RANDOM>
//
// session_name "My singleton session"
// When `session_name` is provided, attaches to that session
// if it is already running or creates it otherwise.
// Default: false
//
// attach_to_session true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout false
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
// serialize_pane_viewport false
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// How often in seconds sessions are serialized
//
// serialization_interval 10000
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
// disable_session_metadata false
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
// support_kitty_keyboard_protocol false
// Whether to stack panes when resizing beyond a certain size
// Default: true
//
// stacked_resize false
// Whether to show tips on startup
// Default: true
//
// show_startup_tips false
// Whether to show release notes on first version run
// Default: true
//
// show_release_notes false
+120
View File
@@ -0,0 +1,120 @@
themes {
gruvbox-dark {
text_unselected {
base 251 241 199
background 60 56 54
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
text_selected {
base 251 241 199
background 80 73 69
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
ribbon_selected {
base 60 56 54
background 152 151 26
emphasis_0 204 36 29
emphasis_1 214 93 14
emphasis_2 177 98 134
emphasis_3 69 133 136
}
ribbon_unselected {
base 60 56 54
background 235 219 178
emphasis_0 204 36 29
emphasis_1 251 241 199
emphasis_2 69 133 136
emphasis_3 177 98 134
}
table_title {
base 152 151 26
background 0
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
table_cell_selected {
base 251 241 199
background 80 73 69
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
table_cell_unselected {
base 251 241 199
background 60 56 54
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
list_selected {
base 251 241 199
background 80 73 69
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
list_unselected {
base 251 241 199
background 60 56 54
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 152 151 26
emphasis_3 177 98 134
}
frame_selected {
base 152 151 26
background 0
emphasis_0 214 93 14
emphasis_1 104 157 106
emphasis_2 177 98 134
emphasis_3 0
}
frame_highlight {
base 214 93 14
background 0
emphasis_0 177 98 134
emphasis_1 214 93 14
emphasis_2 214 93 14
emphasis_3 214 93 14
}
exit_code_success {
base 152 151 26
background 0
emphasis_0 104 157 106
emphasis_1 60 56 54
emphasis_2 177 98 134
emphasis_3 69 133 136
}
exit_code_error {
base 204 36 29
background 0
emphasis_0 215 153 33
emphasis_1 0
emphasis_2 0
emphasis_3 0
}
multiplayer_user_colors {
player_1 177 98 134
player_2 69 133 136
player_3 0
player_4 215 153 33
player_5 104 157 106
player_6 0
player_7 204 36 29
player_8 0
player_9 0
player_10 0
}
}
}