aboutsummaryrefslogtreecommitdiff
path: root/home/rices/finals/system.nix
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-20 11:34:55 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-20 11:34:55 +0200
commit8a47c7ebcd39c32e3b566d0ed1b645a82b55f9e3 (patch)
treedb45b4b7cfc664334a66c8df0ca27623fabf185e /home/rices/finals/system.nix
parenta4bc3ae3780298b2f73379812d0cad03589861cc (diff)
Add boilerplate for a niri rice (The Finals theemd)
Diffstat (limited to 'home/rices/finals/system.nix')
-rw-r--r--home/rices/finals/system.nix85
1 files changed, 85 insertions, 0 deletions
diff --git a/home/rices/finals/system.nix b/home/rices/finals/system.nix
new file mode 100644
index 0000000..bd33688
--- /dev/null
+++ b/home/rices/finals/system.nix
@@ -0,0 +1,85 @@
+{
+ pkgs,
+ lib,
+ ...
+}: {
+ # Desktop environment - Niri compositor
+ programs.niri.enable = true;
+ services.displayManager.defaultSession = "niri";
+
+ # Keyboard layout - change to your preference
+ services.xserver.xkb = {
+ layout = "us";
+ };
+
+ # Polkit for Niri
+ security.polkit.enable = true;
+ systemd.user.services.niri-flake-polkit.enable = false;
+ systemd.user.services.polkit-gnome-authentication-agent-1 = {
+ description = "polkit-gnome-authentication-agent-1";
+ wantedBy = ["graphical-session.target"];
+ wants = ["graphical-session.target"];
+ after = ["graphical-session.target"];
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
+ Restart = "on-failure";
+ RestartSec = 1;
+ TimeoutStopSec = 10;
+ };
+ };
+
+ # Audio - Pipewire
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+ environment.systemPackages = with pkgs; [
+ playerctl
+ pulsemixer
+ ];
+
+ # XDG portals
+ xdg.portal.extraPortals = [
+ pkgs.xdg-desktop-portal-cosmic
+ ];
+ xdg.portal.config.common.default = [
+ "gnome"
+ ];
+
+ # Fonts
+ fonts = {
+ packages = with pkgs; [
+ nerd-fonts.fira-code
+ noto-fonts-color-emoji
+ inter
+ ];
+ fontDir.enable = true;
+ };
+
+ # Stylix - pick your scheme
+ stylix = {
+ enable = true;
+ polarity = "dark";
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
+ fonts = {
+ sansSerif = {
+ package = pkgs.inter;
+ name = "Inter";
+ };
+ monospace = {
+ package = pkgs.nerd-fonts.fira-code;
+ name = "FiraCode Nerd Font";
+ };
+ emoji = {
+ package = pkgs.noto-fonts-color-emoji;
+ name = "Noto Color Emoji";
+ };
+ };
+ };
+
+ # Services
+ services.upower.enable = true;
+}