From b7ba9023322b0658acd19444de7961ea6e874d9e Mon Sep 17 00:00:00 2001 From: Adam0 Date: Mon, 10 Aug 2026 18:48:23 -0400 Subject: [PATCH] Install noctalia v5 plugins --- flake.lock | 177 +++--- flake.nix | 4 + .../keybinds/screenshots-and-color.nix | 6 +- modules/desktop/hyprland/picker.nix | 5 - modules/desktop/noctalia/bar.nix | 112 +++- modules/desktop/noctalia/brightness.nix | 6 +- modules/desktop/noctalia/control-center.nix | 1 - modules/desktop/noctalia/default.nix | 10 +- modules/desktop/noctalia/plugins.nix | 95 +++- modules/profiles/personal.nix | 1 + modules/programs/bitwarden.nix | 10 + modules/programs/cli/codexbar.nix | 26 + modules/programs/gui/bitwarden.nix | 5 - noctalia-config.toml | 513 ------------------ secrets.yaml | 6 +- 15 files changed, 362 insertions(+), 615 deletions(-) delete mode 100644 modules/desktop/hyprland/picker.nix create mode 100644 modules/programs/bitwarden.nix create mode 100644 modules/programs/cli/codexbar.nix delete mode 100644 modules/programs/gui/bitwarden.nix delete mode 100644 noctalia-config.toml diff --git a/flake.lock b/flake.lock index d463b8c..9eeeef4 100644 --- a/flake.lock +++ b/flake.lock @@ -49,11 +49,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1785761909, - "narHash": "sha256-M8FNG0aca0/JsETvpYSJgwIrgJ4kpgxo9i7SDS0LfHs=", + "lastModified": 1786375669, + "narHash": "sha256-w4kG3Alh6akMNbrsNwpKa0Pe/WLgvxjIAPXh9KYibmM=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "db4a267f345338659a290a76e5b28da31e9923df", + "rev": "b7a42b503f0c7bf26a30ddb48de0bfaf43d6ead1", "type": "github" }, "original": { @@ -223,6 +223,27 @@ "type": "github" } }, + "codexbar": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1786335739, + "narHash": "sha256-7y6UrJ1WLPF94rgA6ULUlVpgIcfYFg7n9KYapIizbdc=", + "owner": "0xferrous", + "repo": "CodexBar-flake", + "rev": "7066d5dac44da4c7b0736cb8140ff70c1ffd2e96", + "type": "github" + }, + "original": { + "owner": "0xferrous", + "repo": "CodexBar-flake", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1781825982, @@ -576,6 +597,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -662,11 +701,11 @@ ] }, "locked": { - "lastModified": 1786031233, - "narHash": "sha256-TIDlLTLI1/pB7IqgjzcKQjpODQsZE2oII4XGG9B6KjI=", + "lastModified": 1786356609, + "narHash": "sha256-ou8fYz5w9yhXC8YbvvExybFIa19MyW5G/8dEPqa90hM=", "owner": "nix-community", "repo": "home-manager", - "rev": "7834e82588860aaf780cec1366524456a70898d7", + "rev": "c30c7955cec30d664a9baced6bc0112e263d4647", "type": "github" }, "original": { @@ -686,7 +725,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_2", + "systems": "systems_3", "treefmt-nix": [ "treefmt-nix" ] @@ -773,7 +812,7 @@ "hyprwire": "hyprwire", "nixpkgs": "nixpkgs_4", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_3", + "systems": "systems_4", "xdph": "xdph" }, "locked": { @@ -1210,11 +1249,11 @@ ] }, "locked": { - "lastModified": 1785650611, - "narHash": "sha256-q4kR7g+pCcz6NASvoVPYu+CWWUurX03wogtBqGmR4h0=", + "lastModified": 1786249295, + "narHash": "sha256-Y2mSr+HLKYoOsjiackgilxkHXe8gkJ3z4hFFekjQX3I=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "dbc756c9d7287de19b3e0e38c928c47510d42c3e", + "rev": "14d55b8069119e3b88da7aa2f6c97f86a2cd3cd6", "type": "github" }, "original": { @@ -1237,7 +1276,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_4", + "systems": "systems_5", "tangled-catppuccin": "tangled-catppuccin", "treefmt-nix": [ "treefmt-nix" @@ -1264,11 +1303,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1786178400, - "narHash": "sha256-KjGYaqo38BP11RHNUdgny3jWn0D/2LFMcPNX6IQmIlg=", + "lastModified": 1786386600, + "narHash": "sha256-a9gKy0jo5GEVad7qBS3lhIZoH2HHjY9xYOLxoJwaHaw=", "owner": "kaylorben", "repo": "nixcord", - "rev": "c8f66f82fbe9cebf0c1deab6af402763335cded1", + "rev": "02d08ac9a34f1668497467dac0bab4c2d3f6ac8d", "type": "github" }, "original": { @@ -1279,11 +1318,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1785692966, - "narHash": "sha256-vUfIeBEfpbAfZ5zjgIkYk7eHBeVfCYVjLbWnMkseYnk=", + "lastModified": 1786106723, + "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "643809054d65fdd466a63e3155b8c498cb483c04", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", "type": "github" }, "original": { @@ -1466,11 +1505,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1785975029, - "narHash": "sha256-7UJK0pRtDvDUfAMLP1bQDxXg6iDI30dGQQQCPtQVzgM=", - "rev": "70ce234312134a463ba7728e94da2486a1d237ac", + "lastModified": 1786098110, + "narHash": "sha256-yZKt042Ab4UNEUq1/VXqSOa1uBT5aAVnub98ekbG5Jw=", + "rev": "afb4584a80bbf779ce0f691509ff902d188c2b3d", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1048658.70ce23431213/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1049336.afb4584a80bb/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -1484,11 +1523,11 @@ ] }, "locked": { - "lastModified": 1786292031, - "narHash": "sha256-NUSkPXfefx4Ji2aPJMe0oT36KQSeBKqJQ/wVjkCsCv8=", + "lastModified": 1786388579, + "narHash": "sha256-PSfJXN6qwRkpWae6Ff6Wg5PyDniBRICOTYRA9F123Y4=", "owner": "noctalia-dev", "repo": "noctalia", - "rev": "cc1e476b083392487d4b97903c972ed5480f5b25", + "rev": "ec33edcddc296ba7c304adb0d5d8b0f6b43a0e9f", "type": "github" }, "original": { @@ -1507,11 +1546,11 @@ ] }, "locked": { - "lastModified": 1786326302, - "narHash": "sha256-ttCPd59KOQTYtxSbDNdr7mgJeW7gBgrHQi0wngRkLp4=", + "lastModified": 1786398922, + "narHash": "sha256-3N/P50NYFTjN7fhaBDNGZDG0O76KEb78Klc2RnbZzt0=", "owner": "nix-community", "repo": "NUR", - "rev": "c31d0b9511aadb1f2366b37dc4796f2c45dca722", + "rev": "986bf189b7bad93cf1a7ededf82309dea09e183a", "type": "github" }, "original": { @@ -1555,7 +1594,7 @@ "nixpkgs" ], "quickshell": "quickshell", - "systems": "systems_5", + "systems": "systems_6", "treefmt-nix": [ "treefmt-nix" ] @@ -1578,14 +1617,14 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_6" + "systems": "systems_7" }, "locked": { - "lastModified": 1786166024, - "narHash": "sha256-PUQkFIWDOyNQT73+5rS9QoEwdL0BFZd4PVSdPnpHP0A=", + "lastModified": 1786340852, + "narHash": "sha256-+TLBzIxn77lg0cmX0aDFfamBv7db74LxuIjmDgX04pw=", "owner": "lukasl-dev", "repo": "pi.nix", - "rev": "8ebc479c2a62af26cc49f5a83e5025998690f5a5", + "rev": "344e6ef05f6c3405e7ebb68b5aef592b0f3f9391", "type": "github" }, "original": { @@ -1655,11 +1694,11 @@ ] }, "locked": { - "lastModified": 1785115949, - "narHash": "sha256-8AM37BfyGaL2v/SZyg4PupRxJ01Y4htvM+WrTjWrPpo=", + "lastModified": 1785730568, + "narHash": "sha256-NjSPsgjJ7MSpBtTkUcmNhRe6AFZ96+zsca2M8YuQi8Y=", "owner": "pyproject-nix", "repo": "build-system-pkgs", - "rev": "62c0d86027edb1c4f39a5facc09876348144f7c9", + "rev": "90fde00db3687922d39d95fc591475fd0bbbcd72", "type": "github" }, "original": { @@ -1676,11 +1715,11 @@ ] }, "locked": { - "lastModified": 1784591072, - "narHash": "sha256-zP/WaDxrRu8GANZM61+V2LT/7ycEEdoyLWn7M6WzU7M=", + "lastModified": 1786031528, + "narHash": "sha256-cROiHKO3UbIKqF5FG5NikvydzlfIj4EcR1Cty9qOVt4=", "owner": "pyproject-nix", "repo": "pyproject.nix", - "rev": "e3b599ca2e7fcf93d4edf65d7f19bbf6491724f3", + "rev": "1b1485546d85f6f6c7aadb10c4923dbc09633263", "type": "github" }, "original": { @@ -1714,6 +1753,7 @@ "root": { "inputs": { "authentik-nix": "authentik-nix", + "codexbar": "codexbar", "determinate": "determinate", "disko": "disko", "flake-file": "flake-file", @@ -1773,11 +1813,11 @@ ] }, "locked": { - "lastModified": 1783174389, - "narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=", + "lastModified": 1786375908, + "narHash": "sha256-G7qDAT98nywA4EFmJCwIRO5wKvDlBBN3BWpsOnjAto8=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9", + "rev": "d1337e05ba0a8e88a75d2c0e1595d82f3b3e2ac4", "type": "github" }, "original": { @@ -1791,14 +1831,14 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_7" + "systems": "systems_8" }, "locked": { - "lastModified": 1785652745, - "narHash": "sha256-pD0VE/XwjQ3tLyxTzXKdm6JuIEWr/Jaote6xpXGZrXk=", + "lastModified": 1786252193, + "narHash": "sha256-a9SbkJWloPso00G4zIUkerd9n2qRyDYoDPeUc4O3ME8=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "802040514e09bb8539237f52f68cf053b987c65e", + "rev": "a87616995724d27079b495ca07318512af799449", "type": "github" }, "original": { @@ -1824,18 +1864,18 @@ "nur": [ "nur" ], - "systems": "systems_8", + "systems": "systems_9", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1786216702, - "narHash": "sha256-fOOmw9tUYeqWVnK2w2NiuMTmGIbluj8xiBFTTFDCcEE=", + "lastModified": 1786382682, + "narHash": "sha256-rWN1IYcqZD+rNA7PuNcMctjZgEzp83iPboeVVvgUHBM=", "owner": "danth", "repo": "stylix", - "rev": "b67debfd2db1eb1f0fd8740b950f598bbaf74b8f", + "rev": "4e328a8a98eceeb25ee19c88b36b355b400a7f68", "type": "github" }, "original": { @@ -1875,6 +1915,21 @@ } }, "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1889,7 +1944,7 @@ "type": "github" } }, - "systems_4": { + "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1904,7 +1959,7 @@ "type": "github" } }, - "systems_5": { + "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1919,7 +1974,7 @@ "type": "github" } }, - "systems_6": { + "systems_7": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1934,7 +1989,7 @@ "type": "github" } }, - "systems_7": { + "systems_8": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1949,7 +2004,7 @@ "type": "github" } }, - "systems_8": { + "systems_9": { "locked": { "lastModified": 1774449309, "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", @@ -2139,11 +2194,11 @@ ] }, "locked": { - "lastModified": 1785277507, - "narHash": "sha256-9Tq3UDX2hD/aveW/HvkBlAmEwJTOlY5HQXJM+L5BGmE=", + "lastModified": 1786026603, + "narHash": "sha256-payw8w/aqR/Vr7LvDp14jxa5egFrZN7g8INsPzn7rN0=", "owner": "pyproject-nix", "repo": "uv2nix", - "rev": "5a836d395cbf5fc22670eb98dd4aa4fc4d406977", + "rev": "0dfa8388dc855b1774f509725d8ea6806291571d", "type": "github" }, "original": { @@ -2203,11 +2258,11 @@ ] }, "locked": { - "lastModified": 1786103105, - "narHash": "sha256-2MhXLiiw5K9Q/d2rLV+v3hbSVQTrEDXyNAPv4/XChu8=", + "lastModified": 1786347712, + "narHash": "sha256-yH+jWXH2TVd5h3J5KoZiE8/4O4HqoggfB0zl9uVj39w=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "67202a6dc9ad712796fe31ef7797084d1fb8dbfe", + "rev": "945efbc704b7f8c1731a922aabbc5d95edc9eb74", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 051c839..0bc73e8 100644 --- a/flake.nix +++ b/flake.nix @@ -8,6 +8,10 @@ url = "github:nix-community/authentik-nix"; inputs.flake-parts.follows = "flake-parts"; }; + codexbar = { + url = "github:0xferrous/CodexBar-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/3"; disko = { url = "github:nix-community/disko?ref=latest"; diff --git a/modules/desktop/hyprland/keybinds/screenshots-and-color.nix b/modules/desktop/hyprland/keybinds/screenshots-and-color.nix index 4909680..8b49590 100644 --- a/modules/desktop/hyprland/keybinds/screenshots-and-color.nix +++ b/modules/desktop/hyprland/keybinds/screenshots-and-color.nix @@ -3,17 +3,13 @@ # keep-sorted start config, lib, - pkgs, # keep-sorted end ... }: let inherit (lib) getExe; inherit (lib.self) mkHylixBindGroup; - # keep-sorted start - hyprpicker = getExe pkgs.hyprpicker; noctalia = getExe config.programs.noctalia.package; - # keep-sorted end in { config.programs.hylix.bindGroups = [ (mkHylixBindGroup "Screenshots And Color" [ @@ -22,7 +18,7 @@ description = "Color picker"; keys = ["SUPER" "SHIFT" "X"]; - exec = "${hyprpicker} -a"; + exec = "${noctalia} msg plugin oldirtty/color_picker:service all pick"; } { diff --git a/modules/desktop/hyprland/picker.nix b/modules/desktop/hyprland/picker.nix deleted file mode 100644 index 95c3af0..0000000 --- a/modules/desktop/hyprland/picker.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - flake.modules.homeManager.hyprland = {pkgs, ...}: { - home.packages = [pkgs.hyprpicker]; - }; -} diff --git a/modules/desktop/noctalia/bar.nix b/modules/desktop/noctalia/bar.nix index 5fe3143..f698cb2 100644 --- a/modules/desktop/noctalia/bar.nix +++ b/modules/desktop/noctalia/bar.nix @@ -70,6 +70,8 @@ start = [ "group:system-monitor" + "nix-monitor" + "group:g4" "privacy" "lock_keys" "active_window" @@ -82,19 +84,15 @@ [ "tray" "performance" - "volume" - "microphone" - ] - ++ optional cfgBluetooth "bluetooth" - ++ [ - "network" + "group:g2" + "group:g3" "brightness" ] ++ optional cfgBattery "battery" ++ [ "caffeine" "notifications" - "clock" + "group:g1" "control-center" ]; @@ -118,6 +116,58 @@ opacity = 1.0; padding = 6.0; } + + { + accordion = true; + accordion_direction = "end"; + border = "outline"; + enabled = true; + fill = "surface_variant"; + id = "g1"; + members = ["clock" "bar"]; + opacity = 1.0; + padding = 4.0; + radius = 0.0; + } + + { + accordion = false; + accordion_direction = "end"; + border = "outline"; + enabled = true; + fill = "surface_variant"; + id = "g2"; + members = ["volume" "microphone"]; + opacity = 1.0; + padding = 4.0; + radius = 0.0; + } + + { + accordion = false; + accordion_direction = "end"; + border = "outline"; + enabled = true; + fill = "surface_variant"; + id = "g3"; + members = ["network"] ++ optional cfgBluetooth "bluetooth"; + opacity = 1.0; + padding = 4.0; + radius = 0.0; + } + + { + accordion = true; + accordion_direction = "end"; + border = "outline"; + enabled = true; + fill = "surface_variant"; + id = "g4"; + members = ["bar_2" "widget_2" "status"]; + opacity = 1.0; + padding = 4.0; + radius = 0.0; + } ]; }; }; @@ -148,11 +198,21 @@ inactive_opacity = 1.0; max_length = 145.0; min_length = 0.0; - show_empty_label = true; + show_empty_label = false; title_scroll = "on_hover"; # keep-sorted end }; + bar = { + enable_scroll = false; + type = "noctalia/world_clock:bar"; + }; + + bar_2 = { + enable_scroll = false; + type = "salemsayed/codexbar-meter:bar"; + }; + battery = { color = "on_surface_variant"; display_mode = "glyph"; @@ -177,7 +237,8 @@ lock_keys = { # keep-sorted start - display = "short"; + display = "full"; + hide_when_off = true; show_caps_lock = true; show_num_lock = true; show_scroll_lock = true; @@ -188,7 +249,7 @@ # keep-sorted start color = "on_surface_variant"; hide_album_art = false; - hide_when_no_media = false; + hide_when_no_media = true; max_length = 145.0; min_length = 0.0; title_scroll = "on_hover"; @@ -215,13 +276,31 @@ # keep-sorted end }; + nix-monitor = { + # keep-sorted start + checking_color = "secondary"; + enable_scroll = false; + show_text = false; + type = "avivbintangaringga/nix-monitor:nix-monitor"; + up_to_date_color = "primary"; + update_available_color = "error"; + # keep-sorted end + }; + performance = { color = "on_surface"; type = "adam0/performance:toggle"; }; + privacy.hide_inactive = true; + ram = mkStat "ram_used"; + status = { + color = "on_surface"; + type = "aristides/udiskie:status"; + }; + swap = mkStat "swap_pct"; tray = { @@ -232,10 +311,13 @@ # keep-sorted end pinned = [ + # keep-sorted start + "Beeper [1]" + "Beeper" "Equibop" "spotify-client" "steam" - "Beeper" + # keep-sorted end ]; }; @@ -246,9 +328,17 @@ actions.middle = "exec ${wiremix}"; }; + widget_2 = { + color = "on_surface"; + enable_scroll = false; + type = "oldirtty/color_picker:widget"; + }; + workspaces = { # keep-sorted start focused_output_only = true; + label_source = "name"; + max_label_chars = 4; occupied_color = "outline"; pill_scale = 0.8; show_labels = true; diff --git a/modules/desktop/noctalia/brightness.nix b/modules/desktop/noctalia/brightness.nix index ea45a9e..5a34535 100644 --- a/modules/desktop/noctalia/brightness.nix +++ b/modules/desktop/noctalia/brightness.nix @@ -1,10 +1,6 @@ { flake.modules.homeManager.noctalia = {pkgs, ...}: { home.packages = [pkgs.ddcutil]; - - programs.noctalia.settings = { - audio.enable_overdrive = true; - brightness.enable_ddcutil = true; - }; + programs.noctalia.settings.brightness.enable_ddcutil = true; }; } diff --git a/modules/desktop/noctalia/control-center.nix b/modules/desktop/noctalia/control-center.nix index 9052379..e1f19e9 100644 --- a/modules/desktop/noctalia/control-center.nix +++ b/modules/desktop/noctalia/control-center.nix @@ -28,7 +28,6 @@ ++ optional cfgBluetooth {type = "bluetooth";} ++ [ {type = "noctalia/screen_recorder:toggle";} - {type = "wallpaper";} {type = "notification";} {type = "power_profile";} {type = "nightlight";} diff --git a/modules/desktop/noctalia/default.nix b/modules/desktop/noctalia/default.nix index 2f3e5a4..31320cd 100644 --- a/modules/desktop/noctalia/default.nix +++ b/modules/desktop/noctalia/default.nix @@ -5,11 +5,9 @@ # keep-sorted end ... }: { - flake-file.inputs = { - noctalia = { - url = "github:noctalia-dev/noctalia"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + flake-file.inputs.noctalia = { + url = "github:noctalia-dev/noctalia"; + inputs.nixpkgs.follows = "nixpkgs"; }; flake.modules.nixos.noctalia = { @@ -34,6 +32,8 @@ config.programs.noctalia = { enable = true; systemd.enable = true; + + settings.audio.enable_overdrive = true; }; }; } diff --git a/modules/desktop/noctalia/plugins.nix b/modules/desktop/noctalia/plugins.nix index a446c7b..136b8e1 100644 --- a/modules/desktop/noctalia/plugins.nix +++ b/modules/desktop/noctalia/plugins.nix @@ -4,11 +4,14 @@ config, lib, pkgs, + vars, # keep-sorted end ... }: let inherit (lib) getExe; + inherit (vars) groundDomain; + jsonFormat = pkgs.formats.json {}; videosDir = config.xdg.userDirs.videos; performancePlugin = pkgs.runCommandLocal "noctalia-performance-plugin" {} '' @@ -18,10 +21,54 @@ --replace-fail '@performanceMode@' '${getExe pkgs.performance-mode}' ''; in { - home.packages = [pkgs.gpu-screen-recorder]; + home.file.".local/state/noctalia/plugins/data/noctalia/world_clock/zones.json" = { + force = true; + source = jsonFormat.generate "noctalia-world-clock-zones.json" [ + "UTC" + "Europe/Amsterdam" + "Europe/London" + "America/Curacao" + "Europe/Madrid" + "Europe/Paris" + ]; + }; + + home.packages = with pkgs; [ + # keep-sorted start + fzf + gcc + gpu-screen-recorder + hyprpicker + udiskie + udisks2 + xdg-utils + # keep-sorted end + ]; programs.noctalia.settings = { plugin_settings = { + # keep-sorted start block=yes newline_separated=yes + "alexander/game-launcher".steampoacher_enabled = true; + + "aristides/udiskie" = { + auto_open_filemanager = true; + manager_open_near_click = true; + }; + + "avivbintangaringga/nix-monitor" = { + # keep-sorted start + clean_command = "nh clean all"; + generation_check_interval = 240; + optimize_command = "nix store optimise"; + panel_placement = "floating"; + show_update_check_notification = true; + update_check_interval = 240; + update_command = "nh os switch"; + # keep-sorted end + }; + + "cleboost/ssh-launcher".max_results = 32; + "kenn/keybind-cheatsheet" = { # keep-sorted start columns = 4; @@ -30,6 +77,22 @@ # keep-sorted end }; + "nightwatch75/file-search" = { + # keep-sorted start + exclude_dirs = ".git, .direnv, .rumdl_cache, result*, target, .vscode, node_modules, .cache, .venv, __pycache__, dist, build"; + max_results = 64; + # keep-sorted end + }; + + "noctalia/bitwarden" = { + # keep-sorted start + gen_length = 128; + gen_passphrase_words = 20; + gen_special = true; + server_url = "https://vaultwarden.${groundDomain}"; + # keep-sorted end + }; + "noctalia/screen_recorder" = { # keep-sorted start copy_to_clipboard = true; @@ -37,6 +100,25 @@ video_codec = "hevc"; # keep-sorted end }; + + "noctalia/world_clock".panel_placement = "floating"; + + "oldirtty/color_picker" = { + # keep-sorted start + hyprpicker-lowercase = true; + panel_open_near_click = true; + panel_position = "auto"; + # keep-sorted end + }; + + "salemsayed/codexbar-meter" = { + # keep-sorted start + panel-compact_placement = "floating"; + panel-tall_placement = "floating"; + panel_placement = "floating"; + # keep-sorted end + }; + # keep-sorted end }; plugins = { @@ -44,9 +126,20 @@ enabled = [ # keep-sorted start "adam0/performance" + "alexander/game-launcher" + "aristides/udiskie" + "avivbintangaringga/nix-monitor" + "cleboost/ssh-launcher" "kenn/keybind-cheatsheet" + "nightwatch75/file-search" + "noctalia/bitwarden" "noctalia/kaomoji" "noctalia/screen_recorder" + "noctalia/translator" + "noctalia/world_clock" + "oldirtty/color_picker" + "salemsayed/codexbar-meter" + "weinguyen/shell-command" # keep-sorted end ]; diff --git a/modules/profiles/personal.nix b/modules/profiles/personal.nix index febdf86..998db03 100644 --- a/modules/profiles/personal.nix +++ b/modules/profiles/personal.nix @@ -89,6 +89,7 @@ # CLI # keep-sorted start block=yes bonsai + codexbar cpond diffnav direnv diff --git a/modules/programs/bitwarden.nix b/modules/programs/bitwarden.nix new file mode 100644 index 0000000..0857d3a --- /dev/null +++ b/modules/programs/bitwarden.nix @@ -0,0 +1,10 @@ +{ + flake.modules.homeManager.bitwarden = {pkgs, ...}: { + home.packages = with pkgs; [ + # keep-sorted start + bitwarden-cli + bitwarden-desktop + # keep-sorted end + ]; + }; +} diff --git a/modules/programs/cli/codexbar.nix b/modules/programs/cli/codexbar.nix new file mode 100644 index 0000000..6ae1429 --- /dev/null +++ b/modules/programs/cli/codexbar.nix @@ -0,0 +1,26 @@ +{ + flake-file.inputs.codexbar = { + url = "github:0xferrous/CodexBar-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + flake.modules.homeManager.codexbar = { + # keep-sorted start + config, + inputs, + pkgs, + # keep-sorted end + ... + }: let + codexbar = inputs.codexbar.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs (old: { + installPhase = + old.installPhase + + '' + cp -r CodexBar_CodexBarCore.bundle "$out/bin/" + ''; + }); + in { + home.sessionVariables.CODEX_HOME = "${config.xdg.configHome}/codex"; + home.packages = [codexbar]; + }; +} diff --git a/modules/programs/gui/bitwarden.nix b/modules/programs/gui/bitwarden.nix deleted file mode 100644 index 0b896e0..0000000 --- a/modules/programs/gui/bitwarden.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - flake.modules.homeManager.bitwarden = {pkgs, ...}: { - home.packages = [pkgs.bitwarden-desktop]; - }; -} diff --git a/noctalia-config.toml b/noctalia-config.toml deleted file mode 100644 index f4e46dd..0000000 --- a/noctalia-config.toml +++ /dev/null @@ -1,513 +0,0 @@ -[accessibility] -ui_scale = 0.80000000000000004 - -[audio] -enable_overdrive = true - -[bar] -order = [ "main" ] - - [bar.main] - background_opacity = 0.94999999999999996 - border_width = 1.0 - capsule = true - capsule_border = "outline" - capsule_opacity = 1.0 - capsule_padding = 4.0 - capsule_radius = 0.0 - center = [ "workspaces" ] - color = "on_surface_variant" - concave_edge_corners = false - end = [ - "tray", - "performance", - "volume", - "microphone", - "bluetooth", - "network", - "brightness", - "battery", - "caffeine", - "notifications", - "clock", - "control-center" - ] - font_weight = 600 - icon_color = "on_surface" - margin_ends = 0 - padding = 4 - position = "top" - radius = 0 - scale = 0.84999999999999998 - start = [ "group:system-monitor", "privacy", "lock_keys", "active_window", "media" ] - thickness = 24 - widget_spacing = 4 - - [bar.main.dead_zone.actions] - right = "none" - - [[bar.main.capsule_group]] - accordion = false - accordion_direction = "end" - enabled = true - fill = "surface_variant" - id = "system-monitor" - members = [ "cpu-usage", "cpu-temperature", "gpu-usage", "gpu-temperature", "ram", "swap" ] - opacity = 1.0 - padding = 6.0 - -[brightness] -enable_ddcutil = true - -[calendar] -enabled = true - -[control_center] -show_shortcut_labels = true -sidebar = "compact" -sidebar_section = "compact" -width = 640 - - [control_center.calendar] - show_week_numbers = true - - [[control_center.shortcuts]] - type = "wifi" - - [[control_center.shortcuts]] - type = "bluetooth" - - [[control_center.shortcuts]] - type = "noctalia/screen_recorder:toggle" - - [[control_center.shortcuts]] - type = "wallpaper" - - [[control_center.shortcuts]] - type = "notification" - - [[control_center.shortcuts]] - type = "power_profile" - - [[control_center.shortcuts]] - type = "nightlight" - -[desktop_widgets] -enabled = false - -[dock] -active_monitor_only = true -auto_hide = true -background_opacity = 0.94999999999999996 -border_width = 1.0 -cross_axis_padding = 4 -enabled = true -icon_size = 24 -magnification_scale = 1.3 -main_axis_padding = 4 -margin_edge = 8 -radius = 0 -reserve_space = false -show_dots = true - -[idle] -behavior_order = [ "dim-screen", "dim-keyboard", "lock", "screen-off", "lock-and-suspend" ] -pre_action_fade_seconds = 5.0 - - [idle.behavior.dim-keyboard] - action = "command" - command = "/nix/store/0rpfr3y6m574ywxhvkp8w7skw0zgnwp0-brightnessctl-0.5.1/bin/brightnessctl -sd rgb:kbd:backlight set 0" - enabled = true - resume_command = "/nix/store/0rpfr3y6m574ywxhvkp8w7skw0zgnwp0-brightnessctl-0.5.1/bin/brightnessctl -rd rgb:kbd:backlight" - timeout = 150.0 - - [idle.behavior.dim-screen] - action = "command" - command = "/nix/store/0rpfr3y6m574ywxhvkp8w7skw0zgnwp0-brightnessctl-0.5.1/bin/brightnessctl -s set 10" - enabled = true - resume_command = "/nix/store/0rpfr3y6m574ywxhvkp8w7skw0zgnwp0-brightnessctl-0.5.1/bin/brightnessctl -r" - timeout = 150.0 - - [idle.behavior.lock] - action = "lock" - enabled = true - timeout = 300.0 - - [idle.behavior.lock-and-suspend] - action = "lock_and_suspend" - enabled = true - timeout = 480.0 - - [idle.behavior.screen-off] - action = "screen_off" - enabled = true - timeout = 330.0 - -[keybinds] -down = [ "ctrl+j", "down" ] -left = [ "ctrl+h", "left" ] -right = [ "ctrl+l", "right" ] -up = [ "ctrl+k", "up" ] - -[location] -auto_locate = true - -[lockscreen] -blur_intensity = 0.40000000000000002 -blurred_desktop = true -tint_intensity = 0.20000000000000001 - -[lockscreen_widgets] -enabled = true -schema_version = 2 -widget_order = [ "lockscreen-login-box@eDP-1", "lockscreen-widget-0000000000000002" ] - - [lockscreen_widgets.grid] - cell_size = 16 - major_interval = 4 - visible = true - - [lockscreen_widgets.widget."lockscreen-login-box@eDP-1"] - box_height = 196.0 - box_width = 810.0 - cx = 960.0 - cy = 898.0 - output = "eDP-1" - rotation = 0.0 - type = "login_box" - - [lockscreen_widgets.widget."lockscreen-login-box@eDP-1".settings] - background_color = "surface_variant" - background_opacity = 0.88 - background_radius = 12.0 - center_password_text = false - input_opacity = 1.0 - input_radius = 6.0 - layout = "regular" - show_caps_lock = true - show_keyboard_layout = true - show_login_button = true - show_media = true - show_session_buttons = true - show_unlock_hint = true - show_weather = true - - [lockscreen_widgets.widget.lockscreen-widget-0000000000000002] - box_height = 48.0 - box_width = 816.0 - cx = 960.0 - cy = 724.0 - output = "eDP-1" - rotation = 0.0 - type = "audio_visualizer" - - [lockscreen_widgets.widget.lockscreen-widget-0000000000000002.settings] - background_opacity = 0.0 - bands = 32 - show_when_idle = true - -[notification] -background_opacity = 0.94999999999999996 -layer = "overlay" - -[osd] -background_opacity = 0.94999999999999996 - -[plugin_settings."kenn/keybind-cheatsheet"] -columns = 4 -compositor = "hyprland" -hyprland_parser = "lua" - -[plugin_settings."noctalia/screen_recorder"] -copy_to_clipboard = true -directory = "/home/adam0/Videos/Recordings" -video_codec = "hevc" - -[plugins] -auto_update = true -enabled = [ "adam0/performance", "kenn/keybind-cheatsheet", "noctalia/kaomoji", "noctalia/screen_recorder" ] - - [[plugins.source]] - kind = "git" - location = "https://github.com/noctalia-dev/official-plugins" - name = "official" - - [[plugins.source]] - kind = "git" - location = "https://github.com/noctalia-dev/community-plugins" - name = "community" - - [[plugins.source]] - kind = "path" - location = "/nix/store/d5ap85sr3f9wazmpfri27ya4vpcdq5h0-noctalia-performance-plugin" - name = "local" - -[shell] -avatar_path = "/home/adam0/.face" -clipboard_confirm_clear_history = false -clipboard_history_max_entries = 64 -corner_radius_scale = 0.0 -font_family = "JetBrainsMonoNL Nerd Font Propo" -launch_apps_as_systemd_services = true -panel_anchor_bar = "main" -polkit_agent = true -screen_time_enabled = true -setup_wizard_enabled = false - - [shell.animation] - speed = 2.0 - - [shell.launcher.providers.calculator] - global = false - - [shell.panel] - borders = true - control_center_placement = "floating" - list_item_background = true - open_near_click_control_center = true - session_placement = "floating" - session_position = "center" - shadow = true - transparency_mode = "solid" - wallpaper_placement = "floating" - wallpaper_position = "center" - - [shell.screenshot] - directory = "/home/adam0/Pictures/screenshots" - filename_pattern = "screenshot_%Y-%m-%dT%H:%M:%S" - show_cursor = true - - [shell.session] - grid = false - show_shortcuts = true - - [[shell.session.actions]] - action = "lock" - countdown_seconds = 0.0 - shortcut = "1" - - [[shell.session.actions]] - action = "lock_and_suspend" - countdown_seconds = 8.0 - shortcut = "2" - - [[shell.session.actions]] - action = "reboot" - countdown_seconds = 8.0 - shortcut = "3" - - [[shell.session.actions]] - action = "logout" - countdown_seconds = 8.0 - shortcut = "4" - - [[shell.session.actions]] - action = "shutdown" - countdown_seconds = 8.0 - shortcut = "5" - variant = "destructive" - - [[shell.session.actions]] - action = "reboot" - command = "systemctl reboot --firmware-setup" - countdown_seconds = 8.0 - glyph = "settings-automation" - label = "UEFI" - shortcut = "6" - - [shell.shadow] - direction = "center" - -[system.monitor] -cpu_poll_seconds = 1.0 -disk_poll_seconds = 4.0 -gpu_poll_seconds = 1.0 -memory_poll_seconds = 4.0 -network_poll_seconds = 4.0 - -[theme] -custom_palette = "stylix" -mode = "dark" -source = "custom" - - [theme.templates] - enable_builtin_templates = false - enable_community_templates = false - -[wallpaper] -directory = "/home/adam0/Pictures/wallpapers" -transition = [ "honeycomb" ] -transition_on_startup = true - - [wallpaper.automation] - enabled = true - interval_seconds = 7200 - order = "random" - recursive = false - - [wallpaper.default] - path = "/home/adam0/Pictures/wallpapers/98.png" - - [wallpaper.last] - path = "/home/adam0/Pictures/wallpapers/98.png" - - [wallpaper.monitors.eDP-1] - path = "/home/adam0/Pictures/wallpapers/98.png" - -[weather] -effects = true -enabled = true -unit = "metric" - -[widget.active_window] -color = "on_surface_variant" -display = "icon_and_text" -inactive_opacity = 1.0 -max_length = 145.0 -min_length = 0.0 -show_empty_label = true -title_scroll = "on_hover" - -[widget.battery] -color = "on_surface_variant" -display_mode = "glyph" -icon_color = "on_surface" -show_label = true - -[widget.brightness] -color = "on_surface_variant" -icon_color = "on_surface" -show_label = true - -[widget.clock] -color = "primary" -format = "{:%Y-%m-%d %H:%M}" -tooltip_format = "{:%a, %b %d %H:%M}" -vertical_format = """{:%H -%M - %d -%m}""" - -[widget.control-center] -custom_image = "/nix/store/ss4h6fag7x83mv94cbhjcgcm9nazb3ks-nixos-icons-0-unstable-2025-06-28/share/icons/hicolor/scalable/apps/nix-snowflake.svg" -custom_image_colorize = true -icon_color = "tertiary" -scale = 1.05 - -[widget.cpu-temperature] -color = "primary" -show_glyph = true -show_value = false -stat = "cpu_temp" -type = "sysmon" -visualization = "gauge" - - [widget.cpu-temperature.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.cpu-usage] -color = "primary" -show_glyph = true -show_value = false -stat = "cpu_usage" -type = "sysmon" -visualization = "gauge" - - [widget.cpu-usage.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.gpu-temperature] -color = "primary" -show_glyph = true -show_value = false -stat = "gpu_temp" -type = "sysmon" -visualization = "gauge" - - [widget.gpu-temperature.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.gpu-usage] -color = "primary" -show_glyph = true -show_value = false -stat = "gpu_usage" -type = "sysmon" -visualization = "gauge" - - [widget.gpu-usage.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.lock_keys] -display = "short" -show_caps_lock = true -show_num_lock = true -show_scroll_lock = true - -[widget.media] -color = "on_surface_variant" -hide_album_art = false -hide_when_no_media = false -max_length = 145.0 -min_length = 0.0 -title_scroll = "on_hover" - -[widget.microphone] -color = "on_surface_variant" -device = "input" -show_label = true -type = "volume" - - [widget.microphone.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Wiremix /nix/store/4676s2mkq6h817hzna8c36yldcvjhdlh-wiremix-0.11.0/bin/wiremix" - -[widget.network] -color = "on_surface_variant" -show_label = true -show_vpn_label = false -vpn_status = "both" - -[widget.performance] -color = "on_surface" -type = "adam0/performance:toggle" - -[widget.ram] -color = "primary" -show_glyph = true -show_value = false -stat = "ram_used" -type = "sysmon" -visualization = "gauge" - - [widget.ram.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.swap] -color = "primary" -show_glyph = true -show_value = false -stat = "swap_pct" -type = "sysmon" -visualization = "gauge" - - [widget.swap.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Btop /nix/store/1r2dkryq028hnvaj6m505a818w184ycg-btop-1.4.7/bin/btop" - -[widget.tray] -detached_panel = true -drawer = true -drawer_columns = 4 -pinned = [ "Equibop", "spotify-client", "steam", "Beeper" ] - -[widget.volume] -color = "on_surface_variant" -icon_color = "on_surface" -show_label = true - - [widget.volume.actions] - middle = "exec /nix/store/fkihxwzfbxj8idja8ryx89phkx6pqdwj-xdg-terminal-exec-0.14.3/bin/xdg-terminal-exec --title=Wiremix /nix/store/4676s2mkq6h817hzna8c36yldcvjhdlh-wiremix-0.11.0/bin/wiremix" - -[widget.workspaces] -focused_output_only = true -occupied_color = "outline" -pill_scale = 0.80000000000000004 -show_labels = true diff --git a/secrets.yaml b/secrets.yaml index e468d72..e563b96 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -129,8 +129,8 @@ sops: w2ToACYVigKMSlqPNG9bKcK75XI/iAONG48DQm1Nse3yB9/q3jwd+Q== -----END AGE ENCRYPTED FILE----- recipient: age1yl52c6aemw9anmfuqayamvsnkvlu6fmy0kk3gzvrraexxd9pr90qvs8pe5 - lastmodified: "2026-07-24T04:20:26Z" - mac: ENC[AES256_GCM,data:2DjeYvjJWhpx2ta1QYP0761ElkGqRiCYPA9kUp6ql3m9nQyhSeC1GPHs7NP4+BuMC0BET49LaNK982wK/hfDav1A1tu9E31cs4xUNKXzLekZiszANjEP/EnBgX63VSRz6dryfVuN51i+qc1Nv5oqmChWVe3ehl0vMgp22RIthSE=,iv:OLoCS4+8oh5lCYvII5TsuT1HEpSwWwXLS+Ckfp9LsNs=,tag:vhbu6TsCGpq9xfmpRazFDg==,type:str] + lastmodified: "2026-08-11T01:31:32Z" + mac: ENC[AES256_GCM,data:cNXe0Bfg8a45SqiZAYFxbCj84eLkWl1bFkAKnYbdf1QdJ7ZQOozCcZ2qnJ8paex/8DwaepGhjqnYgDGhFc3u0Cjx+RcIc0JU3G5h7hmY23IjHYZQFmU5ntz3cFZc4Aq0wkNjYoJ4jwmhi5fET20656XrNWbVfiVrIxA+Q6zDjjw=,iv:mt0W1iq5DvIH786frD4vt4x+dIR2s1gR8EYV8sGoUzo=,tag:PxrYKUx9H1gRFV1BJvSJJA==,type:str] pgp: - created_at: "2026-06-02T01:50:38Z" enc: |- @@ -144,4 +144,4 @@ sops: -----END PGP MESSAGE----- fp: 3666B440B0E872931B8E78596CFFE3FBA5DD84B9 unencrypted_suffix: _unencrypted - version: 3.13.2 + version: 3.13.3 -- 2.51.2