[Sync] Lua Hyprland chain, licence cleanup

This commit is contained in:
Coja committed 2026-11-09 18:25:35 +01:00
1 parent 93b4f695ce
commit 47166d877f
183 files changed
+5618 -5839

No files matched your search

+2 -1
View File
@@ -1,4 +1,5 @@
# Synthwave '84 — matches ../kitty/theme.conf
# Colours from Robb Owen's SynthWave '84 palette, arranged for this repo (yellow and magenta
# swapped). Background/foreground match kitty.conf's own colours.
[colors.primary]
background = "#262335"
+1
View File
@@ -0,0 +1 @@
user-db:hyde_hyprland
@@ -0,0 +1,12 @@
# gui package — put HyDE's script dir on the systemd *user manager* PATH, so
# user units can resolve bare hyde script names. Nothing else on the system ever
# adds it: HyDE only self-bootstraps PATH inside its own wrappers
# (hyde-shell/app.sh), so anything a unit execs bare is "command not found" —
# hypridle's lock_cmd was the incident (TROUBLESHOOTING.md symptom 8).
# Lifecycle: the environment generator reads this at user-manager start, but the
# session-start PATH import overwrites the manager's PATH afterwards — daemon-reload
# won't re-apply this over an imported PATH; only relogin does. The fish twin
# gui/.config/fish/conf.d/hyde-path.fish is what makes that import *carry* the dir
# (it feeds the session PATH the import copies from), so both files are needed and
# together they hold in either order.
PATH=$HOME/.local/lib/hyde:$PATH
+23 -17
View File
@@ -1,26 +1,32 @@
## gui package — pin which config Hyprland starts with.
##
## HyDE 26.x configures Hyprland in Lua and points HYPRLAND_CONFIG at
## ~/.local/share/hypr/hyde.lua. Once that is set, Hyprland never reads
## ~/.config/hypr/hyprland.conf, so the entire dots hypr layer (theme, keybinds,
## window rules, monitors, userprefs) is bypassed and the session comes up as
## stock HyDE — silently, with `hyprctl configerrors` empty.
## Points HYPRLAND_CONFIG at HyDE's Lua entry point, explicitly. The Lua chain
## loads HyDE's lua/ modules and then the user override
## ~/.config/hypr/hyprland.lua (repo: gui/.config/hypr/hyprland.lua, which pulls
## in the per-host host.lua). None of the old hyprlang .conf files are read in
## Lua mode. See LUA-PORT.md.
##
## Why it is set from *fish* of all places: the update dropped a real
## ~/.config/fish/conf.d/hyde.fish (untracked, HyDE-owned) which exports it, and
## fish sources every conf.d/*.fish at startup. SDDM launches the session through
## the login shell (/usr/bin/start-hyprland, the `hyprland.desktop` entry — not
## Why it is set from *fish* of all places: HyDE's untracked
## ~/.config/fish/conf.d/hyde.fish exports it, and fish sources every
## conf.d/*.fish at startup. SDDM launches the session through the login shell
## (/usr/bin/start-hyprland, the `hyprland.desktop` entry — not
## `hyprland-uwsm.desktop`), so the compositor inherits whatever fish exported.
## HyDE's snippet only assigns `if test -z "$HYPRLAND_CONFIG"`, and conf.d files
## load in alphabetical order, so this file's `00-` prefix means ours is already
## set by the time hyde.fish looks — do not rename it above `hyde.fish`.
##
## The uwsm twin of this lives in gui/.config/uwsm/env-hyprland.d/10-dots.sh and
## covers the `hyprland-uwsm.desktop` session entry, which sources uwsm env files
## instead of the shell. Both are needed; neither is sufficient alone.
## The uwsm twin lives in gui/.config/uwsm/env-hyprland.d/10-dots.sh and covers
## the `hyprland-uwsm.desktop` session entry. Both are needed; neither is
## sufficient alone. Keeping the pins alive (instead of trusting HyDE's default)
## preserves the invariant that the dots repo decides the config, and makes any
## rollback a one-line edit. Takes effect at session start — relogin, not
## `hyprctl reload`.
##
## STOPGAP: this pins ~/.local/share/hyde/hyprland.conf, which current HyDE no
## longer ships (ours is a leftover of the pre-update install). The supported
## path is porting the hypr layer to ~/.config/hypr/hyprland.lua. See
## HYDE-UPDATE.md. Takes effect at session start — relogin, not `hyprctl reload`.
set -gx HYPRLAND_CONFIG "$HOME/.config/hypr/hyprland.conf"
## ROLLBACK to hyprlang (the chain was retired at LUA-PORT.md step 8,
## 2026-09-10): restore gui/.config/hypr, wm/.config/hypr, lw/.config/hypr and
## gui/.local/share/hyde from bddbbf3 (the last pre-step-8 commit), ./install.sh, point both
## pins back at "$HOME/.config/hypr/hyprland.conf" and relogin. d851213 is the
## last hyprlang `main` (the port merged 2026-11-09).
set -l hypr_data "$XDG_DATA_HOME"
test -n "$hypr_data"; or set hypr_data "$HOME/.local/share"
set -gx HYPRLAND_CONFIG "$hypr_data/hypr/hyde.lua"
+12
View File
@@ -0,0 +1,12 @@
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
"diagnostics": {
"globals": ["hl", "hyde", "check_require"]
},
"workspace": {
"library": ["/usr/share/hypr/stubs", "~/.local/share/hypr/lua"]
},
"runtime": {
"version": "Lua 5.5"
}
}
-12
View File
@@ -1,12 +0,0 @@
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,18 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,35 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,29 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,9 +0,0 @@
# // ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# // █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
# See https://wiki.hyprland.org/Configuring/Animations/
# credits: https://github.com/prasanthrangan/hyprdots
animations:enabled=false
-23
View File
@@ -1,23 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,43 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,26 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,23 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,32 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,58 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,50 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
}
@@ -1,29 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
}
@@ -1,18 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,22 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
}
@@ -1,43 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
@@ -1,18 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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
}
-34
View File
@@ -1,34 +0,0 @@
# -----------------------------------------------------
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
#
# 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%
}
+263
View File
@@ -0,0 +1,263 @@
-- gui package — the dots keybinds, split out of ./hyprland.lua. Required there
-- after the app/start overrides (the launchers read hc.app.*) and before
-- ./host.lua.
local hc = hyde.config
local MOD = hc.modifiers.main
local home = os.getenv("HOME") or ""
-- ── Keybinds ─────────────────────────────────────────────────────────────────
-- Policy: preserve what the dots keybindings.conf did live until the port —
-- where a dots bind and a HyDE bind share a combo, the dots action wins and
-- the displaced HyDE action is noted. Binds identical in both are not
-- repeated here (volume/media/brightness, screenshots, Super+Q/W,
-- rofi menus, Super+L lock, Super+Shift+F pin, Super+S scratchpad family,
-- Super+Z/X + mouse drag/resize, Super+J togglesplit, Super+T/E/B via the
-- app.* overrides in hyprland.lua, Super+Alt+G gamemode, Ctrl+Shift+Esc
-- sysmon).
-- Removes every live bind on a combo regardless of flags. hl.bind's dedup only
-- replaces a bind whose flags match exactly; HyDE binds with locked/transparent/
-- repeating flags would otherwise stay live next to ours and double-fire.
local function unbind_all(combo)
-- _active/canonicalize are HyDE-private; if an update renames them, degrade
-- to "the displaced HyDE binds double-fire" instead of erroring here and
-- silently dropping every bind registered below this line.
if not (hyde.binds and hyde.binds._active and hyde.binds.canonicalize) then
return
end
local canon = hyde.binds.canonicalize(combo)
for id, registered in pairs(hyde.binds._active) do
if id:sub(1, #canon + 1) == canon .. "|" then
hl.unbind(registered)
hyde.binds._active[id] = nil
end
end
end
local _F
-- Launchers (dots-only combos, no conflict)
_F = { description = "[Launcher|Apps] work session (kitty c2)" }
hl.bind(MOD .. " + CTRL + I", hl.dsp.exec_cmd("kitty --session " .. home .. "/.config/kitty/c2.conf"), _F)
_F = { description = "[Launcher|Apps] work session (kitty runners)" }
hl.bind(MOD .. " + CTRL + O", hl.dsp.exec_cmd("kitty --session " .. home .. "/.config/kitty/runners.conf"), _F)
_F = { description = "[Launcher|Apps] pyradio (kitty music)" }
hl.bind(MOD .. " + R", hl.dsp.exec_cmd("kitty --session " .. home .. "/.config/kitty/music.conf"), _F)
_F = { description = "[Launcher|Apps] ferdium" }
hl.bind(MOD .. " + Y", hl.dsp.exec_cmd("ferdium"), _F)
_F = { description = "[Launcher|Apps] betterbird" }
hl.bind(MOD .. " + M", hl.dsp.exec_cmd("betterbird"), _F)
_F = { description = "[Launcher|Apps] freetube" }
hl.bind(MOD .. " + F", hl.dsp.exec_cmd("freetube"), _F)
_F = { description = "[Launcher|Apps] web browser (librewolf)" }
hl.bind(MOD .. " + SHIFT + B", hl.dsp.exec_cmd("librewolf"), _F)
_F = { description = "[Launcher|Apps] terminal emulator (st)" }
hl.bind(MOD .. " + CTRL + T", hl.dsp.exec_cmd("st"), _F)
_F = { description = "[Launcher|Apps] terminal emulator" }
hl.bind("CTRL + ALT + T", hl.dsp.exec_cmd(hc.app.terminal), _F)
-- Rebound fresh so the hc.app.* overrides actually apply: HyDE's binds
-- evaluated _apps.browser/_apps.explorer when key_binds.lua ran, baking in the
-- hyde-shell open wrappers.
_F = { description = "[Launcher|Apps] web browser" }
hl.bind(MOD .. " + B", hl.dsp.exec_cmd("zen-browser"), _F)
_F = { description = "[Launcher|Apps] file explorer" }
hl.bind(MOD .. " + E", hl.dsp.exec_cmd("dolphin"), _F)
-- Conflict resolutions (dots action wins; displaced HyDE action noted)
_F = { description = "[Launcher|Apps] web browser (firefox)" } -- displaces HyDE: hide waybar
hl.bind(MOD .. " + CTRL + B", hl.dsp.exec_cmd("firefox"), _F)
_F = { description = "[Launcher|Apps] xmpp (gajim)" } -- displaces HyDE: toggle group (dots keeps it on Super+Shift+G)
hl.bind(MOD .. " + G", hl.dsp.exec_cmd("gajim"), _F)
_F = { description = "[Window Management] toggle group" } -- displaces HyDE: game launcher
hl.bind(MOD .. " + SHIFT + G", hl.dsp.group.toggle(), _F)
_F = { description = "[Launcher|Apps] terminal emulator (alacritty)" } -- displaces HyDE: theme select menu
hl.bind(MOD .. " + SHIFT + T", hl.dsp.exec_cmd("alacritty"), _F)
-- Through `wbar`, never killall: under supervision a killed waybar is back in
-- seconds, and a raw relaunch next to it means two bars.
_F = { description = "[Theming and Wallpaper] reload hyprland + waybar" } -- displaces HyDE: wallbash mode menu
hl.bind(MOD .. " + SHIFT + R", hl.dsp.exec_cmd("hyprctl reload; " .. home .. "/.local/bin/wbar restart"), _F)
_F = { description = "[Launcher|Apps] neovim" } -- displaces HyDE: code editor
hl.bind(MOD .. " + C", hl.dsp.exec_cmd("kitty nvim"), _F)
-- Super+K keepassxc — HyDE's keyboard-layout switch carries locked=true, so a
-- plain rebind would leave both live (flags are part of a bind's identity).
unbind_all(MOD .. " + K") -- displaces HyDE: keyboard layout switch (locked)
_F = { description = "[Launcher|Apps] password manager" }
hl.bind(MOD .. " + K", hl.dsp.exec_cmd("keepassxc"), _F)
-- Alt+Tab focus-down — HyDE ships a 4-bind alt-tab switcher (transparent/
-- release flags); remove the whole cluster, half a switcher is worse than none.
unbind_all("ALT + TAB") -- displaces HyDE: alt-tab switcher (cycle next)
unbind_all("ALT + SHIFT + TAB")
unbind_all("ALT + ALT_L")
unbind_all("ALT + ALT_R")
_F = { description = "[Window Management|Change focus] focus down" }
hl.bind("ALT + TAB", hl.dsp.focus({ direction = "down" }), _F)
-- Waybar toggle (custom layout; the legacy Ctrl+Alt+W). systemctl stop is a
-- deliberate stop, so Restart=always does not undo it.
_F = { description = "[Window Management] toggle waybar" }
hl.bind("CTRL + ALT + W", hl.dsp.exec_cmd(home .. "/.local/bin/wbar toggle"), _F)
-- Fullscreen on Alt+Return (Shift+F11 stays HyDE's cycle-fullscreen).
-- Native dispatcher, not exec "hyprctl dispatch fullscreen": in Lua mode that
-- CLI arg is evaluated as hl.dispatch(fullscreen) — a nil global, dead bind.
_F = { description = "[Window Management] toggle fullscreen" }
hl.bind("ALT + RETURN", hl.dsp.window.fullscreen(), _F)
-- No Super+Delete: HyDE's exit() ends the session on the spot, no confirm, and
-- the combo is one slipped finger from Super+Alt+Delete. Ctrl+Alt+Delete (the
-- logout menu) stays the way out.
unbind_all(MOD .. " + Delete") -- displaces HyDE: exit hyprland session
-- ── Focus (arrows + hjkl) ────────────────────────────────────────────────────
-- Super+Ctrl+Up/Down: movefocus — displaces HyDE: nearest-empty (Down), which
-- moves to Super+Ctrl+E below. Super+Ctrl+Left/Right move the window to r±1
-- (Workspaces below); r±1 nav is on Super+Left/Right and Super+Ctrl+Shift.
for dir, key in pairs({ left = "LEFT", right = "RIGHT", up = "UP", down = "DOWN" }) do
_F = { description = "[Window Management|Change focus] focus " .. dir }
if key == "UP" or key == "DOWN" then
hl.bind(MOD .. " + CTRL + " .. key, hl.dsp.focus({ direction = dir }), _F)
end
hl.bind("ALT + CTRL + " .. key, hl.dsp.focus({ direction = dir }), _F)
end
for dir, key in pairs({ left = "H", right = "L", up = "K", down = "J" }) do
_F = { description = "[Window Management|Change focus] focus " .. dir }
hl.bind("ALT + CTRL + " .. key, hl.dsp.focus({ direction = dir }), _F)
end
-- Super+Ctrl+H/L carried a deliberate double action in the hyprlang chain:
-- changegroupactive (a no-op outside a group) AND movefocus fired together.
-- Lua dedup would collapse the pair, so one function does both.
-- (Replaces HyDE's plain group-nav binds on the same combos.) Unlike the
-- arrows, they do not move the window to r±1 — that is Super+Ctrl+Alt+H/L.
_F = { description = "[Window Management|Change focus] group prev + focus left" }
hl.bind(MOD .. " + CTRL + H", function()
hl.dispatch(hl.dsp.group.prev())
hl.dispatch(hl.dsp.focus({ direction = "left" }))
end, _F)
_F = { description = "[Window Management|Change focus] group next + focus right" }
hl.bind(MOD .. " + CTRL + L", function()
hl.dispatch(hl.dsp.group.next())
hl.dispatch(hl.dsp.focus({ direction = "right" }))
end, _F)
_F = { description = "[Window Management|Change focus] focus up" }
hl.bind(MOD .. " + CTRL + K", hl.dsp.focus({ direction = "up" }), _F)
_F = { description = "[Window Management|Change focus] focus down" }
hl.bind(MOD .. " + CTRL + J", hl.dsp.focus({ direction = "down" }), _F)
-- ── Resize (add hjkl to HyDE's arrow set) ────────────────────────────────────
-- HyDE puts a flagless calculator menu on Super+Shift+K; our repeating resize
-- would double-fire next to it (flag mismatch), so drop the calculator.
unbind_all(MOD .. " + SHIFT + K") -- displaces HyDE: calculator menu
for _, m in ipairs({ { "L", 30, 0 }, { "H", -30, 0 }, { "K", 0, -30 }, { "J", 0, 30 } }) do
_F = { description = "[Window Management|Resize Active Window] resize window", repeating = true }
hl.bind(MOD .. " + SHIFT + " .. m[1], hl.dsp.window.resize({ x = m[2], y = m[3], relative = true }), _F)
end
-- ── Move active window (Super+Alt, float-aware: moveactive / swapwindow) ─────
-- Displaces HyDE: wallpaper next/prev (Alt+Right/Left) and waybar layout
-- next/prev (Alt+Up/Down); wallpaper moves to Super+Alt+Ctrl+Shift below,
-- as in the dots chain. HyDE's binds carry no flags but ours are repeating,
-- so an explicit unbind is needed to keep them from double-firing.
unbind_all(MOD .. " + ALT + RIGHT")
unbind_all(MOD .. " + ALT + LEFT")
unbind_all(MOD .. " + ALT + UP")
unbind_all(MOD .. " + ALT + DOWN")
local function dots_move_window(dir, pix)
local lut = { l = { -1, 0 }, r = { 1, 0 }, u = { 0, -1 }, d = { 0, 1 } }
local m = lut[dir]
return function()
local w = hl.get_active_window()
if w and w.floating then
hl.dispatch(hl.dsp.window.move({ x = m[1] * pix, y = m[2] * pix, relative = true }))
else
local names = { l = "left", r = "right", u = "up", d = "down" }
hl.dispatch(hl.dsp.window.swap({ direction = names[dir] }))
end
end
end
for _, m in ipairs({
{ "LEFT", "l" },
{ "RIGHT", "r" },
{ "UP", "u" },
{ "DOWN", "d" },
{ "H", "l" },
{ "L", "r" },
{ "K", "u" },
{ "J", "d" },
}) do
_F = { description = "[Window Management|Move active window] move " .. m[2], repeating = true }
hl.bind(MOD .. " + ALT + " .. m[1], dots_move_window(m[2], 30), _F)
end
-- ── Wallpaper (moved off Super+Alt by the dots chain) ────────────────────────
_F = { description = "[Theming and Wallpaper] next global wallpaper" }
hl.bind(MOD .. " + ALT + CTRL + SHIFT + RIGHT", hl.dsp.exec_cmd(hyde.sh.wallpaper("--next")), _F)
_F = { description = "[Theming and Wallpaper] previous global wallpaper" }
hl.bind(MOD .. " + ALT + CTRL + SHIFT + LEFT", hl.dsp.exec_cmd(hyde.sh.wallpaper("--prev")), _F)
-- ── Workspaces ───────────────────────────────────────────────────────────────
-- r~N = Nth workspace of the FOCUSED monitor — load-bearing on the 3-monitor
-- workspace sets (1-10 / 11-20 / 21-30 pinned per monitor in host.lua).
-- HyDE's own binds pass "r+1"/"empty" strings the same way; r~N is the one
-- thing to verify first in the live session.
for i = 1, 10 do
local key = (i == 10) and 0 or i
_F = { description = "[Workspaces|Navigation] navigate to workspace " .. i .. " (monitor-relative)" }
hl.bind(MOD .. " + " .. key, hl.dsp.focus({ workspace = "r~" .. i }), _F) -- displaces HyDE: absolute workspace N
_F = { description = "[Workspaces|Move window to workspace] move to workspace " .. i .. " (monitor-relative)" }
hl.bind(MOD .. " + CTRL + " .. key, hl.dsp.window.move({ workspace = "r~" .. i }), _F)
_F = { description = "[Workspaces|Move window silently] move to workspace " .. i .. " (monitor-relative)" }
hl.bind(MOD .. " + ALT + " .. key, hl.dsp.window.move({ workspace = "r~" .. i, follow = false }), _F) -- displaces HyDE: absolute silent move
end
-- Relative workspace nav on Super+Ctrl+Shift (dots), displacing HyDE's
-- move-window-in-workspace family there (repeating flags -> explicit unbind;
-- dots does window movement on Super+Alt instead).
unbind_all(MOD .. " + SHIFT + CTRL + LEFT")
unbind_all(MOD .. " + SHIFT + CTRL + RIGHT")
unbind_all(MOD .. " + SHIFT + CTRL + UP")
unbind_all(MOD .. " + SHIFT + CTRL + DOWN")
_F = { description = "[Workspaces|Navigation|Relative workspace] change active workspace forwards" }
hl.bind(MOD .. " + CTRL + SHIFT + RIGHT", hl.dsp.focus({ workspace = "r+1" }), _F)
hl.bind(MOD .. " + CTRL + SHIFT + L", hl.dsp.focus({ workspace = "r+1" }), _F)
_F = { description = "[Workspaces|Navigation|Relative workspace] change active workspace backwards" }
hl.bind(MOD .. " + CTRL + SHIFT + LEFT", hl.dsp.focus({ workspace = "r-1" }), _F)
hl.bind(MOD .. " + CTRL + SHIFT + H", hl.dsp.focus({ workspace = "r-1" }), _F)
_F = { description = "[Workspaces|Navigation|Relative workspace] change active workspace forwards" }
hl.bind(MOD .. " + RIGHT", hl.dsp.focus({ workspace = "r+1" }), _F)
_F = { description = "[Workspaces|Navigation|Relative workspace] change active workspace backwards" }
hl.bind(MOD .. " + LEFT", hl.dsp.focus({ workspace = "r-1" }), _F)
_F = { description = "[Workspaces|Move window to workspace|Relative workspace] move focused window to next workspace" }
hl.bind(MOD .. " + CTRL + RIGHT", hl.dsp.window.move({ workspace = "r+1" }), _F) -- displaces HyDE: workspace r+1
_F = {
description = "[Workspaces|Move window to workspace|Relative workspace] move focused window to previous workspace",
}
hl.bind(MOD .. " + CTRL + LEFT", hl.dsp.window.move({ workspace = "r-1" }), _F) -- displaces HyDE: workspace r-1
-- E for "empty" — Super+Ctrl+Down is taken by movefocus above
_F = { description = "[Workspaces|Navigation] navigate to the nearest empty workspace" }
hl.bind(MOD .. " + CTRL + E", hl.dsp.focus({ workspace = "empty" }), _F)
-- Move window to relative workspace: HyDE ships the arrow pair; add hjkl.
_F = { description = "[Workspaces|Move window to workspace|Relative workspace] move focused window to next workspace" }
hl.bind(MOD .. " + CTRL + ALT + L", hl.dsp.window.move({ workspace = "r+1" }), _F)
_F = {
description = "[Workspaces|Move window to workspace|Relative workspace] move focused window to previous workspace",
}
hl.bind(MOD .. " + CTRL + ALT + H", hl.dsp.window.move({ workspace = "r-1" }), _F)
-- ── Hardware controls ────────────────────────────────────────────────────────
-- HyDE binds bare F10/F11/F12 to mute / volume down / volume up (key_binds.lua,
-- locked + repeating -- a plain rebind would leave both live). That is a laptop
-- F-row assumption: the Cantor has no F-row, so F1-F12 only ever arrive from its
-- Vial layer 5 and have to reach applications instead of the mixer. The
-- XF86Audio* binds below them keep the media keys working, so nothing is lost,
-- and Shift+F11 (cycle fullscreen) canonicalizes separately and survives.
unbind_all("F10") -- displaces HyDE: un/mute output
unbind_all("F11") -- displaces HyDE: decrease volume
unbind_all("F12") -- displaces HyDE: increase volume
+122
View File
@@ -0,0 +1,122 @@
-- gui package — the dots layer + window rules, split out of ./hyprland.lua
-- (required there in their original position). Plain hl.* registrations;
-- nothing here depends on the rest of the layer.
-- ── Layer rules ──────────────────────────────────────────────────────────────
-- waybar blur ships upstream (layer_rules.lua), but its ignore_alpha uses the
-- boolean form (default threshold), which drops the blur on low-alpha regions
-- — the cavabar background is rgba(0,0,0,0.2) and went flat. The legacy chain
-- set the threshold to 0 (blur everything) on both bars; restore that exactly.
hl.layer_rule({
name = "dots_cavabar_blur",
match = { namespace = "cavabar" },
blur = true,
ignore_alpha = 0,
})
hl.layer_rule({
name = "dots_waybar_ignore_alpha",
match = { namespace = "waybar" },
ignore_alpha = 0,
})
-- ── Window rules ─────────────────────────────────────────────────────────────
-- Upstream's window_rules.lua consolidates most floats (dialogs, portals,
-- dolphin, nm-*, qt*ct, vlc, pavucontrol, …) and the PiP/modal handling.
-- Ported here: everything the repo's windowrules.conf had that upstream
-- dropped when it went global-opacity — per-app opacity, idle_inhibit,
-- jetbrains popups — plus the floats upstream does not cover.
-- idle_inhibit while fullscreen (media players, browsers)
hl.window_rule({
name = "dots_idle_inhibit_media",
match = { class = "^(.*celluloid.*)$|^(.*mpv.*)$|^(.*vlc.*)$|^(.*[Ss]potify.*)$" },
idle_inhibit = "fullscreen",
})
hl.window_rule({
name = "dots_idle_inhibit_browsers",
match = {
class = "^(.*LibreWolf.*)$|^(.*floorp.*)$|^(.*brave-browser.*)$|^(.*firefox.*)$|^(.*chromium.*)$|^(.*zen.*)$|^(.*vivaldi.*)$",
},
idle_inhibit = "fullscreen",
})
-- per-app opacity ("active inactive fullscreen", hyprlang-style value string --
-- the Lua rule's opacity field is string-typed and takes the whole triple)
hl.window_rule({
name = "dots_opacity_browsers",
match = { class = "^(firefox)$|^(zen)$|^(brave-browser)$" },
opacity = "0.90 0.90 1",
})
hl.window_rule({
name = "dots_opacity_editors_terms",
match = {
class = "^(code-oss)$|^([Cc]ode)$|^(code-url-handler)$|^(code-insiders-url-handler)$|^(kitty)$|^(org.kde.dolphin)$|^(org.kde.ark)$|^(nwg-look)$|^(qt5ct)$|^(qt6ct)$|^(kvantummanager)$",
},
opacity = "0.80 0.80 1",
})
hl.window_rule({
name = "dots_opacity_applets",
match = {
class = "^(org.pulseaudio.pavucontrol)$|^(blueman-manager)$|^(nm-applet)$|^(nm-connection-editor)$|^(hyprpolkitagent)$|^(org.freedesktop.impl.portal.desktop.gtk)$|^(org.freedesktop.impl.portal.desktop.hyprland)$",
},
opacity = "0.80 0.70 1",
})
hl.window_rule({
name = "dots_opacity_spotify_class",
match = { class = "^([Ss]potify)$" },
opacity = "0.70 0.70 1",
})
hl.window_rule({
name = "dots_opacity_spotify_title",
match = { initial_title = "^(Spotify Free)$|^(Spotify Premium)$" },
opacity = "0.70 0.70 1",
})
hl.window_rule({
name = "dots_opacity_blender",
match = { class = "^(blender)$" },
opacity = "1.00 1.00 1",
})
hl.window_rule({
name = "dots_opacity_gtk_apps",
match = { class = "^(com.github.rafostar.Clapper)$" },
opacity = "0.90 0.90",
})
hl.window_rule({
name = "dots_opacity_misc_apps",
match = {
class = "^(com.github.tchx84.Flatseal)$|^(hu.kramo.Cartridges)$|^(com.obsproject.Studio)$|^(gnome-boxes)$|^(vesktop)$|^(discord)$|^(WebCord)$|^(ArmCord)$|^(app.drey.Warp)$|^(net.davidotek.pupgui2)$|^(yad)$|^(Signal)$|^(io.github.alainm23.planify)$|^(io.gitlab.theevilskeleton.Upscaler)$|^(com.github.unrud.VideoDownloader)$|^(io.gitlab.adhami3310.Impression)$|^(io.missioncenter.MissionCenter)$|^(io.github.flattool.Warehouse)$",
},
opacity = "0.80 0.80",
})
-- floats upstream's consolidated list does not cover
hl.window_rule({
name = "dots_float_class",
match = {
class = "^(Signal)$|^(com.github.rafostar.Clapper)$|^(app.drey.Warp)$|^(net.davidotek.pupgui2)$|^(yad)$|^(eog)$|^(io.github.alainm23.planify)$|^(io.gitlab.theevilskeleton.Upscaler)$|^(com.github.unrud.VideoDownloader)$|^(io.gitlab.adhami3310.Impression)$|^(io.missioncenter.MissionCenter)$",
},
float = true,
})
hl.window_rule({
name = "dots_float_title",
match = { title = "^(About Mozilla Firefox)$|^(Ghidra: NO ACTIVE PROJECT.*)$" },
float = true,
})
hl.window_rule({
name = "dots_float_kitty_monitors",
match = { class = "^(kitty)$", title = "^(top)$|^(btop)$|^(htop)$" },
float = true,
})
hl.window_rule({
name = "dots_blender_image_editor",
match = { class = "^(blender)$", initial_title = "^(Image Editor)$" },
float = true,
size = "(monitor_w*0.5) (monitor_h*0.5)",
})
-- jetbrains dropdowns/popups flicker workaround
hl.window_rule({
name = "dots_jetbrains_popups",
match = { class = "^(.*jetbrains.*)$", title = "^(win[0-9]+)$" },
no_initial_focus = true,
})
-4
View File
@@ -1,4 +0,0 @@
# 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").
-154
View File
@@ -1,154 +0,0 @@
#!   ░▒▒▒░░░▓▓          ___________
#! ░░▒▒▒░░░░░▓▓        //___________/
#! ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#! ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#!    ░▒▓▓   ▓▓  //____/
# 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
# Leaving this to HyDE means Super+B runs its `$default.BROWSER`, which is
# `hyde-launch.sh --fall firefox web-browser` — and the 26.x update deprecated that script, so
# every press fired a "hyde-launch.sh is deprecated, please use hyde-shell open instead"
# notification. Naming the browser directly skips the wrapper entirely. This is the primary
# browser only; Super+Shift+B (librewolf) and Super+Ctrl+B (firefox) are set in keybindings.conf.
# `hyde-shell open web-browser` is the modern HyDE equivalent if the xdg default should decide.
$BROWSER = zen-browser # matches the xdg default (zen.desktop)
# $EDITOR = code # default editor, if commented out , will use the default editor
# Same deprecation as $BROWSER above: HyDE's default is `hyde-launch.sh --fall dolphin
# file-manager`, and Super+E in keybindings.conf uses it. $EDITOR is deliberately left to HyDE —
# no active bind reads it (Super+C runs `$TERMINAL nvim`), so there is nothing to fix there.
$EXPLORER = dolphin # matches the xdg default (org.kde.dolphin.desktop)
# $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
# Empty = unset, so HyDE's default `exec-once = $start.BAR` (a bare `waybar`, using HyDE's
# generated config.jsonc/style.css) does not launch a second bar. The bar we actually want is
# launched from userprefs.conf with the custom layout/style.
$start.BAR=
# $start.NOTIFICATIONS=swaync # dunst
# $start.APPTRAY_BLUETOOTH=blueman-applet
# $start.WALLPAPER=$scrPath/wallpaper.sh --global # 26.x: backend-agnostic (awww); swwwallpaper.sh is gone
# $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
# Kept explicitly at the default: nm-applet's tray icon is the one place with a quick
# connect/disconnect MENU (wifi list, VPN) — the bar's `network` module only shows state
# and bandwidth. Tela renders it as a blue circle (its scalable/devices icon); that's the
# theme working, not a bug. Was briefly unset 2026-08-14 — wrong call, the menu was wanted.
$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 monitor’s 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
# dots-icons = repo-tracked overlay theme (gui/.local/share/icons/dots-icons) that inherits
# Tela-circle-dracula and only swaps the tray/status icons for Tela's monochrome panel set at
# every size — without it, waybar on a fractionally-scaled monitor requests 2x sizes and gets
# the colored-circle variants (the blue nm-applet blob). Everything else still comes from Tela.
$ICON_THEME=dots-icons
#$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
+14 -3
View File
@@ -7,7 +7,14 @@
#!    ░▒▓▓   ▓▓  //____/
# $LOCKSCREEN = hyprlock # preferred LOCKSCREEN e.g swaylock
$LOCKSCREEN = lockscreen.sh # Calls $LOCKSCREEN set from hyprland
# Absolute path required: the Lua chain starts hypridle as a systemd user unit
# (hyde-Hyprland-idle.service), and on the SDDM/fish session path the session PATH
# never reaches the user manager (start_up.lua's unconditional `uwsm finalize` runs
# but errors outside a uwsm session, so the import never happens) — a bare
# `lockscreen.sh` is "command not found" there — Super+L, the 240s idle lock and
# before_sleep all silently no-op. The script self-bootstraps its own env
# (hyde-shell init), so the full path alone is sufficient.
$LOCKSCREEN = ~/.local/lib/hyde/lockscreen.sh
general {
lock_cmd = $LOCKSCREEN
@@ -31,10 +38,14 @@ listener {
}
# DPMS off
# Lua-chain form: in Lua mode `hyprctl dispatch` evaluates its argument as Lua, so the hyprlang
# `dpms off` is a syntax error and this listener silently never ran. The table form is the one
# hypridle's own sample uses (/usr/share/hypr/hypridle.conf); a bare bool/string argument acts
# like a toggle — `hl.dsp.dpms("on")` turned the display OFF. main (hyprlang) keeps `dpms off/on`.
listener {
timeout = 2300
on-timeout = hyprctl dispatch dpms off #do not turn off display while media is playing
on-resume = hyprctl dispatch dpms on
on-timeout = hyprctl dispatch 'hl.dsp.dpms({action = "off"})' #do not turn off display while media is playing
on-resume = hyprctl dispatch 'hl.dsp.dpms({action = "on"})'
}
# Suspend
-117
View File
@@ -1,117 +0,0 @@
$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
+128
View File
@@ -0,0 +1,128 @@
-- gui package — the dots Hyprland layer, ported from the hyprlang chain
-- (hyde.conf / userprefs.conf / keybindings.conf / windowrules.conf) to
-- HyDE 26.x's Lua config. Loaded by ~/.local/share/hypr/hyde.lua second-to-last
-- (after every HyDE module, before lua_state.workflows), so plain assignments
-- here override HyDE's defaults. HyDE never overwrites this file.
--
-- The rules and keybinds sections live in ./dots_rules.lua and
-- ./dots_binds.lua, required in place below. Host-specific config (monitors,
-- workspace pins, gaps/rounding, gpu extras) lives in ./host.lua, loaded at
-- the bottom — same layering the hyprlang chain had with
-- `source = ./host.conf`.
-- Bootstrap: Hyprland prefers hyprland.lua as the entry point when started
-- without a config; without this block that path yields a bare cursor. hyde.lua
-- sets `hyde` on its first line, so this runs only when HyDE has not loaded.
-- The `return` matters: dofile(hyde.lua) re-enters this file through
-- check_require("hyprland"), so by the time dofile returns the body below has
-- already run once — falling through would register everything twice.
if not hyde then
local share = os.getenv("XDG_DATA_HOME") or (os.getenv("HOME") .. "/.local/share")
local entry = share .. "/hypr/hyde.lua"
local handle = io.open(entry, "r")
if not handle then
error(
"HyDE is not installed at " .. entry .. ". Run HyDE's install.sh -r, or point Hyprland at your own config."
)
end
handle:close()
dofile(entry)
return
end
local hc = hyde.config
local home = os.getenv("HOME") or ""
-- ── Apps ─────────────────────────────────────────────────────────────────────
-- Named directly (not hyde-shell open --fall …) for the same reason hyde.conf
-- did: skip the wrapper, match the xdg defaults. The assignments cover lazy
-- readers of hc.app.*, but key_binds.lua already baked the defaults into its
-- Super+B/E dispatchers at bind time — hence the explicit rebinds in
-- dots_binds.lua.
hc.app.browser = "zen-browser"
hc.app.explorer = "dolphin"
-- ── Startup ──────────────────────────────────────────────────────────────────
-- One knob suppresses HyDE's plain waybar AND launches the cava rig (was
-- $start.BAR= + a userprefs exec-once). start_up.lua captures hc.start by
-- reference and the hyprland.start event fires after this file loads, so the
-- override lands in time. `wbar` (gui/.local/bin) runs the rig as the
-- dots-waybar.service transient unit with Restart=always: waybar 0.15.0 dies on
-- every DP-2 link drop/return, and as a plain scope nothing relaunched it.
-- Absolute path: the exec env's PATH is not guaranteed to hold ~/.local/bin.
hc.start.bar = home .. "/.local/bin/wbar start"
-- Not part of the legacy session — the Lua defaults would newly launch these
-- (both binaries are installed). hyprsunset would visibly tint the screen.
-- Delete a line to adopt the HyDE default.
hc.start.blue_light_filter_daemon = ""
hc.start.clipboard_persist = ""
-- nm-applet --indicator is already the Lua default (kept deliberately: the
-- tray icon is the one place with a quick connect/disconnect menu).
-- ── UI / icon theme ──────────────────────────────────────────────────────────
-- dots-icons = repo-tracked overlay theme (gui/.local/share/icons/dots-icons)
-- that inherits Tela-circle-dracula and swaps the tray/status icons for the
-- monochrome panel set — without it, waybar on a fractionally-scaled monitor
-- gets the colored-circle variants (the blue nm-applet blob).
hc.ui.icon_theme = "dots-icons"
-- The theme-switch pipeline regenerates lua_state/ui.lua from the theme's
-- hypr.theme and writes THAT to dconf (color/hypr.sh -> color/dconf.lua), so
-- the assignment above is not enough on its own. Top-level code re-runs on
-- every `hyprctl reload`, and both theme-switch paths end in a reload, so this
-- write lands last — the Lua-mode equivalent of the legacy $exec.dConf.
-- Upstream-sanctioned alternative if this ever races: add
-- [hyprland]\n icon_theme = "dots-icons"
-- to ~/.config/hyde/config.toml (state/hyde/hyprland.conf then overrides the
-- theme vars in theme.switch.sh:151).
hl.exec_cmd([[dconf write /org/gnome/desktop/interface/icon-theme "'dots-icons'"]])
-- ── Env (was userprefs.conf) ─────────────────────────────────────────────────
hl.env("SSH_AUTH_SOCK", (os.getenv("XDG_RUNTIME_DIR") or "") .. "/ssh-agent.socket")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "x11") -- disable after hyprland fixes electron flickering
-- ── Layer + window rules (dots_rules.lua) ────────────────────────────────────
-- Plain require, not check_require: stow --no-folding links new files one by
-- one, so a host that pulled without re-running install.sh fails loudly in
-- `hyprctl configerrors` instead of booting silently without its rules/binds.
-- The dots_ prefix matters: hyde.lua searches HyDE's own lua/ before
-- ~/.config/hypr, so a bare window_rules / key_binds would load HyDE's module.
require("dots_rules")
-- ── Animations ───────────────────────────────────────────────────────────────
-- The legacy chain ran $ANIMATION=theme — the hyprdots set from the theme's
-- animations.dcol. The Lua chain cannot inherit it: hyq's hyprland-lua.json
-- schema dumps decoration/borders into lua_state/hypr_theme.lua but NOT the
-- animations block (LUA-PORT.md risk 6, confirmed live), so without this the
-- session falls back to Hyprland's slower built-in defaults. Ported verbatim
-- from the generated ~/.config/hypr/animations/theme.conf.
-- Conditional so `hyde-shell animations --select` still works: a selector-
-- chosen lua_state/animations.lua loads earlier (dynamic.lua) and this block
-- steps aside for it.
local anim_state = (os.getenv("XDG_STATE_HOME") or home .. "/.local/state") .. "/hyde/lua_state/animations.lua"
local anim_f = io.open(anim_state, "r")
if anim_f then
anim_f:close()
else
hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" })
hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
end
-- ── Keybinds (dots_binds.lua) ────────────────────────────────────────────────
-- After the hc.app.* overrides above: the launcher binds read them.
require("dots_binds")
-- ── Host layer ───────────────────────────────────────────────────────────────
-- Resolves via hyde.lua's package.path (~/.config/hypr/?.lua); each host
-- overlay stows its own host.lua (wm/, lw/). check_require is HyDE's
-- missing-tolerant require — a host without one just skips it.
check_require("host")
-266
View File
@@ -1,266 +0,0 @@
## █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
## █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
# 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]
# `dontkillsteam.sh` was dropped by HyDE (gone from lib/hyde as of the 2026-08-13 update) and
# upstream now closes with the native dispatcher — its Lua key_binds.lua binds both of these to
# `hl.dsp.window.close()`. A bind pointing at a missing script stays valid and silently does
# nothing, which on these two keys means windows stop closing.
bindd = $mainMod, Q, $d close focused window, killactive,
bindd = Alt, F4, $d close focused window, killactive,
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/windowpin.sh # renamed upstream (was window.pin.sh); the old machine-local shim is gone with the update
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, 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/system.monitor.sh # renamed upstream (was 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
@@ -1,6 +0,0 @@
# 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
-45
View File
@@ -1,45 +0,0 @@
# █░█ █▀ █▀▀ █▀█   █▀█ █▀█ █▀▀ █▀▀ █▀
# █▄█ ▄█ ██▄ █▀▄   █▀▀ █▀▄ ██▄ █▀░ ▄█
# 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
# Steam Controller -> Deck-style binds. Not a systemd user unit: graphical-session.target
exec-once = scc-daemon start
# (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
@@ -1,145 +0,0 @@
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
# 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
+19
View File
@@ -1,5 +1,19 @@
# Colours: HyDE owns both includes; the repo tracks only its own colour changes below.
# - theme.conf: HyDE renders the current theme's kitty.theme here on every theme switch
# (color.set.sh, by mv, so it's always a real file and never a link into this repo).
# Untracked since 2026-11-09; a missing one is silently ignored, so kitty would fall back
# to its default palette (bin/hyde-materialize.sh recovers it on a host after the pull).
# - hyde.conf: what HyDE's wallbash kitty.sh puts at the top. Absent on most hosts; harmless.
include hyde.conf
include theme.conf
# The repo's own colours. They come after the include, so they win (later definitions
# override) over EVERY HyDE theme, wallbash included, not just Catppuccin Mocha.
background #262335
foreground #ffffff
# HyDE's Mocha sets #11111B; none = the tab bar uses the background above
tab_bar_background none
font_size 12.0
font_family CaskaydiaCove Nerd Font Mono
bold_font auto
@@ -14,6 +28,11 @@ tab_bar_style powerline
tab_powerline_style slanted
confirm_os_window_close 0
# Remembering size also remembers the maximize state (~/.cache/kitty/main.json):
# close one maximized kitty and every new one opens maximized under Hyprland.
remember_window_size no
initial_window_width 100c
initial_window_height 30c
#background_opacity 0.60
#hide_window_decorations yes
-78
View File
@@ -1,78 +0,0 @@
## name: Catppuccin Mocha 🌿
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #ffffff
background #262335
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #B4BEFE
# Kitty window border colors
active_border_color #CBA6F7
inactive_border_color #8E95B3
bell_border_color #EBA0AC
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #87B0F9
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #43465A
color8 #43465A
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #87B0F9
color12 #87B0F9
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #CDD6F4
color15 #A1A8C9
+19 -22
View File
@@ -1,28 +1,25 @@
#!/usr/bin/env sh
# Keep Hyprland on this repo's hyprlang config instead of HyDE's Lua one.
# Pin Hyprland to HyDE's Lua entry point, explicitly.
#
# HyDE 26.x moved its Hyprland config to Lua. Its own `00-hyde.sh` (synced on
# every update) points HYPRLAND_CONFIG at ~/.local/share/hypr/hyde.lua, and
# Hyprland then never reads ~/.config/hypr/hyprland.conf — so every dots hypr
# file (theme, keybinds, window rules, monitors, userprefs) is silently bypassed
# and the session comes up as stock HyDE: no rounding/gaps/borders, HyDE's binds,
# HyDE's plain waybar instead of the cava rig. Nothing errors; `hyprctl
# configerrors` stays empty. The tell is the log's first lines:
# [cfg] Config is either explicit or special. / [cfg] Config is lua, loading lua mgr
#
# `00-hyde.sh` assigns with `${HYPRLAND_CONFIG:-...}` and `env-hyprland` sources
# HyDE's own `00-hyde.sh` (synced on every update) assigns HYPRLAND_CONFIG with
# `${HYPRLAND_CONFIG:-...}` after sourcing shell/activate; env-hyprland sources
# `env-hyprland.d/*.sh` in glob order, so this file (10 sorts after 00) wins by
# assigning unconditionally. Session-start only — this needs a relogin, not a
# `hyprctl reload`. HyDE syncs the whole env-hyprland.d/ directory but only ever
# writes its own files into it, so this one survives updates.
# assigning unconditionally. Keeping the pin alive — rather than deleting this
# file and trusting HyDE's default — preserves the invariant that the dots repo
# decides which config Hyprland starts with, and makes any rollback a one-line
# edit here. Session-start only: relogin, not `hyprctl reload`.
#
# ── STOPGAP, not the destination ──────────────────────────────────────────────
# It pins ~/.local/share/hyde/hyprland.conf, which current HyDE no longer ships:
# ours is a leftover from the pre-update install, so nothing regenerates it. And
# 8 scripts our binds reach for through $scrPath are already gone from the new
# lib/hyde — including dontkillsteam.sh, which is bound to Super+Q and Alt+F4.
# The supported path is porting the hypr layer into ~/.config/hypr/hyprland.lua
# (the one file HyDE promises never to overwrite). See HYDE-UPDATE.md.
HYPRLAND_CONFIG="$HOME/.config/hypr/hyprland.conf"
# The Lua chain: hyde.lua loads HyDE's lua/ modules, then the user override
# ~/.config/hypr/hyprland.lua (repo: gui/.config/hypr/hyprland.lua, which pulls
# in the per-host host.lua). None of the old hyprlang .conf files are read in
# Lua mode. See LUA-PORT.md for the full map, flip-day steps and rollback.
#
# ROLLBACK to hyprlang (the chain was retired at LUA-PORT.md step 8,
# 2026-09-10): restore gui/.config/hypr, wm/.config/hypr, lw/.config/hypr and
# gui/.local/share/hyde from bddbbf3 (the last pre-step-8 commit), ./install.sh, point this and
# the fish twin (gui/.config/fish/conf.d/00-hypr-config.fish) back at
# "$HOME/.config/hypr/hyprland.conf" and relogin. d851213 is the last
# hyprlang `main` (the port merged 2026-11-09).
HYPRLAND_CONFIG="${XDG_DATA_HOME:-$HOME/.local/share}/hypr/hyde.lua"
export HYPRLAND_CONFIG
+1 -2
View File
@@ -56,7 +56,6 @@
"(.*)Ferdium": "󰭻 Ferdium",
"(.*)FreeTube": " FreeTube",
"(.*) - VLC media player": "󰕼 $1",
"(.*)Steam": "󰓓 Steam",
"(.*)Neovide": " Nvim",
"(.*)Neovim": " Nvim",
"(.*)Nvim": " Nvim",
@@ -279,7 +278,7 @@
"battery": {
// Pinned to the laptop battery on purpose. Unpinned, waybar 0.15 scans every
// /sys/class/power_supply node, and a flapping one (the DualShock's
// ps-controller-battery-* appearing at login while opensdd/scc-daemon wake it)
// ps-controller-battery-* appearing at login when something wakes the pad)
// makes refreshBatteries() throw off its worker thread → SIGABRT, killing the
// whole bar (battery.cpp:142 uncaught; all 5 of 2026-08-17's coredumps). The pin
// (battery.cpp:117) gates every read/watch of non-matching nodes. On wm no BAT0
+1 -1
View File
@@ -314,7 +314,7 @@ load_plugins {
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "gruvbox-dark" // defined in themes/gruvbox-dark.kdl
theme "gruvbox-dark" // built into zellij (identical to the themes/ file this repo used to ship)
// Choose the base input mode of zellij.
// Default: normal
-120
View File
@@ -1,120 +0,0 @@
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
}
}
}
+70
View File
@@ -0,0 +1,70 @@
#!/usr/bin/env bash
# wbar — run the custom waybar rig (layouts/custom.jsonc + custom.css) as a
# supervised systemd user service, and control it.
#
# Why a service: waybar 0.15.0 segfaults when the LG 4K drops its DisplayPort
# link on power-off (output removed) and again when it comes back (output
# re-added). Launched as a bare scope nothing relaunched it, so the bar was gone
# every morning. As a transient *service* with Restart=always systemd brings it
# back after RestartSec, at both ends of the cycle. StartLimitIntervalSec=0 keeps
# systemd from giving up while the monitor is gone and Hyprland sits on its
# headless fallback output (the default limit of 5 starts per 10 s would
# reproduce the original "stays dead" behavior). RestartSec=3 keeps that
# potential loop cheap; `systemctl --user show dots-waybar.service -p NRestarts`
# after a night says how many restarts a sleep cycle really costs.
#
# The unit is dots-owned on purpose. HyDE's own bar unit
# (hyde-$XDG_SESSION_DESKTOP-bar.service) is masked on rig hosts (README.md) so
# waybar.py can never spawn a second, plain bar — reusing that name would need
# the mask lifted. Under a different name HyDE keeps seeing "no bar", exactly as
# before.
#
# Because a killed waybar now comes straight back, every killall-based control
# goes through here:
# wbar restart (what the old `wbar` abbr did) also: hc.start.bar
# wbar toggle Ctrl+Alt+W
# wbar reload re-read config + CSS in place (SIGUSR2), no restart
# wbar start|stop|status
set -euo pipefail
unit="dots-waybar.service"
cfg="$HOME/.config/waybar/layouts/custom.jsonc"
css="$HOME/.config/waybar/layouts/custom.css"
active() { systemctl --user is-active --quiet "$unit"; }
start() {
active && return 0
systemctl --user reset-failed "$unit" 2>/dev/null || true
# A service gets the user manager's environment, not Hyprland's. Forward the
# session vars app2unit forwards for HyDE's own units, plus GTK scaling
# (GDK_SCALE=1 is what keeps the bar sized right on the 1.25-scaled output).
local -a env=()
local v
for v in XDG_VTNR XDG_SEAT XDG_SEAT_PATH XDG_SESSION_ID XDG_SESSION_PATH GDK_SCALE GDK_DPI_SCALE; do
[ -n "${!v:-}" ] && env+=("--setenv=$v=${!v}")
done
systemd-run --user --quiet --collect \
--unit="$unit" --slice=app-graphical.slice --description="waybar (dots custom rig)" \
--property=Type=exec --property=ExitType=cgroup \
--property=Restart=always --property=RestartSec=3 --property=StartLimitIntervalSec=0 \
--property=After=graphical-session.target --property=PartOf=graphical-session.target \
"${env[@]}" -- waybar -c "$cfg" -s "$css"
}
case "${1:-restart}" in
start) start ;;
stop) systemctl --user stop "$unit" ;;
restart)
if active; then systemctl --user restart "$unit"; else start; fi
;;
toggle)
if active; then systemctl --user stop "$unit"; else start; fi
;;
reload) systemctl --user kill -s SIGUSR2 "$unit" ;;
status) systemctl --user status --no-pager "$unit" ;;
*)
echo "usage: wbar [start|stop|restart|toggle|reload|status] (default: restart)" >&2
exit 2
;;
esac
-21
View File
@@ -1,21 +0,0 @@
#!/usr/bin/env bash
# enable float
WinFloat=$(hyprctl -j clients | jq '.[] | select(.focusHistoryID == 0) | .floating')
WinPinned=$(hyprctl -j clients | jq '.[] | select(.focusHistoryID == 0) | .pinned')
if [ "${WinFloat}" == "false" ] && [ "${WinPinned}" == "false" ] ; then
hyprctl dispatch togglefloating active
fi
# toggle pin
hyprctl dispatch pin active
# disable float
WinFloat=$(hyprctl -j clients | jq '.[] | select(.focusHistoryID == 0) | .floating')
WinPinned=$(hyprctl -j clients | jq '.[] | select(.focusHistoryID == 0) | .pinned')
if [ "${WinFloat}" == "true" ] && [ "${WinPinned}" == "false" ] ; then
hyprctl dispatch togglefloating active
fi
+9 -133
View File
@@ -1,133 +1,9 @@
#!   ░▒▒▒░░░▓▓          ___________
#! ░░▒▒▒░░░░░▓▓        //___________/
#! ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#! ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#! ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/ █░█ ▄▀█ █▀█ █ ▄▀█ █▄▄ █░░ █▀▀ █▀
#!    ░▒▓▓   ▓▓  //____/ ▀▄▀ █▀█ █▀▄ █ █▀█ █▄█ █▄▄ ██▄ ▄█
# Override configuration for user environment variables and startup commands
# Static variables here take priority over default and dynamic configurations
#  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
# This is used to override the default startup commands
# $start.VAR = command
$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
# This is used to override the default environment variables
# $env.VAR = value
# 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 # 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 # 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 monitor’s 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
# $BACKGROUND_PATH=$HYPRLOCK_BACKGROUND # set the background to the specific hyprlock wallpaper
# gui package — the one surviving line of HyDE's retired hyde.conf.
#
# HyDE 26.x ships neither ~/.local/share/hyde/hyde.conf nor hyprland.conf; the repo carried
# copies of both as the hyprlang chain's framework sources until LUA-PORT.md step 8 retired
# that chain (2026-09-10). Nothing in Lua mode reads them — except get_hyprConf() in
# globalcontrol.sh, which HyDE's rofi/menu scripts call for FONT and which falls back to
# `$default.FONT` in exactly this file when the active theme's hypr.theme has no font-name
# line (the Catppuccin themes don't). Without it the menus drop to rofi's default font.
$default.FONT=Cantarell
-577
View File
@@ -1,577 +0,0 @@
#   ░▒▒▒░░░▓▓          ___________
# ░░▒▒▒░░░░░▓▓        //___________/
# ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
# ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
# ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#    ░▒▓▓   ▓▓  //____/
# // █░█ █▄█ █▀▄ █▀▀
# // █▀█ ░█░ █▄▀ ██▄
$scrPath=$HOME/.local/lib/hyde # set scripts path
# Main modifier
$mainMod = SUPER # windows key
# assign apps
$default.$QUICKAPPS =
$default.BROWSER = hyde-launch.sh --fall firefox web-browser
$default.EDITOR = hyde-launch.sh --fall code-oss text-editor
$default.EXPLORER= hyde-launch.sh --fall dolphin file-manager
$default.TERMINAL = kitty
$default.LOCKSCREEN=hyprlock
$default.IDLE=hypridle
$QUICKAPPS = $default.$QUICKAPPS
$BROWSER = $default.BROWSER
$EDITOR = $default.EDITOR
$EXPLORER= $default.EXPLORER
$TERMINAL = $default.TERMINAL
$LOCKSCREEN=$default.LOCKSCREEN
$IDLE= $default.IDLE
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
# See https://wiki.hyprland.org/Configuring/Keywords/
$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=dunst
$start.APPTRAY_BLUETOOTH=blueman-applet
$start.WALLPAPER=$scrPath/wallpaper.sh --global
$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/
# Toolkit Backend Variables - https://wiki.hyprland.org/Configuring/Environment-variables/#toolkit-backend-variables
$env.GDK_BACKEND = wayland,x11,* # 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 # 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 # 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 monitor’s 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
# $XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/run/user/$(id -u)}
# $XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
# >> $env.XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache}
# $XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}
$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
$env.XDG_STATE_HOME=$HOME/.local/state
# // █▀▀ ▀█▀ █▄▀
# // █▄█ ░█░ █░█
$default.GTK_THEME=Wallbash-Gtk
$default.ICON_THEME=Tela-circle-dracula
$default.COLOR_SCHEME=prefer-dark
$GTK_THEME=$default.GTK_THEME
$ICON_THEME=$default.ICON_THEME
$COLOR_SCHEME=$default.COLOR_SCHEME
# // █▀▀ █░█ █▀█ █▀ █▀█ █▀█
# // █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄
$default.CURSOR_THEME=Bibata-Modern-Ice
$default.CURSOR_SIZE=24
$CURSOR_THEME=$default.CURSOR_THEME
$CURSOR_SIZE=$default.CURSOR_SIZE
# // █▀▀ █▀█ █▄░█ ▀█▀
# // █▀░ █▄█ █░▀█ ░█░
$default.FONT=Cantarell
$default.FONT_SIZE=10
$default.DOCUMENT_FONT=Cantarell
$default.DOCUMENT_FONT_SIZE=10
$default.MONOSPACE_FONT=CaskaydiaCove Nerd Font Mono
$default.MONOSPACE_FONT_SIZE=9
$default.NOTIFICATION_FONT=Mononoki Nerd Font Mono
$default.BAR_FONT=JetBrainsMono Nerd Font
# $default.MENU_FONT=This is not yet set as it looks perfect with the global font
$default.FONT_ANTIALIASING=rgba
$default.FONT_HINTING=full
$FONT=$default.FONT
$FONT_SIZE=$default.FONT_SIZE
$DOCUMENT_FONT=$default.DOCUMENT_FONT
$DOCUMENT_FONT_SIZE=$default.DOCUMENT_FONT_SIZE
$MONOSPACE_FONT=$default.MONOSPACE_FONT
$MONOSPACE_FONT_SIZE=$default.MONOSPACE_FONT_SIZE
$NOTIFICATION_FONT=$default.NOTIFICATION_FONT
$BAR_FONT=$default.BAR_FONT
# $MENU_FONT=$default.MENU_FONT
$FONT_ANTIALIASING=$default.FONT_ANTIALIASING
$FONT_HINTING=$default.FONT_HINTING
# // █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░
# // ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄
decoration {
dim_special = 0.3
active_opacity = 0.90
inactive_opacity = 0.75
fullscreen_opacity = 1
blur {
special = true
}
}
# // █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
# // █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor = ,preferred,auto,auto
# // █ █▄░█ █▀█ █░█ ▀█▀
# // █ █░▀█ █▀▀ █▄█ ░█░
# See https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0
force_no_accel = 1
numlock_by_default = true
}
# See https://wiki.hyprland.org/Configuring/Variables/
# gestures {
# workspace_swipe = true
# workspace_swipe_fingers = 3
# }
# // █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
# // █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/
dwindle {
# pseudotile = yes
preserve_split = yes
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/
master {
new_status = master
}
# // █▀▄▀█ █ █▀ █▀▀
# // █░▀░█ █ ▄█ █▄▄
# See https://wiki.hyprland.org/Configuring/Variables/
misc {
vrr = 0
disable_hyprland_logo = true
disable_splash_rendering = true
force_default_wallpaper = 0
}
xwayland {
force_zero_scaling = true
}
# // ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# // █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
# See https://wiki.hyprland.org/Configuring/Animations/
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
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, once
animation = fade, 1, 10, default
animation = workspaces, 1, 5, wind
}
general {
snap { # snapping for floating windows
enabled = true
}
}
# // █▀ █▀█ █░█ █▀█ █▀▀ █▀▀
# // ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄
# hyprlang noerror true
# source = $env.XDG_STATE_HOME/hyde/hyprgui.conf # GUI specific config. Used to not break the low level configs. this will be available downstream
source = $env.XDG_CONFIG_HOME/hypr/themes/colors.conf # Hyde wallbash colors
# Source groupbar in here
group:groupbar {
col.inactive = rgba($wallbash_pry3ee)
col.active = rgba($wallbash_pry1ee)
col.locked_active = rgba($wallbash_pry2ee)
col.locked_inactive = rgba($wallbash_pry4ee)
}
source = $env.XDG_CONFIG_HOME/hypr/themes/theme.conf # theme specific settings
source = $env.XDG_CONFIG_HOME/hypr/themes/wallbash.conf # Theme specific settings after Sanitize and handle fallbacks
source = $env.XDG_CONFIG_HOME/hypr/nvidia.conf # Nvidia specific settings
source = $env.XDG_CONFIG_HOME/hypr/animations.conf # source animations variables
# hyprlang noerror false
source = $env.XDG_CONFIG_HOME/hypr/hyde.conf
# hyprlang noerror true
source = $env.XDG_STATE_HOME/hyde/hyprland.conf # translated from config.tomls
source = $ANIMATION_PATH # source animations configuration
# hyprlang noerror false
#! Below this is an immutable part of the configuration file, and should not be modified by the user.
#? By Hyprland convention env and startup files are sourced at the end of the main configuration file
#? To ensure that the user's settings are not overridden by the default settings
#? This will let us launch after all envs and variables are set.
# LEGACY
$quickapps = $QUICKAPPS
$term = $TERMINAL
$editor = $EDITOR
$file = $EXPLORER
$browser = $BROWSER
# Group Bar
group:groupbar{
enabled = true
gradients = 1
render_titles = 1
font_size = 12
font_family = $FONT
}
# Misc
misc {
font_family = $FONT
}
# // █▀▀ █▄░█ █░█
# // ██▄ █░▀█ ▀▄▀
# # See https://wiki.hyprland.org/Configuring/Environment-variables/
#! Remove for now
# env = GDK_BACKEND,$env.GDK_BACKEND
# env = SDL_VIDEODRIVER,$env.SDL_VIDEODRIVER
# env = CLUTTER_BACKEND,$env.CLUTTER_BACKEND
# Qt Variables
env = QT_AUTO_SCREEN_SCALE_FACTOR,$env.QT_AUTO_SCREEN_SCALE_FACTOR
env = QT_QPA_PLATFORM,$env.QT_QPA_PLATFORM
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,$env.QT_WAYLAND_DISABLE_WINDOWDECORATION
env = QT_QPA_PLATFORMTHEME,$env.QT_QPA_PLATFORMTHEME
# Wayland-ENV
env = MOZ_ENABLE_WAYLAND,$env.MOZ_ENABLE_WAYLAND
env = GDK_SCALE,$env.GDK_SCALE
env = ELECTRON_OZONE_PLATFORM_HINT,$env.ELECTRON_OZONE_PLATFORM_HINT
# XDG Spec
env = XDG_CURRENT_DESKTOP,$env.XDG_CURRENT_DESKTOP
env = XDG_SESSION_TYPE,$env.XDG_SESSION_TYPE
env = XDG_SESSION_DESKTOP,$env.XDG_SESSION_DESKTOP
# HyDE Variables
$hyde.PATH=$HOME/.local/bin:$scrPath:$env.PATH:$PATH
env = PATH,$hyde.PATH
# XDG-ENV
env = XDG_CONFIG_HOME,$env.XDG_CONFIG_HOME
env = XDG_CACHE_HOME,$env.XDG_CACHE_HOME
env = XDG_DATA_HOME,$env.XDG_DATA_HOME
# HyDE-ENV
env = HYDE_RUNTIME_DIR,$env.XDG_RUNTIME_DIR/hyde
env = HYDE_CONFIG_HOME,$env.XDG_CONFIG_HOME/hyde
env = HYDE_CACHE_HOME,$env.XDG_CACHE_HOME/hyde
env = HYDE_DATA_HOME,$env.XDG_DATA_HOME/hyde
env = HYDE_STATE_HOME,$env.XDG_STATE_HOME/hyde
# CURSOR ENV
# env = HYPRCURSOR_THEME,$CURSOR_THEME
# env = HYPRCURSOR_SIZE,$CURSOR_SIZE
# env = XCURSOR_THEME,$CURSOR_THEME
# env = XCURSOR_SIZE,$CURSOR_SIZE
# Execute on reload
# HyDE Preparation
$exec.mkdir = mkdir -p $env.XDG_RUNTIME_DIR/hyde $env.XDG_CACHE_HOME/hyde/wallbash $env.XDG_CONFIG_HOME/hyde $env.XDG_DATA_HOME/hyde $(dirname $env.XDG_DATA_HOME)/state/hyde # Create HyDE directories
$set.env = printf "\n_SHELL='$SHELL'\nGDK_BACKEND='$env.GDK_BACKEND'\nQT_QPA_PLATFORM='$env.QT_QPA_PLATFORM'\nSDL_VIDEODRIVER='$env.SDL_VIDEODRIVER'\nCLUTTER_BACKEND='$env.CLUTTER_BACKEND'\nXDG_CURRENT_DESKTOP='$env.XDG_CURRENT_DESKTOP'\nXDG_SESSION_TYPE='$env.XDG_SESSION_TYPE'\nXDG_SESSION_DESKTOP='$env.XDG_SESSION_DESKTOP'\nQT_AUTO_SCREEN_SCALE_FACTOR='$env.QT_AUTO_SCREEN_SCALE_FACTOR'\nQT_WAYLAND_DISABLE_WINDOWDECORATION='$env.QT_WAYLAND_DISABLE_WINDOWDECORATION'\nQT_QPA_PLATFORMTHEME='$env.QT_QPA_PLATFORMTHEME'\nHYDE_PATH='$hyde.PATH'\nMOZ_ENABLE_WAYLAND='$env.MOZ_ENABLE_WAYLAND'\nGDK_SCALE='$env.GDK_SCALE'\nELECTRON_OZONE_PLATFORM_HINT='$env.ELECTRON_OZONE_PLATFORM_HINT'\nXDG_RUNTIME_DIR='$env.XDG_RUNTIME_DIR'\nXDG_CONFIG_HOME='$env.XDG_CONFIG_HOME'\nXDG_CACHE_HOME='$env.XDG_CACHE_HOME'\nXDG_DATA_HOME='$env.XDG_DATA_HOME'\n_GTK_THEME='$GTK_THEME'\n_ICON_THEME='$ICON_THEME'\n_COLOR_SCHEME='$COLOR_SCHEME'\n_CURSOR_SIZE='$CURSOR_SIZE'\n_CURSOR_THEME='$CURSOR_THEME'\nFONT='$FONT'\nFONT_SIZE='$FONT_SIZE'\nDOCUMENT_FONT='$DOCUMENT_FONT'\nDOCUMENT_FONT_SIZE='$DOCUMENT_FONT_SIZE'\nMONOSPACE_FONT='$MONOSPACE_FONT'\nMONOSPACE_FONT_SIZE='$MONOSPACE_FONT_SIZE'\nFONT_ANTIALIASING='$FONT_ANTIALIASING'\nFONT_HINTING='$FONT_HINTING'\nHYDE_RUNTIME_DIR='$env.XDG_RUNTIME_DIR/hyde'\nHYDE_CONFIG_HOME='$env.XDG_CONFIG_HOME/hyde'\nHYDE_CACHE_HOME='$env.XDG_CACHE_HOME/hyde'\nHYDE_DATA_HOME='$env.XDG_DATA_HOME/hyde'\nHYDE_STATE_HOME='$(dirname $env.XDG_DATA_HOME)/state/hyde'\nexport TERMINAL='$(which $TERMINAL)'\nexport LOCKSCREEN='$LOCKSCREEN'" > "$env.XDG_RUNTIME_DIR/hyde/environment"
# Create a dconf file that will be loaded later one time, better than multiple dconf commands and better than gsettings
$dconFile=$env.XDG_CACHE_HOME/hyde/dconf
$dConf = \n[org/gnome/desktop/interface]\n
$dConf = $dConf icon-theme='$ICON_THEME'\n
$dConf = $dConf gtk-theme='$GTK_THEME'\n
$dConf = $dConf color-scheme='$COLOR_SCHEME'\n
$dConf = $dConf cursor-theme='$CURSOR_THEME'\n
$dConf = $dConf cursor-size=$CURSOR_SIZE\n
$dConf = $dConf font-name='$FONT $FONT_SIZE'\n
$dConf = $dConf document-font-name='$DOCUMENT_FONT $DOCUMENT_FONT_SIZE'\n
$dConf = $dConf monospace-font-name='$MONOSPACE_FONT $MONOSPACE_FONT_SIZE'\n
$dConf = $dConf font-antialiasing='$FONT_ANTIALIASING'\n
$dConf = $dConf font-hinting='$FONT_HINTING'\n
$dConf = $dConf [org/gnome/desktop/default-applications/terminal]\nexec='$(which $TERMINAL)'
$dconf.preserve = dconf dump / > $dconFile
$dconf.populate = printf "$dConf" >> $dconFile
$dconf.reset = dconf reset -f / < $dconFile
$dconf.load = dconf load -f / < $dconFile
$set.hyprCursor = hyprctl setcursor $CURSOR_THEME $CURSOR_SIZE
$exec.dConf = ( $dconf.preserve && $dconf.populate && $dconf.reset && $dconf.load && $set.hyprCursor )
$exec.keybinds_hint = $scrPath/keybinds.hint.py --format rofi > $env.XDG_RUNTIME_DIR/hyde/keybinds_hint.rofi
# Execute
exec = $exec.mkdir & $set.env & $exec.dConf & $exec.animation & $exec.keybinds_hint
# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
exec-once = $start.XDG_PORTAL_RESET # reset XDPH for screenshare
exec-once = $start.DBUS_SHARE_PICKER # for XDPHgl
exec-once = $start.SYSTEMD_SHARE_PICKER # for XDPH
exec-once = $start.AUTH_DIALOGUE # authentication dialogue for GUI apps
exec-once = $start.BAR # launch the system bar
exec-once = $start.APPTRAY_BLUETOOTH # systray app for Bluetooth
exec-once = $start.REMOVABLE_MEDIA # front-end that allows to manage removable media
exec-once = $start.NETWORK_MANAGER # systray app for Network/Wifi
exec-once = $start.NOTIFICATIONS # start notification demon
exec-once = $start.TEXT_CLIPBOARD # clipboard store text data
exec-once = $start.IMAGE_CLIPBOARD # clipboard store image data
exec-once = $start.WALLPAPER # start wallpaper daemon
exec-once = $start.BATTERY_NOTIFY # battery notification
exec-once = $start.IDLE_DAEMON # idle daemon
# hyde/config.toml is parsed and exported to the environment
exec-once = $scrPath/parse.config.py --daemon --input $env.XDG_CONFIG_HOME/hyde/config.toml --env $env.XDG_STATE_HOME/hyde/config --hypr $env.XDG_STATE_HOME/hyde/hyprland.conf
#? Rules can be added here as most of the configuration are dynamic
# // █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# // ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
# See https://wiki.hyprland.org/Configuring/Window-Rules/
# Ony add the Core applications here
windowrule {
name = windowrule-1
float = on
match:class = ^(com.gabm.satty)$
}
windowrule {
name = windowrule-2
float = on
match:class = ^(org.kde.dolphin)$
match:title = ^(Progress Dialog — Dolphin)$
}
windowrule {
name = windowrule-3
float = on
match:class = ^(org.kde.dolphin)$
match:title = ^(Copying — Dolphin)$
}
windowrule {
name = windowrule-4
float = on
match:title = ^(About Mozilla Firefox)$
}
windowrule {
name = windowrule-5
float = on
match:class = ^(firefox)$
match:title = ^(Picture-in-Picture)$
}
windowrule {
name = windowrule-6
float = on
match:class = ^(firefox)$
match:title = ^(Library)$
}
windowrule {
name = windowrule-7
float = on
match:class = ^(.*)$
match:initial_title = ^(.*)(top)(.*)$
}
windowrule {
name = windowrule-8
float = on
match:class = ^(.*)$
match:initial_title = ^(.*)(btop)(.*)$
}
windowrule {
name = windowrule-9
float = on
match:class = ^(.*)$
match:initial_title = ^(.*)(htop)(.*)$
}
windowrule {
name = windowrule-10
float = on
match:class = ^(vlc)$
}
windowrule {
name = windowrule-11
float = on
match:class = ^(kvantummanager)$
}
windowrule {
name = windowrule-12
float = on
match:class = ^(qt5ct)$
}
windowrule {
name = windowrule-13
float = on
match:class = ^(qt6ct)$
}
windowrule {
name = windowrule-14
float = on
match:class = ^(nwg-look)$
}
windowrule {
name = windowrule-15
float = on
match:class = ^(nwg-displays)$
}
windowrule {
name = windowrule-16
float = on
match:class = ^(org.kde.ark)$
}
windowrule {
name = windowrule-17
float = on
match:class = ^(org.pulseaudio.pavucontrol)$
}
windowrule {
name = windowrule-18
float = on
match:class = ^(blueman-manager)$
}
windowrule {
name = windowrule-19
float = on
match:class = ^(nm-applet)$
}
windowrule {
name = windowrule-20
float = on
match:class = ^(nm-connection-editor)$
}
windowrule {
name = windowrule-21
float = on
match:class = ^(org.kde.polkit-kde-authentication-agent-1)$
}
windowrule {
name = windowrule-22
float = on
match:class = ^([Xx]dg-desktop-portal-gtk)$
}
# // █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀
# // █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█
# layerrule = blur,rofi
# layerrule = ignorezero,rofi
# layerrule = blur,notifications
# layerrule = ignorezero,notifications
# layerrule = blur,swaync-notification-window
# layerrule = ignorezero,swaync-notification-window
# layerrule = blur,swaync-control-center
# layerrule = ignorezero,swaync-control-center
# layerrule = blur,logout_dialog
@@ -1,6 +1,6 @@
[Icon Theme]
Name=dots-icons
Comment=Thin overlay over Tela-circle-dracula: monochrome tray/status icons at every size. Tela only ships its flat panel icons at fixed 16/22/24 - on a fractionally scaled monitor waybar requests size*2 (e.g. 44), which falls through to scalable/devices, whose icons are colored circles (the blue nm-applet blob). This theme is searched first and serves the panel SVGs as scalable, so status icons stay flat; everything else inherits Tela unchanged. Pinned via $ICON_THEME in gui/.config/hypr/hyde.conf.
Comment=Thin overlay over Tela-circle-dracula: monochrome tray/status icons at every size. Tela only ships its flat panel icons at fixed 16/22/24 - on a fractionally scaled monitor waybar requests size*2 (e.g. 44), which falls through to scalable/devices, whose icons are colored circles (the blue nm-applet blob). This theme is searched first and serves the panel SVGs as scalable, so status icons stay flat; everything else inherits Tela unchanged. Pinned via hc.ui.icon_theme in gui/.config/hypr/hyprland.lua. The status icons are symlinks into the host's own Tela-circle-dracula, made by bin/dots-icons-link.sh (install.sh step 3.6) - Tela-circle publishes no licence, so the repo ships none of its files.
Inherits=Tela-circle-dracula
Directories=scalable/status
@@ -1,8 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#dfdfdf;
}</style>
</defs>
<path class="ColorScheme-Text" d="m12 16.763v-3.672l2.278 1.836zm0-11.525 2.278 1.836-2.278 1.836v-3.673zm0.593 5.763 3.906-3.148a1.002 1.002 0 0 0 0-1.558l-4.872-3.926a1 1 0 0 0-1.627 0.778v5.762l-3.244-2.614a1.0003 1.0003 0 0 0-1.255 1.558l3.905 3.147-3.905 3.147a1 1 0 0 0 1.255 1.557l3.244-2.614v5.762a1.001 1.001 0 0 0 1 1 0.998 0.998 0 0 0 0.627-0.221l4.872-3.926a1.002 1.002 0 0 0 0-1.557l-3.906-3.148z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

