nixos-config/profiles/workspace/kde/qt.nix

222 lines
6.3 KiB
Nix

{ pkgs, lib, config, ... }:
with pkgs.my-lib;
let
colorTheme = with (thmDec config.themes.colors); {
"Colors:Button" = {
BackgroundAlternate = base01;
BackgroundNormal = base01;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base0D;
ForegroundInactive = base01;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base09;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base03;
};
"Colors:Complementary" = {
BackgroundAlternate = base01;
BackgroundNormal = base03;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base0D;
ForegroundInactive = base01;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base0A;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base02;
};
"Colors:Selection" = {
BackgroundAlternate = base0D;
BackgroundNormal = base0D;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base05;
ForegroundInactive = base05;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base09;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base02;
};
"Colors:Tooltip" = {
BackgroundAlternate = base01;
BackgroundNormal = base00;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base0D;
ForegroundInactive = base01;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base09;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base03;
};
"Colors:View" = {
BackgroundAlternate = base01;
BackgroundNormal = base00;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base0D;
ForegroundInactive = base01;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base09;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base03;
};
"Colors:Window" = {
BackgroundAlternate = base01;
BackgroundNormal = base00;
DecorationFocus = base0D;
DecorationHover = base0D;
ForegroundActive = base0D;
ForegroundInactive = base01;
ForegroundLink = base0D;
ForegroundNegative = base08;
ForegroundNeutral = base09;
ForegroundNormal = base05;
ForegroundPositive = base0B;
ForegroundVisited = base03;
};
General = {
ColorScheme = "Generated";
Name = "Generated";
shadeSortColumn = true;
};
KDE.contrast = 4;
WM = {
activeBackground = base00;
activeBlend = base06;
activeForeground = base05;
inactiveBackground = base01;
inactiveBlend = base02;
inactiveForeground = base04;
};
};
misc = with config.themes; {
Icons.Theme = "breeze-dark";
KDE = {
DoubleClickInterval = 400;
ShowDeleteCommand = true;
SingleClick = false;
StartDragDist = 4;
StartDragTime = 500;
WheelScrollLines = 3;
widgetStyle = "Breeze";
};
General = {
TerminalApplication = "alacritty";
fixed =
"${fonts.mono.family},${toString fonts.mono.size},-1,5,50,0,0,0,0,0";
font =
"${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0";
menuFont =
"${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0";
smallestReadableFont = "${fonts.main.family},${
toString fonts.main.size
},-1,5,57,0,0,0,0,0,Medium";
toolBarFont =
"${fonts.main.family},${toString fonts.main.size},-1,5,50,0,0,0,0,0";
};
};
effects = with (thmDec config.themes.colors); {
"ColorEffects:Disabled" = {
Color = base02;
ColorAmount = "0";
ColorEffect = "0";
ContrastAmount = "0.65";
ContrastEffect = "1";
IntensityAmount = "0.1";
IntensityEffect = "2";
};
"ColorEffects:Inactive" = {
ChangeSelectionColor = "true";
Color = base03;
ColorAmount = "0.025";
ColorEffect = "2";
ContrastAmount = "0.1";
ContrastEffect = "2";
Enable = "false";
IntensityAmount = "0";
IntensityEffect = "0";
};
};
desktopThemeColors = pkgs.writeText "generated-plasma-theme-colors"
(lib.generators.toGitINI
(builtins.foldl' lib.recursiveUpdate { } [ colorTheme effects ]));
desktopThemeRc = pkgs.writeText "generated-plasma-theme-rc"
(lib.generators.toGitINI {
Wallpaper = {
defaultWallpaperTheme = "Next";
defaultFileSuffix = ".png";
defaultWidth = "1920";
defaultHeight = "1080";
};
ContrastEffect = {
enabled = "true";
contrast = "0.17";
intensity = "1.25";
saturation = "9";
};
AdaptiveTransparency.enabled = "true";
});
desktopTheme = pkgs.linkFarm "generated-plasma-theme" [
{
name = "share/plasma/desktoptheme/generated/plasmarc";
path = desktopThemeRc;
}
{
name = "share/plasma/desktoptheme/generated/colors";
path = desktopThemeColors;
}
];
in {
environment.systemPackages = [ desktopTheme ];
xdg.portal.enable = true;
services.dbus.packages = [ pkgs.systemd pkgs.breeze-icons ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
qt.enable = false;
environment.sessionVariables = {
QT_XFT = "true";
QT_SELECT = "5";
KDE_SESSION_VERSION = "5";
QT_SCALE_FACTOR = "1";
QT_AUTO_SCREEN_SCALE_FACTOR = "0";
QT_QPA_PLATFORMTHEME = "kde";
KDEDIRS =
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
};
defaultApplications = {
fm = {
cmd = "${pkgs.dolphin}/bin/dolphin";
desktop = "org.kde.dolphin";
};
archive = {
cmd = "${pkgs.ark}/bin/ark";
desktop = "org.kde.ark";
};
};
home-manager.users.balsoft = {
home.packages = [ pkgs.ark pkgs.dolphin ];
xdg.configFile."kdeglobals".text = lib.generators.toGitINI
(builtins.foldl' lib.recursiveUpdate { } [ colorTheme misc ]);
};
}