ooknet/modules/home/workstation/appearance/qt/default.nix

426 lines
12 KiB
Nix

{
pkgs,
hozen,
lib,
...
}: let
inherit (hozen) color;
mkKvconig = text: lib.generators.toINI {} text;
kvantumSVG = import ./gruv.nix {inherit color;};
theme = "KvHozen";
in {
imports = [
./kdeglobals.nix
];
qt = {
enable = true;
platformTheme.name = "qtct";
style = {
name = "kvantum";
};
};
xdg.configFile = {
"Kvantum/kvantum.kvconfig".text = mkKvconig {
General = {inherit theme;};
#Applications."${theme}" = "org.kde.dolphin, dolphin-emu, faster-project-plus";
};
"Kvantum/KvHozen/KvHozen.svg".text = kvantumSVG;
"Kvantum/KvHozen/KvHozen.kvconfig".text = mkKvconig {
# docs: <https://github.com/tsujan/Kvantum/blob/master/Kvantum/doc/Theme-Config>
"%General" = {
author = "ooks";
comment = "Hozen theme using Hozen color scheme";
# Window/Widget Behavior
respect_DE = true;
x11drag = "menubar_and_primary_toolbar";
alt_mnemonic = true;
click_behavior = 0;
double_click = false;
inline_spin_indicators = true;
vertical_spin_indicators = false;
spin_button_width = 16;
combo_as_lineedit = true;
combo_menu = true;
hide_combo_checkboxes = true;
combo_focus_rect = true;
groupbox_top_label = true;
button_contents_shift = false;
fill_rubberband = false;
merge_menubar_with_toolbar = true;
toolbutton_style = 1;
# compositing & effects
composite = true;
translucent_windows = true;
reduce_window_opacity = 10;
reduce_menu_opacity = 0;
blurring = false;
popup_blurring = true;
menu_blur_radius = 5;
tooltip_blur_radius = 5;
contrast = 1.00;
intensity = 1.00;
saturation = 1.00;
# animations & visual feedback
animate_states = false;
no_inactiveness = false;
no_window_pattern = false;
# menu configuration
menubar_mouse_tracking = true;
menu_shadow_depth = 7;
tooltip_shadow_depth = 6;
spread_menuitems = true;
submenu_overlap = 0;
spread_progressbar = true;
# scrollbars & sliders
scroll_width = 8;
scroll_min_extent = 36;
scrollbar_in_view = false;
transient_scrollbar = true;
transient_groove = false;
slider_width = 4;
slider_handle_width = 18;
slider_handle_length = 18;
# layout & sizing
layout_spacing = 2;
layout_margin = 4;
small_icon_size = 16;
large_icon_size = 32;
button_icon_size = 16;
toolbar_icon_size = 16;
# widget specific
check_size = 16;
tooltip_delay = -1;
tree_branch_line = true;
progressbar_thickness = 8;
};
# color configuration
GeneralColors = {
# Base Colors
"window.color" = "#${color.layout.menu}";
"inactive.window.color" = "#${color.layout.menu}";
"base.color" = "#${color.layout.body}";
"inactive.base.color" = "#${color.layout.body}";
"alt.base.color" = "#${color.layout.body}";
"button.color" = "#${color.layout.menu}";
"light.color" = "#${color.secondary.base}";
"mid.light.color" = "#${color.secondary.soft1}";
"dark.color" = "#${color.secondary.hard1}";
"mid.color" = "#${color.secondary.base}";
# Highlight Colors
"highlight.color" = "#${color.primary.base}";
"inactive.highlight.color" = "#${color.primary.soft1}";
# Text Colors
"text.color" = "#${color.typography.text}";
"inactive.text.color" = "#${color.typography.subtext}";
"window.text.color" = "#${color.typography.text}";
"inactive.window.text.color" = "#${color.typography.subtext}";
"button.text.color" = "#${color.typography.text}";
"disabled.text.color" = "#${color.typography.subtext}";
"tooltip.text.color" = "#${color.typography.text}";
"highlight.text.color" = "#${color.typography.contrast-text}";
"link.color" = "#${color.blue.base}";
"link.visited.color" = "#${color.purple.base}";
"progress.indicator.text.color" = "#${color.typography.text}";
"progress.inactive.indicator.text.color" = "#${color.typography.subtext}";
};
# Widget-Specific Configurations
Hacks = {
transparent_dolphin_view = false;
blur_konsole = true;
transparent_ktitle_label = true;
transparent_menutitle = true;
respect_darkness = true;
force_size_grip = false;
iconless_pushbutton = true;
iconless_menu = false;
disabled_icon_opacity = 100;
normal_default_pushbutton = true;
tint_on_mouseover = 0;
blur_translucent = true;
kinetic_scrolling = false;
middle_click_scroll = false;
no_selection_tint = false;
};
# Button Configuration
PanelButtonCommand = {
frame = true;
"frame.element" = "button";
"frame.expanded" = true;
interior = true;
"interior.element" = "button";
"indicator.size" = 8;
"text.normal.color" = "#${color.typography.text}";
"text.focus.color" = "#${color.typography.text}";
"text.press.color" = "#${color.typography.text}";
"text.toggle.color" = "#${color.typography.text}";
"text.shadow" = false;
"text.margin" = 1;
"text.iconspacing" = 4;
"frame.expansion" = 6;
};
PanelButtonTool = {
inherits = "PanelButtonCommand";
};
# Window Frames
GenericFrame = {
inherits = "PanelButtonCommand";
frame = true;
"frame.element" = "common";
interior = false;
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
};
# menu configuration
Menu = {
inherits = "PanelButtonCommand";
"frame.element" = "menu";
"interior.element" = "menu";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
};
MenuItem = {
inherits = "PanelButtonCommand";
frame = true;
interior = true;
"interior.element" = "menuitem";
"indicator.size" = 8;
"text.focus.color" = "#${color.typography.text}";
"text.press.color" = "#${color.typography.text}";
};
MenuBarItem = {
inherits = "PanelButtonCommand";
"interior.element" = "menubaritem";
frame = false;
"text.margin.top" = 3;
"text.margin.bottom" = 3;
"text.margin.left" = 5;
"text.margin.right" = 5;
};
MenuBar = {
inherits = "PanelButtonCommand";
"frame.element" = "menubar";
"interior.element" = "menubar";
"frame.bottom" = 0;
"text.normal.color" = "#${color.typography.text}";
};
# Scrollbars
ScrollbarSlider = {
inherits = "PanelButtonCommand";
frame = true;
interior = false;
"frame.element" = "scrollbarslider";
"indicator.element" = "grip";
"indicator.size" = 13;
"frame.left" = 6;
"frame.right" = 6;
"frame.top" = 6;
"frame.bottom" = 6;
};
ScrollbarGroove = {
inherits = "PanelButtonCommand";
interior = false;
frame = false;
};
# Sliders
Slider = {
inherits = "PanelButtonCommand";
frame = false;
"interior.element" = "slider";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
};
SliderCursor = {
inherits = "PanelButtonCommand";
frame = false;
"interior.element" = "slidercursor";
};
# Progress Bars
Progressbar = {
inherits = "PanelButtonCommand";
"frame.element" = "progress";
"interior.element" = "progress";
"text.margin" = 0;
"text.normal.color" = "#${color.typography.text}";
"text.focus.color" = "#${color.typography.text}";
"text.press.color" = "#${color.typography.contrast-text}";
"text.toggle.color" = "#${color.typography.contrast-text}";
};
ProgressbarContents = {
inherits = "PanelButtonCommand";
frame = true;
"frame.element" = "progress-pattern";
"interior.element" = "progress-pattern";
};
# Tabs
TabBarFrame = {
inherits = "GenericFrame";
frame = true;
"frame.element" = "tabBarFrame";
interior = false;
"frame.top" = 4;
"frame.bottom" = 4;
"frame.left" = 4;
"frame.right" = 4;
};
TabFrame = {
inherits = "PanelButtonCommand";
"frame.element" = "tabframe";
"interior.element" = "tabframe";
};
Tab = {
inherits = "PanelButtonCommand";
"interior.element" = "tab";
"frame.element" = "tab";
"frame.top" = 2;
"frame.bottom" = 2;
"frame.left" = 2;
"frame.right" = 2;
"text.margin.left" = 8;
"text.margin.right" = 8;
"text.margin.top" = 2;
"text.margin.bottom" = 2;
};
# Line Edits
LineEdit = {
inherits = "PanelButtonCommand";
"frame.element" = "lineedit";
"interior.element" = "lineedit";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
"text.margin.top" = 2;
"text.margin.bottom" = 2;
"text.margin.left" = 2;
"text.margin.right" = 2;
};
# Combo Boxes
ComboBox = {
inherits = "PanelButtonCommand";
"frame.element" = "combo";
"interior.element" = "combo";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
"text.margin.top" = 2;
"text.margin.bottom" = 2;
"text.margin.left" = 2;
"text.margin.right" = 2;
"indicator.element" = "carrow";
};
# Spinboxes
SpinBox = {
inherits = "ComboBox";
"frame.element" = "spinbox";
"interior.element" = "spinbox";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
"indicator.element" = "arrow";
"indicator.size" = 8;
};
# Group Boxes
GroupBox = {
inherits = "GenericFrame";
frame = true;
"frame.element" = "group";
interior = false;
"frame.top" = 4;
"frame.bottom" = 4;
"frame.left" = 4;
"frame.right" = 4;
};
# tooltips
ToolTip = {
inherits = "PanelButtonCommand";
"frame.top" = 3;
"frame.bottom" = 3;
"frame.left" = 3;
"frame.right" = 3;
interior = true;
"text.shadow" = false;
"text.margin" = 0;
"frame.element" = "tooltip";
"interior.element" = "tooltip";
"frame.expansion" = 0;
};
# window decorations
Window = {
interior = true;
"interior.element" = "window";
"frame.element" = "window";
"frame.top" = 0;
"frame.bottom" = 0;
"frame.left" = 0;
"frame.right" = 0;
};
Dialog = {
inherits = "Window";
};
};
};
home.packages = with pkgs; [
libsForQt5.qt5.qtwayland
kdePackages.qtwayland
kdePackages.qqc2-desktop-style
kdePackages.qttools
qt6Packages.qt6gtk2
qt6.qtwayland
libsForQt5.qtstyleplugins
qt6Packages.qt6gtk2
libsForQt5.qt5ct
kdePackages.qt6ct
#libsForQt5.breeze-qt5
#kdePackages.breeze-icons
# kvantum libraries
libsForQt5.qtstyleplugin-kvantum
qt6Packages.qtstyleplugin-kvantum
];
}