diff options
| -rw-r--r-- | _sources/generated.json | 24 | ||||
| -rw-r--r-- | _sources/generated.nix | 24 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/shell/quickshell-plugins/Chrono.cpp | 2 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/shell/quickshell-plugins/Systemd.cpp | 1 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/zsh/default.nix | 1 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/zsh/zshrc | 20 | ||||
| -rw-r--r-- | flake.lock | 124 | ||||
| -rw-r--r-- | hosts/skadhi/hw.nix | 5 | ||||
| -rw-r--r-- | hosts/surtr/matrix/default.nix | 2 | ||||
| -rw-r--r-- | overlays/etesync-dav.nix | 54 | ||||
| -rw-r--r-- | overlays/etesync.nix | 14 | ||||
| -rw-r--r-- | overlays/keepassxc/database-open-dialog.patch | 129 | ||||
| -rw-r--r-- | overlays/keepassxc/default.nix | 113 | ||||
| -rw-r--r-- | overlays/quickshell/default.nix | 2 | ||||
| -rw-r--r-- | overlays/quickshell/pipewire.patch | 127 |
15 files changed, 190 insertions, 452 deletions
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 @@ | |||
| 22 | }, | 22 | }, |
| 23 | "bpf-examples": { | 23 | "bpf-examples": { |
| 24 | "cargoLock": null, | 24 | "cargoLock": null, |
| 25 | "date": "2026-08-10", | 25 | "date": "2026-10-20", |
| 26 | "extract": null, | 26 | "extract": null, |
| 27 | "name": "bpf-examples", | 27 | "name": "bpf-examples", |
| 28 | "passthru": null, | 28 | "passthru": null, |
| @@ -34,12 +34,12 @@ | |||
| 34 | "name": null, | 34 | "name": null, |
| 35 | "owner": "xdp-project", | 35 | "owner": "xdp-project", |
| 36 | "repo": "bpf-examples", | 36 | "repo": "bpf-examples", |
| 37 | "rev": "1769d51faeb96a1d94d68affcc06f5c71de03de5", | 37 | "rev": "63a943e088b704c8c21649992931df795f4b9e5a", |
| 38 | "sha256": "sha256-FQEyyZ9A4c1mgdTO9CvIAFyscP44A3+aR5Xu6DCqG8E=", | 38 | "sha256": "sha256-n0B7A+TeRIRB+308jugOyKe35kUVKzDo0YvW2adazto=", |
| 39 | "sparseCheckout": [], | 39 | "sparseCheckout": [], |
| 40 | "type": "github" | 40 | "type": "github" |
| 41 | }, | 41 | }, |
| 42 | "version": "1769d51faeb96a1d94d68affcc06f5c71de03de5" | 42 | "version": "63a943e088b704c8c21649992931df795f4b9e5a" |
| 43 | }, | 43 | }, |
| 44 | "emacs-scratch_el": { | 44 | "emacs-scratch_el": { |
| 45 | "cargoLock": null, | 45 | "cargoLock": null, |
| @@ -202,7 +202,7 @@ | |||
| 202 | }, | 202 | }, |
| 203 | "mpv-reload": { | 203 | "mpv-reload": { |
| 204 | "cargoLock": null, | 204 | "cargoLock": null, |
| 205 | "date": "2025-02-07", | 205 | "date": "2026-10-04", |
| 206 | "extract": null, | 206 | "extract": null, |
| 207 | "name": "mpv-reload", | 207 | "name": "mpv-reload", |
| 208 | "passthru": null, | 208 | "passthru": null, |
| @@ -214,12 +214,12 @@ | |||
| 214 | "name": null, | 214 | "name": null, |
| 215 | "owner": "4e6", | 215 | "owner": "4e6", |
| 216 | "repo": "mpv-reload", | 216 | "repo": "mpv-reload", |
| 217 | "rev": "60e6fb1c578aa9af80d725857dac8e439095b033", | 217 | "rev": "fb7a26e21e581fcac4eeee9291de0ff788dc1a47", |
| 218 | "sha256": "sha256-elA9bi5ov5MbehLD1kyS4Z8zKgTc+8dcOPq32muRGcE=", | 218 | "sha256": "sha256-zlGifJyrpuv6TF7/PtSgSXHvGLvEEk+2/DiXxiremPU=", |
| 219 | "sparseCheckout": [], | 219 | "sparseCheckout": [], |
| 220 | "type": "github" | 220 | "type": "github" |
| 221 | }, | 221 | }, |
| 222 | "version": "60e6fb1c578aa9af80d725857dac8e439095b033" | 222 | "version": "fb7a26e21e581fcac4eeee9291de0ff788dc1a47" |
| 223 | }, | 223 | }, |
| 224 | "mpv-subselect": { | 224 | "mpv-subselect": { |
| 225 | "cargoLock": null, | 225 | "cargoLock": null, |
| @@ -355,7 +355,7 @@ | |||
| 355 | }, | 355 | }, |
| 356 | "quickshell": { | 356 | "quickshell": { |
| 357 | "cargoLock": null, | 357 | "cargoLock": null, |
| 358 | "date": "2026-09-20", | 358 | "date": "2026-10-16", |
| 359 | "extract": null, | 359 | "extract": null, |
| 360 | "name": "quickshell", | 360 | "name": "quickshell", |
| 361 | "passthru": null, | 361 | "passthru": null, |
| @@ -365,13 +365,13 @@ | |||
| 365 | "fetchSubmodules": false, | 365 | "fetchSubmodules": false, |
| 366 | "leaveDotGit": false, | 366 | "leaveDotGit": false, |
| 367 | "name": null, | 367 | "name": null, |
| 368 | "rev": "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7", | 368 | "rev": "2b4501a282689792b62e94f3fb30d8f512324fe6", |
| 369 | "sha256": "sha256-872tMDDYdjR983q7v2yDlnKOEBSPp5FXDdWF2q87gik=", | 369 | "sha256": "sha256-tq6x6CRG8Qikrjri59tzu9+b2gri8TjnShkGeh8kUgQ=", |
| 370 | "sparseCheckout": [], | 370 | "sparseCheckout": [], |
| 371 | "type": "git", | 371 | "type": "git", |
| 372 | "url": "https://git.outfoxxed.me/quickshell/quickshell.git" | 372 | "url": "https://git.outfoxxed.me/quickshell/quickshell.git" |
| 373 | }, | 373 | }, |
| 374 | "version": "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7" | 374 | "version": "2b4501a282689792b62e94f3fb30d8f512324fe6" |
| 375 | }, | 375 | }, |
| 376 | "scutiger": { | 376 | "scutiger": { |
| 377 | "cargoLock": null, | 377 | "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 @@ | |||
| 23 | }; | 23 | }; |
| 24 | bpf-examples = { | 24 | bpf-examples = { |
| 25 | pname = "bpf-examples"; | 25 | pname = "bpf-examples"; |
| 26 | version = "1769d51faeb96a1d94d68affcc06f5c71de03de5"; | 26 | version = "63a943e088b704c8c21649992931df795f4b9e5a"; |
| 27 | src = fetchFromGitHub { | 27 | src = fetchFromGitHub { |
| 28 | owner = "xdp-project"; | 28 | owner = "xdp-project"; |
| 29 | repo = "bpf-examples"; | 29 | repo = "bpf-examples"; |
| 30 | rev = "1769d51faeb96a1d94d68affcc06f5c71de03de5"; | 30 | rev = "63a943e088b704c8c21649992931df795f4b9e5a"; |
| 31 | fetchSubmodules = true; | 31 | fetchSubmodules = true; |
| 32 | sha256 = "sha256-FQEyyZ9A4c1mgdTO9CvIAFyscP44A3+aR5Xu6DCqG8E="; | 32 | sha256 = "sha256-n0B7A+TeRIRB+308jugOyKe35kUVKzDo0YvW2adazto="; |
| 33 | }; | 33 | }; |
| 34 | date = "2026-08-10"; | 34 | date = "2026-10-20"; |
| 35 | }; | 35 | }; |
| 36 | emacs-scratch_el = { | 36 | emacs-scratch_el = { |
| 37 | pname = "emacs-scratch_el"; | 37 | pname = "emacs-scratch_el"; |
| @@ -129,15 +129,15 @@ | |||
| 129 | }; | 129 | }; |
| 130 | mpv-reload = { | 130 | mpv-reload = { |
| 131 | pname = "mpv-reload"; | 131 | pname = "mpv-reload"; |
| 132 | version = "60e6fb1c578aa9af80d725857dac8e439095b033"; | 132 | version = "fb7a26e21e581fcac4eeee9291de0ff788dc1a47"; |
| 133 | src = fetchFromGitHub { | 133 | src = fetchFromGitHub { |
| 134 | owner = "4e6"; | 134 | owner = "4e6"; |
| 135 | repo = "mpv-reload"; | 135 | repo = "mpv-reload"; |
| 136 | rev = "60e6fb1c578aa9af80d725857dac8e439095b033"; | 136 | rev = "fb7a26e21e581fcac4eeee9291de0ff788dc1a47"; |
| 137 | fetchSubmodules = false; | 137 | fetchSubmodules = false; |
| 138 | sha256 = "sha256-elA9bi5ov5MbehLD1kyS4Z8zKgTc+8dcOPq32muRGcE="; | 138 | sha256 = "sha256-zlGifJyrpuv6TF7/PtSgSXHvGLvEEk+2/DiXxiremPU="; |
| 139 | }; | 139 | }; |
| 140 | date = "2025-02-07"; | 140 | date = "2026-10-04"; |
| 141 | }; | 141 | }; |
| 142 | mpv-subselect = { | 142 | mpv-subselect = { |
| 143 | pname = "mpv-subselect"; | 143 | pname = "mpv-subselect"; |
| @@ -223,17 +223,17 @@ | |||
| 223 | }; | 223 | }; |
| 224 | quickshell = { | 224 | quickshell = { |
| 225 | pname = "quickshell"; | 225 | pname = "quickshell"; |
| 226 | version = "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7"; | 226 | version = "2b4501a282689792b62e94f3fb30d8f512324fe6"; |
| 227 | src = fetchgit { | 227 | src = fetchgit { |
| 228 | url = "https://git.outfoxxed.me/quickshell/quickshell.git"; | 228 | url = "https://git.outfoxxed.me/quickshell/quickshell.git"; |
| 229 | rev = "fae96f1a5b7f53de9b7e40e5b53c0b7a2e97b1d7"; | 229 | rev = "2b4501a282689792b62e94f3fb30d8f512324fe6"; |
| 230 | fetchSubmodules = false; | 230 | fetchSubmodules = false; |
| 231 | deepClone = false; | 231 | deepClone = false; |
| 232 | leaveDotGit = false; | 232 | leaveDotGit = false; |
| 233 | sparseCheckout = [ ]; | 233 | sparseCheckout = [ ]; |
| 234 | sha256 = "sha256-872tMDDYdjR983q7v2yDlnKOEBSPp5FXDdWF2q87gik="; | 234 | sha256 = "sha256-tq6x6CRG8Qikrjri59tzu9+b2gri8TjnShkGeh8kUgQ="; |
| 235 | }; | 235 | }; |
| 236 | date = "2026-09-20"; | 236 | date = "2026-10-16"; |
| 237 | }; | 237 | }; |
| 238 | scutiger = { | 238 | scutiger = { |
| 239 | pname = "scutiger"; | 239 | 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<std::chrono::system_clock>& | |||
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | QString Chrono::format(const QString& fmt) const { | 77 | QString Chrono::format(const QString& fmt) const { |
| 78 | return QString::fromStdString(std::format(std::runtime_format(fmt.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast<std::chrono::seconds>(this->currentTime)))); | 78 | return QString::fromStdString(std::format(std::dynamic_format(fmt.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast<std::chrono::seconds>(this->currentTime)))); |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | QDateTime Chrono::date() const { | 81 | 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 @@ | |||
| 1 | #include "Systemd.hpp" | 1 | #include "Systemd.hpp" |
| 2 | 2 | ||
| 3 | #include <sstream> | 3 | #include <sstream> |
| 4 | #include <unistd.h> | ||
| 4 | 5 | ||
| 5 | #include <QDBusConnection> | 6 | #include <QDBusConnection> |
| 6 | #include <QDBusReply> | 7 | #include <QDBusReply> |
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 | |||
| 43 | sysConfig.systemd.package | 43 | sysConfig.systemd.package |
| 44 | sysConfig.programs.ssh.package | 44 | sysConfig.programs.ssh.package |
| 45 | gnused | 45 | gnused |
| 46 | miniserve | ||
| 47 | p7zip | 46 | p7zip |
| 48 | ]; | 47 | ]; |
| 49 | execer = with pkgs; [ | 48 | 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() { | |||
| 7 | wormhole=false | 7 | wormhole=false |
| 8 | gitWorktree="" | 8 | gitWorktree="" |
| 9 | modifyPDF="" | 9 | modifyPDF="" |
| 10 | miniserve=false | ||
| 11 | 10 | ||
| 12 | while getopts ':t:a:d:ir:wg:p:m' arg; do | 11 | while getopts ':t:a:d:ir:wg:p:m' arg; do |
| 13 | case $arg in | 12 | case $arg in |
| @@ -26,7 +25,6 @@ dir() { | |||
| 26 | "w") wormhole=true ;; | 25 | "w") wormhole=true ;; |
| 27 | "g") gitWorktree=${OPTARG} ;; | 26 | "g") gitWorktree=${OPTARG} ;; |
| 28 | "p") modifyPDF=${OPTARG:a} ;; | 27 | "p") modifyPDF=${OPTARG:a} ;; |
| 29 | "m") miniserve=true ;; | ||
| 30 | *) printf "Invalid option: %s\n" $arg >&2; exit 2 ;; | 28 | *) printf "Invalid option: %s\n" $arg >&2; exit 2 ;; |
| 31 | esac | 29 | esac |
| 32 | done | 30 | done |
| @@ -50,11 +48,6 @@ dir() { | |||
| 50 | gitWorktree="" | 48 | gitWorktree="" |
| 51 | fi | 49 | fi |
| 52 | 50 | ||
| 53 | miniservePIDFile="" | ||
| 54 | if [[ ${miniserve} = "true" ]]; then | ||
| 55 | miniservePIDFile=$(mktemp --tmpdir --suffix=.pid) | ||
| 56 | fi | ||
| 57 | |||
| 58 | cleanup() | 51 | cleanup() |
| 59 | { | 52 | { |
| 60 | if [[ -n ${modifyPDF} ]]; then | 53 | if [[ -n ${modifyPDF} ]]; then |
| @@ -64,10 +57,6 @@ dir() { | |||
| 64 | magick -verbose "${pages[@]}" $(mktemp --tmpdir=${modifyPDF:h} ${modifyPDF:t:r}_XXXXXXXXXX.${modifyPDF:e}) | 57 | magick -verbose "${pages[@]}" $(mktemp --tmpdir=${modifyPDF:h} ${modifyPDF:t:r}_XXXXXXXXXX.${modifyPDF:e}) |
| 65 | modifyPDF="" | 58 | modifyPDF="" |
| 66 | fi | 59 | fi |
| 67 | if [[ -n ${miniservePIDFile} ]]; then | ||
| 68 | command kill --verbose -- $(cat ${miniservePIDFile}) && wait $(cat ${miniservePIDFile}) | ||
| 69 | miniservePIDFile="" | ||
| 70 | fi | ||
| 71 | } | 60 | } |
| 72 | 61 | ||
| 73 | ( | 62 | ( |
| @@ -155,12 +144,7 @@ dir() { | |||
| 155 | 144 | ||
| 156 | cd $(pwd) # Needed for mounting to work | 145 | cd $(pwd) # Needed for mounting to work |
| 157 | 146 | ||
| 158 | if [[ ${miniserve} = "true" ]]; then | 147 | if [[ ${#@} -eq 0 ]] || [[ $forceShell = "true" ]]; then |
| 159 | miniserve --random-route --hidden --enable-tar-gz --enable-zip . & | ||
| 160 | echo $! > "${miniservePIDFile}" | ||
| 161 | fi | ||
| 162 | |||
| 163 | if [[ ${#@} -eq 0 ]] && [[ ${miniserve} != "true" ]] || [[ $forceShell = "true" ]]; then | ||
| 164 | isSingleDir() { | 148 | isSingleDir() { |
| 165 | typeset -a contents | 149 | typeset -a contents |
| 166 | contents=(*(N) .*(N)) | 150 | contents=(*(N) .*(N)) |
| @@ -175,8 +159,6 @@ dir() { | |||
| 175 | while d=$(isSingleDir); do cd ${d}; done | 159 | while d=$(isSingleDir); do cd ${d}; done |
| 176 | 160 | ||
| 177 | zsh | 161 | zsh |
| 178 | elif [[ ${miniserve} == "true" ]]; then | ||
| 179 | wait $(cat "${miniservePIDFile}") | ||
| 180 | fi | 162 | fi |
| 181 | ) | 163 | ) |
| 182 | } | 164 | } |
| @@ -91,11 +91,11 @@ | |||
| 91 | ] | 91 | ] |
| 92 | }, | 92 | }, |
| 93 | "locked": { | 93 | "locked": { |
| 94 | "lastModified": 1789404474, | 94 | "lastModified": 1792446739, |
| 95 | "narHash": "sha256-UXFQ7tFiwn8sPz0EV4CBB2PCf/ZiGIHWn/6MXk81Lxs=", | 95 | "narHash": "sha256-eINUtQW48bf9G3EYprthHMll8VDKxaXQP52TZFuwMmE=", |
| 96 | "owner": "serokell", | 96 | "owner": "serokell", |
| 97 | "repo": "deploy-rs", | 97 | "repo": "deploy-rs", |
| 98 | "rev": "e760371d631165e7d8de5b0dcf148e21ec4c16f0", | 98 | "rev": "1cec0527bd09074bbee6d4461900ce5d58267217", |
| 99 | "type": "github" | 99 | "type": "github" |
| 100 | }, | 100 | }, |
| 101 | "original": { | 101 | "original": { |
| @@ -314,11 +314,11 @@ | |||
| 314 | "systems": "systems" | 314 | "systems": "systems" |
| 315 | }, | 315 | }, |
| 316 | "locked": { | 316 | "locked": { |
| 317 | "lastModified": 1731533236, | 317 | "lastModified": 1791914995, |
| 318 | "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", | 318 | "narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=", |
| 319 | "owner": "numtide", | 319 | "owner": "numtide", |
| 320 | "repo": "flake-utils", | 320 | "repo": "flake-utils", |
| 321 | "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", | 321 | "rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544", |
| 322 | "type": "github" | 322 | "type": "github" |
| 323 | }, | 323 | }, |
| 324 | "original": { | 324 | "original": { |
| @@ -352,11 +352,11 @@ | |||
| 352 | ] | 352 | ] |
| 353 | }, | 353 | }, |
| 354 | "locked": { | 354 | "locked": { |
| 355 | "lastModified": 1789514889, | 355 | "lastModified": 1790500375, |
| 356 | "narHash": "sha256-PFD1nxptCXJyJoiYO1gf/5Vv43yqGpHtMC6LUhl9/pQ=", | 356 | "narHash": "sha256-XN3sDtn8TU9hAc9xqZ+SqRB/HHm2wjxM6aSWYLJU+oo=", |
| 357 | "owner": "cachix", | 357 | "owner": "cachix", |
| 358 | "repo": "git-hooks.nix", | 358 | "repo": "git-hooks.nix", |
| 359 | "rev": "59f4ca0d063a1a3ec722c88b51a33004862e5379", | 359 | "rev": "a0e4241b51206fbcbf52fd322eb5f0cd80f153c4", |
| 360 | "type": "github" | 360 | "type": "github" |
| 361 | }, | 361 | }, |
| 362 | "original": { | 362 | "original": { |
| @@ -502,11 +502,11 @@ | |||
| 502 | ] | 502 | ] |
| 503 | }, | 503 | }, |
| 504 | "locked": { | 504 | "locked": { |
| 505 | "lastModified": 1790365885, | 505 | "lastModified": 1792495086, |
| 506 | "narHash": "sha256-iQ0ebhiVo64NktTnwft9hNxlFu4j5cvljVxyJaEVIP4=", | 506 | "narHash": "sha256-TyoYH983Nsc++1scw0SoOEKshPSJWJDxK7tTmuZ974M=", |
| 507 | "owner": "nix-community", | 507 | "owner": "nix-community", |
| 508 | "repo": "home-manager", | 508 | "repo": "home-manager", |
| 509 | "rev": "7b4c5ec4bedaf1e062bbc1bcaeddbc6bd242aa1b", | 509 | "rev": "ec80131710bffcdf3b8498cf41f3a0579833b023", |
| 510 | "type": "github" | 510 | "type": "github" |
| 511 | }, | 511 | }, |
| 512 | "original": { | 512 | "original": { |
| @@ -564,11 +564,11 @@ | |||
| 564 | "nixpkgs": "nixpkgs_2" | 564 | "nixpkgs": "nixpkgs_2" |
| 565 | }, | 565 | }, |
| 566 | "locked": { | 566 | "locked": { |
| 567 | "lastModified": 1769548169, | 567 | "lastModified": 1792503832, |
| 568 | "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=", | 568 | "narHash": "sha256-WsqPR04nPS1bi5bYva04cJJcJyHw7x/rbaJmoXMzF04=", |
| 569 | "owner": "nix-community", | 569 | "owner": "nix-community", |
| 570 | "repo": "impermanence", | 570 | "repo": "impermanence", |
| 571 | "rev": "7b1d382faf603b6d264f58627330f9faa5cba149", | 571 | "rev": "936ced36ecd25fcbd9b4789184b88aa2e4c2a901", |
| 572 | "type": "github" | 572 | "type": "github" |
| 573 | }, | 573 | }, |
| 574 | "original": { | 574 | "original": { |
| @@ -622,11 +622,11 @@ | |||
| 622 | "pre-commit-hooks": "pre-commit-hooks" | 622 | "pre-commit-hooks": "pre-commit-hooks" |
| 623 | }, | 623 | }, |
| 624 | "locked": { | 624 | "locked": { |
| 625 | "lastModified": 1784472151, | 625 | "lastModified": 1791442942, |
| 626 | "narHash": "sha256-fCP7nG0yLb4sDWClF0X1+TvDRSQEsrFc7G5TFRtNVpM=", | 626 | "narHash": "sha256-KP9NEPojdjV1XwGatplmPHOuUuv1+8cBCgqkaZ+yB4c=", |
| 627 | "ref": "refs/heads/main", | 627 | "ref": "refs/heads/main", |
| 628 | "rev": "f9ea1e7bea532f1fb223f0a1955db6549c944a87", | 628 | "rev": "3f76d286041aa25b14feb29b5a5570c0e8b40594", |
| 629 | "revCount": 10, | 629 | "revCount": 12, |
| 630 | "type": "git", | 630 | "type": "git", |
| 631 | "url": "https://codeberg.org/debugloop/niri-autoselect-portal.git" | 631 | "url": "https://codeberg.org/debugloop/niri-autoselect-portal.git" |
| 632 | }, | 632 | }, |
| @@ -647,11 +647,11 @@ | |||
| 647 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" | 647 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" |
| 648 | }, | 648 | }, |
| 649 | "locked": { | 649 | "locked": { |
| 650 | "lastModified": 1790070480, | 650 | "lastModified": 1792528076, |
| 651 | "narHash": "sha256-gLB/L3ggRwng88W3t4KygVBkIjB84zW1xQSIWiuRGWg=", | 651 | "narHash": "sha256-nzLrw3rEoDdqBrAfvUmQUhoSuui2jZc71iIQB7d/qoI=", |
| 652 | "owner": "epireyn", | 652 | "owner": "epireyn", |
| 653 | "repo": "niri-flake", | 653 | "repo": "niri-flake", |
| 654 | "rev": "4edede7d2e876544cc1c1128e47d0e51278b1b9a", | 654 | "rev": "d62f632829c081ad44eb24b4be788fefde2686b2", |
| 655 | "type": "github" | 655 | "type": "github" |
| 656 | }, | 656 | }, |
| 657 | "original": { | 657 | "original": { |
| @@ -723,11 +723,11 @@ | |||
| 723 | ] | 723 | ] |
| 724 | }, | 724 | }, |
| 725 | "locked": { | 725 | "locked": { |
| 726 | "lastModified": 1789892076, | 726 | "lastModified": 1792309949, |
| 727 | "narHash": "sha256-Dkg4VKPmDPqTwaiw2WH5br73tXoL1qrOO0xJnR4TlcA=", | 727 | "narHash": "sha256-2DAEMk8YkV8OF6N2uw9jQ016cYoNkcgnq50AShwWxNw=", |
| 728 | "owner": "nix-community", | 728 | "owner": "nix-community", |
| 729 | "repo": "nix-index-database", | 729 | "repo": "nix-index-database", |
| 730 | "rev": "9ad722673ab3b3f91f02135e53775825b240b869", | 730 | "rev": "1b4d1758fa6053c5d6284254a793134fa602fbff", |
| 731 | "type": "github" | 731 | "type": "github" |
| 732 | }, | 732 | }, |
| 733 | "original": { | 733 | "original": { |
| @@ -744,11 +744,11 @@ | |||
| 744 | ] | 744 | ] |
| 745 | }, | 745 | }, |
| 746 | "locked": { | 746 | "locked": { |
| 747 | "lastModified": 1778497292, | 747 | "lastModified": 1791885592, |
| 748 | "narHash": "sha256-vodUt55p0PXOaKK5xE1dldTxdtyuttbdGy0LvP8cCxQ=", | 748 | "narHash": "sha256-scMEPnvPiru3KHrdbkKQcLPjtgX4gsoPG2kXNc6EIZc=", |
| 749 | "owner": "ners", | 749 | "owner": "ners", |
| 750 | "repo": "nix-monitored", | 750 | "repo": "nix-monitored", |
| 751 | "rev": "4a7e1e7dcd0c1f7c2d063928511ebd72afea7e58", | 751 | "rev": "5e2f9523e595c13d698ef06b6818454e18e6f940", |
| 752 | "type": "github" | 752 | "type": "github" |
| 753 | }, | 753 | }, |
| 754 | "original": { | 754 | "original": { |
| @@ -769,11 +769,11 @@ | |||
| 769 | ] | 769 | ] |
| 770 | }, | 770 | }, |
| 771 | "locked": { | 771 | "locked": { |
| 772 | "lastModified": 1789705005, | 772 | "lastModified": 1791519392, |
| 773 | "narHash": "sha256-kWGA2zNVrHZpKgeXA0urHvw7FWCTEp5rjyUAhCikXuc=", | 773 | "narHash": "sha256-l9JFud0pJ/JpYaTeNDbaaLfns8tBIOGCknBWwcUUg6Y=", |
| 774 | "ref": "refs/heads/main", | 774 | "ref": "refs/heads/main", |
| 775 | "rev": "bcecf42740627e01376caea1edc3194f39857890", | 775 | "rev": "ffbf605a17d53c076afa394c3d9ed3d112e02e18", |
| 776 | "revCount": 814, | 776 | "revCount": 817, |
| 777 | "type": "git", | 777 | "type": "git", |
| 778 | "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git" | 778 | "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git" |
| 779 | }, | 779 | }, |
| @@ -789,11 +789,11 @@ | |||
| 789 | ] | 789 | ] |
| 790 | }, | 790 | }, |
| 791 | "locked": { | 791 | "locked": { |
| 792 | "lastModified": 1783240168, | 792 | "lastModified": 1791744226, |
| 793 | "narHash": "sha256-9zaLOKal8uI+ecKaOBCOfGcZe/HG1xQQnlDDjPoOmwE=", | 793 | "narHash": "sha256-zQk2GSBO4hkq75PbtpgJHwupFHD0qaQDJiP15GTmstQ=", |
| 794 | "owner": "AshleyYakeley", | 794 | "owner": "AshleyYakeley", |
| 795 | "repo": "NixVirt", | 795 | "repo": "NixVirt", |
| 796 | "rev": "6d213ab42f72ba41c2eb4e6bdb97581c0642d942", | 796 | "rev": "11e2b2c0492aeff3fe3dea9000832d7694c47dfe", |
| 797 | "type": "github" | 797 | "type": "github" |
| 798 | }, | 798 | }, |
| 799 | "original": { | 799 | "original": { |
| @@ -807,11 +807,11 @@ | |||
| 807 | "nixpkgs": "nixpkgs_4" | 807 | "nixpkgs": "nixpkgs_4" |
| 808 | }, | 808 | }, |
| 809 | "locked": { | 809 | "locked": { |
| 810 | "lastModified": 1789978172, | 810 | "lastModified": 1792491056, |
| 811 | "narHash": "sha256-FIRXajv1pPZ+l6On6ekkmcQ6le0Zi0ncRUoR3nB0vKA=", | 811 | "narHash": "sha256-6n1Dn+WYtD8lprnSi+0k4FjbKfIVNG8lblpJ5MiiqXs=", |
| 812 | "owner": "NixOS", | 812 | "owner": "NixOS", |
| 813 | "repo": "nixos-hardware", | 813 | "repo": "nixos-hardware", |
| 814 | "rev": "9ebcb7766700d7e006d9505247bd7ce0426f4232", | 814 | "rev": "efb6d0d5e2394c3c5416a18652808aba206c0988", |
| 815 | "type": "github" | 815 | "type": "github" |
| 816 | }, | 816 | }, |
| 817 | "original": { | 817 | "original": { |
| @@ -932,11 +932,11 @@ | |||
| 932 | }, | 932 | }, |
| 933 | "nixpkgs-stable_2": { | 933 | "nixpkgs-stable_2": { |
| 934 | "locked": { | 934 | "locked": { |
| 935 | "lastModified": 1789998861, | 935 | "lastModified": 1792503283, |
| 936 | "narHash": "sha256-62XMQD4WLdMAfdT0/8gJmPH2dKeTw908ryNloAplTr8=", | 936 | "narHash": "sha256-vhe2jyvRCgufWPqDuDq1S3t3ypE+ka46IFutV02xKso=", |
| 937 | "owner": "NixOS", | 937 | "owner": "NixOS", |
| 938 | "repo": "nixpkgs", | 938 | "repo": "nixpkgs", |
| 939 | "rev": "1e8bc658fc985ef27ccd66d107d767b32bb7ef98", | 939 | "rev": "cd4ea8d57de16f4810bc5f14207bac45fbf19f67", |
| 940 | "type": "github" | 940 | "type": "github" |
| 941 | }, | 941 | }, |
| 942 | "original": { | 942 | "original": { |
| @@ -1025,11 +1025,11 @@ | |||
| 1025 | }, | 1025 | }, |
| 1026 | "nixpkgs_5": { | 1026 | "nixpkgs_5": { |
| 1027 | "locked": { | 1027 | "locked": { |
| 1028 | "lastModified": 1789921291, | 1028 | "lastModified": 1792502884, |
| 1029 | "narHash": "sha256-Ft/BRnIqw1MywFoXydKobjjWmDFgDdYtSpJliE8+yUw=", | 1029 | "narHash": "sha256-IoNisKcGbUjdd45qCqywGMCYmZ5EnkxezvLII0FWwNA=", |
| 1030 | "owner": "NixOS", | 1030 | "owner": "NixOS", |
| 1031 | "repo": "nixpkgs", | 1031 | "repo": "nixpkgs", |
| 1032 | "rev": "44a91898084f46797b5fac650c7e8c9ac38c43d4", | 1032 | "rev": "02c087f3fe673c9e317f206a627cb6b910336dbe", |
| 1033 | "type": "github" | 1033 | "type": "github" |
| 1034 | }, | 1034 | }, |
| 1035 | "original": { | 1035 | "original": { |
| @@ -1068,11 +1068,11 @@ | |||
| 1068 | ] | 1068 | ] |
| 1069 | }, | 1069 | }, |
| 1070 | "locked": { | 1070 | "locked": { |
| 1071 | "lastModified": 1773379327, | 1071 | "lastModified": 1792143065, |
| 1072 | "narHash": "sha256-Bj1ZaZVKTGyTOwwkp7TvAG0wxK9AAn717G/C8HnKFQM=", | 1072 | "narHash": "sha256-Q5MNCUrxmos6bHeXvRk+J186zqjsVQNZ7EvdncMryII=", |
| 1073 | "owner": "berberman", | 1073 | "owner": "berberman", |
| 1074 | "repo": "nvfetcher", | 1074 | "repo": "nvfetcher", |
| 1075 | "rev": "e41af9779ea14adf1d8c3edb075713c2668d45b9", | 1075 | "rev": "0e86fbbf93b56b344b6104443d317b16ca862ac9", |
| 1076 | "type": "github" | 1076 | "type": "github" |
| 1077 | }, | 1077 | }, |
| 1078 | "original": { | 1078 | "original": { |
| @@ -1295,11 +1295,11 @@ | |||
| 1295 | ] | 1295 | ] |
| 1296 | }, | 1296 | }, |
| 1297 | "locked": { | 1297 | "locked": { |
| 1298 | "lastModified": 1789963190, | 1298 | "lastModified": 1792499785, |
| 1299 | "narHash": "sha256-mj5BLUKECIHv3rwkBXL6xQp45gIBJV7ZOYgT46LXwho=", | 1299 | "narHash": "sha256-mGOkvueuMGSRiD75ccxFzfEvSlIU9ztjFluHMKOtogY=", |
| 1300 | "owner": "pyproject-nix", | 1300 | "owner": "pyproject-nix", |
| 1301 | "repo": "build-system-pkgs", | 1301 | "repo": "build-system-pkgs", |
| 1302 | "rev": "14b45373ea9a14ed2fcd0abf3ed35c8e3c430020", | 1302 | "rev": "a17819c85163988e063806ffc4f6d2716bc8ead8", |
| 1303 | "type": "github" | 1303 | "type": "github" |
| 1304 | }, | 1304 | }, |
| 1305 | "original": { | 1305 | "original": { |
| @@ -1315,11 +1315,11 @@ | |||
| 1315 | ] | 1315 | ] |
| 1316 | }, | 1316 | }, |
| 1317 | "locked": { | 1317 | "locked": { |
| 1318 | "lastModified": 1788394333, | 1318 | "lastModified": 1791657700, |
| 1319 | "narHash": "sha256-xYOP0Xym1eVGUaHFx+eJEaycFGoiCbst3fZf0xFHP78=", | 1319 | "narHash": "sha256-vcCAvhtA7hG+/gOge29hYHy7I/dLkIsr5nLx4sFEQic=", |
| 1320 | "owner": "pyproject-nix", | 1320 | "owner": "pyproject-nix", |
| 1321 | "repo": "pyproject.nix", | 1321 | "repo": "pyproject.nix", |
| 1322 | "rev": "6a8a7881d75b6f98967e7b8069f4ead331384301", | 1322 | "rev": "ddc400a6883b042646d0940e65971bb7f7e96107", |
| 1323 | "type": "github" | 1323 | "type": "github" |
| 1324 | }, | 1324 | }, |
| 1325 | "original": { | 1325 | "original": { |
| @@ -1390,11 +1390,11 @@ | |||
| 1390 | ] | 1390 | ] |
| 1391 | }, | 1391 | }, |
| 1392 | "locked": { | 1392 | "locked": { |
| 1393 | "lastModified": 1789890976, | 1393 | "lastModified": 1792056300, |
| 1394 | "narHash": "sha256-GKwH3zpy7tartuJMG0Rv/xUsdetG1QLmTVv8UKgJLmA=", | 1394 | "narHash": "sha256-YU1LjDe1o2Ymg5zEiCHbmMXLkDCtxHQRiVqZ3nC5GGk=", |
| 1395 | "owner": "Mic92", | 1395 | "owner": "Mic92", |
| 1396 | "repo": "sops-nix", | 1396 | "repo": "sops-nix", |
| 1397 | "rev": "7214124c20c1542c90deb54af50e2f53ae02711f", | 1397 | "rev": "44931708c62937c2b1bf7953902989fa5bb9ee1b", |
| 1398 | "type": "github" | 1398 | "type": "github" |
| 1399 | }, | 1399 | }, |
| 1400 | "original": { | 1400 | "original": { |
| @@ -1465,11 +1465,11 @@ | |||
| 1465 | ] | 1465 | ] |
| 1466 | }, | 1466 | }, |
| 1467 | "locked": { | 1467 | "locked": { |
| 1468 | "lastModified": 1789383061, | 1468 | "lastModified": 1792151315, |
| 1469 | "narHash": "sha256-+DkygIVr/+RtXnsjd07BzFFB0ihwmjjLuYh1fyc/bCg=", | 1469 | "narHash": "sha256-PMtgvHuGijoIAtPtrBm7kJOI6fxzX4LYPAIK+QVGY+Y=", |
| 1470 | "owner": "pyproject-nix", | 1470 | "owner": "pyproject-nix", |
| 1471 | "repo": "uv2nix", | 1471 | "repo": "uv2nix", |
| 1472 | "rev": "079be4e68c529c4cbc44dbf1afc692e4b30695b3", | 1472 | "rev": "7aba73a3d85454f1118f8cf9de97979b4d26bcac", |
| 1473 | "type": "github" | 1473 | "type": "github" |
| 1474 | }, | 1474 | }, |
| 1475 | "original": { | 1475 | "original": { |
| @@ -1498,11 +1498,11 @@ | |||
| 1498 | "xwayland-satellite-unstable": { | 1498 | "xwayland-satellite-unstable": { |
| 1499 | "flake": false, | 1499 | "flake": false, |
| 1500 | "locked": { | 1500 | "locked": { |
| 1501 | "lastModified": 1788991189, | 1501 | "lastModified": 1792070459, |
| 1502 | "narHash": "sha256-0TxfMgqW0/BLD4M942c5DCKYrtPvzsPJwvdcco4LQUM=", | 1502 | "narHash": "sha256-qGSyMXPHiXWp9/nE5Zs1DJN5NmZFvoxaBS5Y9i7p0Pc=", |
| 1503 | "owner": "Supreeeme", | 1503 | "owner": "Supreeeme", |
| 1504 | "repo": "xwayland-satellite", | 1504 | "repo": "xwayland-satellite", |
| 1505 | "rev": "add2795134593faafce60e404a0a75df68e9ee0c", | 1505 | "rev": "97a89cec53eb4f8788386a574450dd94c0538754", |
| 1506 | "type": "github" | 1506 | "type": "github" |
| 1507 | }, | 1507 | }, |
| 1508 | "original": { | 1508 | "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 @@ | |||
| 5 | ]; | 5 | ]; |
| 6 | 6 | ||
| 7 | config = { | 7 | config = { |
| 8 | hardware.framework.laptop13.audioEnhancement.enable = false; | 8 | hardware.framework = { |
| 9 | laptop13.audioEnhancement.enable = false; | ||
| 10 | enableKmod = false; | ||
| 11 | }; | ||
| 9 | hardware.enableRedistributableFirmware = true; | 12 | hardware.enableRedistributableFirmware = true; |
| 10 | services.fstrim.enable = false; | 13 | services.fstrim.enable = false; |
| 11 | 14 | ||
diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index 26517cd7..d618aa73 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix | |||
| @@ -115,7 +115,7 @@ with lib; | |||
| 115 | ProtectKernelLogs = true; | 115 | ProtectKernelLogs = true; |
| 116 | 116 | ||
| 117 | ProtectProc = "invisible"; | 117 | ProtectProc = "invisible"; |
| 118 | ProcSubset = "pid"; | 118 | ProcSubset = lib.mkForce "pid"; |
| 119 | 119 | ||
| 120 | PrivateNetwork = false; | 120 | PrivateNetwork = false; |
| 121 | RestrictAddressFamilies = ["AF_INET" "AF_INET6" "AF_UNIX"]; | 121 | RestrictAddressFamilies = ["AF_INET" "AF_INET6" "AF_UNIX"]; |
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 @@ | |||
| 1 | { final, prev, ... }: { | 1 | { flakeInputs, final, prev, ... }: { |
| 2 | etesync-dav = final.python312Packages.buildPythonApplication rec { | 2 | etesync-dav = final.python312Packages.buildPythonApplication (finalAttrs: rec { |
| 3 | pname = "etesync-dav"; | 3 | pname = "etesync-dav"; |
| 4 | version = "0.35.1"; | 4 | version = "0.35.1"; |
| 5 | pyproject = true; | 5 | pyproject = true; |
| @@ -7,12 +7,23 @@ | |||
| 7 | src = prev.fetchFromGitHub { | 7 | src = prev.fetchFromGitHub { |
| 8 | owner = "etesync"; | 8 | owner = "etesync"; |
| 9 | repo = "etesync-dav"; | 9 | repo = "etesync-dav"; |
| 10 | tag = "v${version}"; | 10 | tag = "v${finalAttrs.version}"; |
| 11 | hash = "sha256-y4BhU2kSn+RWqc5+pJQFhbwfat9cMWD0ED0EXJp25cY="; | 11 | hash = "sha256-y4BhU2kSn+RWqc5+pJQFhbwfat9cMWD0ED0EXJp25cY="; |
| 12 | }; | 12 | }; |
| 13 | 13 | ||
| 14 | patches = [ | ||
| 15 | (flakeInputs.nixpkgs + "/pkgs/by-name/et/etesync-dav/radicale-3-6-compat.patch") | ||
| 16 | (prev.fetchpatch { | ||
| 17 | url = "https://github.com/etesync/etesync-dav/pull/366.patch"; | ||
| 18 | hash = "sha256-WR+D6ZLMsvFzSFSGaensNxrs4VZAc9EoIwCfF6OPOSQ="; | ||
| 19 | }) | ||
| 20 | ]; | ||
| 21 | pythonRelaxDeps = [ "radicale" ]; | ||
| 22 | |||
| 14 | build-system = with final.python312Packages; [ setuptools ]; | 23 | build-system = with final.python312Packages; [ setuptools ]; |
| 15 | 24 | ||
| 25 | PYTHONPATH = final.python312Packages.makePythonPath dependencies; | ||
| 26 | |||
| 16 | dependencies = with final.python312Packages; [ | 27 | dependencies = with final.python312Packages; [ |
| 17 | appdirs | 28 | appdirs |
| 18 | etebase | 29 | etebase |
| @@ -21,40 +32,9 @@ | |||
| 21 | flask-wtf | 32 | flask-wtf |
| 22 | msgpack | 33 | msgpack |
| 23 | requests | 34 | requests |
| 24 | requests.optional-dependencies.socks | 35 | (toPythonModule (final.radicale.override { python3 = python; })) |
| 25 | (buildPythonApplication rec { | 36 | ] ++ requests.optional-dependencies.socks; |
| 26 | pname = "radicale"; | ||
| 27 | version = "3.2.0"; | ||
| 28 | pyproject = true; | ||
| 29 | |||
| 30 | src = prev.fetchFromGitHub { | ||
| 31 | owner = "Kozea"; | ||
| 32 | repo = "Radicale"; | ||
| 33 | rev = "refs/tags/v${version}"; | ||
| 34 | hash = "sha256-RxC8VOfdTXJZiAroDHTKjJqGWu65Z5uyb4WK1LOqubQ="; | ||
| 35 | }; | ||
| 36 | |||
| 37 | postPatch = '' | ||
| 38 | sed -i '/addopts/d' setup.cfg | ||
| 39 | ''; | ||
| 40 | |||
| 41 | build-system = [ | ||
| 42 | setuptools | ||
| 43 | ]; | ||
| 44 | |||
| 45 | dependencies = [ | ||
| 46 | defusedxml | ||
| 47 | passlib | ||
| 48 | vobject | ||
| 49 | pika | ||
| 50 | python-dateutil | ||
| 51 | pytz # https://github.com/Kozea/Radicale/issues/816 | ||
| 52 | ] ++ passlib.optional-dependencies.bcrypt; | ||
| 53 | |||
| 54 | doCheck = false; | ||
| 55 | }) | ||
| 56 | ]; | ||
| 57 | 37 | ||
| 58 | doCheck = false; | 38 | doCheck = false; |
| 59 | }; | 39 | }); |
| 60 | } | 40 | } |
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 @@ | |||
| 1 | { final, prev, ... }: { | ||
| 2 | python312 = prev.python312.override { | ||
| 3 | packageOverrides = self: super: { | ||
| 4 | etesync = super.etesync.overridePythonAttrs (oldAttrs: { | ||
| 5 | patches = (oldAttrs.patches or []) ++ [ | ||
| 6 | (prev.fetchpatch { | ||
| 7 | url = "https://github.com/etesync/etebase-py/pull/59.patch"; | ||
| 8 | hash = "sha256-vCueuk4gYskBZkzwJB2B8d7N6XXNDgNBA7rsZ2gpZXs="; | ||
| 9 | }) | ||
| 10 | ]; | ||
| 11 | }); | ||
| 12 | }; | ||
| 13 | }; | ||
| 14 | } | ||
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 @@ | |||
| 1 | diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp | ||
| 2 | index 60412b5a..c0497d91 100644 | ||
| 3 | --- a/src/browser/BrowserService.cpp | ||
| 4 | +++ b/src/browser/BrowserService.cpp | ||
| 5 | @@ -249,7 +249,7 @@ QJsonObject BrowserService::createNewGroup(const QString& groupName) | ||
| 6 | return result; | ||
| 7 | } | ||
| 8 | |||
| 9 | - auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, | ||
| 10 | + auto dialogResult = MessageBox::warning(nullptr, | ||
| 11 | tr("KeePassXC - Create a new group"), | ||
| 12 | tr("A request for creating a new group \"%1\" has been received.\n" | ||
| 13 | "Do you want to create this group?\n") | ||
| 14 | @@ -422,7 +422,7 @@ QList<Entry*> BrowserService::confirmEntries(QList<Entry*>& entriesToConfirm, | ||
| 15 | |||
| 16 | m_dialogActive = true; | ||
| 17 | updateWindowState(); | ||
| 18 | - BrowserAccessControlDialog accessControlDialog(m_currentDatabaseWidget); | ||
| 19 | + BrowserAccessControlDialog accessControlDialog{}; | ||
| 20 | |||
| 21 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); | ||
| 22 | |||
| 23 | @@ -512,7 +512,7 @@ QString BrowserService::storeKey(const QString& key) | ||
| 24 | QString id; | ||
| 25 | |||
| 26 | do { | ||
| 27 | - QInputDialog keyDialog(m_currentDatabaseWidget); | ||
| 28 | + QInputDialog keyDialog{}; | ||
| 29 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject())); | ||
| 30 | keyDialog.setWindowTitle(tr("KeePassXC - New key association request")); | ||
| 31 | keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n" | ||
| 32 | @@ -535,7 +535,7 @@ QString BrowserService::storeKey(const QString& key) | ||
| 33 | |||
| 34 | contains = db->metadata()->customData()->contains(CustomData::BrowserKeyPrefix + id); | ||
| 35 | if (contains) { | ||
| 36 | - dialogResult = MessageBox::warning(m_currentDatabaseWidget, | ||
| 37 | + dialogResult = MessageBox::warning(nullptr, | ||
| 38 | tr("KeePassXC - Overwrite existing key?"), | ||
| 39 | tr("A shared encryption key with the name \"%1\" " | ||
| 40 | "already exists.\nDo you want to overwrite it?") | ||
| 41 | @@ -595,7 +595,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public | ||
| 42 | const auto existingEntries = getPasskeyEntriesWithUserHandle(rpId, userId, keyList); | ||
| 43 | |||
| 44 | raiseWindow(); | ||
| 45 | - BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget); | ||
| 46 | + BrowserPasskeysConfirmationDialog confirmDialog{}; | ||
| 47 | confirmDialog.registerCredential(username, rpId, existingEntries, timeout); | ||
| 48 | |||
| 49 | auto dialogResult = confirmDialog.exec(); | ||
| 50 | @@ -612,7 +612,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public | ||
| 51 | // If no entry is selected, show the import dialog for manual entry selection | ||
| 52 | auto selectedEntry = confirmDialog.getSelectedEntry(); | ||
| 53 | if (!selectedEntry) { | ||
| 54 | - PasskeyImporter passkeyImporter(m_currentDatabaseWidget); | ||
| 55 | + PasskeyImporter passkeyImporter{}; | ||
| 56 | const auto result = passkeyImporter.showImportDialog(db, | ||
| 57 | nullptr, | ||
| 58 | origin, | ||
| 59 | @@ -683,7 +683,7 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& | ||
| 60 | const auto timeout = publicKeyOptions["timeout"].toInt(); | ||
| 61 | |||
| 62 | raiseWindow(); | ||
| 63 | - BrowserPasskeysConfirmationDialog confirmDialog(m_currentDatabaseWidget); | ||
| 64 | + BrowserPasskeysConfirmationDialog confirmDialog{}; | ||
| 65 | confirmDialog.authenticateCredential(entries, rpId, timeout); | ||
| 66 | auto dialogResult = confirmDialog.exec(); | ||
| 67 | if (dialogResult == QDialog::Accepted) { | ||
| 68 | @@ -760,7 +760,7 @@ void BrowserService::addPasskeyToEntry(Entry* entry, | ||
| 69 | |||
| 70 | // Ask confirmation if entry already contains a Passkey | ||
| 71 | if (entry->hasPasskey()) { | ||
| 72 | - if (MessageBox::question(m_currentDatabaseWidget, | ||
| 73 | + if (MessageBox::question(nullptr, | ||
| 74 | tr("KeePassXC - Update passkey"), | ||
| 75 | tr("Entry already has a passkey.\nDo you want to overwrite the passkey in %1 - %2?") | ||
| 76 | .arg(entry->title(), passkeyUtils()->getUsernameFromEntry(entry)), | ||
| 77 | @@ -873,7 +873,7 @@ bool BrowserService::updateEntry(const EntryParameters& entryParameters, const Q | ||
| 78 | MessageBox::Button dialogResult = MessageBox::No; | ||
| 79 | if (!browserSettings()->alwaysAllowUpdate()) { | ||
| 80 | raiseWindow(); | ||
| 81 | - dialogResult = MessageBox::question(m_currentDatabaseWidget, | ||
| 82 | + dialogResult = MessageBox::question(nullptr, | ||
| 83 | tr("KeePassXC - Update Entry"), | ||
| 84 | tr("Do you want to update the information in %1 - %2?") | ||
| 85 | .arg(QUrl(entryParameters.siteUrl).host(), username), | ||
| 86 | @@ -909,7 +909,7 @@ bool BrowserService::deleteEntry(const QString& uuid) | ||
| 87 | return false; | ||
| 88 | } | ||
| 89 | |||
| 90 | - auto dialogResult = MessageBox::warning(m_currentDatabaseWidget, | ||
| 91 | + auto dialogResult = MessageBox::warning(nullptr, | ||
| 92 | tr("KeePassXC - Delete entry"), | ||
| 93 | tr("A request for deleting entry \"%1\" has been received.\n" | ||
| 94 | "Do you want to delete the entry?\n") | ||
| 95 | @@ -1536,7 +1536,7 @@ QSharedPointer<Database> BrowserService::selectedDatabase() | ||
| 96 | } | ||
| 97 | } | ||
| 98 | |||
| 99 | - BrowserEntrySaveDialog browserEntrySaveDialog(m_currentDatabaseWidget); | ||
| 100 | + BrowserEntrySaveDialog browserEntrySaveDialog{}; | ||
| 101 | int openDatabaseCount = browserEntrySaveDialog.setItems(databaseWidgets, m_currentDatabaseWidget); | ||
| 102 | if (openDatabaseCount > 1) { | ||
| 103 | int res = browserEntrySaveDialog.exec(); | ||
| 104 | diff --git a/src/fdosecrets/objects/Prompt.cpp b/src/fdosecrets/objects/Prompt.cpp | ||
| 105 | index e89cd499..347c98b8 100644 | ||
| 106 | --- a/src/fdosecrets/objects/Prompt.cpp | ||
| 107 | +++ b/src/fdosecrets/objects/Prompt.cpp | ||
| 108 | @@ -313,7 +313,7 @@ namespace FdoSecrets | ||
| 109 | if (!entries.isEmpty()) { | ||
| 110 | QString app = tr("%1 (PID: %2)").arg(client->name()).arg(client->pid()); | ||
| 111 | auto ac = new AccessControlDialog( | ||
| 112 | - findWindow(m_windowId), entries, app, client->processInfo(), AuthOption::Remember); | ||
| 113 | + nullptr, entries, app, client->processInfo(), AuthOption::Remember); | ||
| 114 | connect(ac, &AccessControlDialog::finished, this, &UnlockPrompt::itemUnlockFinished); | ||
| 115 | connect(ac, &AccessControlDialog::finished, ac, &AccessControlDialog::deleteLater); | ||
| 116 | ac->open(); | ||
| 117 | diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp | ||
| 118 | index 805d4eab..4836199e 100644 | ||
| 119 | --- a/src/gui/DatabaseTabWidget.cpp | ||
| 120 | +++ b/src/gui/DatabaseTabWidget.cpp | ||
| 121 | @@ -41,7 +41,7 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) | ||
| 122 | : QTabWidget(parent) | ||
| 123 | , m_dbWidgetStateSync(new DatabaseWidgetStateSync(this)) | ||
| 124 | , m_dbWidgetPendingLock(nullptr) | ||
| 125 | - , m_databaseOpenDialog(new DatabaseOpenDialog(this)) | ||
| 126 | + , m_databaseOpenDialog(new DatabaseOpenDialog()) | ||
| 127 | , m_databaseOpenInProgress(false) | ||
| 128 | { | ||
| 129 | 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 @@ | |||
| 1 | { final, prev, flakeInputs, ... }: | ||
| 2 | { | ||
| 3 | keepassxc = final.stdenv.mkDerivation (finalAttrs: { | ||
| 4 | pname = "keepassxc"; | ||
| 5 | version = "2.8.0-beta1"; | ||
| 6 | |||
| 7 | src = final.fetchFromGitHub { | ||
| 8 | owner = "keepassxreboot"; | ||
| 9 | repo = "keepassxc"; | ||
| 10 | tag = finalAttrs.version; | ||
| 11 | hash = "sha256-fksThYmGZed66zxGDxlS2SHQzJYRf+T9AuZPbaNZV5Y="; | ||
| 12 | }; | ||
| 13 | |||
| 14 | env = | ||
| 15 | final.lib.optionalAttrs final.stdenv.cc.isClang { | ||
| 16 | NIX_CFLAGS_COMPILE = toString [ | ||
| 17 | "-Wno-old-style-cast" | ||
| 18 | "-Wno-error" | ||
| 19 | "-D__BIG_ENDIAN__=${if final.stdenv.hostPlatform.isBigEndian then "1" else "0"}" | ||
| 20 | ]; | ||
| 21 | }; | ||
| 22 | |||
| 23 | # Upstream develops against a build of PCSC from Xcode. | ||
| 24 | # The types are incompatible with nixpkgs pcsclite. | ||
| 25 | # https://github.com/NixOS/nixpkgs/issues/520227 | ||
| 26 | postPatch = '' | ||
| 27 | substituteInPlace src/keys/drivers/YubiKeyInterfacePCSC.cpp \ | ||
| 28 | --replace-fail "typedef uint32_t RETVAL;" "typedef int32_t RETVAL;" | ||
| 29 | ''; | ||
| 30 | |||
| 31 | cmakeFlags = [ | ||
| 32 | (final.lib.cmakeFeature "KEEPASSXC_BUILD_TYPE" "Release") | ||
| 33 | (final.lib.cmakeBool "WITH_GUI_TESTS" true) | ||
| 34 | (final.lib.cmakeBool "WITH_XC_UPDATECHECK" false) | ||
| 35 | (final.lib.cmakeBool "WITH_XC_X11" false) | ||
| 36 | (final.lib.cmakeBool "WITH_XC_BROWSER" true) | ||
| 37 | (final.lib.cmakeBool "WITH_XC_BROWSER_PASSKEYS" true) | ||
| 38 | (final.lib.cmakeBool "WITH_XC_KEESHARE" true) | ||
| 39 | (final.lib.cmakeBool "WITH_XC_NETWORKING" true) | ||
| 40 | (final.lib.cmakeBool "WITH_XC_SSHAGENT" true) | ||
| 41 | (final.lib.cmakeBool "WITH_XC_FDOSECRETS" true) | ||
| 42 | (final.lib.cmakeBool "WITH_XC_YUBIKEY" true) | ||
| 43 | ]; | ||
| 44 | |||
| 45 | doCheck = true; | ||
| 46 | checkPhase = | ||
| 47 | let | ||
| 48 | disabledTests = final.lib.concatStringsSep "|" ( | ||
| 49 | [ | ||
| 50 | # flaky | ||
| 51 | "testcli" | ||
| 52 | "testgui" | ||
| 53 | ] | ||
| 54 | ); | ||
| 55 | in | ||
| 56 | '' | ||
| 57 | runHook preCheck | ||
| 58 | |||
| 59 | export LC_ALL="en_US.UTF-8" | ||
| 60 | export QT_QPA_PLATFORM=offscreen | ||
| 61 | export QT_PLUGIN_PATH="${final.qt6.qtbase}/${final.qt6.qtbase.qtPluginPrefix}" | ||
| 62 | |||
| 63 | make test ARGS+="-E '${disabledTests}' --output-on-failure" | ||
| 64 | |||
| 65 | runHook postCheck | ||
| 66 | ''; | ||
| 67 | |||
| 68 | nativeBuildInputs = with final; [ | ||
| 69 | asciidoctor | ||
| 70 | cmake | ||
| 71 | qt6.wrapQtAppsHook | ||
| 72 | qt6.qttools | ||
| 73 | pkg-config | ||
| 74 | wrapGAppsHook3 | ||
| 75 | ]; | ||
| 76 | |||
| 77 | dontWrapGApps = true; | ||
| 78 | preFixup = '' | ||
| 79 | qtWrapperArgs+=("''${gappsWrapperArgs[@]}") | ||
| 80 | ''; | ||
| 81 | |||
| 82 | postInstall = final.lib.concatLines [ | ||
| 83 | # See https://github.com/keepassxreboot/keepassxc/blob/cd7a53abbbb81e468efb33eb56eefc12739969b8/src/browser/NativeMessageInstaller.cpp#L317 | ||
| 84 | # See https://github.com/keepassxreboot/keepassxc/blob/cd7a53abbbb81e468efb33eb56eefc12739969b8/utils/keepassxc-snap-helper.sh#L48-L58 | ||
| 85 | '' | ||
| 86 | mkdir -p "$out/lib/mozilla/native-messaging-hosts" | ||
| 87 | 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" | ||
| 88 | |||
| 89 | mkdir -p "$out/etc/chromium/native-messaging-hosts" | ||
| 90 | 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" | ||
| 91 | '' | ||
| 92 | ]; | ||
| 93 | |||
| 94 | buildInputs = with final; [ | ||
| 95 | botan3 | ||
| 96 | curl | ||
| 97 | libxi | ||
| 98 | libxtst | ||
| 99 | libargon2 | ||
| 100 | qt6.qtbase | ||
| 101 | qt6.qtsvg | ||
| 102 | minizip | ||
| 103 | pcsclite | ||
| 104 | qrencode | ||
| 105 | readline | ||
| 106 | zlib | ||
| 107 | libusb1 | ||
| 108 | keyutils | ||
| 109 | ]; | ||
| 110 | |||
| 111 | meta.mainProgram = "keepassxc"; | ||
| 112 | }); | ||
| 113 | } | ||
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 @@ | |||
| 17 | 17 | ||
| 18 | patches = (oldAttrs.patches or []) ++ [ | 18 | patches = (oldAttrs.patches or []) ++ [ |
| 19 | # ./lock-state-changed.patch | 19 | # ./lock-state-changed.patch |
| 20 | ./notify-session-unlock.patch | 20 | # ./notify-session-unlock.patch |
| 21 | ./pipewire.patch | 21 | ./pipewire.patch |
| 22 | ./io.patch | 22 | ./io.patch |
| 23 | ./close-stdin.patch | 23 | ./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 @@ | |||
| 1 | diff --git i/src/services/pipewire/device.cpp w/src/services/pipewire/device.cpp | 1 | diff --git c/src/services/pipewire/device.cpp i/src/services/pipewire/device.cpp |
| 2 | index 616e7d0..0c55008 100644 | 2 | index 61079a1..7246a67 100644 |
| 3 | --- i/src/services/pipewire/device.cpp | 3 | --- c/src/services/pipewire/device.cpp |
| 4 | +++ w/src/services/pipewire/device.cpp | 4 | +++ i/src/services/pipewire/device.cpp |
| 5 | @@ -3,6 +3,7 @@ | 5 | @@ -3,6 +3,7 @@ |
| 6 | #include <cstdint> | 6 | #include <cstdint> |
| 7 | #include <functional> | 7 | #include <functional> |
| @@ -21,7 +21,7 @@ index 616e7d0..0c55008 100644 | |||
| 21 | 21 | ||
| 22 | #include "../../core/logcat.hpp" | 22 | #include "../../core/logcat.hpp" |
| 23 | #include "core.hpp" | 23 | #include "core.hpp" |
| 24 | @@ -46,6 +49,25 @@ void PwDevice::unbindHooks() { | 24 | @@ -46,6 +51,25 @@ void PwDevice::unbindHooks() { |
| 25 | this->mWaitingForDevice = false; | 25 | this->mWaitingForDevice = false; |
| 26 | } | 26 | } |
| 27 | 27 | ||
| @@ -47,7 +47,7 @@ index 616e7d0..0c55008 100644 | |||
| 47 | const pw_device_events PwDevice::EVENTS = { | 47 | const pw_device_events PwDevice::EVENTS = { |
| 48 | .version = PW_VERSION_DEVICE_EVENTS, | 48 | .version = PW_VERSION_DEVICE_EVENTS, |
| 49 | .info = &PwDevice::onInfo, | 49 | .info = &PwDevice::onInfo, |
| 50 | @@ -71,6 +93,11 @@ void PwDevice::onInfo(void* data, const pw_device_info* info) { | 50 | @@ -71,6 +95,11 @@ void PwDevice::onInfo(void* data, const pw_device_info* info) { |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | break; | 53 | break; |
| @@ -59,7 +59,7 @@ index 616e7d0..0c55008 100644 | |||
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | } | 61 | } |
| 62 | @@ -97,6 +124,15 @@ void PwDevice::onParam( | 62 | @@ -97,6 +126,15 @@ void PwDevice::onParam( |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | self->addDeviceIndexPairs(param); | 65 | self->addDeviceIndexPairs(param); |
| @@ -75,7 +75,7 @@ index 616e7d0..0c55008 100644 | |||
| 75 | } | 75 | } |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | @@ -145,6 +181,21 @@ void PwDevice::polled() { | 78 | @@ -159,6 +197,21 @@ void PwDevice::polled() { |
| 79 | return false; | 79 | return false; |
| 80 | }); | 80 | }); |
| 81 | } | 81 | } |
| @@ -97,7 +97,7 @@ index 616e7d0..0c55008 100644 | |||
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | bool PwDevice::setVolumes(qint32 routeDevice, const QVector<float>& volumes) { | 99 | bool PwDevice::setVolumes(qint32 routeDevice, const QVector<float>& volumes) { |
| 100 | @@ -182,6 +233,15 @@ bool PwDevice::setMuted(qint32 routeDevice, bool muted) { | 100 | @@ -196,6 +249,15 @@ bool PwDevice::setMuted(qint32 routeDevice, bool muted) { |
| 101 | }); | 101 | }); |
| 102 | } | 102 | } |
| 103 | 103 | ||
| @@ -113,7 +113,7 @@ index 616e7d0..0c55008 100644 | |||
| 113 | void PwDevice::waitForDevice() { this->mWaitingForDevice = true; } | 113 | void PwDevice::waitForDevice() { this->mWaitingForDevice = true; } |
| 114 | bool PwDevice::waitingForDevice() const { return this->mWaitingForDevice; } | 114 | bool PwDevice::waitingForDevice() const { return this->mWaitingForDevice; } |
| 115 | 115 | ||
| 116 | @@ -222,4 +282,24 @@ bool PwDevice::setRouteProps( | 116 | @@ -236,4 +298,24 @@ bool PwDevice::setRouteProps( |
| 117 | return true; | 117 | return true; |
| 118 | } | 118 | } |
| 119 | 119 | ||
| @@ -138,10 +138,10 @@ index 616e7d0..0c55008 100644 | |||
| 138 | +} | 138 | +} |
| 139 | + | 139 | + |
| 140 | } // namespace qs::service::pipewire | 140 | } // namespace qs::service::pipewire |
| 141 | diff --git i/src/services/pipewire/device.hpp w/src/services/pipewire/device.hpp | 141 | diff --git c/src/services/pipewire/device.hpp i/src/services/pipewire/device.hpp |
| 142 | index 1a1f705..ee64858 100644 | 142 | index f973b18..7cff16f 100644 |
| 143 | --- i/src/services/pipewire/device.hpp | 143 | --- c/src/services/pipewire/device.hpp |
| 144 | +++ w/src/services/pipewire/device.hpp | 144 | +++ i/src/services/pipewire/device.hpp |
| 145 | @@ -1,6 +1,7 @@ | 145 | @@ -1,6 +1,7 @@ |
| 146 | #pragma once | 146 | #pragma once |
| 147 | 147 | ||
| @@ -150,7 +150,7 @@ index 1a1f705..ee64858 100644 | |||
| 150 | 150 | ||
| 151 | #include <pipewire/core.h> | 151 | #include <pipewire/core.h> |
| 152 | #include <pipewire/device.h> | 152 | #include <pipewire/device.h> |
| 153 | @@ -17,6 +18,20 @@ | 153 | @@ -16,6 +17,20 @@ |
| 154 | 154 | ||
| 155 | namespace qs::service::pipewire { | 155 | namespace qs::service::pipewire { |
| 156 | 156 | ||
| @@ -170,8 +170,8 @@ index 1a1f705..ee64858 100644 | |||
| 170 | + | 170 | + |
| 171 | class PwDevice; | 171 | class PwDevice; |
| 172 | 172 | ||
| 173 | class PwDevice: public PwBindable<pw_device, PW_TYPE_INTERFACE_Device, PW_VERSION_DEVICE> { | 173 | // Forward declare to avoid circular dependency with node.hpp |
| 174 | @@ -25,6 +40,12 @@ class PwDevice: public PwBindable<pw_device, PW_TYPE_INTERFACE_Device, PW_VERSIO | 174 | @@ -27,6 +42,12 @@ class PwDevice: public PwBindable<pw_device, PW_TYPE_INTERFACE_Device, PW_VERSIO |
| 175 | public: | 175 | public: |
| 176 | void bindHooks() override; | 176 | void bindHooks() override; |
| 177 | void unbindHooks() override; | 177 | void unbindHooks() override; |
| @@ -184,9 +184,9 @@ index 1a1f705..ee64858 100644 | |||
| 184 | 184 | ||
| 185 | bool setVolumes(qint32 routeDevice, const QVector<float>& volumes); | 185 | bool setVolumes(qint32 routeDevice, const QVector<float>& volumes); |
| 186 | bool setMuted(qint32 routeDevice, bool muted); | 186 | bool setMuted(qint32 routeDevice, bool muted); |
| 187 | @@ -32,9 +53,16 @@ public: | 187 | @@ -37,10 +58,17 @@ public: |
| 188 | void waitForDevice(); | 188 | [[nodiscard]] bool tryLoadVolumeProps(qint32 routeDevice, PwVolumeProps& volumeProps); |
| 189 | [[nodiscard]] bool waitingForDevice() const; | 189 | [[nodiscard]] bool hasRouteDevice(qint32 routeDevice) const; |
| 190 | 190 | ||
| 191 | + void setProfile(qint32 profileIndex); | 191 | + void setProfile(qint32 profileIndex); |
| 192 | + | 192 | + |
| @@ -195,13 +195,14 @@ index 1a1f705..ee64858 100644 | |||
| 195 | + | 195 | + |
| 196 | signals: | 196 | signals: |
| 197 | void deviceReady(); | 197 | void deviceReady(); |
| 198 | void routeVolumesChanged(qint32 routeDevice, const PwVolumeProps& volumeProps); | 198 | void |
| 199 | routeVolumesChanged(qint32 routeDevice, const qs::service::pipewire::PwVolumeProps& volumeProps); | ||
| 199 | + void profilesChanged(QList<PwProfile> profiles); | 200 | + void profilesChanged(QList<PwProfile> profiles); |
| 200 | + void currentProfileChanged(PwProfile profile); | 201 | + void currentProfileChanged(PwProfile profile); |
| 201 | 202 | ||
| 202 | private slots: | 203 | private slots: |
| 203 | void polled(); | 204 | void polled(); |
| 204 | @@ -49,6 +77,11 @@ private: | 205 | @@ -56,6 +84,11 @@ private: |
| 205 | QList<qint32> stagingIndexes; | 206 | QList<qint32> stagingIndexes; |
| 206 | void addDeviceIndexPairs(const spa_pod* param); | 207 | void addDeviceIndexPairs(const spa_pod* param); |
| 207 | 208 | ||
| @@ -213,11 +214,11 @@ index 1a1f705..ee64858 100644 | |||
| 213 | bool | 214 | bool |
| 214 | setRouteProps(qint32 routeDevice, const std::function<void*(spa_pod_builder*)>& propsCallback); | 215 | setRouteProps(qint32 routeDevice, const std::function<void*(spa_pod_builder*)>& propsCallback); |
| 215 | 216 | ||
| 216 | diff --git i/src/services/pipewire/node.cpp w/src/services/pipewire/node.cpp | 217 | diff --git c/src/services/pipewire/node.cpp i/src/services/pipewire/node.cpp |
| 217 | index 3e68149..4721a58 100644 | 218 | index 2811833..25e1f8d 100644 |
| 218 | --- i/src/services/pipewire/node.cpp | 219 | --- c/src/services/pipewire/node.cpp |
| 219 | +++ w/src/services/pipewire/node.cpp | 220 | +++ i/src/services/pipewire/node.cpp |
| 220 | @@ -145,6 +145,10 @@ void PwNode::initProps(const spa_dict* props) { | 221 | @@ -146,6 +146,10 @@ void PwNode::initProps(const spa_dict* props) { |
| 221 | this->type = PwNodeType::VideoSink; | 222 | this->type = PwNodeType::VideoSink; |
| 222 | } else if (strcmp(mediaClass, "Video/Source") == 0) { | 223 | } else if (strcmp(mediaClass, "Video/Source") == 0) { |
| 223 | this->type = PwNodeType::VideoSource; | 224 | this->type = PwNodeType::VideoSource; |
| @@ -228,11 +229,11 @@ index 3e68149..4721a58 100644 | |||
| 228 | } | 229 | } |
| 229 | } | 230 | } |
| 230 | 231 | ||
| 231 | diff --git i/src/services/pipewire/node.hpp w/src/services/pipewire/node.hpp | 232 | diff --git c/src/services/pipewire/node.hpp i/src/services/pipewire/node.hpp |
| 232 | index 0d4c92e..ee6f223 100644 | 233 | index d96525a..4f44c8d 100644 |
| 233 | --- i/src/services/pipewire/node.hpp | 234 | --- c/src/services/pipewire/node.hpp |
| 234 | +++ w/src/services/pipewire/node.hpp | 235 | +++ i/src/services/pipewire/node.hpp |
| 235 | @@ -144,6 +144,8 @@ public: | 236 | @@ -145,6 +145,8 @@ public: |
| 236 | // This is equivalent to the media class `Video/Sink` and is composed of the | 237 | // This is equivalent to the media class `Video/Sink` and is composed of the |
| 237 | // @@PwNodeType.Video and @@PwNodeType.Sink flags. | 238 | // @@PwNodeType.Video and @@PwNodeType.Sink flags. |
| 238 | VideoSink = Video | Sink, | 239 | VideoSink = Video | Sink, |
| @@ -241,11 +242,11 @@ index 0d4c92e..ee6f223 100644 | |||
| 241 | }; | 242 | }; |
| 242 | Q_ENUM(Flag); | 243 | Q_ENUM(Flag); |
| 243 | Q_DECLARE_FLAGS(Flags, Flag); | 244 | Q_DECLARE_FLAGS(Flags, Flag); |
| 244 | diff --git i/src/services/pipewire/qml.cpp w/src/services/pipewire/qml.cpp | 245 | diff --git c/src/services/pipewire/qml.cpp i/src/services/pipewire/qml.cpp |
| 245 | index 9efb17e..921d12a 100644 | 246 | index e4424c1..407096b 100644 |
| 246 | --- i/src/services/pipewire/qml.cpp | 247 | --- c/src/services/pipewire/qml.cpp |
| 247 | +++ w/src/services/pipewire/qml.cpp | 248 | +++ i/src/services/pipewire/qml.cpp |
| 248 | @@ -9,6 +9,9 @@ | 249 | @@ -8,6 +8,9 @@ |
| 249 | #include <qtypes.h> | 250 | #include <qtypes.h> |
| 250 | #include <qvariant.h> | 251 | #include <qvariant.h> |
| 251 | 252 | ||
| @@ -255,7 +256,7 @@ index 9efb17e..921d12a 100644 | |||
| 255 | #include "../../core/model.hpp" | 256 | #include "../../core/model.hpp" |
| 256 | #include "connection.hpp" | 257 | #include "connection.hpp" |
| 257 | #include "defaults.hpp" | 258 | #include "defaults.hpp" |
| 258 | @@ -54,6 +57,12 @@ Pipewire::Pipewire(QObject* parent): QObject(parent) { | 259 | @@ -53,6 +56,12 @@ Pipewire::Pipewire(QObject* parent): QObject(parent) { |
| 259 | 260 | ||
| 260 | QObject::connect(&connection->registry, &PwRegistry::nodeAdded, this, &Pipewire::onNodeAdded); | 261 | QObject::connect(&connection->registry, &PwRegistry::nodeAdded, this, &Pipewire::onNodeAdded); |
| 261 | 262 | ||
| @@ -268,7 +269,7 @@ index 9efb17e..921d12a 100644 | |||
| 268 | for (auto* link: connection->registry.links.values()) { | 269 | for (auto* link: connection->registry.links.values()) { |
| 269 | this->onLinkAdded(link); | 270 | this->onLinkAdded(link); |
| 270 | } | 271 | } |
| 271 | @@ -123,6 +132,19 @@ void Pipewire::onNodeRemoved(QObject* object) { | 272 | @@ -115,6 +124,19 @@ void Pipewire::onNodeRemoved(QObject* object) { |
| 272 | this->mNodes.removeObject(iface); | 273 | this->mNodes.removeObject(iface); |
| 273 | } | 274 | } |
| 274 | 275 | ||
| @@ -288,7 +289,7 @@ index 9efb17e..921d12a 100644 | |||
| 288 | ObjectModel<PwLinkIface>* Pipewire::links() { return &this->mLinks; } | 289 | ObjectModel<PwLinkIface>* Pipewire::links() { return &this->mLinks; } |
| 289 | 290 | ||
| 290 | void Pipewire::onLinkAdded(PwLink* link) { | 291 | void Pipewire::onLinkAdded(PwLink* link) { |
| 291 | @@ -357,6 +379,8 @@ QVariantMap PwNodeIface::properties() const { | 292 | @@ -352,6 +374,8 @@ QVariantMap PwNodeIface::properties() const { |
| 292 | 293 | ||
| 293 | PwNodeAudioIface* PwNodeIface::audio() const { return this->audioIface; } | 294 | PwNodeAudioIface* PwNodeIface::audio() const { return this->audioIface; } |
| 294 | 295 | ||
| @@ -297,7 +298,7 @@ index 9efb17e..921d12a 100644 | |||
| 297 | PwNodeIface* PwNodeIface::instance(PwNode* node) { | 298 | PwNodeIface* PwNodeIface::instance(PwNode* node) { |
| 298 | if (node == nullptr) return nullptr; | 299 | if (node == nullptr) return nullptr; |
| 299 | 300 | ||
| 300 | @@ -481,4 +505,42 @@ void PwObjectTracker::objectDestroyed(QObject* object) { | 301 | @@ -476,4 +500,42 @@ void PwObjectTracker::objectDestroyed(QObject* object) { |
| 301 | emit this->objectsChanged(); | 302 | emit this->objectsChanged(); |
| 302 | } | 303 | } |
| 303 | 304 | ||
| @@ -340,10 +341,10 @@ index 9efb17e..921d12a 100644 | |||
| 340 | +} | 341 | +} |
| 341 | + | 342 | + |
| 342 | } // namespace qs::service::pipewire | 343 | } // namespace qs::service::pipewire |
| 343 | diff --git i/src/services/pipewire/qml.hpp w/src/services/pipewire/qml.hpp | 344 | diff --git c/src/services/pipewire/qml.hpp i/src/services/pipewire/qml.hpp |
| 344 | index e3489a1..e5e1891 100644 | 345 | index 93c4844..87cbcb3 100644 |
| 345 | --- i/src/services/pipewire/qml.hpp | 346 | --- c/src/services/pipewire/qml.hpp |
| 346 | +++ w/src/services/pipewire/qml.hpp | 347 | +++ i/src/services/pipewire/qml.hpp |
| 347 | @@ -12,11 +12,13 @@ | 348 | @@ -12,11 +12,13 @@ |
| 348 | #include "../../core/model.hpp" | 349 | #include "../../core/model.hpp" |
| 349 | #include "link.hpp" | 350 | #include "link.hpp" |
| @@ -378,13 +379,13 @@ index e3489a1..e5e1891 100644 | |||
| 378 | @@ -159,7 +164,9 @@ signals: | 379 | @@ -159,7 +164,9 @@ signals: |
| 379 | 380 | ||
| 380 | private slots: | 381 | private slots: |
| 381 | void onNodeAdded(PwNode* node); | 382 | void onNodeAdded(qs::service::pipewire::PwNode* node); |
| 382 | + void onDeviceAdded(PwDevice* node); | 383 | + void onDeviceAdded(PwDevice* node); |
| 383 | void onNodeRemoved(QObject* object); | 384 | void onNodeRemoved(QObject* object); |
| 384 | + void onDeviceRemoved(QObject* object); | 385 | + void onDeviceRemoved(QObject* object); |
| 385 | void onLinkAdded(PwLink* link); | 386 | void onLinkAdded(qs::service::pipewire::PwLink* link); |
| 386 | void onLinkRemoved(QObject* object); | 387 | void onLinkRemoved(QObject* object); |
| 387 | void onLinkGroupAdded(PwLinkGroup* group); | 388 | void onLinkGroupAdded(qs::service::pipewire::PwLinkGroup* group); |
| 388 | @@ -167,6 +174,7 @@ private slots: | 389 | @@ -167,6 +174,7 @@ private slots: |
| 389 | 390 | ||
| 390 | private: | 391 | private: |
| @@ -454,11 +455,11 @@ index e3489a1..e5e1891 100644 | |||
| 454 | ///! A connection between pipewire nodes. | 455 | ///! A connection between pipewire nodes. |
| 455 | /// Note that there is one link per *channel* of a connection between nodes. | 456 | /// Note that there is one link per *channel* of a connection between nodes. |
| 456 | /// You usually want @@PwLinkGroup. | 457 | /// You usually want @@PwLinkGroup. |
| 457 | diff --git i/src/services/pipewire/registry.cpp w/src/services/pipewire/registry.cpp | 458 | diff --git c/src/services/pipewire/registry.cpp i/src/services/pipewire/registry.cpp |
| 458 | index c08fc1d..50c6d7a 100644 | 459 | index 4b670b1..4295874 100644 |
| 459 | --- i/src/services/pipewire/registry.cpp | 460 | --- c/src/services/pipewire/registry.cpp |
| 460 | +++ w/src/services/pipewire/registry.cpp | 461 | +++ i/src/services/pipewire/registry.cpp |
| 461 | @@ -196,6 +196,7 @@ void PwRegistry::onGlobal( | 462 | @@ -236,6 +236,7 @@ void PwRegistry::onGlobal( |
| 462 | device->initProps(props); | 463 | device->initProps(props); |
| 463 | 464 | ||
| 464 | self->devices.emplace(id, device); | 465 | self->devices.emplace(id, device); |
| @@ -466,7 +467,7 @@ index c08fc1d..50c6d7a 100644 | |||
| 466 | } | 467 | } |
| 467 | } | 468 | } |
| 468 | 469 | ||
| 469 | @@ -211,6 +212,9 @@ void PwRegistry::onGlobalRemoved(void* data, quint32 id) { | 470 | @@ -251,6 +252,9 @@ void PwRegistry::onGlobalRemoved(void* data, quint32 id) { |
| 470 | } else if (auto* node = self->nodes.value(id)) { | 471 | } else if (auto* node = self->nodes.value(id)) { |
| 471 | self->nodes.remove(id); | 472 | self->nodes.remove(id); |
| 472 | node->safeDestroy(); | 473 | node->safeDestroy(); |
| @@ -476,15 +477,15 @@ index c08fc1d..50c6d7a 100644 | |||
| 476 | } | 477 | } |
| 477 | } | 478 | } |
| 478 | 479 | ||
| 479 | diff --git i/src/services/pipewire/registry.hpp w/src/services/pipewire/registry.hpp | 480 | diff --git c/src/services/pipewire/registry.hpp i/src/services/pipewire/registry.hpp |
| 480 | index 8473f04..87e0766 100644 | 481 | index ec0a9ea..c9be65a 100644 |
| 481 | --- i/src/services/pipewire/registry.hpp | 482 | --- c/src/services/pipewire/registry.hpp |
| 482 | +++ w/src/services/pipewire/registry.hpp | 483 | +++ i/src/services/pipewire/registry.hpp |
| 483 | @@ -132,6 +132,7 @@ public: | 484 | @@ -133,6 +133,7 @@ public: |
| 484 | 485 | ||
| 485 | signals: | 486 | signals: |
| 486 | void nodeAdded(PwNode* node); | 487 | void nodeAdded(qs::service::pipewire::PwNode* node); |
| 487 | + void deviceAdded(PwDevice* node); | 488 | + void deviceAdded(PwDevice* node); |
| 488 | void linkAdded(PwLink* link); | 489 | void linkAdded(qs::service::pipewire::PwLink* link); |
| 489 | void linkGroupAdded(PwLinkGroup* group); | 490 | void linkGroupAdded(qs::service::pipewire::PwLinkGroup* group); |
| 490 | void metadataAdded(PwMetadata* metadata); | 491 | void metadataAdded(qs::service::pipewire::PwMetadata* metadata); |
