mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-11 07:02:41 +02:00
feat: environment variables for wayland & nvidia
This commit is contained in:
@@ -6,8 +6,25 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./anyrun.nix
|
./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; [
|
home.packages = with pkgs; [
|
||||||
swaybg # the wallpaper
|
swaybg # the wallpaper
|
||||||
wl-clipboard # copying and pasting
|
wl-clipboard # copying and pasting
|
||||||
|
|||||||
@@ -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;
|
cfg = config.modules.desktop.hyprland;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
|
||||||
./options
|
|
||||||
];
|
|
||||||
|
|
||||||
options.modules.desktop.hyprland = {
|
options.modules.desktop.hyprland = {
|
||||||
enable = mkEnableOption "hyprland compositor";
|
enable = mkEnableOption "hyprland compositor";
|
||||||
settings = lib.mkOption {
|
settings = lib.mkOption {
|
||||||
@@ -38,14 +34,11 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (
|
config = mkIf cfg.enable (mkMerge ([
|
||||||
mkMerge (
|
{
|
||||||
[
|
wayland.windowManager.hyprland.settings = cfg.settings;
|
||||||
{
|
}
|
||||||
wayland.windowManager.hyprland.settings = cfg.settings;
|
(import ./hyprland.nix args)
|
||||||
}
|
(import ./xdg.nix args)
|
||||||
]
|
]));
|
||||||
++ (import ./values args)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,16 +36,7 @@ in
|
|||||||
"${configPath}/windowrules.conf"
|
"${configPath}/windowrules.conf"
|
||||||
];
|
];
|
||||||
env = [
|
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.
|
# 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")
|
(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" [
|
(plain "cursor" [
|
||||||
# Change the theme and size of the cursor as well as set the
|
# Change the theme and size of the cursor as well as set the
|
||||||
# `XCURSOR_THEME` and `XCURSOR_SIZE` env variables.
|
# `XCURSOR_THEME` and `XCURSOR_SIZE` env variables.
|
||||||
|
|||||||
@@ -6,12 +6,10 @@ in
|
|||||||
programs.ssh.matchBlocks."github.com".identityFile =
|
programs.ssh.matchBlocks."github.com".identityFile =
|
||||||
"${config.home.homeDirectory}/.ssh/${hostName}";
|
"${config.home.homeDirectory}/.ssh/${hostName}";
|
||||||
|
|
||||||
modules.desktop.hyprland = {
|
modules.desktop.nvidia.enable = false;
|
||||||
nvidia = false;
|
modules.desktop.hyprland.settings.source = [
|
||||||
settings.source = [
|
"${config.home.homeDirectory}/nix-config/hosts/12kingdoms-shoukei/hypr-hardware.conf"
|
||||||
"${config.home.homeDirectory}/nix-config/hosts/12kingdoms-shoukei/hypr-hardware.conf"
|
];
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
modules.desktop.niri = {
|
modules.desktop.niri = {
|
||||||
settings =
|
settings =
|
||||||
|
|||||||
@@ -2,12 +2,11 @@
|
|||||||
{
|
{
|
||||||
programs.ssh.matchBlocks."github.com".identityFile = "${config.home.homeDirectory}/.ssh/idols-ai";
|
programs.ssh.matchBlocks."github.com".identityFile = "${config.home.homeDirectory}/.ssh/idols-ai";
|
||||||
|
|
||||||
modules.desktop.hyprland = {
|
modules.desktop.nvidia.enable = true;
|
||||||
nvidia = true;
|
|
||||||
settings.source = [
|
modules.desktop.hyprland.settings.source = [
|
||||||
"${config.home.homeDirectory}/nix-config/hosts/idols-ai/hypr-hardware.conf"
|
"${config.home.homeDirectory}/nix-config/hosts/idols-ai/hypr-hardware.conf"
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
modules.desktop.niri = {
|
modules.desktop.niri = {
|
||||||
settings =
|
settings =
|
||||||
|
|||||||
Reference in New Issue
Block a user