@@ -1,24 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#dfdfdf;
}
.ColorScheme-Background {
color:#eff0f1;
}
.ColorScheme-ViewBackground {
color:#fcfcfc;
}
.ColorScheme-ButtonFocus {
color:#3daee9;
}
.ColorScheme-PositiveText {
color:#27ae60;
}
.ColorScheme-NeutralText {
color:#f67400;
}
.ColorScheme-NegativeText {
color:#da4453;
}</style>
<path class="ColorScheme-Text" d="m12 16.763v-3.672l2.278 1.836zm0-11.525 2.278 1.836-2.278 1.836v-3.673zm0.593 5.763 3.906-3.148a1.002 1.002 0 0 0 0-1.558l-4.872-3.926a1 1 0 0 0-1.627 0.778v5.762l-3.244-2.614a1.0003 1.0003 0 0 0-1.255 1.558l3.905 3.147-3.905 3.147a1 1 0 0 0 1.255 1.557l3.244-2.614v5.762a1.001 1.001 0 0 0 1 1 0.998 0.998 0 0 0 0.627-0.221l4.872-3.926a1.002 1.002 0 0 0 0-1.557l-3.906-3.148z" fill="currentColor" opacity=".35"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,8 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#dfdfdf;
}</style>
</defs>
<path class="ColorScheme-Text" d="m12 16.763v-3.672l2.278 1.836zm0-11.525 2.278 1.836-2.278 1.836v-3.673zm0.593 5.763 3.906-3.148a1.002 1.002 0 0 0 0-1.558l-4.872-3.926a1 1 0 0 0-1.627 0.778v5.762l-3.244-2.614a1.0003 1.0003 0 0 0-1.255 1.558l3.905 3.147-3.905 3.147a1 1 0 0 0 1.255 1.557l3.244-2.614v5.762a1.001 1.001 0 0 0 1 1 0.998 0.998 0 0 0 0.627-0.221l4.872-3.926a1.002 1.002 0 0 0 0-1.557l-3.906-3.148z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

