101 lines
2.4 KiB
Nix
Executable File
101 lines
2.4 KiB
Nix
Executable File
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
namespace,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.${namespace}.desktop.plasma;
|
|
in
|
|
{
|
|
imports = [ ./options.nix ];
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home.packages =
|
|
(with pkgs.kdePackages; [
|
|
plasma-browser-integration
|
|
kdeplasma-addons
|
|
])
|
|
++ [
|
|
# Caffeine-like tray applet: inhibits screensaver and sleep on demand
|
|
pkgs.caffeine-ng
|
|
];
|
|
|
|
programs.plasma = {
|
|
enable = true;
|
|
|
|
workspace = {
|
|
colorScheme = "BreezeDark";
|
|
cursor = {
|
|
theme = "breeze_cursors";
|
|
size = 24;
|
|
};
|
|
iconTheme = "breeze-dark";
|
|
theme = "breeze-dark";
|
|
lookAndFeel = "org.kde.breezedark.desktop";
|
|
# Explicitly set Breeze to prevent QT_STYLE_OVERRIDE=kvantum (set by
|
|
# Stylix's qt6ct target) from being picked up by KWin/plasmashell, which
|
|
# would cause a fatal "module kvantum is not installed" QML error and
|
|
# leave the desktop blank.
|
|
widgetStyle = "Breeze";
|
|
};
|
|
|
|
# input.mice and input.touchpads require device-specific vendorId/productId
|
|
# identifiers — configure those per-host in the home config instead.
|
|
|
|
kscreenlocker = {
|
|
autoLock = true;
|
|
timeout = 10;
|
|
};
|
|
|
|
kwin = {
|
|
effects = {
|
|
shakeCursor.enable = false;
|
|
};
|
|
nightLight = {
|
|
enable = true;
|
|
mode = "automatic";
|
|
temperature = {
|
|
day = 6500;
|
|
night = 3500;
|
|
};
|
|
};
|
|
virtualDesktops = {
|
|
number = 4;
|
|
rows = 1;
|
|
};
|
|
};
|
|
|
|
panels = [
|
|
{
|
|
location = "bottom";
|
|
floating = true;
|
|
height = 44;
|
|
widgets = [
|
|
"org.kde.plasma.kickoff"
|
|
"org.kde.plasma.icontasks"
|
|
"org.kde.plasma.marginsseparator"
|
|
"org.kde.plasma.systemtray"
|
|
"org.kde.plasma.digitalclock"
|
|
];
|
|
}
|
|
];
|
|
|
|
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";
|
|
"Window to Desktop 1" = "Meta+Shift+1";
|
|
"Window to Desktop 2" = "Meta+Shift+2";
|
|
"Window to Desktop 3" = "Meta+Shift+3";
|
|
"Window to Desktop 4" = "Meta+Shift+4";
|
|
"Toggle Overview" = "Meta+Tab";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|