diff --git a/flake.lock b/flake.lock index 14c5213..9446441 100644 --- a/flake.lock +++ b/flake.lock @@ -456,6 +456,26 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1770139227, + "narHash": "sha256-z7k7weJ+DvPBmyITbj42kGRQOR2dp+7VyhxFOfUaQ3Y=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "ab7102a7b073adad53c4b4e09fdf07a7c68ca749", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "type": "github" + } + }, "oh-my-opencode": { "inputs": { "flake-utils": "flake-utils", @@ -516,6 +536,7 @@ "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", + "noctalia": "noctalia", "oh-my-opencode": "oh-my-opencode", "rust-overlay": "rust-overlay", "zen-browser": "zen-browser" diff --git a/flake.nix b/flake.nix index c32a2f8..3fc7cd1 100644 --- a/flake.nix +++ b/flake.nix @@ -69,6 +69,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + llm-agents = { url = "github:numtide/llm-agents.nix"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/home-manager/desktop.nix b/home-manager/desktop.nix index 8ac8cc9..1aa044a 100644 --- a/home-manager/desktop.nix +++ b/home-manager/desktop.nix @@ -10,13 +10,16 @@ ./progs/niri.nix # statusbar - ./progs/eww/eww.nix + # ./progs/eww/eww.nix # lockscreen ./progs/swaylock.nix # notification daemon ./progs/dunst.nix + + # noctalia desktop shell + ./progs/noctalia.nix ]; home.packages = with pkgs; [ diff --git a/home-manager/progs/eww/eww.nix b/home-manager/progs/eww/eww.nix index 944b140..56505b9 100644 --- a/home-manager/progs/eww/eww.nix +++ b/home-manager/progs/eww/eww.nix @@ -1,4 +1,9 @@ -{ pkgs, ... }: +{ + pkgs, + lib, + config, + ... +}: { home.packages = with pkgs; [ zsh @@ -11,4 +16,16 @@ enable = true; configDir = ./config; }; + + programs.niri.settings.spawn-at-startup = [ + { + command = [ + (lib.getExe config.programs.eww.package) + "-c" + "${config.programs.eww.configDir}" + "open" + "statusbar" + ]; + } + ]; } diff --git a/home-manager/progs/niri.nix b/home-manager/progs/niri.nix index 9f1890f..2d60211 100644 --- a/home-manager/progs/niri.nix +++ b/home-manager/progs/niri.nix @@ -61,16 +61,6 @@ in xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; spawn-at-startup = [ - { - command = [ - (lib.getExe config.programs.eww.package) - "-c" - "${config.programs.eww.configDir}" - "open" - "statusbar" - ]; - } - # swaybg works on more than just sway (sets a wallpaper) { command = [ diff --git a/home-manager/progs/noctalia.nix b/home-manager/progs/noctalia.nix new file mode 100644 index 0000000..da5970a --- /dev/null +++ b/home-manager/progs/noctalia.nix @@ -0,0 +1,79 @@ +{ + pkgs, + inputs, + config, + lib, + ... +}: +{ + imports = [ + inputs.noctalia.homeModules.default + ]; + + programs.noctalia-shell = { + enable = true; + settings = { + bar = { + position = "top"; + floating = true; + backgroundOpacity = 0.93; + }; + general = { + animationSpeed = 1.5; + radiusRatio = 1.2; + }; + colorSchemes = { + darkMode = true; + useWallpaperColors = true; + }; + }; + }; + + programs.niri.settings = { + spawn-at-startup = [ + { + command = [ + "noctalia-shell" + ]; + } + ]; # place noctalia overview wallpaper on the backdrop layer + layer-rules = [ + { + matches = [ + { namespace = "^noctalia-overview*"; } + ]; + place-within-backdrop = true; + } + ]; + + # allow notification actions and window activation from noctalia + debug = { + honor-xdg-activation-with-invalid-serial = [ ]; + }; + + binds = + with config.lib.niri.actions; + let + noctalia = + cmd: + [ + "noctalia-shell" + "ipc" + "call" + ] + ++ (lib.splitString " " cmd); + + in + { + + # noctalia shell keybinds + "Mod+D".action = spawn (noctalia "launcher toggle"); + "Mod+A".action = spawn (noctalia "controlCenter toggle"); + "Mod+Escape".action = spawn (noctalia "sessionMenu toggle"); + "Mod+Shift+X".action = spawn (noctalia "lockScreen lock"); + "Mod+N".action = spawn (noctalia "notifications toggleHistory"); + + }; + }; + +} diff --git a/home-manager/progs/opencode.nix b/home-manager/progs/opencode.nix index 7143fdf..df5f9c3 100644 --- a/home-manager/progs/opencode.nix +++ b/home-manager/progs/opencode.nix @@ -8,7 +8,7 @@ let # what model should be used in place of haiku? # glm 4.7-flash is an example - haiku-model = "openrouter/z-ai/glm-4.7"; + haiku-model = "anthropic/claude-haiku-4-5"; opus-model = "openrouter/moonshotai/kimi-k2.5"; diff --git a/system/common.nix b/system/common.nix index 8110256..ebb64f0 100644 --- a/system/common.nix +++ b/system/common.nix @@ -164,6 +164,9 @@ # power statistics upower.enable = true; + + # power profiles for noctalia shell + power-profiles-daemon.enable = true; }; # EST