Files
.dotfiles/.config/sway/waybar/config.jsonc
T
jozamudi 63345e51e3 unify color palette, harden shikane service, misc sway/opencode updates
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}
2026-09-28 14:04:22 -07:00

105 lines
3.1 KiB
JSON

// -*- mode: jsonc -*-
{
"spacing": 2, // Gaps between modules (4px)
"modules-left": [
"sway/workspaces",
"sway/submap",
"sway/scratchpad",
"sway/window"
],
//"modules-center": [
//"sway/window"
//],
"modules-right": [
//"mpd",
"pulseaudio",
//"network",
"battery",
"clock",
"tray"
//"custom/power"
],
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "S{count}",
"show-empty": false,
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"tray": {
// "icon-size": 21,
"spacing": 10,
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
},
"clock": {
//"timezone": "America/Los_Angeles",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%r %Y-%m-%d}",
//"format": "{:%R %p %Y-%m-%d}",
//"format-alt": "{:%Y-%m-%d}"
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{time} {capacity}%",
"format-full": "{capacity}%",
"format-charging": "{capacity}% C",
"format-plugged": "{capacity}% P",
"format-alt": "{time}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{profile}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {"default": [""]}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
//"format-wifi": "{essid} ({signalStrength}%)",
//"format-ethernet": "{ipaddr}/{cidr}",
//"tooltip-format": "{ifname} via {gwaddr}",
//"format-linked": "{ifname} (No IP)",
//"format-disconnected": "Disconnected",
"format-disconnected": "Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {format_source}",
"format-bluetooth": "{volume}% {format_source}",
"format-bluetooth-muted": " {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}%",
"format-source-muted": "",
"format-icons": {
"default": [""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{text}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": ""
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}