summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrisha Shipunov2025-02-25 22:21:34 +0100
committerGrisha Shipunov2025-03-17 12:47:38 +0100
commit0d5bc74f8840864c28d1670c5a1c4cced81f1f2e (patch)
treec5db24fb67f437b35928ee2fa1134b49452ca7c3
parent5464226af78c9c461506ab75d0db3acfa22541fa (diff)
some initial work on niri
-rw-r--r--flake.lock131
-rw-r--r--flake.nix21
-rw-r--r--hosts/toaster/0xa-home.nix21
-rw-r--r--hosts/toaster/network/default.nix59
-rw-r--r--modules/niri.nix (renamed from modules/sway.nix)60
5 files changed, 243 insertions, 49 deletions
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;
-
- systemd.network = {
- enable = true;
- wait-online.enable = false; # uplink is managed by networkmanager
- };
+ environment.systemPackages = with pkgs; [
+ iwgtk
+ impala
+ ];
- 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
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";
};
};
};