diff --git a/flake.nix b/flake.nix index 9af0fff..0913d80 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,16 @@ inputs.nixpkgs.follows = "nixpkgs"; #inputs.obsidian-nvim.follows = "obsidian-nvim"; }; + + quickshell = { + url = "github:outfoxxed/quickshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.quickshell.follows = "quickshell"; + }; }; # https://nix.dev/tutorials/nix-language.html#named-attribute-set-argument outputs = diff --git a/hosts/cobalt/default.nix b/hosts/cobalt/default.nix index b28af35..c1b5ef5 100644 --- a/hosts/cobalt/default.nix +++ b/hosts/cobalt/default.nix @@ -11,6 +11,7 @@ ./hardware-configuration.nix ./configuration.nix ../../modules/nixos/gaming.nix + ../../modules/nixos/desktop/niri ]; zw.gaming.enable = true; diff --git a/modules/nixos/desktop/niri/default.nix b/modules/nixos/desktop/niri/default.nix new file mode 100644 index 0000000..8359fe4 --- /dev/null +++ b/modules/nixos/desktop/niri/default.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, inputs, ... }: +{ + # Opinionated Niri Setup - https://yalter.github.io/niri/Important-Software.html + # Consider: https://github.com/sodiboo/niri-flake + + # NOTE: Rather than individual components, I'm going to start with a complete desktop shell if possible. + # According to the docs there's a few options: https://yalter.github.io/niri/Getting-Started.html#desktop-environments + # LXQt, many parts of XFCE, COSMIC + `cosmic-ext-extra-sessions` + # And what I actually want to try out is one of DankMaterialShell or Noctalia + programs.niri.enable = true; + + environments.systemPackages = with pkgs; [ + inputs.noctalia.packages.${system}.default + xwayland-satellite + fuzzel + kitty + fastfetch + ] + + # Notification Daemon + #services.mako.enable = true; + #services.mako.settings.default-timeout = 3000; + + # Portal - https://wiki.archlinux.org/title/XDG_Desktop_Portal#List_of_backends_and_interfaces + + # Authentication Agent (polkit) + #security.polkit.enable = lib.mkDefault true; + + # Xwayland + # https://github.com/Supreeeme/xwayland-satellite + #programs.xwayland.enable = lib.mkDefault true; + + # Screencasting - https://yalter.github.io/niri/Screencasting.html + # Needs D-Bus, pipewire, `xdg-desktop-portal-gnome`? Or a portal from the above table with screencasting support + +} \ No newline at end of file