diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-02-13 20:02:34 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-02-13 20:02:34 +0100 |
commit | 10b7a66bdf7181026914e753c5260a5adef04214 (patch) | |
tree | 0c75073e34eef3da2519a9c071a9e32c1d222dfc | |
parent | 17dd0a467339a51b1b89456ade9ebf4a2e494537 (diff) | |
download | nixos-10b7a66bdf7181026914e753c5260a5adef04214.tar nixos-10b7a66bdf7181026914e753c5260a5adef04214.tar.gz nixos-10b7a66bdf7181026914e753c5260a5adef04214.tar.bz2 nixos-10b7a66bdf7181026914e753c5260a5adef04214.tar.xz nixos-10b7a66bdf7181026914e753c5260a5adef04214.zip |
...
-rw-r--r-- | accounts/gkleen@sif/niri/default.nix | 27 | ||||
-rw-r--r-- | flake.lock | 36 | ||||
-rw-r--r-- | installer/default.nix | 4 | ||||
-rw-r--r-- | overlays/keepassxc/database-open-dialog.patch | 47 | ||||
-rw-r--r-- | overlays/keepassxc/default.nix | 2 |
5 files changed, 65 insertions, 51 deletions
diff --git a/accounts/gkleen@sif/niri/default.nix b/accounts/gkleen@sif/niri/default.nix index 8b95f00f..bbfc28d6 100644 --- a/accounts/gkleen@sif/niri/default.nix +++ b/accounts/gkleen@sif/niri/default.nix | |||
@@ -105,6 +105,21 @@ let | |||
105 | }; | 105 | }; |
106 | with-unnamed-workspace-action = config.lib.niri.actions.spawn (lib.getExe with_unnamed_workspace); | 106 | with-unnamed-workspace-action = config.lib.niri.actions.spawn (lib.getExe with_unnamed_workspace); |
107 | 107 | ||
108 | with_empty_unnamed_workspace = pkgs.writeShellApplication { | ||
109 | name = "with-empty-unnamed-workspace"; | ||
110 | runtimeInputs = [ niri pkgs.gojq pkgs.socat ]; | ||
111 | text = '' | ||
112 | action="$1" | ||
113 | shift | ||
114 | |||
115 | workspaces_json="$(niri msg -j workspaces)" | ||
116 | active_output="$(jq '.[] | select(.is_focused) | .output' <<<"$workspaces_json")" | ||
117 | target_workspace_id="$(jq --argjson active_output "$active_output" 'map(select(.active_window_id == null and .name == null and .output == $active_output)) | sort_by(.idx) | .[0].id' <<<"$workspaces_json")" | ||
118 | jq --argjson workspace_id "$target_workspace_id" -nc "$action" | tee /dev/stderr | socat STDIO "$NIRI_SOCKET" | ||
119 | ''; | ||
120 | }; | ||
121 | with-empty-unnamed-workspace-action = config.lib.niri.actions.spawn (lib.getExe with_empty_unnamed_workspace); | ||
122 | |||
108 | with_select_window = pkgs.writeShellApplication { | 123 | with_select_window = pkgs.writeShellApplication { |
109 | name = "with-select-window"; | 124 | name = "with-select-window"; |
110 | runtimeInputs = [ niri pkgs.gojq pkgs.socat config.programs.fuzzel.package pkgs.gawk ]; | 125 | runtimeInputs = [ niri pkgs.gojq pkgs.socat config.programs.fuzzel.package pkgs.gawk ]; |
@@ -821,16 +836,8 @@ in { | |||
821 | "Mod+Period".action = spawn makoctl "menu" (lib.getExe config.programs.fuzzel.package) "--dmenu"; | 836 | "Mod+Period".action = spawn makoctl "menu" (lib.getExe config.programs.fuzzel.package) "--dmenu"; |
822 | "Mod+Comma".action = spawn makoctl "restore"; | 837 | "Mod+Comma".action = spawn makoctl "restore"; |
823 | 838 | ||
824 | "Mod+Control+W".action = spawn (lib.getExe (pkgs.writeShellApplication { | 839 | "Mod+Control+W".action = with-empty-unnamed-workspace-action "{\"Action\":{\"FocusWorkspace\":{\"reference\":{\"Id\": $workspace_id}}}}"; |
825 | name = "focus-empty-unnamed-workspace"; | 840 | "Mod+Control+Shift+W".action = with-empty-unnamed-workspace-action "{\"Action\":{\"MoveColumnToWorkspace\":{\"reference\":{\"Id\": $workspace_id}}}}"; |
826 | runtimeInputs = [ niri pkgs.gojq pkgs.socat ]; | ||
827 | text = '' | ||
828 | workspaces_json="$(niri msg -j workspaces)" | ||
829 | active_output="$(jq '.[] | select(.is_focused) | .output' <<<"$workspaces_json")" | ||
830 | target_workspace_id="$(jq --argjson active_output "$active_output" 'map(select(.active_window_id == null and .name == null and .output == $active_output)) | sort_by(.idx) | .[0].id' <<<"$workspaces_json")" | ||
831 | jq --argjson workspace_id "$target_workspace_id" -nc '{"Action":{"FocusWorkspace":{"reference":{"Id": $workspace_id}}}}' | tee /dev/stderr | socat STDIO "$NIRI_SOCKET" | ||
832 | ''; | ||
833 | })); | ||
834 | })) | 841 | })) |
835 | (map ({ name, selector, spawn, key, ...}: if key != null && selector != null && spawn != null then bind key { action = focus-or-spawn-action selector name spawn; } else null) cfg.scratchspaces) | 842 | (map ({ name, selector, spawn, key, ...}: if key != null && selector != null && spawn != null then bind key { action = focus-or-spawn-action selector name spawn; } else null) cfg.scratchspaces) |
836 | ] | 843 | ] |
@@ -397,11 +397,11 @@ | |||
397 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" | 397 | "xwayland-satellite-unstable": "xwayland-satellite-unstable" |
398 | }, | 398 | }, |
399 | "locked": { | 399 | "locked": { |
400 | "lastModified": 1739206396, | 400 | "lastModified": 1739339370, |
401 | "narHash": "sha256-dfU3l47sxFQbqLe5R9um//V5hplv/MhSwsZJR7JzBrg=", | 401 | "narHash": "sha256-kvuVhsaVa8j0P9Genf96CLX2cNjForojX5aB1BN+Bwk=", |
402 | "owner": "sodiboo", | 402 | "owner": "sodiboo", |
403 | "repo": "niri-flake", | 403 | "repo": "niri-flake", |
404 | "rev": "9f15e7ace2dea798ce3490d2f723095ad4cce0d4", | 404 | "rev": "498e8bbc149b38fd14d4ff7fbf31c49fdaa23282", |
405 | "type": "github" | 405 | "type": "github" |
406 | }, | 406 | }, |
407 | "original": { | 407 | "original": { |
@@ -431,11 +431,11 @@ | |||
431 | "niri-unstable": { | 431 | "niri-unstable": { |
432 | "flake": false, | 432 | "flake": false, |
433 | "locked": { | 433 | "locked": { |
434 | "lastModified": 1739201373, | 434 | "lastModified": 1739336386, |
435 | "narHash": "sha256-6upEicgdJH3JaS1oXS+wsgLToU14XL8/aOyL2KcS3KY=", | 435 | "narHash": "sha256-H9E3lfJibzWwqV9C1pI81uhav1RLWRA8JbH3ADv3X/4=", |
436 | "owner": "YaLTeR", | 436 | "owner": "YaLTeR", |
437 | "repo": "niri", | 437 | "repo": "niri", |
438 | "rev": "20769b4c2f843566880f020f117e7bde36edc332", | 438 | "rev": "7e552333a993e83a2dba52392109617e486f5f60", |
439 | "type": "github" | 439 | "type": "github" |
440 | }, | 440 | }, |
441 | "original": { | 441 | "original": { |
@@ -630,11 +630,11 @@ | |||
630 | }, | 630 | }, |
631 | "nixpkgs-stable_2": { | 631 | "nixpkgs-stable_2": { |
632 | "locked": { | 632 | "locked": { |
633 | "lastModified": 1739055578, | 633 | "lastModified": 1739206421, |
634 | "narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=", | 634 | "narHash": "sha256-PwQASeL2cGVmrtQYlrBur0U20Xy07uSWVnFup2PHnDs=", |
635 | "owner": "NixOS", | 635 | "owner": "NixOS", |
636 | "repo": "nixpkgs", | 636 | "repo": "nixpkgs", |
637 | "rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e", | 637 | "rev": "44534bc021b85c8d78e465021e21f33b856e2540", |
638 | "type": "github" | 638 | "type": "github" |
639 | }, | 639 | }, |
640 | "original": { | 640 | "original": { |
@@ -678,11 +678,11 @@ | |||
678 | }, | 678 | }, |
679 | "nixpkgs_2": { | 679 | "nixpkgs_2": { |
680 | "locked": { | 680 | "locked": { |
681 | "lastModified": 1739020877, | 681 | "lastModified": 1739214665, |
682 | "narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", | 682 | "narHash": "sha256-26L8VAu3/1YRxS8MHgBOyOM8xALdo6N0I04PgorE7UM=", |
683 | "owner": "NixOS", | 683 | "owner": "NixOS", |
684 | "repo": "nixpkgs", | 684 | "repo": "nixpkgs", |
685 | "rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", | 685 | "rev": "64e75cd44acf21c7933d61d7721e812eac1b5a0a", |
686 | "type": "github" | 686 | "type": "github" |
687 | }, | 687 | }, |
688 | "original": { | 688 | "original": { |
@@ -891,11 +891,11 @@ | |||
891 | ] | 891 | ] |
892 | }, | 892 | }, |
893 | "locked": { | 893 | "locked": { |
894 | "lastModified": 1738291974, | 894 | "lastModified": 1739262228, |
895 | "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", | 895 | "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", |
896 | "owner": "Mic92", | 896 | "owner": "Mic92", |
897 | "repo": "sops-nix", | 897 | "repo": "sops-nix", |
898 | "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", | 898 | "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", |
899 | "type": "github" | 899 | "type": "github" |
900 | }, | 900 | }, |
901 | "original": { | 901 | "original": { |
@@ -1000,11 +1000,11 @@ | |||
1000 | "xwayland-satellite-unstable": { | 1000 | "xwayland-satellite-unstable": { |
1001 | "flake": false, | 1001 | "flake": false, |
1002 | "locked": { | 1002 | "locked": { |
1003 | "lastModified": 1737837494, | 1003 | "lastModified": 1739246919, |
1004 | "narHash": "sha256-wIMowP8Juas4ZwMRcpc+58sZ0kKTDu8fm13THPmv/F8=", | 1004 | "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", |
1005 | "owner": "Supreeeme", | 1005 | "owner": "Supreeeme", |
1006 | "repo": "xwayland-satellite", | 1006 | "repo": "xwayland-satellite", |
1007 | "rev": "3944c9a0e40e5629f16ad023bbc90dac80d35a0f", | 1007 | "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", |
1008 | "type": "github" | 1008 | "type": "github" |
1009 | }, | 1009 | }, |
1010 | "original": { | 1010 | "original": { |
diff --git a/installer/default.nix b/installer/default.nix index cd1ee064..ec47832a 100644 --- a/installer/default.nix +++ b/installer/default.nix | |||
@@ -57,6 +57,10 @@ with lib; | |||
57 | 57 | ||
58 | system.disableInstallerTools = false; | 58 | system.disableInstallerTools = false; |
59 | 59 | ||
60 | xdg.autostart.enable = lib.mkForce false; | ||
61 | xdg.icons.enable = lib.mkForce false; | ||
62 | xdg.mime.enable = lib.mkForce false; | ||
63 | |||
60 | systemd.sysusers.enable = false; | 64 | systemd.sysusers.enable = false; |
61 | system.machine-id.generate.enable = false; | 65 | system.machine-id.generate.enable = false; |
62 | system.stateVersion = config.system.nixos.release; # No state in installer | 66 | system.stateVersion = config.system.nixos.release; # No state in installer |
diff --git a/overlays/keepassxc/database-open-dialog.patch b/overlays/keepassxc/database-open-dialog.patch index 4916dc1b..dff84846 100644 --- a/overlays/keepassxc/database-open-dialog.patch +++ b/overlays/keepassxc/database-open-dialog.patch | |||
@@ -1,7 +1,8 @@ | |||
1 | diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/BrowserService.cpp | 1 | diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp |
2 | --- source.orig/src/browser/BrowserService.cpp 2025-01-27 20:55:04.128198171 +0100 | 2 | index 60412b5a..c0497d91 100644 |
3 | +++ source/src/browser/BrowserService.cpp 2025-01-27 21:16:07.068959077 +0100 | 3 | --- a/src/browser/BrowserService.cpp |
4 | @@ -249,7 +249,7 @@ | 4 | +++ b/src/browser/BrowserService.cpp |
5 | @@ -249,7 +249,7 @@ QJsonObject BrowserService::createNewGroup(const QString& groupName) | ||
5 | return result; | 6 | return result; |
6 | } | 7 | } |
7 | 8 | ||
@@ -10,7 +11,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
10 | tr("KeePassXC - Create a new group"), | 11 | tr("KeePassXC - Create a new group"), |
11 | tr("A request for creating a new group \"%1\" has been received.\n" | 12 | tr("A request for creating a new group \"%1\" has been received.\n" |
12 | "Do you want to create this group?\n") | 13 | "Do you want to create this group?\n") |
13 | @@ -422,7 +422,7 @@ | 14 | @@ -422,7 +422,7 @@ QList<Entry*> BrowserService::confirmEntries(QList<Entry*>& entriesToConfirm, |
14 | 15 | ||
15 | m_dialogActive = true; | 16 | m_dialogActive = true; |
16 | updateWindowState(); | 17 | updateWindowState(); |
@@ -19,7 +20,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
19 | 20 | ||
20 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); | 21 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &accessControlDialog, SLOT(reject())); |
21 | 22 | ||
22 | @@ -512,7 +512,7 @@ | 23 | @@ -512,7 +512,7 @@ QString BrowserService::storeKey(const QString& key) |
23 | QString id; | 24 | QString id; |
24 | 25 | ||
25 | do { | 26 | do { |
@@ -28,7 +29,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
28 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject())); | 29 | connect(m_currentDatabaseWidget, SIGNAL(databaseLockRequested()), &keyDialog, SLOT(reject())); |
29 | keyDialog.setWindowTitle(tr("KeePassXC - New key association request")); | 30 | keyDialog.setWindowTitle(tr("KeePassXC - New key association request")); |
30 | keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n" | 31 | keyDialog.setLabelText(tr("You have received an association request for the following database:\n%1\n\n" |
31 | @@ -535,7 +535,7 @@ | 32 | @@ -535,7 +535,7 @@ QString BrowserService::storeKey(const QString& key) |
32 | 33 | ||
33 | contains = db->metadata()->customData()->contains(CustomData::BrowserKeyPrefix + id); | 34 | contains = db->metadata()->customData()->contains(CustomData::BrowserKeyPrefix + id); |
34 | if (contains) { | 35 | if (contains) { |
@@ -37,7 +38,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
37 | tr("KeePassXC - Overwrite existing key?"), | 38 | tr("KeePassXC - Overwrite existing key?"), |
38 | tr("A shared encryption key with the name \"%1\" " | 39 | tr("A shared encryption key with the name \"%1\" " |
39 | "already exists.\nDo you want to overwrite it?") | 40 | "already exists.\nDo you want to overwrite it?") |
40 | @@ -595,7 +595,7 @@ | 41 | @@ -595,7 +595,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public |
41 | const auto existingEntries = getPasskeyEntriesWithUserHandle(rpId, userId, keyList); | 42 | const auto existingEntries = getPasskeyEntriesWithUserHandle(rpId, userId, keyList); |
42 | 43 | ||
43 | raiseWindow(); | 44 | raiseWindow(); |
@@ -46,7 +47,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
46 | confirmDialog.registerCredential(username, rpId, existingEntries, timeout); | 47 | confirmDialog.registerCredential(username, rpId, existingEntries, timeout); |
47 | 48 | ||
48 | auto dialogResult = confirmDialog.exec(); | 49 | auto dialogResult = confirmDialog.exec(); |
49 | @@ -612,7 +612,7 @@ | 50 | @@ -612,7 +612,7 @@ QJsonObject BrowserService::showPasskeysRegisterPrompt(const QJsonObject& public |
50 | // If no entry is selected, show the import dialog for manual entry selection | 51 | // If no entry is selected, show the import dialog for manual entry selection |
51 | auto selectedEntry = confirmDialog.getSelectedEntry(); | 52 | auto selectedEntry = confirmDialog.getSelectedEntry(); |
52 | if (!selectedEntry) { | 53 | if (!selectedEntry) { |
@@ -55,7 +56,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
55 | const auto result = passkeyImporter.showImportDialog(db, | 56 | const auto result = passkeyImporter.showImportDialog(db, |
56 | nullptr, | 57 | nullptr, |
57 | origin, | 58 | origin, |
58 | @@ -683,7 +683,7 @@ | 59 | @@ -683,7 +683,7 @@ QJsonObject BrowserService::showPasskeysAuthenticationPrompt(const QJsonObject& |
59 | const auto timeout = publicKeyOptions["timeout"].toInt(); | 60 | const auto timeout = publicKeyOptions["timeout"].toInt(); |
60 | 61 | ||
61 | raiseWindow(); | 62 | raiseWindow(); |
@@ -64,7 +65,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
64 | confirmDialog.authenticateCredential(entries, rpId, timeout); | 65 | confirmDialog.authenticateCredential(entries, rpId, timeout); |
65 | auto dialogResult = confirmDialog.exec(); | 66 | auto dialogResult = confirmDialog.exec(); |
66 | if (dialogResult == QDialog::Accepted) { | 67 | if (dialogResult == QDialog::Accepted) { |
67 | @@ -760,7 +760,7 @@ | 68 | @@ -760,7 +760,7 @@ void BrowserService::addPasskeyToEntry(Entry* entry, |
68 | 69 | ||
69 | // Ask confirmation if entry already contains a Passkey | 70 | // Ask confirmation if entry already contains a Passkey |
70 | if (entry->hasPasskey()) { | 71 | if (entry->hasPasskey()) { |
@@ -73,7 +74,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
73 | tr("KeePassXC - Update passkey"), | 74 | tr("KeePassXC - Update passkey"), |
74 | tr("Entry already has a passkey.\nDo you want to overwrite the passkey in %1 - %2?") | 75 | tr("Entry already has a passkey.\nDo you want to overwrite the passkey in %1 - %2?") |
75 | .arg(entry->title(), passkeyUtils()->getUsernameFromEntry(entry)), | 76 | .arg(entry->title(), passkeyUtils()->getUsernameFromEntry(entry)), |
76 | @@ -873,7 +873,7 @@ | 77 | @@ -873,7 +873,7 @@ bool BrowserService::updateEntry(const EntryParameters& entryParameters, const Q |
77 | MessageBox::Button dialogResult = MessageBox::No; | 78 | MessageBox::Button dialogResult = MessageBox::No; |
78 | if (!browserSettings()->alwaysAllowUpdate()) { | 79 | if (!browserSettings()->alwaysAllowUpdate()) { |
79 | raiseWindow(); | 80 | raiseWindow(); |
@@ -82,7 +83,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
82 | tr("KeePassXC - Update Entry"), | 83 | tr("KeePassXC - Update Entry"), |
83 | tr("Do you want to update the information in %1 - %2?") | 84 | tr("Do you want to update the information in %1 - %2?") |
84 | .arg(QUrl(entryParameters.siteUrl).host(), username), | 85 | .arg(QUrl(entryParameters.siteUrl).host(), username), |
85 | @@ -909,7 +909,7 @@ | 86 | @@ -909,7 +909,7 @@ bool BrowserService::deleteEntry(const QString& uuid) |
86 | return false; | 87 | return false; |
87 | } | 88 | } |
88 | 89 | ||
@@ -91,7 +92,7 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
91 | tr("KeePassXC - Delete entry"), | 92 | tr("KeePassXC - Delete entry"), |
92 | tr("A request for deleting entry \"%1\" has been received.\n" | 93 | tr("A request for deleting entry \"%1\" has been received.\n" |
93 | "Do you want to delete the entry?\n") | 94 | "Do you want to delete the entry?\n") |
94 | @@ -1536,7 +1536,7 @@ | 95 | @@ -1536,7 +1536,7 @@ QSharedPointer<Database> BrowserService::selectedDatabase() |
95 | } | 96 | } |
96 | } | 97 | } |
97 | 98 | ||
@@ -100,10 +101,11 @@ diff -u3 -r source.orig/src/browser/BrowserService.cpp source/src/browser/Browse | |||
100 | int openDatabaseCount = browserEntrySaveDialog.setItems(databaseWidgets, m_currentDatabaseWidget); | 101 | int openDatabaseCount = browserEntrySaveDialog.setItems(databaseWidgets, m_currentDatabaseWidget); |
101 | if (openDatabaseCount > 1) { | 102 | if (openDatabaseCount > 1) { |
102 | int res = browserEntrySaveDialog.exec(); | 103 | int res = browserEntrySaveDialog.exec(); |
103 | diff -u3 -r source.orig/src/fdosecrets/objects/Prompt.cpp source/src/fdosecrets/objects/Prompt.cpp | 104 | diff --git a/src/fdosecrets/objects/Prompt.cpp b/src/fdosecrets/objects/Prompt.cpp |
104 | --- source.orig/src/fdosecrets/objects/Prompt.cpp 2025-01-27 20:55:04.135942791 +0100 | 105 | index e89cd499..347c98b8 100644 |
105 | +++ source/src/fdosecrets/objects/Prompt.cpp 2025-01-27 21:01:37.166710935 +0100 | 106 | --- a/src/fdosecrets/objects/Prompt.cpp |
106 | @@ -313,7 +313,7 @@ | 107 | +++ b/src/fdosecrets/objects/Prompt.cpp |
108 | @@ -313,7 +313,7 @@ namespace FdoSecrets | ||
107 | if (!entries.isEmpty()) { | 109 | if (!entries.isEmpty()) { |
108 | QString app = tr("%1 (PID: %2)").arg(client->name()).arg(client->pid()); | 110 | QString app = tr("%1 (PID: %2)").arg(client->name()).arg(client->pid()); |
109 | auto ac = new AccessControlDialog( | 111 | auto ac = new AccessControlDialog( |
@@ -112,10 +114,11 @@ diff -u3 -r source.orig/src/fdosecrets/objects/Prompt.cpp source/src/fdosecrets/ | |||
112 | connect(ac, &AccessControlDialog::finished, this, &UnlockPrompt::itemUnlockFinished); | 114 | connect(ac, &AccessControlDialog::finished, this, &UnlockPrompt::itemUnlockFinished); |
113 | connect(ac, &AccessControlDialog::finished, ac, &AccessControlDialog::deleteLater); | 115 | connect(ac, &AccessControlDialog::finished, ac, &AccessControlDialog::deleteLater); |
114 | ac->open(); | 116 | ac->open(); |
115 | diff -u3 -r source.orig/src/gui/DatabaseTabWidget.cpp source/src/gui/DatabaseTabWidget.cpp | 117 | diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp |
116 | --- source.orig/src/gui/DatabaseTabWidget.cpp 2025-01-27 20:55:04.134589500 +0100 | 118 | index 805d4eab..4836199e 100644 |
117 | +++ source/src/gui/DatabaseTabWidget.cpp 2025-01-27 21:07:09.785284837 +0100 | 119 | --- a/src/gui/DatabaseTabWidget.cpp |
118 | @@ -41,7 +41,7 @@ | 120 | +++ b/src/gui/DatabaseTabWidget.cpp |
121 | @@ -41,7 +41,7 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) | ||
119 | : QTabWidget(parent) | 122 | : QTabWidget(parent) |
120 | , m_dbWidgetStateSync(new DatabaseWidgetStateSync(this)) | 123 | , m_dbWidgetStateSync(new DatabaseWidgetStateSync(this)) |
121 | , m_dbWidgetPendingLock(nullptr) | 124 | , m_dbWidgetPendingLock(nullptr) |
diff --git a/overlays/keepassxc/default.nix b/overlays/keepassxc/default.nix index 25429a66..46b3a459 100644 --- a/overlays/keepassxc/default.nix +++ b/overlays/keepassxc/default.nix | |||
@@ -1,7 +1,7 @@ | |||
1 | { final, prev, ... }: | 1 | { final, prev, ... }: |
2 | { | 2 | { |
3 | keepassxc = prev.keepassxc.overrideAttrs (oldAttrs: { | 3 | keepassxc = prev.keepassxc.overrideAttrs (oldAttrs: { |
4 | patches = (oldAttrs.patches or []) ++ [ | 4 | patches = (oldAttrs.patches or []) ++ prev.lib.optional (prev.lib.versionAtLeast oldAttrs.version "2.7.9") [ |
5 | ./database-open-dialog.patch | 5 | ./database-open-dialog.patch |
6 | ]; | 6 | ]; |
7 | }); | 7 | }); |