From 85f7da444e827f6a7e4a5ae5f09189c967f379a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pankowski?= Date: Mon, 1 Jun 2026 23:24:09 +0200 Subject: [PATCH] argen: add switch to session --- argen/.config/argen/init | 2 ++ argen/.config/argen/session.sh | 29 ++++++++++++++++++++++++ argen/.config/argen/sessions/dotfiles.sh | 3 +++ argen/.config/argen/sessions/web.sh | 6 +++++ 4 files changed, 40 insertions(+) create mode 100755 argen/.config/argen/session.sh create mode 100644 argen/.config/argen/sessions/dotfiles.sh create mode 100644 argen/.config/argen/sessions/web.sh diff --git a/argen/.config/argen/init b/argen/.config/argen/init index 09774ed..309742c 100755 --- a/argen/.config/argen/init +++ b/argen/.config/argen/init @@ -150,5 +150,7 @@ for num in 1 2 3 4 5 6 7 8 9; do " done +argenctl binding set normal Super+Shift S exec ~/.config/argen/session.sh + # Rules argenctl rule add float --app-id "my-app" diff --git a/argen/.config/argen/session.sh b/argen/.config/argen/session.sh new file mode 100755 index 0000000..0b12f26 --- /dev/null +++ b/argen/.config/argen/session.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +set -eu + +id=$(for name in $(ls ~/.config/argen/sessions/*.sh); do echo $(basename "${name%.sh}"); done | fuzzel -d -p'session> ') +if argenctl context list | grep "^${id}\$"; then + argenctl context switch "${id}" + exit +fi +argenctl context new "$id" + +first=$(argenctl output list --json | jq -r '.[0].id') +length=$(argenctl output list --json | jq -r 'length') +for n in $(seq $length); do + current=$(argenctl output list --json | jq -r '.[] | select(.focused).id') + if [ "$current" = "$first" ]; then + break + fi + argenctl output focus next +done + +if [ -e ~/.lightmode ]; then + THEME=light +else + THEME=dark +fi +export TERMINAL="footclient -o initial-color-theme=$THEME" + +exec sh ~/.config/argen/sessions/"${id}.sh" diff --git a/argen/.config/argen/sessions/dotfiles.sh b/argen/.config/argen/sessions/dotfiles.sh new file mode 100644 index 0000000..5dc1fc0 --- /dev/null +++ b/argen/.config/argen/sessions/dotfiles.sh @@ -0,0 +1,3 @@ +argenctl output focus next + +argenctl sh "$TERMINAL -D ~/dotfiles kak" diff --git a/argen/.config/argen/sessions/web.sh b/argen/.config/argen/sessions/web.sh new file mode 100644 index 0000000..f1fcdbf --- /dev/null +++ b/argen/.config/argen/sessions/web.sh @@ -0,0 +1,6 @@ +argenctl exec librewolf + +sleep 1 +argenctl output focus next + +argenctl exec qutebrowser