nix/home-manager/modules/plasma.nix

121 lines
No EOL
4.3 KiB
Nix
Executable file

{ pkgs, lib, ty-home-manager-options, ... }:
{
programs.plasma = lib.mkIf ty-home-manager-options.plasma.enable {
enable = true;
workspace = {
# Enable Breeze Dark theme for color and window style
colorScheme = "BreezeDark";
windowDecorations ={
library = "org.kde.breeze";
theme = "Breeze";
};
# Set cursor theme
cursor = {
theme = "Vimix-cursors";
size = 24;
};
# Set icon theme
iconTheme = "beautyline-garuda";
# Set wallpaper to Shell
wallpaper = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers/Shell/contents/images/5120x2880.jpg";
# Set colorful splash screen while plasma is loading
splashScreen.theme = "magna-splash-6";
enableMiddleClickPaste = false;
};
desktop = {
mouseActions.middleClick = "contextMenu";
};
panels = [
{
alignment = "center";
floating = true;
height = 44;
hiding = "dodgewindows";
lengthMode = "fill";
location = "bottom";
screen = "all";
widgets = [
{
name = "org.kde.plasma.kickoff";
config = {
General = {
icon = "nix-snowflake";
};
};
}
"org.kde.plasma.pager"
{
name = "org.kde.plasma.icontasks";
config = {
General = {
launchers = [
# System apps
"applications:systemsettings.desktop" # System Settings
"applications:org.kde.dolphin.desktop" # File Manager
"applications:org.kde.konsole.desktop" # Terminal emulator
# Communication
"applications:vesktop.desktop" # Vesktop (discord)
"applications:element-desktop.desktop" # Element Desktop
"applications:thunderbird.desktop" # Thunderbird
# Internet
"applications:firefox-nightly.desktop" # Firefox
# Other
"applications:logseq.desktop" # LogSeq notes
"applications:codium.desktop" # VSCodium
"applications:steam.desktop" # Steam
];
};
};
}
"org.kde.plasma.marginsseparator"
"org.kde.plasma.systemtray"
"org.kde.plasma.digitalclock"
"org.kde.plasma.showdesktop"
];
}
];
# TODO Powerdevil
kwin = {
edgeBarrier = 0; # Disables the highlighting when approaching an edge with an effect
cornerBarrier = false;
effects = {
blur.enable = true;
shakeCursor.enable = false;
translucency.enable = true;
wobblyWindows.enable = true;
};
virtualDesktops = {
names = [
"Personal 1"
"Personal 2"
"School 1"
"School 2"
];
rows = 2;
};
};
kscreenlocker = {
lockOnResume = true;
timeout = 10;
};
configFile = {
# Enable indexing
baloofilerc."Basic Settings"."Indexing-Enabled" = true;
# Wobbly windows config
kwinrc."Effect-wobblywindows" = {
AdvancedMode = false;
WobblynessLevel = 2;
};
};
};
}