251 lines
6.5 KiB
Nix
251 lines
6.5 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
fonts,
|
|
rc2nix,
|
|
accentColourName,
|
|
...
|
|
}: {
|
|
imports = [
|
|
../default.nix
|
|
./konsole.nix
|
|
];
|
|
home.packages = with pkgs; [
|
|
rc2nix
|
|
wl-clipboard
|
|
(papirus-icon-theme.override {color = "violet";})
|
|
];
|
|
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.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;
|
|
};
|
|
wallpaper = "${../wallpapers/landscapes/tropic_island_day.jpg}";
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
hotkeys.commands = {
|
|
"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.kickoff";
|
|
config.General = {
|
|
icon = "nix-snowflake";
|
|
primaryActions = "0";
|
|
favoritesDisplay = "0";
|
|
applicationsDisplay = "1";
|
|
pin = "false";
|
|
showActionButtonCaptions = "true";
|
|
compactMode = "false";
|
|
};
|
|
}
|
|
{
|
|
name = "org.kde.plasma.icontasks";
|
|
config.General = {
|
|
maxStripes = "1";
|
|
showToolTips = "true";
|
|
launchers = [
|
|
"preferred://filemanager"
|
|
"preferred://browser"
|
|
];
|
|
};
|
|
}
|
|
{
|
|
name = "org.kde.plasma.pager";
|
|
config.General = {
|
|
showWindowIcons = "true";
|
|
showOnlyCurrentScreen = "false";
|
|
wrapPage = "true";
|
|
};
|
|
}
|
|
"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";
|
|
};
|
|
"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;
|
|
};
|
|
};
|
|
|
|
configFile = {
|
|
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
|
plasmanotifyrc.Notifications.NormalAlwaysOnTop = true;
|
|
kcminputrc.Keyboard.NumLock = 1;
|
|
krunnerrc.General.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.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;
|
|
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";
|
|
};
|
|
};
|
|
kwinrc = {
|
|
Plugins = {
|
|
frozenappEnabled = false;
|
|
mouseclickEnabled = true;
|
|
shakecursorEnabled = false;
|
|
};
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|