286 lines
7.6 KiB
Nix
286 lines
7.6 KiB
Nix
{ inputs, config, lib, pkgs, user, ... }:
|
|
let
|
|
inherit (lib.modules) mkIf;
|
|
|
|
cfg = config.modules.${user}.desktop.plasma;
|
|
in
|
|
{
|
|
options.modules.${user}.desktop.plasma = let
|
|
inherit (lib.options) mkEnableOption mkOption;
|
|
in {
|
|
enable = mkEnableOption "plasma 6";
|
|
|
|
autoLogin = mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
example = true;
|
|
description = "Enable plasma's auto login feature.";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs.kdePackages; [
|
|
kcoreaddons
|
|
];
|
|
|
|
environment.plasma6.excludePackages = with pkgs.kdePackages; [ konsole kate ghostwriter oxygen ];
|
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
|
|
services = {
|
|
xserver.enable = true;
|
|
|
|
desktopManager.plasma6.enable = true;
|
|
|
|
displayManager = {
|
|
defaultSession = "plasma";
|
|
sddm = {
|
|
enable = true;
|
|
wayland.enable = true;
|
|
};
|
|
autoLogin = mkIf cfg.autoLogin {
|
|
enable = true;
|
|
inherit user;
|
|
};
|
|
};
|
|
};
|
|
|
|
# should enable theme integration with gtk apps (i.e. firefox, thunderbird)
|
|
programs.dconf.enable = true;
|
|
|
|
home-manager = {
|
|
sharedModules = [
|
|
inputs.plasma-manager.homeManagerModules.plasma-manager
|
|
];
|
|
|
|
users.${user}.programs.plasma = {
|
|
enable = true;
|
|
immutableByDefault = true;
|
|
windows.allowWindowsToRememberPositions = true;
|
|
|
|
session = {
|
|
general.askForConfirmationOnLogout = false;
|
|
sessionRestore.restoreOpenApplicationsOnLogin = "onLastLogout";
|
|
};
|
|
|
|
workspace = {
|
|
clickItemTo = "select";
|
|
colorScheme = "EverforestDark";
|
|
wallpaper = config.stylix.image;
|
|
};
|
|
|
|
spectacle.shortcuts = {
|
|
captureRectangularRegion = "Meta+Shift+S";
|
|
};
|
|
|
|
kwin = {
|
|
edgeBarrier = 0;
|
|
cornerBarrier = false;
|
|
|
|
effects = {
|
|
translucency.enable = true;
|
|
|
|
blur = {
|
|
enable = true;
|
|
strength = 5;
|
|
noiseStrength = 5;
|
|
};
|
|
|
|
snapHelper.enable = true;
|
|
};
|
|
};
|
|
|
|
panels = [
|
|
# Windows-like panel at the bottom
|
|
{
|
|
location = "bottom";
|
|
floating = true;
|
|
lengthMode = "fill";
|
|
height = 42;
|
|
hiding = "none";
|
|
screen = "all";
|
|
widgets = [
|
|
{
|
|
panelSpacer = {
|
|
expanding = true;
|
|
};
|
|
}
|
|
{
|
|
kickoff = {
|
|
applicationsDisplayMode = "list";
|
|
compactDisplayStyle = false;
|
|
favoritesDisplayMode = "grid";
|
|
sortAlphabetically = true;
|
|
showButtonsFor = {
|
|
custom = [
|
|
"shutdown"
|
|
"reboot"
|
|
"logout"
|
|
"lock-screen"
|
|
];
|
|
};
|
|
showActionButtonCaptions = true;
|
|
};
|
|
}
|
|
# {
|
|
# appMenu = {
|
|
# compactView = false;
|
|
# };
|
|
# }
|
|
{
|
|
iconTasks = {
|
|
appearance = {
|
|
fill = false;
|
|
highlightWindows = true;
|
|
iconSpacing = "medium";
|
|
indicateAudioStreams = true;
|
|
rows = {
|
|
multirowView = "never";
|
|
maximum = null;
|
|
};
|
|
showTooltips = true;
|
|
};
|
|
behavior = {
|
|
grouping = {
|
|
clickAction = "showPresentWindowsEffect";
|
|
method = "byProgramName";
|
|
};
|
|
minimizeActiveTaskOnClick = true;
|
|
newTasksAppearOn = "right";
|
|
showTasks = {
|
|
onlyInCurrentActivity = true;
|
|
onlyInCurrentDesktop = true;
|
|
onlyMinimized = false;
|
|
onlyInCurrentScreen = false;
|
|
};
|
|
sortingMethod = "manually";
|
|
unhideOnAttentionNeeded = true;
|
|
wheel = {
|
|
ignoreMinimizedTasks = true;
|
|
switchBetweenTasks = true;
|
|
};
|
|
};
|
|
launchers = [
|
|
"preferred://filemanager"
|
|
"preferred://browser"
|
|
"preferred://terminalemulator"
|
|
"preferred://email"
|
|
"applications:zededitor.desktop"
|
|
"applications:vesktop.desktop"
|
|
"applications:steam.desktop"
|
|
];
|
|
};
|
|
}
|
|
{
|
|
panelSpacer = {
|
|
expanding = true;
|
|
};
|
|
}
|
|
{
|
|
systemTray = {
|
|
icons = {
|
|
scaleToFit = true;
|
|
spacing = "small";
|
|
};
|
|
items = {
|
|
hidden = [
|
|
"org.kde.plasma.brightness"
|
|
];
|
|
};
|
|
pin = false;
|
|
};
|
|
}
|
|
{
|
|
digitalClock = {
|
|
date = {
|
|
enable = true;
|
|
format = "shortDate";
|
|
position = "belowTime";
|
|
};
|
|
time = {
|
|
format = "24h";
|
|
showSeconds = "onlyInTooltip";
|
|
};
|
|
};
|
|
}
|
|
];
|
|
}
|
|
];
|
|
|
|
powerdevil = {
|
|
AC = {
|
|
powerButtonAction = "shutDown";
|
|
whenLaptopLidClosed = "doNothing";
|
|
|
|
autoSuspend.action = "nothing";
|
|
dimDisplay.enable = false;
|
|
|
|
turnOffDisplay = {
|
|
idleTimeout = "never";
|
|
};
|
|
};
|
|
|
|
battery = {
|
|
powerButtonAction = "shutDown";
|
|
whenLaptopLidClosed = "doNothing";
|
|
|
|
autoSuspend.action = "nothing";
|
|
dimDisplay.enable = false;
|
|
|
|
turnOffDisplay = {
|
|
idleTimeout = "never";
|
|
};
|
|
};
|
|
|
|
lowBattery = {
|
|
powerButtonAction = "shutDown";
|
|
whenLaptopLidClosed = "doNothing";
|
|
|
|
autoSuspend.action = "nothing";
|
|
dimDisplay.enable = false;
|
|
|
|
turnOffDisplay = {
|
|
idleTimeout = "never";
|
|
};
|
|
};
|
|
};
|
|
|
|
kscreenlocker = {
|
|
autoLock = false;
|
|
lockOnResume = false;
|
|
lockOnStartup = false;
|
|
|
|
appearance = {
|
|
alwaysShowClock = true;
|
|
showMediaControls = true;
|
|
};
|
|
};
|
|
|
|
configFile = {
|
|
baloofilerc = {
|
|
|
|
};
|
|
kdeglobals = {
|
|
General = {
|
|
# enable font antialiasing
|
|
XftAntialias = true;
|
|
XftHintStyle = "hintslight";
|
|
XftSubPixel = "rgb";
|
|
};
|
|
};
|
|
kwalletrc = {
|
|
Wallet.Enabled = false;
|
|
};
|
|
plasmarc = {
|
|
General = {
|
|
RaiseMaximumVolume = true;
|
|
VolumeStep = 2;
|
|
};
|
|
};
|
|
kcminputrc = {
|
|
Keyboard.NumLock.value = 0;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|