From ebccb33b4eb60a07e667332665181ba9ad352615 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 21 Oct 2026 15:05:50 +0200 Subject: ... --- _sources/generated.json | 24 ++-- _sources/generated.nix | 24 ++-- .../shell/quickshell-plugins/Chrono.cpp | 2 +- .../shell/quickshell-plugins/Systemd.cpp | 1 + accounts/gkleen@skadhi/zsh/default.nix | 1 - accounts/gkleen@skadhi/zsh/zshrc | 20 +--- flake.lock | 124 ++++++++++---------- hosts/skadhi/hw.nix | 5 +- overlays/etesync-dav.nix | 54 +++------ overlays/etesync.nix | 14 +++ overlays/keepassxc/database-open-dialog.patch | 129 --------------------- overlays/keepassxc/default.nix | 113 ------------------ overlays/quickshell/default.nix | 2 +- overlays/quickshell/pipewire.patch | 127 ++++++++++---------- 14 files changed, 189 insertions(+), 451 deletions(-) create mode 100644 overlays/etesync.nix delete mode 100644 overlays/keepassxc/database-open-dialog.patch delete mode 100644 overlays/keepassxc/default.nix diff --git a/_sources/generated.json b/_sources/generated.json index 2fbb50c5..5b9149fb 100644 --- a/_sources/generated.json +++ b/_sources/generated.json @@ -22,7 +22,7 @@ }, "bpf-examples": { "cargoLock": null, - "date": "2026-08-10", + "date": "2026-10-20", "extract": null, "name": "bpf-examples", "passthru": null, @@ -34,12 +34,12 @@ "name": null, "owner": "xdp-project", "repo": "bpf-examples", - "rev": "1769d51faeb96a1d94d68affcc06f5c71de03de5", - "sha256": "sha256-FQEyyZ9A4c1mgdTO9CvIAFyscP44A3+aR5Xu6DCqG8E=", + "rev": "63a943e088b704c8c21649992931df795f4b9e5a", + "sha256": "sha256-n0B7A+TeRIRB+308jugOyKe35kUVKzDo0YvW2adazto=", "sparseCheckout": [], "type": "github" }, - "version": "1769d51faeb96a1d94d68affcc06f5c71de03de5" + "version": "63a943e088b704c8c21649992931df795f4b9e5a" }, "emacs-scratch_el": { "cargoLock": null, @@ -202,7 +202,7 @@ }, "mpv-reload": { "cargoLock": null, - "date": "2025-02-07", + "date": "2026-10-04", "extract": null, "name": "mpv-reload", "passthru": null, @@ -214,12 +214,12 @@ "name": null, "owner": "4e6", "repo": "mpv-reload", - "rev": "60e6fb1c578aa9af80d725857dac8e439095b033", - "sha256": "sha256-elA9bi5ov5MbehLD1kyS4Z8zKgTc+8dcOPq32muRGcE=", + "rev": "fb7a26e21e581fcac4eeee9291de0ff788dc1a47", + "sha256": "sha256-zlGifJyrpuv6TF7/PtSgSXHvGLvEEk+2/DiXxiremPU=", "sparseCheckout": [], "type": "github" }, - "version": "60e6fb1c578aa9af80d725857dac8e439095b033" + "version": "fb7a26e21e581fcac4eeee9291de0ff788dc1a47" }, "mpv-subselect": { "cargoLock": null, @@ -355,7 +355,7 @@ }, "quickshell": { "cargoLock": null, - "date": "2026-09-20", + "date": "2026-10-16", "extract": null, "name": "quickshell", "passthru": null, @@ -365,13 +365,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7", - "sha256": "sha256-872tMDDYdjR983q7v2yDlnKOEBSPp5FXDdWF2q87gik=", + "rev": "2b4501a282689792b62e94f3fb30d8f512324fe6", + "sha256": "sha256-tq6x6CRG8Qikrjri59tzu9+b2gri8TjnShkGeh8kUgQ=", "sparseCheckout": [], "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell.git" }, - "version": "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7" + "version": "2b4501a282689792b62e94f3fb30d8f512324fe6" }, "scutiger": { "cargoLock": null, diff --git a/_sources/generated.nix b/_sources/generated.nix index 00f69bfd..75d24d09 100644 --- a/_sources/generated.nix +++ b/_sources/generated.nix @@ -23,15 +23,15 @@ }; bpf-examples = { pname = "bpf-examples"; - version = "1769d51faeb96a1d94d68affcc06f5c71de03de5"; + version = "63a943e088b704c8c21649992931df795f4b9e5a"; src = fetchFromGitHub { owner = "xdp-project"; repo = "bpf-examples"; - rev = "1769d51faeb96a1d94d68affcc06f5c71de03de5"; + rev = "63a943e088b704c8c21649992931df795f4b9e5a"; fetchSubmodules = true; - sha256 = "sha256-FQEyyZ9A4c1mgdTO9CvIAFyscP44A3+aR5Xu6DCqG8E="; + sha256 = "sha256-n0B7A+TeRIRB+308jugOyKe35kUVKzDo0YvW2adazto="; }; - date = "2026-08-10"; + date = "2026-10-20"; }; emacs-scratch_el = { pname = "emacs-scratch_el"; @@ -129,15 +129,15 @@ }; mpv-reload = { pname = "mpv-reload"; - version = "60e6fb1c578aa9af80d725857dac8e439095b033"; + version = "fb7a26e21e581fcac4eeee9291de0ff788dc1a47"; src = fetchFromGitHub { owner = "4e6"; repo = "mpv-reload"; - rev = "60e6fb1c578aa9af80d725857dac8e439095b033"; + rev = "fb7a26e21e581fcac4eeee9291de0ff788dc1a47"; fetchSubmodules = false; - sha256 = "sha256-elA9bi5ov5MbehLD1kyS4Z8zKgTc+8dcOPq32muRGcE="; + sha256 = "sha256-zlGifJyrpuv6TF7/PtSgSXHvGLvEEk+2/DiXxiremPU="; }; - date = "2025-02-07"; + date = "2026-10-04"; }; mpv-subselect = { pname = "mpv-subselect"; @@ -223,17 +223,17 @@ }; quickshell = { pname = "quickshell"; - version = "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7"; + version = "2b4501a282689792b62e94f3fb30d8f512324fe6"; src = fetchgit { url = "https://git.outfoxxed.me/quickshell/quickshell.git"; - rev = "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7"; + rev = "2b4501a282689792b62e94f3fb30d8f512324fe6"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-872tMDDYdjR983q7v2yDlnKOEBSPp5FXDdWF2q87gik="; + sha256 = "sha256-tq6x6CRG8Qikrjri59tzu9+b2gri8TjnShkGeh8kUgQ="; }; - date = "2026-09-20"; + date = "2026-10-16"; }; scutiger = { pname = "scutiger"; diff --git a/accounts/gkleen@skadhi/shell/quickshell-plugins/Chrono.cpp b/accounts/gkleen@skadhi/shell/quickshell-plugins/Chrono.cpp index 22b3469b..2487cddd 100644 --- a/accounts/gkleen@skadhi/shell/quickshell-plugins/Chrono.cpp +++ b/accounts/gkleen@skadhi/shell/quickshell-plugins/Chrono.cpp @@ -75,7 +75,7 @@ void Chrono::schedule(const std::chrono::time_point& } QString Chrono::format(const QString& fmt) const { - return QString::fromStdString(std::format(std::runtime_format(fmt.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast(this->currentTime)))); + return QString::fromStdString(std::format(std::dynamic_format(fmt.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast(this->currentTime)))); } QDateTime Chrono::date() const { diff --git a/accounts/gkleen@skadhi/shell/quickshell-plugins/Systemd.cpp b/accounts/gkleen@skadhi/shell/quickshell-plugins/Systemd.cpp index 1fa236f6..a1fbe0d3 100644 --- a/accounts/gkleen@skadhi/shell/quickshell-plugins/Systemd.cpp +++ b/accounts/gkleen@skadhi/shell/quickshell-plugins/Systemd.cpp @@ -1,6 +1,7 @@ #include "Systemd.hpp" #include +#include #include #include diff --git a/accounts/gkleen@skadhi/zsh/default.nix b/accounts/gkleen@skadhi/zsh/default.nix index 1e11d639..d0046bc1 100644 --- a/accounts/gkleen@skadhi/zsh/default.nix +++ b/accounts/gkleen@skadhi/zsh/default.nix @@ -43,7 +43,6 @@ let sysConfig.systemd.package sysConfig.programs.ssh.package gnused - miniserve p7zip ]; execer = with pkgs; [ diff --git a/accounts/gkleen@skadhi/zsh/zshrc b/accounts/gkleen@skadhi/zsh/zshrc index c532b308..ea792718 100644 --- a/accounts/gkleen@skadhi/zsh/zshrc +++ b/accounts/gkleen@skadhi/zsh/zshrc @@ -7,7 +7,6 @@ dir() { wormhole=false gitWorktree="" modifyPDF="" - miniserve=false while getopts ':t:a:d:ir:wg:p:m' arg; do case $arg in @@ -26,7 +25,6 @@ dir() { "w") wormhole=true ;; "g") gitWorktree=${OPTARG} ;; "p") modifyPDF=${OPTARG:a} ;; - "m") miniserve=true ;; *) printf "Invalid option: %s\n" $arg >&2; exit 2 ;; esac done @@ -50,11 +48,6 @@ dir() { gitWorktree="" fi - miniservePIDFile="" - if [[ ${miniserve} = "true" ]]; then - miniservePIDFile=$(mktemp --tmpdir --suffix=.pid) - fi - cleanup() { if [[ -n ${modifyPDF} ]]; then @@ -64,10 +57,6 @@ dir() { magick -verbose "${pages[@]}" $(mktemp --tmpdir=${modifyPDF:h} ${modifyPDF:t:r}_XXXXXXXXXX.${modifyPDF:e}) modifyPDF="" fi - if [[ -n ${miniservePIDFile} ]]; then - command kill --verbose -- $(cat ${miniservePIDFile}) && wait $(cat ${miniservePIDFile}) - miniservePIDFile="" - fi } ( @@ -155,12 +144,7 @@ dir() { cd $(pwd) # Needed for mounting to work - if [[ ${miniserve} = "true" ]]; then - miniserve --random-route --hidden --enable-tar-gz --enable-zip . & - echo $! > "${miniservePIDFile}" - fi - - if [[ ${#@} -eq 0 ]] && [[ ${miniserve} != "true" ]] || [[ $forceShell = "true" ]]; then + if [[ ${#@} -eq 0 ]] || [[ $forceShell = "true" ]]; then isSingleDir() { typeset -a contents contents=(*(N) .*(N)) @@ -175,8 +159,6 @@ dir() { while d=$(isSingleDir); do cd ${d}; done zsh - elif [[ ${miniserve} == "true" ]]; then - wait $(cat "${miniservePIDFile}") fi ) } diff --git a/flake.lock b/flake.lock index 5f41295e..a7eadaf9 100644 --- a/flake.lock +++ b/flake.lock @@ -91,11 +91,11 @@ ] }, "locked": { - "lastModified": 1789404474, - "narHash": "sha256-UXFQ7tFiwn8sPz0EV4CBB2PCf/ZiGIHWn/6MXk81Lxs=", + "lastModified": 1792446739, + "narHash": "sha256-eINUtQW48bf9G3EYprthHMll8VDKxaXQP52TZFuwMmE=", "owner": "serokell", "repo": "deploy-rs", - "rev": "e760371d631165e7d8de5b0dcf148e21ec4c16f0", + "rev": "1cec0527bd09074bbee6d4461900ce5d58267217", "type": "github" }, "original": { @@ -314,11 +314,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1791914995, + "narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544", "type": "github" }, "original": { @@ -352,11 +352,11 @@ ] }, "locked": { - "lastModified": 1789514889, - "narHash": "sha256-PFD1nxptCXJyJoiYO1gf/5Vv43yqGpHtMC6LUhl9/pQ=", + "lastModified": 1790500375, + "narHash": "sha256-XN3sDtn8TU9hAc9xqZ+SqRB/HHm2wjxM6aSWYLJU+oo=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "59f4ca0d063a1a3ec722c88b51a33004862e5379", + "rev": "a0e4241b51206fbcbf52fd322eb5f0cd80f153c4", "type": "github" }, "original": { @@ -502,11 +502,11 @@ ] }, "locked": { - "lastModified": 1790365885, - "narHash": "sha256-iQ0ebhiVo64NktTnwft9hNxlFu4j5cvljVxyJaEVIP4=", + "lastModified": 1792495086, + "narHash": "sha256-TyoYH983Nsc++1scw0SoOEKshPSJWJDxK7tTmuZ974M=", "owner": "nix-community", "repo": "home-manager", - "rev": "7b4c5ec4bedaf1e062bbc1bcaeddbc6bd242aa1b", + "rev": "ec80131710bffcdf3b8498cf41f3a0579833b023", "type": "github" }, "original": { @@ -564,11 +564,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1769548169, - "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=", + "lastModified": 1792503832, + "narHash": "sha256-WsqPR04nPS1bi5bYva04cJJcJyHw7x/rbaJmoXMzF04=", "owner": "nix-community", "repo": "impermanence", - "rev": "7b1d382faf603b6d264f58627330f9faa5cba149", + "rev": "936ced36ecd25fcbd9b4789184b88aa2e4c2a901", "type": "github" }, "original": { @@ -622,11 +622,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1784472151, - "narHash": "sha256-fCP7nG0yLb4sDWClF0X1+TvDRSQEsrFc7G5TFRtNVpM=", + "lastModified": 1791442942, + "narHash": "sha256-KP9NEPojdjV1XwGatplmPHOuUuv1+8cBCgqkaZ+yB4c=", "ref": "refs/heads/main", - "rev": "f9ea1e7bea532f1fb223f0a1955db6549c944a87", - "revCount": 10, + "rev": "3f76d286041aa25b14feb29b5a5570c0e8b40594", + "revCount": 12, "type": "git", "url": "https://codeberg.org/debugloop/niri-autoselect-portal.git" }, @@ -647,11 +647,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1790070480, - "narHash": "sha256-gLB/L3ggRwng88W3t4KygVBkIjB84zW1xQSIWiuRGWg=", + "lastModified": 1792528076, + "narHash": "sha256-nzLrw3rEoDdqBrAfvUmQUhoSuui2jZc71iIQB7d/qoI=", "owner": "epireyn", "repo": "niri-flake", - "rev": "4edede7d2e876544cc1c1128e47d0e51278b1b9a", + "rev": "d62f632829c081ad44eb24b4be788fefde2686b2", "type": "github" }, "original": { @@ -723,11 +723,11 @@ ] }, "locked": { - "lastModified": 1789892076, - "narHash": "sha256-Dkg4VKPmDPqTwaiw2WH5br73tXoL1qrOO0xJnR4TlcA=", + "lastModified": 1792309949, + "narHash": "sha256-2DAEMk8YkV8OF6N2uw9jQ016cYoNkcgnq50AShwWxNw=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "9ad722673ab3b3f91f02135e53775825b240b869", + "rev": "1b4d1758fa6053c5d6284254a793134fa602fbff", "type": "github" }, "original": { @@ -744,11 +744,11 @@ ] }, "locked": { - "lastModified": 1778497292, - "narHash": "sha256-vodUt55p0PXOaKK5xE1dldTxdtyuttbdGy0LvP8cCxQ=", + "lastModified": 1791885592, + "narHash": "sha256-scMEPnvPiru3KHrdbkKQcLPjtgX4gsoPG2kXNc6EIZc=", "owner": "ners", "repo": "nix-monitored", - "rev": "4a7e1e7dcd0c1f7c2d063928511ebd72afea7e58", + "rev": "5e2f9523e595c13d698ef06b6818454e18e6f940", "type": "github" }, "original": { @@ -769,11 +769,11 @@ ] }, "locked": { - "lastModified": 1789705005, - "narHash": "sha256-kWGA2zNVrHZpKgeXA0urHvw7FWCTEp5rjyUAhCikXuc=", + "lastModified": 1791519392, + "narHash": "sha256-l9JFud0pJ/JpYaTeNDbaaLfns8tBIOGCknBWwcUUg6Y=", "ref": "refs/heads/main", - "rev": "bcecf42740627e01376caea1edc3194f39857890", - "revCount": 814, + "rev": "ffbf605a17d53c076afa394c3d9ed3d112e02e18", + "revCount": 817, "type": "git", "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git" }, @@ -789,11 +789,11 @@ ] }, "locked": { - "lastModified": 1783240168, - "narHash": "sha256-9zaLOKal8uI+ecKaOBCOfGcZe/HG1xQQnlDDjPoOmwE=", + "lastModified": 1791744226, + "narHash": "sha256-zQk2GSBO4hkq75PbtpgJHwupFHD0qaQDJiP15GTmstQ=", "owner": "AshleyYakeley", "repo": "NixVirt", - "rev": "6d213ab42f72ba41c2eb4e6bdb97581c0642d942", + "rev": "11e2b2c0492aeff3fe3dea9000832d7694c47dfe", "type": "github" }, "original": { @@ -807,11 +807,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1789978172, - "narHash": "sha256-FIRXajv1pPZ+l6On6ekkmcQ6le0Zi0ncRUoR3nB0vKA=", + "lastModified": 1792491056, + "narHash": "sha256-6n1Dn+WYtD8lprnSi+0k4FjbKfIVNG8lblpJ5MiiqXs=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9ebcb7766700d7e006d9505247bd7ce0426f4232", + "rev": "efb6d0d5e2394c3c5416a18652808aba206c0988", "type": "github" }, "original": { @@ -932,11 +932,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1789998861, - "narHash": "sha256-62XMQD4WLdMAfdT0/8gJmPH2dKeTw908ryNloAplTr8=", + "lastModified": 1792503283, + "narHash": "sha256-vhe2jyvRCgufWPqDuDq1S3t3ypE+ka46IFutV02xKso=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1e8bc658fc985ef27ccd66d107d767b32bb7ef98", + "rev": "cd4ea8d57de16f4810bc5f14207bac45fbf19f67", "type": "github" }, "original": { @@ -1025,11 +1025,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1789921291, - "narHash": "sha256-Ft/BRnIqw1MywFoXydKobjjWmDFgDdYtSpJliE8+yUw=", + "lastModified": 1792502884, + "narHash": "sha256-IoNisKcGbUjdd45qCqywGMCYmZ5EnkxezvLII0FWwNA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "44a91898084f46797b5fac650c7e8c9ac38c43d4", + "rev": "02c087f3fe673c9e317f206a627cb6b910336dbe", "type": "github" }, "original": { @@ -1068,11 +1068,11 @@ ] }, "locked": { - "lastModified": 1773379327, - "narHash": "sha256-Bj1ZaZVKTGyTOwwkp7TvAG0wxK9AAn717G/C8HnKFQM=", + "lastModified": 1792143065, + "narHash": "sha256-Q5MNCUrxmos6bHeXvRk+J186zqjsVQNZ7EvdncMryII=", "owner": "berberman", "repo": "nvfetcher", - "rev": "e41af9779ea14adf1d8c3edb075713c2668d45b9", + "rev": "0e86fbbf93b56b344b6104443d317b16ca862ac9", "type": "github" }, "original": { @@ -1295,11 +1295,11 @@ ] }, "locked": { - "lastModified": 1789963190, - "narHash": "sha256-mj5BLUKECIHv3rwkBXL6xQp45gIBJV7ZOYgT46LXwho=", + "lastModified": 1792499785, + "narHash": "sha256-mGOkvueuMGSRiD75ccxFzfEvSlIU9ztjFluHMKOtogY=", "owner": "pyproject-nix", "repo": "build-system-pkgs", - "rev": "14b45373ea9a14ed2fcd0abf3ed35c8e3c430020", + "rev": "a17819c85163988e063806ffc4f6d2716bc8ead8", "type": "github" }, "original": { @@ -1315,11 +1315,11 @@ ] }, "locked": { - "lastModified": 1788394333, - "narHash": "sha256-xYOP0Xym1eVGUaHFx+eJEaycFGoiCbst3fZf0xFHP78=", + "lastModified": 1791657700, + "narHash": "sha256-vcCAvhtA7hG+/gOge29hYHy7I/dLkIsr5nLx4sFEQic=", "owner": "pyproject-nix", "repo": "pyproject.nix", - "rev": "6a8a7881d75b6f98967e7b8069f4ead331384301", + "rev": "ddc400a6883b042646d0940e65971bb7f7e96107", "type": "github" }, "original": { @@ -1390,11 +1390,11 @@ ] }, "locked": { - "lastModified": 1789890976, - "narHash": "sha256-GKwH3zpy7tartuJMG0Rv/xUsdetG1QLmTVv8UKgJLmA=", + "lastModified": 1792056300, + "narHash": "sha256-YU1LjDe1o2Ymg5zEiCHbmMXLkDCtxHQRiVqZ3nC5GGk=", "owner": "Mic92", "repo": "sops-nix", - "rev": "7214124c20c1542c90deb54af50e2f53ae02711f", + "rev": "44931708c62937c2b1bf7953902989fa5bb9ee1b", "type": "github" }, "original": { @@ -1465,11 +1465,11 @@ ] }, "locked": { - "lastModified": 1789383061, - "narHash": "sha256-+DkygIVr/+RtXnsjd07BzFFB0ihwmjjLuYh1fyc/bCg=", + "lastModified": 1792151315, + "narHash": "sha256-PMtgvHuGijoIAtPtrBm7kJOI6fxzX4LYPAIK+QVGY+Y=", "owner": "pyproject-nix", "repo": "uv2nix", - "rev": "079be4e68c529c4cbc44dbf1afc692e4b30695b3", + "rev": "7aba73a3d85454f1118f8cf9de97979b4d26bcac", "type": "github" }, "original": { @@ -1498,11 +1498,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1788991189, - "narHash": "sha256-0TxfMgqW0/BLD4M942c5DCKYrtPvzsPJwvdcco4LQUM=", + "lastModified": 1792070459, + "narHash": "sha256-qGSyMXPHiXWp9/nE5Zs1DJN5NmZFvoxaBS5Y9i7p0Pc=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "add2795134593faafce60e404a0a75df68e9ee0c", + "rev": "97a89cec53eb4f8788386a574450dd94c0538754", "type": "github" }, "original": { diff --git a/hosts/skadhi/hw.nix b/hosts/skadhi/hw.nix index 687f04d8..0e6bfd7d 100644 --- a/hosts/skadhi/hw.nix +++ b/hosts/skadhi/hw.nix @@ -5,7 +5,10 @@ ]; config = { - hardware.framework.laptop13.audioEnhancement.enable = false; + hardware.framework = { + laptop13.audioEnhancement.enable = false; + enableKmod = false; + }; hardware.enableRedistributableFirmware = true; services.fstrim.enable = false; diff --git a/overlays/etesync-dav.nix b/overlays/etesync-dav.nix index dbb7c7b6..64f30071 100644 --- a/overlays/etesync-dav.nix +++ b/overlays/etesync-dav.nix @@ -1,5 +1,5 @@ -{ final, prev, ... }: { - etesync-dav = final.python312Packages.buildPythonApplication rec { +{ flakeInputs, final, prev, ... }: { + etesync-dav = final.python312Packages.buildPythonApplication (finalAttrs: rec { pname = "etesync-dav"; version = "0.35.1"; pyproject = true; @@ -7,12 +7,23 @@ src = prev.fetchFromGitHub { owner = "etesync"; repo = "etesync-dav"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-y4BhU2kSn+RWqc5+pJQFhbwfat9cMWD0ED0EXJp25cY="; }; + patches = [ + (flakeInputs.nixpkgs + "/pkgs/by-name/et/etesync-dav/radicale-3-6-compat.patch") + (prev.fetchpatch { + url = "https://github.com/etesync/etesync-dav/pull/366.patch"; + hash = "sha256-WR+D6ZLMsvFzSFSGaensNxrs4VZAc9EoIwCfF6OPOSQ="; + }) + ]; + pythonRelaxDeps = [ "radicale" ]; + build-system = with final.python312Packages; [ setuptools ]; + PYTHONPATH = final.python312Packages.makePythonPath dependencies; + dependencies = with final.python312Packages; [ appdirs etebase @@ -21,40 +32,9 @@ flask-wtf msgpack requests - requests.optional-dependencies.socks - (buildPythonApplication rec { - pname = "radicale"; - version = "3.2.0"; - pyproject = true; - - src = prev.fetchFromGitHub { - owner = "Kozea"; - repo = "Radicale"; - rev = "refs/tags/v${version}"; - hash = "sha256-RxC8VOfdTXJZiAroDHTKjJqGWu65Z5uyb4WK1LOqubQ="; - }; - - postPatch = '' - sed -i '/addopts/d' setup.cfg - ''; - - build-system = [ - setuptools - ]; - - dependencies = [ - defusedxml - passlib - vobject - pika - python-dateutil - pytz # https://github.com/Kozea/Radicale/issues/816 - ] ++ passlib.optional-dependencies.bcrypt; - - doCheck = false; - }) - ]; + (toPythonModule (final.radicale.override { python3 = python; })) + ] ++ requests.optional-dependencies.socks; doCheck = false; - }; + }); } diff --git a/overlays/etesync.nix b/overlays/etesync.nix new file mode 100644 index 00000000..7311016e --- /dev/null +++ b/overlays/etesync.nix @@ -0,0 +1,14 @@ +{ final, prev, ... }: { + python312 = prev.python312.override { + packageOverrides = self: super: { + etesync = super.etesync.overridePythonAttrs (oldAttrs: { + patches = (oldAttrs.patches or []) ++ [ + (prev.fetchpatch { + url = "https://github.com/etesync/etebase-py/pull/59.patch"; + hash = "sha256-vCueuk4gYskBZkzwJB2B8d7N6XXNDgNBA7rsZ2gpZXs="; + }) + ]; + }); + }; + }; +} diff --git a/overlays/keepassxc/database-open-dialog.patch b/overlays/keepassxc/database-open-dialog.patch deleted file mode 100644 index dff84846..00000000 --- a/overlays/keepassxc/database-open-dialog.patch +++ /dev/null @@ -1,129 +0,0 @@ -diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp -index 60412b5a..c0497d91 100644 ---- a/src/browser/BrowserService.cpp -+++ b/src/browser/BrowserService.cpp -@@ -249,7 +249,7 @@ QJsonObject BrowserService::createNewGroup(const QString& groupName) - return result; - } - -- auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, -+ auto dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC - Create a new group"), - tr("A request for creating a new group \"%1\" has been received.\n" - "Do you want to create this group?\n") -@@ -422,7 +422,7 @@ QList BrowserService::confirmEntries(QList& entriesToConfirm, - - m_dialogActive = true; - updateWindowState(); -- BrowserAccessControlDialog accessControlDialog(m_currentDatabaseWidget); -+ BrowserAccessControlDialog accessControlDialog{}; - - connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); - -@@ -512,7 +512,7 @@ QString BrowserService::storeKey(const QString& key) - QString id; - - do { -- QInputDialog keyDialog(m_currentDatabaseWidget); -+ QInputDialog keyDialog{}; - connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject())); - keyDialog.setWindowTitle(tr("KeePassXC - New key association request")); - keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n" -@@ -535,7 +535,7 @@ QString BrowserService::storeKey(const QString& key) - - contains = db->metadata()->customData()->contains(CustomData::BrowserKeyPrefix + id); - if (contains) { -- dialogResult = MessageBox::warning(m_currentDatabaseWidget, -+ dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC - Overwrite existing key?"), - tr("A shared encryption key with the name \"%1\" " - "already exists.\nDo you want to overwrite it?") -@@ -595,7 +595,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public - const auto existingEntries = getPasskeyEntriesWithUserHandle(rpId, userId, keyList); - - raiseWindow(); -- BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget); -+ BrowserPasskeysConfirmationDialog confirmDialog{}; - confirmDialog.registerCredential(username, rpId, existingEntries, timeout); - - auto dialogResult = confirmDialog.exec(); -@@ -612,7 +612,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public - // If no entry is selected, show the import dialog for manual entry selection - auto selectedEntry = confirmDialog.getSelectedEntry(); - if (!selectedEntry) { -- PasskeyImporter passkeyImporter(m_currentDatabaseWidget); -+ PasskeyImporter passkeyImporter{}; - const auto result = passkeyImporter.showImportDialog(db, - nullptr, - origin, -@@ -683,7 +683,7 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& - const auto timeout = publicKeyOptions["timeout"].toInt(); - - raiseWindow(); -- BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget); -+ BrowserPasskeysConfirmationDialog confirmDialog{}; - confirmDialog.authenticateCredential(entries, rpId, timeout); - auto dialogResult = confirmDialog.exec(); - if (dialogResult == QDialog::Accepted) { -@@ -760,7 +760,7 @@ void BrowserService::addPasskeyToEntry(Entry* entry, - - // Ask confirmation if entry already contains a Passkey - if (entry->hasPasskey()) { -- if (MessageBox::question(m_currentDatabaseWidget, -+ if (MessageBox::question(nullptr, - tr("KeePassXC - Update passkey"), - tr("Entry already has a passkey.\nDo you want to overwrite the passkey in %1 - %2?") - .arg(entry->title(), passkeyUtils()->getUsernameFromEntry(entry)), -@@ -873,7 +873,7 @@ bool BrowserService::updateEntry(const EntryParameters& entryParameters, const Q - MessageBox::Button dialogResult = MessageBox::No; - if (!browserSettings()->alwaysAllowUpdate()) { - raiseWindow(); -- dialogResult = MessageBox::question(m_currentDatabaseWidget, -+ dialogResult = MessageBox::question(nullptr, - tr("KeePassXC - Update Entry"), - tr("Do you want to update the information in %1 - %2?") - .arg(QUrl(entryParameters.siteUrl).host(), username), -@@ -909,7 +909,7 @@ bool BrowserService::deleteEntry(const QString& uuid) - return false; - } - -- auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, -+ auto dialogResult = MessageBox::warning(nullptr, - tr("KeePassXC - Delete entry"), - tr("A request for deleting entry \"%1\" has been received.\n" - "Do you want to delete the entry?\n") -@@ -1536,7 +1536,7 @@ QSharedPointer BrowserService::selectedDatabase() - } - } - -- BrowserEntrySaveDialog browserEntrySaveDialog(m_currentDatabaseWidget); -+ BrowserEntrySaveDialog browserEntrySaveDialog{}; - int openDatabaseCount = browserEntrySaveDialog.setItems(databaseWidgets, m_currentDatabaseWidget); - if (openDatabaseCount > 1) { - int res = browserEntrySaveDialog.exec(); -diff --git a/src/fdosecrets/objects/Prompt.cpp b/src/fdosecrets/objects/Prompt.cpp -index e89cd499..347c98b8 100644 ---- a/src/fdosecrets/objects/Prompt.cpp -+++ b/src/fdosecrets/objects/Prompt.cpp -@@ -313,7 +313,7 @@ namespace FdoSecrets - if (!entries.isEmpty()) { - QString app = tr("%1 (PID: %2)").arg(client->name()).arg(client->pid()); - auto ac = new AccessControlDialog( -- findWindow(m_windowId), entries, app, client->processInfo(), AuthOption::Remember); -+ nullptr, entries, app, client->processInfo(), AuthOption::Remember); - connect(ac, &AccessControlDialog::finished, this, &UnlockPrompt::itemUnlockFinished); - connect(ac, &AccessControlDialog::finished, ac, &AccessControlDialog::deleteLater); - ac->open(); -diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp -index 805d4eab..4836199e 100644 ---- a/src/gui/DatabaseTabWidget.cpp -+++ b/src/gui/DatabaseTabWidget.cpp -@@ -41,7 +41,7 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) - : QTabWidget(parent) - , m_dbWidgetStateSync(new DatabaseWidgetStateSync(this)) - , m_dbWidgetPendingLock(nullptr) -- , m_databaseOpenDialog(new DatabaseOpenDialog(this)) -+ , m_databaseOpenDialog(new DatabaseOpenDialog()) - , m_databaseOpenInProgress(false) - { - auto* tabBar = new QTabBar(this); diff --git a/overlays/keepassxc/default.nix b/overlays/keepassxc/default.nix deleted file mode 100644 index 325f1aa4..00000000 --- a/overlays/keepassxc/default.nix +++ /dev/null @@ -1,113 +0,0 @@ -{ final, prev, flakeInputs, ... }: -{ - keepassxc = final.stdenv.mkDerivation (finalAttrs: { - pname = "keepassxc"; - version = "2.8.0-beta1"; - - src = final.fetchFromGitHub { - owner = "keepassxreboot"; - repo = "keepassxc"; - tag = finalAttrs.version; - hash = "sha256-fksThYmGZed66zxGDxlS2SHQzJYRf+T9AuZPbaNZV5Y="; - }; - - env = - final.lib.optionalAttrs final.stdenv.cc.isClang { - NIX_CFLAGS_COMPILE = toString [ - "-Wno-old-style-cast" - "-Wno-error" - "-D__BIG_ENDIAN__=${if final.stdenv.hostPlatform.isBigEndian then "1" else "0"}" - ]; - }; - - # Upstream develops against a build of PCSC from Xcode. - # The types are incompatible with nixpkgs pcsclite. - # https://github.com/NixOS/nixpkgs/issues/520227 - postPatch = '' - substituteInPlace src/keys/drivers/YubiKeyInterfacePCSC.cpp \ - --replace-fail "typedef uint32_t RETVAL;" "typedef int32_t RETVAL;" - ''; - - cmakeFlags = [ - (final.lib.cmakeFeature "KEEPASSXC_BUILD_TYPE" "Release") - (final.lib.cmakeBool "WITH_GUI_TESTS" true) - (final.lib.cmakeBool "WITH_XC_UPDATECHECK" false) - (final.lib.cmakeBool "WITH_XC_X11" false) - (final.lib.cmakeBool "WITH_XC_BROWSER" true) - (final.lib.cmakeBool "WITH_XC_BROWSER_PASSKEYS" true) - (final.lib.cmakeBool "WITH_XC_KEESHARE" true) - (final.lib.cmakeBool "WITH_XC_NETWORKING" true) - (final.lib.cmakeBool "WITH_XC_SSHAGENT" true) - (final.lib.cmakeBool "WITH_XC_FDOSECRETS" true) - (final.lib.cmakeBool "WITH_XC_YUBIKEY" true) - ]; - - doCheck = true; - checkPhase = - let - disabledTests = final.lib.concatStringsSep "|" ( - [ - # flaky - "testcli" - "testgui" - ] - ); - in - '' - runHook preCheck - - export LC_ALL="en_US.UTF-8" - export QT_QPA_PLATFORM=offscreen - export QT_PLUGIN_PATH="${final.qt6.qtbase}/${final.qt6.qtbase.qtPluginPrefix}" - - make test ARGS+="-E '${disabledTests}' --output-on-failure" - - runHook postCheck - ''; - - nativeBuildInputs = with final; [ - asciidoctor - cmake - qt6.wrapQtAppsHook - qt6.qttools - pkg-config - wrapGAppsHook3 - ]; - - dontWrapGApps = true; - preFixup = '' - qtWrapperArgs+=("''${gappsWrapperArgs[@]}") - ''; - - postInstall = final.lib.concatLines [ - # See https://github.com/keepassxreboot/keepassxc/blob/cd7a53abbbb81e468efb33eb56eefc12739969b8/src/browser/NativeMessageInstaller.cpp#L317 - # See https://github.com/keepassxreboot/keepassxc/blob/cd7a53abbbb81e468efb33eb56eefc12739969b8/utils/keepassxc-snap-helper.sh#L48-L58 - '' - mkdir -p "$out/lib/mozilla/native-messaging-hosts" - substituteAll "${toString (flakeInputs.nixpkgs) + "/pkgs/by-name/ke/keepassxc/firefox-native-messaging-host.json"}" "$out/lib/mozilla/native-messaging-hosts/org.keepassxc.keepassxc_browser.json" - - mkdir -p "$out/etc/chromium/native-messaging-hosts" - substituteAll "${toString (flakeInputs.nixpkgs) + "/pkgs/by-name/ke/keepassxc/chromium-native-messaging-host.json"}" "$out/etc/chromium/native-messaging-hosts/org.keepassxc.keepassxc_browser.json" - '' - ]; - - buildInputs = with final; [ - botan3 - curl - libxi - libxtst - libargon2 - qt6.qtbase - qt6.qtsvg - minizip - pcsclite - qrencode - readline - zlib - libusb1 - keyutils - ]; - - meta.mainProgram = "keepassxc"; - }); -} diff --git a/overlays/quickshell/default.nix b/overlays/quickshell/default.nix index 47aee5ac..38c78883 100644 --- a/overlays/quickshell/default.nix +++ b/overlays/quickshell/default.nix @@ -17,7 +17,7 @@ patches = (oldAttrs.patches or []) ++ [ # ./lock-state-changed.patch - ./notify-session-unlock.patch + # ./notify-session-unlock.patch ./pipewire.patch ./io.patch ./close-stdin.patch diff --git a/overlays/quickshell/pipewire.patch b/overlays/quickshell/pipewire.patch index b94a2691..8c5a4c1e 100644 --- a/overlays/quickshell/pipewire.patch +++ b/overlays/quickshell/pipewire.patch @@ -1,7 +1,7 @@ -diff --git i/src/services/pipewire/device.cpp w/src/services/pipewire/device.cpp -index 616e7d0..0c55008 100644 ---- i/src/services/pipewire/device.cpp -+++ w/src/services/pipewire/device.cpp +diff --git c/src/services/pipewire/device.cpp i/src/services/pipewire/device.cpp +index 61079a1..7246a67 100644 +--- c/src/services/pipewire/device.cpp ++++ i/src/services/pipewire/device.cpp @@ -3,6 +3,7 @@ #include #include @@ -21,7 +21,7 @@ index 616e7d0..0c55008 100644 #include "../../core/logcat.hpp" #include "core.hpp" -@@ -46,6 +49,25 @@ void PwDevice::unbindHooks() { +@@ -46,6 +51,25 @@ void PwDevice::unbindHooks() { this->mWaitingForDevice = false; } @@ -47,7 +47,7 @@ index 616e7d0..0c55008 100644 const pw_device_events PwDevice::EVENTS = { .version = PW_VERSION_DEVICE_EVENTS, .info = &PwDevice::onInfo, -@@ -71,6 +93,11 @@ void PwDevice::onInfo(void* data, const pw_device_info* info) { +@@ -71,6 +95,11 @@ void PwDevice::onInfo(void* data, const pw_device_info* info) { } break; @@ -59,7 +59,7 @@ index 616e7d0..0c55008 100644 } } } -@@ -97,6 +124,15 @@ void PwDevice::onParam( +@@ -97,6 +126,15 @@ void PwDevice::onParam( } self->addDeviceIndexPairs(param); @@ -75,7 +75,7 @@ index 616e7d0..0c55008 100644 } } -@@ -145,6 +181,21 @@ void PwDevice::polled() { +@@ -159,6 +197,21 @@ void PwDevice::polled() { return false; }); } @@ -97,7 +97,7 @@ index 616e7d0..0c55008 100644 } bool PwDevice::setVolumes(qint32 routeDevice, const QVector& volumes) { -@@ -182,6 +233,15 @@ bool PwDevice::setMuted(qint32 routeDevice, bool muted) { +@@ -196,6 +249,15 @@ bool PwDevice::setMuted(qint32 routeDevice, bool muted) { }); } @@ -113,7 +113,7 @@ index 616e7d0..0c55008 100644 void PwDevice::waitForDevice() { this->mWaitingForDevice = true; } bool PwDevice::waitingForDevice() const { return this->mWaitingForDevice; } -@@ -222,4 +282,24 @@ bool PwDevice::setRouteProps( +@@ -236,4 +298,24 @@ bool PwDevice::setRouteProps( return true; } @@ -138,10 +138,10 @@ index 616e7d0..0c55008 100644 +} + } // namespace qs::service::pipewire -diff --git i/src/services/pipewire/device.hpp w/src/services/pipewire/device.hpp -index 1a1f705..ee64858 100644 ---- i/src/services/pipewire/device.hpp -+++ w/src/services/pipewire/device.hpp +diff --git c/src/services/pipewire/device.hpp i/src/services/pipewire/device.hpp +index f973b18..7cff16f 100644 +--- c/src/services/pipewire/device.hpp ++++ i/src/services/pipewire/device.hpp @@ -1,6 +1,7 @@ #pragma once @@ -150,7 +150,7 @@ index 1a1f705..ee64858 100644 #include #include -@@ -17,6 +18,20 @@ +@@ -16,6 +17,20 @@ namespace qs::service::pipewire { @@ -170,8 +170,8 @@ index 1a1f705..ee64858 100644 + class PwDevice; - class PwDevice: public PwBindable { -@@ -25,6 +40,12 @@ class PwDevice: public PwBindable& volumes); bool setMuted(qint32 routeDevice, bool muted); -@@ -32,9 +53,16 @@ public: - void waitForDevice(); - [[nodiscard]] bool waitingForDevice() const; +@@ -37,10 +58,17 @@ public: + [[nodiscard]] bool tryLoadVolumeProps(qint32 routeDevice, PwVolumeProps& volumeProps); + [[nodiscard]] bool hasRouteDevice(qint32 routeDevice) const; + void setProfile(qint32 profileIndex); + @@ -195,13 +195,14 @@ index 1a1f705..ee64858 100644 + signals: void deviceReady(); - void routeVolumesChanged(qint32 routeDevice, const PwVolumeProps& volumeProps); + void + routeVolumesChanged(qint32 routeDevice, const qs::service::pipewire::PwVolumeProps& volumeProps); + void profilesChanged(QList profiles); + void currentProfileChanged(PwProfile profile); private slots: void polled(); -@@ -49,6 +77,11 @@ private: +@@ -56,6 +84,11 @@ private: QList stagingIndexes; void addDeviceIndexPairs(const spa_pod* param); @@ -213,11 +214,11 @@ index 1a1f705..ee64858 100644 bool setRouteProps(qint32 routeDevice, const std::function& propsCallback); -diff --git i/src/services/pipewire/node.cpp w/src/services/pipewire/node.cpp -index 3e68149..4721a58 100644 ---- i/src/services/pipewire/node.cpp -+++ w/src/services/pipewire/node.cpp -@@ -145,6 +145,10 @@ void PwNode::initProps(const spa_dict* props) { +diff --git c/src/services/pipewire/node.cpp i/src/services/pipewire/node.cpp +index 2811833..25e1f8d 100644 +--- c/src/services/pipewire/node.cpp ++++ i/src/services/pipewire/node.cpp +@@ -146,6 +146,10 @@ void PwNode::initProps(const spa_dict* props) { this->type = PwNodeType::VideoSink; } else if (strcmp(mediaClass, "Video/Source") == 0) { this->type = PwNodeType::VideoSource; @@ -228,11 +229,11 @@ index 3e68149..4721a58 100644 } } -diff --git i/src/services/pipewire/node.hpp w/src/services/pipewire/node.hpp -index 0d4c92e..ee6f223 100644 ---- i/src/services/pipewire/node.hpp -+++ w/src/services/pipewire/node.hpp -@@ -144,6 +144,8 @@ public: +diff --git c/src/services/pipewire/node.hpp i/src/services/pipewire/node.hpp +index d96525a..4f44c8d 100644 +--- c/src/services/pipewire/node.hpp ++++ i/src/services/pipewire/node.hpp +@@ -145,6 +145,8 @@ public: // This is equivalent to the media class `Video/Sink` and is composed of the // @@PwNodeType.Video and @@PwNodeType.Sink flags. VideoSink = Video | Sink, @@ -241,11 +242,11 @@ index 0d4c92e..ee6f223 100644 }; Q_ENUM(Flag); Q_DECLARE_FLAGS(Flags, Flag); -diff --git i/src/services/pipewire/qml.cpp w/src/services/pipewire/qml.cpp -index 9efb17e..921d12a 100644 ---- i/src/services/pipewire/qml.cpp -+++ w/src/services/pipewire/qml.cpp -@@ -9,6 +9,9 @@ +diff --git c/src/services/pipewire/qml.cpp i/src/services/pipewire/qml.cpp +index e4424c1..407096b 100644 +--- c/src/services/pipewire/qml.cpp ++++ i/src/services/pipewire/qml.cpp +@@ -8,6 +8,9 @@ #include #include @@ -255,7 +256,7 @@ index 9efb17e..921d12a 100644 #include "../../core/model.hpp" #include "connection.hpp" #include "defaults.hpp" -@@ -54,6 +57,12 @@ Pipewire::Pipewire(QObject* parent): QObject(parent) { +@@ -53,6 +56,12 @@ Pipewire::Pipewire(QObject* parent): QObject(parent) { QObject::connect(&connection->registry, &PwRegistry::nodeAdded, this, &Pipewire::onNodeAdded); @@ -268,7 +269,7 @@ index 9efb17e..921d12a 100644 for (auto* link: connection->registry.links.values()) { this->onLinkAdded(link); } -@@ -123,6 +132,19 @@ void Pipewire::onNodeRemoved(QObject* object) { +@@ -115,6 +124,19 @@ void Pipewire::onNodeRemoved(QObject* object) { this->mNodes.removeObject(iface); } @@ -288,7 +289,7 @@ index 9efb17e..921d12a 100644 ObjectModel* Pipewire::links() { return &this->mLinks; } void Pipewire::onLinkAdded(PwLink* link) { -@@ -357,6 +379,8 @@ QVariantMap PwNodeIface::properties() const { +@@ -352,6 +374,8 @@ QVariantMap PwNodeIface::properties() const { PwNodeAudioIface* PwNodeIface::audio() const { return this->audioIface; } @@ -297,7 +298,7 @@ index 9efb17e..921d12a 100644 PwNodeIface* PwNodeIface::instance(PwNode* node) { if (node == nullptr) return nullptr; -@@ -481,4 +505,42 @@ void PwObjectTracker::objectDestroyed(QObject* object) { +@@ -476,4 +500,42 @@ void PwObjectTracker::objectDestroyed(QObject* object) { emit this->objectsChanged(); } @@ -340,10 +341,10 @@ index 9efb17e..921d12a 100644 +} + } // namespace qs::service::pipewire -diff --git i/src/services/pipewire/qml.hpp w/src/services/pipewire/qml.hpp -index e3489a1..e5e1891 100644 ---- i/src/services/pipewire/qml.hpp -+++ w/src/services/pipewire/qml.hpp +diff --git c/src/services/pipewire/qml.hpp i/src/services/pipewire/qml.hpp +index 93c4844..87cbcb3 100644 +--- c/src/services/pipewire/qml.hpp ++++ i/src/services/pipewire/qml.hpp @@ -12,11 +12,13 @@ #include "../../core/model.hpp" #include "link.hpp" @@ -378,13 +379,13 @@ index e3489a1..e5e1891 100644 @@ -159,7 +164,9 @@ signals: private slots: - void onNodeAdded(PwNode* node); + void onNodeAdded(qs::service::pipewire::PwNode* node); + void onDeviceAdded(PwDevice* node); void onNodeRemoved(QObject* object); + void onDeviceRemoved(QObject* object); - void onLinkAdded(PwLink* link); + void onLinkAdded(qs::service::pipewire::PwLink* link); void onLinkRemoved(QObject* object); - void onLinkGroupAdded(PwLinkGroup* group); + void onLinkGroupAdded(qs::service::pipewire::PwLinkGroup* group); @@ -167,6 +174,7 @@ private slots: private: @@ -454,11 +455,11 @@ index e3489a1..e5e1891 100644 ///! A connection between pipewire nodes. /// Note that there is one link per *channel* of a connection between nodes. /// You usually want @@PwLinkGroup. -diff --git i/src/services/pipewire/registry.cpp w/src/services/pipewire/registry.cpp -index c08fc1d..50c6d7a 100644 ---- i/src/services/pipewire/registry.cpp -+++ w/src/services/pipewire/registry.cpp -@@ -196,6 +196,7 @@ void PwRegistry::onGlobal( +diff --git c/src/services/pipewire/registry.cpp i/src/services/pipewire/registry.cpp +index 4b670b1..4295874 100644 +--- c/src/services/pipewire/registry.cpp ++++ i/src/services/pipewire/registry.cpp +@@ -236,6 +236,7 @@ void PwRegistry::onGlobal( device->initProps(props); self->devices.emplace(id, device); @@ -466,7 +467,7 @@ index c08fc1d..50c6d7a 100644 } } -@@ -211,6 +212,9 @@ void PwRegistry::onGlobalRemoved(void* data, quint32 id) { +@@ -251,6 +252,9 @@ void PwRegistry::onGlobalRemoved(void* data, quint32 id) { } else if (auto* node = self->nodes.value(id)) { self->nodes.remove(id); node->safeDestroy(); @@ -476,15 +477,15 @@ index c08fc1d..50c6d7a 100644 } } -diff --git i/src/services/pipewire/registry.hpp w/src/services/pipewire/registry.hpp -index 8473f04..87e0766 100644 ---- i/src/services/pipewire/registry.hpp -+++ w/src/services/pipewire/registry.hpp -@@ -132,6 +132,7 @@ public: +diff --git c/src/services/pipewire/registry.hpp i/src/services/pipewire/registry.hpp +index ec0a9ea..c9be65a 100644 +--- c/src/services/pipewire/registry.hpp ++++ i/src/services/pipewire/registry.hpp +@@ -133,6 +133,7 @@ public: signals: - void nodeAdded(PwNode* node); + void nodeAdded(qs::service::pipewire::PwNode* node); + void deviceAdded(PwDevice* node); - void linkAdded(PwLink* link); - void linkGroupAdded(PwLinkGroup* group); - void metadataAdded(PwMetadata* metadata); + void linkAdded(qs::service::pipewire::PwLink* link); + void linkGroupAdded(qs::service::pipewire::PwLinkGroup* group); + void metadataAdded(qs::service::pipewire::PwMetadata* metadata); -- cgit v1.2.3