426 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			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
 | 
						|
  ];
 | 
						|
}
 |