universedesktop: DWL & Nvidia Fix
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
{ config, pkgs, lib, ... }: let
|
{ config, pkgs, lib, ... }: let
|
||||||
|
empttyConf = pkgs.writeText "emptty-config" ''
|
||||||
|
TTY_NUMBER=7
|
||||||
|
|
||||||
|
WAYLAND_SESSIONS_PATH="${config.services.xserver.displayManager.sessionData.desktops}/share/wayland-sessions"
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./dwl.nix
|
./dwl.nix
|
||||||
@@ -11,11 +15,27 @@ in {
|
|||||||
};
|
};
|
||||||
systemd.services.display-manager = {
|
systemd.services.display-manager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
path = [pkgs.dwl];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
EnvironmentFile=${./emptty.conf};
|
EnvironmentFile = empttyConf;
|
||||||
Type="idle";
|
Type="idle";
|
||||||
TTYPath="/dev/tty7";
|
TTYPath="/dev/tty7";
|
||||||
TTYReset="yes";
|
TTYReset="yes";
|
||||||
|
SendSIGHUP="yes";
|
||||||
|
KillMode="process";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.etc."emptty/conf".source = empttyConf;
|
||||||
|
|
||||||
|
services.displayManager.sessionPackages = [ pkgs.dwl ];
|
||||||
|
|
||||||
|
security.pam.services = {
|
||||||
|
emptty.text = ''
|
||||||
|
auth substack sshd
|
||||||
|
account include sshd
|
||||||
|
password substack sshd
|
||||||
|
session include sshd
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,14 @@
|
|||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: let
|
||||||
|
dwl-startup = pkgs.writeScript "dwl-startup.sh" ''
|
||||||
|
#!${pkgs.bash}/bin/bash
|
||||||
|
${pkgs.yambar}/bin/yambar
|
||||||
|
'';
|
||||||
|
|
||||||
|
launch_emacs = pkgs.writeScript "emacsclient-or-start" ''
|
||||||
|
#!${pkgs.bash}/bin/bash
|
||||||
|
emacsclient --create-frame --alternate-editor=""
|
||||||
|
'';
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./wayland.nix
|
./wayland.nix
|
||||||
];
|
];
|
||||||
@@ -7,11 +17,32 @@
|
|||||||
(final: prev: {
|
(final: prev: {
|
||||||
dwl = prev.dwl.overrideAttrs (old: {
|
dwl = prev.dwl.overrideAttrs (old: {
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
termcmd=${pkgs.foot}/bin/foot
|
export termcmd=${pkgs.foot}/bin/foot
|
||||||
menucmd=${pkgs.bemenu}/bin/bemenu
|
export editcmd=${launch_emacs}
|
||||||
|
export menucmd=${pkgs.fuzzel}/bin/fuzzel
|
||||||
substituteAll ${./dwl/config.def.h} ./config.def.h
|
substituteAll ${./dwl/config.def.h} ./config.def.h
|
||||||
'';
|
'';
|
||||||
|
postInstall = ''
|
||||||
|
sed -i "s#Exec=dwl#Exec=dwl -s ${dwl-startup}#" $out/share/wayland-sessions/dwl.desktop
|
||||||
|
chmod ugo+x $out/share/wayland-sessions/dwl.desktop
|
||||||
|
'';
|
||||||
|
passthru.providedSessions = ["dwl"];
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
NIXOS_OZONE_WL=1;
|
||||||
|
WLR_NO_HARDWARE_CURSORS=1;
|
||||||
|
SDL_VIDEODRIVER="wayland";
|
||||||
|
QT_QPA_PLATFORM="wayland-egl";
|
||||||
|
QT_WAYLAND_DISABLE_WINDOW_DECORATIONS="1";
|
||||||
|
__JAVA_AWT_WM_NONREPARENTING=1;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
dwl
|
||||||
|
yambar
|
||||||
|
foot
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ static const Layout layouts[] = {
|
|||||||
/* monitors */
|
/* monitors */
|
||||||
/* NOTE: ALWAYS add a fallback rule, even if you are completely sure it won't be used */
|
/* NOTE: ALWAYS add a fallback rule, even if you are completely sure it won't be used */
|
||||||
static const MonitorRule monrules[] = {
|
static const MonitorRule monrules[] = {
|
||||||
/* name mfact nmaster scale layout rotate/reflect x y */
|
/* name mfact nmaster scale layout rotate/reflect x y */
|
||||||
{ "eDP-1", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 0, 0 },
|
{ "DP-3", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 0, 0 },
|
||||||
{ "eDP-1", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 2560, 0 },
|
{ "DP-2", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 2560, 0 },
|
||||||
{ "eDP-1", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 2560+3440, 0 },
|
{ "HDMI-A-1", 0.5f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, 2560+3440, 0 },
|
||||||
/* defaults */
|
/* defaults */
|
||||||
{ NULL, 0.55f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1 },
|
{ NULL, 0.55f, 1, 1, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1 },
|
||||||
};
|
};
|
||||||
@@ -102,7 +102,7 @@ LIBINPUT_CONFIG_TAP_MAP_LMR -- 1/2/3 finger tap maps to left/middle/right
|
|||||||
static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TAP_MAP_LRM;
|
static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TAP_MAP_LRM;
|
||||||
|
|
||||||
/* If you want to use the windows key for MODKEY, use WLR_MODIFIER_LOGO */
|
/* If you want to use the windows key for MODKEY, use WLR_MODIFIER_LOGO */
|
||||||
#define MODKEY WLR_MODIFIER_ALT
|
#define MODKEY WLR_MODIFIER_LOGO
|
||||||
|
|
||||||
#define TAGKEYS(KEY,SKEY,TAG) \
|
#define TAGKEYS(KEY,SKEY,TAG) \
|
||||||
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
|
||||||
@@ -115,20 +115,22 @@ static const enum libinput_config_tap_button_map button_map = LIBINPUT_CONFIG_TA
|
|||||||
|
|
||||||
/* commands */
|
/* commands */
|
||||||
static const char *termcmd[] = { "@termcmd@", NULL };
|
static const char *termcmd[] = { "@termcmd@", NULL };
|
||||||
|
static const char *editcmd[] = { "@editcmd@", NULL };
|
||||||
static const char *menucmd[] = { "@menucmd@", NULL };
|
static const char *menucmd[] = { "@menucmd@", NULL };
|
||||||
|
|
||||||
static const Key keys[] = {
|
static const Key keys[] = {
|
||||||
/* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
|
/* Note that Shift changes certain key codes: c -> C, 2 -> at, etc. */
|
||||||
/* modifier key function argument */
|
/* modifier key function argument */
|
||||||
{ MODKEY, XKB_KEY_p, spawn, {.v = menucmd} },
|
{ MODKEY, XKB_KEY_r, spawn, {.v = menucmd} },
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = termcmd} },
|
{ MODKEY, XKB_KEY_Return, spawn, {.v = termcmd} },
|
||||||
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_Return, spawn, {.v = editcmd} },
|
||||||
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
|
{ MODKEY, XKB_KEY_j, focusstack, {.i = +1} },
|
||||||
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
|
{ MODKEY, XKB_KEY_k, focusstack, {.i = -1} },
|
||||||
{ MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
|
{ MODKEY, XKB_KEY_i, incnmaster, {.i = +1} },
|
||||||
{ MODKEY, XKB_KEY_d, incnmaster, {.i = -1} },
|
{ MODKEY, XKB_KEY_d, incnmaster, {.i = -1} },
|
||||||
{ MODKEY, XKB_KEY_h, setmfact, {.f = -0.05f} },
|
{ MODKEY, XKB_KEY_h, setmfact, {.f = -0.05f} },
|
||||||
{ MODKEY, XKB_KEY_l, setmfact, {.f = +0.05f} },
|
{ MODKEY, XKB_KEY_l, setmfact, {.f = +0.05f} },
|
||||||
{ MODKEY, XKB_KEY_Return, zoom, {0} },
|
{ MODKEY, XKB_KEY_z, zoom, {0} },
|
||||||
{ MODKEY, XKB_KEY_Tab, view, {0} },
|
{ MODKEY, XKB_KEY_Tab, view, {0} },
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} },
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_C, killclient, {0} },
|
||||||
{ MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} },
|
{ MODKEY, XKB_KEY_t, setlayout, {.v = &layouts[0]} },
|
||||||
@@ -136,7 +138,7 @@ static const Key keys[] = {
|
|||||||
{ MODKEY, XKB_KEY_m, setlayout, {.v = &layouts[2]} },
|
{ MODKEY, XKB_KEY_m, setlayout, {.v = &layouts[2]} },
|
||||||
{ MODKEY, XKB_KEY_space, setlayout, {0} },
|
{ MODKEY, XKB_KEY_space, setlayout, {0} },
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_space, togglefloating, {0} },
|
||||||
{ MODKEY, XKB_KEY_e, togglefullscreen, {0} },
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_F, togglefullscreen, {0} },
|
||||||
{ MODKEY, XKB_KEY_0, view, {.ui = ~0} },
|
{ MODKEY, XKB_KEY_0, view, {.ui = ~0} },
|
||||||
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} },
|
{ MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_parenright, tag, {.ui = ~0} },
|
||||||
{ MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} },
|
{ MODKEY, XKB_KEY_comma, focusmon, {.i = WLR_DIRECTION_LEFT} },
|
||||||
|
|||||||
@@ -7,8 +7,24 @@
|
|||||||
|
|
||||||
nvidia = {
|
nvidia = {
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = true;
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
open = false;
|
open = false;
|
||||||
|
package = let
|
||||||
|
rcu_patch = pkgs.fetchpatch {
|
||||||
|
url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch";
|
||||||
|
hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg=";
|
||||||
|
};
|
||||||
|
in config.boot.kernelPackages.nvidiaPackages.mkDriver {
|
||||||
|
version = "535.154.05";
|
||||||
|
sha256_64bit = "sha256-fpUGXKprgt6SYRDxSCemGXLrEsIA6GOinp+0eGbqqJg=";
|
||||||
|
sha256_aarch64 = "sha256-G0/GiObf/BZMkzzET8HQjdIcvCSqB1uhsinro2HLK9k=";
|
||||||
|
openSha256 = "sha256-wvRdHguGLxS0mR06P5Qi++pDJBCF8pJ8hr4T8O6TJIo=";
|
||||||
|
settingsSha256 = "sha256-9wqoDEWY4I7weWW05F4igj1Gj9wjHsREFMztfEmqm10=";
|
||||||
|
persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE=";
|
||||||
|
patches = [ rcu_patch ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.xwayland.enable = true;
|
programs.xwayland.enable = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user