1
Fork 0
nixos-system-config/modules/desktop/environments/kde.nix
2024-12-15 01:29:38 +01:00

188 lines
4.6 KiB
Nix

{ pkgs, ... }:
let
sddm-background-drv = pkgs.stdenvNoCC.mkDerivation {
name = "sddm-background-drv";
src = ../../../assets/wallpapers;
dontUnpack = true;
installPhase = ''
cp $src/kde.png $out
'';
};
in {
imports = [
../../system/fonts.nix
];
environment.persistence."/nix/persist".directories = [
"/var/lib/AccountsService/"
];
environment.persistence."/nix/persist".users.hu.directories = [
".local/share/konsole"
".local/share/kwalletd"
".local/share/baloo"
".local/share/dolphin"
];
environment.persistence."/nix/persist".users.hu.files = [
".config/konsolerc"
".config/kwinoutputconfig.json" # https://github.com/nix-community/plasma-manager/issues/172
".local/state/konsolestaterc"
];
networking.networkmanager.enable = true;
users.users.hu.extraGroups = [ "networkmanager" ];
environment.sessionVariables = {
LIBVA_DRIVER_NAME = "nvidia";
XDG_SESSION_TYPE = "wayland";
GBM_BACKEND = "nvidia-drm";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
NVD_BACKEND = "direct";
NIXOS_OZONE_WL = 1;
};
services.desktopManager.plasma6.enable = true;
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
environment.plasma6.excludePackages = with pkgs.kdePackages; [
plasma-browser-integration
khelpcenter
krdp
];
environment.systemPackages = with pkgs; [
nvidia-vaapi-driver
kdePackages.sddm-kcm
(pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" ''
[General]
background=${sddm-background-drv}
'')
networkmanager-openvpn
wl-clipboard
];
home-manager.users.hu = {
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = {
gtk2.configLocation = "/home/hu/.config/gtk-2.0/gtkrc";
enable = true;
theme = {
name = "Breeze";
package = pkgs.kdePackages.breeze-gtk;
};
};
programs.plasma = {
enable = true;
workspace = {
lookAndFeel = "org.kde.breezedark.desktop";
wallpaper = "/nix/config/assets/wallpapers/kde.png";
};
panels = [
{
location = "left";
floating = true;
widgets = [
{
kickoff = {
icon = "nix-snowflake-white";
};
}
"org.kde.plasma.pager"
{
iconTasks = {
launchers = [
"applications:org.kde.dolphin.desktop"
"applications:org.kde.konsole.desktop"
"applications:firefox-esr.desktop"
];
};
}
"org.kde.plasma.marginsseparator"
"org.kde.plasma.systemtray"
{
digitalClock = {
calendar.firstDayOfWeek = "monday";
time.format = "24h";
date.enable = false;
};
}
"org.kde.plasma.showdesktop"
];
}
];
powerdevil = {
AC = {
autoSuspend.action = "nothing";
dimDisplay.enable = false;
powerButtonAction = "hibernate";
};
};
shortcuts = {
kwin = {
"Switch to Desktop 1" = "Meta+1";
"Switch to Desktop 2" = "Meta+2";
"Switch to Desktop 3" = "Meta+3";
"Switch to Desktop 4" = "Meta+4";
"Switch to Desktop 5" = "Meta+5";
"Switch to Desktop 6" = "Meta+6";
"Switch to Desktop 7" = "Meta+7";
"Switch to Desktop 8" = "Meta+8";
"Switch to Desktop 9" = "Meta+9";
# Don't blame me for this. This is all the doing of kwin.
# You're going to have to adjust this to your layout.
"Window to Desktop 1" = "Meta+!";
"Window to Desktop 2" = "Meta+\"";
"Window to Desktop 3" = "Meta+£";
"Window to Desktop 4" = "Meta+$";
"Window to Desktop 5" = "Meta+%";
"Window to Desktop 6" = "Meta+^";
"Window to Desktop 7" = "Meta+&";
"Window to Desktop 8" = "Meta+*";
"Window to Desktop 9" = "Meta+(";
};
};
configFile = {
kwinrc = {
Desktops = {
Number = {
value = 9;
};
Rows = {
value = 3;
};
};
};
plasmaashellrc = {
PlasmaViews = {
panelOpacity = 2;
};
};
kxkbrc = {
Layout = {
LayoutList = "gb";
Use = true;
};
};
};
};
};
}