nixos/system/home/plasma/default.nix
Evie Litherland-Smith 506163ff37 Customise plasma config to disable things set by stylix
Split system-level sway config to separate file, imported by
system/desktop.nix, and add plasma.nix at the same level
2024-09-27 11:41:52 +01:00

384 lines
10 KiB
Nix

{
config,
# lib,
pkgs,
...
}:
{
# imports = [ ./konsole.nix ];
home.packages = with pkgs; [
libreoffice-qt-fresh
rc2nix
wl-clipboard
(papirus-icon-theme.override { color = "breeze"; })
];
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
programs.plasma = {
enable = true;
overrideConfig = true;
# workspace =
# let
# toCapital = import ../lib/to_capital.nix lib;
# in
# {
# clickItemTo = "open";
# theme = "default";
# colorScheme = "Breeze${toCapital config.lib.stylix.scheme.variant}";
# iconTheme = "Papirus-${toCapital config.lib.stylix.scheme.variant}";
# windowDecorations = {
# library = "org.kde.breeze";
# theme = "Breeze";
# };
# cursor = {
# inherit (config.home.pointerCursor) size;
# theme = config.home.pointerCursor.name;
# };
# wallpaper = "${../wallpapers/landscapes/tropic_island_day.jpg}";
# };
# fonts =
# let
# general = {
# family = config.stylix.fonts.sansSerif.name;
# pointSize = 12;
# };
# small = {
# inherit (general) family;
# pointSize = general.pointSize - 2;
# };
# fixedWidth = {
# family = config.stylix.fonts.monospace.name;
# pointSize = 12;
# };
# in
# {
# inherit general small fixedWidth;
# menu = general;
# toolbar = general;
# windowTitle = small;
# };
hotkeys.commands = {
"launch-terminal" =
let
command = config.programs.plasma.configFile.kdeglobals.General.TerminalApplication.value;
in
{
inherit command;
name = "Launch ${command} emulator";
key = "Ctrl+Alt+T";
};
"launch-emacs" = {
name = "Launch Emacs Client Window";
key = "Meta+Alt+X";
command = "emacsclient -c";
};
};
panels = [
{
height = 32;
lengthMode = "fill";
location = "bottom";
alignment = "center";
hiding = "normalpanel";
floating = true;
widgets = [
{
name = "org.kde.plasma.kicker";
config.General = {
icon = "nix-snowflake";
appNameFormat = 0;
limitDepth = true;
alphaSort = true;
recentOrdering = 0;
showRecentApps = true;
showRecentDocs = true;
showIconsRootLevel = true;
};
}
"org.kde.plasma.marginsseparator"
{
name = "org.kde.plasma.icontasks";
config.General = {
maxStripes = "1";
showToolTips = "true";
launchers = [
"preferred://filemanager"
"applications:emacs.desktop"
];
};
}
"org.kde.plasma.panelspacer"
{
name = "org.kde.plasma.pager";
config.General = {
showWindowIcons = "true";
showOnlyCurrentScreen = "false";
wrapPage = "true";
};
}
"org.kde.plasma.panelspacer"
"org.kde.plasma.marginsseparator"
"org.kde.plasma.keyboardindicator"
"org.kde.plasma.cameraindicator"
{
systemTray = {
icons = {
spacing = "small";
scaleToFit = false;
};
};
}
{
digitalClock = {
date = {
enable = true;
format = "isoDate";
position = "besideTime";
};
time = {
format = "24h";
showSeconds = "onlyInTooltip";
};
calendar.showWeekNumbers = true;
};
}
{
name = "org.kde.plasma.userswitcher";
config.General = {
showFace = "true";
showName = "false";
showFullName = "true";
showTechnicalInfo = "true";
};
}
];
}
];
shortcuts = {
ksmserver = {
"Lock Session" = [
"Screensaver"
"Meta+Alt+L"
];
};
kwin = {
"Walk Through Windows of Current Application" = "Alt+`";
"Walk Through Windows of Current Application (Reverse)" = "Alt+¬";
"ToggleMouseClick" = "Meta+*";
"Expose" = "Meta+,";
"Switch Window Down" = "Meta+J";
"Switch Window Left" = "Meta+H";
"Switch Window Right" = "Meta+L";
"Switch Window Up" = "Meta+K";
"Invert" = "Meta+Ctrl+I";
"InvertWindow" = "Meta+Ctrl+U";
"Invert Screen Colors" = [ ];
};
"services/org.kde.konsole.desktop"."_launch" = [ ];
"services/org.kde.krunner.desktop"."_launch" = [
"Meta+Space"
"Search"
"Alt+F2"
];
};
kwin = {
virtualDesktops = {
rows = 1;
number = 4;
};
effects = {
translucency.enable = true;
blur.enable = true;
cube.enable = true;
dimAdminMode.enable = true;
};
};
powerdevil =
let
powerButtonAction = "turnOffScreen";
whenSleepingEnter = "standbyThenHibernate";
whenLaptopLidClosed = "sleep";
in
{
AC = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "sleep";
idleTimeout = 7200;
};
dimDisplay = {
enable = true;
idleTimeOut = 300;
};
turnOffDisplay = {
idleTimeout = 1800;
idleTimeoutWhenLocked = 120;
};
};
battery = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "sleep";
idleTimeout = 900;
};
dimDisplay = {
enable = true;
idleTimeOut = 120;
};
turnOffDisplay = {
idleTimeout = 300;
idleTimeoutWhenLocked = 60;
};
};
lowBattery = {
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
autoSuspend = {
action = "hibernate";
idleTimeout = 300;
};
dimDisplay = {
enable = true;
idleTimeOut = 60;
};
turnOffDisplay = {
idleTimeout = 120;
idleTimeoutWhenLocked = "immediately";
};
};
};
configFile = {
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
kcminputrc.Keyboard.NumLock = 1;
yakuakerc = {
Dialogs.FirstRun = false;
Window = {
DynamicTabTitles = true;
Height = 80;
Width = 80;
KeepOpen = true;
ShowSystrayIcon = false;
ShowTitleBar = false;
};
};
plasmanotifyrc = {
Notifications = {
NormalAlwaysOnTop = true;
};
};
krunnerrc = {
General = {
ActivateWhenTypingOnDesktop = false;
FreeFloating = true;
};
};
kscreenlockerrc = {
Daemon.Timeout = 15;
Greeter.WallpaperPlugin = "org.kde.potd";
};
klipperrc = {
General = {
SyncClipboards = true;
MaxClipItems = 5;
IgnoreImages = false;
KeepClipboardContents = false;
};
};
# kdeglobals = {
# General =
# let
# AccentColor =
# let
# r = config.lib.stylix.scheme."base0D-rgb-r";
# g = config.lib.stylix.scheme."base0D-rgb-g";
# b = config.lib.stylix.scheme."base0D-rgb-b";
# in
# "${r}, ${g}, ${b}";
# in
# {
# inherit AccentColor;
# LastUsedCustomAccentColor = AccentColor;
# TerminalApplication = "konsole";
# TerminalService = "org.kde.konsole.desktop";
# };
# WM = {
# # TODO convert to base16 colours at some point
# activeBackground = "227,229,231";
# activeBlend = "227,229,231";
# activeForeground = "35,38,41";
# inactiveBackground = "239,240,241";
# inactiveBlend = "239,240,241";
# inactiveForeground = "112,125,138";
# };
# };
# breezerc = {
# Common = {
# OutlineClassButton = true;
# OutlineCloseButtone = true;
# ShadowSize = "ShadowVeryLarge";
# ShadowStrength = "128";
# };
# Style = {
# MenuOpacity = "100";
# };
# };
dolphinrc = {
ContentDisplay = {
UsePermissionsFormat = "CombinedFormat";
};
General = {
BrowseThroughArchives = true;
OpenNewTabAfterLastTab = true;
RememberOpenedTabs = false;
};
};
kwinrc = {
Plugins = {
frozenappEnabled = false;
mouseclickEnabled = true;
shakecursorEnabled = false;
invertEnabled = true;
};
Windows = {
FocusPolicy = "FocusFollowsMouse";
RollOverDesktops = true;
};
NightColor = {
Active = true;
Mode = "Location";
LatitudeFixed = "51.7";
LongitudeFixed = "-1.2";
};
# "Effect-translucency" = {
# # Re-enable translucency when I can work out how to apply
# # blur to all windows
# Inactive = 100;
# MoveResize = 100;
# Dialogs = 100;
# ComboboxPopups = 100;
# Menus = 100;
# };
# "org.kde.kdecoration2" = {
# BorderSize = "None";
# BorderSizeAuto = "false";
# };
# "Script-krohnkite" = {
# limitTileWidth = true;
# screenGapBottom = 5;
# screenGapLeft = 5;
# screenGapRight = 5;
# screenGapTop = 5;
# tileLayoutGap = 5;
# };
};
};
};
xdg.configFile."autostart/org.kde.yakuake.desktop".source = "${pkgs.yakuake}/share/applications/org.kde.yakuake.desktop";
}