mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 23:49:56 +00:00
desktop: add sway/swayfx profile (dormant) with waybar, kanshi, cliphist
New profile_desktop_sway role gated by desktop_sessions_enabled, with SwayFX effects, Waybar bar (1:1 with Polybar layout + pulseaudio), swayidle + swaylock-effects for locking, swayosd for OSD, cliphist for clipboard history and kanshi for multi-monitor profiles. Emptty gains WAYLAND_SESSIONS_PATH + wayland-sessions dir. start-sway wrapper handles session env (dbus-run-session, gpg-agent, turnstile env). Profile stays dormant until a host opts in via desktop_sessions_enabled. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
101
dotfiles/desktop/.config/waybar/config.jsonc
Normal file
101
dotfiles/desktop/.config/waybar/config.jsonc
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 26,
|
||||
"spacing": 4,
|
||||
|
||||
"modules-left": ["sway/workspaces"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": ["cpu", "memory", "disk", "temperature", "backlight", "network", "pulseaudio", "battery", "tray"],
|
||||
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"all-outputs": false,
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"1": "I",
|
||||
"2": "II",
|
||||
"3": "III",
|
||||
"4": "IV",
|
||||
"5": "V",
|
||||
"6": "VI",
|
||||
"7": "VII",
|
||||
"8": "VIII",
|
||||
"9": "IX",
|
||||
"10": "X"
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||
}
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"interval": 60,
|
||||
"format": " {:%Y-%m-%d %H:%M}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>"
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": " {usage}%"
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 10,
|
||||
"format": " {used:0.1f}G / {total:0.1f}G"
|
||||
},
|
||||
|
||||
"disk": {
|
||||
"interval": 60,
|
||||
"path": "/",
|
||||
"format": " {used} / {total}"
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
"interval": 10,
|
||||
"critical-threshold": 80,
|
||||
"format": " {temperatureC}°C",
|
||||
"format-critical": " {temperatureC}°C"
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"format": " {percent}%",
|
||||
"on-scroll-up": "brightnessctl set +5%",
|
||||
"on-scroll-down": "brightnessctl set 5%-"
|
||||
},
|
||||
|
||||
"network": {
|
||||
"interval": 5,
|
||||
"format-wifi": " {essid} {signalStrength}%",
|
||||
"format-ethernet": " {ifname}",
|
||||
"format-disconnected": " offline",
|
||||
"tooltip-format": "{ifname} {ipaddr}"
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " muted",
|
||||
"format-bluetooth": "{icon} {volume}% ",
|
||||
"format-icons": { "default": ["", "", ""] },
|
||||
"on-click": "swayosd-client --output-volume mute-toggle",
|
||||
"on-click-right": "pavucontrol"
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"interval": 30,
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-full": " full",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 16,
|
||||
"spacing": 6
|
||||
}
|
||||
}
|
||||
67
dotfiles/desktop/.config/waybar/style.css
Normal file
67
dotfiles/desktop/.config/waybar/style.css
Normal file
@@ -0,0 +1,67 @@
|
||||
* {
|
||||
font-family: "LiterationMono Nerd Font", "Symbols Nerd Font Mono", monospace;
|
||||
font-size: 10pt;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: #1f1f28;
|
||||
color: #d0d0d0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 8px;
|
||||
margin: 0;
|
||||
color: #9a9a9a;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: #d0d0d0;
|
||||
background-color: #2b2b36;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #ffffff;
|
||||
background-color: #4a90d9;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #ffffff;
|
||||
background-color: #c7162b;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#tray {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#clock { color: #d0d0d0; }
|
||||
#cpu { color: #bb9af7; }
|
||||
#memory { color: #7dcfff; }
|
||||
#disk { color: #9ec07c; }
|
||||
#temperature { color: #e0af68; }
|
||||
#temperature.critical { color: #c7162b; }
|
||||
#backlight { color: #d0d0d0; }
|
||||
#network { color: #4a90d9; }
|
||||
#network.disconnected { color: #3a3a46; }
|
||||
#pulseaudio { color: #7dcfff; }
|
||||
#pulseaudio.muted { color: #3a3a46; }
|
||||
#battery { color: #d0d0d0; }
|
||||
#battery.charging { color: #9ec07c; }
|
||||
#battery.warning { color: #e0af68; }
|
||||
#battery.critical { color: #c7162b; }
|
||||
#battery.full { color: #9ec07c; }
|
||||
|
||||
#tray { padding: 0 6px; }
|
||||
Reference in New Issue
Block a user