From 3ce00e1fe33decc6b9ab40bdfdda72255b1eafcb Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Wed, 21 Jan 2026 10:33:10 -0500 Subject: update qt theme --- home/default.nix | 2 +- home/qt.nix | 32 - home/qt/default.nix | 40 + home/qt/kvconfig.nix | 513 +++ home/qt/svg.nix | 9522 ++++++++++++++++++++++++++++++++++++++++++++++++++ system/desktop.nix | 7 - 6 files changed, 10076 insertions(+), 40 deletions(-) delete mode 100644 home/qt.nix create mode 100644 home/qt/default.nix create mode 100644 home/qt/kvconfig.nix create mode 100644 home/qt/svg.nix diff --git a/home/default.nix b/home/default.nix index d08f8ef..2c0976b 100644 --- a/home/default.nix +++ b/home/default.nix @@ -14,6 +14,7 @@ in { ./desktops ./gtk ./neovim + ./qt ./ssh ./tmux ./zsh @@ -21,7 +22,6 @@ in { ./gaming.nix ./git.nix ./gpg.nix - ./qt.nix ./starship.nix ]; diff --git a/home/qt.nix b/home/qt.nix deleted file mode 100644 index 49ea0c1..0000000 --- a/home/qt.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - lib, - config, - ... -}: let - font = "${config.theme.font.regular},10"; - qtctConf = - lib.generators.toINI {} - { - Appearance = { - custom_palette = false; - icon_theme = config.gtk.iconTheme.name; - standard_dialogs = "xdgdesktopportal"; - style = "gtk2"; - }; - Fonts = { - fixed = font; - general = font; - }; - }; -in { - qt = { - enable = true; - platformTheme.name = "qtct"; - style.name = "gtk2"; - }; - - xdg.configFile = { - "qt5ct/qt5ct.conf".text = qtctConf; - "qt6ct/qt6ct.conf".text = qtctConf; - }; -} diff --git a/home/qt/default.nix b/home/qt/default.nix new file mode 100644 index 0000000..3071bf4 --- /dev/null +++ b/home/qt/default.nix @@ -0,0 +1,40 @@ +{ + lib, + config, + ... +}: let + mkQtctConf = font: + lib.generators.toINI {} + { + Appearance = { + custom_palette = false; + icon_theme = config.gtk.iconTheme.name; + standard_dialogs = "xdgdesktopportal"; + style = "kvantum"; + }; + Fonts = { + fixed = font; + general = font; + }; + }; +in { + qt = { + enable = true; + platformTheme.name = "qtct"; + style.name = "kvantum"; + }; + + xdg.configFile = let + font = "${config.theme.font.regular},10"; + in { + # load in Kvantum theme + "Kvantum/kvantum.kvconfig".text = lib.generators.toINI {} { + General.theme = "theme"; + }; + "Kvantum/theme/theme.svg".text = import ./svg.nix {inherit config;}; + "Kvantum/theme/theme.kvconfig".text = import ./kvconfig.nix {inherit config;}; + + "qt5ct/qt5ct.conf".text = mkQtctConf ''"${font},-1,5,50,0,0,0,0,0"''; + "qt6ct/qt6ct.conf".text = mkQtctConf ''"${font},-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"''; + }; +} diff --git a/home/qt/kvconfig.nix b/home/qt/kvconfig.nix new file mode 100644 index 0000000..83b189c --- /dev/null +++ b/home/qt/kvconfig.nix @@ -0,0 +1,513 @@ +{config}: let + theme = config.theme; + inherit + (theme.colors) + base + surface + text + subtext + primary + ; + link = theme.colors.normal.blue; + visited = theme.colors.normal.magenta; + innerGap = toString theme.innerGap; + outerGap = toString theme.outerGap; +in '' + [%General] + author=Keystistic + comment=Breeze for Kvantum, based on Breeze Plasma theme and color scheme & Monochrome KDE Kvantum theme + x11drag=menubar_and_primary_toolbar + alt_mnemonic=true + left_tabs=true + attach_active_tab=true + mirror_doc_tabs=true + group_toolbar_buttons=false + toolbar_item_spacing=1 + toolbar_interior_spacing=3 + spread_progressbar=true + composite=true + menu_shadow_depth=5 + menu_separator_height=6 + tooltip_shadow_depth=6 + splitter_width=4 + scroll_width=6 + scroll_arrows=false + scroll_min_extent=60 + slider_width=5 + slider_handle_width=18 + slider_handle_length=18 + center_toolbar_handle=true + check_size=16 + textless_progressbar=false + progressbar_thickness=6 + menubar_mouse_tracking=true + toolbutton_style=1 + double_click=false + translucent_windows=false + blurring=true + popup_blurring=true + vertical_spin_indicators=true + spin_button_width=32 + fill_rubberband=false + merge_menubar_with_toolbar=true + small_icon_size=16 + large_icon_size=32 + button_icon_size=22 + toolbar_icon_size=22 + combo_as_lineedit=true + animate_states=false + button_contents_shift=true + combo_menu=true + hide_combo_checkboxes=true + combo_focus_rect=true + groupbox_top_label=true + inline_spin_indicators=false + joined_inactive_tabs=false + layout_spacing=${innerGap} + layout_margin=${innerGap} + scrollbar_in_view=true + transient_scrollbar=true + transient_groove=false + submenu_overlap=0 + tooltip_delay=-1 + tree_branch_line=true + dark_titlebar=true + opaque=QMPlay2,kaffeine,kmplayer,subtitlecomposer,vlc,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam + reduce_window_opacity=0 + scrollable_menu=false + submenu_delay=250 + no_inactiveness=false + no_window_pattern=false + reduce_menu_opacity=0 + respect_DE=true + click_behavior=0 + contrast=1.30 + dialog_button_layout=0 + drag_from_buttons=false + intensity=1.10 + saturation=1.20 + shadowless_popup=false + + [GeneralColors] + window.color=#${base} + base.color=#${surface} + alt.base.color=#${surface} + button.color=#${surface} + light.color=#${surface} + mid.light.color=#${base} + dark.color=#1e1e1e + mid.color=#${base} + highlight.color=#${primary} + inactive.highlight.color=#${primary} + text.color=#${text} + window.text.color=#${text} + button.text.color=#${text} + disabled.text.color=#${subtext}70 + tooltip.text.color=#${text} + highlight.text.color=#${base} + link.color=#${link} + link.visited.color=#${visited} + progress.indicator.text.color=#${text} + + [Hacks] + transparent_ktitle_label=false + transparent_dolphin_view=false + transparent_pcmanfm_sidepane=false + blur_translucent=true + transparent_menutitle=false + transparent_arrow_button=false + respect_darkness=true + kcapacitybar_as_progressbar=true + force_size_grip=true + iconless_pushbutton=false + iconless_menu=false + disabled_icon_opacity=100 + lxqtmainmenu_iconsize=22 + normal_default_pushbutton=true + single_top_toolbar=true + tint_on_mouseover=0 + transparent_pcmanfm_view=false + middle_click_scroll=false + no_selection_tint=false + opaque_colors=false + centered_forms=false + kinetic_scrolling=false + noninteger_translucency=false + + [PanelButtonCommand] + frame=true + frame.element=button + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + interior=true + interior.element=button + indicator.size=8 + text.normal.color=#${text} + text.focus.color=white + text.press.color=#${base} + text.toggle.color=white + text.shadow=0 + text.margin=1 + text.iconspacing=4 + indicator.element=arrow + text.margin.top=${innerGap} + text.margin.bottom=${innerGap} + text.margin.left=${innerGap} + text.margin.right=${innerGap} + min_width=+0.3font + min_height=+0.3font + frame.expansion=8 + + [PanelButtonTool] + inherits=PanelButtonCommand + + [Dock] + inherits=PanelButtonCommand + interior.element=dock + frame.element=dock + frame.top=1 + frame.bottom=1 + frame.left=1 + frame.right=1 + text.normal.color=#${text} + + [DockTitle] + inherits=PanelButtonCommand + frame=false + interior=false + text.normal.color=#${text} + text.focus.color=#${subtext} + text.bold=false + + [IndicatorSpinBox] + inherits=PanelButtonCommand + frame=true + interior=true + frame.left=1 + indicator.element=spin + indicator.size=10 + text.normal.color=#${text} + + [RadioButton] + inherits=PanelButtonCommand + frame=false + interior.element=radio + text.normal.color=#${text} + text.focus.color=#${subtext} + + [CheckBox] + inherits=PanelButtonCommand + frame=false + interior.element=checkbox + text.normal.color=#${text} + text.focus.color=#${subtext} + + [Focus] + inherits=PanelButtonCommand + frame=true + frame.element=focus + frame.top=1 + frame.bottom=1 + frame.left=1 + frame.right=1 + frame.patternsize=${innerGap}0 + + [GenericFrame] + inherits=PanelButtonCommand + frame=true + interior=false + frame.element=common + interior.element=common + frame.top=1 + frame.bottom=1 + frame.left=1 + frame.right=1 + + [LineEdit] + inherits=PanelButtonCommand + frame.element=lineedit + interior.element=lineedit + text.margin.left=0 + text.margin.right=0 + + [DropDownButton] + inherits=PanelButtonCommand + indicator.element=arrow-down + + [IndicatorArrow] + indicator.element=arrow + indicator.size=8 + + [ToolboxTab] + inherits=PanelButtonCommand + text.normal.color=#${text} + text.focus.color=#${subtext} + text.press.color=#${subtext} + + [Tab] + inherits=PanelButtonCommand + interior.element=tab + text.margin.left=${outerGap} + text.margin.right=${outerGap} + text.margin.top=${innerGap} + text.margin.bottom=${innerGap} + frame.element=tab + indicator.element=tab + indicator.size=16 + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + text.normal.color=#${text} + text.focus.color=#${text} + text.toggle.color=#${text} + frame.expansion=0 + + [TabFrame] + inherits=PanelButtonCommand + frame.element=tabframe + interior.element=tabframe + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + + [TreeExpander] + inherits=PanelButtonCommand + indicator.size=12 + indicator.element=tree + + [HeaderSection] + inherits=PanelButtonCommand + interior.element=header + frame.element=header + frame.top=1 + frame.bottom=1 + frame.left=1 + frame.right=1 + text.bold=false + text.normal.color=#${text} + text.focus.color=#${subtext} + text.press.color=#${base} + text.toggle.color=#${text} + frame.expansion=0 + + [SizeGrip] + indicator.element=resize-grip + / + [Toolbar] + inherits=PanelButtonCommand + indicator.element=toolbar + indicator.size=5 + text.margin=0 + frame=true + interior.element=menubar + frame.element=menubar + text.normal.color=#${text} + text.focus.color=#${subtext} + frame.left=0 + frame.right=0 + frame.top=0 + frame.bottom=1 + frame.expansion=0 + + [Slider] + inherits=PanelButtonCommand + frame.element=slider + interior.element=slider + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + + [SliderCursor] + inherits=PanelButtonCommand + frame=false + interior.element=slidercursor + + [Progressbar] + inherits=PanelButtonCommand + frame.element=progress + interior.element=progress + text.margin=0 + text.normal.color=#${text} + text.focus.color=#${subtext} + text.press.color=#${base} + text.toggle.color=#${text} + text.bold=false + frame.expansion=${innerGap} + + [ProgressbarContents] + inherits=PanelButtonCommand + frame=true + frame.element=progress-pattern + interior.element=progress-pattern + + [ItemView] + inherits=PanelButtonCommand + text.margin=0 + frame.element=itemview + interior.element=itemview + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + text.margin.top=${innerGap} + text.margin.bottom=${innerGap} + text.margin.left=${innerGap} + text.margin.right=${innerGap} + text.normal.color=#${text} + text.focus.color=#${subtext} + text.press.color=#${base} + text.toggle.color=#${text} + min_width=+0.3font + min_height=+0.3font + frame.expansion=0 + + [Splitter] + indicator.size=48 + + [Scrollbar] + inherits=PanelButtonCommand + indicator.element=arrow + indicator.size=8 + + [ScrollbarSlider] + inherits=PanelButtonCommand + interior.element=scrollbarslider + interior=true + frame=false + frame.expansion=${innerGap}8 + + [ScrollbarGroove] + inherits=PanelButtonCommand + interior.element=scrollbargroove + interior=true + frame=false + frame.expansion=${innerGap}8 + + [MenuItem] + inherits=PanelButtonCommand + frame=true + frame.element=menuitem + interior.element=menuitem + indicator.element=menuitem + text.normal.color=#${text} + text.focus.color=#${base} + text.margin.top=1 + text.margin.bottom=1 + text.margin.left=${innerGap} + text.margin.right=${innerGap} + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + text.bold=false + min_width=+0.3font + min_height=+0.3font + frame.expansion=0 + + [MenuBar] + inherits=PanelButtonCommand + frame.element=menubar + interior.element=menubar + text.normal.color=#${text} + frame.bottom=0 + frame.expansion=0 + + [MenuBarItem] + inherits=PanelButtonCommand + interior=true + interior.element=menubaritem + frame.element=menubaritem + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + text.margin.left=${innerGap} + text.margin.right=${innerGap} + text.margin.top=0 + text.margin.bottom=0 + text.normal.color=#${text} + text.focus.color=#${base} + frame.expansion=0 + + [TitleBar] + inherits=PanelButtonCommand + frame=false + text.margin.top=${innerGap} + text.margin.bottom=${innerGap} + text.margin.left=${innerGap} + text.margin.right=${innerGap} + interior.element=titlebar + indicator.size=16 + indicator.element=mdi + text.normal.color=#${text} + text.focus.color=#${subtext} + text.bold=true + text.italic=false + frame.expansion=0 + + [ComboBox] + inherits=PanelButtonCommand + interior.element=combo + frame.element=combo + text.press.color=#${subtext} + indicator.element=carrow + + [Menu] + inherits=PanelButtonCommand + frame.top=1 + frame.bottom=1 + frame.left=1 + frame.right=1 + frame.element=menu + interior.element=menu + text.normal.color=#${text} + text.shadow=false + frame.expansion=0 + + [GroupBox] + inherits=GenericFrame + frame=false + text.shadow=0 + text.margin=0 + text.normal.color=#${text} + text.focus.color=#${subtext} + text.bold=true + frame.expansion=0 + + [TabBarFrame] + inherits=GenericFrame + frame=true + frame.element=tabBarFrame + interior=false + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + + [ToolTip] + inherits=GenericFrame + frame.top=${innerGap} + frame.bottom=${innerGap} + frame.left=${innerGap} + frame.right=${innerGap} + interior=true + text.shadow=0 + text.margin=0 + interior.element=tooltip + frame.element=tooltip + frame.expansion=0 + + [StatusBar] + inherits=GenericFrame + frame=false + interior=false + + [Window] + interior=true + interior.element=window +'' diff --git a/home/qt/svg.nix b/home/qt/svg.nix new file mode 100644 index 0000000..d393232 --- /dev/null +++ b/home/qt/svg.nix @@ -0,0 +1,9522 @@ +{config}: let + theme = config.theme; + inherit + (theme.colors) + base + surface + primary + ; +in '' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Invisible elements here + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +'' diff --git a/system/desktop.nix b/system/desktop.nix index 9017ce7..8a37148 100644 --- a/system/desktop.nix +++ b/system/desktop.nix @@ -31,13 +31,6 @@ in { # gtk portal? programs.dconf.enable = true; - # qt - qt = { - enable = true; - platformTheme = "gtk2"; - style = "gtk2"; - }; - # audio / video services.pipewire = { enable = true; -- cgit v1.2.3-freya