personal nixos config and packages
at main 2.5 kB view raw
1{ 2 inputs, 3 lib, 4 pkgs, 5 ... 6}: 7{ 8 imports = [ 9 inputs.noctalia.nixosModules.default 10 ]; 11 12 services.noctalia-shell = { 13 # package = pkgs.noctalia-shell; 14 enable = true; 15 }; 16 17 programs.niri = { 18 enable = true; 19 package = pkgs.customPackages.niri-wrapped; 20 }; 21 22 services.greetd = { 23 enable = true; 24 settings = { 25 default_session = { 26 command = "${lib.getExe pkgs.tuigreet} --time --cmd 'bash -l -c ${lib.getExe' pkgs.customPackages.niri-wrapped "niri-session"}'"; 27 user = "greeter"; 28 }; 29 }; 30 }; 31 32 systemd.user.services = { 33 swayidle = { 34 enable = true; 35 unitConfig = { 36 PartOf = "graphical-session.target"; 37 After = "graphical-session.target"; 38 Requisite = "graphical-session.target"; 39 }; 40 wantedBy = [ "graphical-session.target" ]; 41 serviceConfig = { 42 ExecStart = "${lib.getExe pkgs.swayidle} -w timeout 300 '${lib.getExe pkgs.niri} msg action power-off-monitors' before-sleep '${lib.getExe pkgs.noctalia-shell} ipc call lockScreen lock'"; 43 Restart = "on-failure"; 44 }; 45 }; 46 }; 47 48 # https://github.com/YaLTeR/niri/wiki/Important-Software 49 50 environment.systemPackages = with pkgs; [ 51 noctalia-shell 52 adwaita-icon-theme 53 # gnome-themes-extra 54 nautilus 55 wl-clipboard 56 ]; 57 58 services.upower.enable = true; 59 60 # enable polkit auth agent 61 security.soteria.enable = true; 62 63 # some gnome settings (dark mode) 64 programs.dconf.profiles.user.databases = [ 65 { 66 lockAll = true; 67 settings = { 68 "org/gnome/desktop/interface" = { 69 accent-color = "teal"; 70 color-scheme = "prefer-dark"; 71 }; 72 }; 73 } 74 ]; 75 76 # configure xdg portals and default apps 77 xdg.portal = { 78 enable = true; 79 xdgOpenUsePortal = true; 80 extraPortals = with pkgs; [ 81 xdg-desktop-portal-gtk 82 xdg-desktop-portal-gnome 83 ]; 84 }; 85 86 # default handlers 87 xdg.terminal-exec = { 88 enable = true; 89 settings = { 90 default = [ "Alacritty.desktop" ]; 91 }; 92 }; 93 94 xdg.mime.defaultApplications = { 95 "x-scheme-handler/http" = "chromium-browser.desktop"; 96 "x-scheme-handler/https" = "chromium-browser.desktop"; 97 "x-scheme-handler/ftp" = "chromium-browser.desktop"; 98 "x-scheme-handler/mailto" = "org.mozilla.thunderbird.desktop"; 99 "text/plain" = "Helix.desktop"; 100 "application/pdf" = "chromium-browser.desktop"; 101 # "image/png" = [ 102 # "sxiv.desktop" 103 # "gimp.desktop" 104 # ]; 105 }; 106}