init niri

This commit is contained in:
cy 2025-01-18 20:39:51 -05:00
parent f2f8c204ee
commit fd8db4c006
7 changed files with 183 additions and 1 deletions

108
flake.lock generated
View file

@ -355,6 +355,64 @@
"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": 1737231928,
"narHash": "sha256-eOvFTgpFGP8hy6r3O8Ae5jOGc483l4BszwQsPcccbbs=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "ca748d585a271a512807cd60e5353a9ddb4d1dee",
"type": "github"
},
"original": {
"owner": "sodiboo",
"repo": "niri-flake",
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1736614405,
"narHash": "sha256-AJ1rlgNOPb3/+DbS5hkhm21t6Oz8IgqLllwmZt0lyzk=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "e05bc269e678ecf828b96ae79c991c13b00b38a5",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v25.01",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1737211438,
"narHash": "sha256-XPcV2rV7Vy7lLeZMhTOwd0t/sRwNquXI7CH7+3Aftt0=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "818248457210f5101459ea7d7066d12c456c8a97",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
@ -436,6 +494,22 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1737165118,
"narHash": "sha256-s40Kk/OulP3J/1JvC3VT16U4r/Xw6Qdi7SRw3LYkPWs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6a3ae7a5a12fb8cac2d59d7df7cbd95f9b2f0566",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"devshell": "devshell",
@ -520,6 +594,7 @@
"flake-parts": "flake-parts",
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"niri": "niri",
"nixpkgs": "nixpkgs",
"nixpkgs-garage": "nixpkgs-garage",
"nixvim": "nixvim",
@ -642,6 +717,39 @@
"repo": "treefmt-nix",
"type": "github"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1730166465,
"narHash": "sha256-nq7bouXQXaaPPo/E+Jbq+wNHnatD4dY8OxSrRqzvy6s=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "a713cf46cb7db84a0d1b57c3a397c610cad3cf98",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.5",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1736487362,
"narHash": "sha256-4kGoOA7FgK9N2mzS+TFEn41kUUNY6KwdiA/0rqlr868=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "8f55e27f63a749881c4bbfbb6b1da028342a91d1",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"type": "github"
}
}
},
"root": "root",

View file

@ -28,6 +28,8 @@
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
niri.url = "github:sodiboo/niri-flake";
niri.inputs.nixpkgs.follows = "nixpkgs";
nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR
};
@ -35,9 +37,11 @@
nixConfig = {
extra-substituters = [
"https://cache.cything.io/central"
"https://niri.cachix.org"
];
extra-trusted-public-keys = [
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
];
builders-use-substitutes = true;
};
@ -92,7 +96,8 @@
pkgs = import nixpkgs {
config.allowUnfree = true;
system = "x86_64-linux";
overlays = import ./overlay;
overlays = [ inputs.niri.overlays.niri ]
++ import ./overlay;
};
in
{
@ -102,6 +107,7 @@
in
{
ytnix = lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
{
nixpkgs = { inherit pkgs; };
@ -110,6 +116,7 @@
inputs.sops-nix.nixosModules.sops
./modules
inputs.lanzaboote.nixosModules.lanzaboote
inputs.niri.nixosModules.niri
];
};
chunk = lib.nixosSystem {
@ -152,6 +159,7 @@
modules = [
./home/yt/ytnix.nix
inputs.nixvim.homeManagerModules.nixvim
inputs.niri.homeModules.config
];
};

43
home/niri.nix Normal file
View file

@ -0,0 +1,43 @@
{ config, ...}:
{
programs.niri.settings = {
prefer-no-csd = true;
};
programs.niri.settings.binds = with config.lib.niri.actions; {
"Mod+Return".action = spawn "foot";
"Mod+D".action = spawn "fuzzel";
"Mod+Shift+E".action = quit;
"Mod+Equal".action = set-column-width "+10%";
"Mod+Minus".action = set-column-width "-10%";
"Mod+Shift+Equal".action = set-window-height "+10%";
"Mod+Shift+Minus".action = set-window-height "-10%";
"Mod+1".action = focus-workspace 1;
"Super+Alt+L".action = spawn "swaylock";
"Mod+Ctrl+Q".action = close-window;
"Mod+H".action = focus-column-left;
"Mod+L".action = focus-column-right;
"Mod+K".action = focus-window-up;
"Mod+J".action = focus-window-down;
"Mod+Shift+H".action = move-column-left;
"Mod+Shift+L".action = move-column-right;
"Mod+Shift+K".action = move-window-up;
"Mod+Shift+J".action = move-window-down;
"Mod+U".action = focus-workspace-up;
"Mod+I".action = focus-workspace-down;
"Mod+Shift+U".action = move-workspace-up;
"Mod+Shift+I".action = move-workspace-down;
"Mod+W".action = maximize-column;
"Mod+C".action = center-column;
"Mod+Shift+Space".action = toggle-window-floating;
"Mod+Space".action = switch-focus-between-floating-and-tiling;
"Print".action = screenshot;
"Alt+Print".action = screenshot-window;
"Ctrl+Print".action = screenshot-screen;
"Mod+R".action = switch-preset-column-width;
"Mod+Shift+R".action = switch-preset-window-height;
"Mod+Ctrl+R".action = reset-window-height;
"Mod+F".action = fullscreen-window;
};
}

View file

@ -6,6 +6,7 @@
imports = [
./common.nix
../foot.nix
../niri.nix
];
home = {
username = "yt";
@ -99,6 +100,7 @@
clang
seahorse
github-cli
fuzzel
];
programs.waybar.enable = true;

View file

@ -315,4 +315,9 @@
};
services.trezord.enable = true;
my.niri = {
enable = true;
package = pkgs.niri-unstable;
};
}

View file

@ -2,5 +2,6 @@
{
imports = [
./backup.nix
./niri.nix
];
}

15
modules/niri.nix Normal file
View file

@ -0,0 +1,15 @@
{ pkgs, config, lib, ... }:
let
cfg = config.my.niri;
in
{
options.my.niri = {
enable = lib.mkEnableOption "niri";
package = lib.mkPackageOption pkgs "niri" { };
};
config = lib.mkIf cfg.enable {
programs.niri.package = cfg.package;
programs.niri.enable = true;
};
}