fetch: add sixel-query & update sixel files; update kgp-query with better timeout handling

This commit is contained in:
2026-02-06 22:33:41 +01:00
parent 53b33f6422
commit 0863da0f47
11 changed files with 106 additions and 59 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -36,7 +36,7 @@ binds {
Alt+Space { spawn-sh "pkill -x rofi || rofi -show drun"; } Alt+Space { spawn-sh "pkill -x rofi || rofi -show drun"; }
// Actions // Actions
Mod+V { spawn-sh "pkill -x rofi || rofi-cliphist"; } Mod+V { spawn "shorinclip-wrap"; }
Mod+Period { spawn-sh "pkill -x rofi || rofi-emoji"; } Mod+Period { spawn-sh "pkill -x rofi || rofi-emoji"; }
Ctrl+Alt+Delete { spawn-sh "pkill -x wlogout || wlogout -p layer-shell"; } Ctrl+Alt+Delete { spawn-sh "pkill -x wlogout || wlogout -p layer-shell"; }
Print { spawn "niri" "msg" "action" "screenshot-screen"; } Print { spawn "niri" "msg" "action" "screenshot-screen"; }
+1 -1
View File
@@ -1,7 +1,7 @@
screenshot-path "~/Pictures/Screenshots/niri_screenshot_%Y-%m-%d_%H-%M-%S.png" screenshot-path "~/Pictures/Screenshots/niri_screenshot_%Y-%m-%d_%H-%M-%S.png"
debug { debug {
render-drm-device "/dev/dri/renderD129" render-drm-device "/dev/dri/renderD128"
} }
// gestures { // gestures {
+4 -6
View File
@@ -19,18 +19,16 @@ FENCE_CODE=$(printf "\033[c")
# Set terminal to raw mode with timeout as 0.5s # Set terminal to raw mode with timeout as 0.5s
stty_orig=$(stty -g) stty_orig=$(stty -g)
trap 'stty "$stty_orig"' EXIT trap 'stty "$stty_orig"' EXIT
stty -echo -icanon min 0 time 5 stty -echo -icanon min 1 time 0
printf "%s%s" "$QUERY_CODE" "$FENCE_CODE" > /dev/tty printf "%s%s" "$QUERY_CODE" "$FENCE_CODE" > /dev/tty
response="" response=""
ret=1 ret=1
while true; do while true; do
char=$(dd bs=1 count=1 2>/dev/null) || break IFS= read -r -N 1 -t 0.3 char || {
[ -z "$char" ] && break
if [ -z "$char" ]; then }
break
fi
response+="$char" response+="$char"
+4 -3
View File
@@ -85,15 +85,16 @@ trap cleanup EXIT INT TERM
sudo mount "/dev/mapper/$LUKS_MAPPER_NAME" "$LUKS_MOUNT_POINT" sudo mount "/dev/mapper/$LUKS_MAPPER_NAME" "$LUKS_MOUNT_POINT"
sudo chown "$(whoami):$(whoami)" "$LUKS_MOUNT_POINT"
echo "[INFO] Successfully mounted at $LUKS_MOUNT_POINT." >&2 echo "[INFO] Successfully mounted at $LUKS_MOUNT_POINT." >&2
echo "[INFO] Exit this shell to unmount and close the LUKS volume." >&2 echo "[INFO] Exit this shell to unmount and close the LUKS volume." >&2
cd "$LUKS_MOUNT_POINT" cd "$LUKS_MOUNT_POINT"
USER_SHELL="${SHELL:-/bin/bash}" USER_SHELL="${SHELL:-/bin/bash}"
if [[ "$USER_SHELL" == *"/bash" ]]; then if [[ "$USER_SHELL" == *"/bash" ]]; then
"$USER_SHELL" --rcfile <(cat ~/.bashrc 2>/dev/null; printf '%s\n' 'PS1="\[\e[1;31m\][LUKS]\[\e[0m\][\u@\h \W]\$ "') -i "$USER_SHELL" --rcfile <(
cat ~/.bashrc 2>/dev/null
printf '%s\n' 'PS1="\[\e[1;31m\][LUKS]\[\e[0m\][\u@\h \W]\$ "'
) -i
else else
"$USER_SHELL" "$USER_SHELL"
fi fi
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
pkill -f "ghostty -e shorinclip" || ghostty -e shorinclip
+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
set -euo pipefail
# Ensure in a interactive terminal
[ ! -t 0 ] && exit 1
# Construct query
QUERY_CODE=$(printf "\033[c")
# Set terminal to raw mode with timeout as 0.5s
stty_orig=$(stty -g)
trap 'stty "$stty_orig"' EXIT
stty -echo -icanon min 1 time 0
printf "%s" "$QUERY_CODE" >/dev/tty
response=""
while true; do
IFS= read -r -N 1 -t 0.3 char || {
[ -z "$char" ] && break
}
response+="$char"
if [[ "$char" = "c" ]]; then
break
fi
if [ ${#response} -gt 1024 ]; then
break
fi
done
if [[ "$response" =~ $'\x1b'\[\?([0-9;]*)c ]]; then
params="${BASH_REMATCH[1]}"
IFS=';' read -ra codes <<< "$params"
for code in "${codes[@]}"; do
if [[ "$code" == "4" ]]; then
exit 0
fi
done
fi
exit 1
@@ -1,7 +1,9 @@
if not set -q fetch_logo_type if not set -q fetch_logo_type
if type -q kgp-query; and kgp-query if type -q kgp-query; and kgp-query
set -g fetch_logo_type kitty set -g fetch_logo_type kitty
else if type -q kgp-query else if type -q sixel-query; and sixel-query
set -g fetch_logo_type sixel
else if type -q kgp-query; or type -q sixel-query
set -g fetch_logo_type logo set -g fetch_logo_type logo
else else
set -g fetch_logo_type auto set -g fetch_logo_type auto