Compare commits
11 commits
877ea04a6c
...
ee9ccdb234
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ee9ccdb234 | ||
![]() |
82f75ebcff | ||
![]() |
01057a2d17 | ||
![]() |
573b7cae24 | ||
![]() |
c0d43ca29e | ||
![]() |
54fcf5b413 | ||
![]() |
fa85c44299 | ||
![]() |
ccc0e53cda | ||
![]() |
80e65d5c34 | ||
![]() |
9e39f5c31e | ||
![]() |
6575d7b21e |
19 changed files with 540 additions and 164 deletions
45
default.nix
45
default.nix
|
@ -1,22 +1,47 @@
|
||||||
let
|
let
|
||||||
inherit (builtins) filter mapAttrs;
|
inherit (builtins)
|
||||||
|
filter
|
||||||
|
fromJSON
|
||||||
|
readFile
|
||||||
|
;
|
||||||
|
|
||||||
# https://github.com/andir/npins?tab=readme-ov-file#using-the-nixpkgs-fetchers
|
/*
|
||||||
src = import ./npins;
|
The *sole* use for the flake in this repository is easy locking
|
||||||
pkgs = import src.nixpkgs { };
|
of dependencies and inputs for nil, my lsp.
|
||||||
sources = mapAttrs (_: v: v { inherit pkgs; }) src;
|
I parse the flake.lock here, extract the Lix project's
|
||||||
|
flake-compat, which features lazy store copies, aka lazy trees.
|
||||||
|
|
||||||
|
Using that, I can use Lix as my CppNix implementation
|
||||||
|
AND have lazy trees for basically free.
|
||||||
|
*/
|
||||||
|
lockFile = fromJSON (readFile ./flake.lock);
|
||||||
|
node = lockFile.nodes.root.inputs.__flake-compat;
|
||||||
|
inherit (lockFile.nodes.${node}.locked) narHash rev url;
|
||||||
|
|
||||||
|
flake-compat = builtins.fetchTarball {
|
||||||
|
url = "${url}/archive/${rev}.tar.gz";
|
||||||
|
sha256 = narHash;
|
||||||
|
};
|
||||||
|
flake = import flake-compat {
|
||||||
|
src = ./.;
|
||||||
|
# Prevent eager store copies
|
||||||
|
copySourceTreeToStore = false;
|
||||||
|
useBuiltinsFetchTree = true;
|
||||||
|
};
|
||||||
|
inherit (flake) inputs;
|
||||||
|
|
||||||
|
pkgs = import inputs.nixpkgs { };
|
||||||
inherit (pkgs) lib;
|
inherit (pkgs) lib;
|
||||||
inherit (lib.filesystem) listFilesRecursive;
|
inherit (lib.filesystem) listFilesRecursive;
|
||||||
inherit (lib.strings) hasSuffix;
|
inherit (lib.strings) hasSuffix;
|
||||||
inherit (lib.attrsets) genAttrs;
|
inherit (lib.attrsets) genAttrs;
|
||||||
|
|
||||||
nixosSystem = import (sources.nixpkgs + "/nixos/lib/eval-config.nix");
|
nixosSystem = import (inputs.nixpkgs.outPath + "/nixos/lib/eval-config.nix");
|
||||||
mkSystem =
|
mkSystem =
|
||||||
hostname:
|
hostname:
|
||||||
nixosSystem {
|
nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit sources;
|
inherit inputs;
|
||||||
self = ./.;
|
self = ./.;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
|
@ -24,6 +49,12 @@ let
|
||||||
./hosts/${hostname}
|
./hosts/${hostname}
|
||||||
]
|
]
|
||||||
++ ((listFilesRecursive ./modules) |> filter (hasSuffix ".mod.nix"));
|
++ ((listFilesRecursive ./modules) |> filter (hasSuffix ".mod.nix"));
|
||||||
|
lib = inputs.nixpkgs.lib.extend (
|
||||||
|
final: prev: {
|
||||||
|
getFlakePkg = p: p.packages.${builtins.currentSystem}.default;
|
||||||
|
getFlakePkg' = p: n: p.packages.${builtins.currentSystem}.${n};
|
||||||
|
}
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
hosts = [
|
hosts = [
|
||||||
|
|
272
flake.lock
generated
272
flake.lock
generated
|
@ -31,6 +31,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fenix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"niri-tag",
|
||||||
|
"naersk",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752475459,
|
||||||
|
"narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -224,6 +247,25 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"naersk": {
|
||||||
|
"inputs": {
|
||||||
|
"fenix": "fenix",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752689277,
|
||||||
|
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "naersk",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nh": {
|
"nh": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -264,6 +306,99 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri": {
|
||||||
|
"inputs": {
|
||||||
|
"niri-stable": "niri-stable",
|
||||||
|
"niri-unstable": "niri-unstable",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756801989,
|
||||||
|
"narHash": "sha256-eOIQ1CUMHwU4zsBGaCj9jCgNTxzyq2aeHuwgx0xLFwo=",
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"rev": "d6a98b86d86b512c6167601ea646ab785137bada",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756556321,
|
||||||
|
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.08",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-tag": {
|
||||||
|
"inputs": {
|
||||||
|
"naersk": "naersk",
|
||||||
|
"niri": "niri_2",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755582059,
|
||||||
|
"narHash": "sha256-fDyhFfRazK2SvPQVGi6tcMTpOAu6CoUhZSyaaE2edtE=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "0c1a104cea3de07c3416edb0d16db324daf5f61f",
|
||||||
|
"revCount": 37,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.atagen.co/atagen/niri-tag"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.atagen.co/atagen/niri-tag"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756728273,
|
||||||
|
"narHash": "sha256-7tYNlNO/qVRA6shdWxNuBMYOE+pGgxqE0f54S4Wr9PE=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "77465e11fe36fdd9bc0a304b96bb2558116568af",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755539138,
|
||||||
|
"narHash": "sha256-8LoWAwBqHFOM1Je3b+XCs6gM5LbJlMfZtSpJvTe3sQk=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "43a2648e579fc81366fc81b15f834c9c9dff119b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755972213,
|
"lastModified": 1755972213,
|
||||||
|
@ -277,7 +412,71 @@
|
||||||
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
|
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756754095,
|
||||||
|
"narHash": "sha256-9Rsn9XEWINExosFkKEqdp8EI6Mujr1gmQiyrEcts2ls=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7c815e513adbf03c9098b2bd230c1e0525c8a7f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756542300,
|
||||||
|
"narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d7600c775f877cd87b4f5a831c28aa94137377aa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752077645,
|
||||||
|
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "be9e214982e20b8310878ac2baa063a961c1bdf6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756696532,
|
||||||
|
"narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 315532800,
|
"lastModified": 315532800,
|
||||||
"narHash": "sha256-JaSDu+RYnaHrkMCcW95rc8pG9QjD7nzX+/VHleiPVxA=",
|
"narHash": "sha256-JaSDu+RYnaHrkMCcW95rc8pG9QjD7nzX+/VHleiPVxA=",
|
||||||
|
@ -290,7 +489,7 @@
|
||||||
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754214453,
|
"lastModified": 1754214453,
|
||||||
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
||||||
|
@ -361,7 +560,9 @@
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nh": "nh",
|
"nh": "nh",
|
||||||
"nil": "nil",
|
"nil": "nil",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"niri": "niri",
|
||||||
|
"niri-tag": "niri-tag",
|
||||||
|
"nixpkgs": "nixpkgs_5",
|
||||||
"quickshell": "quickshell",
|
"quickshell": "quickshell",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"watt": "watt",
|
"watt": "watt",
|
||||||
|
@ -369,6 +570,23 @@
|
||||||
"zen-browser-flake": "zen-browser-flake"
|
"zen-browser-flake": "zen-browser-flake"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752428706,
|
||||||
|
"narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "591e3b7624be97e4443ea7b5542c191311aa141d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -485,6 +703,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"watt": {
|
"watt": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -505,10 +738,43 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755491097,
|
||||||
|
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.7",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756679414,
|
||||||
|
"narHash": "sha256-yQGJ/n6mRwoIQnaL5oV2TGOHg4SEHpINTaoHrvkjr1Q=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "c0497c990d46fcc012d9deff885bbe533e91e044",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"zedless": {
|
"zedless": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_3",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754831523,
|
"lastModified": 1754831523,
|
||||||
|
|
|
@ -60,6 +60,13 @@
|
||||||
url = "git+https://git.lix.systems/lix-project/flake-compat.git";
|
url = "git+https://git.lix.systems/lix-project/flake-compat.git";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
niri.url = "github:sodiboo/niri-flake";
|
||||||
|
|
||||||
|
niri-tag = {
|
||||||
|
url = "git+https://git.atagen.co/atagen/niri-tag";
|
||||||
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = _: { };
|
outputs = _: { };
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
impala
|
impala
|
||||||
imv
|
imv
|
||||||
inetutils
|
inetutils
|
||||||
jujutsu
|
|
||||||
just
|
just
|
||||||
keepassxc
|
keepassxc
|
||||||
lazygit
|
lazygit
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
imv
|
imv
|
||||||
inetutils
|
inetutils
|
||||||
inshellisense
|
inshellisense
|
||||||
jujutsu
|
|
||||||
just
|
just
|
||||||
keepassxc
|
keepassxc
|
||||||
lazygit
|
lazygit
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
img2pdf
|
img2pdf
|
||||||
imv
|
imv
|
||||||
inetutils
|
inetutils
|
||||||
jujutsu
|
|
||||||
just
|
just
|
||||||
lazygit
|
lazygit
|
||||||
libtool
|
libtool
|
||||||
|
|
|
@ -207,7 +207,8 @@ let menus = [
|
||||||
only_buffer_difference: false
|
only_buffer_difference: false
|
||||||
marker: $"(ansi yellow)╋ "
|
marker: $"(ansi yellow)╋ "
|
||||||
type: {
|
type: {
|
||||||
layout: ide
|
layout: columnar
|
||||||
|
columns: 3
|
||||||
min_completion_width: 0
|
min_completion_width: 0
|
||||||
max_completion_width: 150
|
max_completion_width: 150
|
||||||
max_completion_height: 25
|
max_completion_height: 25
|
||||||
|
@ -272,17 +273,44 @@ if not ($env_vars_file | path exists) {
|
||||||
| open $in
|
| open $in
|
||||||
| str trim
|
| str trim
|
||||||
| lines
|
| lines
|
||||||
|
| str replace --all '$HOME' $env.HOME
|
||||||
|
| str replace --all '$USER' $env.USER
|
||||||
| parse 'export {name}="{value}"'
|
| parse 'export {name}="{value}"'
|
||||||
| transpose --header-row --as-record
|
| transpose --header-row --as-record
|
||||||
| tee { load-env $in }
|
| tee { load-env $in }
|
||||||
| to nuon
|
| to nuon
|
||||||
| save --force $env_vars_file
|
| save --force $env_vars_file} else {
|
||||||
} else {
|
|
||||||
open $env_vars_file
|
open $env_vars_file
|
||||||
| from nuon
|
| from nuon
|
||||||
| load-env $in
|
| load-env $in
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let converter = {
|
||||||
|
from_string: {|s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: {|v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
|
||||||
|
let addition = [
|
||||||
|
XDG_DATA_DIRS
|
||||||
|
XDG_CONFIG_DIRS
|
||||||
|
XCURSOR_PATH
|
||||||
|
TERMINFO_DIRS
|
||||||
|
QT_PLUGIN_PATH
|
||||||
|
QTWEBKIT_PLUGIN_PATH
|
||||||
|
QML2_IMPORT_PATH
|
||||||
|
INFOPATH
|
||||||
|
LIBEXEC_PATH
|
||||||
|
GTK_PATH
|
||||||
|
GIO_EXTRA_MODULES
|
||||||
|
CUPS_DATADIR
|
||||||
|
]
|
||||||
|
| each { {($in): $converter} }
|
||||||
|
| into record
|
||||||
|
|
||||||
|
$env.ENV_CONVERSIONS = $env.ENV_CONVERSIONS | merge $addition
|
||||||
|
$env.EDITOR = "hx"
|
||||||
|
|
||||||
def switch [] {
|
def switch [] {
|
||||||
nh os switch --file ($env.NH_FLAKE | path join default.nix) (open /etc/hostname | str trim)
|
nh os switch --file ($env.NH_FLAKE | path join default.nix) (open /etc/hostname | str trim)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
@ -8,11 +9,8 @@
|
||||||
nushell
|
nushell
|
||||||
inshellisense
|
inshellisense
|
||||||
carapace
|
carapace
|
||||||
|
fish
|
||||||
];
|
];
|
||||||
environment.sessionVariables = {
|
|
||||||
CARAPACE_BRIDGES = "inshellisense,carapace,clap,bash";
|
|
||||||
CARAPACE_MATCH = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
files = {
|
files = {
|
||||||
".config/nushell/config.nu".source = ./config.nu;
|
".config/nushell/config.nu".source = ./config.nu;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
key = pkgs.writeText "signingkey" "ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAAWEDj/Yib6Mqs016jx7rtecWpytwfVl28eoHtPYCM9TVLq81VIHJSN37lbkc/JjiXCdIJy2Ta3A3CVV5k3Z37NbgAu23oKA2OcHQNaRTLtqWlcBf9fk9suOkP1A3NzAqzivFpBnZm3ytaXwU8LBJqxOtNqZcFVruO6fZxJtg2uE34mAw==";
|
key = pkgs.writeText "signingkey" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPiRe9OH/VtWFWyy5QbAVcN7CLxr4zUtRCwmxD6aeN6";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
|
|
|
@ -60,7 +60,6 @@ in
|
||||||
inetutils
|
inetutils
|
||||||
inetutils
|
inetutils
|
||||||
jq
|
jq
|
||||||
jujutsu
|
|
||||||
just
|
just
|
||||||
kondo
|
kondo
|
||||||
lazygit
|
lazygit
|
||||||
|
|
|
@ -6,75 +6,56 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib.meta) getExe;
|
inherit (lib.meta) getExe;
|
||||||
|
inherit (builtins) attrValues readFile;
|
||||||
|
|
||||||
|
inherit (config.meta.mainUser) username;
|
||||||
|
|
||||||
|
realName = readFile config.sops.secrets.real_name.path;
|
||||||
|
universityEmail = readFile config.sops.secrets.university_email.path;
|
||||||
|
organizationEmail = readFile config.sops.secrets.organization_email.path;
|
||||||
|
organizationShortName = readFile config.sops.secrets.organization_short_name.path;
|
||||||
|
|
||||||
toml = pkgs.formats.toml { };
|
toml = pkgs.formats.toml { };
|
||||||
jj-config = toml.generate "config.toml" {
|
jj-config = toml.generate "config.toml" {
|
||||||
user = {
|
user = {
|
||||||
name = "Bloxx12";
|
email = "fau@faukah.com";
|
||||||
email = "charlie@charlieroot.dev";
|
name = "faukah";
|
||||||
};
|
};
|
||||||
|
"--scope" = [
|
||||||
|
{
|
||||||
|
"--when".repositories = [ "~/repos/projects/uni" ];
|
||||||
|
user = {
|
||||||
|
email = universityEmail;
|
||||||
|
name = realName;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
|
||||||
ui = {
|
"--when".repositories = [ "~/repos/projects/${organizationShortName}" ];
|
||||||
pager = [
|
|
||||||
"${getExe pkgs.bat}"
|
|
||||||
"--plain"
|
|
||||||
];
|
|
||||||
default-command = "log";
|
|
||||||
movement.edit = true;
|
|
||||||
|
|
||||||
diff.tool = [
|
|
||||||
"${getExe pkgs.difftastic}"
|
|
||||||
"--color"
|
|
||||||
"always"
|
|
||||||
"$left"
|
|
||||||
"$right"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# FIXME: do this with agenix
|
|
||||||
# "--scope" = [
|
|
||||||
# {
|
|
||||||
# "--when.repositories" = ["~/repos/projects/uni"];
|
|
||||||
# user = {
|
|
||||||
# # TODO
|
|
||||||
# name = "";
|
|
||||||
# email = "";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# "--when.repositories" = ["~/repos/projects/uni/"];
|
|
||||||
# user = {
|
|
||||||
# # TODO
|
|
||||||
# name = "";
|
|
||||||
# email = "";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
git.push-new-bookmarks = true;
|
|
||||||
|
|
||||||
signing = {
|
|
||||||
behaviour = "own";
|
|
||||||
backend = "ssh";
|
|
||||||
key = [
|
|
||||||
"ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAAWEDj/Yib6Mqs016jx7rtecWpytwfVl28eoHtPYCM9TVLq81VIHJSN37lbkc/JjiXCdIJy2Ta3A3CVV5k3Z37NbgAu23oKA2OcHQNaRTLtqWlcBf9fk9suOkP1A3NzAqzivFpBnZm3ytaXwU8LBJqxOtNqZcFVruO6fZxJtg2uE34mAw=="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
user = {
|
||||||
|
email = organizationEmail;
|
||||||
|
name = realName;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
aliases = {
|
aliases = {
|
||||||
c = [ "commit" ];
|
c = [ "commit" ];
|
||||||
ci = [
|
ci = [
|
||||||
"commit"
|
"commit"
|
||||||
"--interactive"
|
"--interactive"
|
||||||
];
|
];
|
||||||
|
|
||||||
e = [ "edit" ];
|
e = [ "edit" ];
|
||||||
|
i = [
|
||||||
# "new bookmark"
|
"git"
|
||||||
|
"init"
|
||||||
|
"--colocate"
|
||||||
|
];
|
||||||
nb = [
|
nb = [
|
||||||
"bookmark"
|
"bookmark"
|
||||||
"create"
|
"create"
|
||||||
"-r @-"
|
"-r @-"
|
||||||
];
|
];
|
||||||
|
|
||||||
pull = [
|
pull = [
|
||||||
"git"
|
"git"
|
||||||
"fetch"
|
"fetch"
|
||||||
|
@ -84,14 +65,12 @@ let
|
||||||
"push"
|
"push"
|
||||||
"--allow-new"
|
"--allow-new"
|
||||||
];
|
];
|
||||||
|
|
||||||
r = [ "rebase" ];
|
r = [ "rebase" ];
|
||||||
s = [ "squash" ];
|
s = [ "squash" ];
|
||||||
si = [
|
si = [
|
||||||
"squash"
|
"squash"
|
||||||
"--interactive"
|
"--interactive"
|
||||||
];
|
];
|
||||||
|
|
||||||
tug = [
|
tug = [
|
||||||
"bookmark"
|
"bookmark"
|
||||||
"move"
|
"move"
|
||||||
|
@ -101,10 +80,17 @@ let
|
||||||
"@-"
|
"@-"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
revset-aliases = {
|
git.push-new-bookmarks = true;
|
||||||
"closest_bookmark(to)" = "heads(::to & bookmarks())";
|
revset-aliases."closest_bookmark(to)" = "heads(::to & bookmarks())";
|
||||||
|
signing = {
|
||||||
|
backend = "ssh";
|
||||||
|
behavior = "drop";
|
||||||
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPiRe9OH/VtWFWyy5QbAVcN7CLxr4zUtRCwmxD6aeN6";
|
||||||
|
};
|
||||||
|
template-aliases = {
|
||||||
|
"format_short_id(id)" = "id.shortest()";
|
||||||
|
"format_timestamp(timestamp)" = "timestamp.ago()";
|
||||||
};
|
};
|
||||||
|
|
||||||
templates = {
|
templates = {
|
||||||
draft_commit_description = ''
|
draft_commit_description = ''
|
||||||
concat(
|
concat(
|
||||||
|
@ -118,22 +104,27 @@ let
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
template-aliases = {
|
ui = {
|
||||||
"format_short_id(id)" = "id.shortest()";
|
default-command = "log";
|
||||||
|
diff-formatter = [
|
||||||
|
"${getExe pkgs.difftastic}"
|
||||||
|
"--color"
|
||||||
|
"always"
|
||||||
|
"$left"
|
||||||
|
"$right"
|
||||||
|
];
|
||||||
|
movement = {
|
||||||
|
edit = true;
|
||||||
|
};
|
||||||
|
pager = [
|
||||||
|
"${getExe pkgs.bat}"
|
||||||
|
"--plain"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
jj-wrapped = pkgs.symlinkJoin {
|
|
||||||
name = "jj-wrapped";
|
|
||||||
paths = [ pkgs.jj ];
|
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
||||||
postBuild = ''
|
|
||||||
wrapProgram $out/bin/mako --add-flags "\
|
|
||||||
--config ${jj-config}
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# environment.systemPackages = [jj-wrapped];
|
hjem.users.${username}.xdg.config.files."jj/config.toml".source = jj-config;
|
||||||
|
environment.systemPackages = attrValues { inherit (pkgs) jujutsu; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
loadInNixShell = true;
|
loadInNixShell = true;
|
||||||
|
|
||||||
enableBashIntegration = false;
|
enableBashIntegration = false;
|
||||||
enableFishIntegration = false;
|
enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = [pkgs.fish];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ in
|
||||||
boot = {
|
boot = {
|
||||||
tmp.useTmpfs = true;
|
tmp.useTmpfs = true;
|
||||||
consoleLogLevel = 0;
|
consoleLogLevel = 0;
|
||||||
|
enableContainers = false;
|
||||||
|
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"quiet"
|
"quiet"
|
||||||
|
|
|
@ -153,7 +153,7 @@ in
|
||||||
keep-derivations = true;
|
keep-derivations = true;
|
||||||
keep-outputs = true;
|
keep-outputs = true;
|
||||||
|
|
||||||
bash-prompt-suffix = "\[\033[m\]|\[\033[1;35m\]\t\[\033[m\]|\[\e[1m\]\u\[\e[1;36m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]:\[\e[0m\]\[\e[1;32m\][\W]> \[\e[0m\]";
|
# bash-prompt-suffix = "\[\033[m\]|\[\033[1;35m\]\t\[\033[m\]|\[\e[1m\]\u\[\e[1;36m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]:\[\e[0m\]\[\e[1;32m\][\W]> \[\e[0m\]";
|
||||||
|
|
||||||
# Use binary cache
|
# Use binary cache
|
||||||
builders-use-substitutes = true;
|
builders-use-substitutes = true;
|
||||||
|
|
|
@ -51,7 +51,7 @@ in
|
||||||
# Whether to expose old attribute names for compatibility.
|
# Whether to expose old attribute names for compatibility.
|
||||||
# This improves backwards compatibility,
|
# This improves backwards compatibility,
|
||||||
# which I could not care less about in my configuration.
|
# which I could not care less about in my configuration.
|
||||||
allowAliases = false;
|
allowAliases = true;
|
||||||
|
|
||||||
# List of derivation warnings to display while rebuilding.
|
# List of derivation warnings to display while rebuilding.
|
||||||
# See: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix>
|
# See: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/check-meta.nix>
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
{
|
{
|
||||||
"real_name": "ENC[AES256_GCM,data:R7Kac0dwMbxmCw4hpw==,iv:CijNtk8WiPlEwIg0OLu4ILLE2wh0W9HXm9OK9/Da+ng=,tag:NK2N6faooEknURwLuVP7OQ==,type:str]",
|
"real_name": "ENC[AES256_GCM,data:R7Kac0dwMbxmCw4hpw==,iv:CijNtk8WiPlEwIg0OLu4ILLE2wh0W9HXm9OK9/Da+ng=,tag:NK2N6faooEknURwLuVP7OQ==,type:str]",
|
||||||
"real_email": "ENC[AES256_GCM,data:wwXcdxZQDxt2gnWP1qf9cw==,iv:fkx0m72FF7pB15fHRxObsTaLdnkOsexCgzOyfpoGFmE=,tag:mj2/4cofrJSIOqdAWiWstg==,type:str]",
|
"real_email": "ENC[AES256_GCM,data:wwXcdxZQDxt2gnWP1qf9cw==,iv:fkx0m72FF7pB15fHRxObsTaLdnkOsexCgzOyfpoGFmE=,tag:mj2/4cofrJSIOqdAWiWstg==,type:str]",
|
||||||
"university_email": "ENC[AES256_GCM,data:WPy2AckQPWn+1OHJuTM=,iv:o2AT+RMUfCFVWaoD5D/GV5aq9kOgD/rCaHzwqYFIjig=,tag:KprTGSH2NvsrOCvhxLL/9w==,type:str]",
|
"university_email": "ENC[AES256_GCM,data:WPy2AckQPWn+1OHJuTM=,iv:o2AT+RMUfCFVWaoD5D/GV5aq9kOgD/rCaHzwqYFIjig=,tag:KprTGSH2NvsrOCvhxLL/9w==,type:str]",
|
||||||
"organization_short_name": "ENC[AES256_GCM,data:dTVFz51V,iv:5sUc4qUIu+QNzmWihAXgyfRwZAdjEq9/prJCxpB2jbg=,tag:r91kaPi6p4heizRy5duFrw==,type:str]",
|
"organization_short_name": "ENC[AES256_GCM,data:dTVFz51V,iv:5sUc4qUIu+QNzmWihAXgyfRwZAdjEq9/prJCxpB2jbg=,tag:r91kaPi6p4heizRy5duFrw==,type:str]",
|
||||||
"organization_email": "ENC[AES256_GCM,data:GNBt9fXxBkh3z8L+DeD/mhBz14mJjkeX1wk9rHkUTg==,iv:7/VLeL3s9/CL2VtDiWFJNx+VJuGsGamWbcIG/MxNlC8=,tag:/KOXA6gII3Wrmgd9wjhD+g==,type:str]",
|
"organization_email": "ENC[AES256_GCM,data:GNBt9fXxBkh3z8L+DeD/mhBz14mJjkeX1wk9rHkUTg==,iv:7/VLeL3s9/CL2VtDiWFJNx+VJuGsGamWbcIG/MxNlC8=,tag:/KOXA6gII3Wrmgd9wjhD+g==,type:str]",
|
||||||
"bitwarden_url": "ENC[AES256_GCM,data:vhEVMZwDyQhQtXYR1diLQIDf6urqu03VC+M=,iv:icG6ieX9WjAj5Y4DpmSJaBvcqjksll3tWtWE5psaK08=,tag:+tIURDxZxv6qXR8B/eVyfg==,type:str]",
|
"bitwarden_url": "ENC[AES256_GCM,data:vhEVMZwDyQhQtXYR1diLQIDf6urqu03VC+M=,iv:icG6ieX9WjAj5Y4DpmSJaBvcqjksll3tWtWE5psaK08=,tag:+tIURDxZxv6qXR8B/eVyfg==,type:str]",
|
||||||
"sops": {
|
"sops": {
|
||||||
"age": [
|
"age": [
|
||||||
{
|
{
|
||||||
"recipient": "age1a4jv2avdlj5zzq9p7ss9958t4wt3an95c3j86eclge7q2qc6n3wq4ucymc",
|
"recipient": "age1a4jv2avdlj5zzq9p7ss9958t4wt3an95c3j86eclge7q2qc6n3wq4ucymc",
|
||||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZzJqMmdzdklJVXBWaXFr\nTlJuVVIvTEhndkhyWWEvb1JzbnJuQ2NrTDI4ClVxYUNTSms2Y29xV3RkbTlFR0Fl\nS3p2dlFVTnp0bmhsRVk5eGJNR0s0SzAKLS0tIHpkTTJ4djg3K2FSNFM2RDFXbWd5\neFpsMUdRczZpSnY0eE41WGtyQmI2amMKx+TPSzzdaXWc24ibbbI44O0Tg23MlQk7\nypgcVAaG+Q1HyBH2hZ+6HNAXIvko4CvAQu2kjipN8kN1vVFVO7pM8A==\n-----END AGE ENCRYPTED FILE-----\n"
|
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZzJqMmdzdklJVXBWaXFr\nTlJuVVIvTEhndkhyWWEvb1JzbnJuQ2NrTDI4ClVxYUNTSms2Y29xV3RkbTlFR0Fl\nS3p2dlFVTnp0bmhsRVk5eGJNR0s0SzAKLS0tIHpkTTJ4djg3K2FSNFM2RDFXbWd5\neFpsMUdRczZpSnY0eE41WGtyQmI2amMKx+TPSzzdaXWc24ibbbI44O0Tg23MlQk7\nypgcVAaG+Q1HyBH2hZ+6HNAXIvko4CvAQu2kjipN8kN1vVFVO7pM8A==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"recipient": "age12neldqxts6h3zstmk5hvmn2pq8s9qfhkt7cjcdd9wygekqrmparq6djsff",
|
"recipient": "age12neldqxts6h3zstmk5hvmn2pq8s9qfhkt7cjcdd9wygekqrmparq6djsff",
|
||||||
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBL1ExSlArditYSytuUzNC\nMEpVSUVGbGhkNklmT1ZnK1VJWGxGZWlreUFNClU1NjdPdHNPRVlWa0tCdjRvRDNY\nMFpSajY0d21ZTnFVbDZkSG4yS3ZkZmMKLS0tIGdLK1B2TUZyWXVHNkhRWkVIRVFJ\nWEtpS2NEanIzR3YzVHhDOVc0WTgzdHcKXrFMFf5niLKK+oN2RbpH5wy/2SjDuP8O\nyxUdKX9R0Hu2ZPk4cJXwn/PZDNP1M3wFlPnF+kJ4bSBRzV+M51W2jw==\n-----END AGE ENCRYPTED FILE-----\n"
|
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBL1ExSlArditYSytuUzNC\nMEpVSUVGbGhkNklmT1ZnK1VJWGxGZWlreUFNClU1NjdPdHNPRVlWa0tCdjRvRDNY\nMFpSajY0d21ZTnFVbDZkSG4yS3ZkZmMKLS0tIGdLK1B2TUZyWXVHNkhRWkVIRVFJ\nWEtpS2NEanIzR3YzVHhDOVc0WTgzdHcKXrFMFf5niLKK+oN2RbpH5wy/2SjDuP8O\nyxUdKX9R0Hu2ZPk4cJXwn/PZDNP1M3wFlPnF+kJ4bSBRzV+M51W2jw==\n-----END AGE ENCRYPTED FILE-----\n"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"lastmodified": "2025-09-01T21:25:00Z",
|
"lastmodified": "2025-09-01T21:25:00Z",
|
||||||
"mac": "ENC[AES256_GCM,data:CUMEpOwIw+/RIOyr6aE2YVZiJLGY8FhMv0IOUIFV1kHveOEtAkNWbRzOV1o1cq9pA9ot0dKn4KZRLuUZ+uJzCrxwBHILBZMFksS0czSPgLfg0uz9mJ2u1pPjvoUcQRuIOUN1Id32zQ/W36nPEpR3J/Jomx5nCVNiFmZSteZCx+E=,iv:wGzjsGMJ72ejDCiHN6Xo1ZP5ho1F++WZrwE2YwCN8ns=,tag:Ev1xjuwta6KL8lnPbhliyw==,type:str]",
|
"mac": "ENC[AES256_GCM,data:CUMEpOwIw+/RIOyr6aE2YVZiJLGY8FhMv0IOUIFV1kHveOEtAkNWbRzOV1o1cq9pA9ot0dKn4KZRLuUZ+uJzCrxwBHILBZMFksS0czSPgLfg0uz9mJ2u1pPjvoUcQRuIOUN1Id32zQ/W36nPEpR3J/Jomx5nCVNiFmZSteZCx+E=,iv:wGzjsGMJ72ejDCiHN6Xo1ZP5ho1F++WZrwE2YwCN8ns=,tag:Ev1xjuwta6KL8lnPbhliyw==,type:str]",
|
||||||
"unencrypted_suffix": "_unencrypted",
|
"unencrypted_suffix": "_unencrypted",
|
||||||
"version": "3.10.2"
|
"version": "3.10.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
plain,
|
plain,
|
||||||
leaf,
|
leaf,
|
||||||
flag,
|
flag,
|
||||||
|
tagctl,
|
||||||
|
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (lib.meta) getExe getExe';
|
inherit (lib.meta) getExe getExe';
|
||||||
|
@ -57,8 +59,11 @@ in
|
||||||
})
|
})
|
||||||
])
|
])
|
||||||
|
|
||||||
|
(flag "prefer-no-csd")
|
||||||
|
(leaf "screenshot-path" "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png")
|
||||||
|
|
||||||
(plain "layout" [
|
(plain "layout" [
|
||||||
(leaf "gaps" 0)
|
(leaf "gaps" 15)
|
||||||
(leaf "center-focused-column" "on-overflow")
|
(leaf "center-focused-column" "on-overflow")
|
||||||
|
|
||||||
(plain "focus-ring" [
|
(plain "focus-ring" [
|
||||||
|
@ -115,7 +120,6 @@ in
|
||||||
(leaf "match" { namespace = "overview$"; })
|
(leaf "match" { namespace = "overview$"; })
|
||||||
(leaf "place-within-backdrop" true)
|
(leaf "place-within-backdrop" true)
|
||||||
])
|
])
|
||||||
(flag "prefer-no-csd")
|
|
||||||
(plain "switch-events" [
|
(plain "switch-events" [
|
||||||
(plain "lid-close" [
|
(plain "lid-close" [
|
||||||
(leaf "spawn" <| getExe pkgs.swaylock)
|
(leaf "spawn" <| getExe pkgs.swaylock)
|
||||||
|
@ -127,7 +131,7 @@ in
|
||||||
])
|
])
|
||||||
|
|
||||||
(plain "animations" [
|
(plain "animations" [
|
||||||
(flag "off")
|
# (flag "off")
|
||||||
(plain "window-close" [
|
(plain "window-close" [
|
||||||
(leaf "duration-ms" 250)
|
(leaf "duration-ms" 250)
|
||||||
(leaf "curve" "linear")
|
(leaf "curve" "linear")
|
||||||
|
@ -149,7 +153,6 @@ in
|
||||||
(leaf "draw-border-with-background" false)
|
(leaf "draw-border-with-background" false)
|
||||||
])
|
])
|
||||||
(plain "debug" [
|
(plain "debug" [
|
||||||
(flag "wait-for-frame-completion-in-pipewire")
|
|
||||||
])
|
])
|
||||||
(plain "hotkey-overlay" [
|
(plain "hotkey-overlay" [
|
||||||
(flag "skip-at-startup")
|
(flag "skip-at-startup")
|
||||||
|
@ -228,17 +231,62 @@ in
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
(plain "Mod+0" [ (leaf "spawn" [tagctl "toggle-tag" "0"]) ])
|
||||||
|
(plain "Mod+1" [ (leaf "spawn" [tagctl "toggle-tag" "1"]) ])
|
||||||
|
(plain "Mod+2" [ (leaf "spawn" [tagctl "toggle-tag" "2"]) ])
|
||||||
|
(plain "Mod+3" [ (leaf "spawn" [tagctl "toggle-tag" "3"]) ])
|
||||||
|
(plain "Mod+4" [ (leaf "spawn" [tagctl "toggle-tag" "4"]) ])
|
||||||
|
(plain "Mod+5" [ (leaf "spawn" [tagctl "toggle-tag" "5"]) ])
|
||||||
|
(plain "Mod+6" [ (leaf "spawn" [tagctl "toggle-tag" "6"]) ])
|
||||||
|
(plain "Mod+7" [ (leaf "spawn" [tagctl "toggle-tag" "7"]) ])
|
||||||
|
(plain "Mod+8" [ (leaf "spawn" [tagctl "toggle-tag" "8"]) ])
|
||||||
|
(plain "Mod+9" [ (leaf "spawn" [tagctl "toggle-tag" "9"]) ])
|
||||||
|
|
||||||
|
# (plain "Mod+0" [ (leaf "focus-workspace" 0) ])
|
||||||
|
# (plain "Mod+1" [ (leaf "focus-workspace" 1) ])
|
||||||
|
# (plain "Mod+2" [ (leaf "focus-workspace" 2) ])
|
||||||
|
# (plain "Mod+3" [ (leaf "focus-workspace" 3) ])
|
||||||
|
# (plain "Mod+4" [ (leaf "focus-workspace" 4) ])
|
||||||
|
# (plain "Mod+5" [ (leaf "focus-workspace" 5) ])
|
||||||
|
# (plain "Mod+6" [ (leaf "focus-workspace" 6) ])
|
||||||
|
# (plain "Mod+7" [ (leaf "focus-workspace" 7) ])
|
||||||
|
# (plain "Mod+8" [ (leaf "focus-workspace" 8) ])
|
||||||
|
# (plain "Mod+9" [ (leaf "focus-workspace" 9) ])
|
||||||
|
#
|
||||||
|
(plain "Mod+Shift+0" [ (leaf "spawn" [tagctl "toggle" "0"]) ])
|
||||||
|
(plain "Mod+Shift+1" [ (leaf "spawn" [tagctl "toggle" "1"]) ])
|
||||||
|
(plain "Mod+Shift+2" [ (leaf "spawn" [tagctl "toggle" "2"]) ])
|
||||||
|
(plain "Mod+Shift+3" [ (leaf "spawn" [tagctl "toggle" "3"]) ])
|
||||||
|
(plain "Mod+Shift+4" [ (leaf "spawn" [tagctl "toggle" "4"]) ])
|
||||||
|
(plain "Mod+Shift+5" [ (leaf "spawn" [tagctl "toggle" "5"]) ])
|
||||||
|
(plain "Mod+Shift+6" [ (leaf "spawn" [tagctl "toggle" "6"]) ])
|
||||||
|
(plain "Mod+Shift+7" [ (leaf "spawn" [tagctl "toggle" "7"]) ])
|
||||||
|
(plain "Mod+Shift+8" [ (leaf "spawn" [tagctl "toggle" "8"]) ])
|
||||||
|
(plain "Mod+Shift+9" [ (leaf "spawn" [tagctl "toggle" "9"]) ])
|
||||||
|
|
||||||
|
# (plain "Mod+Shift+0" [ (leaf "move-column-to-workspace" 0) ])
|
||||||
|
# (plain "Mod+Shift+1" [ (leaf "move-column-to-workspace" 1) ])
|
||||||
|
# (plain "Mod+Shift+2" [ (leaf "move-column-to-workspace" 2) ])
|
||||||
|
# (plain "Mod+Shift+3" [ (leaf "move-column-to-workspace" 3) ])
|
||||||
|
# (plain "Mod+Shift+4" [ (leaf "move-column-to-workspace" 4) ])
|
||||||
|
# (plain "Mod+Shift+5" [ (leaf "move-column-to-workspace" 5) ])
|
||||||
|
# (plain "Mod+Shift+6" [ (leaf "move-column-to-workspace" 6) ])
|
||||||
|
# (plain "Mod+Shift+7" [ (leaf "move-column-to-workspace" 7) ])
|
||||||
|
# (plain "Mod+Shift+8" [ (leaf "move-column-to-workspace" 8) ])
|
||||||
|
# (plain "Mod+Shift+9" [ (leaf "move-column-to-workspace" 9) ])
|
||||||
|
|
||||||
|
(plain "Mod+Ctrl+0" [ (leaf "spawn" [tagctl "exclusive-tag" "0"]) ])
|
||||||
|
(plain "Mod+Ctrl+1" [ (leaf "spawn" [tagctl "exclusive-tag" "1"]) ])
|
||||||
|
(plain "Mod+Ctrl+2" [ (leaf "spawn" [tagctl "exclusive-tag" "2"]) ])
|
||||||
|
(plain "Mod+Ctrl+3" [ (leaf "spawn" [tagctl "exclusive-tag" "3"]) ])
|
||||||
|
(plain "Mod+Ctrl+4" [ (leaf "spawn" [tagctl "exclusive-tag" "4"]) ])
|
||||||
|
(plain "Mod+Ctrl+5" [ (leaf "spawn" [tagctl "exclusive-tag" "5"]) ])
|
||||||
|
(plain "Mod+Ctrl+6" [ (leaf "spawn" [tagctl "exclusive-tag" "6"]) ])
|
||||||
|
(plain "Mod+Ctrl+7" [ (leaf "spawn" [tagctl "exclusive-tag" "7"]) ])
|
||||||
|
(plain "Mod+Ctrl+8" [ (leaf "spawn" [tagctl "exclusive-tag" "8"]) ])
|
||||||
|
(plain "Mod+Ctrl+9" [ (leaf "spawn" [tagctl "exclusive-tag" "9"]) ])
|
||||||
|
|
||||||
(plain "Ctrl+Print" [ (flag "screenshot-screen") ])
|
(plain "Ctrl+Print" [ (flag "screenshot-screen") ])
|
||||||
(plain "Mod+0" [ (leaf "focus-workspace" 0) ])
|
|
||||||
(plain "Mod+1" [ (leaf "focus-workspace" 1) ])
|
|
||||||
(plain "Mod+2" [ (leaf "focus-workspace" 2) ])
|
|
||||||
(plain "Mod+3" [ (leaf "focus-workspace" 3) ])
|
|
||||||
(plain "Mod+4" [ (leaf "focus-workspace" 4) ])
|
|
||||||
(plain "Mod+5" [ (leaf "focus-workspace" 5) ])
|
|
||||||
(plain "Mod+6" [ (leaf "focus-workspace" 6) ])
|
|
||||||
(plain "Mod+7" [ (leaf "focus-workspace" 7) ])
|
|
||||||
(plain "Mod+8" [ (leaf "focus-workspace" 8) ])
|
|
||||||
(plain "Mod+9" [ (leaf "focus-workspace" 9) ])
|
|
||||||
(plain "Mod+Alt+L" [ (leaf "spawn" <| getExe pkgs.swaylock) ])
|
(plain "Mod+Alt+L" [ (leaf "spawn" <| getExe pkgs.swaylock) ])
|
||||||
(plain "Mod+B" [ (leaf "spawn" <| getExe pkgs.brave) ])
|
(plain "Mod+B" [ (leaf "spawn" <| getExe pkgs.brave) ])
|
||||||
(plain "Mod+BracketLeft" [ (flag "consume-or-expel-window-left") ])
|
(plain "Mod+BracketLeft" [ (flag "consume-or-expel-window-left") ])
|
||||||
|
@ -259,27 +307,17 @@ in
|
||||||
(plain "Mod+F" [ (flag "maximize-column") ])
|
(plain "Mod+F" [ (flag "maximize-column") ])
|
||||||
(plain "Mod+H" [ (flag "focus-column-or-monitor-left") ])
|
(plain "Mod+H" [ (flag "focus-column-or-monitor-left") ])
|
||||||
(plain "Mod+Home" [ (flag "focus-column-first") ])
|
(plain "Mod+Home" [ (flag "focus-column-first") ])
|
||||||
(plain "Mod+I" [ (flag "focus-workspace-up") ])
|
# (plain "Mod+I" [ (flag "focus-workspace-up") ])
|
||||||
(plain "Mod+J" [ (flag "focus-window-or-workspace-down") ])
|
(plain "Mod+J" [ (flag "focus-window-or-workspace-down") ])
|
||||||
(plain "Mod+K" [ (flag "focus-window-or-workspace-up") ])
|
(plain "Mod+K" [ (flag "focus-window-or-workspace-up") ])
|
||||||
(plain "Mod+L" [ (flag "focus-column-or-monitor-right") ])
|
(plain "Mod+L" [ (flag "focus-column-or-monitor-right") ])
|
||||||
(plain "Mod+Minus" [ (leaf "set-column-width" [ "-10%" ]) ])
|
(plain "Mod+Minus" [ (leaf "set-column-width" [ "-10%" ]) ])
|
||||||
(plain "Mod+O" [ (flag "toggle-overview") ])
|
(plain "Mod+O" [ (flag "toggle-overview") ])
|
||||||
(plain "Mod+Page_Down" [ (flag "focus-workspace-down") ])
|
# (plain "Mod+Page_Down" [ (flag "focus-workspace-down") ])
|
||||||
(plain "Mod+Page_Up" [ (flag "focus-workspace-up") ])
|
# (plain "Mod+Page_Up" [ (flag "focus-workspace-up") ])
|
||||||
(plain "Mod+Period" [ (flag "expel-window-from-column") ])
|
(plain "Mod+Period" [ (flag "expel-window-from-column") ])
|
||||||
(plain "Mod+Q" [ (flag "close-window") ])
|
(plain "Mod+Q" [ (flag "close-window") ])
|
||||||
(plain "Mod+R" [ (flag "switch-preset-column-width") ])
|
(plain "Mod+R" [ (flag "switch-preset-column-width") ])
|
||||||
(plain "Mod+Shift+0" [ (leaf "move-column-to-workspace" 0) ])
|
|
||||||
(plain "Mod+Shift+1" [ (leaf "move-column-to-workspace" 1) ])
|
|
||||||
(plain "Mod+Shift+2" [ (leaf "move-column-to-workspace" 2) ])
|
|
||||||
(plain "Mod+Shift+3" [ (leaf "move-column-to-workspace" 3) ])
|
|
||||||
(plain "Mod+Shift+4" [ (leaf "move-column-to-workspace" 4) ])
|
|
||||||
(plain "Mod+Shift+5" [ (leaf "move-column-to-workspace" 5) ])
|
|
||||||
(plain "Mod+Shift+6" [ (leaf "move-column-to-workspace" 6) ])
|
|
||||||
(plain "Mod+Shift+7" [ (leaf "move-column-to-workspace" 7) ])
|
|
||||||
(plain "Mod+Shift+8" [ (leaf "move-column-to-workspace" 8) ])
|
|
||||||
(plain "Mod+Shift+9" [ (leaf "move-column-to-workspace" 9) ])
|
|
||||||
(plain "Mod+Shift+Ctrl+Down" [ (flag "move-column-to-monitor-down") ])
|
(plain "Mod+Shift+Ctrl+Down" [ (flag "move-column-to-monitor-down") ])
|
||||||
(plain "Mod+Shift+Ctrl+H" [ (flag "move-column-to-monitor-left") ])
|
(plain "Mod+Shift+Ctrl+H" [ (flag "move-column-to-monitor-left") ])
|
||||||
(plain "Mod+Shift+Ctrl+J" [ (flag "move-column-to-monitor-down") ])
|
(plain "Mod+Shift+Ctrl+J" [ (flag "move-column-to-monitor-down") ])
|
||||||
|
@ -292,29 +330,29 @@ in
|
||||||
(plain "Mod+Shift+Equal" [ (leaf "set-window-height" [ "+10%" ]) ])
|
(plain "Mod+Shift+Equal" [ (leaf "set-window-height" [ "+10%" ]) ])
|
||||||
(plain "Mod+Shift+F" [ (flag "fullscreen-window") ])
|
(plain "Mod+Shift+F" [ (flag "fullscreen-window") ])
|
||||||
(plain "Mod+Shift+H" [ (flag "move-column-left-or-to-monitor-left") ])
|
(plain "Mod+Shift+H" [ (flag "move-column-left-or-to-monitor-left") ])
|
||||||
(plain "Mod+Shift+I" [ (flag "move-column-to-workspace-up") ])
|
# (plain "Mod+Shift+I" [ (flag "move-column-to-workspace-up") ])
|
||||||
(plain "Mod+Shift+J" [ (flag "move-window-down-or-to-workspace-down") ])
|
# (plain "Mod+Shift+J" [ (flag "move-window-down-or-to-workspace-down") ])
|
||||||
(plain "Mod+Shift+K" [ (flag "move-window-up-or-to-workspace-up") ])
|
# (plain "Mod+Shift+K" [ (flag "move-window-up-or-to-workspace-up") ])
|
||||||
(plain "Mod+Shift+L" [ (flag "move-column-right-or-to-monitor-right") ])
|
(plain "Mod+Shift+L" [ (flag "move-column-right-or-to-monitor-right") ])
|
||||||
(plain "Mod+Shift+Minus" [ (leaf "set-window-height" [ "-10%" ]) ])
|
(plain "Mod+Shift+Minus" [ (leaf "set-window-height" [ "-10%" ]) ])
|
||||||
(plain "Mod+Shift+Page_Down" [ (flag "move-column-to-workspace-down") ])
|
# (plain "Mod+Shift+Page_Down" [ (flag "move-column-to-workspace-down") ])
|
||||||
(plain "Mod+Shift+Page_Up" [ (flag "move-column-to-workspace-up") ])
|
(plain "Mod+Shift+Page_Up" [ (flag "move-column-to-workspace-up") ])
|
||||||
(plain "Mod+Shift+P" [ (flag "power-off-monitors") ])
|
(plain "Mod+Shift+P" [ (flag "power-off-monitors") ])
|
||||||
(plain "Mod+Shift+R" [ (flag "switch-preset-window-height") ])
|
(plain "Mod+Shift+R" [ (flag "switch-preset-window-height") ])
|
||||||
(plain "Mod+Shift+U" [ (flag "move-column-to-workspace-down") ])
|
# (plain "Mod+Shift+U" [ (flag "move-column-to-workspace-down") ])
|
||||||
(plain "Mod+Shift+V" [ (flag "switch-focus-between-floating-and-tiling") ])
|
(plain "Mod+Shift+V" [ (flag "switch-focus-between-floating-and-tiling") ])
|
||||||
(plain "Mod+Shift+WheelScrollDown" [ (flag "move-column-to-workspace-down") ])
|
# (plain "Mod+Shift+WheelScrollDown" [ (flag "move-column-to-workspace-down") ])
|
||||||
(plain "Mod+Shift+WheelScrollLeft" [ (flag "move-column-left") ])
|
(plain "Mod+Shift+WheelScrollLeft" [ (flag "move-column-left") ])
|
||||||
(plain "Mod+Shift+WheelScrollRight" [ (flag "move-column-right") ])
|
(plain "Mod+Shift+WheelScrollRight" [ (flag "move-column-right") ])
|
||||||
(plain "Mod+Shift+WheelScrollUp" [ (flag "move-column-to-workspace-up") ])
|
# (plain "Mod+Shift+WheelScrollUp" [ (flag "move-column-to-workspace-up") ])
|
||||||
(plain "Mod+T" [ (flag "screenshot") ])
|
(plain "Mod+T" [ (flag "screenshot") ])
|
||||||
(plain "Mod+U" [ (flag "focus-workspace-down") ])
|
(plain "Mod+U" [ (flag "focus-workspace-down") ])
|
||||||
(plain "Mod+V" [ (flag "toggle-window-floating") ])
|
(plain "Mod+V" [ (flag "toggle-window-floating") ])
|
||||||
(plain "Mod+W" [ (flag "toggle-column-tabbed-display") ])
|
(plain "Mod+W" [ (flag "toggle-column-tabbed-display") ])
|
||||||
(plain "Mod+WheelScrollDown" [ (flag "focus-workspace-down") ])
|
# (plain "Mod+WheelScrollDown" [ (flag "focus-workspace-down") ])
|
||||||
(plain "Mod+WheelScrollLeft" [ (flag "focus-column-left") ])
|
(plain "Mod+WheelScrollLeft" [ (flag "focus-column-left") ])
|
||||||
(plain "Mod+WheelScrollRight" [ (flag "focus-column-right") ])
|
(plain "Mod+WheelScrollRight" [ (flag "focus-column-right") ])
|
||||||
(plain "Mod+WheelScrollUp" [ (flag "focus-workspace-up") ])
|
# (plain "Mod+WheelScrollUp" [ (flag "focus-workspace-up") ])
|
||||||
(plain "Print" [ (flag "screenshot") ])
|
(plain "Print" [ (flag "screenshot") ])
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
|
@ -7,8 +8,13 @@
|
||||||
let
|
let
|
||||||
inherit (lib.modules) mkForce mkIf;
|
inherit (lib.modules) mkForce mkIf;
|
||||||
inherit (lib.options) mkEnableOption;
|
inherit (lib.options) mkEnableOption;
|
||||||
|
inherit (lib.meta) getExe';
|
||||||
inherit (config.modules.system) isGraphical;
|
inherit (config.modules.system) isGraphical;
|
||||||
inherit (config.meta.mainUser) username;
|
inherit (config.meta.mainUser) username;
|
||||||
|
inherit (lib) getFlakePkg';
|
||||||
|
|
||||||
|
niri-tag = inputs.niri-tag.packages.${builtins.currentSystem}.unstable;
|
||||||
|
tagctl = getExe' niri-tag "tagctl";
|
||||||
|
|
||||||
cfg = config.modules.desktops.niri;
|
cfg = config.modules.desktops.niri;
|
||||||
|
|
||||||
|
@ -50,21 +56,31 @@ let
|
||||||
flag
|
flag
|
||||||
lib
|
lib
|
||||||
pkgs
|
pkgs
|
||||||
|
tagctl
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.niri-tag.nixosModules.niri-tag
|
||||||
|
inputs.niri.nixosModules.niri
|
||||||
|
];
|
||||||
options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor";
|
options.modules.desktops.niri.enable = mkEnableOption "Niri, a scolling tiling wayland compositor";
|
||||||
|
|
||||||
config = mkIf (cfg.enable || isGraphical) {
|
config = mkIf (cfg.enable || isGraphical) {
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.niri;
|
# package = pkgs.niri;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
# The niri module auto enables the gnome keyring,
|
||||||
|
# which is something I direly want to avoid.
|
||||||
|
gnome.gnome-keyring.enable = mkForce false;
|
||||||
|
niri-tag = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
# The niri module auto enables the gnome keyring,
|
|
||||||
# which is something I direly want to avoid.
|
|
||||||
services.gnome.gnome-keyring.enable = mkForce false;
|
|
||||||
|
|
||||||
hjem.users.${username}.files.".config/niri/config.kdl".source = niri-config;
|
hjem.users.${username}.files.".config/niri/config.kdl".source = niri-config;
|
||||||
|
|
||||||
|
|
|
@ -11,30 +11,33 @@ in
|
||||||
{
|
{
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
|
# Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1.
|
||||||
# This will make xdg-open use the portal to open programs,
|
# This will make xdg-open use the portal to open programs,
|
||||||
# which resolves bugs involving programs opening inside FHS envs
|
# which resolves bugs involving programs opening inside FHS envs
|
||||||
# or with unexpected env vars set from wrappers.
|
# or with unexpected env vars set from wrappers.
|
||||||
# See #160923 for more info.
|
# See #160923 for more info.
|
||||||
xdgOpenUsePortal = true;
|
xdgOpenUsePortal = true;
|
||||||
|
|
||||||
extraPortals = [
|
extraPortals = [
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
pkgs.kdePackages.xdg-desktop-portal-kde
|
|
||||||
pkgs.xdg-desktop-portal-gnome
|
pkgs.xdg-desktop-portal-gnome
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
];
|
];
|
||||||
config = {
|
config = {
|
||||||
niri = {
|
common = {
|
||||||
default = [
|
default = [
|
||||||
"gnome"
|
"gnome"
|
||||||
"gtk"
|
"gtk"
|
||||||
"kde"
|
|
||||||
];
|
];
|
||||||
# Portal API reference:
|
"org.freedesktop.impl.portal.Secret" = [
|
||||||
# https://docs.flatpak.org/en/latest/portal-api-reference.html
|
"gnome-keyring"
|
||||||
# "org.freedesktop.impl.portal.Access" = ["kde"];
|
];
|
||||||
# "org.freedesktop.impl.portal.Notification" = ["kde"];
|
|
||||||
"org.freedesktop.impl.portal.FileChooser" = [ "kde" ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share/xdg-desktop-portal"
|
||||||
|
"/share/applications"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue