diff --git a/flake.lock b/flake.lock index 64c06da..3963492 100644 --- a/flake.lock +++ b/flake.lock @@ -16,11 +16,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1759322529, - "narHash": "sha256-yiv/g/tiJI3PI95F7vhTnaf1TDsIkFLrmmFTjWfb6pQ=", + "lastModified": 1757676906, + "narHash": "sha256-2Zbde5orbGsYdzroe51P1AW8pFMCNyqHgLjmHYJvOmE=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "69fac057b2e553ee17c9a09b822d735823d65a6c", + "rev": "04db807ac00ba6d62808ffab18b3b6d500b6f7cb", "type": "github" }, "original": { @@ -32,16 +32,16 @@ "authentik-src": { "flake": false, "locked": { - "lastModified": 1759190535, - "narHash": "sha256-pIzDaoDWc58cY/XhsyweCwc4dfRvkaT/zqsV1gDSnCI=", + "lastModified": 1755873658, + "narHash": "sha256-5l1g55b0xozGg0NaZFimiO5JbHGcudaNSEn1/XsweaU=", "owner": "goauthentik", "repo": "authentik", - "rev": "8d3a289d12c7de2f244c76493af7880f70d08af2", + "rev": "dd7c6b29d950664deadbcf5390272619a8bf9a5e", "type": "github" }, "original": { "owner": "goauthentik", - "ref": "version/2025.8.4", + "ref": "version/2025.8.1", "repo": "authentik", "type": "github" } @@ -67,11 +67,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1756770412, - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "4524271976b625a4a605beefd893f270620fd751", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", "type": "github" }, "original": { @@ -216,11 +216,11 @@ ] }, "locked": { - "lastModified": 1758463745, - "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", + "lastModified": 1757808926, + "narHash": "sha256-K6PEI5PYY94TVMH0mX3MbZNYFme7oNRKml/85BpRRAo=", "owner": "nix-community", "repo": "home-manager", - "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", + "rev": "f21d9167782c086a33ad53e2311854a8f13c281e", "type": "github" }, "original": { @@ -345,11 +345,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1754788789, - "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", "type": "github" }, "original": { @@ -360,11 +360,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1759580034, - "narHash": "sha256-YWo57PL7mGZU7D4WeKFMiW4ex/O6ZolUS6UNBHTZfkI=", + "lastModified": 1757810152, + "narHash": "sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3bcc93c5f7a4b30335d31f21e2f1281cba68c318", + "rev": "9a094440e02a699be5c57453a092a8baf569bdad", "type": "github" }, "original": { @@ -376,11 +376,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { @@ -396,11 +396,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1759682435, - "narHash": "sha256-bPh7JZnT7WydN4E1kVLq1l87NlzuD2pz1GYwvYSWo1U=", + "lastModified": 1757879066, + "narHash": "sha256-EHZWQe3a04DvOlUR2j7LwGCaGqYTStYExpstYezfq3c=", "owner": "nix-community", "repo": "NUR", - "rev": "ba4952df76bc6179d0bb3b9e7b4ff8517cfec870", + "rev": "087c74cd9cc63e44dd20f1dcc5cdb4e5fddc9e14", "type": "github" }, "original": { @@ -425,11 +425,11 @@ ] }, "locked": { - "lastModified": 1757296493, - "narHash": "sha256-6nzSZl28IwH2Vx8YSmd3t6TREHpDbKlDPK+dq1LKIZQ=", + "lastModified": 1756087852, + "narHash": "sha256-4jc3JDQt75fYXFrglgqyzF6C6zLU0QGLymzian4aP+U=", "owner": "pyproject-nix", "repo": "build-system-pkgs", - "rev": "5b8e37fe0077db5c1df3a5ee90a651345f085d38", + "rev": "6edb3ae27395cd88be3d64b732d1539957dad59c", "type": "github" }, "original": { @@ -446,11 +446,11 @@ ] }, "locked": { - "lastModified": 1757246327, - "narHash": "sha256-6pNlGhwOIMfhe/RLjHdpXveKS4FyLHvlGe+KtjDild4=", + "lastModified": 1756395552, + "narHash": "sha256-5aJM14MpoLk2cdZAetu60OkLQrtFLWTICAyn1EP7ZpM=", "owner": "pyproject-nix", "repo": "pyproject.nix", - "rev": "8d77f342d66ad1601cdb9d97e9388b69f64d4c8e", + "rev": "030dffc235dcf240d918c651c78dc5f158067b51", "type": "github" }, "original": { @@ -570,11 +570,11 @@ }, "unstable": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { @@ -596,11 +596,11 @@ ] }, "locked": { - "lastModified": 1757925761, - "narHash": "sha256-7Hwz0vfHuFqCo5v7Q07GQgLBWuPvZCuf/5/pk4NoADg=", + "lastModified": 1756466761, + "narHash": "sha256-ALXRHIMXQ4qVNfCbcWykC23MjMwUoHn9BreoBfqmq0Y=", "owner": "pyproject-nix", "repo": "uv2nix", - "rev": "780494c40895bb7419a73d942bee326291e80b3b", + "rev": "0529e6d8227517205afcd1b37eee3088db745730", "type": "github" }, "original": { @@ -611,11 +611,11 @@ }, "vpsadminos": { "locked": { - "lastModified": 1759490618, - "narHash": "sha256-H0FC6QbxgEE79pXwlPVvWUNenQOTMldzlWSij5pPyMk=", + "lastModified": 1755964485, + "narHash": "sha256-+YzznL/mHiSjDFC8vJsSgQ+pvjhqWMsLRjegEKSNv/4=", "owner": "vpsfreecz", "repo": "vpsadminos", - "rev": "087b340cc897083a31defafd6a6f1c66e5bf48eb", + "rev": "20f55b1d9bee4fdab62494d4471854d6586d3637", "type": "github" }, "original": { diff --git a/home/modules/baseline.nix b/home/modules/baseline.nix index f432d0a..6883185 100644 --- a/home/modules/baseline.nix +++ b/home/modules/baseline.nix @@ -46,7 +46,6 @@ in { man-pages man-pages-posix nmap - p7zip pv ripgrep tree diff --git a/home/modules/defaultDesktopPack.nix b/home/modules/defaultDesktopPack.nix index 5985943..a6021e5 100644 --- a/home/modules/defaultDesktopPack.nix +++ b/home/modules/defaultDesktopPack.nix @@ -44,13 +44,6 @@ in { zola ]; - trivium = { - waybar = { - enable = true; - fontFamily = "JetBrainsMono Nerd Font"; - }; - }; - local = { baseline.enable = true; diff --git a/home/modules/gui/default.nix b/home/modules/gui/default.nix index fd5ec1f..1a72ed9 100644 --- a/home/modules/gui/default.nix +++ b/home/modules/gui/default.nix @@ -51,6 +51,7 @@ in { ./fonts.nix ./theme.nix ./sway.nix + ./waybar.nix ./mako.nix ]; diff --git a/home/modules/gui/waybar.nix b/home/modules/gui/waybar.nix new file mode 100644 index 0000000..81d046a --- /dev/null +++ b/home/modules/gui/waybar.nix @@ -0,0 +1,200 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; let + cfg = config.local.gui; + laptop = config.local.defaultDesktopPack.laptop; +in { + config = mkIf cfg.enable { + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 20; + spacing = 0; + + modules-left = [ + "sway/workspaces" + "sway/mode" + ]; + modules-center = [ + "clock" + ]; + + modules-right = + [ + "keyboard-state" + "privacy" + "cpu" + "memory" + "disk" + "temperature" + "tray" + ] + ++ lists.optionals laptop [ + "battery" + ]; + battery = mkIf laptop { + format = "{capacity}% {icon}"; + format-plugged = "{capacity}% 󱐥{icon}"; + format-icons = ["󰂃" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + states = { + warning = 20; + critical = 10; + }; + }; + keyboard-state = { + capslock = true; + format.capslock = "{icon}"; + format-icons = { + locked = "󰘲 "; + unlocked = ""; + }; + }; + tray = { + icon-size = 13; + spacing = 8; + }; + clock = { + interval = 60; + format = "{:%A %B %d %Y %H:%M}"; + tooltip = false; + }; + cpu = { + format = " {usage}%"; + tooltip = false; + }; + memory = { + format = " {percentage}% "; + tooltip = true; + tooltip-format = "{used}/{total}"; + }; + disk = { + format = " {specific_used:0.0f}/{specific_total:0.0f}"; + unit = "GiB"; + tooltip = false; + }; + privacy = { + icon-size = 12; + }; + }; + }; + style = '' + * { + font-family: "JetBrainsMono Nerd Font", monospace; + font-size: 12px; + font-weight: 500; + border: none; + box-shadow: none; + } + + /* Entire bar: fully transparent, no border */ + window#waybar { + background: transparent; + color: #eaeaea; + margin: 0; + padding: 0; + } + + /* Optional: small edge breathing room (comment out if you want edge-to-edge) */ + /* window#waybar { margin: 3px 6px 0 6px; } */ + + /* Module containers */ + .modules-left, .modules-center, .modules-right { + padding: 0; + margin: 0 6px; + } + + /* Subtle separators between modules (no boxes) */ + .modules-left > widget:not(:first-child), + .modules-center > widget:not(:first-child), + .modules-right > widget:not(:first-child) { + margin-left: 12px; + padding-left: 12px; + border-left: 1px solid rgba(255, 255, 255, 0.08); + } + + /* Tightest possible workspaces */ + #workspaces { padding: 0; margin: 0; } + #workspaces button { + margin: 0; + padding: 0 3px; + min-width: 0; + border-radius: 0; + background: transparent; + color: #cfcfcf; + } + #workspaces button:hover { + background: rgba(255, 255, 255, 0.06); + } + #workspaces button.active, + #workspaces button.focused { + background: rgba(255, 255, 255, 0.10); + color: #ffffff; + box-shadow: inset 0 -2px #ffffff; + } + #workspaces button.urgent { + background: rgba(255, 80, 80, 0.25); + box-shadow: inset 0 -2px #ff5050; + } + + /* Focused window title: single line, no glow */ + #window { + padding: 0 6px; + margin: 0; + color: #dedede; + } + + /* Sway mode indicator: visible only when active, no bloat */ + #mode { + padding: 0 6px; + margin: 0; + background: rgba(255, 255, 255, 0.10); + color: #ffffff; + box-shadow: inset 0 -2px #ffffff; + } + + /* Status modules — keep them flat and compact */ + #clock, #battery, #network, #pulseaudio, #backlight, #cpu, #memory, #temperature, #tray { + padding: 0 6px; + margin: 0; + background: transparent; + color: #eaeaea; + } + + /* States (battery, network, audio) */ + #battery.charging { color: #27f902; } + #battery.warning:not(.charging) { color: #fc8b02; } + #battery.critical:not(.charging) { color: #fc0000; } + + #network.disconnected { color: #ffb4b4; } + #pulseaudio.muted { color: #9aa0a6; } + + /* Tray: compress icons */ + #tray > .passive { opacity: 0.6; } + #tray > .needs-attention { opacity: 1; } + + /* Tooltips: clean and readable */ + tooltip { + background: rgba(30, 30, 30, 0.95); + border: 1px solid rgba(255, 255, 255, 0.08); + color: #eaeaea; + padding: 6px 8px; + } + + /* Remove any leftover borders around everything */ + #custom-*, #idle_inhibitor, #privacy, #bluetooth { + border: none; + background: transparent; + margin: 0; + padding: 0 6px; + } + ''; + }; + }; +} diff --git a/trivionomicon/modules/waybar/default.nix b/trivionomicon/modules/waybar/default.nix deleted file mode 100644 index 97cacf3..0000000 --- a/trivionomicon/modules/waybar/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - config, - lib, - pkgs, - doctrine, - ... -}: -doctrine.lib.mkModule { - inherit config; - name = "waybar"; - hm = ./hm.nix; - options = ./options.nix; -} diff --git a/trivionomicon/modules/waybar/hm.nix b/trivionomicon/modules/waybar/hm.nix deleted file mode 100644 index 1bfa3e2..0000000 --- a/trivionomicon/modules/waybar/hm.nix +++ /dev/null @@ -1,207 +0,0 @@ -{ - lib, - pkgs, - cfg, - doctrine, - ... -}: -with lib; { - programs.waybar = { - enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 20; - spacing = 0; - - modules-left = [ - "sway/workspaces" - "sway/mode" - ]; - modules-center = [ - "clock" - ]; - - modules-right = - [ - "keyboard-state" - "privacy" - "idle_inhibitor" - "cpu" - "memory" - "disk" - "temperature" - "tray" - ] - ++ lists.optionals cfg.battery [ - "battery" - ]; - battery = mkIf cfg.battery { - format = "{capacity}% {icon}"; - format-plugged = "{capacity}% 󱐥{icon}"; - format-icons = ["󰂃" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; - states = { - warning = 20; - critical = 10; - }; - }; - keyboard-state = { - capslock = true; - format.capslock = "{icon}"; - format-icons = { - locked = "󰘲 "; - unlocked = ""; - }; - }; - idle_inhibitor = { - format = "{icon}"; - format-icons = { - activated = " "; - deactivated = " "; - }; - }; - tray = { - icon-size = 13; - spacing = 8; - }; - clock = { - interval = 60; - format = "{:%A %B %d %Y %H:%M}"; - tooltip = false; - }; - cpu = { - format = " {usage}%"; - tooltip = false; - }; - memory = { - format = " {percentage}% "; - tooltip = true; - tooltip-format = "{used}/{total}"; - }; - disk = { - format = " {specific_used:0.0f}/{specific_total:0.0f}"; - unit = "GiB"; - tooltip = false; - }; - temperature = { - format = " {temperatureC}°C"; - }; - privacy = { - icon-size = 12; - }; - }; - }; - style = '' - * { - font-family: "${cfg.fontFamily}", monospace; - font-size: ${cfg.fontSize}; - font-weight: 500; - border: none; - box-shadow: none; - } - - /* Entire bar: fully transparent, no border */ - window#waybar { - background: transparent; - color: #eaeaea; - margin: 0; - padding: 0; - } - - /* Optional: small edge breathing room (comment out if you want edge-to-edge) */ - /* window#waybar { margin: 3px 6px 0 6px; } */ - - /* Module containers */ - .modules-left, .modules-center, .modules-right { - padding: 0; - margin: 0 6px; - } - - /* Subtle separators between modules (no boxes) */ - .modules-left > widget:not(:first-child), - .modules-center > widget:not(:first-child), - .modules-right > widget:not(:first-child) { - margin-left: 12px; - padding-left: 12px; - border-left: 1px solid rgba(255, 255, 255, 0.08); - } - - /* Tightest possible workspaces */ - #workspaces { padding: 0; margin: 0; } - #workspaces button { - margin: 0; - padding: 0 3px; - min-width: 0; - border-radius: 0; - background: transparent; - color: #cfcfcf; - } - #workspaces button:hover { - background: rgba(255, 255, 255, 0.06); - } - #workspaces button.active, - #workspaces button.focused { - background: rgba(255, 255, 255, 0.10); - color: #ffffff; - box-shadow: inset 0 -2px #ffffff; - } - #workspaces button.urgent { - background: rgba(255, 80, 80, 0.25); - box-shadow: inset 0 -2px #ff5050; - } - - /* Focused window title: single line, no glow */ - #window { - padding: 0 6px; - margin: 0; - color: #dedede; - } - - /* Sway mode indicator: visible only when active, no bloat */ - #mode { - padding: 0 6px; - margin: 0; - background: rgba(255, 255, 255, 0.10); - color: #ffffff; - box-shadow: inset 0 -2px #ffffff; - } - - /* Status modules — keep them flat and compact */ - #clock, #battery, #network, #pulseaudio, #backlight, #cpu, #memory, #temperature, #tray { - padding: 0 6px; - margin: 0; - background: transparent; - color: #eaeaea; - } - - /* States (battery, network, audio) */ - #battery.charging { color: #27f902; } - #battery.warning:not(.charging) { color: #fc8b02; } - #battery.critical:not(.charging) { color: #fc0000; } - - #network.disconnected { color: #ffb4b4; } - #pulseaudio.muted { color: #9aa0a6; } - - /* Tray: compress icons */ - #tray > .passive { opacity: 0.6; } - #tray > .needs-attention { opacity: 1; } - - /* Tooltips: clean and readable */ - tooltip { - background: rgba(30, 30, 30, 0.95); - border: 1px solid rgba(255, 255, 255, 0.08); - color: #eaeaea; - padding: 6px 8px; - } - - /* Remove any leftover borders around everything */ - #custom-*, #idle_inhibitor, #privacy, #bluetooth { - border: none; - background: transparent; - margin: 0; - padding: 0 6px; - } - ''; - }; -} diff --git a/trivionomicon/modules/waybar/options.nix b/trivionomicon/modules/waybar/options.nix deleted file mode 100644 index b2daa33..0000000 --- a/trivionomicon/modules/waybar/options.nix +++ /dev/null @@ -1,23 +0,0 @@ -{lib, ...}: -with lib.types; { - hm = { - battery = lib.mkOption { - type = bool; - default = false; - description = '' - `true` to display battery info - ''; - }; - fontFamily = lib.mkOption { - type = str; - example = "JetBrainsMono Nerd Font"; - description = '' - needs to be a nerdfont - ''; - }; - fontSize = lib.mkOption { - type = str; - default = "12px"; - }; - }; -}