@@ -1,24 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#dfdfdf;
}
.ColorScheme-Background {
color:#eff0f1;
}
.ColorScheme-ViewBackground {
color:#fcfcfc;
}
.ColorScheme-ButtonFocus {
color:#3daee9;
}
.ColorScheme-PositiveText {
color:#27ae60;
}
.ColorScheme-NeutralText {
color:#f67400;
}
.ColorScheme-NegativeText {
color:#da4453;
}</style>
<path class="ColorScheme-Text" d="m12 16.763v-3.672l2.278 1.836zm0-11.525 2.278 1.836-2.278 1.836v-3.673zm0.593 5.763 3.906-3.148a1.002 1.002 0 0 0 0-1.558l-4.872-3.926a1 1 0 0 0-1.627 0.778v5.762l-3.244-2.614a1.0003 1.0003 0 0 0-1.255 1.558l3.905 3.147-3.905 3.147a1 1 0 0 0 1.255 1.557l3.244-2.614v5.762a1.001 1.001 0 0 0 1 1 0.998 0.998 0 0 0 0.627-0.221l4.872-3.926a1.002 1.002 0 0 0 0-1.557l-3.906-3.148z" fill="currentColor" opacity=".35"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,8 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text {
color:#dfdfdf;
}</style>
</defs>
<path class="ColorScheme-Text" d="m12 16.763v-3.672l2.278 1.836zm0-11.525 2.278 1.836-2.278 1.836v-3.673zm0.593 5.763 3.906-3.148a1.002 1.002 0 0 0 0-1.558l-4.872-3.926a1 1 0 0 0-1.627 0.778v5.762l-3.244-2.614a1.0003 1.0003 0 0 0-1.255 1.558l3.905 3.147-3.905 3.147a1 1 0 0 0 1.255 1.557l3.244-2.614v5.762a1.001 1.001 0 0 0 1 1 0.998 0.998 0 0 0 0.627-0.221l4.872-3.926a1.002 1.002 0 0 0 0-1.557l-3.906-3.148z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="fill:currentColor" class="ColorScheme-Text" d="M 11,3 C 7.6,3 4.78,5.5636364 4,9 l 2,0 c 0.74,-2.5309091 2.43,-4 5,-4 2.57,0 4.26,1.4690909 5,4 l 2,0 C 17.22,5.5636364 14.4,3 11,3 Z m 0,4 C 9.7,7 8.58,7.8044693 8,9 l 6,0 C 13.42,7.8156425 12.3,7 11,7 Z m -7,4 7,8 7,-8 z"/>
</svg>

