From 5a7c6a8a9a58280749aa4cbeeca8e11cd5c0d64d Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Thu, 15 Jan 2026 10:14:31 -0800 Subject: [PATCH 1/4] theme: use qtengine --- flake.lock | 22 ++++++++++++++++++++ flake.nix | 13 +++--------- modules/theme/default.nix | 28 ++++++++++++++++++++++++-- modules/theme/home.nix | 42 +-------------------------------------- 4 files changed, 52 insertions(+), 53 deletions(-) diff --git a/flake.lock b/flake.lock index ef1c06b..560bf3c 100644 --- a/flake.lock +++ b/flake.lock @@ -591,6 +591,27 @@ "type": "github" } }, + "qtengine": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768476812, + "narHash": "sha256-vBd6bw38NO6eGWwcvbhDnylDvlMgcwqUZJ1vIaTuJ1M=", + "owner": "kosslan", + "repo": "qt6engine", + "rev": "01c7a30591f42f47a3dd0087ddc1c702b1f3e1f3", + "type": "github" + }, + "original": { + "owner": "kosslan", + "ref": "qt5", + "repo": "qt6engine", + "type": "github" + } + }, "quickshell": { "inputs": { "nixpkgs": [ @@ -624,6 +645,7 @@ "nix-qml-support": "nix-qml-support", "nixpkgs": "nixpkgs", "nur": "nur", + "qtengine": "qtengine", "quickshell": "quickshell", "stable": "stable", "systems": "systems" diff --git a/flake.nix b/flake.nix index c296088..1a33ca3 100755 --- a/flake.nix +++ b/flake.nix @@ -48,17 +48,10 @@ inputs.hyprland.follows = "hyprland"; }; - /*hyprqt6engine = { - url = "github:hyprwm/hyprqt6engine"; + qtengine = { + url = "github:kosslan/qt6engine/qt5"; inputs.nixpkgs.follows = "nixpkgs"; - inputs.hyprutils.follows = "hyprutils"; - inputs.hyprlang.follows = "hyprlang"; - };*/ - - /*qt6engine = { - url = "github:kosslan/qt6engine"; - inputs.nixpkgs.follows = "nixpkgs"; - };*/ + }; quickshell = { url = "git+https://git.outfoxxed.me/quickshell/quickshell"; diff --git a/modules/theme/default.nix b/modules/theme/default.nix index 89d4f6d..45e7ad1 100644 --- a/modules/theme/default.nix +++ b/modules/theme/default.nix @@ -1,4 +1,28 @@ -{ self, lib, config, pkgs, ... }: { +{ self, lib, config, pkgs, inputs, ... }: { + imports = [ inputs.qtengine.nixosModules.default ]; + + programs.qtengine = { + enable = true; + + config = { + theme = { + colorScheme = "${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.colors"; + iconTheme = "breeze-dark"; + style = "breeze"; + fontFixed = "JetBrainsMono Nerd Font"; + fontFixedSize = 12; + font = "DejaVu Sans"; + fontSize = 12; + }; + + misc = { + singleClickActivate = false; + menusHaveIcons = true; + shortcutsForContextMenus = true; + }; + }; + }; + environment.systemPackages = with pkgs; [ qt6.qtwayland kdePackages.breeze @@ -15,7 +39,7 @@ qt = { enable = true; - platformTheme = "qt5ct"; + platformTheme = null; }; home-manager.users.${config.main-user} = { diff --git a/modules/theme/home.nix b/modules/theme/home.nix index e007c46..69c2077 100644 --- a/modules/theme/home.nix +++ b/modules/theme/home.nix @@ -4,51 +4,11 @@ Inherits=breeze_cursors ''; - xdg.configFile = let - qtctConf = kdecolors: '' - [Appearance] - ${if kdecolors then '' - color_scheme_path=${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.colors - '' else '' - color_scheme_path=${./colors-qt5ct.conf} - ''} - custom_palette=true - icon_theme=breeze-dark - standard_dialogs=xdgdesktopportal - style=Breeze - - [Fonts] - fixed="JetBrainsMono Nerd Font,12,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Medium" - general="DejaVu Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1" - - [Interface] - activate_item_on_single_click=1 - buttonbox_layout=0 - cursor_flash_time=1000 - dialog_buttons_have_icons=2 - double_click_interval=400 - keyboard_scheme=2 - menus_have_icons=true - show_shortcuts_in_context_menus=true - toolbutton_style=2 - underline_shortcut=1 - wheel_scroll_lines=3 - - [Troubleshooting] - force_raster_widgets=0 - ''; - in { + xdg.configFile = { # fixes dolphin background colors "kdeglobals".source = "${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.colors"; - - "qt5ct/qt5ct.conf".text = qtctConf false; - "qt6ct/qt6ct.conf".text = qtctConf true; }; - home.packages = [ - pkgs.kdePackages.breeze - ]; - gtk = { enable = true; theme = { From 05c142d3e84b88b1a81d678c329b2681513497b1 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 28 Jan 2026 16:22:56 -0800 Subject: [PATCH 2/4] update, theme --- flake.lock | 57 +++++++++---------- flake.nix | 2 +- modules/hyprland/default.nix | 4 +- modules/theme/default.nix | 31 ++-------- .../user/modules/quickshell/shell/shell.qml | 1 - 5 files changed, 38 insertions(+), 57 deletions(-) diff --git a/flake.lock b/flake.lock index 560bf3c..ae68448 100644 --- a/flake.lock +++ b/flake.lock @@ -43,11 +43,11 @@ ] }, "locked": { - "lastModified": 1768182537, - "narHash": "sha256-1Ff3WJ57qPtX8D5srMKzXbsWD+bmC0sZzWIIRdAkmNo=", + "lastModified": 1769245071, + "narHash": "sha256-zNALt0KgqdHkfpr4hs8QtZMDS2SBiLNJmM8m8VnOTg0=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "35a115b97a6dfc196cc479c676556ce3c874ee81", + "rev": "26e95836ccff731543f898b603b1a213463ce919", "type": "github" }, "original": { @@ -122,11 +122,11 @@ ] }, "locked": { - "lastModified": 1768068402, - "narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", + "lastModified": 1769187349, + "narHash": "sha256-clG+nT6I2qxjIgk5WoSDKJyNhzKJs9jzbCujPF2S/yg=", "owner": "nix-community", "repo": "home-manager", - "rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", + "rev": "082a4cd87c6089d1d9c58ebe52655f9e07245fcb", "type": "github" }, "original": { @@ -218,11 +218,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1768144432, - "narHash": "sha256-6fc6FyEmfwT1Ke+2ib/80XPshc1h2lapIB/HlsaxyP4=", + "lastModified": 1768908865, + "narHash": "sha256-KkzYP2+FVo3wIb2oom2BT7RRGmlvTiEaDJApCpTdcWw=", "owner": "hyprwm", - "repo": "Hyprland", - "rev": "fbf421df889ceff3bac08a9f4b9493def5eecc4d", + "repo": "hyprland", + "rev": "8f547c6fa089f91e7577947c426f692397e9a5cb", "type": "github" }, "original": { @@ -284,11 +284,11 @@ ] }, "locked": { - "lastModified": 1767957561, - "narHash": "sha256-N0kFdc6tSE0yFeQ/Iit3KNrz4nf2K5xvP3juL7SUyhc=", + "lastModified": 1769251059, + "narHash": "sha256-aMCfeMcMKA9UGX2up34iPpzTVGQzbLqyuz77XsCfAtk=", "owner": "outfoxxed", "repo": "hy3", - "rev": "3287049e79e9e51431de8c09f9192a18afa1bf35", + "rev": "c9d598a9c8a6cf2c977e711db1c65a335b78f5ba", "type": "github" }, "original": { @@ -534,11 +534,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1769018530, + "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "88d3861acdd3d2f0e361767018218e51810df8a1", "type": "github" }, "original": { @@ -555,11 +555,11 @@ ] }, "locked": { - "lastModified": 1768203973, - "narHash": "sha256-bf+HggwDgQRt47maAe9fbv2sH6uwZnzVy4tTb2nonP8=", + "lastModified": 1769243040, + "narHash": "sha256-nl50Pd82SvwSnhMIjFjEkn7bq/SeP7Fuq1lxbn1/WdU=", "owner": "nix-community", "repo": "NUR", - "rev": "7a7b3e1d25b93474d988915412e69c6f2401a0b7", + "rev": "4b6d299c772e8bfcd4db8b60f02851766c609e10", "type": "github" }, "original": { @@ -598,17 +598,16 @@ ] }, "locked": { - "lastModified": 1768476812, - "narHash": "sha256-vBd6bw38NO6eGWwcvbhDnylDvlMgcwqUZJ1vIaTuJ1M=", + "lastModified": 1769015610, + "narHash": "sha256-Uvrb9lpTW77sJvsgO7o2U/BmSAbD8IDdUr9bGmIKtt8=", "owner": "kosslan", - "repo": "qt6engine", - "rev": "01c7a30591f42f47a3dd0087ddc1c702b1f3e1f3", + "repo": "qtengine", + "rev": "10d61da0369c123d8bde94ffc6b60441e5e7c2f3", "type": "github" }, "original": { "owner": "kosslan", - "ref": "qt5", - "repo": "qt6engine", + "repo": "qtengine", "type": "github" } }, @@ -619,11 +618,11 @@ ] }, "locked": { - "lastModified": 1768204289, - "narHash": "sha256-aXPr9W8AEmPz9+dH8CHIwrppKIjtS3mHyOXR2ppH/aw=", + "lastModified": 1768985439, + "narHash": "sha256-qkU4r+l+UPz4dutMMRZSin64HuVZkEv9iFpu9yMWVY0=", "ref": "refs/heads/master", - "rev": "db37dc580afc9db1bc598436649c650138b6166d", - "revCount": 723, + "rev": "191085a8821b35680bba16ce5411fc9dbe912237", + "revCount": 731, "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell" }, diff --git a/flake.nix b/flake.nix index 1a33ca3..6a1ac7b 100755 --- a/flake.nix +++ b/flake.nix @@ -49,7 +49,7 @@ }; qtengine = { - url = "github:kosslan/qt6engine/qt5"; + url = "github:kosslan/qtengine"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/modules/hyprland/default.nix b/modules/hyprland/default.nix index 4309f27..a341ae3 100644 --- a/modules/hyprland/default.nix +++ b/modules/hyprland/default.nix @@ -9,7 +9,7 @@ wrapper = pkgs.callPackage ({ ... }: pkgs.writeShellScriptBin "hyprland" '' ${builtins.readFile ./session.sh} ${config.hyprland-session.prerun} - ${lib.getExe exe} $@ + ${lib.getExe' exe "start-hyprland"} -- $@ '') {}; in { imports = [ hyprland.nixosModules.default ]; @@ -87,6 +87,7 @@ in { }; }; + /* # Without this the portal blocks on desktop portals not being ready... systemd.user.services.plasma-xdg-desktop-portal-kde.Service = { ExecStart = "${pkgs.kdePackages.xdg-desktop-portal-kde}/libexec/xdg-desktop-portal-kde"; @@ -96,6 +97,7 @@ in { "QT_QPA_PLATFORMTHEME=" ]; }; +*/ }; }; } diff --git a/modules/theme/default.nix b/modules/theme/default.nix index 45e7ad1..80d5ede 100644 --- a/modules/theme/default.nix +++ b/modules/theme/default.nix @@ -9,10 +9,10 @@ colorScheme = "${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.colors"; iconTheme = "breeze-dark"; style = "breeze"; - fontFixed = "JetBrainsMono Nerd Font"; - fontFixedSize = 12; - font = "DejaVu Sans"; - fontSize = 12; + fontFixed.family = "JetBrainsMono Nerd Font"; + fontFixed.size = 12; + font.family = "DejaVu Sans"; + font.size = 12; }; misc = { @@ -26,6 +26,7 @@ environment.systemPackages = with pkgs; [ qt6.qtwayland kdePackages.breeze + kdePackages.breeze.qt5 kdePackages.breeze-icons qt6.qtsvg # needed to load breeze icons @@ -35,6 +36,7 @@ kdePackages.kirigami.unwrapped kdePackages.kirigami-addons kdePackages.sonnet + qt6Packages.qt6ct ]; qt = { @@ -45,25 +47,4 @@ home-manager.users.${config.main-user} = { imports = [ ./home.nix ]; }; - - nixpkgs.overlays = [(final: prev: { - qt6Packages = prev.qt6Packages.overrideScope (qfinal: qprev: { - qt6ct = qprev.qt6ct.overrideAttrs (ctprev: { - src = pkgs.fetchFromGitLab { - domain = "www.opencode.net"; - owner = "ilya-fedin"; - repo = "qt6ct"; - rev = "9d64a13ff6c376380901ef855f3c5e6a1f7afc0d"; # 'kde' branch - sha256 = "vOq5LC5TPRkBfFYzsqyd8wGIzAa6jT7PwWsEj5Dqrqs="; - }; - - buildInputs = ctprev.buildInputs ++ (with final.kdePackages; [ - kconfig - kcolorscheme - kiconthemes - ]); - cmakeFlags = [ "-DPLUGINDIR=${placeholder "out"}/lib/qt-6/plugins"]; - }); - }); - })]; } diff --git a/modules/user/modules/quickshell/shell/shell.qml b/modules/user/modules/quickshell/shell/shell.qml index 8a8b936..cab312f 100644 --- a/modules/user/modules/quickshell/shell/shell.qml +++ b/modules/user/modules/quickshell/shell/shell.qml @@ -1,5 +1,4 @@ //@ pragma ShellId shell -//@ pragma IgnoreSystemSettings import Quickshell import Quickshell.Io From 12a5cd9d650e04ee85dc71f53241db92be7f21c1 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 28 Jan 2026 16:23:44 -0800 Subject: [PATCH 3/4] install sshfs, feishin --- modules/system.nix | 1 + modules/user/general.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/system.nix b/modules/system.nix index aebdc34..43821ef 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -23,6 +23,7 @@ git-lfs vim android-tools + sshfs ]; services.ntp.enable = true; diff --git a/modules/user/general.nix b/modules/user/general.nix index d40634f..a2263e9 100644 --- a/modules/user/general.nix +++ b/modules/user/general.nix @@ -125,6 +125,7 @@ kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps curl cantata + feishin logseq lxqt.pavucontrol-qt helvum From 7ba61a7de4f908517d885fe22ebdb014457bde25 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 28 Jan 2026 16:24:13 -0800 Subject: [PATCH 4/4] qs: use implicit size --- modules/user/modules/quickshell/shell/bar/BarContainment.qml | 4 ++-- modules/user/modules/quickshell/shell/bar/Tooltip.qml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/user/modules/quickshell/shell/bar/BarContainment.qml b/modules/user/modules/quickshell/shell/bar/BarContainment.qml index f0a6317..23e36cd 100644 --- a/modules/user/modules/quickshell/shell/bar/BarContainment.qml +++ b/modules/user/modules/quickshell/shell/bar/BarContainment.qml @@ -18,7 +18,7 @@ PanelWindow { property real baseWidth: 55 property real leftMargin: root.compactState * 10 - width: baseWidth + 15 + implicitWidth: baseWidth + 15 exclusiveZone: baseWidth + (isFullscreenWorkspace ? 0 : 15) - margins.left mask: Region { @@ -42,7 +42,7 @@ PanelWindow { return Math.max(barRect.anchors.topMargin + height, Math.min(barRect.height + barRect.anchors.topMargin - height, targetY)) } - readonly property bool isFullscreenWorkspace: Hyprland.monitorFor(screen).activeWorkspace.hasFullscreen + readonly property bool isFullscreenWorkspace: Hyprland.monitorFor(screen).activeWorkspace?.hasFullscreen ?? false property real compactState: isFullscreenWorkspace ? 0 : 1 Behavior on compactState { NumberAnimation { diff --git a/modules/user/modules/quickshell/shell/bar/Tooltip.qml b/modules/user/modules/quickshell/shell/bar/Tooltip.qml index bf68795..4e57b5a 100644 --- a/modules/user/modules/quickshell/shell/bar/Tooltip.qml +++ b/modules/user/modules/quickshell/shell/bar/Tooltip.qml @@ -101,8 +101,8 @@ Scope { } //height: bar.height - width: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches - height: { + implicitWidth: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches + implicitHeight: { const h = tooltipItem.lowestAnimY - tooltipItem.highestAnimY //console.log(`seth ${h} ${tooltipItem.highestAnimY} ${tooltipItem.lowestAnimY}; ${tooltipItem.y1} ${tooltipItem.y2}`) return h