From f2a9c92b20d435621eb19b9fa9fca809b544af41 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Thu, 25 Apr 2024 07:09:26 +0100 Subject: [PATCH] Add trimmed down alt waybar that only shows workspaces Set alt waybar for vertical monitor on Vanguard --- home/waybar/default.nix | 446 ++++++++++++++++++++-------------------- hosts/Vanguard/home.nix | 5 +- 2 files changed, 232 insertions(+), 219 deletions(-) diff --git a/home/waybar/default.nix b/home/waybar/default.nix index bf45204f..933c49dc 100644 --- a/home/waybar/default.nix +++ b/home/waybar/default.nix @@ -16,229 +16,239 @@ enable = true; target = "sway-session.target"; }; - settings.main = { - layer = "top"; - position = "top"; - # Layout - "modules-left" = ["mpris"]; - "modules-center" = ["sway/workspaces"]; - "modules-right" = [ - "custom/notification" - "pulseaudio" - "network" - "bluetooth" - "clock#calendar" - "clock" - "backlight" - "battery" - "custom/weather" - "tray" - ]; - # Module config - "sway/workspaces" = { - format = "{icon}"; - format-icons = { - "1" = "󰫃 "; - "2" = "󰫄 "; - "3" = "󰫅 "; - "4" = "󰫆 "; - "5" = "󰫇 "; - "6" = "󰫈 "; - default = "󰋙 "; - urgent = "󰁡 "; - }; - # show-special = false; - # sort-by-number = true; - all-outputs = false; - persistent-workspaces = { - "1" = []; - "2" = []; - "3" = []; - "4" = []; - "5" = []; - "6" = []; - }; - }; - "sway/window" = { - "format" = "{title}"; - "max-length" = 50; - "rewrite" = { - "(.*) - GNU Emacs at (.*)" = " $1 [$2]"; - "(Alacritty.*)" = " $1"; - "(.*) - mpv" = "󰦟 $1"; - "swayimg: (.*)" = "󰋩 $1"; - "(btm)" = " Resource Usage [$1]"; - "(cava)" = "󰝚 Music Visualiser [$1]"; - "(.*) - Thunar" = "󰝰 $1"; - "Mozilla Firefox" = "󰈹 $1"; - "(.*) — Mozilla Firefox" = "󰈹 $1"; - "Nyxt - (.*)" = "󰀹 $1"; - "(.*) - Chromium" = "󰊯 $1"; - "((?:.*)WebCord.*)" = "󰙯 $1"; - "(Signal.*)" = "󰭹 $1"; - "([Ss]team)" = "󰓓 $1"; - "(Prism Launcher.*)" = "󰍳 Minecraft ($1)"; - "(X2Go Client)" = "󰢹 $1"; - "(NoMachine|Nxplayer.bin) (.*)" = "󰢹 $1 $2"; - }; - }; - mpris = { - "format" = "{status_icon} {player_icon} {artist} - {title}"; - "tooltip-format" = "{player_icon} ({player}) {dynamic}"; - "title-len" = 64; - "interval" = 1; - "dynamic-order" = [ - "album" - "artist" - "title" - "position" - "length" + settings = rec { + main = { + name = "main"; + layer = "top"; + position = "top"; + # Layout + "modules-left" = ["mpris"]; + "modules-center" = ["sway/workspaces"]; + "modules-right" = [ + "custom/notification" + "pulseaudio" + "network" + "bluetooth" + "clock#calendar" + "clock" + "backlight" + "battery" + "custom/weather" + "tray" ]; - "player-icons" = { - "default" = "󰲸 "; - "emms" = " "; - "firefox" = "󰈹 "; - "mpv" = "󰦟 "; - }; - "status-icons" = { - "playing" = "󰐊"; - "paused" = "󰏤"; - "stopped" = "󰓛"; - }; - "ignored-players" = []; - }; - pulseaudio = { - scroll-step = 5; - format = "{format_source}{icon}{volume}%"; - format-muted = "{format_source} 󰝟 "; - format-source = "󰍬 "; - format-source-muted = "󰍭 "; - format-icons = { - car = "󰄍 "; - default = ["󰕿 " "󰖀 " "󰕾 "]; - hands-free = "󰥰 "; - headset = "󰋎 "; - phone = "󰏲 "; - portable = "󰏳 "; - headphone = "󰋋 "; - }; - on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; - on-click-right = "${pkgs.pamixer}/bin/pamixer -t"; - on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5"; - on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5"; - }; - disk = { - format = "󰋊 {percentage_used}%"; - path = config.home.homeDirectory; - }; - cpu = { - format = "󰻠 {usage}%"; - tooltip = false; - }; - memory = {format = "󰍛 {}%";}; - temperature = { - critical-threshold = 80; - format = "{icon} {temperatureC}°C"; - format-icons = ["󱃃" "󰔏" "󱃂"]; - }; - network = { - format-icons = ["󰤟 " "󰤢 " "󰤥 " "󰤨 "]; - format-wifi = "{icon}"; - format-ethernet = "󰈁 "; - tooltip-format = "{essid} ({signalStrength}%)"; - format-linked = "󰈂 "; - format-disconnected = "󰈂 "; - }; - bluetooth = { - format = "󰂯"; - format-disabled = "󰂲"; - format-off = "󰂲"; - format-on = "󰂯"; - format-connected = "󰂱"; - tooltip-format = "{status} | {device_alias}"; - on-click = "${pkgs.bluez}/bin/bluetoothctl power on"; - on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off"; - }; - "clock#calendar" = { - # format = "{:󰃭 %Y-%m-%d}"; - format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021 - tooltip-format = "{calendar}"; - calendar = { - mode = "month"; - mode-mon-col = 3; - weeks-pos = "left"; - on-scroll = 1; - on-click-right = "mode"; - format = { - months = "{}"; - days = "{}"; - weeks = "W{}"; - weekdays = "{}"; - today = "{}"; + # Module config + "sway/workspaces" = { + format = "{icon}"; + format-icons = { + "1" = "󰫃 "; + "2" = "󰫄 "; + "3" = "󰫅 "; + "4" = "󰫆 "; + "5" = "󰫇 "; + "6" = "󰫈 "; + default = "󰋙 "; + urgent = "󰁡 "; + }; + # show-special = false; + # sort-by-number = true; + all-outputs = false; + persistent-workspaces = { + "1" = []; + "2" = []; + "3" = []; + "4" = []; + "5" = []; + "6" = []; }; }; - actions = { - on-click-right = "mode"; - on-scroll-up = "shift_up"; - on-scroll-down = "shift_down"; + "sway/window" = { + "format" = "{title}"; + "max-length" = 50; + "rewrite" = { + "(.*) - GNU Emacs at (.*)" = " $1 [$2]"; + "(Alacritty.*)" = " $1"; + "(.*) - mpv" = "󰦟 $1"; + "swayimg: (.*)" = "󰋩 $1"; + "(btm)" = " Resource Usage [$1]"; + "(cava)" = "󰝚 Music Visualiser [$1]"; + "(.*) - Thunar" = "󰝰 $1"; + "Mozilla Firefox" = "󰈹 $1"; + "(.*) — Mozilla Firefox" = "󰈹 $1"; + "Nyxt - (.*)" = "󰀹 $1"; + "(.*) - Chromium" = "󰊯 $1"; + "((?:.*)WebCord.*)" = "󰙯 $1"; + "(Signal.*)" = "󰭹 $1"; + "([Ss]team)" = "󰓓 $1"; + "(Prism Launcher.*)" = "󰍳 Minecraft ($1)"; + "(X2Go Client)" = "󰢹 $1"; + "(NoMachine|Nxplayer.bin) (.*)" = "󰢹 $1 $2"; + }; + }; + mpris = { + "format" = "{status_icon} {player_icon} {artist} - {title}"; + "tooltip-format" = "{player_icon} ({player}) {dynamic}"; + "title-len" = 64; + "interval" = 1; + "dynamic-order" = [ + "album" + "artist" + "title" + "position" + "length" + ]; + "player-icons" = { + "default" = "󰲸 "; + "emms" = " "; + "firefox" = "󰈹 "; + "mpv" = "󰦟 "; + }; + "status-icons" = { + "playing" = "󰐊"; + "paused" = "󰏤"; + "stopped" = "󰓛"; + }; + "ignored-players" = []; + }; + pulseaudio = { + scroll-step = 5; + format = "{format_source}{icon}{volume}%"; + format-muted = "{format_source} 󰝟 "; + format-source = "󰍬 "; + format-source-muted = "󰍭 "; + format-icons = { + car = "󰄍 "; + default = ["󰕿 " "󰖀 " "󰕾 "]; + hands-free = "󰥰 "; + headset = "󰋎 "; + phone = "󰏲 "; + portable = "󰏳 "; + headphone = "󰋋 "; + }; + on-click = "${pkgs.pavucontrol}/bin/pavucontrol"; + on-click-right = "${pkgs.pamixer}/bin/pamixer -t"; + on-scroll-up = "${pkgs.pamixer}/bin/pamixer -i 5"; + on-scroll-down = "${pkgs.pamixer}/bin/pamixer -d 5"; + }; + disk = { + format = "󰋊 {percentage_used}%"; + path = config.home.homeDirectory; + }; + cpu = { + format = "󰻠 {usage}%"; + tooltip = false; + }; + memory = {format = "󰍛 {}%";}; + temperature = { + critical-threshold = 80; + format = "{icon} {temperatureC}°C"; + format-icons = ["󱃃" "󰔏" "󱃂"]; + }; + network = { + format-icons = ["󰤟 " "󰤢 " "󰤥 " "󰤨 "]; + format-wifi = "{icon}"; + format-ethernet = "󰈁 "; + tooltip-format = "{essid} ({signalStrength}%)"; + format-linked = "󰈂 "; + format-disconnected = "󰈂 "; + }; + bluetooth = { + format = "󰂯"; + format-disabled = "󰂲"; + format-off = "󰂲"; + format-on = "󰂯"; + format-connected = "󰂱"; + tooltip-format = "{status} | {device_alias}"; + on-click = "${pkgs.bluez}/bin/bluetoothctl power on"; + on-click-right = "${pkgs.bluez}/bin/bluetoothctl power off"; + }; + "clock#calendar" = { + # format = "{:󰃭 %Y-%m-%d}"; + format = "{:%Y-%m-%d}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021 + tooltip-format = "{calendar}"; + calendar = { + mode = "month"; + mode-mon-col = 3; + weeks-pos = "left"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; + actions = { + on-click-right = "mode"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + clock = { + # format = "{:󰥔 %R}"; + format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021 + }; + backlight = { + format = "{icon}"; + tooltip-format = "{percent}%"; + format-icons = [" " " " " " " " " " " " " " " " " "]; + }; + battery = { + states = { + warning = 30; + critical = 20; + }; + format = "{icon}"; + format-charging = "󰂄 "; + format-plugged = "󰚥 "; + tooltip-format = "{capacity}% {time}"; + format-icons = ["󱃍 " "󰁺 " "󰁻 " "󰁼 " "󰁽 " "󰁾 " "󰁿 " "󰂀 " "󰂁 " "󰂂 " "󰁹 "]; + }; + "custom/notification" = let + swaync = pkgs.swaynotificationcenter; + in { + "tooltip" = false; + "format" = "{icon}{}"; + "format-icons" = { + "notification" = "󱅫 "; + "none" = "󰂚 "; + "dnd-notification" = "󰅸 "; + "dnd-none" = "󰂜 "; + "inhibited-notification" = "󰅸 "; + "inhibited-none" = "󰂜 "; + "dnd-inhibited-notification" = "󰅸 "; + "dnd-inhibited-none" = "󰂜 "; + }; + "return-type" = "json"; + "exec-if" = "which ${swaync}/bin/swaync-client"; + "exec" = "${swaync}/bin/swaync-client -swb"; + "on-click" = "${swaync}/bin/swaync-client -t -sw"; + "on-click-right" = "${swaync}/bin/swaync-client -d -sw"; + "escape" = true; + }; + "custom/weather" = let + date-format = "%Y-%m-%d"; + custom-indicator = "{ICON}{temp_C}({FeelsLikeC})"; + in { + "format" = "{}°"; + "tooltip" = true; + "interval" = 900; # Every 15 minutes + "exec" = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"''; + "return-type" = "json"; + }; + tray = { + icon-size = builtins.floor fonts.sizes.popups; + show-passive-items = true; + spacing = 5; }; }; - clock = { - # format = "{:󰥔 %R}"; - format = "{:%R}"; # TEMP, see https://github.com/Alexays/Waybar/issues/3021 - }; - backlight = { - format = "{icon}"; - tooltip-format = "{percent}%"; - format-icons = [" " " " " " " " " " " " " " " " " "]; - }; - battery = { - states = { - warning = 30; - critical = 20; - }; - format = "{icon}"; - format-charging = "󰂄 "; - format-plugged = "󰚥 "; - tooltip-format = "{capacity}% {time}"; - format-icons = ["󱃍 " "󰁺 " "󰁻 " "󰁼 " "󰁽 " "󰁾 " "󰁿 " "󰂀 " "󰂁 " "󰂂 " "󰁹 "]; - }; - "custom/notification" = let - swaync = pkgs.swaynotificationcenter; - in { - "tooltip" = false; - "format" = "{icon}{}"; - "format-icons" = { - "notification" = "󱅫 "; - "none" = "󰂚 "; - "dnd-notification" = "󰅸 "; - "dnd-none" = "󰂜 "; - "inhibited-notification" = "󰅸 "; - "inhibited-none" = "󰂜 "; - "dnd-inhibited-notification" = "󰅸 "; - "dnd-inhibited-none" = "󰂜 "; - }; - "return-type" = "json"; - "exec-if" = "which ${swaync}/bin/swaync-client"; - "exec" = "${swaync}/bin/swaync-client -swb"; - "on-click" = "${swaync}/bin/swaync-client -t -sw"; - "on-click-right" = "${swaync}/bin/swaync-client -d -sw"; - "escape" = true; - }; - "custom/weather" = let - date-format = "%Y-%m-%d"; - custom-indicator = "{ICON}{temp_C}({FeelsLikeC})"; - in { - "format" = "{}°"; - "tooltip" = true; - "interval" = 900; # Every 15 minutes - "exec" = ''${pkgs.wttrbar}/bin/wttrbar --location Didcot --date-format "${date-format}" --custom-indicator "${custom-indicator}"''; - "return-type" = "json"; - }; - tray = { - icon-size = builtins.floor fonts.sizes.popups; - show-passive-items = true; - spacing = 5; + alt = { + inherit (main) layer position "sway/workspaces"; + name = "alt"; + "modules-left" = []; + "modules-center" = ["sway/workspaces"]; + "modules-right" = []; }; }; style = with scheme.withHashtag; let diff --git a/hosts/Vanguard/home.nix b/hosts/Vanguard/home.nix index df0bbeae..42f26863 100644 --- a/hosts/Vanguard/home.nix +++ b/hosts/Vanguard/home.nix @@ -12,5 +12,8 @@ }; }; }; - programs.waybar.settings.main.output = ["DP-2"]; + programs.waybar.settings = { + main.output = ["DP-2"]; + alt.output = ["HDMI-A-1"]; + }; }