mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-01-11 22:30:25 +01:00
feat: environment variables for wayland & nvidia
This commit is contained in:
@@ -6,8 +6,25 @@
|
||||
{
|
||||
imports = [
|
||||
./anyrun.nix
|
||||
./nvidia.nix
|
||||
];
|
||||
|
||||
# wayland related
|
||||
home.sessionVariables = {
|
||||
"NIXOS_OZONE_WL" = "1"; # for any ozone-based browser & electron apps to run on wayland
|
||||
"MOZ_ENABLE_WAYLAND" = "1"; # for firefox to run on wayland
|
||||
"MOZ_WEBRENDER" = "1";
|
||||
# enable native Wayland support for most Electron apps
|
||||
"ELECTRON_OZONE_PLATFORM_HINT" = "auto";
|
||||
# misc
|
||||
"_JAVA_AWT_WM_NONREPARENTING" = "1";
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION" = "1";
|
||||
"QT_QPA_PLATFORM" = "wayland";
|
||||
"SDL_VIDEODRIVER" = "wayland";
|
||||
"GDK_BACKEND" = "wayland";
|
||||
"XDG_SESSION_TYPE" = "wayland";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
swaybg # the wallpaper
|
||||
wl-clipboard # copying and pasting
|
||||
|
||||
26
home/linux/gui/base/desktop/nvidia.nix
Normal file
26
home/linux/gui/base/desktop/nvidia.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop.nvidia;
|
||||
in
|
||||
{
|
||||
options.modules.desktop.nvidia = {
|
||||
enable = mkEnableOption "whether nvidia GPU is used";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable && cfg.enable) {
|
||||
home.sessionVariables = {
|
||||
# for hyprland with nvidia gpu" = " ref https://wiki.hyprland.org/Nvidia/
|
||||
"LIBVA_DRIVER_NAME" = "nvidia";
|
||||
"__GLX_VENDOR_LIBRARY_NAME" = "nvidia";
|
||||
# VA-API hardware video acceleration
|
||||
"NVD_BACKEND" = "direct";
|
||||
|
||||
"GBM_BACKEND" = "nvidia-drm";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -9,10 +9,6 @@ let
|
||||
cfg = config.modules.desktop.hyprland;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./options
|
||||
];
|
||||
|
||||
options.modules.desktop.hyprland = {
|
||||
enable = mkEnableOption "hyprland compositor";
|
||||
settings = lib.mkOption {
|
||||
@@ -38,14 +34,11 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (
|
||||
mkMerge (
|
||||
[
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = cfg.settings;
|
||||
}
|
||||
]
|
||||
++ (import ./values args)
|
||||
)
|
||||
);
|
||||
config = mkIf cfg.enable (mkMerge ([
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = cfg.settings;
|
||||
}
|
||||
(import ./hyprland.nix args)
|
||||
(import ./xdg.nix args)
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -36,16 +36,7 @@ in
|
||||
"${configPath}/windowrules.conf"
|
||||
];
|
||||
env = [
|
||||
"NIXOS_OZONE_WL,1" # for any ozone-based browser & electron apps to run on wayland
|
||||
"MOZ_ENABLE_WAYLAND,1" # for firefox to run on wayland
|
||||
"MOZ_WEBRENDER,1"
|
||||
# misc
|
||||
"_JAVA_AWT_WM_NONREPARENTING,1"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
"QT_QPA_PLATFORM,wayland"
|
||||
"SDL_VIDEODRIVER,wayland"
|
||||
"GDK_BACKEND,wayland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
|
||||
];
|
||||
};
|
||||
# gammastep/wallpaper-switcher need this to be enabled.
|
||||
@@ -1,4 +0,0 @@
|
||||
{ mylib, ... }:
|
||||
{
|
||||
imports = mylib.scanPaths ./.;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop.hyprland;
|
||||
in
|
||||
{
|
||||
options.modules.desktop.hyprland = {
|
||||
nvidia = mkEnableOption "whether nvidia GPU is used";
|
||||
};
|
||||
|
||||
config = mkIf (cfg.enable && cfg.nvidia) {
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
# for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
# enable native Wayland support for most Electron apps
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
||||
# VA-API hardware video acceleration
|
||||
"NVD_BACKEND,direct"
|
||||
|
||||
"GBM_BACKEND,nvidia-drm"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{ mylib, ... }@args: map (path: import path args) (mylib.scanPaths ./.)
|
||||
@@ -209,15 +209,6 @@ in
|
||||
(leaf "center-focused-column" "never")
|
||||
])
|
||||
|
||||
# You can override environment variables for processes spawned by niri.
|
||||
(plain "environment" [
|
||||
# Set a variable like this:
|
||||
(leaf "QT_QPA_PLATFORM" "wayland")
|
||||
|
||||
# Remove a variable by using null as the value:
|
||||
# (leaf "DISPLAY" null)
|
||||
])
|
||||
|
||||
(plain "cursor" [
|
||||
# Change the theme and size of the cursor as well as set the
|
||||
# `XCURSOR_THEME` and `XCURSOR_SIZE` env variables.
|
||||
|
||||
@@ -6,12 +6,10 @@ in
|
||||
programs.ssh.matchBlocks."github.com".identityFile =
|
||||
"${config.home.homeDirectory}/.ssh/${hostName}";
|
||||
|
||||
modules.desktop.hyprland = {
|
||||
nvidia = false;
|
||||
settings.source = [
|
||||
"${config.home.homeDirectory}/nix-config/hosts/12kingdoms-shoukei/hypr-hardware.conf"
|
||||
];
|
||||
};
|
||||
modules.desktop.nvidia.enable = false;
|
||||
modules.desktop.hyprland.settings.source = [
|
||||
"${config.home.homeDirectory}/nix-config/hosts/12kingdoms-shoukei/hypr-hardware.conf"
|
||||
];
|
||||
|
||||
modules.desktop.niri = {
|
||||
settings =
|
||||
|
||||
@@ -2,12 +2,11 @@
|
||||
{
|
||||
programs.ssh.matchBlocks."github.com".identityFile = "${config.home.homeDirectory}/.ssh/idols-ai";
|
||||
|
||||
modules.desktop.hyprland = {
|
||||
nvidia = true;
|
||||
settings.source = [
|
||||
"${config.home.homeDirectory}/nix-config/hosts/idols-ai/hypr-hardware.conf"
|
||||
];
|
||||
};
|
||||
modules.desktop.nvidia.enable = true;
|
||||
|
||||
modules.desktop.hyprland.settings.source = [
|
||||
"${config.home.homeDirectory}/nix-config/hosts/idols-ai/hypr-hardware.conf"
|
||||
];
|
||||
|
||||
modules.desktop.niri = {
|
||||
settings =
|
||||
|
||||
Reference in New Issue
Block a user