Compare commits

..

4 commits

Author SHA1 Message Date
7ba61a7de4
qs: use implicit size 2026-01-28 16:24:13 -08:00
12a5cd9d65
install sshfs, feishin 2026-01-28 16:23:44 -08:00
05c142d3e8
update, theme 2026-01-28 16:22:56 -08:00
5a7c6a8a9a
theme: use qtengine 2026-01-15 10:17:39 -08:00
10 changed files with 85 additions and 103 deletions

67
flake.lock generated
View file

@ -43,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768182537, "lastModified": 1769245071,
"narHash": "sha256-1Ff3WJ57qPtX8D5srMKzXbsWD+bmC0sZzWIIRdAkmNo=", "narHash": "sha256-zNALt0KgqdHkfpr4hs8QtZMDS2SBiLNJmM8m8VnOTg0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "35a115b97a6dfc196cc479c676556ce3c874ee81", "rev": "26e95836ccff731543f898b603b1a213463ce919",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -122,11 +122,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768068402, "lastModified": 1769187349,
"narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", "narHash": "sha256-clG+nT6I2qxjIgk5WoSDKJyNhzKJs9jzbCujPF2S/yg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", "rev": "082a4cd87c6089d1d9c58ebe52655f9e07245fcb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -218,11 +218,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1768144432, "lastModified": 1768908865,
"narHash": "sha256-6fc6FyEmfwT1Ke+2ib/80XPshc1h2lapIB/HlsaxyP4=", "narHash": "sha256-KkzYP2+FVo3wIb2oom2BT7RRGmlvTiEaDJApCpTdcWw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "hyprland",
"rev": "fbf421df889ceff3bac08a9f4b9493def5eecc4d", "rev": "8f547c6fa089f91e7577947c426f692397e9a5cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -284,11 +284,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767957561, "lastModified": 1769251059,
"narHash": "sha256-N0kFdc6tSE0yFeQ/Iit3KNrz4nf2K5xvP3juL7SUyhc=", "narHash": "sha256-aMCfeMcMKA9UGX2up34iPpzTVGQzbLqyuz77XsCfAtk=",
"owner": "outfoxxed", "owner": "outfoxxed",
"repo": "hy3", "repo": "hy3",
"rev": "3287049e79e9e51431de8c09f9192a18afa1bf35", "rev": "c9d598a9c8a6cf2c977e711db1c65a335b78f5ba",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -534,11 +534,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768127708, "lastModified": 1769018530,
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", "rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -555,11 +555,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768203973, "lastModified": 1769243040,
"narHash": "sha256-bf+HggwDgQRt47maAe9fbv2sH6uwZnzVy4tTb2nonP8=", "narHash": "sha256-nl50Pd82SvwSnhMIjFjEkn7bq/SeP7Fuq1lxbn1/WdU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "7a7b3e1d25b93474d988915412e69c6f2401a0b7", "rev": "4b6d299c772e8bfcd4db8b60f02851766c609e10",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -591,6 +591,26 @@
"type": "github" "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": { "quickshell": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -598,11 +618,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768204289, "lastModified": 1768985439,
"narHash": "sha256-aXPr9W8AEmPz9+dH8CHIwrppKIjtS3mHyOXR2ppH/aw=", "narHash": "sha256-qkU4r+l+UPz4dutMMRZSin64HuVZkEv9iFpu9yMWVY0=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "db37dc580afc9db1bc598436649c650138b6166d", "rev": "191085a8821b35680bba16ce5411fc9dbe912237",
"revCount": 723, "revCount": 731,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell" "url": "https://git.outfoxxed.me/quickshell/quickshell"
}, },
@ -624,6 +644,7 @@
"nix-qml-support": "nix-qml-support", "nix-qml-support": "nix-qml-support",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nur": "nur", "nur": "nur",
"qtengine": "qtengine",
"quickshell": "quickshell", "quickshell": "quickshell",
"stable": "stable", "stable": "stable",
"systems": "systems" "systems": "systems"

View file

