2024-07-10 08:27:17 +01:00
|
|
|
{
|
|
|
|
config,
|
2024-07-11 09:41:48 +01:00
|
|
|
lib,
|
2024-07-10 08:27:17 +01:00
|
|
|
pkgs,
|
|
|
|
fonts,
|
2024-07-10 15:19:45 +01:00
|
|
|
accentColourName,
|
2024-07-10 08:27:17 +01:00
|
|
|
...
|
2024-07-30 15:06:34 +01:00
|
|
|
}:
|
|
|
|
{
|
2024-08-30 12:57:02 +01:00
|
|
|
imports = [ ./konsole.nix ];
|
|
|
|
home.packages = with pkgs; [
|
2024-07-10 08:27:17 +01:00
|
|
|
rc2nix
|
2024-08-30 12:57:02 +01:00
|
|
|
wl-clipboard
|
|
|
|
(papirus-icon-theme.override { color = "violet"; })
|
2024-07-10 08:27:17 +01:00
|
|
|
];
|
|
|
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
|
|
|
|
programs.plasma = {
|
|
|
|
enable = true;
|
|
|
|
overrideConfig = true;
|
|
|
|
|
2024-07-30 15:06:34 +01:00
|
|
|
workspace =
|
|
|
|
let
|
|
|
|
toCapital = import ../lib/to_capital.nix lib;
|
|
|
|
in
|
|
|
|
{
|
|
|
|
clickItemTo = "open";
|
|
|
|
theme = "default";
|
|
|
|
colorScheme = "Breeze${toCapital config.scheme.variant}";
|
|
|
|
iconTheme = "Papirus-${toCapital config.scheme.variant}";
|
|
|
|
windowDecorations = {
|
|
|
|
library = "org.kde.breeze";
|
|
|
|
theme = "Breeze";
|
|
|
|
};
|
|
|
|
cursor = {
|
|
|
|
inherit (config.home.pointerCursor) size;
|
|
|
|
theme = config.home.pointerCursor.name;
|
|
|
|
};
|
2024-08-30 12:57:02 +01:00
|
|
|
wallpaper = "${./wallpapers/landscapes/tropic_island_day.jpg}";
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
|
2024-07-30 15:06:34 +01:00
|
|
|
fonts =
|
|
|
|
let
|
|
|
|
general = {
|
|
|
|
family = fonts.sansSerif.name;
|
|
|
|
pointSize = 12;
|
|
|
|
};
|
|
|
|
small = {
|
|
|
|
inherit (general) family;
|
|
|
|
pointSize = general.pointSize - 2;
|
|
|
|
};
|
|
|
|
fixedWidth = {
|
|
|
|
family = fonts.monospace.name;
|
|
|
|
pointSize = 12;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
inherit general small fixedWidth;
|
|
|
|
menu = general;
|
|
|
|
toolbar = general;
|
|
|
|
windowTitle = small;
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
hotkeys.commands = {
|
2024-08-03 08:26:15 +01:00
|
|
|
"launch-terminal" =
|
|
|
|
let
|
|
|
|
command = config.programs.plasma.configFile.kdeglobals.General.TerminalApplication.value;
|
|
|
|
in
|
|
|
|
{
|
|
|
|
inherit command;
|
|
|
|
name = "Launch ${command} emulator";
|
|
|
|
key = "Ctrl+Alt+T";
|
|
|
|
};
|
2024-07-10 08:27:17 +01:00
|
|
|
"launch-emacs" = {
|
|
|
|
name = "Launch Emacs Client Window";
|
|
|
|
key = "Meta+Alt+X";
|
|
|
|
command = "emacsclient -c";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
panels = [
|
|
|
|
{
|
|
|
|
height = 32;
|
|
|
|
lengthMode = "fill";
|
2024-08-07 18:08:04 +01:00
|
|
|
location = "bottom";
|
2024-07-10 08:27:17 +01:00
|
|
|
alignment = "center";
|
2024-08-09 09:23:16 +01:00
|
|
|
hiding = "normalpanel";
|
2024-07-10 08:27:17 +01:00
|
|
|
floating = true;
|
|
|
|
widgets = [
|
2024-08-07 18:08:04 +01:00
|
|
|
{
|
2024-09-01 08:01:44 +01:00
|
|
|
name = "org.kde.plasma.kicker";
|
2024-08-07 18:08:04 +01:00
|
|
|
config.General = {
|
2024-09-01 08:01:44 +01:00
|
|
|
icon = "distributor-logo-nixos";
|
|
|
|
appNameFormat = 0;
|
|
|
|
limitDepth = true;
|
|
|
|
alphaSort = true;
|
|
|
|
recentOrdering = 0;
|
|
|
|
showRecentApps = true;
|
|
|
|
showRecentDocs = true;
|
|
|
|
showIconsRootLevel = true;
|
2024-08-07 18:08:04 +01:00
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "org.kde.plasma.icontasks";
|
|
|
|
config.General = {
|
|
|
|
maxStripes = "1";
|
|
|
|
showToolTips = "true";
|
|
|
|
launchers = [
|
2024-08-10 07:05:08 +01:00
|
|
|
"preferred://filemanager"
|
2024-08-07 18:08:04 +01:00
|
|
|
"applications:emacs.desktop"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|
2024-09-01 08:01:44 +01:00
|
|
|
"org.kde.plasma.panelspacer"
|
2024-08-24 06:55:38 +01:00
|
|
|
{
|
|
|
|
name = "org.kde.plasma.pager";
|
|
|
|
config.General = {
|
|
|
|
showWindowIcons = "true";
|
|
|
|
showOnlyCurrentScreen = "false";
|
|
|
|
wrapPage = "true";
|
|
|
|
};
|
|
|
|
}
|
2024-09-01 08:01:44 +01:00
|
|
|
"org.kde.plasma.panelspacer"
|
2024-08-07 18:08:04 +01:00
|
|
|
"org.kde.plasma.marginsseparator"
|
|
|
|
"org.kde.plasma.keyboardindicator"
|
|
|
|
"org.kde.plasma.cameraindicator"
|
|
|
|
{
|
|
|
|
systemTray = {
|
|
|
|
icons = {
|
|
|
|
spacing = "small";
|
|
|
|
scaleToFit = false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
2024-07-10 08:27:17 +01:00
|
|
|
{
|
|
|
|
digitalClock = {
|
|
|
|
date = {
|
|
|
|
enable = true;
|
|
|
|
format = "isoDate";
|
|
|
|
position = "besideTime";
|
|
|
|
};
|
|
|
|
time = {
|
|
|
|
format = "24h";
|
2024-08-07 18:08:04 +01:00
|
|
|
showSeconds = "onlyInTooltip";
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
calendar.showWeekNumbers = true;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "org.kde.plasma.userswitcher";
|
|
|
|
config.General = {
|
|
|
|
showFace = "true";
|
|
|
|
showName = "false";
|
|
|
|
showFullName = "true";
|
|
|
|
showTechnicalInfo = "true";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
shortcuts = {
|
|
|
|
ksmserver = {
|
2024-07-30 15:06:34 +01:00
|
|
|
"Lock Session" = [
|
|
|
|
"Screensaver"
|
|
|
|
"Meta+Alt+L"
|
|
|
|
];
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
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";
|
2024-07-19 08:52:17 +01:00
|
|
|
"Invert" = "Meta+Ctrl+I";
|
|
|
|
"InvertWindow" = "Meta+Ctrl+U";
|
2024-07-30 15:06:34 +01:00
|
|
|
"Invert Screen Colors" = [ ];
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
2024-08-03 08:26:15 +01:00
|
|
|
"services/org.kde.konsole.desktop"."_launch" = [ ];
|
2024-07-30 15:06:34 +01:00
|
|
|
"services/org.kde.krunner.desktop"."_launch" = [
|
|
|
|
"Meta+Space"
|
|
|
|
"Search"
|
|
|
|
"Alt+F2"
|
|
|
|
];
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
kwin = {
|
|
|
|
virtualDesktops = {
|
|
|
|
rows = 1;
|
2024-07-11 10:28:26 +01:00
|
|
|
number = 4;
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
effects = {
|
|
|
|
translucency.enable = true;
|
|
|
|
blur.enable = true;
|
|
|
|
cube.enable = true;
|
|
|
|
dimAdminMode.enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-08-06 16:28:33 +01:00
|
|
|
powerdevil =
|
|
|
|
let
|
2024-08-25 06:35:15 +01:00
|
|
|
powerButtonAction = "turnOffScreen";
|
|
|
|
whenSleepingEnter = "standbyThenHibernate";
|
|
|
|
whenLaptopLidClosed = "sleep";
|
2024-08-06 16:28:33 +01:00
|
|
|
in
|
|
|
|
{
|
|
|
|
AC = {
|
|
|
|
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
|
|
|
|
autoSuspend = {
|
2024-08-25 06:35:15 +01:00
|
|
|
action = "sleep";
|
2024-08-06 16:28:33 +01:00
|
|
|
idleTimeout = 7200;
|
|
|
|
};
|
|
|
|
dimDisplay = {
|
|
|
|
enable = true;
|
|
|
|
idleTimeOut = 300;
|
|
|
|
};
|
|
|
|
turnOffDisplay = {
|
|
|
|
idleTimeout = 1800;
|
|
|
|
idleTimeoutWhenLocked = 120;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
battery = {
|
|
|
|
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
|
|
|
|
autoSuspend = {
|
2024-08-25 06:35:15 +01:00
|
|
|
action = "sleep";
|
|
|
|
idleTimeout = 900;
|
2024-08-06 16:28:33 +01:00
|
|
|
};
|
|
|
|
dimDisplay = {
|
|
|
|
enable = true;
|
|
|
|
idleTimeOut = 120;
|
|
|
|
};
|
|
|
|
turnOffDisplay = {
|
2024-08-25 06:35:15 +01:00
|
|
|
idleTimeout = 300;
|
2024-08-06 16:28:33 +01:00
|
|
|
idleTimeoutWhenLocked = 60;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
lowBattery = {
|
|
|
|
inherit powerButtonAction whenSleepingEnter whenLaptopLidClosed;
|
|
|
|
autoSuspend = {
|
2024-08-25 06:35:15 +01:00
|
|
|
action = "hibernate";
|
|
|
|
idleTimeout = 300;
|
2024-08-06 16:28:33 +01:00
|
|
|
};
|
|
|
|
dimDisplay = {
|
|
|
|
enable = true;
|
|
|
|
idleTimeOut = 60;
|
|
|
|
};
|
|
|
|
turnOffDisplay = {
|
2024-08-25 06:35:15 +01:00
|
|
|
idleTimeout = 120;
|
2024-08-06 16:28:33 +01:00
|
|
|
idleTimeoutWhenLocked = "immediately";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-07-10 08:27:17 +01:00
|
|
|
configFile = {
|
|
|
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
|
|
|
kcminputrc.Keyboard.NumLock = 1;
|
2024-08-23 14:03:49 +01:00
|
|
|
yakuakerc = {
|
|
|
|
Dialogs.FirstRun = false;
|
|
|
|
Window = {
|
|
|
|
DynamicTabTitles = true;
|
|
|
|
Height = 80;
|
|
|
|
Width = 80;
|
2024-08-30 05:48:44 +01:00
|
|
|
KeepOpen = true;
|
2024-08-23 14:03:49 +01:00
|
|
|
ShowSystrayIcon = false;
|
|
|
|
ShowTitleBar = false;
|
|
|
|
};
|
|
|
|
};
|
2024-07-19 08:52:17 +01:00
|
|
|
plasmanotifyrc = {
|
|
|
|
Notifications = {
|
|
|
|
NormalAlwaysOnTop = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
krunnerrc = {
|
|
|
|
General = {
|
|
|
|
ActivateWhenTypingOnDesktop = false;
|
|
|
|
FreeFloating = true;
|
|
|
|
};
|
|
|
|
};
|
2024-07-10 08:27:17 +01:00
|
|
|
kscreenlockerrc = {
|
|
|
|
Daemon.Timeout = 15;
|
|
|
|
Greeter.WallpaperPlugin = "org.kde.potd";
|
|
|
|
};
|
|
|
|
klipperrc = {
|
|
|
|
General = {
|
|
|
|
SyncClipboards = true;
|
|
|
|
MaxClipItems = 5;
|
|
|
|
IgnoreImages = false;
|
|
|
|
KeepClipboardContents = false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
kdeglobals = {
|
2024-07-30 15:06:34 +01:00
|
|
|
General =
|
|
|
|
let
|
|
|
|
AccentColor =
|
|
|
|
let
|
|
|
|
r = config.scheme."${accentColourName}-rgb-r";
|
|
|
|
g = config.scheme."${accentColourName}-rgb-g";
|
|
|
|
b = config.scheme."${accentColourName}-rgb-b";
|
|
|
|
in
|
|
|
|
"${r}, ${g}, ${b}";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
inherit AccentColor;
|
|
|
|
LastUsedCustomAccentColor = AccentColor;
|
2024-08-02 17:08:53 +01:00
|
|
|
TerminalApplication = if config.programs.alacritty.enable then "alacritty" else "konsole";
|
|
|
|
TerminalService =
|
|
|
|
if config.programs.alacritty.enable then "Alacritty.desktop" else "org.kde.konsole.desktop";
|
2024-07-30 15:06:34 +01:00
|
|
|
};
|
2024-07-10 15:19:45 +01:00
|
|
|
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";
|
|
|
|
};
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
2024-07-19 08:52:17 +01:00
|
|
|
breezerc = {
|
|
|
|
Common = {
|
|
|
|
OutlineClassButton = true;
|
2024-07-22 14:58:26 +01:00
|
|
|
OutlineCloseButtone = true;
|
2024-07-19 08:52:17 +01:00
|
|
|
ShadowSize = "ShadowVeryLarge";
|
|
|
|
ShadowStrength = "128";
|
|
|
|
};
|
|
|
|
Style = {
|
2024-07-22 14:58:26 +01:00
|
|
|
MenuOpacity = "100";
|
2024-07-19 08:52:17 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
dolphinrc = {
|
|
|
|
ContentDisplay = {
|
|
|
|
UsePermissionsFormat = "CombinedFormat";
|
|
|
|
};
|
|
|
|
General = {
|
|
|
|
BrowseThroughArchives = true;
|
|
|
|
OpenNewTabAfterLastTab = true;
|
|
|
|
RememberOpenedTabs = false;
|
|
|
|
};
|
|
|
|
};
|
2024-07-10 08:27:17 +01:00
|
|
|
kwinrc = {
|
|
|
|
Plugins = {
|
|
|
|
frozenappEnabled = false;
|
|
|
|
mouseclickEnabled = true;
|
2024-07-10 15:19:45 +01:00
|
|
|
shakecursorEnabled = false;
|
2024-07-19 08:52:17 +01:00
|
|
|
invertEnabled = true;
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
Windows = {
|
|
|
|
FocusPolicy = "FocusFollowsMouse";
|
|
|
|
RollOverDesktops = true;
|
|
|
|
};
|
|
|
|
NightColor = {
|
|
|
|
Active = true;
|
|
|
|
Mode = "Location";
|
|
|
|
LatitudeFixed = "51.7";
|
|
|
|
LongitudeFixed = "-1.2";
|
|
|
|
};
|
|
|
|
"Effect-translucency" = {
|
2024-07-10 15:19:45 +01:00
|
|
|
# Re-enable translucency when I can work out how to apply
|
|
|
|
# blur to all windows
|
2024-07-10 08:27:17 +01:00
|
|
|
Inactive = 100;
|
2024-07-10 15:19:45 +01:00
|
|
|
MoveResize = 100;
|
2024-07-22 14:56:39 +01:00
|
|
|
Dialogs = 100;
|
|
|
|
ComboboxPopups = 100;
|
|
|
|
Menus = 100;
|
2024-07-10 15:19:45 +01:00
|
|
|
};
|
|
|
|
"org.kde.kdecoration2" = {
|
|
|
|
BorderSize = "None";
|
|
|
|
BorderSizeAuto = "false";
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
2024-08-06 14:20:55 +01:00
|
|
|
"Script-krohnkite" = {
|
|
|
|
limitTileWidth = true;
|
|
|
|
screenGapBottom = 5;
|
|
|
|
screenGapLeft = 5;
|
|
|
|
screenGapRight = 5;
|
|
|
|
screenGapTop = 5;
|
|
|
|
tileLayoutGap = 5;
|
|
|
|
};
|
2024-07-10 08:27:17 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2024-08-30 06:29:53 +01:00
|
|
|
xdg.configFile."autostart/org.kde.yakuake.desktop".source = "${pkgs.yakuake}/share/applications/org.kde.yakuake.desktop";
|
2024-07-10 08:27:17 +01:00
|
|
|
}
|