{ inputs, pkgs, hostname, outputs, osConfig, ... }: { xdg.configFile."sway/config".source = ./files/sway/${osConfig.networking.hostName}; programs = { swaylock = { enable = true; settings = { ignore-empty-password = true; daemonize = true; indicator-radius = "100"; scaling = "fill"; #fade-in = "3"; #effect-blur = "3x10"; }; }; waybar = { enable = true; settings = { mainBar = { ipc = true; position = "bottom"; height = 10; spacing = 0; modules-left = ["sway/workspaces" "sway/mode" "wlr/workspaces" "custom/mycal"]; modules-center = []; modules-right = ["idle_inhibitor" "custom/mytimew" "pulseaudio" "custom/mymusic" "bluetooth" "network" "backlight" "battery" "battery#bat2" "tray" "custom/mycal" "clock"]; bluetooth = { format-alt = "bt: {status}"; format-on = "bt"; format-connected = "^bt"; format-off = "!bt"; format-disabled = "xbt"; on-click = "bluetoogle"; tooltip-format = "{status}"; }; backlight = { device = "intel_backlight"; format = "{icon} {percent}%"; format-alt-click = "click-right"; on-scroll-down = "${pkgs.light}/bin/light -A 1"; on-scroll-up = "${pkgs.light}/bin/lightlight -U 1"; }; "custom/mytimew" = { exec = "~/bin/timebar"; interval = 30; on-click = "${pkgs.alacritty}/bin/alacritty -e ~/bin/ttmenu"; }; "custom/mycal" = { exec = "~/bin/show-next-event"; interval = 300; on-click = "~/bin/mynewterm -e ikhal"; }; "custom/mymusic" = { exec = "~/bin/show-playing"; on-click = "~/bin/control-music --pause"; interval = 5; }; "sway/window" = { icon-size = 10; }; "sway/mode" = { format = "{}"; }; "idle_inhibitor" = { format = "{icon}"; format-icons = { activated = ""; deactivated = ""; }; }; tray = { icon-size = 16; spacing = 10; }; clock = { tooltip-format = "{:%Y %B %d}\n{calendar}"; format = "{:%I:%M %p}"; format-alt = "{:%Y-%m-%d}"; on-click = "~/bin/mynewterm -e ikhal"; }; cpu = { format = "cpu: {usage}%"; tooltip = false; }; memory = { format = "mem: {}%"; }; temperature = { critical-threshold = 80; format = "{temperatureC}°C {icon}"; }; battery = { states = { good = 75; warning = 20; critical = 10; }; format = "{capacity}% {time}"; format-charging = "c:{capacity}% {time}"; format-plugged = "p:{capacity}% {time}"; format-discharging = "d:{capacity}% {time}"; format-alt = "{time} {icon}"; }; "battery#bat2" = { bat = "BAT2"; }; network = { format-wifi = "{essid} ({signalStrength}%)"; format-ethernet = "{ipaddr}/{cidr}"; tooltip-format = "{ifname} via {gwaddr}"; format-linked = "{ifname} (No IP)"; format-disconnected = "Disconnected"; format-alt = "{ifname}: {ipaddr}/{cidr}"; }; pulseaudio = { format = "v:{volume}%"; format-bluetooth = "{volume}% {icon} {format_source}"; format-bluetooth-muted = " {icon} {format_source}"; format-muted = "muted"; format-source = "v:{volume}% "; format-source-muted = ""; format-icons = { headphone = "hp"; hands-free = "hf"; headset = "hs"; phone = "p"; }; on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol"; }; }; }; style = '' * { border: none; border-radius: 0; font-family: "JetBrains Mono", FontAwesome6Free, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif; font-size: 10px; min-height: 0; } window#waybar { background: rgba(43, 48, 59, 0.5); border-bottom: 3px solid rgba(100, 114, 125, 0.5); color: #ffffff; } window#waybar.hidden { opacity: 0.0; } #workspaces button { padding: 0 5px; background: transparent; color: #ffffff; border-bottom: 3px solid transparent; } #workspaces button.focused { background: #64727D; border-bottom: 3px solid #ffffff; } #workspaces button.urgent { background-color: #eb4d4b; } #mode { background: #64727D; border-bottom: 3px solid #ffffff; } #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-mymusic, #tray, #mode, #idle_inhibitor, #bluetooth { padding: 0 5px; margin: 0 0px; } #clock { background-color: #64727D; color: #f1fa8c; } #battery { color: #000000; background-color: #50fa7b; } #battery.warning { color: #000000; background-color: #ff79c6; } #battery.critical { color: #ffffff; background-color: #ff5555; } #battery.charging { color: #44475a; background-color: #50fa7b; } @keyframes blink { to { background-color: #ffffff; color: #000000; } } #battery.critical:not(.charging) { background: #f53c3c; color: #ffffff; animation-name: blink; animation-duration: 0.5s; animation-timing-function: linear; animation-iteration-count: infinite; animation-direction: alternate; } #cpu { background: #2ecc71; color: #000000; } #memory { background: #9b59b6; } #backlight { color: #000000; background: #90b1b1; } #bluetooth { background: #ffb86c; color: #000000; } #network { background: #bd93f9; color: #000000; } #network.disconnected { background: #ff5555; } #pulseaudio { background: #ffb86c; color: #000000; } #pulseaudio.muted { background: #90b1b1; color: #2a5c45; } #custom-mytimew { background: #bd93f9; color: #000000; } #custom-mymusic { background: #8be9fd; color: #000000; } #custom-mycal { background: #cccc99; color: #2a5c45; } #temperature { background: #f0932b; } #temperature.critical { background: #eb4d4b; } #tray { background-color: #64727D; } #idle_inhibitor { background-color: #2d3436; } #idle_inhibitor.activated { background-color: #ecf0f1; color: #2d3436; } ''; }; }; }