- Create home/hyprland/default.nix module with configurable options - Add support for monitors, extraEnv, streamcontroller, lockhelper, grimblast, wacom - Add workspace strategy (numbered vs named per monitor) - Update magicman config to use new module with minimal config - Update gunter config to use new module with all customizations - Remove deprecated Hyprland config files - Significantly reduce duplication between host configs - Both configurations build successfully
99 lines
2.8 KiB
Nix
99 lines
2.8 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
user,
|
|
...
|
|
}:
|
|
{
|
|
imports = [ inputs.home-manager.nixosModules.home-manager ];
|
|
home-manager = {
|
|
useUserPackages = true;
|
|
useGlobalPkgs = true;
|
|
extraSpecialArgs = {
|
|
inherit pkgs inputs user;
|
|
};
|
|
users.${user} =
|
|
{ pkgs, ... }:
|
|
{
|
|
imports = [
|
|
inputs.sops-nix.homeManagerModules.sops
|
|
../../editor/neovim
|
|
../../hyprland
|
|
../../packages
|
|
../../programs/dunst
|
|
../../programs/git
|
|
../../programs/firefox
|
|
../../programs/kitty
|
|
../../programs/obs-studio
|
|
../../programs/rofi
|
|
../../programs/tmux
|
|
../../programs/vscode
|
|
../../scripts
|
|
../../services/backup-home.nix
|
|
../../services/ghettoptt.nix
|
|
../../services/natstonotify.nix
|
|
../../sops
|
|
../../ssh
|
|
../../zsh
|
|
];
|
|
|
|
firefox.enable = true;
|
|
tmux.enable = true;
|
|
hyprland.enable = true;
|
|
|
|
hyprland.monitors = [
|
|
"$mon_top,1920x1080@60,2560x0,1"
|
|
"$mon_left,2560x1440@75,0x1080,1"
|
|
"$mon_center,2560x1440@120,2560x1080,1"
|
|
"$mon_right,2560x1440@75,5120x1080,1"
|
|
];
|
|
|
|
hyprland.extraEnv = [
|
|
"LIBVA_DRIVER_NAME,nvidia"
|
|
"GBM_BACKEND,nvidia-drm"
|
|
"WLR_NO_HARDWARE_CURSORS,1"
|
|
];
|
|
|
|
hyprland.enableStreamController = true;
|
|
hyprland.useLockHelper = true;
|
|
hyprland.enableGrimblast = true;
|
|
hyprland.enableWacom = true;
|
|
hyprland.cursorNoHardware = true;
|
|
hyprland.workspaceStrategy = "named";
|
|
|
|
hyprland.monitorVariables = {
|
|
"$mon_top" = "desc:BNQ G2420HDBL T2B04424SL000";
|
|
"$mon_left" = "desc:Samsung Electric Company LS27A600U HNMT502389";
|
|
"$mon_center" = "desc:Acer Technologies XB271HU #ASPVEKfgZ8Dd";
|
|
"$mon_right" = "desc:Samsung Electric Company LS27A600U HNMT502390";
|
|
};
|
|
|
|
hyprland.lockMonitorNames = [
|
|
"BNQ G2420HDBL T2B04424SL000"
|
|
"Samsung Electric Company LS27A600U HNMT502389"
|
|
"Acer Technologies XB271HU #ASPVEKfgZ8Dd"
|
|
"Samsung Electric Company LS27A600U HNMT502390"
|
|
];
|
|
|
|
hyprland.extraKeybinds = [
|
|
"$mainMod,Print,exec,grimblast save active ~/tmp/$(date -Iseconds).png"
|
|
"$shiftMainMod,Print,exec,grimblast copy area"
|
|
",Print,exec,grimblast copy active"
|
|
"$mainMod,v,exec,sleep 0.5s && wl-paste | wtype -"
|
|
];
|
|
home = {
|
|
username = "${user}";
|
|
homeDirectory = "/home/${user}";
|
|
stateVersion = "23.11";
|
|
};
|
|
programs.home-manager.enable = true;
|
|
|
|
# Custom options
|
|
torjus.home.obs = {
|
|
enable = true;
|
|
withCuda = true;
|
|
};
|
|
};
|
|
};
|
|
}
|