mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-06 01:38:06 +00:00
[Desktop/(Plasma+SDDM)] migrate SDDM to its own config files + fix SDDM Wayland on Nvidia drivers!
This commit is contained in:
parent
8f2097e07a
commit
916430febd
4 changed files with 85 additions and 45 deletions
|
|
@ -11,5 +11,6 @@ with lib;
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
./printing.nix
|
./printing.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
|
./sddm.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,9 @@
|
||||||
{config, pkgs, lib, sddm-unstable, ...}:
|
{config, pkgs, nixpkgs-unstable, lib, ...}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.aviallon.desktop;
|
cfg = config.aviallon.desktop;
|
||||||
optimizeCfg = config.aviallon.optimizations;
|
optimizeCfg = config.aviallon.optimizations;
|
||||||
_sddm = if cfg.sddm.unstable then pkgs.unstable.sddm else pkgs.sddm;
|
|
||||||
sddmOptimized = optimizeCfg.optimizePkg { recursive = 0; } _sddm;
|
|
||||||
sddmPackage = if optimizeCfg.enable then sddmOptimized else _sddm;
|
|
||||||
in {
|
in {
|
||||||
options.aviallon.desktop.sddm.unstable = mkEnableOption (mdDoc "bleeding-edge SDDM");
|
|
||||||
|
|
||||||
config = mkIf (cfg.enable && (cfg.environment == "plasma")) {
|
config = mkIf (cfg.enable && (cfg.environment == "plasma")) {
|
||||||
# Enable the Plasma 5 Desktop Environment.
|
# Enable the Plasma 5 Desktop Environment.
|
||||||
|
|
@ -22,10 +18,6 @@ in {
|
||||||
# supportDDC = true;
|
# supportDDC = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = mkAfter [
|
|
||||||
"e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0"
|
|
||||||
"x ${config.users.users.sddm.home}/.cache"
|
|
||||||
];
|
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
# Already brought in by ${nixpkgs}/nixos/modules/services/x11/desktop-managers/plasma5.nix
|
# Already brought in by ${nixpkgs}/nixos/modules/services/x11/desktop-managers/plasma5.nix
|
||||||
|
|
@ -35,48 +27,15 @@ in {
|
||||||
|
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source =
|
"chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source =
|
||||||
"${pkgs.plasma-browser-integration}/etc/chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json";
|
"${pkgs.libsForQt5.plasma-browser-integration}/etc/chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.chromium.extensions = [
|
programs.chromium.extensions = [
|
||||||
"cimiefiiaegbelhefglklhhakcgmhkai" # Plasma Browser Integration
|
"cimiefiiaegbelhefglklhhakcgmhkai" # Plasma Browser Integration
|
||||||
];
|
];
|
||||||
|
|
||||||
# Prevents blinking cursor
|
aviallon.desktop.sddm.enable = true;
|
||||||
services.xserver.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = mkDefault true;
|
|
||||||
settings = {
|
|
||||||
Theme = {
|
|
||||||
CursorTheme = "breeze_cursors";
|
|
||||||
};
|
|
||||||
X11 = {
|
|
||||||
MinimumVT = mkOverride 50 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.display-manager = {
|
|
||||||
serviceConfig = {
|
|
||||||
Restart = mkOverride 50 "on-failure";
|
|
||||||
TimeoutStopSec = 10;
|
|
||||||
SendSIGHUP = true;
|
|
||||||
};
|
|
||||||
after = [
|
|
||||||
"getty@tty1.service"
|
|
||||||
];
|
|
||||||
conflicts = [
|
|
||||||
"getty@tty1.service"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.overlays = [(final: prev: { mySddm = sddmPackage; } )];
|
|
||||||
|
|
||||||
services.xserver.displayManager.job = {
|
|
||||||
execCmd = mkOverride 2 "exec ${sddmPackage}/bin/sddm";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; with libsForQt5; [
|
environment.systemPackages = with pkgs; with libsForQt5; [
|
||||||
skanpage
|
skanpage
|
||||||
packagekit-qt
|
packagekit-qt
|
||||||
|
|
|
||||||
25
desktop/sddm-unstable.nix
Normal file
25
desktop/sddm-unstable.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ config, nixpkgs-unstable, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.aviallon.desktop;
|
||||||
|
in {
|
||||||
|
disabledModules = [ "services/x11/display-managers/sddm.nix" ];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
(import (nixpkgs-unstable + /nixos/modules/services/x11/display-managers/sddm.nix))
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
services.xserver.displayManager.sddm.wayland.compositor = "kwin";
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
sddm = final.libsForQt5.sddm;
|
||||||
|
libsForQt5 = prev.libsForQt5.overrideScope (f: p: {
|
||||||
|
sddm = f.callPackage (import (nixpkgs-unstable + /pkgs/applications/display-managers/sddm)) {};
|
||||||
|
});
|
||||||
|
kdePackages = final.libsForQt5;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
55
desktop/sddm.nix
Normal file
55
desktop/sddm.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.aviallon.desktop;
|
||||||
|
sddmCfg = config.services.xserver.displayManager.sddm;
|
||||||
|
in {
|
||||||
|
options.aviallon.desktop.sddm.unstable = mkEnableOption "bleeding-edge SDDM";
|
||||||
|
options.aviallon.desktop.sddm.enable = mkEnableOption "custom SDDM configuration";
|
||||||
|
|
||||||
|
imports = [ ./sddm-unstable.nix ];
|
||||||
|
|
||||||
|
config = mkIf cfg.sddm.enable {
|
||||||
|
|
||||||
|
# Delete SDDM QMLCache
|
||||||
|
systemd.tmpfiles.rules = mkAfter [
|
||||||
|
"e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Prevents blinking cursor
|
||||||
|
services.xserver.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = mkDefault true;
|
||||||
|
settings = {
|
||||||
|
/*General.GreeterEnvironment = mkIf sddmCfg.wayland.enable (concatStringsSep "," [
|
||||||
|
"QT_WAYLAND_SHELL_INTEGRATION=layer-shell"
|
||||||
|
"QT_QPA_PLATFORM=wayland"
|
||||||
|
]);*/
|
||||||
|
Theme = {
|
||||||
|
CursorTheme = "breeze_cursors";
|
||||||
|
};
|
||||||
|
/*Wayland = mkIf sddmCfg.wayland.enable {
|
||||||
|
CompositorCommand = mkOverride 60 "${pkgs.libsForQt5.kwin}/bin/kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1";
|
||||||
|
};*/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.display-manager = {
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = mkOverride 50 "on-failure";
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
SendSIGHUP = true;
|
||||||
|
};
|
||||||
|
after = [
|
||||||
|
"getty@tty1.service"
|
||||||
|
];
|
||||||
|
conflicts = [
|
||||||
|
"getty@tty1.service"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
#services.xserver.displayManager.job = mkIf config.services.xserver.displayManager.sddm.enable {
|
||||||
|
# execCmd = mkOverride 2 "exec ${sddmPackage}/bin/sddm";
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue