Compare commits
5 commits
cf486d7735
...
74f429e7a3
Author | SHA1 | Date | |
---|---|---|---|
74f429e7a3 | |||
01068a6179 | |||
2c4a1aba76 | |||
aed3cf8b1a | |||
d1fb8dcc5a |
9 changed files with 116 additions and 25 deletions
|
@ -57,7 +57,8 @@
|
||||||
hyprpaper = flake "github:hyprwm/hyprpaper" // unstable "nixpkgs";
|
hyprpaper = flake "github:hyprwm/hyprpaper" // unstable "nixpkgs";
|
||||||
hyprpicker = flake "github:hyprwm/hyprpicker" // unstable "nixpkgs";
|
hyprpicker = flake "github:hyprwm/hyprpicker" // unstable "nixpkgs";
|
||||||
jovian-nixos = flake "github:Jovian-Experiments/Jovian-NixOS" // unstable "nixpkgs";
|
jovian-nixos = flake "github:Jovian-Experiments/Jovian-NixOS" // unstable "nixpkgs";
|
||||||
niri = flake "github:sodiboo/niri-flake" // unstable "nixpkgs";
|
niri = flake "github:YaLTeR/niri/floating" // unstable "nixpkgs";
|
||||||
|
niri-flake = flake "github:sodiboo/niri-flake" // unstable "nixpkgs";
|
||||||
nix-flatpak = flake "github:gmodena/nix-flatpak?ref=v0.5.1";
|
nix-flatpak = flake "github:gmodena/nix-flatpak?ref=v0.5.1";
|
||||||
nix-index-database-unstable = flake "github:nix-community/nix-index-database" // unstable "nixpkgs";
|
nix-index-database-unstable = flake "github:nix-community/nix-index-database" // unstable "nixpkgs";
|
||||||
nix-vscode-extensions = flake "github:nix-community/nix-vscode-extensions" // unstable "nixpkgs";
|
nix-vscode-extensions = flake "github:nix-community/nix-vscode-extensions" // unstable "nixpkgs";
|
||||||
|
@ -119,7 +120,7 @@
|
||||||
inputs.arion.nixosModules.arion
|
inputs.arion.nixosModules.arion
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
inputs.fw-fanctrl.nixosModules.default
|
inputs.fw-fanctrl.nixosModules.default
|
||||||
inputs.niri.nixosModules.niri
|
inputs.niri-flake.nixosModules.niri
|
||||||
inputs.stylix.nixosModules.stylix
|
inputs.stylix.nixosModules.stylix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
80
flake.lock
generated
80
flake.lock
generated
|
@ -1902,6 +1902,29 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"niri": {
|
"niri": {
|
||||||
|
"inputs": {
|
||||||
|
"nix-filter": "nix-filter_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735378372,
|
||||||
|
"narHash": "sha256-9zu4bScVN5ej7ljxZpdm3BCt7eiPr0jZNFLDUFRr8Z8=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "28f4e5e1abc41c953ae6f93035a0b1006bd52bcb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "floating",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-flake": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"niri-stable": "niri-stable",
|
"niri-stable": "niri-stable",
|
||||||
"niri-unstable": "niri-unstable",
|
"niri-unstable": "niri-unstable",
|
||||||
|
@ -1913,11 +1936,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734836603,
|
"lastModified": 1735381519,
|
||||||
"narHash": "sha256-aRB/OEMtWwv1fVMhIJdGzt1emRrn001AamOtsXglAU0=",
|
"narHash": "sha256-Nti4KlTGglrdaO/9WM3SOr12mbgI9EquYXLZ11vyGTI=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "9afc24d82ebabdd2b0b7dba8a5f1ce1b42a81fc1",
|
"rev": "95351433dd401ddd764ad5745c8211ddc36a9a8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1946,11 +1969,11 @@
|
||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734725239,
|
"lastModified": 1735303376,
|
||||||
"narHash": "sha256-ItBmHHSikVrkkh2wD6U0A8pxG1Tk0s90pH9RlK9OB/A=",
|
"narHash": "sha256-LhKE5o5R6LDhfdoJ0xh2qODcw6nLUv14n3dvsazIito=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "b014c267ae199f7022bf691333e64ad6d05907f1",
|
"rev": "4e357e9659e5aafeec3cdeb18581698716d97a78",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -2003,6 +2026,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-filter_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533336,
|
||||||
|
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "nix-filter",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733228754,
|
"lastModified": 1733228754,
|
||||||
|
@ -2337,16 +2375,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_4": {
|
"nixpkgs-stable_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734529975,
|
"lastModified": 1735264675,
|
||||||
"narHash": "sha256-ze3IJksru9dN0keqUxY0WNf8xrwfs8Ty/z9v/keyBbg=",
|
"narHash": "sha256-MgdXpeX2GuJbtlBrH9EdsUeWl/yXEubyvxM1G+yO4Ak=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "72d11d40b9878a67c38f003c240c2d2e1811e72a",
|
"rev": "d49da4c08359e3c39c4e27c74ac7ac9b70085966",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -2548,6 +2586,7 @@
|
||||||
"jovian-nixos": "jovian-nixos",
|
"jovian-nixos": "jovian-nixos",
|
||||||
"lifx-cli": "lifx-cli",
|
"lifx-cli": "lifx-cli",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
|
"niri-flake": "niri-flake",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nix-index-database-stable": "nix-index-database-stable",
|
"nix-index-database-stable": "nix-index-database-stable",
|
||||||
"nix-index-database-unstable": "nix-index-database-unstable",
|
"nix-index-database-unstable": "nix-index-database-unstable",
|
||||||
|
@ -2581,6 +2620,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"niri",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735352767,
|
||||||
|
"narHash": "sha256-3zXufMRWUdwmp8/BTmxVW/k4MyqsPjLnnt/IlQyZvhc=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "a16b9a7cac7f4d39a84234d62e91890370c57d76",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"steamtinkerlaunch": {
|
"steamtinkerlaunch": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
|
@ -96,6 +96,10 @@
|
||||||
url = "github:Rawa/lifx-cli";
|
url = "github:Rawa/lifx-cli";
|
||||||
};
|
};
|
||||||
niri = {
|
niri = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
url = "github:YaLTeR/niri/floating";
|
||||||
|
};
|
||||||
|
niri-flake = {
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
url = "github:sodiboo/niri-flake";
|
url = "github:sodiboo/niri-flake";
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,6 +39,7 @@ in {
|
||||||
wallpaper = mkOption {default = false;};
|
wallpaper = mkOption {default = false;};
|
||||||
|
|
||||||
browser = {
|
browser = {
|
||||||
|
# TODO: Use lib.getExe' instead of /bin/ where possible
|
||||||
# HACK: Find first matching package in final home-manager list
|
# HACK: Find first matching package in final home-manager list
|
||||||
command = mkOption {
|
command = mkOption {
|
||||||
default = "${lib.findFirst (pkg:
|
default = "${lib.findFirst (pkg:
|
||||||
|
|
|
@ -113,6 +113,7 @@ in {
|
||||||
(key "E" "Ctrl+Alt" (spawn [pkill "codium"]))
|
(key "E" "Ctrl+Alt" (spawn [pkill "codium"]))
|
||||||
(key "E" "Mod" (spawn codium))
|
(key "E" "Mod" (spawn codium))
|
||||||
(key "Equal" "Mod" (spawn [swayosd-client "--output-volume" "raise"]))
|
(key "Equal" "Mod" (spawn [swayosd-client "--output-volume" "raise"]))
|
||||||
|
(key "Escape" "Mod" toggle-window-floating)
|
||||||
(key "Escape" "Mod+Alt" (spawn ["lifx" "state" "--color" "red"]))
|
(key "Escape" "Mod+Alt" (spawn ["lifx" "state" "--color" "red"]))
|
||||||
(key "F" "Mod" (spawn [nautilus "--new-window"]))
|
(key "F" "Mod" (spawn [nautilus "--new-window"]))
|
||||||
(key "G" "Ctrl+Alt" (spawn [pkill "steam"]))
|
(key "G" "Ctrl+Alt" (spawn [pkill "steam"]))
|
||||||
|
@ -145,6 +146,7 @@ in {
|
||||||
(key "Space" "Ctrl+Alt" (spawn ["lifx" "toggle"]))
|
(key "Space" "Ctrl+Alt" (spawn ["lifx" "toggle"]))
|
||||||
(key "T" "Ctrl+Alt" (spawn [pkill "kitty"]))
|
(key "T" "Ctrl+Alt" (spawn [pkill "kitty"]))
|
||||||
(key "T" "Mod" (spawn kitty))
|
(key "T" "Mod" (spawn kitty))
|
||||||
|
(key "Tab" "Mod" switch-focus-between-floating-and-tiling)
|
||||||
(key "Up" "Mod" (spawn [swayosd-client "--brightness" "raise"]))
|
(key "Up" "Mod" (spawn [swayosd-client "--brightness" "raise"]))
|
||||||
(key "V" "Mod" (spawn virt-manager))
|
(key "V" "Mod" (spawn virt-manager))
|
||||||
(key "V" "Mod+Ctrl" (spawn vm))
|
(key "V" "Mod+Ctrl" (spawn vm))
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.custom.desktops.niri;
|
cfg = config.custom.desktops.niri;
|
||||||
|
|
||||||
|
# TODO: Use let bindings for hm config everywhere
|
||||||
|
hm = config.home-manager.users.${config.custom.username};
|
||||||
in {
|
in {
|
||||||
options.custom.desktops.niri = {
|
options.custom.desktops.niri = {
|
||||||
enable = mkOption {default = false;};
|
enable = mkOption {default = false;};
|
||||||
|
@ -35,10 +38,11 @@ in {
|
||||||
# https://github.com/sodiboo/niri-flake/blob/main/docs.md
|
# https://github.com/sodiboo/niri-flake/blob/main/docs.md
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.niri; # nixpkgs
|
#// package = pkgs.niri; # nixpkgs
|
||||||
|
package = inputs.niri.packages.${pkgs.system}.default;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [inputs.niri.overlays.niri];
|
nixpkgs.overlays = [inputs.niri-flake.overlays.niri];
|
||||||
|
|
||||||
#!! Disabled bundled KDE polkit agent
|
#!! Disabled bundled KDE polkit agent
|
||||||
# https://github.com/sodiboo/niri-flake?tab=readme-ov-file#additional-notes
|
# https://github.com/sodiboo/niri-flake?tab=readme-ov-file#additional-notes
|
||||||
|
@ -48,7 +52,24 @@ in {
|
||||||
custom.services.xwayland-satellite.enable = cfg.xwayland;
|
custom.services.xwayland-satellite.enable = cfg.xwayland;
|
||||||
|
|
||||||
home-manager.users.${config.custom.username} = {
|
home-manager.users.${config.custom.username} = {
|
||||||
programs.niri.package = config.programs.niri.package;
|
programs.niri = {
|
||||||
|
package = config.programs.niri.package;
|
||||||
|
|
||||||
|
# https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
|
||||||
|
# HACK: Prepend validated kdl config not currently implemented in settings module for e.g. custom build
|
||||||
|
# https://github.com/sodiboo/niri-flake/blob/main/settings.nix
|
||||||
|
config = with inputs.niri-flake.lib;
|
||||||
|
(internal.settings-module {config = hm;}).options.programs.niri.config.default
|
||||||
|
# https://github.com/sodiboo/niri-flake/blob/main/default-config.kdl.nix
|
||||||
|
++ (with kdl; [
|
||||||
|
# TODO: Migrate to niri.settings when released
|
||||||
|
# https://github.com/YaLTeR/niri/pull/871
|
||||||
|
(plain "window-rule" [
|
||||||
|
(leaf "match" {title = "^Picture.in.[Pp]icture$";})
|
||||||
|
(leaf "open-floating" true)
|
||||||
|
])
|
||||||
|
]);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,11 +46,13 @@ in {
|
||||||
config.home-manager.users.${config.custom.username}.home.sessionVariables;
|
config.home-manager.users.${config.custom.username}.home.sessionVariables;
|
||||||
|
|
||||||
# https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#cursor
|
# https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#cursor
|
||||||
cursor = with config.home-manager.users.${config.custom.username}.home.pointerCursor; {
|
cursor = with config.home-manager.users.${config.custom.username}.gtk.cursorTheme; {
|
||||||
|
# Inherit home-manager GTK settings
|
||||||
inherit size;
|
inherit size;
|
||||||
|
theme = name;
|
||||||
|
|
||||||
hide-after-inactive-ms = 1000 * 15; # Milliseconds
|
hide-after-inactive-ms = 1000 * 15; # Milliseconds
|
||||||
hide-when-typing = true;
|
hide-when-typing = true;
|
||||||
theme = name;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#hotkey-overlay
|
# https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#hotkey-overlay
|
||||||
|
|
|
@ -15,7 +15,7 @@ in {
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
font = "${config.gtk.font.name}:size=12";
|
font = "${config.custom.sans-serif}:size=12";
|
||||||
icon-theme = config.gtk.iconTheme.name;
|
icon-theme = config.gtk.iconTheme.name;
|
||||||
horizontal-pad = 20;
|
horizontal-pad = 20;
|
||||||
inner-pad = 12;
|
inner-pad = 12;
|
||||||
|
|
|
@ -10,13 +10,6 @@ in {
|
||||||
options.custom.settings.gtk.enable = mkOption {default = false;};
|
options.custom.settings.gtk.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
home.pointerCursor = {
|
|
||||||
gtk.enable = true; # Propagate attributes to gtk.cursorTheme
|
|
||||||
size = 24;
|
|
||||||
name = "GoogleDot-Black";
|
|
||||||
package = pkgs.google-cursor;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = let
|
gtk = let
|
||||||
css = readFile ./style.css;
|
css = readFile ./style.css;
|
||||||
in {
|
in {
|
||||||
|
@ -38,6 +31,13 @@ in {
|
||||||
package = pkgs.papirus-icon-theme;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# BUG: home.pointerCursor breaks XCURSOR_PATH for some child windows, so avoid that workaround
|
||||||
|
cursorTheme = {
|
||||||
|
size = 24;
|
||||||
|
name = "GoogleDot-Black";
|
||||||
|
package = pkgs.google-cursor;
|
||||||
|
};
|
||||||
|
|
||||||
theme = {
|
theme = {
|
||||||
name = "adw-gtk3-dark";
|
name = "adw-gtk3-dark";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue