personal nixos config and packages
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}