From 4ddd4a18cd9f852d4d23510faae31dd0e0380866 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Mon, 29 Sep 2025 15:24:18 +0200 Subject: ... --- _sources/generated.json | 28 +++++++++---------- _sources/generated.nix | 28 +++++++++---------- accounts/gkleen@sif/default.nix | 2 +- accounts/gkleen@sif/shell/quickshell/Bar.qml | 7 +++-- .../shell/quickshell/NotificationDisplay.qml | 8 +++++- .../shell/quickshell/Services/NiriService.qml | 6 ++--- .../shell/quickshell/WorkspaceSwitcher.qml | 4 ++- accounts/gkleen@sif/shell/quickshell/shell.qml | 2 +- hosts/sif/default.nix | 4 +++ hosts/surtr/email/default.nix | 31 ++++++++++++++++++++++ user-profiles/mpv/default.nix | 2 +- user-profiles/yt-dlp.nix | 18 ++++++++----- 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 @@ }, "bpf-examples": { "cargoLocks": null, - "date": "2025-09-09", + "date": "2025-09-19", "extract": null, "name": "bpf-examples", "passthru": null, @@ -34,12 +34,12 @@ "name": null, "owner": "xdp-project", "repo": "bpf-examples", - "rev": "19e2dfa93a9f472d3e53226fab4b63be12e93d22", - "sha256": "sha256-6SGT4izVWrxwoYkAhxtaAeIsVLqLPmg71kY/7NSS4BI=", + "rev": "d621b4fb25c4877415a563887606ab0fe47ad59a", + "sha256": "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU=", "sparseCheckout": [], "type": "github" }, - "version": "19e2dfa93a9f472d3e53226fab4b63be12e93d22" + "version": "d621b4fb25c4877415a563887606ab0fe47ad59a" }, "emacs-scratch_el": { "cargoLocks": null, @@ -91,11 +91,11 @@ "passthru": null, "pinned": false, "src": { - "sha256": "sha256-V+fB5KkbBRhVSDgB/e7oVEyMKQ7HbR82XQYlqxcLZyQ=", + "sha256": "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU=", "type": "tarball", - "url": "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.19.tar.gz" + "url": "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.20.tar.gz" }, - "version": "2.19" + "version": "2.20" }, "mako": { "cargoLocks": null, @@ -355,7 +355,7 @@ }, "quickshell": { "cargoLocks": null, - "date": "2025-09-04", + "date": "2025-09-19", "extract": null, "name": "quickshell", "passthru": null, @@ -365,13 +365,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "6eb12551baf924f8fdecdd04113863a754259c34", - "sha256": "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs=", + "rev": "e9a574d919a89602d2868621576b2ccae54a5cb0", + "sha256": "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ=", "sparseCheckout": [], "type": "git", "url": "https://git.outfoxxed.me/quickshell/quickshell.git" }, - "version": "6eb12551baf924f8fdecdd04113863a754259c34" + "version": "e9a574d919a89602d2868621576b2ccae54a5cb0" }, "scutiger": { "cargoLocks": null, @@ -506,10 +506,10 @@ "pinned": false, "src": { "name": null, - "sha256": "sha256-nOCA+AsiWOhy/op19HB+osZE5pdHcYbiC5oE2anqN88=", + "sha256": "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c=", "type": "url", - "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.5.tar.gz" + "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz" }, - "version": "2025.9.5" + "version": "2025.9.23" } } \ 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 @@ }; bpf-examples = { pname = "bpf-examples"; - version = "19e2dfa93a9f472d3e53226fab4b63be12e93d22"; + version = "d621b4fb25c4877415a563887606ab0fe47ad59a"; src = fetchFromGitHub { owner = "xdp-project"; repo = "bpf-examples"; - rev = "19e2dfa93a9f472d3e53226fab4b63be12e93d22"; + rev = "d621b4fb25c4877415a563887606ab0fe47ad59a"; fetchSubmodules = true; - sha256 = "sha256-6SGT4izVWrxwoYkAhxtaAeIsVLqLPmg71kY/7NSS4BI="; + sha256 = "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU="; }; - date = "2025-09-09"; + date = "2025-09-19"; }; emacs-scratch_el = { pname = "emacs-scratch_el"; @@ -53,10 +53,10 @@ }; lesspipe = { pname = "lesspipe"; - version = "2.19"; + version = "2.20"; src = fetchTarball { - url = "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.19.tar.gz"; - sha256 = "sha256-V+fB5KkbBRhVSDgB/e7oVEyMKQ7HbR82XQYlqxcLZyQ="; + url = "https://github.com/wofr06/lesspipe/archive/refs/tags/v2.20.tar.gz"; + sha256 = "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU="; }; }; mako = { @@ -218,17 +218,17 @@ }; quickshell = { pname = "quickshell"; - version = "6eb12551baf924f8fdecdd04113863a754259c34"; + version = "e9a574d919a89602d2868621576b2ccae54a5cb0"; src = fetchgit { url = "https://git.outfoxxed.me/quickshell/quickshell.git"; - rev = "6eb12551baf924f8fdecdd04113863a754259c34"; + rev = "e9a574d919a89602d2868621576b2ccae54a5cb0"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-GhuD9QVimjynHI0OOyZsqJsnlXr2orowh9H+HYz4YMs="; + sha256 = "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ="; }; - date = "2025-09-04"; + date = "2025-09-19"; }; scutiger = { pname = "scutiger"; @@ -308,10 +308,10 @@ }; yt-dlp = { pname = "yt-dlp"; - version = "2025.9.5"; + version = "2025.9.23"; src = fetchurl { - url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.5.tar.gz"; - sha256 = "sha256-nOCA+AsiWOhy/op19HB+osZE5pdHcYbiC5oE2anqN88="; + url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz"; + sha256 = "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c="; }; }; } 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 { }; }; qt.enable = true; - qt.platformTheme = "gtk"; + qt.platformTheme.name = "gtk"; qt.kde.settings = { 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 PanelWindow { id: bar - required property var screen + required property var modelData + screen: modelData WlrLayershell.namespace: "bar" @@ -39,7 +40,9 @@ PanelWindow { anchors.verticalCenter: parent.verticalCenter spacing: 8 - WorkspaceSwitcher {} + WorkspaceSwitcher { + screen: bar.screen + } } 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 import Quickshell.Services.Notifications Scope { - readonly property ShellScreen activeScreen: Array.from(Quickshell.screens).find(screen => screen.name === Array.from(NiriService.workspaces).find(ws => ws.is_focused)?.output) ?? null + id: root + + property var activeScreen: Array.from(Quickshell.screens).find(screen => screen.name === Array.from(NiriService.workspaces).find(ws => ws.is_focused)?.output) ?? null Instantiator { id: notifsRepeater @@ -23,6 +25,10 @@ Scope { visible: NotificationManager.active + screen: root.activeScreen + + WlrLayershell.namespace: "notifications" + required property var modelData required property var index 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 { relevant_output = ws.output; }); root.workspaces = Array.from(root.workspaces).map(ws => { - if (ws.output === relevant_output) { + if (data.focused) + ws.is_focused = false; + if (ws.output === relevant_output) ws.is_active = false; - ws.is_focused = false; - } if (data.id === ws.id) { ws.is_active = true; 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 Row { id: workspaces + required property var screen + property var ignoreWorkspaces: @ignore_workspaces@ height: parent.height @@ -18,7 +20,7 @@ Row { values: { let currWorkspaces = NiriService.workspaces; const ignoreWorkspaces = Array.from(workspaces.ignoreWorkspaces); - currWorkspaces = currWorkspaces.filter(ws => ws.is_active || ignoreWorkspaces.every(iws => iws !== ws.name)); + currWorkspaces = currWorkspaces.filter(ws => ws.output == workspaces.screen.name).filter(ws => ws.is_active || ignoreWorkspaces.every(iws => iws !== ws.name)); currWorkspaces.sort((a, b) => { if (NiriService.outputs?.[a.output]?.logical?.x !== NiriService.outputs?.[b.output]?.logical?.x) 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 { } Bar { - screen: screenScope.modelData + modelData: screenScope.modelData } } } 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 { dconf.enable = true; niri.enable = true; fuse.userAllowOther = true; + captive-browser = { + enable = true; + interface = "wlp82s0"; + }; }; 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 { bounce_queue_lifetime = "20m"; delay_warning_time = "10m"; + failure_template_file = pkgs.writeText "failure.cf" '' + Charset: us-ascii + From: Mail Delivery System + Subject: Undelivered Mail Returned to Sender + Postmaster-Subject: Postmaster Copy: Undelivered Mail + + This is the mail system at host $myhostname. + + I'm sorry to have to inform you that your message could not + be delivered to one or more recipients. It's attached below. + + The mail system + ''; + delay_template_file = pkgs.writeText "delay.cf" '' + Charset: us-ascii + From: Mail Delivery System + Subject: Delayed Mail (still being retried) + Postmaster-Subject: Postmaster Warning: Delayed Mail + + This is the mail system at host $myhostname. + + #################################################################### + # THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. # + #################################################################### + + Your message could not be delivered for more than $delay_warning_time_minutes minute(s). + It will be retried until it is $maximal_queue_lifetime_minutes minute(s) old. + + The mail system + ''; + smtpd_discard_ehlo_keyword_address_maps = "cidr:${pkgs.writeText "esmtp_access" '' # Allow DSN requests from local subnet only 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 @@ config = { ytdl = true; ytdl-format = "ytdl"; - ytdl-raw-options = "sub-langs=\"${config.programs.yt-dlp.settings.sub-langs}\""; + # ytdl-raw-options = "sub-langs=\"${config.programs.yt-dlp.settings.sub-langs}\""; subs-with-matching-audio = false; audio-display = false; 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 @@ cookies-from-browser = "firefox::none"; mark-watched = true; format = lib.concatStringsSep "/" [ - "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][vcodec!*=avc1]+bestaudio" - "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][vcodec!*=avc1]" - "bestvideo*[vcodec!*=av01][vcodec!*=avc1]+bestaudio" - "best[vcodec!*=av01][vcodec!*=avc1]" + "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][width>=1920]+bestaudio" + "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][width>=1920]" + "bestvideo*[vcodec!*=av01][width>=1920]+bestaudio" + "best[vcodec!*=av01][width>=1920]" + "bestvideo*[width<=2560][height<=1440][fps<=60][vcodec!*=av01][height>=1080]+bestaudio" + "best[width<=2560][height<=1440][fps<=60][vcodec!*=av01][height>=1080]" + "bestvideo*[vcodec!*=av01][height>=1080]+bestaudio" + "best[vcodec!*=av01][height>=1080]" "bestvideo*[width<=2560][height<=1440][fps<=60]+bestaudio" "best[width<=2560][height<=1440][fps<=60]" "bestvideo*+bestaudio" "best" ]; - embed-subs = true; + # embed-subs = true; embed-thumbnail = true; embed-metadata = true; # write-subs = true; - write-auto-subs = true; - sub-langs = "en(-(gb|us|orig))?,de(-(de|orig))?,-live_chat,-rechat"; + # write-auto-subs = true; + # sub-langs = "en(-(gb|us|orig))?,de(-(de|orig))?,-live_chat,-rechat"; prefer-free-formats = true; # downloader = "${pkgs.axel}/bin/axel"; concurrent-fragments = 12; -- cgit v1.2.3