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",
|
||||
"\\(\\d+\\) Discord (.*)": " $1",
|
||||
"(.*) - YouTube — Mozilla Firefox": " $1",
|
||||
"(.*)\\pdf — Mozilla Firefox": " $1",
|
||||
"(.*) — Mozilla Firefox": " $1",
|
||||
"(.*) - VLC media player": " $1",
|
||||
"(.*) - YouTube Music — Mozilla Firefox": " $1"
|
||||
"(.*) - YouTube Music — Mozilla Firefox": " $1",
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@
|
|||
"pin, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||
"float, class:^(steam)$,title:^(Friends List)$"
|
||||
|
||||
# Workspace assign
|
||||
"workspace: 5, class: ^(steam)$"
|
||||
# Steam
|
||||
"workspace: 5 silent, class: ^(steam)$"
|
||||
|
||||
# Line
|
||||
"workspace: 2, initialTitle: ^(LINE)$"
|
||||
"float, initialTitle: ^(LINE)$"
|
||||
|
||||
# VLC
|
||||
# VLC
|
||||
"workspace: 3, initialClass: ^(vlc)"
|
||||
];
|
||||
|
||||
|
|
@ -62,4 +62,3 @@
|
|||
"ignorealpha 0.1, swaync-notification-window"
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ in
|
|||
''HYPRCURSOR_SIZE, ${hyprcursor-size}''
|
||||
''XCURSOR_THEME, ${cursorName}''
|
||||
''XCURSOR_SIZE, ${xcursor-size}''
|
||||
''XDG_CURRENT_DESKTOP, Hyprland''
|
||||
''XDG_SESSION_DESKTOP, Hyprland''
|
||||
];
|
||||
}
|
||||
// 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;
|
||||
|
||||
# Enable F keys in some wireless keyboard (Ex. neo65)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
let
|
||||
hyprcursor-size = "32";
|
||||
xcursor-size = "24";
|
||||
nvidia-mode = "rsync";
|
||||
nvidia-mode = "offload";
|
||||
# Get bus id with `lshw`
|
||||
intel-bus-id = "PCI:0:2:0";
|
||||
nvidia-bus-id = "PCI:1:0:0";
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ let
|
|||
"sync"
|
||||
"rsync"
|
||||
];
|
||||
|
||||
in
|
||||
{
|
||||
config,
|
||||
|
|
@ -20,8 +21,6 @@ in
|
|||
|
||||
# Nvidia offload mode
|
||||
let
|
||||
validString = lib.concatStringsSep ", " validModes;
|
||||
|
||||
offload = pkgs.writeShellScriptBin "offload" ''
|
||||
#!/bin/bash
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
|
|
@ -30,6 +29,23 @@ let
|
|||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||
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
|
||||
lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
||||
environment.systemPackages = [ offload ];
|
||||
|
|
@ -58,7 +74,7 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
|||
nvidia.modesetting.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.dynamicBoost.enable = true;
|
||||
|
|
@ -106,5 +122,20 @@ lib.checkListOfEnum "Nvidia Prime Mode" validModes [ nvidia-mode ] {
|
|||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
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