fix biri package and switch laptop to use it rather than niri

This commit is contained in:
greyweather committed 2026-09-03 18:13:42 +01:00
1 parent f9e9f7e817
commit f508d6aa54
7 files changed
+85 -34

No files matched your search

@@ -0,0 +1,40 @@
{ inputs, self, ... }: {
flake.nixosModules.graphics = { config, pkgs, lib, ... }: {
config = lib.mkIf (builtins.elem "biri" config.components.windowManagers) {
environment.systemPackages = with pkgs; [
xdg-desktop-portal-gnome
wl-clipboard
libsecret
cage
wev
qalculate-qt
];
features.applications.gui.nautilus.enable = true;
services.upower.enable = true;
services.udisks2.enable = true;
programs.niri = {
enable = true;
useNautilus = true;
# override niri source to use https://github.com/barrulus/biri
package = self.packages.${pkgs.stdenv.hostPlatform.system}.biri;
};
home-manager.users.${config.info.userName} = lib.mkIf (config.features.nixos.home-manager.enable) {
components.windowManagers = [ "niri" ];
};
};
};
flake.homeModules.graphics = { config, pkgs, lib, inputs, ... }: {
home = lib.mkIf ((config.components.windowManagers == "biri")||(builtins.elem "biri" config.components.windowManagers)) {
activation.linkNiriConfig = lib.hm.dag.entryAfter ["writeBoundary"] (inputs.helpers.mkSymlinkActivationScript {
target = "${config.xdg.configHome}/niri/config.kdl";
source = "${config.info.rootPath}/dotfiles/${config.info.hostName}/niri.kdl";
});
};
};
}
+1 -1
View File
@@ -1,6 +1,6 @@
{ inputs, self, ... }: { { inputs, self, ... }: {
flake.nixosModules.graphics = { config, pkgs, lib, ... }: { flake.nixosModules.graphics = { config, pkgs, lib, ... }: {
config = lib.mkIf ((config.components.windowManagers == "niri")||(builtins.elem "niri" config.components.windowManagers)) { config = lib.mkIf (builtins.elem "niri" config.components.windowManagers) {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
xdg-desktop-portal-gnome xdg-desktop-portal-gnome
wl-clipboard wl-clipboard
+13
View File
@@ -31,6 +31,19 @@
file = inputs.helpers.localBinFromStringAttrs config.features.applications.shellScripts; file = inputs.helpers.localBinFromStringAttrs config.features.applications.shellScripts;
}; };
programs.sftpman = lib.mkIf (config.info.hostName != "sakamoto") {
enable = true;
mounts = {
sakamoto = {
host = "sakamoto";
mountDestPath = "/home/grey/mounts/ssh/sakamoto";
mountPoint = "/";
sshKey = "/home/grey/.ssh/id_sakamoto";
user = "grey";
};
};
};
targets.genericLinux.enable = config.info.isStandalone; targets.genericLinux.enable = config.info.isStandalone;
xdg = { xdg = {
+18 -2
View File
@@ -16,8 +16,8 @@
components = { components = {
bootLoader.selection = "limine"; bootLoader.selection = "limine";
displayManager = "ly"; displayManager = "ly";
windowManagers = "niri"; windowManagers = [ "biri" ];
shells = "noctalia"; shells = [ "noctalia" ];
}; };
features = { features = {
@@ -53,6 +53,8 @@
}; };
}; };
stylix.targets.nixos-icons.enable = false;
nix.buildMachines = [ nix.buildMachines = [
{ {
hostName = "nixremote"; hostName = "nixremote";
@@ -107,6 +109,7 @@
kdePackages.filelight kdePackages.filelight
kdePackages.kate kdePackages.kate
loupe loupe
sshfs
]; ];
}; };
}; };
@@ -118,6 +121,19 @@
]; ];
*/ */
programs.sftpman = {
enable = true;
mounts = {
takamaki = {
host = "takamaki";
mountDestPath = "/home/grey/mounts/ssh/takamaki";
mountPoint = "/";
sshKey = "/home/grey/.ssh/id_takamaki";
user = "grey";
};
};
};
services.udiskie = { services.udiskie = {
enable = true; enable = true;
settings = { settings = {
-13
View File
@@ -23,19 +23,6 @@
stateVersion = "26.11"; stateVersion = "26.11";
}; };
programs.sftpman = {
enable = true;
mounts = {
sakamoto = {
host = "sakamoto";
mountDestPath = "/home/grey/mounts/ssh/sakamoto";
mountPoint = "/";
sshKey = "/home/grey/.ssh/id_sakamoto";
user = "grey";
};
};
};
services.gpg-agent = { services.gpg-agent = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
+4 -4
View File
@@ -3,14 +3,14 @@
options = { options = {
components = { components = {
windowManagers = lib.mkOption { windowManagers = lib.mkOption {
type = inputs.helpers.mkOptionalListOfType (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/window-managers"); type = lib.types.listOf (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/window-managers");
description = "Defines the window manager(s) that should be installed, enabling any config associated with them in the process. It can be either a list or just one value."; description = "Defines the window managers that should be installed, enabling any config associated with them in the process.";
default = []; default = [];
}; };
shells = lib.mkOption { shells = lib.mkOption {
type = inputs.helpers.mkOptionalListOfType (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/shells"); type = lib.types.listOf (inputs.helpers.mkEnumFromDirContents "${self}/modules/components/shells");
description = "Defines the graphical shell(s) that should be installed (e.g. Noctalia, DMS), enabling any config associated with them in the process. It can be either a list or just one value."; description = "Defines the graphical shells that should be installed (e.g. Noctalia, DMS), enabling any config associated with them in the process.";
default = []; default = [];
}; };
}; };
+9 -14
View File
@@ -1,40 +1,35 @@
{ inputs, self, ... }: { { inputs, self, ... }: {
perSystem = { pkgs, ... }: { perSystem = { pkgs, ... }: {
packages = let packages = let
finalAttrs = rec { overrideAttrs = with pkgs; finalAttrs: prevAttrs: {
name = "${pname}-${version}"; name = "${finalAttrs.pname}-${finalAttrs.version}";
pname = "biri"; pname = "biri";
version = "26.04"; version = "26.04";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "barrulus"; owner = "barrulus";
repo = pname; repo = finalAttrs.pname;
rev = "82efb3c0fb688a0c738d15517a2e6a44ed7ca703"; rev = "82efb3c0fb688a0c738d15517a2e6a44ed7ca703";
hash = "sha256-Gg4UHnugGnVZifxfKRUnxt3T+DSPgUvHEfE9tflA5zM="; hash = "sha256-Gg4UHnugGnVZifxfKRUnxt3T+DSPgUvHEfE9tflA5zM=";
}; };
cargoHash = "sha256-aNovCzrTtmqTO33YtZap47npdN73zXC1bap5q5dZvZk="; cargoHash = "sha256-aNovCzrTtmqTO33YtZap47npdN73zXC1bap5q5dZvZk=";
};
overrideAttrs = with pkgs; prev: { cargoDeps = rustPlatform.fetchCargoVendor {
rustPlatform = prev.rustPlatform // { inherit (finalAttrs) pname src version;
buildRustPackage = args: pkgs.rustPlatform.buildRustPackage (args finalAttrs // finalAttrs); hash = finalAttrs.cargoHash;
}; };
}; };
in { in {
biri = pkgs.niri.override (prev: overrideAttrs prev); biri = (pkgs.niri.overrideAttrs (final: prev: overrideAttrs final prev));
biri-unwrapped = pkgs.niri.override (prev: (overrideAttrs prev) // { biri-unwrapped = (pkgs.niri.overrideAttrs (final: prev: (overrideAttrs final prev) // {
rustPlatform = (overrideAttrs prev).rustPlatform // {
buildRustPackage = args: pkgs.rustPlatform.buildRustPackage (args finalAttrs // {
postInstall = '' postInstall = ''
install -Dm0644 README.md resources/default-config.kdl -t $doc/share/doc/niri install -Dm0644 README.md resources/default-config.kdl -t $doc/share/doc/niri
mv docs/wiki $doc/share/doc/niri/wiki mv docs/wiki $doc/share/doc/niri/wiki
cp -r . $out cp -r . $out
''; '';
}); }));
};
});
}; };
}; };
} }