feat: nvidia Hyprland
This commit is contained in:
parent
8e13adac78
commit
3a77d31b6d
6 changed files with 55 additions and 9 deletions
|
|
@ -61,9 +61,10 @@
|
||||||
"nvim . (.*)": " $1",
|
"nvim . (.*)": " $1",
|
||||||
"\\(\\d+\\) Discord (.*)": " $1",
|
"\\(\\d+\\) Discord (.*)": " $1",
|
||||||
"(.*) - YouTube — Mozilla Firefox": " $1",
|
"(.*) - YouTube — Mozilla Firefox": " $1",
|
||||||
|
"(.*)\\pdf — Mozilla Firefox": " $1",
|
||||||
"(.*) — Mozilla Firefox": " $1",
|
"(.*) — Mozilla Firefox": " $1",
|
||||||
"(.*) - VLC media player": " $1",
|
"(.*) - VLC media player": " $1",
|
||||||
"(.*) - YouTube Music — Mozilla Firefox": " $1"
|
"(.*) - YouTube Music — Mozilla Firefox": " $1",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@
|
||||||
"pin, class:^(vesktop)$,title:^(Discord Popout)$"
|
"pin, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||||
"float, class:^(steam)$,title:^(Friends List)$"
|
"float, class:^(steam)$,title:^(Friends List)$"
|
||||||
|
|
||||||
# Workspace assign
|
# Steam
|
||||||
"workspace: 5, class: ^(steam)$"
|
"workspace: 5 silent, class: ^(steam)$"
|
||||||
|
|
||||||
# Line
|
# Line
|
||||||
"workspace: 2, initialTitle: ^(LINE)$"
|
"workspace: 2, initialTitle: ^(LINE)$"
|
||||||
|
|
@ -62,4 +62,3 @@
|
||||||
"ignorealpha 0.1, swaync-notification-window"
|
"ignorealpha 0.1, swaync-notification-window"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,8 @@ in
|
||||||
''HYPRCURSOR_SIZE, ${hyprcursor-size}''
|
''HYPRCURSOR_SIZE, ${hyprcursor-size}''
|
||||||
''XCURSOR_THEME, ${cursorName}''
|
''XCURSOR_THEME, ${cursorName}''
|
||||||
''XCURSOR_SIZE, ${xcursor-size}''
|
''XCURSOR_SIZE, ${xcursor-size}''
|
||||||
|
''XDG_CURRENT_DESKTOP, Hyprland''
|
||||||
|
''XDG_SESSION_DESKTOP, Hyprland''
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
// window
|
// window
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,19 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/windows" = {
|
||||||
|
device = "/dev/disk/by-uuid/460237D00237C429";
|
||||||
|
fsType = "ntfs-3g";
|
||||||
|
options = [
|
||||||
|
"nofail"
|
||||||
|
"uid=1000"
|
||||||
|
"gid=1000"
|
||||||
|
"dmask=077"
|
||||||
|
"fmask=077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "ntfs" ];
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
||||||
# Enable F keys in some wireless keyboard (Ex. neo65)
|
# Enable F keys in some wireless keyboard (Ex. neo65)
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
let
|
let
|
||||||
hyprcursor-size = "32";
|
hyprcursor-size = "32";
|
||||||
xcursor-size = "24";
|
xcursor-size = "24";
|
||||||
nvidia-mode = "rsync";
|
nvidia-mode = "offload";
|
||||||
# Get bus id with `lshw`
|
# Get bus id with `lshw`
|
||||||
intel-bus-id = "PCI:0:2:0";
|
intel-bus-id = "PCI:0:2:0";
|
||||||
nvidia-bus-id = "PCI:1:0:0";
|
nvidia-bus-id = "PCI:1:0:0";
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ let
|
||||||
"sync"
|
"sync"
|
||||||
"rsync"
|
"rsync"
|
||||||
];
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
|
@ -20,8 +21,6 @@ in
|
||||||
|
|
||||||
# Nvidia offload mode
|
# Nvidia offload mode
|
||||||
let
|
let
|
||||||
validString = lib.concatStringsSep ", " validModes;
|
|
||||||
|
|
||||||
offload = pkgs.writeShellScriptBin "offload" ''
|
offload = pkgs.writeShellScriptBin "offload" ''
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||||
|
|
@ -30,6 +29,23 @@ let
|
||||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||||
exec "$@"
|
exec "$@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
mk_uwsm_desktop_entry =
|
||||||
|
opts:
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "${opts.name}-uwsm";
|
||||||
|
text = ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=${opts.prettyName} (Offload UWSM)
|
||||||
|
Comment=${opts.comment}
|
||||||
|
Exec=${offload}/bin/offload ${lib.getExe config.programs.uwsm.package} start -S -F ${opts.binPath}
|
||||||
|
Type=Application
|
||||||
|
'';
|
||||||
|
destination = "/share/wayland-sessions/${opts.name}-uwsm.desktop";
|
||||||
|
derivationArgs = {
|
||||||
|
passthru.providedSessions = [ "${opts.name}-uwsm" ];
|
||||||
|
};
|
||||||
|
});
|
||||||
in
|
in
|
||||||
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
environment.systemPackages = [ offload ];
|
environment.systemPackages = [ offload ];
|
||||||
|
|
@ -58,7 +74,7 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
nvidia.modesetting.enable = true;
|
nvidia.modesetting.enable = true;
|
||||||
|
|
||||||
nvidia.powerManagement.enable = true;
|
nvidia.powerManagement.enable = true;
|
||||||
nvidia.powerManagement.finegrained = true;
|
nvidia.powerManagement.finegrained = if nvidia-mode == "sync" then false else true;
|
||||||
|
|
||||||
nvidia.nvidiaSettings = true;
|
nvidia.nvidiaSettings = true;
|
||||||
nvidia.dynamicBoost.enable = true;
|
nvidia.dynamicBoost.enable = true;
|
||||||
|
|
@ -106,5 +122,20 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
NVD_BACKEND = "direct";
|
NVD_BACKEND = "direct";
|
||||||
MOZ_DISABLE_RDD_SANDBOX = 1;
|
MOZ_DISABLE_RDD_SANDBOX = 1;
|
||||||
|
OGL_DEDICATED_HW_STATE_PER_CONTEXT = "ENABLE_ROBUST";
|
||||||
|
INTEL_GPU_MIN_FREQ_ON_AC = "500";
|
||||||
|
# If multiple monitors are connected to eGPU & iGPU,
|
||||||
|
# make sure to put the iGPU first
|
||||||
|
AQ_DRM_DEVICES = "/dev/dri/card1:/dev/dri/card0";
|
||||||
|
};
|
||||||
|
|
||||||
|
# NOTE: You need set "env XDG_CURRENT_DESKTOP, Hyprland" in hyprland config
|
||||||
|
# Otherwise you got XDG_CURRENT_DESKTOP="offload:Hyprland" which may cause problems
|
||||||
|
programs.uwsm.waylandCompositors = lib.mkForce {
|
||||||
|
hyprland = {
|
||||||
|
prettyName = "Hyprland";
|
||||||
|
comment = "Hyprland compositor managed by UWSM";
|
||||||
|
binPath = "${offload}/bin/offload /run/current-system/sw/bin/Hyprland";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue