From 0d5bc74f8840864c28d1670c5a1c4cced81f1f2e Mon Sep 17 00:00:00 2001 From: Grisha Shipunov Date: Tue, 25 Feb 2025 22:21:34 +0100 Subject: [PATCH 1/3] some initial work on niri --- flake.lock | 131 ++++++++++++++++++++++++++++++ flake.nix | 21 ++++- hosts/toaster/0xa-home.nix | 21 +++++ hosts/toaster/network/default.nix | 59 ++++++++++---- modules/{sway.nix => niri.nix} | 60 ++++++-------- 5 files changed, 243 insertions(+), 49 deletions(-) create mode 100644 hosts/toaster/0xa-home.nix rename modules/{sway.nix => niri.nix} (71%) diff --git a/flake.lock b/flake.lock index 628cb16..06b446c 100644 --- a/flake.lock +++ b/flake.lock @@ -248,6 +248,27 @@ "type": "github" } }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1739757849, + "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -363,6 +384,65 @@ "type": "github" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable_2", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1742108116, + "narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "824f10012de455a1d0ef795a605f28948ee10467", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "ref": "main", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.02", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1742103165, + "narHash": "sha256-zAzMwvozlS2gmqdhrgeMz0PNp3kRDkwxIEfqWT3Hj6g=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "287480b541e85b13ff6419d372f82fa8e42c603c", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -445,6 +525,22 @@ "type": "github" } }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1741862977, + "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1742069588, @@ -523,10 +619,12 @@ "inputs": { "authentik-nix": "authentik-nix", "flake-utils": "flake-utils_2", + "home-manager": "home-manager", "lanzaboote": "lanzaboote", "lix": "lix", "lix-module": "lix-module", "microvm": "microvm", + "niri": "niri", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", @@ -717,6 +815,39 @@ "type": "git", "url": "https://git.oxapentane.com/0xa/website.git" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5.1", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1742083780, + "narHash": "sha256-cVLagXvI4jFbCe76tpvAWA2N2WF94Pl0PpgsGp2P6rM=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "f9ec97b007547ad80147404335ed22e880dbd69d", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 9a59f52..1dca929 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,16 @@ inputs.flake-utils.follows = "flake-utils"; }; + home-manager = { + url = "github:nix-community/home-manager/release-24.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + niri = { + url = "github:sodiboo/niri-flake/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + tmux-yank = { url = "github:tmux-plugins/tmux-yank"; flake = false; @@ -56,9 +66,11 @@ outputs = inputs@{ authentik-nix, + home-manager, lanzaboote, lix-module, microvm, + niri, nixos-hardware, nixpkgs, sops-nix, @@ -105,13 +117,20 @@ lanzaboote.nixosModules.lanzaboote nixos-hardware.nixosModules.lenovo-thinkpad-t14-amd-gen3 lix-module.nixosModules.default + home-manager.nixosModules.home-manager + niri.nixosModules.niri + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users."0xa" = import ./hosts/toaster/0xa-home.nix; + } ./hosts/toaster ./modules/basic-tools ./modules/binary-caches.nix ./modules/devtools.nix - ./modules/gnome.nix + ./modules/niri.nix ./modules/gnupg.nix ./modules/radio.nix ./modules/science.nix diff --git a/hosts/toaster/0xa-home.nix b/hosts/toaster/0xa-home.nix new file mode 100644 index 0000000..b3ff5eb --- /dev/null +++ b/hosts/toaster/0xa-home.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: +{ + home.stateVersion = "24.11"; + + home.pointerCursor = { + name = "Banana"; + size = 32; + package = pkgs.banana-cursor; + x11.enable = true; + gtk.enable = true; + }; + + gtk = { + enable = true; + cursorTheme = { + name = "Banana"; + size = 32; + package = pkgs.banana-cursor; + }; + }; +} diff --git a/hosts/toaster/network/default.nix b/hosts/toaster/network/default.nix index 6d96c3c..ee0bdbe 100644 --- a/hosts/toaster/network/default.nix +++ b/hosts/toaster/network/default.nix @@ -1,4 +1,4 @@ -{ lib, config, ... }: +{ lib, pkgs, ... }: { imports = [ ./mullvad.nix @@ -6,26 +6,21 @@ ./zw.nix ]; - # Networkmanager shouldn't interfere with systemd managed interfaces - networking.networkmanager.unmanaged = - let - systemd_netdevs = lib.attrsets.attrValues ( - lib.attrsets.mapAttrs (_name: value: value.netdevConfig.Name) config.systemd.network.netdevs - ); - in - systemd_netdevs; + environment.systemPackages = with pkgs; [ + iwgtk + impala + ]; - systemd.network = { - enable = true; - wait-online.enable = false; # uplink is managed by networkmanager - }; - - users.users."0xa".extraGroups = [ "networkmanager" ]; + # kick out networkmanager + networking.networkmanager.enable = lib.mkForce false; + networking.useNetworkd = true; + systemd.network.enable = true; networking = { hostName = "toaster"; firewall.enable = true; wireguard.enable = true; + wireless.iwd.enable = true; }; services.resolved = { @@ -39,4 +34,38 @@ ]; }; + # we might have no interwebs at all + systemd.network.wait-online.enable = false; + + # uplinks + systemd.network.networks = { + "10-ether-uplink" = { + matchConfig.Name = "enp1s0f0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + "10-dock-uplink" = { + matchConfig.Name = "enp5s0f4u1u1"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + dhcpV4Config = { + RouteMetric = 666; + }; + dhcpV6Config = { + RouteMetric = 666; + }; + }; + "wlan-uplink" = { + matchConfig.Name = "wlan0"; + networkConfig = { + DHCP = "yes"; + IPv6AcceptRA = true; + }; + }; + }; + } diff --git a/modules/sway.nix b/modules/niri.nix similarity index 71% rename from modules/sway.nix rename to modules/niri.nix index 47f5698..79c4ec9 100644 --- a/modules/sway.nix +++ b/modules/niri.nix @@ -4,6 +4,10 @@ let unstablepkgs = inputs.nixpkgs-unstable.legacyPackages.${pkgs.system}; in { + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + + programs.niri.enable = true; + imports = [ ./desktop-software.nix ./fonts.nix @@ -28,6 +32,25 @@ in spotify-player zathura ncdu + adwaita-icon-theme + bluetui + foot + gammastep + graphicsmagick + grim + unstablepkgs.i3status-rust + impala + kanshi + pamixer + wofi + slurp + swayidle + swaylock + wl-clipboard + wl-mirror + xfce.thunar + banana-cursor + fuzzel ]; # Enable sound. @@ -52,38 +75,9 @@ in programs.light.enable = true; programs.xwayland.enable = true; - programs.sway = { - enable = true; - wrapperFeatures.gtk = true; - extraSessionCommands = '' - export SDL_VIDEODRIVER=wayland - export QT_QPA_PLATFORM=wayland-egl - export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" - export QT_QPA_PLATFORMTHEME="gnome" - export QT_STYLE_OVERRIDE="adwaita-dark" - # export WLR_DRM_NO_ATOMIC=1 - ''; - extraPackages = with pkgs; [ - adwaita-icon-theme - bluetui - foot - gammastep - graphicsmagick - grim - unstablepkgs.i3status-rust - impala - kanshi - swaynotificationcenter - pamixer - rofi-wayland - slurp - swayidle - swaylock - wl-clipboard - wl-mirror - xfce.thunar - ]; - }; + + programs.hyprland.enable = true; + environment.sessionVariables = { GTK_THEME = "Adwaita:dark"; }; @@ -118,7 +112,7 @@ in enable = true; settings = { default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.sway}/bin/sway"; + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.niri-stable}/bin/niri"; }; }; }; From 32e4cd5324f1968ff880e03484f731688688da55 Mon Sep 17 00:00:00 2001 From: Grisha Shipunov Date: Tue, 18 Mar 2025 18:25:54 +0100 Subject: [PATCH 2/3] finish niri config --- modules/niri.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/modules/niri.nix b/modules/niri.nix index 79c4ec9..1a8b59d 100644 --- a/modules/niri.nix +++ b/modules/niri.nix @@ -17,7 +17,6 @@ in qbittorrent gajim imv - swayimg mpv evince brightnessctl @@ -34,23 +33,23 @@ in ncdu adwaita-icon-theme bluetui - foot gammastep graphicsmagick - grim unstablepkgs.i3status-rust impala kanshi pamixer - wofi - slurp swayidle swaylock wl-clipboard - wl-mirror xfce.thunar banana-cursor fuzzel + alacritty + unstablepkgs.i3bar-river + mako + swww + oculante ]; # Enable sound. @@ -84,7 +83,7 @@ in xdg.portal = { enable = true; wlr.enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + extraPortals = [ pkgs.xdg-desktop-portal-gnome ]; }; services.udisks2.enable = true; @@ -112,7 +111,7 @@ in enable = true; settings = { default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.niri-stable}/bin/niri"; + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --greeting \"$(${pkgs.fortune}/bin/fortune -s)\" --cmd ${pkgs.niri-stable}/bin/niri-session"; }; }; }; From b729d2f7d950207b8566dcd1c134936acdd1137f Mon Sep 17 00:00:00 2001 From: Grisha Shipunov Date: Tue, 18 Mar 2025 18:26:00 +0100 Subject: [PATCH 3/3] bump lock --- flake.lock | 70 +++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/flake.lock b/flake.lock index 06b446c..68e1cc5 100644 --- a/flake.lock +++ b/flake.lock @@ -14,11 +14,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1740601740, - "narHash": "sha256-YQ8lMeT/KkMDavXrqPvoO6pKQdfSSAZBcNp/Cer4vWc=", + "lastModified": 1742246110, + "narHash": "sha256-bjJDxW3Z3clNIkgwEktWhFSpU9UyftisDfK3XYzdRps=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "bfcad34becd76d148e1ad537b5dcbd58d858a5bb", + "rev": "04f5e14643b8b37304966767074fbe0efcadab9f", "type": "github" }, "original": { @@ -30,16 +30,16 @@ "authentik-src": { "flake": false, "locked": { - "lastModified": 1740599692, - "narHash": "sha256-KZalpsM9rvki9GD+urf8idHOEnvBJtkSvE1b2b4KL/4=", + "lastModified": 1742236492, + "narHash": "sha256-Uz7qldS44pxduLcYKf+cCq4WvjoslDR4PwRqivY/4uI=", "owner": "goauthentik", "repo": "authentik", - "rev": "31fe0e59234e487a42012510d1a4e4819b9aba26", + "rev": "3adf79c4939276e108c25c719843b6174e9e22fd", "type": "github" }, "original": { "owner": "goauthentik", - "ref": "version/2025.2.1", + "ref": "version/2025.2.2", "repo": "authentik", "type": "github" } @@ -255,11 +255,11 @@ ] }, "locked": { - "lastModified": 1739757849, - "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", + "lastModified": 1742234739, + "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", "owner": "nix-community", "repo": "home-manager", - "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", + "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", "type": "github" }, "original": { @@ -299,11 +299,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1742165831, - "narHash": "sha256-/ssmsf50UERQNlOcUuyfvigcnCNckAhAPZMo0+Y3mdY=", - "rev": "2a336813ad2a4d64d027830507276da32927d215", + "lastModified": 1742313775, + "narHash": "sha256-qE8XqkuoWuH2np+NNGGNG8qWN2zPa0ldAM0olaySf+s=", + "rev": "6e6ff5827276ed2c4cf549b9fa898eb1e9566e57", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/2a336813ad2a4d64d027830507276da32927d215.tar.gz?rev=2a336813ad2a4d64d027830507276da32927d215" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/6e6ff5827276ed2c4cf549b9fa898eb1e9566e57.tar.gz?rev=6e6ff5827276ed2c4cf549b9fa898eb1e9566e57" }, "original": { "type": "tarball", @@ -396,11 +396,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1742108116, - "narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=", + "lastModified": 1742305115, + "narHash": "sha256-EJu/9UNo8ndiZ7AUVTazWQOA4lHUaTkorvgVExo2LLs=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "824f10012de455a1d0ef795a605f28948ee10467", + "rev": "bc4f3a4d3d0fb9be399faf525caffd5b664c5d31", "type": "github" }, "original": { @@ -430,11 +430,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1742103165, - "narHash": "sha256-zAzMwvozlS2gmqdhrgeMz0PNp3kRDkwxIEfqWT3Hj6g=", + "lastModified": 1742276600, + "narHash": "sha256-muceB5DW++WPqrGKpX3Hkii/DNSMmFs2oQrYRYHmPiU=", "owner": "YaLTeR", "repo": "niri", - "rev": "287480b541e85b13ff6419d372f82fa8e42c603c", + "rev": "e251ca7340bc71870c3a81a7ffc3d9bde58e685a", "type": "github" }, "original": { @@ -467,11 +467,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1742180333, - "narHash": "sha256-SrvP0G0fxz35lvQxBhAeJOl6+BueIsxJ4azMX+l/kAU=", + "lastModified": 1742217307, + "narHash": "sha256-3fwpN7KN226ghLlpO9TR0/WpgQOmOj1e8bieUxpIYSk=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "113cd3916682def185290145924fa30b30bda972", + "rev": "4f4d97d7b7be387286cc9c988760a7ebaa5be1f1", "type": "github" }, "original": { @@ -483,11 +483,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742136038, - "narHash": "sha256-DDe16FJk18sadknQKKG/9FbwEro7A57tg9vB5kxZ8kY=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a1185f4064c18a5db37c5c84e5638c78b46e3341", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -527,11 +527,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1741862977, - "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", + "lastModified": 1742268799, + "narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", + "rev": "da044451c6a70518db5b730fe277b70f494188f1", "type": "github" }, "original": { @@ -665,11 +665,11 @@ ] }, "locked": { - "lastModified": 1742206174, - "narHash": "sha256-Fwo/KZl8+OLvm/XcA/6cSvoG2XxHrKNITR08S78pGus=", + "lastModified": 1742239755, + "narHash": "sha256-ptn8dR4Uat3UUadGYNnB7CIH9SQm8mK69D2A/twBUXQ=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c00da36830ae93f200b4a10eae0a56b733616774", + "rev": "787afce414bcce803b605c510b60bf43c11f4b55", "type": "github" }, "original": { @@ -836,11 +836,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1742083780, - "narHash": "sha256-cVLagXvI4jFbCe76tpvAWA2N2WF94Pl0PpgsGp2P6rM=", + "lastModified": 1742249030, + "narHash": "sha256-YZ+axsuNsgIKWfnRkt6Qa9UoKfUOIWf42vNUonXxmxM=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "f9ec97b007547ad80147404335ed22e880dbd69d", + "rev": "cca74a5f6b23742d77dc5db4312dfc40fd4a0fcc", "type": "github" }, "original": {