[Sync] replace the flat layout with the unified stow tree
Supersedes the old flat .config/ layout (last published 2026-06-28) with the private repo's structure: one shared base plus per-host overlays. - packages: common/ gui/ lw/ fl/ wm/ plus install.sh and bin/ tooling (dotsync, reconcile-hyde.sh) - new README covering the layout, deploy order and the HyDE dependency - current HyDE waybar rig (layouts/, cava), pi agent extensions, claude/ config, tmux, presenterm, aichat roles - fish: kp (keepassxc-cli + fzf picker, db path from $KP_DB) and bind_M_n_history (alt+1..9 recalls the nth history entry) - drops cruft that should never have been tracked: the duplicate top-level .pi/ copy, btop.log, zellij config.kdl.bak, fish_variables - .pi/agent/auth.json is gitignored; auth.json.example ships instead Host-specific work sessions and the personal backlog stay in the private tree. Endpoint locators in the llamacpp/whisper guides are placeholders ($SERVER, <own-domain>) — the guides themselves stay, since they are the useful part.
This commit is contained in:
@@ -0,0 +1,207 @@
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0px;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-weight: bold;
|
||||
font-size: 10px;
|
||||
min-height: 10px;
|
||||
}
|
||||
|
||||
@import "../theme.css"; /* HyDE/wallbash-generated colors, lives one level up */
|
||||
|
||||
window#waybar {
|
||||
/* transparent so the cavabar (bottom layer, same region) shows through; module pills keep @main-bg */
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @main-bg;
|
||||
color: @main-fg;
|
||||
border-radius: 5px;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
#custom-padd {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: 5px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
margin-left: 0px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
margin-right: 0px;
|
||||
color: @main-fg;
|
||||
animation: ws_normal 20s ease-in-out 1;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-fg;
|
||||
animation: ws_active 20s ease-in-out 1;
|
||||
transition: all 0.4s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-fg;
|
||||
animation: ws_hover 20s ease-in-out 1;
|
||||
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
padding: 0px;
|
||||
border-radius: 6px;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
margin-left: 0px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
margin-right: 0px;
|
||||
color: @wb-color;
|
||||
animation: tb_normal 20s ease-in-out 1;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background: @wb-act-bg;
|
||||
color: @wb-act-color;
|
||||
/*animation: tb_active 20s ease-in-out 1;*/
|
||||
box-shadow: 0 0 1px 1px rgba(128, 128, 128, 0.4);
|
||||
transition: all 0.4s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
background: @wb-hvr-bg;
|
||||
color: @wb-hvr-color;
|
||||
opacity: 0.8;
|
||||
animation: tb_hover 20s ease-in-out 1;
|
||||
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
#tray menu * {
|
||||
min-height: 16px;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
min-height: 10px;
|
||||
}
|
||||
|
||||
#backlight,
|
||||
#battery,
|
||||
#bluetooth,
|
||||
#custom-cava,
|
||||
#custom-cliphist,
|
||||
#clock,
|
||||
#custom-cpuinfo,
|
||||
#cpu,
|
||||
#custom-gpuinfo,
|
||||
#idle_inhibitor,
|
||||
#custom-keybindhint,
|
||||
#language,
|
||||
#memory,
|
||||
#mpris,
|
||||
#network,
|
||||
#custom-notifications,
|
||||
#custom-power,
|
||||
#pulseaudio,
|
||||
#custom-spotify,
|
||||
#taskbar,
|
||||
#custom-theme,
|
||||
#tray,
|
||||
#custom-updates,
|
||||
#custom-wallchange,
|
||||
#custom-wbar,
|
||||
#window,
|
||||
#workspaces,
|
||||
#custom-l_end,
|
||||
#custom-r_end,
|
||||
#custom-sl_end,
|
||||
#custom-sr_end,
|
||||
#custom-rl_end,
|
||||
#custom-rr_end {
|
||||
color: @main-fg;
|
||||
background: @main-bg;
|
||||
opacity: 1;
|
||||
margin: 4px 0px 4px 0px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
window#waybar.empty #window,
|
||||
window#waybar.empty #custom-sl_end,
|
||||
window#waybar.empty #custom-sr_end {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
border-radius: 8px;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
#custom-r_end {
|
||||
border-radius: 0px 8px 8px 0px;
|
||||
margin-right: 3px;
|
||||
padding-right: 1px;
|
||||
}
|
||||
|
||||
#custom-l_end {
|
||||
border-radius: 8px 0px 0px 8px;
|
||||
margin-left: 3px;
|
||||
padding-left: 1px;
|
||||
}
|
||||
|
||||
#custom-sr_end {
|
||||
border-top-right-radius: 6px;
|
||||
border-bottom-right-radius: 6px;
|
||||
margin-right: 9px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#custom-sl_end {
|
||||
border-top-left-radius: 6px;
|
||||
border-bottom-left-radius: 6px;
|
||||
margin-left: 9px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-rr_end {
|
||||
border-radius: 0px 8px 8px 0px;
|
||||
margin-right: 9px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#custom-rl_end {
|
||||
border-radius: 8px 0px 0px 8px;
|
||||
margin-left: 9px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
window#waybar.cavabar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
window#waybar.cavabar #custom-cava {
|
||||
font-size: 24px;
|
||||
color: alpha(@main-fg, 0.7);
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
@@ -0,0 +1,332 @@
|
||||
// --// standalone two-bar cava rig — hand-maintained, NOT HyDE-generated (see README "Waybar") //-- //
|
||||
|
||||
[
|
||||
{
|
||||
// sourced from header module //
|
||||
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 33,
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"gtk-layer-shell": true,
|
||||
"reload_style_on_change": true,
|
||||
|
||||
|
||||
// positions generated based on config.ctl //
|
||||
|
||||
"modules-left": ["custom/l_end","custom/power","custom/r_end","hyprland/workspaces", "custom/sl_end","hyprland/window","custom/sr_end","custom/l_end","custom/wallchange","custom/cliphist","custom/r_end"],
|
||||
"modules-center": ["wlr/taskbar"],
|
||||
"modules-right": ["custom/l_end","backlight","pulseaudio","pulseaudio#microphone","mpris","custom/r_end","custom/l_end","memory","cpu","custom/cpuinfo","battery","custom/r_end","custom/l_end","tray","custom/r_end","custom/l_end","idle_inhibitor","clock","custom/r_end"],
|
||||
|
||||
// sourced from modules based on config.ctl //
|
||||
|
||||
"tray": {
|
||||
"icon-size": 19,
|
||||
"rotate": 0,
|
||||
"spacing": 5
|
||||
},
|
||||
|
||||
// NOTE: keep in sync with modules/window.jsonc — this layout is launched standalone
|
||||
// (waybar -c), so the modules/ file is NOT read here; this inline copy is what renders.
|
||||
"hyprland/window": {
|
||||
"format": " {}",
|
||||
"rotate": 0,
|
||||
"separate-outputs": true,
|
||||
"max-length": 1000,
|
||||
"rewrite": {
|
||||
"(.*) — Kitty": " $1",
|
||||
"(.*)~": " $1",
|
||||
"(.*) — Mozilla Firefox": " $1",
|
||||
"(.*)Mozilla Firefox": " Firefox",
|
||||
"(.*) — LibreWolf": " $1",
|
||||
"(.*)LibreWolf": " LibreWolf",
|
||||
"(.*) — Chromium": " $1",
|
||||
"(.*)Chromium": " Chromium",
|
||||
"(.*) - VSCodium": " $1",
|
||||
"(.*)VSCodium": " VSCodium",
|
||||
"(.*)Code - OSS": " $1",
|
||||
"(.*) - Visual Studio Code": " $1",
|
||||
"(.*)Visual Studio Code": " Code",
|
||||
"(.*) — Dolphin": " $1",
|
||||
"(.*) - Obsidian(.*)": " $1",
|
||||
"(.*)Ferdium": " Ferdium",
|
||||
"(.*)FreeTube": " FreeTube",
|
||||
"(.*) - VLC media player": " $1",
|
||||
"(.*)Steam": " Steam",
|
||||
"(.*)Neovide": " Nvim",
|
||||
"(.*)Neovim": " Nvim",
|
||||
"(.*)Nvim": " Nvim",
|
||||
"(.*)Gajim": " Gajim",
|
||||
"(.*)KeePassXC": " KeePassXC",
|
||||
"(.*)Betterbird": " Betterbird",
|
||||
"(.*)Spotify": " Spotify"
|
||||
}
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"window-rewrite-default":"",
|
||||
"all-outputs": true,
|
||||
"active-only": false,
|
||||
"on-click": "activate",
|
||||
"disable-scroll": false,
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {}
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 10,
|
||||
"format": " {usage}%",
|
||||
"format-alt": "{icon0}{icon1}{icon2}{icon3}",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
|
||||
},
|
||||
|
||||
"custom/cpuinfo": {
|
||||
"exec": " cpuinfo.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"rotate": 0,
|
||||
"interval": 5, // once every 5 seconds
|
||||
"tooltip": true,
|
||||
"max-length": 1000
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": {
|
||||
"c": 90, // critical
|
||||
"h": 60, // high
|
||||
"m": 30 // medium
|
||||
},
|
||||
"interval": 30,
|
||||
"rotate": 0,
|
||||
"format": " {used:0.1f}GB",
|
||||
"format-m": " {used:0.1f}GB",
|
||||
"format-h": " {used:0.1f}GB",
|
||||
"format-c": " {used:0.1f}GB",
|
||||
"format-alt": " {percentage}%",
|
||||
"max-length": 10,
|
||||
"tooltip": true,
|
||||
"tooltip-format": " {percentage}%\n {used:0.1f}GB/{total:0.1f}GB"
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": "{}",
|
||||
"rotate": 0,
|
||||
"exec": "echo ; echo logout",
|
||||
"on-click": "logoutlaunch.sh 2",
|
||||
"on-click-right": "logoutlaunch.sh 1",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"rotate": 0,
|
||||
"icon-size": 19,
|
||||
"icon-theme": "Tela-circle-dracula",
|
||||
"spacing": 0,
|
||||
"tooltip-format": "{title}",
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
"ignore-list": [
|
||||
"Alacritty"
|
||||
],
|
||||
"app_ids-mapping": {
|
||||
"firefoxdeveloperedition": "firefox-developer-edition"
|
||||
}
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"rotate": 0,
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"rotate": 0,
|
||||
"format-alt": "{:%R %d·%m·%y}",
|
||||
"tooltip-format": "<span>{calendar}</span>",
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 3,
|
||||
"on-scroll": 1,
|
||||
"on-click-right": "mode",
|
||||
"format": {
|
||||
"months": "<span color='#ffead3'><b>{}</b></span>",
|
||||
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
|
||||
"today": "<span color='#ff6699'><b>{}</b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
"on-click-forward": "tz_up",
|
||||
"on-click-backward": "tz_down",
|
||||
"on-scroll-up": "shift_up",
|
||||
"on-scroll-down": "shift_down"
|
||||
}
|
||||
},
|
||||
|
||||
"custom/cliphist": {
|
||||
"format": "{}",
|
||||
"rotate": 0,
|
||||
"exec": "echo ; echo clipboard history",
|
||||
"on-click": "sleep 0.1 && cliphist.sh c",
|
||||
"on-click-right": "sleep 0.1 && cliphist.sh d",
|
||||
"on-click-middle": "sleep 0.1 && cliphist.sh w",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"custom/wallchange": {
|
||||
"format": "{}",
|
||||
"rotate": 0,
|
||||
"exec": "echo ; echo switch wallpaper",
|
||||
"on-click": "swwwallpaper.sh -n",
|
||||
"on-click-right": "swwwallpaper.sh -p",
|
||||
"on-click-middle": "sleep 0.1 && swwwallselect.sh",
|
||||
"interval" : 86400, // once every day
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}",
|
||||
"rotate": 0,
|
||||
"format-muted": "婢",
|
||||
"on-click": "pavucontrol -t 3",
|
||||
"on-click-right": "volumecontrol.sh -s ''",
|
||||
"on-click-middle": "volumecontrol.sh -o m",
|
||||
"on-scroll-up": "volumecontrol.sh -o i",
|
||||
"on-scroll-down": "volumecontrol.sh -o d",
|
||||
"tooltip-format": "{icon} {desc} // {volume}%",
|
||||
"scroll-step": 5,
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
|
||||
"pulseaudio#microphone": {
|
||||
"format": "{format_source}",
|
||||
"rotate": 0,
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"on-click": "pavucontrol -t 4",
|
||||
"on-click-middle": "volumecontrol.sh -i m",
|
||||
"on-scroll-up": "volumecontrol.sh -i i",
|
||||
"on-scroll-down": "volumecontrol.sh -i d",
|
||||
"tooltip-format": "{format_source} {source_desc} // {source_volume}%",
|
||||
"scroll-step": 5
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"format": "{player_icon} {dynamic}",
|
||||
"rotate": 0,
|
||||
"format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||
"player-icons": {
|
||||
"default": "▶",
|
||||
"mpv": "🎵"
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": ""
|
||||
},
|
||||
"max-length": 1000,
|
||||
"interval": 1
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"rotate": 0,
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"rotate": 0,
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||
"on-scroll-up": "brightnessctl set 1%+",
|
||||
"on-scroll-down": "brightnessctl set 1%-",
|
||||
"min-length": 6
|
||||
},
|
||||
// modules for padding //
|
||||
|
||||
"custom/l_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/r_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/sr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rl_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rr_end": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/padd": {
|
||||
"format": " ",
|
||||
"interval" : "once",
|
||||
"tooltip": false
|
||||
}
|
||||
},
|
||||
|
||||
// full-width cava visualizer layered behind the main bar //
|
||||
|
||||
{
|
||||
"name": "cavabar",
|
||||
"layer": "bottom",
|
||||
"position": "top",
|
||||
"height": 36,
|
||||
"margin-top": -33,
|
||||
"exclusive": false,
|
||||
"passthrough": true,
|
||||
"modules-center": ["custom/cava"],
|
||||
|
||||
"custom/cava": {
|
||||
"format": "{}",
|
||||
"exec": "bash $HOME/.config/waybar/cava-waybar.sh $(cat $HOME/.config/waybar/cava.width 2>/dev/null || echo 94)", // per-host cava.width (bars, even; ~screen_px / (font-size*0.6)). gui default 94; wm overrides to 218
|
||||
"restart-interval": 1,
|
||||
"hide-empty-text": true
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user