Before

Width:  |  Height:  |  Size: 535 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-33 -551.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m38 556.36s-1 0-1 1v9c0 1 1 1 1 1h2l1 1h6l1-1h2s1 0.12994 1-1v-9c0-1-1-1-1-1zm1 2h10v7h-2l-1 1h-4l-1-1h-2z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 465 B

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="fill:currentColor" class="ColorScheme-Text" d="M 5 5 C 5 5 4 5 4 6 L 4 15 C 4 16 5 16 5 16 L 7 16 L 8 17 L 12 17 L 12 15 L 9 15 L 8 14 L 6 14 L 6 7 L 16 7 L 16 11 C 16.774415 11 17.470818 11.309484 18 11.800781 L 18 6 C 18 5 17 5 17 5 L 5 5 z"/>
<path style="fill:currentColor" class="ColorScheme-Text" d="m 16,12 c -1.108,0 -2,0.91085 -2,2.0312 l 0,0.96875 -1,0 0,4 6,0 0,-4 -1,0 0,-0.96875 C 18,12.9113 17.108,12 16,12 Z m 0,1 c 0.554,0 1,0.4424 1,1 l 0,1 -2,0 0,-1 c 0,-0.5576 0.446,-1 1,-1 z"/>
</svg>

Before

Width:  |  Height:  |  Size: 761 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-33 -575.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m40.5 582.36c-2.4853 0-4.5 2.0147-4.5 4.5s2.0147 4.5 4.5 4.5c1.9047-0.003 3.6014-1.2042 4.2363-3l3.2637-0.004v2h3v-2.0039l1 0.004v-3l-7.2637 0.004c-0.6349-1.7958-2.3316-2.9973-4.2363-3zm0 3c0.82843 0 1.5 0.67157 1.5 1.5s-0.67157 1.5-1.5 1.5-1.5-0.67157-1.5-1.5 0.67157-1.5 1.5-1.5z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 640 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-33 -551.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m38 556.36s-1 0-1 1v9c0 1 1 1 1 1h2l1 1h6l1-1h2s1 0.12994 1-1v-9c0-1-1-1-1-1zm1 2h10v7h-2l-1 1h-4l-1-1h-2z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 465 B

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-33 -599.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m37 617.37 14-14v14z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 379 B

