{ 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; }; }; }; }