feat(plasma): integrate plasma-manager with custom Breeze decoration and shortcuts

Add the plasma-manager flake input and wire it into home-manager,
along with a custom breeze-enhanced KWin decoration package, KDE
config (fonts, cursor theme, window rules), and .desktop entries
for OBS/volctl/Warudo shortcut scripts.
This commit is contained in:
emmatherock committed 2026-08-09 21:48:20 -03:00
1 parent d4d3ecfdf0
commit 361d4f9e8f
6 files changed
+285 -32

No files matched your search

+1
View File
@@ -8,6 +8,7 @@
./git.nix
./media.nix
./packages.nix
./plasma.nix
./shell.nix
./vscode.nix
];
+175
View File
@@ -0,0 +1,175 @@
{ config, pkgs, ... }:
{
home.packages = [ pkgs.bibata-cursors pkgs.breeze-enhanced ];
programs.plasma = {
enable = true;
shortcuts = {
# Atajos personalizados para scripts propios (net.local.*)
"services/net.local.switch-obs-2.desktop"._launch = "F13";
"services/net.local.switch-obs-3.desktop"._launch = "Meta+Ctrl+F8";
"services/net.local.switch-obs-4.desktop"._launch = "Meta+Ctrl+F9";
"services/net.local.switch-obs-5.desktop"._launch = "F15";
"services/net.local.switch-obs-6.desktop"._launch = "Meta+Ctrl+F10";
"services/net.local.switch-obs.desktop"._launch = "F14";
"services/net.local.volctl-10.desktop"._launch = "F23";
"services/net.local.volctl-11.desktop"._launch = "F20";
"services/net.local.volctl-12.desktop"._launch = "F21";
"services/net.local.volctl-7.desktop"._launch = "F18";
"services/net.local.volctl-8.desktop"._launch = "F19";
"services/net.local.volctl-9.desktop"._launch = "F22";
"services/net.local.warudo-client-2.desktop"._launch = "F16";
"services/net.local.warudo-client.desktop"._launch = "Meta+Ctrl+F7";
"services/net.local.wpctl.desktop"._launch = "Alt+F18";
};
configFile = {
kdeglobals.General.XftAntialias = true;
kdeglobals.General.XftHintStyle = "hintslight";
kdeglobals.General.XftSubPixel = "vbgr";
kdeglobals.General.accentColorFromWallpaper = true;
kdeglobals.General.fixed = "SFMono Nerd Font,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.General.font = "SF Pro,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.General.menuFont = "SF Pro,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.General.smallestReadableFont = "SF Pro,8,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.General.toolBarFont = "SF Pro,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.WM.activeBackground = "39,44,49";
kdeglobals.WM.activeBlend = "252,252,252";
kdeglobals.WM.activeFont = "SF Pro,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0";
kdeglobals.WM.activeForeground = "252,252,252";
kdeglobals.WM.inactiveBackground = "32,36,40";
kdeglobals.WM.inactiveBlend = "161,169,177";
kdeglobals.WM.inactiveForeground = "161,169,177";
kiorc.Confirmations.ConfirmDelete = true;
# Wallpaper del lockscreen: reemplazá esta ruta o usá config.home.homeDirectory
kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".Image = "${config.home.homeDirectory}/Imágenes/image.png";
kscreenlockerrc."Greeter/Wallpaper/org.kde.image/General".PreviewImage = "${config.home.homeDirectory}/Imágenes/image.png";
kwinrc.Windows.PerOutputVirtualDesktops = true;
kwinrc.Xwayland.Scale = 1;
kwinrc."org.kde.kdecoration2".ButtonsOnLeft = "XIA";
kwinrc."org.kde.kdecoration2".ButtonsOnRight = "SHME";
kwinrc."org.kde.kdecoration2".theme = "BreezeEnhanced";
kxkbrc.Layout.Options = "fkeys:basic_13-24";
kxkbrc.Layout.ResetOldOptions = true;
plasma-localerc.Formats.LANG = "es_AR.UTF-8";
};
window-rules = [
{
description = "Warudo Editor";
match = {
window-class = "steam_app_2079120";
title = { value = "Warudo Editor"; type = "substring"; };
machine = "localhost";
window-types = [ "normal" ];
};
apply = {
maximizehoriz = true;
maximizevert = true;
};
}
{
description = "Warudo (cualquier versión)";
match = {
window-class = "steam_app_2079120";
title = { value = "^Warudo [0-9]+\\.[0-9]+\\.[0-9]+$"; type = "regex"; };
};
apply = {
fullscreen = true;
};
}
];
};
# .desktop entries para los scripts que llaman los shortcuts de arriba.
# rc2nix no captura esto — sin esto, los atajos no van a encontrar nada que ejecutar.
xdg.desktopEntries = {
"net.local.switch-obs" = {
name = "Overlay Scene 1";
exec = ''switch-obs "Overlay Scene 1"'';
type = "Application";
};
"net.local.switch-obs-2" = {
name = "Game Scene - Left";
exec = ''switch-obs "Game Scene - Left"'';
type = "Application";
};
"net.local.switch-obs-3" = {
name = "Game Scene - Right";
exec = ''switch-obs "Game Scene - Right"'';
type = "Application";
};
"net.local.switch-obs-4" = {
name = "Overlay Scene 2";
exec = ''switch-obs "Overlay Scene 2"'';
type = "Application";
};
"net.local.switch-obs-5" = {
name = "Brb Scene";
exec = ''switch-obs "Brb Scene"'';
type = "Application";
};
"net.local.switch-obs-6" = {
name = "Chatting Scene";
exec = ''switch-obs "Chatting Scene"'';
type = "Application";
};
"net.local.volctl-7" = {
name = "music-chain -1";
exec = "volctl music-chain -1";
type = "Application";
};
"net.local.volctl-8" = {
name = "music-chain +1";
exec = "volctl music-chain +1";
type = "Application";
};
"net.local.volctl-9" = {
name = "discord-chain -1";
exec = "volctl discord-chain -1";
type = "Application";
};
"net.local.volctl-10" = {
name = "discord-chain +1";
exec = "volctl discord-chain +1";
type = "Application";
};
"net.local.volctl-11" = {
name = "misc-chain -1";
exec = "volctl misc-chain -1";
type = "Application";
};
"net.local.volctl-12" = {
name = "misc-chain +1";
exec = "volctl misc-chain +1";
type = "Application";
};
"net.local.warudo-client" = {
name = "Warudo: lolping";
exec = "warudo-client --action lolping";
type = "Application";
};
"net.local.warudo-client-2" = {
name = "Warudo: calibrate";
exec = "warudo-client --action calibrate";
type = "Application";
};
"net.local.wpctl" = {
name = "Mic Toggle";
exec = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
type = "Application";
};
};
}