diff --git a/flake.lock b/flake.lock index ae68448..ef1c06b 100644 --- a/flake.lock +++ b/flake.lock @@ -43,11 +43,11 @@ ] }, "locked": { - "lastModified": 1769245071, - "narHash": "sha256-zNALt0KgqdHkfpr4hs8QtZMDS2SBiLNJmM8m8VnOTg0=", + "lastModified": 1768182537, + "narHash": "sha256-1Ff3WJ57qPtX8D5srMKzXbsWD+bmC0sZzWIIRdAkmNo=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "26e95836ccff731543f898b603b1a213463ce919", + "rev": "35a115b97a6dfc196cc479c676556ce3c874ee81", "type": "github" }, "original": { @@ -122,11 +122,11 @@ ] }, "locked": { - "lastModified": 1769187349, - "narHash": "sha256-clG+nT6I2qxjIgk5WoSDKJyNhzKJs9jzbCujPF2S/yg=", + "lastModified": 1768068402, + "narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", "owner": "nix-community", "repo": "home-manager", - "rev": "082a4cd87c6089d1d9c58ebe52655f9e07245fcb", + "rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", "type": "github" }, "original": { @@ -218,11 +218,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1768908865, - "narHash": "sha256-KkzYP2+FVo3wIb2oom2BT7RRGmlvTiEaDJApCpTdcWw=", + "lastModified": 1768144432, + "narHash": "sha256-6fc6FyEmfwT1Ke+2ib/80XPshc1h2lapIB/HlsaxyP4=", "owner": "hyprwm", - "repo": "hyprland", - "rev": "8f547c6fa089f91e7577947c426f692397e9a5cb", + "repo": "Hyprland", + "rev": "fbf421df889ceff3bac08a9f4b9493def5eecc4d", "type": "github" }, "original": { @@ -284,11 +284,11 @@ ] }, "locked": { - "lastModified": 1769251059, - "narHash": "sha256-aMCfeMcMKA9UGX2up34iPpzTVGQzbLqyuz77XsCfAtk=", + "lastModified": 1767957561, + "narHash": "sha256-N0kFdc6tSE0yFeQ/Iit3KNrz4nf2K5xvP3juL7SUyhc=", "owner": "outfoxxed", "repo": "hy3", - "rev": "c9d598a9c8a6cf2c977e711db1c65a335b78f5ba", + "rev": "3287049e79e9e51431de8c09f9192a18afa1bf35", "type": "github" }, "original": { @@ -534,11 +534,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1769018530, - "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=", + "lastModified": 1768127708, + "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88d3861acdd3d2f0e361767018218e51810df8a1", + "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", "type": "github" }, "original": { @@ -555,11 +555,11 @@ ] }, "locked": { - "lastModified": 1769243040, - "narHash": "sha256-nl50Pd82SvwSnhMIjFjEkn7bq/SeP7Fuq1lxbn1/WdU=", + "lastModified": 1768203973, + "narHash": "sha256-bf+HggwDgQRt47maAe9fbv2sH6uwZnzVy4tTb2nonP8=", "owner": "nix-community", "repo": "NUR", - "rev": "4b6d299c772e8bfcd4db8b60f02851766c609e10", + "rev": "7a7b3e1d25b93474d988915412e69c6f2401a0b7", "type": "github" }, "original": { @@ -591,26 +591,6 @@ "type": "github" } }, - "qtengine": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769015610, - "narHash": "sha256-Uvrb9lpTW77sJvsgO7o2U/BmSAbD8IDdUr9bGmIKtt8=", - "owner": "kosslan", - "repo": "qtengine", - "rev": "10d61da0369c123d8bde94ffc6b60441e5e7c2f3", - "type": "github" - }, - "original": { - "owner": "kosslan", - "repo": "qtengine", - "type": "github" - } - }, "quickshell": { "inputs": { "nixpkgs": [ @@ -618,11 +598,11 @@ ] }, "locked": { - "lastModified": 1768985439, - "narHash": "sha256-qkU4r+l+UPz4dutMMRZSin64HuVZkEv9iFpu9yMWVY0=", + "lastModified": 1768204289, + "narHash": "sha256-aXPr9W8AEmPz9+dH8CHIwrppKIjtS3mHyOXR2ppH/aw=", "ref": "refs/heads/master", - "rev": "191085a8821b35680bba16ce5411fc9dbe912237", - "revCount": 731, + "rev": "db37dc580afc9db1bc598436649c650138b6166d", + "revCount": 723, "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell" }, @@ -644,7 +624,6 @@ "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 6a1ac7b..c296088 100755 --- a/flake.nix +++ b/flake.nix @@ -48,10 +48,17 @@ inputs.hyprland.follows = "hyprland"; }; - qtengine = { - url = "github:kosslan/qtengine"; + /*hyprqt6engine = { + url = "github:hyprwm/hyprqt6engine"; 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/hyprland/default.nix b/modules/hyprland/default.nix index a341ae3..4309f27 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 "start-hyprland"} -- $@ + ${lib.getExe exe} $@ '') {}; in { imports = [ hyprland.nixosModules.default ]; @@ -87,7 +87,6 @@ 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"; @@ -97,7 +96,6 @@ in { "QT_QPA_PLATFORMTHEME=" ]; }; -*/ }; }; } diff --git a/modules/system.nix b/modules/system.nix index 43821ef..aebdc34 100644 --- a/modules/system.nix +++ b/modules/system.nix @@ -23,7 +23,6 @@ git-lfs vim android-tools - sshfs ]; services.ntp.enable = true; diff --git a/modules/theme/default.nix b/modules/theme/default.nix index 80d5ede..89d4f6d 100644 --- a/modules/theme/default.nix +++ b/modules/theme/default.nix @@ -1,32 +1,7 @@ -{ 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.family = "JetBrainsMono Nerd Font"; - fontFixed.size = 12; - font.family = "DejaVu Sans"; - font.size = 12; - }; - - misc = { - singleClickActivate = false; - menusHaveIcons = true; - shortcutsForContextMenus = true; - }; - }; - }; - +{ self, lib, config, pkgs, ... }: { environment.systemPackages = with pkgs; [ qt6.qtwayland kdePackages.breeze - kdePackages.breeze.qt5 kdePackages.breeze-icons qt6.qtsvg # needed to load breeze icons @@ -36,15 +11,35 @@ kdePackages.kirigami.unwrapped kdePackages.kirigami-addons kdePackages.sonnet - qt6Packages.qt6ct ]; qt = { enable = true; - platformTheme = null; + platformTheme = "qt5ct"; }; 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/theme/home.nix b/modules/theme/home.nix index 69c2077..e007c46 100644 --- a/modules/theme/home.nix +++ b/modules/theme/home.nix @@ -4,11 +4,51 @@ Inherits=breeze_cursors ''; - xdg.configFile = { + 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 { # 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 = { diff --git a/modules/user/general.nix b/modules/user/general.nix index a2263e9..d40634f 100644 --- a/modules/user/general.nix +++ b/modules/user/general.nix @@ -125,7 +125,6 @@ kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps curl cantata - feishin logseq lxqt.pavucontrol-qt helvum diff --git a/modules/user/modules/quickshell/shell/bar/BarContainment.qml b/modules/user/modules/quickshell/shell/bar/BarContainment.qml index 23e36cd..f0a6317 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 - implicitWidth: baseWidth + 15 + width: 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 ?? false + readonly property bool isFullscreenWorkspace: Hyprland.monitorFor(screen).activeWorkspace.hasFullscreen 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 4e57b5a..bf68795 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 - implicitWidth: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches - implicitHeight: { + width: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches + height: { const h = tooltipItem.lowestAnimY - tooltipItem.highestAnimY //console.log(`seth ${h} ${tooltipItem.highestAnimY} ${tooltipItem.lowestAnimY}; ${tooltipItem.y1} ${tooltipItem.y2}`) return h diff --git a/modules/user/modules/quickshell/shell/shell.qml b/modules/user/modules/quickshell/shell/shell.qml index cab312f..8a8b936 100644 --- a/modules/user/modules/quickshell/shell/shell.qml +++ b/modules/user/modules/quickshell/shell/shell.qml @@ -1,4 +1,5 @@ //@ pragma ShellId shell +//@ pragma IgnoreSystemSettings import Quickshell import Quickshell.Io