372 lines
9.6 KiB
Nix
372 lines
9.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
stylix.targets.kde.enable = false;
|
|
imports = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
|
|
home.packages = with pkgs; [
|
|
protonmail-bridge-gui
|
|
libreoffice-qt-fresh
|
|
rc2nix
|
|
wl-clipboard
|
|
];
|
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-qt;
|
|
programs.plasma = {
|
|
enable = true;
|
|
overrideConfig = true;
|
|
|
|
workspace = {
|
|
# theme = "default";
|
|
# colorScheme = "Breeze";
|
|
iconTheme = config.gtk.iconTheme.name;
|
|
# windowDecorations = {
|
|
# library = "org.kde.breeze";
|
|
# theme = "Breeze";
|
|
# };
|
|
cursor = {
|
|
inherit (config.home.pointerCursor) size;
|
|
theme = config.home.pointerCursor.name;
|
|
};
|
|
wallpaper = config.stylix.image;
|
|
};
|
|
|
|
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-alacritty" = {
|
|
name = "Launch Alacritty terminal emulator";
|
|
key = "Ctrl+Alt+T";
|
|
command = "alacritty";
|
|
};
|
|
"launch-emacs" = {
|
|
name = "Launch Emacs Client Window";
|
|
key = "Meta+Alt+X";
|
|
command = "emacsclient -c";
|
|
};
|
|
};
|
|
|
|
panels = [
|
|
{
|
|
height = 24;
|
|
lengthMode = "fill";
|
|
location = "top";
|
|
alignment = "center";
|
|
hiding = "normalpanel";
|
|
floating = true;
|
|
screen = "all";
|
|
widgets = [
|
|
"org.kde.plasma.appmenu"
|
|
"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";
|
|
};
|
|
}
|
|
];
|
|
}
|
|
{
|
|
height = 48;
|
|
lengthMode = "fit";
|
|
location = "bottom";
|
|
alignment = "center";
|
|
hiding = "dodgewindows";
|
|
floating = true;
|
|
screen = "all";
|
|
widgets = [
|
|
{
|
|
name = "org.kde.plasma.kickoff";
|
|
config.General = {
|
|
icon = "nix-snowflake";
|
|
primaryActions = "0";
|
|
favoritesDisplay = "0";
|
|
applicationsDisplay = "1";
|
|
pin = "false";
|
|
showActionButtonCaptions = "true";
|
|
compactMode = "false";
|
|
};
|
|
}
|
|
"org.kde.plasma.marginsseparator"
|
|
{
|
|
name = "org.kde.plasma.icontasks";
|
|
config.General = {
|
|
maxStripes = "1";
|
|
showToolTips = "true";
|
|
launchers = [
|
|
"preferred://filemanager"
|
|
"preferred://browser"
|
|
"applications:emacs.desktop"
|
|
];
|
|
};
|
|
}
|
|
];
|
|
}
|
|
];
|
|
|
|
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;
|
|
kwalletrc."org.freedesktop.secrets" = {
|
|
Enabled = false;
|
|
apiEnabled = false;
|
|
};
|
|
kcminputrc.Keyboard.NumLock = 1;
|
|
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" = {
|
|
Inactive = 100;
|
|
MoveResize = 100;
|
|
Dialogs = 100;
|
|
ComboboxPopups = 100;
|
|
Menus = 100;
|
|
};
|
|
"org.kde.kdecoration2" = {
|
|
BorderSize = "None";
|
|
BorderSizeAuto = "false";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
xdg.configFile."autostart/proton-bridge-gui.desktop".source = "${pkgs.protonmail-bridge-gui}/share/applications/proton-bridge-gui.desktop";
|
|
}
|