@@ -1,7 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 247 B

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z" opacity=".35"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".65"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".65"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-57 -551.36)">
<path opacity=".3" style="fill:currentColor" class="ColorScheme-Text" d="m62 556.36s-1 0-1 1v9c0 1 1 1 1 1h2l1 1h5v-2h-4l-1-1h-2v-7h10v6h2v-7c0-1-1-1-1-1h-12z"/>
<path style="fill:currentColor" class="ColorScheme-Text" d="m71 565.36v1c0 0.27614 0.10029 0.53779 0.28125 0.71875l0.78125 0.78125-0.78125 0.78125c-0.18096 0.18096-0.28125 0.44261-0.28125 0.71875v1h1c0.27614 0 0.53779-0.10029 0.71875-0.28125l0.78125-0.78125 0.78125 0.78125c0.18096 0.18096 0.44261 0.28125 0.71875 0.28125h1v-1c0-0.27614-0.10029-0.53779-0.28125-0.71875l-0.78125-0.78125 0.78125-0.78125c0.18096-0.18096 0.28125-0.44261 0.28125-0.71875v-1h-1c-0.27614 0-0.53779 0.10029-0.71875 0.28125l-0.78125 0.78125-0.78125-0.78125c-0.18096-0.18096-0.44261-0.28125-0.71875-0.28125h-1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-153 -575.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m169 587.36c-1.108 0-2 0.91085-2 2.0312v0.96875h-1v4h6v-4h-1v-0.96875c0-1.1199-0.892-2.0312-2-2.0312zm0 1c0.554 0 1 0.4424 1 1v1h-2v-1c0-0.5576 0.446-1 1-1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 516 B

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z" opacity=".35"/>
</g>
<path class="ColorScheme-Text" d="m18 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z" opacity=".35"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z" opacity=".35"/>
</g>
<path class="ColorScheme-Text" d="m18 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z" opacity=".35"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
<path id="lock-icon" class="ColorScheme-Text" d="m18 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
<path class="ColorScheme-Text" d="m18 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
<path class="ColorScheme-Text" d="m18 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".35"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,11 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".65"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
<path class="ColorScheme-Text" d="m17.993 14c-1.108 0-2 0.892-2 2v1c-0.554 0-1 0.446-1 1v2c0 0.554 0.446 1 1 1h4c0.554 0 1-0.446 1-1v-2c0-0.554-0.446-1-1-1v-1c0-1.108-0.892-2-2-2zm0 1c0.554 0 1 0.446 1 1v1h-2v-1c0-0.554 0.446-1 1-1z" fill="currentColor"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,10 +0,0 @@
<svg width="22" height="22" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<style id="current-color-scheme" type="text/css">.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }</style>
</defs>
<g class="ColorScheme-Text" transform="translate(-55.001 -104)" fill="currentColor">
<path d="m65.994 109c-2.9623 5e-3 -5.8185 1.107-8.0176 3.0918a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.8325-1.6538 4.2113-2.5711 6.6797-2.5762 2.4704 3.8e-4 4.8514 0.91565 6.6875 2.5684a1 1 0 0 0 1.4141-0.0742 1 1 0 0 0-0.07422-1.4141c-2.2029-1.9829-5.0635-3.0797-8.0273-3.0801a1.0001 1.0001 0 0 0-2e-3 0z" opacity=".65"/>
<path d="m65.996 113c-1.9749 3e-3 -3.8797 0.73749-5.3457 2.0606a1 1 0 0 0-0.07227 1.4121 1 1 0 0 0 1.4121 0.0723c1.0994-0.99224 2.5271-1.5419 4.0078-1.5449 1.4823 2.3e-4 2.91 0.54932 4.0117 1.541a1 1 0 0 0 1.4121-0.0742 1 1 0 0 0-0.07422-1.4121c-1.4685-1.3219-3.3738-2.0544-5.3496-2.0548a1.0001 1.0001 0 0 0-2e-3 0z"/>
<path d="m65.998 117c-0.98726 2e-3 -1.9409 0.36979-2.6738 1.0312a1.0001 1.0001 0 0 0-0.07227 1.4102l2.0039 2.2285a1.0001 1.0001 0 0 0 1.4863-2e-3l2.0059-2.2285a1.0001 1.0001 0 0 0-0.07422-1.4121c-0.73416-0.66077-1.6861-1.0271-2.6738-1.0273a1.0001 1.0001 0 0 0-2e-3 0zm0 2h0.001953c0.12434 1.4e-4 0.21537 0.10816 0.33594 0.13086l-0.33594 0.375-0.33789-0.375c0.12056-0.0229 0.21157-0.13051 0.33594-0.13086z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m19.5 17v1.5c0 1-0 1-1 1-1 0-1-0-1-1l-0-2c-0-1 0-1 1-1h1.5"/>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m13 19.5 2.5 0v-4l-2.5-0m2.5 2h-2.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 538 B

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m19.5 17v1.5c0 1-0 1-1 1-1 0-1-0-1-1l-0-2c-0-1 0-1 1-1h1.5"/>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m15.5 20v-2.5h-2v-2.5m2 2.5v-2.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 535 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m18 19.5-1.5-0c-1-0-1-0-1-1l-0-2c-0-1 0-1 1-1h1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 395 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m18 19.5-2.5 0v-4l2.5-0m-2.5 2h2.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 380 B

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m16 19.5-2.5 0v-4l2.5-0m-2.5 2h2.5"/>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m17.5 15v3l1 1.5 1-1.5-0-3"/>
</svg>

