diff --git a/flake.lock b/flake.lock index d1fc7de..f17717d 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1781009359, - "narHash": "sha256-w/mZkRscTatf8NWyUstli8ROzM/eopxZzi0WRjoeYkU=", + "lastModified": 1781365335, + "narHash": "sha256-zqDBhXMzfbdlO7F2bGHe7MOtB3xngd/+4ieMHDC+ZXo=", "owner": "nix-community", "repo": "home-manager", - "rev": "c58ead12efcac436afffa93a22099a5595eb4157", + "rev": "5b6f5733726a1b2ccafb5dec6ac4ca7299fad66c", "type": "github" }, "original": { @@ -43,11 +43,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -66,11 +66,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1780995253, - "narHash": "sha256-6Lsoyw2XPvY8YNMCtPnsyw0JVVtHsXP2xtrFJBBTAOQ=", + "lastModified": 1781388258, + "narHash": "sha256-Kx1zxra9sZ215H3OiWUfkulu8N2v3iu19wqlzpD/Ac0=", "owner": "nix-community", "repo": "nixvim", - "rev": "43a7e6f82978ac975c3bba6728869b231e7a1ba0", + "rev": "e3c908fdf6dff268b04ffb6758bcfc7c018489b9", "type": "github" }, "original": { @@ -86,11 +86,11 @@ ] }, "locked": { - "lastModified": 1781026666, - "narHash": "sha256-mwjp1F8WuazLN0I16g581enuu4WaOdEMC0uhd+6/iWg=", + "lastModified": 1781443008, + "narHash": "sha256-ZycdrXdxhHYtw9FV10T6A+Tj1Hkq3WKtWnxQ317uXC8=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "5fa56db215e0fdf351547709f790aa47f05b44b0", + "rev": "2b82e4a2719b8bb0cd2da9716ed30302e9299ed6", "type": "github" }, "original": { diff --git a/modules/home-manager/nixvim.nix b/modules/home-manager/nixvim.nix index 612baba..93e6702 100644 --- a/modules/home-manager/nixvim.nix +++ b/modules/home-manager/nixvim.nix @@ -4,6 +4,12 @@ programs.nixvim = { enable = true; + # We keep `inputs.nixvim.inputs.nixpkgs.follows = "nixpkgs"` in flake.nix so + # the whole config shares a single nixpkgs. Setting `source` explicitly to + # that same nixpkgs acknowledges the override and silences nixvim's warning + # about its pinned nixpkgs being bypassed. + nixpkgs.source = inputs.nixpkgs; + # set aliases viAlias = true; vimAlias = true; diff --git a/modules/home-manager/noctalia.nix b/modules/home-manager/noctalia.nix new file mode 100644 index 0000000..1b8ef7f --- /dev/null +++ b/modules/home-manager/noctalia.nix @@ -0,0 +1,123 @@ +{ config, pkgs, inputs, ... }: + +{ + # Noctalia v5 shell, managed via its upstream home-manager module. + # See https://docs.noctalia.dev/v5/getting-started/nixos/ + imports = [ inputs.noctalia.homeModules.default ]; + + programs.noctalia = { + enable = true; + + # The module's `package` option has no default, so it must be set explicitly. + package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default; + + # settings is rendered to ~/.config/noctalia/config.toml + settings = { + # theme / colors + theme = { + source = "builtin"; + builtin = "Nord"; + mode = "dark"; + templates.builtin_ids = [ "ghostty" ]; + }; + + # general + shell = { + font_family = "0xProto Nerd Font Mono"; + ui_scale = 1.2; + avatar_path = "/home/aaron/syncthing/pictures/Logo-Aaron-Totenkopf-rund-schwarz.png"; + telemetry_enabled = false; + clipboard_enabled = true; + password_style = "random"; + + panel = { + launcher_compact = true; + open_near_click_control_center = true; + open_near_click_session = true; + open_near_click_wallpaper = true; + transparency_mode = "glass"; + }; + + screen_corners = { + enabled = true; + size = 10; + }; + }; + + # location / weather + location.address = "Bern"; + + weather = { + enabled = true; + unit = "metric"; + }; + + # wallpaper + wallpaper = { + enabled = true; + directory = "/home/aaron/Pictures/Wallpapers"; + fill_mode = "crop"; + default.path = "/home/aaron/Pictures/Wallpapers/nord-theme-tower.png"; + }; + + # bar layout + bar = { + order = [ "default" ]; + default = { + position = "top"; + background_opacity = 0.93; + font_weight = 400; + margin_edge = 0; + margin_ends = 0; + radius = 0; + scale = 1.2; + widget_spacing = 20; + start = [ "control-center" "cpu" "ram" "temp" "active_window" ]; + center = [ "workspaces" ]; + end = [ "tray" "bluetooth" "notifications" "volume" "network" "clock" ]; + }; + }; + + # per-widget styling + widget = { + bluetooth.capsule = true; + control-center = { + capsule_radius = 8; + custom_image = "/home/aaron/Pictures/nix_flake_logo.png"; + scale = 1.4; + }; + cpu.capsule = true; + network = { + capsule = true; + show_label = false; + }; + notifications.capsule = true; + ram.capsule = true; + temp.capsule = true; + volume = { + capsule = true; + show_label = false; + }; + }; + + # idle behavior + idle = { + behavior_order = [ "screen-off" "lock" "lock-and-suspend" ]; + behavior = { + "screen-off" = { + enabled = true; + timeout = 600; + }; + "lock" = { + enabled = true; + timeout = 660; + }; + "lock-and-suspend" = { + enabled = true; + timeout = 1800; + }; + }; + }; + }; + }; +} diff --git a/users/aaron/home.nix b/users/aaron/home.nix index 791a600..96309f9 100644 --- a/users/aaron/home.nix +++ b/users/aaron/home.nix @@ -6,6 +6,7 @@ ../../modules/home-manager/git.nix ../../modules/home-manager/ghostty.nix ../../modules/home-manager/nixvim.nix + ../../modules/home-manager/noctalia.nix ../../modules/home-manager/programs.nix ../../modules/home-manager/shell.nix ../../modules/home-manager/styling.nix