summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2025-09-29 15:24:18 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2025-09-29 15:24:18 +0200
commit4ddd4a18cd9f852d4d23510faae31dd0e0380866 (patch)
treedb27025055014163a2da0d7e677bde2967169d6d
parent5cee7108d60ca11ccba1b19ccad74664f6f96cf5 (diff)
downloadnixos-4ddd4a18cd9f852d4d23510faae31dd0e0380866.tar
nixos-4ddd4a18cd9f852d4d23510faae31dd0e0380866.tar.gz
nixos-4ddd4a18cd9f852d4d23510faae31dd0e0380866.tar.bz2
nixos-4ddd4a18cd9f852d4d23510faae31dd0e0380866.tar.xz
nixos-4ddd4a18cd9f852d4d23510faae31dd0e0380866.zip
...
-rw-r--r--_sources/generated.json28
-rw-r--r--_sources/generated.nix28
-rw-r--r--accounts/gkleen@sif/default.nix2
-rw-r--r--accounts/gkleen@sif/shell/quickshell/Bar.qml7
-rw-r--r--accounts/gkleen@sif/shell/quickshell/NotificationDisplay.qml8
-rw-r--r--accounts/gkleen@sif/shell/quickshell/Services/NiriService.qml6
-rw-r--r--accounts/gkleen@sif/shell/quickshell/WorkspaceSwitcher.qml4
-rw-r--r--accounts/gkleen@sif/shell/quickshell/shell.qml2
-rw-r--r--hosts/sif/default.nix4
-rw-r--r--hosts/surtr/email/default.nix31
-rw-r--r--user-profiles/mpv/default.nix2
-rw-r--r--user-profiles/yt-dlp.nix18
12 files changed, 95 insertions, 45 deletions
diff --git a/_sources/generated.json b/_sources/generated.json
index 037f97e2..dd73e455 100644
--- a/_sources/generated.json
+++ b/_sources/generated.json
@@ -22,7 +22,7 @@
22 }, 22 },
23 "bpf-examples": { 23 "bpf-examples": {
24 "cargoLocks": null, 24 "cargoLocks": null,
25 "date": "2025-09-09", 25 "date": "2025-09-19",
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": "19e2dfa93a9f472d3e53226fab4b63be12e93d22", 37 "rev": "d621b4fb25c4877415a563887606ab0fe47ad59a",
38 "sha256": "sha256-6SGT4izVWrxwoYkAhxtaAeIsVLqLPmg71kY/7NSS4BI=", 38 "sha256": "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU=",
39 "sparseCheckout": [], 39 "sparseCheckout": [],
40 "type": "github" 40 "type": "github"
41 }, 41 },
42 "version": "19e2dfa93a9f472d3e53226fab4b63be12e93d22" 42 "version": "d621b4fb25c4877415a563887606ab0fe47ad59a"
43 }, 43 },
44 "emacs-scratch_el": { 44 "emacs-scratch_el": {
45 "cargoLocks": null, 45 "cargoLocks": null,
@@ -91,11 +91,11 @@
91 "passthru": null, 91 "passthru": null,
92 "pinned": false, 92 "pinned": false,
93 "src": { 93 "src": {
94 "sha256": "sha256-V+fB5KkbBRhVSDgB/e7oVEyMKQ7HbR82XQYlqxcLZyQ=", 94 "sha256": "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU=",
95 "type": "tarball", 95 "type": "tarball",
96 "url": "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.19.tar.gz" 96 "url": "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.20.tar.gz"
97 }, 97 },
98 "version": "2.19" 98 "version": "2.20"
99 }, 99 },
100 "mako": { 100 "mako": {
101 "cargoLocks": null, 101 "cargoLocks": null,
@@ -355,7 +355,7 @@
355 }, 355 },
356 "quickshell": { 356 "quickshell": {
357 "cargoLocks": null, 357 "cargoLocks": null,
358 "date": "2025-09-04", 358 "date": "2025-09-19",
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": "6eb12551baf924f8fdecdd04113863a754259c34", 368 "rev": "e9a574d919a89602d2868621576b2ccae54a5cb0",
369 "sha256": "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs=", 369 "sha256": "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ=",
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": "6eb12551baf924f8fdecdd04113863a754259c34" 374 "version": "e9a574d919a89602d2868621576b2ccae54a5cb0"
375 }, 375 },
376 "scutiger": { 376 "scutiger": {
377 "cargoLocks": null, 377 "cargoLocks": null,
@@ -506,10 +506,10 @@
506 "pinned": false, 506 "pinned": false,
507 "src": { 507 "src": {
508 "name": null, 508 "name": null,
509 "sha256": "sha256-nOCA+AsiWOhy/op19HB+osZE5pdHcYbiC5oE2anqN88=", 509 "sha256": "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c=",
510 "type": "url", 510 "type": "url",
511 "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.5.tar.gz" 511 "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz"
512 }, 512 },
513 "version": "2025.9.5" 513 "version": "2025.9.23"
514 } 514 }
515} \ No newline at end of file 515} \ No newline at end of file
diff --git a/_sources/generated.nix b/_sources/generated.nix
index f19940ba..8eac064b 100644
--- a/_sources/generated.nix
+++ b/_sources/generated.nix
@@ -18,15 +18,15 @@
18 }; 18 };
19 bpf-examples = { 19 bpf-examples = {
20 pname = "bpf-examples"; 20 pname = "bpf-examples";
21 version = "19e2dfa93a9f472d3e53226fab4b63be12e93d22"; 21 version = "d621b4fb25c4877415a563887606ab0fe47ad59a";
22 src = fetchFromGitHub { 22 src = fetchFromGitHub {
23 owner = "xdp-project"; 23 owner = "xdp-project";
24 repo = "bpf-examples"; 24 repo = "bpf-examples";
25 rev = "19e2dfa93a9f472d3e53226fab4b63be12e93d22"; 25 rev = "d621b4fb25c4877415a563887606ab0fe47ad59a";
26 fetchSubmodules = true; 26 fetchSubmodules = true;
27 sha256 = "sha256-6SGT4izVWrxwoYkAhxtaAeIsVLqLPmg71kY/7NSS4BI="; 27 sha256 = "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU=";
28 }; 28 };
29 date = "2025-09-09"; 29 date = "2025-09-19";
30 }; 30 };
31 emacs-scratch_el = { 31 emacs-scratch_el = {
32 pname = "emacs-scratch_el"; 32 pname = "emacs-scratch_el";
@@ -53,10 +53,10 @@
53 }; 53 };
54 lesspipe = { 54 lesspipe = {
55 pname = "lesspipe"; 55 pname = "lesspipe";
56 version = "2.19"; 56 version = "2.20";
57 src = fetchTarball { 57 src = fetchTarball {
58 url = "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.19.tar.gz"; 58 url = "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.20.tar.gz";
59 sha256 = "sha256-V+fB5KkbBRhVSDgB/e7oVEyMKQ7HbR82XQYlqxcLZyQ="; 59 sha256 = "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU=";
60 }; 60 };
61 }; 61 };
62 mako = { 62 mako = {
@@ -218,17 +218,17 @@
218 }; 218 };
219 quickshell = { 219 quickshell = {
220 pname = "quickshell"; 220 pname = "quickshell";
221 version = "6eb12551baf924f8fdecdd04113863a754259c34"; 221 version = "e9a574d919a89602d2868621576b2ccae54a5cb0";
222 src = fetchgit { 222 src = fetchgit {
223 url = "https://git.outfoxxed.me/quickshell/quickshell.git"; 223 url = "https://git.outfoxxed.me/quickshell/quickshell.git";
224 rev = "6eb12551baf924f8fdecdd04113863a754259c34"; 224 rev = "e9a574d919a89602d2868621576b2ccae54a5cb0";
225 fetchSubmodules = false; 225 fetchSubmodules = false;
226 deepClone = false; 226 deepClone = false;
227 leaveDotGit = false; 227 leaveDotGit = false;
228 sparseCheckout = [ ]; 228 sparseCheckout = [ ];
229 sha256 = "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs="; 229 sha256 = "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ=";
230 }; 230 };
231 date = "2025-09-04"; 231 date = "2025-09-19";
232 }; 232 };
233 scutiger = { 233 scutiger = {
234 pname = "scutiger"; 234 pname = "scutiger";
@@ -308,10 +308,10 @@
308 }; 308 };
309 yt-dlp = { 309 yt-dlp = {
310 pname = "yt-dlp"; 310 pname = "yt-dlp";
311 version = "2025.9.5"; 311 version = "2025.9.23";
312 src = fetchurl { 312 src = fetchurl {
313 url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.5.tar.gz"; 313 url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz";
314 sha256 = "sha256-nOCA+AsiWOhy/op19HB+osZE5pdHcYbiC5oE2anqN88="; 314 sha256 = "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c=";
315 }; 315 };
316 }; 316 };
317} 317}
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix
index 8e68eda9..36b722e4 100644
--- a/accounts/gkleen@sif/default.nix
+++ b/accounts/gkleen@sif/default.nix
@@ -482,7 +482,7 @@ in {
482 }; 482 };
483 }; 483 };
484 qt.enable = true; 484 qt.enable = true;
485 qt.platformTheme = "gtk"; 485 qt.platformTheme.name = "gtk";
486 486
487 qt.kde.settings = { 487 qt.kde.settings = {
488 kwalletrc = { 488 kwalletrc = {
diff --git a/accounts/gkleen@sif/shell/quickshell/Bar.qml b/accounts/gkleen@sif/shell/quickshell/Bar.qml
index 426ed78c..9210066c 100644
--- a/accounts/gkleen@sif/shell/quickshell/Bar.qml
+++ b/accounts/gkleen@sif/shell/quickshell/Bar.qml
@@ -5,7 +5,8 @@ import QtQuick
5PanelWindow { 5PanelWindow {
6 id: bar 6 id: bar
7 7
8 required property var screen 8 required property var modelData
9 screen: modelData
9 10
10 WlrLayershell.namespace: "bar" 11 WlrLayershell.namespace: "bar"
11 12
@@ -39,7 +40,9 @@ PanelWindow {
39 anchors.verticalCenter: parent.verticalCenter 40 anchors.verticalCenter: parent.verticalCenter
40 spacing: 8 41 spacing: 8
41 42
42 WorkspaceSwitcher {} 43 WorkspaceSwitcher {
44 screen: bar.screen
45 }
43 } 46 }
44 47
45 Row { 48 Row {
diff --git a/accounts/gkleen@sif/shell/quickshell/NotificationDisplay.qml b/accounts/gkleen@sif/shell/quickshell/NotificationDisplay.qml
index fa27093f..cc0e49b1 100644
--- a/accounts/gkleen@sif/shell/quickshell/NotificationDisplay.qml
+++ b/accounts/gkleen@sif/shell/quickshell/NotificationDisplay.qml
@@ -9,7 +9,9 @@ import QtQuick.Layouts
9import Quickshell.Services.Notifications 9import Quickshell.Services.Notifications
10 10
11Scope { 11Scope {
12 readonly property ShellScreen activeScreen: Array.from(Quickshell.screens).find(screen => screen.name === Array.from(NiriService.workspaces).find(ws => ws.is_focused)?.output) ?? null 12 id: root
13
14 property var activeScreen: Array.from(Quickshell.screens).find(screen => screen.name === Array.from(NiriService.workspaces).find(ws => ws.is_focused)?.output) ?? null
13 15
14 Instantiator { 16 Instantiator {
15 id: notifsRepeater 17 id: notifsRepeater
@@ -23,6 +25,10 @@ Scope {
23 25
24 visible: NotificationManager.active 26 visible: NotificationManager.active
25 27
28 screen: root.activeScreen
29
30 WlrLayershell.namespace: "notifications"
31
26 required property var modelData 32 required property var modelData
27 required property var index 33 required property var index
28 34
diff --git a/accounts/gkleen@sif/shell/quickshell/Services/NiriService.qml b/accounts/gkleen@sif/shell/quickshell/Services/NiriService.qml
index af522ec4..cce614eb 100644
--- a/accounts/gkleen@sif/shell/quickshell/Services/NiriService.qml
+++ b/accounts/gkleen@sif/shell/quickshell/Services/NiriService.qml
@@ -134,10 +134,10 @@ Singleton {
134 relevant_output = ws.output; 134 relevant_output = ws.output;
135 }); 135 });
136 root.workspaces = Array.from(root.workspaces).map(ws => { 136 root.workspaces = Array.from(root.workspaces).map(ws => {
137 if (ws.output === relevant_output) { 137 if (data.focused)
138 ws.is_focused = false;
139 if (ws.output === relevant_output)
138 ws.is_active = false; 140 ws.is_active = false;
139 ws.is_focused = false;
140 }
141 if (data.id === ws.id) { 141 if (data.id === ws.id) {
142 ws.is_active = true; 142 ws.is_active = true;
143 ws.is_focused = data.focused; 143 ws.is_focused = data.focused;
diff --git a/accounts/gkleen@sif/shell/quickshell/WorkspaceSwitcher.qml b/accounts/gkleen@sif/shell/quickshell/WorkspaceSwitcher.qml
index 2d3aca1b..3ae94346 100644
--- a/accounts/gkleen@sif/shell/quickshell/WorkspaceSwitcher.qml
+++ b/accounts/gkleen@sif/shell/quickshell/WorkspaceSwitcher.qml
@@ -7,6 +7,8 @@ import QtQuick.Layouts
7Row { 7Row {
8 id: workspaces 8 id: workspaces
9 9
10 required property var screen
11
10 property var ignoreWorkspaces: @ignore_workspaces@ 12 property var ignoreWorkspaces: @ignore_workspaces@
11 13
12 height: parent.height 14 height: parent.height
@@ -18,7 +20,7 @@ Row {
18 values: { 20 values: {
19 let currWorkspaces = NiriService.workspaces; 21 let currWorkspaces = NiriService.workspaces;
20 const ignoreWorkspaces = Array.from(workspaces.ignoreWorkspaces); 22 const ignoreWorkspaces = Array.from(workspaces.ignoreWorkspaces);
21 currWorkspaces = currWorkspaces.filter(ws => ws.is_active || ignoreWorkspaces.every(iws => iws !== ws.name)); 23 currWorkspaces = currWorkspaces.filter(ws => ws.output == workspaces.screen.name).filter(ws => ws.is_active || ignoreWorkspaces.every(iws => iws !== ws.name));
22 currWorkspaces.sort((a, b) => { 24 currWorkspaces.sort((a, b) => {
23 if (NiriService.outputs?.[a.output]?.logical?.x !== NiriService.outputs?.[b.output]?.logical?.x) 25 if (NiriService.outputs?.[a.output]?.logical?.x !== NiriService.outputs?.[b.output]?.logical?.x)
24 return NiriService.outputs?.[a.output]?.logical?.x - NiriService.outputs?.[b.output]?.logical?.x 26 return NiriService.outputs?.[a.output]?.logical?.x - NiriService.outputs?.[b.output]?.logical?.x
diff --git a/accounts/gkleen@sif/shell/quickshell/shell.qml b/accounts/gkleen@sif/shell/quickshell/shell.qml
index 1a5875f0..fb8b16dc 100644
--- a/accounts/gkleen@sif/shell/quickshell/shell.qml
+++ b/accounts/gkleen@sif/shell/quickshell/shell.qml
@@ -36,7 +36,7 @@ ShellRoot {
36 } 36 }
37 37
38 Bar { 38 Bar {
39 screen: screenScope.modelData 39 modelData: screenScope.modelData
40 } 40 }
41 } 41 }
42 } 42 }
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix
index 952b95f9..fb2dddc6 100644
--- a/hosts/sif/default.nix
+++ b/hosts/sif/default.nix
@@ -629,6 +629,10 @@ in {
629 dconf.enable = true; 629 dconf.enable = true;
630 niri.enable = true; 630 niri.enable = true;
631 fuse.userAllowOther = true; 631 fuse.userAllowOther = true;
632 captive-browser = {
633 enable = true;
634 interface = "wlp82s0";
635 };
632 }; 636 };
633 637
634 services.pcscd.enable = true; 638 services.pcscd.enable = true;
diff --git a/hosts/surtr/email/default.nix b/hosts/surtr/email/default.nix
index a3e06ca6..ee2f44f9 100644
--- a/hosts/surtr/email/default.nix
+++ b/hosts/surtr/email/default.nix
@@ -236,6 +236,37 @@ in {
236 bounce_queue_lifetime = "20m"; 236 bounce_queue_lifetime = "20m";
237 delay_warning_time = "10m"; 237 delay_warning_time = "10m";
238 238
239 failure_template_file = pkgs.writeText "failure.cf" ''
240 Charset: us-ascii
241 From: Mail Delivery System <MAILER-DAEMON>
242 Subject: Undelivered Mail Returned to Sender
243 Postmaster-Subject: Postmaster Copy: Undelivered Mail
244
245 This is the mail system at host $myhostname.
246
247 I'm sorry to have to inform you that your message could not
248 be delivered to one or more recipients. It's attached below.
249
250 The mail system
251 '';
252 delay_template_file = pkgs.writeText "delay.cf" ''
253 Charset: us-ascii
254 From: Mail Delivery System <MAILER-DAEMON>
255 Subject: Delayed Mail (still being retried)
256 Postmaster-Subject: Postmaster Warning: Delayed Mail
257
258 This is the mail system at host $myhostname.
259
260 ####################################################################
261 # THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
262 ####################################################################
263
264 Your message could not be delivered for more than $delay_warning_time_minutes minute(s).
265 It will be retried until it is $maximal_queue_lifetime_minutes minute(s) old.
266
267 The mail system
268 '';
269
239 smtpd_discard_ehlo_keyword_address_maps = "cidr:${pkgs.writeText "esmtp_access" '' 270 smtpd_discard_ehlo_keyword_address_maps = "cidr:${pkgs.writeText "esmtp_access" ''
240 # Allow DSN requests from local subnet only 271 # Allow DSN requests from local subnet only
241 192.168.0.0/16 silent-discard 272 192.168.0.0/16 silent-discard
diff --git a/user-profiles/mpv/default.nix b/user-profiles/mpv/default.nix
index 48893f49..8cf330e8 100644
--- a/user-profiles/mpv/default.nix
+++ b/user-profiles/mpv/default.nix
@@ -106,7 +106,7 @@
106 config = { 106 config = {
107 ytdl = true; 107 ytdl = true;
108 ytdl-format = "ytdl"; 108 ytdl-format = "ytdl";
109 ytdl-raw-options = "sub-langs=\"${config.programs.yt-dlp.settings.sub-langs}\""; 109 # ytdl-raw-options = "sub-langs=\"${config.programs.yt-dlp.settings.sub-langs}\"";
110 subs-with-matching-audio = false; 110 subs-with-matching-audio = false;
111 audio-display = false; 111 audio-display = false;
112 osd-font = "Fira Sans"; 112 osd-font = "Fira Sans";
diff --git a/user-profiles/yt-dlp.nix b/user-profiles/yt-dlp.nix
index 9e30bba8..eefa673f 100644
--- a/user-profiles/yt-dlp.nix
+++ b/user-profiles/yt-dlp.nix
@@ -7,21 +7,25 @@
7 cookies-from-browser = "firefox::none"; 7 cookies-from-browser = "firefox::none";
8 mark-watched = true; 8 mark-watched = true;
9 format = lib.concatStringsSep "/" [ 9 format = lib.concatStringsSep "/" [
10 "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][vcodec!*=avc1]+bestaudio" 10 "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][width>=1920]+bestaudio"
11 "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][vcodec!*=avc1]" 11 "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][width>=1920]"
12 "bestvideo*[vcodec!*=av01][vcodec!*=avc1]+bestaudio" 12 "bestvideo*[vcodec!*=av01][width>=1920]+bestaudio"
13 "best[vcodec!*=av01][vcodec!*=avc1]" 13 "best[vcodec!*=av01][width>=1920]"
14 "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][height>=1080]+bestaudio"
15 "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][height>=1080]"
16 "bestvideo*[vcodec!*=av01][height>=1080]+bestaudio"
17 "best[vcodec!*=av01][height>=1080]"
14 "bestvideo*[width<=2560][height<=1440][fps<=60]+bestaudio" 18 "bestvideo*[width<=2560][height<=1440][fps<=60]+bestaudio"
15 "best[width<=2560][height<=1440][fps<=60]" 19 "best[width<=2560][height<=1440][fps<=60]"
16 "bestvideo*+bestaudio" 20 "bestvideo*+bestaudio"
17 "best" 21 "best"
18 ]; 22 ];
19 embed-subs = true; 23 # embed-subs = true;
20 embed-thumbnail = true; 24 embed-thumbnail = true;
21 embed-metadata = true; 25 embed-metadata = true;
22 # write-subs = true; 26 # write-subs = true;
23 write-auto-subs = true; 27 # write-auto-subs = true;
24 sub-langs = "en(-(gb|us|orig))?,de(-(de|orig))?,-live_chat,-rechat"; 28 # sub-langs = "en(-(gb|us|orig))?,de(-(de|orig))?,-live_chat,-rechat";
25 prefer-free-formats = true; 29 prefer-free-formats = true;
26 # downloader = "${pkgs.axel}/bin/axel"; 30 # downloader = "${pkgs.axel}/bin/axel";
27 concurrent-fragments = 12; 31 concurrent-fragments = 12;