Before

Width:  |  Height:  |  Size: 505 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m17 17.5h1.5v1c0 1-0 1-1.5 1s-1.5-0-1.5-1l-0-2c-0-1 0-1 1-1h2.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 409 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m16 17.5h2m0.5-2.5v5m-3-5v5"/>
</svg>

Before

Width:  |  Height:  |  Size: 373 B

@@ -1,9 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m19.5 17v1.5c0 1-0 1-1 1-1 0-1-0-1-1l-0-2c-0-1 0-1 1-1h1.5"/>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m15.5 20v-2.5h-2v-2.5m2 2.5v-2.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 535 B

@@ -1,8 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<path style="stroke-linejoin:round;stroke:currentColor;fill:none" class="ColorScheme-Text" d="m18.5 15v3.5s0 1-1.5 1-1.5-1-1.5-1l0-3.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 386 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-153 -575.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m169 587.36c-1.108 0-2 0.91085-2 2.0312v0.96875h-1v4h6v-4h-1v-0.96875c0-1.1199-0.892-2.0312-2-2.0312zm0 1c0.554 0 1 0.4424 1 1v1h-2v-1c0-0.5576 0.446-1 1-1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 516 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-153 -575.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m169 587.36c-1.108 0-2 0.91085-2 2.0312v0.96875h-1v4h6v-4h-1v-0.96875c0-1.1199-0.892-2.0312-2-2.0312zm0 1c0.554 0 1 0.4424 1 1v1h-2v-1c0-0.5576 0.446-1 1-1z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 516 B

@@ -1,10 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
<g transform="translate(-177 -575.36)">
<path style="fill:currentColor" class="ColorScheme-Text" d="m188 579.36c-2.216 0-4 1.8216-4 4.0625v1.9375h-1c-0.554 0-1 0.446-1 1v6c0 0.554 0.446 1 1 1h10c0.554 0 1-0.446 1-1v-6c0-0.554-0.446-1-1-1h-1v-1.9375c0-2.24-1.784-4.0625-4-4.0625zm0 2c1.108 0 2 0.892 2 2v2h-4v-2c0-1.108 0.892-2 2-2z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 591 B

@@ -1,7 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" version="1.1">
<defs>
<style id="current-color-scheme" type="text/css">
.ColorScheme-Text { color:#dfdfdf; } .ColorScheme-Highlight { color:#4285f4; }
</style>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 247 B