sway:
- config: re-apply shikane profile after every reload
(exec_always shikanectl reload); restart waybar on reload
(exec_always pkill+waybar); enable default_border pixel 2;
add tlpctl power-saver at startup
- keybinds: disable floating_modifier (was "$mod normal") -
experiment for windows popping out via accidental mod+click
- windows: case-insensitive pydm title match for floating rule
- swayfx + waybar style: unified 5-color palette (base00-0F) with
doc headers; waybar theme restyled to match the sway palette
- waybar config: scratchpad module in left bar, "S{count}" format
- new quickshell shell.qml bar
systemd user units:
- shikane.service: bind to graphical-session/sway-session targets,
Type=simple, Restart=on-failure (2s) with start limits so crashes
recover without giving up permanently
- new sway-session.target and its wants/ symlinks
opencode:
- load AGENTS.md as instructions (new file)
- move OpenWebUI API key from hardcoded to {env:OPENWEBUI_API_KEY}
Josue's dotfiles
Uses GNU Stow to manage simlink. Place files as they where in $HOME
Usage
clone into $HOME
cd dotfiles
stow .
If stow is not installed use ./install.sh from .dotfiles repo
User services
shikane-watchdog
.config/systemd/user/shikane-watchdog.timer (every 2 min, user unit)
runs .config/sway/scripts/shikane-watchdog.sh, which restarts the
shikane user service if its state machine is stuck.
Why: shikane 1.1.1 deadlocks when a profile application is discarded
mid-way (e.g. by a failing DP atomic commit on the external display).
The daemon then keeps logging
[WARN shikane::variant] Received invalid input AtomicChangeDone at state Discarded
and shikanectl reload no longer recovers it. The watchdog detects
that signature in the journal and runs systemctl --user restart shikane
(re-applies the active profile in ~1s). It never restarts a healthy
or legitimately transitioning daemon.
systemctl --user status shikane-watchdog.timer # check it's active
systemctl --user disable --now shikane-watchdog.timer # disable