@ -48,17 +48,10 @@
inputs.hyprland.follows = "hyprland"; inputs.hyprland.follows = "hyprland";
}; };
/*hyprqt6engine = { qtengine = {
url = "github:hyprwm/hyprqt6engine"; url = "github:kosslan/qtengine";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.hyprutils.follows = "hyprutils"; };
inputs.hyprlang.follows = "hyprlang";
};*/
/*qt6engine = {
url = "github:kosslan/qt6engine";
inputs.nixpkgs.follows = "nixpkgs";
};*/
quickshell = { quickshell = {
url = "git+https://git.outfoxxed.me/quickshell/quickshell"; url = "git+https://git.outfoxxed.me/quickshell/quickshell";

View file

@ -9,7 +9,7 @@
wrapper = pkgs.callPackage ({ ... }: pkgs.writeShellScriptBin "hyprland" '' wrapper = pkgs.callPackage ({ ... }: pkgs.writeShellScriptBin "hyprland" ''
${builtins.readFile ./session.sh} ${builtins.readFile ./session.sh}
${config.hyprland-session.prerun} ${config.hyprland-session.prerun}
${lib.getExe exe} $@ ${lib.getExe' exe "start-hyprland"} -- $@
'') {}; '') {};
in { in {
imports = [ hyprland.nixosModules.default ]; imports = [ hyprland.nixosModules.default ];
@ -87,6 +87,7 @@ in {
}; };
}; };
/*
# Without this the portal blocks on desktop portals not being ready... # Without this the portal blocks on desktop portals not being ready...
systemd.user.services.plasma-xdg-desktop-portal-kde.Service = { systemd.user.services.plasma-xdg-desktop-portal-kde.Service = {
ExecStart = "${pkgs.kdePackages.xdg-desktop-portal-kde}/libexec/xdg-desktop-portal-kde"; ExecStart = "${pkgs.kdePackages.xdg-desktop-portal-kde}/libexec/xdg-desktop-portal-kde";
@ -96,6 +97,7 @@ in {
"QT_QPA_PLATFORMTHEME=" "QT_QPA_PLATFORMTHEME="
]; ];
}; };
*/
}; };
}; };
} }

View file

@ -23,6 +23,7 @@
git-lfs git-lfs
vim vim
android-tools android-tools
sshfs
]; ];
services.ntp.enable = true; services.ntp.enable = true;

View file

@ -1,7 +1,32 @@
{ 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.family = "JetBrainsMono Nerd Font";
fontFixed.size = 12;
font.family = "DejaVu Sans";
font.size = 12;
};
misc = {
singleClickActivate = false;
menusHaveIcons = true;
shortcutsForContextMenus = true;
};
};
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
qt6.qtwayland qt6.qtwayland
kdePackages.breeze kdePackages.breeze
kdePackages.breeze.qt5
kdePackages.breeze-icons kdePackages.breeze-icons
qt6.qtsvg # needed to load breeze icons qt6.qtsvg # needed to load breeze icons
@ -11,35 +36,15 @@
kdePackages.kirigami.unwrapped kdePackages.kirigami.unwrapped
kdePackages.kirigami-addons kdePackages.kirigami-addons
kdePackages.sonnet kdePackages.sonnet
qt6Packages.qt6ct
]; ];
qt = { qt = {
enable = true; enable = true;
platformTheme = "qt5ct"; platformTheme = null;
}; };
home-manager.users.${config.main-user} = { home-manager.users.${config.main-user} = {
imports = [ ./home.nix ]; 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"];
});
});
})];
} }

View file

@ -4,51 +4,11 @@
Inherits=breeze_cursors Inherits=breeze_cursors
''; '';
xdg.configFile = let xdg.configFile = {
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 # fixes dolphin background colors
"kdeglobals".source = "${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.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 = { gtk = {
enable = true; enable = true;
theme = { theme = {

View file

@ -125,6 +125,7 @@
kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps
curl curl
cantata cantata
feishin
logseq logseq
lxqt.pavucontrol-qt lxqt.pavucontrol-qt
helvum helvum

View file

@ -18,7 +18,7 @@ PanelWindow {
property real baseWidth: 55 property real baseWidth: 55
property real leftMargin: root.compactState * 10 property real leftMargin: root.compactState * 10
width: baseWidth + 15 implicitWidth: baseWidth + 15
exclusiveZone: baseWidth + (isFullscreenWorkspace ? 0 : 15) - margins.left exclusiveZone: baseWidth + (isFullscreenWorkspace ? 0 : 15) - margins.left
mask: Region { mask: Region {
@ -42,7 +42,7 @@ PanelWindow {
return Math.max(barRect.anchors.topMargin + height, Math.min(barRect.height + barRect.anchors.topMargin - height, targetY)) 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 property real compactState: isFullscreenWorkspace ? 0 : 1
Behavior on compactState { Behavior on compactState {
NumberAnimation { NumberAnimation {

View file

@ -101,8 +101,8 @@ Scope {
} }
//height: bar.height //height: bar.height
width: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches implicitWidth: Math.max(700, tooltipItem.largestAnimWidth) // max due to qtwayland glitches
height: { implicitHeight: {
const h = tooltipItem.lowestAnimY - tooltipItem.highestAnimY const h = tooltipItem.lowestAnimY - tooltipItem.highestAnimY
//console.log(`seth ${h} ${tooltipItem.highestAnimY} ${tooltipItem.lowestAnimY}; ${tooltipItem.y1} ${tooltipItem.y2}`) //console.log(`seth ${h} ${tooltipItem.highestAnimY} ${tooltipItem.lowestAnimY}; ${tooltipItem.y1} ${tooltipItem.y2}`)
return h return h

View file

@ -1,5 +1,4 @@
//@ pragma ShellId shell //@ pragma ShellId shell
//@ pragma IgnoreSystemSettings
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io