From 8e4ceadfb1591bbb410ecab9b996c8d70e77dc41 Mon Sep 17 00:00:00 2001 From: Eclypsed Date: Mon, 15 Dec 2025 23:46:52 -0500 Subject: [PATCH] Updated Waybar && Switched to JetBrainsMono --- modules/home/stylix.nix | 4 +- modules/home/waybar/default.nix | 480 ++++-------------- modules/home/waybar/modules/backlight.nix | 27 + modules/home/waybar/modules/battery.nix | 33 ++ modules/home/waybar/modules/bluetooth.nix | 13 + modules/home/waybar/modules/clock.nix | 21 + modules/home/waybar/modules/cpu.nix | 7 + modules/home/waybar/modules/disk.nix | 10 + .../home/waybar/modules/hyprland-window.nix | 15 + .../waybar/modules/hyprland-workspaces.nix | 23 + .../home/waybar/modules/idle-inhibitor.nix | 10 + modules/home/waybar/modules/memory.nix | 11 + modules/home/waybar/modules/menu.nix | 10 + modules/home/waybar/modules/mpris.nix | 26 + modules/home/waybar/modules/network.nix | 22 + modules/home/waybar/modules/power.nix | 10 + modules/home/waybar/modules/temperature.nix | 14 + modules/home/waybar/modules/tray.nix | 7 + modules/home/waybar/modules/wireplumber.nix | 27 + modules/home/waybar/style.css | 184 ------- modules/system/fonts.nix | 2 + 21 files changed, 389 insertions(+), 567 deletions(-) create mode 100644 modules/home/waybar/modules/backlight.nix create mode 100644 modules/home/waybar/modules/battery.nix create mode 100644 modules/home/waybar/modules/bluetooth.nix create mode 100644 modules/home/waybar/modules/clock.nix create mode 100644 modules/home/waybar/modules/cpu.nix create mode 100644 modules/home/waybar/modules/disk.nix create mode 100644 modules/home/waybar/modules/hyprland-window.nix create mode 100644 modules/home/waybar/modules/hyprland-workspaces.nix create mode 100644 modules/home/waybar/modules/idle-inhibitor.nix create mode 100644 modules/home/waybar/modules/memory.nix create mode 100644 modules/home/waybar/modules/menu.nix create mode 100644 modules/home/waybar/modules/mpris.nix create mode 100644 modules/home/waybar/modules/network.nix create mode 100644 modules/home/waybar/modules/power.nix create mode 100644 modules/home/waybar/modules/temperature.nix create mode 100644 modules/home/waybar/modules/tray.nix create mode 100644 modules/home/waybar/modules/wireplumber.nix delete mode 100644 modules/home/waybar/style.css diff --git a/modules/home/stylix.nix b/modules/home/stylix.nix index 8e1a8c3..183044c 100644 --- a/modules/home/stylix.nix +++ b/modules/home/stylix.nix @@ -15,8 +15,8 @@ base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; fonts = { monospace = { - name = "FiraCode Nerd Font"; - package = pkgs.nerd-fonts.fira-code; + name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font"; + package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code; }; }; targets = { diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix index 62e87ac..c202fb5 100644 --- a/modules/home/waybar/default.nix +++ b/modules/home/waybar/default.nix @@ -2,318 +2,11 @@ ... }: let - hyprland-workspaces = { - format = "{icon}"; - show-special = false; - active-only = false; - on-click = "activate"; - on-scroll-up = "hyprctl dispatch workspace e+1"; - on-scroll-down = "hyprctl dispatch workspace e-1"; - all-outputs = true; - sort-by-number = true; - persistent-workspaces = { - "1" = [ ]; - "2" = [ ]; - "3" = [ ]; - "4" = [ ]; - }; - format-icons = { - "1" = " "; - "2" = " "; - "3" = " "; - "4" = " "; - "5" = ""; - "6" = " "; - "7" = ""; - "8" = " "; - "9" = " "; - "10" = "10"; - "focused" = ""; - "default" = ""; - }; - }; - - menu = { - format = "{}"; - exec = "echo ; echo 󱓟 app launcher"; - interval = 86400; - tooltip = true; - on-click = "walker"; - }; - - hyprland-window = { - format = "󰣆 {title}"; - max-length = 40; - separate-outputs = false; - rewrite = { - "^.*( — LibreWolf|LibreWolf)$" = "󰈹 LibreWolf"; - "(.*) — Mozilla Firefox" = " Firefox"; - "^.*v( .*|$)" = " Neovim"; - "^.*~$" = "󰄛 Kitty"; - "(.*) " = " Empty"; - "^.*pdf( .*|$)" = ""; - "^.*(- Mousepad)$" = " $1"; - }; - }; - - cava = { - autosens = 1; - bars = 15; - bar_delimiter = 32; # ASCII for " " (space) - format-icons = [ - "▁" - "▂" - "▃" - "▄" - "▅" - "▆" - "▇" - "█" - ]; - framerate = 30; - input_delay = 2; - method = "pipewire"; - }; - - arrow-right = { - format = "󰁙"; + separator_blank = { + format = ""; + interval = "once"; tooltip = false; }; - - cpu = { - format = "󰘚 {usage}󱉸"; - }; - - memory = { - interval = 10; - format = "{used:0.1f}G 󰾆"; - format-alt = "{percentage}% 󰾆"; - format-alt-click = "click"; - tooltip = true; - tooltip-format = "{used:0.1f}GB/{total:0.1f}G"; - # on-click-right = "kitty --title btop sh -c 'btop'"; - }; - - temperature = { - interval = 10; - tooltip = true; - hwmon-path = [ - "/sys/class/hwmon/hwmon6/temp1_input" - "/sys/class/thermal/thermal_zone0/temp" - ]; - critical-threshold = 82; - format-critical = "{temperatureC}°C {icon}"; - format = "{temperatureC}°C {icon}"; - format-icons = [ "󰈸" ]; - # on-click-right = "kitty --title nvtop sh -c 'nvtop'"; - }; - - idle-inhibitor = { - format = "{icon}"; - format-icons = { - activated = " "; - deactivated = " "; - }; - }; - - tray = { - icon-size = 16; - spacing = 4; - }; - - pulseaudio = { - format = "{icon} {volume}% {format_source}"; - format-muted = "󰖁 {format_source}"; - format-bluetooth = "󰂰 {icon} {volume}% {format_source}"; - format-bluetooth-muted = "󰂰 󰖁 {format_source}"; - format-source = "󰍬 {volume}%"; - format-source-muted = "󰍭"; - format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - default = [ - "" - "" - "󰕾" - "" - ]; - }; - scroll-step = 5.0; - on-click = "pavucontrol -t 3"; - on-click-right = "pavucontrol -t 4"; - tooltip-format = "{icon} {desc} | {volume}%"; - smooth-scrolling-threshold = 1; - }; - - wireplumber = { - format = "{icon} {volume}% {format_source}"; - format-muted = "󰖁 {format_source}"; - format-source = "󰍬 {volume}%"; - format-source-muted = "󰍭"; - format-icons = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - default = [ - "" - "" - "󰕾" - "" - ]; - }; - scroll-step = 5.0; - on-click = "pavucontrol -t 3"; - on-click-right = "pavucontrol -t 4"; - tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%"; - }; - - backlight = { - format = "{icon} {percent}%"; - format-icons = [ - "" - "" - "" - "" - "" - "" - "" - "" - "" - ]; - on-scroll-down = "brightnessctl set 10%-"; - on-scroll-up = "brightnessctl set +10%"; - tooltip = false; - }; - - battery = { - align = 0; - rotate = 0; - full-at = 100; - design-capacity = false; - states = { - critical = 20; - }; - format = "{icon} {capacity}%"; - format-charging = " {capacity}%"; - format-plugged = "󱘖 {capacity}%"; - format-alt-click = "click"; - format-full = "{icon} Full"; - format-alt = "{icon} {time}"; - format-icons = [ - "󰂎" - "󰁺" - "󰁻" - "󰁼" - "󰁽" - "󰁾" - "󰁿" - "󰂀" - "󰂁" - "󰂂" - "󰁹" - ]; - format-time = "{H}h {M}min"; - tooltip = true; - tooltip-format = "{timeTo} {power}w"; - }; - - mpris = { - interval = 10; - format = "{player_icon} "; - format-paused = "{status_icon}"; - on-click-middle = "playerctl play-pause"; - on-click = "playerctl previous"; - on-click-right = "playerctl next"; - scroll-step = 5.0; - smooth-scrolling-threshold = 1; - player-icons = { - chromium = ""; - mpd = ""; - default = ""; - firefox = ""; - kdeconnect = ""; - mopidy = ""; - mpv = "󰐹"; - spotify = ""; - vlc = "󰕼"; - }; - status-icons = { - paused = "󰐎"; - playing = ""; - stopped = ""; - }; - max-length = 10; - }; - - arrow-left = { - format = "󰁒"; - tooltip = false; - }; - - network = { - format-disconnected = "󰖪 "; - format-wifi = " "; - format-ethernet = "󰈀 "; - format-linked = " (No IP)"; - format-disabled = " (Disabled)"; - tooltip-format = "{essid}: {ipaddr}/{cidr}"; - }; - - notifications = { - tooltip = false; - format = "{icon} {text}"; - 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-client"; - # exec = "swaync-client -swb"; - # on-click = "swaync-client -t -sw"; - # on-click-right = "swaync-client -d -sw"; - escape = true; - }; - - clock = { - interval = 1; - format = "{:%I:%M %p}"; # AM-PM Format - format-alt = " {:%H:%M  %Y, %d %B, %A}"; - tooltip-format = "{calendar}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "right"; - on-scroll = 1; - format = { - months = "{}"; - days = "{}"; - weeks = "W{}"; - weekdays = "{}"; - today = "{}"; - }; - }; - }; - - power = { - format = "⏻"; - exec = "echo ; echo 󰟡 power"; - on-click = "wlogout"; - interval = 86400; - tooltip = true; - }; in { programs.waybar = { @@ -323,100 +16,125 @@ in { layer = "top"; position = "top"; - height = 34; margin-left = 10; margin-right = 10; - margin-top = 10; + margin-top = 5; fixed-center = true; reload_style_on_change = true; + "hyprland/workspaces" = import ./modules/hyprland-workspaces.nix { }; + "custom/menu" = import ./modules/menu.nix { }; + "hyprland/window" = import ./modules/hyprland-window.nix { }; + "disk" = import ./modules/disk.nix { }; + "cpu" = import ./modules/cpu.nix { }; + "memory" = import ./modules/memory.nix { }; + "temperature" = import ./modules/temperature.nix { }; + "idle_inhibitor" = import ./modules/idle-inhibitor.nix { }; + "tray" = import ./modules/tray.nix { }; + "network" = import ./modules/network.nix { }; + "wireplumber" = import ./modules/wireplumber.nix { }; + "backlight" = import ./modules/backlight.nix { }; + "mpris" = import ./modules/mpris.nix { }; + "battery" = import ./modules/battery.nix { full-at = 80; }; # Change this to come from the TLP setting + "clock" = import ./modules/clock.nix { }; + "custom/power" = import ./modules/power.nix { }; + "custom/separator#blank" = separator_blank; + modules-left = [ "custom/menu" - "hyprland/window" - "cava" - "group/info" + "custom/separator#blank" + "clock" ]; modules-center = [ - "hyprland/workspaces#4" + "hyprland/workspaces" ]; modules-right = [ - "idle_inhibitor" - "group/demo" - "group/hub" + "tray" + "custom/separator#blank" + "group/motherboard" + "custom/separator#blank" + "wireplumber" + "custom/separator#blank" + "custom/power" ]; - "hyprland/workspaces#4" = hyprland-workspaces; - "custom/menu" = menu; - "hyprland/window" = hyprland-window; - "cava" = cava; - "custom/arrow-right" = arrow-right; - "cpu" = cpu; - "memory" = memory; - "temperature" = temperature; - "idle_inhibitor" = idle-inhibitor; - "tray" = tray; - "pulseaudio" = pulseaudio; - "network" = network; - "wireplumber" = wireplumber; - "backlight" = backlight; - "mpris" = mpris; - "battery" = battery; - "custom/arrow-left" = arrow-left; - "custom/notifications" = notifications; - "clock" = clock; - "custom/power" = power; - - "group/info" = { + "group/motherboard" = { orientation = "inherit"; - drawer = { - transition-duration = 300; - transition-left-to-right = false; - }; modules = [ - "custom/arrow-right" "cpu" "memory" "temperature" - ]; - }; - - "group/demo" = { - orientation = "inherit"; - modules = [ - "tray" - "network" - "wireplumber" - # "pulseaudio" - "backlight" - "mpris" - "battery" - ]; - }; - - "group/utils" = { - orientation = "inherit"; - drawer = { - transition-duration = 300; - transition-left-to-right = true; - }; - modules = [ - "custom/arrow-left" - "custom/notifications" - ]; - }; - - "group/hub" = { - orientation = "inherit"; - modules = [ - "group/utils" - "clock" - "custom/power" + "disk" ]; }; } ]; - style = ./style.css; + # style = ./style.css; + style = '' + @define-color base00 #192435; /* Darkest background (night sky / deep shadows) */ + @define-color base01 #243449; /* Slightly lighter background */ + @define-color base02 #36455D; /* Selection / inactive UI */ + @define-color base03 #51637E; /* Comments / subtle foreground */ + + @define-color base04 #8FA3BA; /* Dark foreground (status bars) */ + @define-color base05 #C7D2DF; /* Default foreground (text) */ + @define-color base06 #E3EAF2; /* Light foreground (highlighted text) */ + @define-color base07 #F4D9C7; /* Bright foreground (lantern light) */ + + @define-color base08 #D88C7A; /* Red / Errors (warm wood & lantern glow) */ + @define-color base09 #E5AD97; /* Orange / Numbers / Constants */ + @define-color base0A #E9C48A; /* Yellow / Classes / Warnings */ + @define-color base0B #9FBFA8; /* Green / Strings */ + @define-color base0C #8FB6C8; /* Cyan / Support / Regex */ + @define-color base0D #7FA6D9; /* Blue / Functions / Keywords */ + @define-color base0E #B69BCB; /* Purple / Types / Specials */ + @define-color base0F #B0896A; /* Brown / Deprecated */ + + * { + all: unset; + font-family: "JetBrainsMono Nerd Font Propo"; /* The Propo(rtional) variant of the ensures icons are properly spaced */ + font-feature-settings: '"zero", "tnum", "ss01", "ss02", "ss03", "cv01"'; + font-weight: 700; + min-height: 0; + } + + window#waybar { + background: transparent; + } + + .module { + padding: 0 6px; + } + + .modules-left, + .modules-center, + .modules-right { + background: @base00; + padding: 6px 8px; + border-color: @base03; + border-width: 1.5px; + border-style: solid; + border-radius: 0.75rem; + } + + #workspaces button { + color: @base04; + font-size: 0.9rem; + padding: 0 7px; + } + + #motherboard, + #custom-menu { + color: @base04; + } + + #wireplumber, + #custom-power, + #clock { + color: @base05; + } + ''; }; } diff --git a/modules/home/waybar/modules/backlight.nix b/modules/home/waybar/modules/backlight.nix new file mode 100644 index 0000000..e97bc68 --- /dev/null +++ b/modules/home/waybar/modules/backlight.nix @@ -0,0 +1,27 @@ +{ + ... +}: +{ + format = "{icon}"; + tooltip-format = "Backlight {percent}%"; + format-icons = [ + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + ]; + icon-size = 10; + on-scroll-down = "brightnessctl set 10%-"; + on-scroll-up = "brightnessctl set +10%"; +} diff --git a/modules/home/waybar/modules/battery.nix b/modules/home/waybar/modules/battery.nix new file mode 100644 index 0000000..7cf8ef1 --- /dev/null +++ b/modules/home/waybar/modules/battery.nix @@ -0,0 +1,33 @@ +{ + full-at ? 100, + ... +}: +{ + inherit full-at; + states = { + # These values are percentages based on `full-at` + good = 95; + warning = 30; + critical = 15; + }; + format = "{icon} {capacity}%"; + format-charging = " {capacity}%"; + format-plugged = "󱘖 {capacity}%"; + format-full = "{icon} Full"; + format-icons = [ + "󰂎" + "󰁺" + "󰁻" + "󰁼" + "󰁽" + "󰁾" + "󰁿" + "󰂀" + "󰂁" + "󰂂" + "󰁹" + ]; + format-time = "{H}h {M}min"; + tooltip = true; + tooltip-format = "{timeTo} {power}w"; +} diff --git a/modules/home/waybar/modules/bluetooth.nix b/modules/home/waybar/modules/bluetooth.nix new file mode 100644 index 0000000..2d90138 --- /dev/null +++ b/modules/home/waybar/modules/bluetooth.nix @@ -0,0 +1,13 @@ +{ + ... +}: +{ + format = ""; + format-disabled = "󰂳"; + format-connected = "󰂱 {num_connections}"; + tooltip-format = " {device_alias}"; + tooltip-format-connected = "{device_enumerate}"; + tooltip-format-enumerate-connected = " {device_alias} 󰂄{device_battery_percentage}%"; + tooltip = true; + # on-click = "blueman-manager"; +} diff --git a/modules/home/waybar/modules/clock.nix b/modules/home/waybar/modules/clock.nix new file mode 100644 index 0000000..b3762ed --- /dev/null +++ b/modules/home/waybar/modules/clock.nix @@ -0,0 +1,21 @@ +{ + ... +}: +{ + interval = 1; # Poll every second + format = "{:%H:%M - %d/%b}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; +} diff --git a/modules/home/waybar/modules/cpu.nix b/modules/home/waybar/modules/cpu.nix new file mode 100644 index 0000000..0c0db4d --- /dev/null +++ b/modules/home/waybar/modules/cpu.nix @@ -0,0 +1,7 @@ +{ + ... +}: +{ + format = "{usage}% 󰍛"; + interval = 1; +} diff --git a/modules/home/waybar/modules/disk.nix b/modules/home/waybar/modules/disk.nix new file mode 100644 index 0000000..a2544e9 --- /dev/null +++ b/modules/home/waybar/modules/disk.nix @@ -0,0 +1,10 @@ +{ + ... +}: +{ + interval = 30; + format = "{percentage_used}% 󰋊"; + tooltip = true; + tooltip-format = "{specific_free:0.1f}/{specific_total:0.1f}GiB"; + unit = "GiB"; +} diff --git a/modules/home/waybar/modules/hyprland-window.nix b/modules/home/waybar/modules/hyprland-window.nix new file mode 100644 index 0000000..fa09fd2 --- /dev/null +++ b/modules/home/waybar/modules/hyprland-window.nix @@ -0,0 +1,15 @@ +{ + ... +}: +{ + format = "{title}"; + max-length = 40; + separate-outputs = true; # List different titles for each monitor + offscreen-css = true; # No idea what this does + offscreen-css-text = "(inactive)"; # No idea what this does either + rewrite = { + "(.*) — Mozilla Firefox" = " Firefox"; + # Foot terminal doesn't display any title for some reason + # Find a fix + }; +} diff --git a/modules/home/waybar/modules/hyprland-workspaces.nix b/modules/home/waybar/modules/hyprland-workspaces.nix new file mode 100644 index 0000000..fd997b9 --- /dev/null +++ b/modules/home/waybar/modules/hyprland-workspaces.nix @@ -0,0 +1,23 @@ +{ + ... +}: +{ + active-only = false; # Show all workspaces + all-outputs = true; # Show all workspace groups + format = "{icon}"; + show-special = false; # Hide Hyprland's "special" workspaces + on-click = "activate"; + on-scroll-up = "hyprctl dispatch workspace r+1"; + on-scroll-down = "hyprctl dispatch workspace r-1"; + persistent-workspaces = { + "1" = [ ]; + "2" = [ ]; + "3" = [ ]; + "4" = [ ]; + "5" = [ ]; + }; + format-icons = { + active = ""; + default = ""; + }; +} diff --git a/modules/home/waybar/modules/idle-inhibitor.nix b/modules/home/waybar/modules/idle-inhibitor.nix new file mode 100644 index 0000000..2392952 --- /dev/null +++ b/modules/home/waybar/modules/idle-inhibitor.nix @@ -0,0 +1,10 @@ +{ + ... +}: +{ + format = "{icon}"; + format-icons = { + activated = " "; + deactivated = " "; + }; +} diff --git a/modules/home/waybar/modules/memory.nix b/modules/home/waybar/modules/memory.nix new file mode 100644 index 0000000..675607d --- /dev/null +++ b/modules/home/waybar/modules/memory.nix @@ -0,0 +1,11 @@ +{ + ... +}: +{ + interval = 10; + format = "{used:0.1f}G 󰾆"; + format-alt = "{percentage}% 󰾆"; + format-alt-click = "click"; + tooltip = true; + tooltip-format = "{used:0.1f}/{total:0.1f}GiB"; +} diff --git a/modules/home/waybar/modules/menu.nix b/modules/home/waybar/modules/menu.nix new file mode 100644 index 0000000..c656397 --- /dev/null +++ b/modules/home/waybar/modules/menu.nix @@ -0,0 +1,10 @@ +{ + ... +}: +{ + format = "{}"; + exec = "echo ; echo 󱓟 app launcher"; + interval = 86400; + tooltip = true; + on-click = "walker"; +} diff --git a/modules/home/waybar/modules/mpris.nix b/modules/home/waybar/modules/mpris.nix new file mode 100644 index 0000000..f2f6ad1 --- /dev/null +++ b/modules/home/waybar/modules/mpris.nix @@ -0,0 +1,26 @@ +{ + ... +}: +{ + interval = 10; + format = "{player_icon} "; + format-paused = "{status_icon} {dynamic}"; + player-icons = { + chromium = ""; + mpd = ""; + default = ""; + firefox = ""; + kdeconnect = ""; + mopidy = ""; + mpv = "󰐹"; + spotify = ""; + vlc = "󰕼"; + }; + status-icons = { + paused = ""; + playing = ""; + stopped = ""; + }; + max-length = 30; + +} diff --git a/modules/home/waybar/modules/network.nix b/modules/home/waybar/modules/network.nix new file mode 100644 index 0000000..19eb6eb --- /dev/null +++ b/modules/home/waybar/modules/network.nix @@ -0,0 +1,22 @@ +{ + ... +}: +{ + format = "{ifname}"; + format-wifi = "{icon}"; + format-ethernet = "󰌘"; + format-disconnected = "󰌙"; + format-linked = "󰈁 {ifname} (No IP)"; + tooltip-format = "{ipaddr}  {bandwidthUpBytes}  {bandwidthDownBytes}"; + tooltip-format-wifi = "{essid} {icon} {signalStrength}%"; + tooltip-format-ethernet = "{essid} 󰌘"; + tooltip-format-disconnected = "󰌙 Disconnected"; + max-length = 50; + format-icons = [ + "󰤯" + "󰤟" + "󰤢" + "󰤥" + "󰤨" + ]; +} diff --git a/modules/home/waybar/modules/power.nix b/modules/home/waybar/modules/power.nix new file mode 100644 index 0000000..65ccc9d --- /dev/null +++ b/modules/home/waybar/modules/power.nix @@ -0,0 +1,10 @@ +{ + ... +}: +{ + format = "⏻"; + exec = "echo ; echo 󰟡 power"; + on-click = "wlogout"; + interval = 86400; # once every day + tooltip = true; +} diff --git a/modules/home/waybar/modules/temperature.nix b/modules/home/waybar/modules/temperature.nix new file mode 100644 index 0000000..c35ae2b --- /dev/null +++ b/modules/home/waybar/modules/temperature.nix @@ -0,0 +1,14 @@ +{ + ... +}: +{ + interval = 10; + tooltip = true; + # Thermal Zone 12 refers to the CPU package temp + # This might vary between devices. Maybe make it an input? + thermal-zone = 12; + critical-threshold = 85; + format-critical = "{temperatureC}°C {icon}"; + format = "{temperatureC}°C {icon}"; + format-icons = [ "󰈸" ]; +} diff --git a/modules/home/waybar/modules/tray.nix b/modules/home/waybar/modules/tray.nix new file mode 100644 index 0000000..2e211a5 --- /dev/null +++ b/modules/home/waybar/modules/tray.nix @@ -0,0 +1,7 @@ +{ + ... +}: +{ + icon-size = 15; + spacing = 8; +} diff --git a/modules/home/waybar/modules/wireplumber.nix b/modules/home/waybar/modules/wireplumber.nix new file mode 100644 index 0000000..57e884d --- /dev/null +++ b/modules/home/waybar/modules/wireplumber.nix @@ -0,0 +1,27 @@ +{ + ... +}: +{ + format = "{icon} {volume}% {format_source}"; + format-muted = "󰖁 {format_source}"; + format-source = "󰍬 {volume}%"; + format-source-muted = "󰍭"; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ + "" + "" + "󰕾" + "" + ]; + }; + scroll-step = 5.0; + on-click = "pavucontrol -t 3"; + on-click-right = "pavucontrol -t 4"; + tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%"; +} diff --git a/modules/home/waybar/style.css b/modules/home/waybar/style.css deleted file mode 100644 index 09867ed..0000000 --- a/modules/home/waybar/style.css +++ /dev/null @@ -1,184 +0,0 @@ -@define-color foreground #BFE3EA; -@define-color background alpha(#000007,0.05); -@define-color cursor #B98FAE; - -@define-color color0 #000009; -@define-color color1 #60697E; -@define-color color2 #BA4F80; -@define-color color3 #4F7F96; -@define-color color4 #BE869D; -@define-color color5 #47A6BD; -@define-color color6 #49AEC4; -@define-color color7 #9BCED9; -@define-color color8 #6D9098; -@define-color color9 #60697E; -@define-color color10 #BA4F80; -@define-color color11 #4F7F96; -@define-color color12 #BE869D; -@define-color color13 #47A6BD; -@define-color color14 #49AEC4; -@define-color color15 #9BCED9; - -/* ---- 💫 https://github.com/JaKooLit 💫 ---- */ -/*DARK_PURPLE*/ - -@define-color main-color @color15; -* { - all: unset; /*this is really important to isolate waybar from gtk*/ - font: bold 14px "FiraCode Nerd Font"; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; - border: none; - - border-radius: 0; - box-shadow: none; - text-shadow: none; -} - -window#waybar { - /*background: alpha(@background, 0.1);*/ - background: rgba (0, 0, 0, 0.6); - border-radius: 5px; - /*border: 0px solid alpha(@background,0.8);*/ -} - -#window { - padding: 0px 8px; - margin: 5px 4px 5px 4px; - background: alpha(@color12, 0.3); - border-radius: 5px; - color: lighter(@main-color); -} - -tooltip { - background: alpha(@background, 0.8); - border: 2px solid alpha(lighter(@main-color), 0.8); - border-radius: 10px; -} - -tooltip label { - color: @freground; -} - -#custom-arrow-right { - color: @main-color; - margin: 0px 4px; -} - -#cpu, -#memory, -#temperature, -#disk, -#custom-updates { - padding: 0px 6px; - margin: 6px 4px; - background: alpha(darker(@main-color), 0.4); - color: @main-color; - border-radius: 10px; -} - -#workspaces { - margin: 4px 4px; - background: alpha(lighter(@color4), 0.09); - border-radius: 5px; -} - -#workspaces button { - padding: 0px 4px; - margin: 0px 0px; - color: alpha(@foreground, 0.3); -} - -#workspaces button.active { - transition: color 0.5s; - color: lighter(@main-color); -} - -#workspaces button.urgent, -#workspaces button:hover { - color: @color12; - background-color: transparent; -} -#demo, -#control-center { - padding: 0px 6px; - margin: 4px 2px 4px 2px; - color: lighter(@color3); - background: alpha(lighter(@main-color), 0.08); - border-radius: 5px; -} - -#pulseaudio-slider slider { - min-height: 0px; - min-width: 0px; - background-color: transparent; - border: none; - box-shadow: none; -} - -#pulseaudio-slider { - margin: 6px; -} - -#pulseaudio-slider highlight { - border-radius: 8px; - background-color: lighter(@main-color); -} - -#language { - padding: 0px 3px 2px 0px; -} - -#custom-arrow-left { - color: lighter(@main-color); - margin: 0px 4px; -} - -#custom-notifications, -#custom-weather, -#custom-theme-switcher { - padding: 0px 8px; - margin: 8px 4px; - color: @main-color; - background: alpha(darker(@main-color), 0.8); - border-radius: 10px; -} - -#tray { - padding: 0px 8px; - margin: 4px 2px 4px 2px; - background: alpha(@color12, 0.3); - border-radius: 5px; - color: lighter(@main-color); -} - -#custom-menu, -#custom-power { - padding: 0px 10px 0px 6px; - margin: 6px 6px 6px 4px; - background: alpha(@color12, 0.3); - border-radius: 5px; - color: lighter(@main-color); -} - -#clock { - padding: 0px 8px; - margin: 5px 2px 5px 4px; - background: alpha(@color12, 0.3); - border-radius: 5px; - color: lighter(@main-color); -} - -#power, -#bluetooth, -#mpd, -#pulseaudio, -#wireplumber, -#battery, -#mpris { - padding: 4px 4px; - color: lighter(@main-color); -} - -#battery.critical { - color: red; -} diff --git a/modules/system/fonts.nix b/modules/system/fonts.nix index 7d849a3..1a44430 100644 --- a/modules/system/fonts.nix +++ b/modules/system/fonts.nix @@ -8,6 +8,8 @@ fontconfig.enable = true; packages = with pkgs; [ nerd-fonts.fira-code + nerd-fonts.jetbrains-mono + nerd-fonts.symbols-only rubik ]; };