From e2e03d083278e41deb377a7f75cc8fe21795e063 Mon Sep 17 00:00:00 2001 From: ShakedGold Date: Mon, 12 Jun 2023 12:27:36 +0300 Subject: [PATCH] first commit --- README.md | 1 + scripts/clients.sh | 17 +++++++++++++++++ scripts/daemon.sh | 25 +++++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 README.md create mode 100755 scripts/clients.sh create mode 100755 scripts/daemon.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..7148331 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# hyprmsn diff --git a/scripts/clients.sh b/scripts/clients.sh new file mode 100755 index 0000000..df3a71e --- /dev/null +++ b/scripts/clients.sh @@ -0,0 +1,17 @@ +#! /bin/bash +missioncontroldir=$HOME/.config/hyprmsn + +OLDIFS="$IFS" +IFS=$'\n' # bash specific +chosen=$(for line in $(hyprctl clients | grep "title: " | sed 's/title: //g' | tr -d '\t') +do + special_line=$line + special_line=$(echo $special_line | sed 's/\[\([^]]*\)\]/\\[\1\\]/g') #add \ to [] + special_line=$(echo $special_line | sed 's/'\''\.\*\\^//g') #add \ to special characters + icon=$(ls "$missioncontroldir/windows" | grep -F $special_line) + echo -en "$line\x00icon\x1f$missioncontroldir/windows/$icon\n" +done | rofi -dmenu ) +IFS="$OLDIFS" + +window_id=$(hyprctl clients | rg 'Window ([A-Fa-f0-9]+)' | grep -F "$chosen" | sed -E 's/Window (.*)->.*/\1/g') +hyprctl dispatch focuswindow address:0x$window_id > /dev/null diff --git a/scripts/daemon.sh b/scripts/daemon.sh new file mode 100755 index 0000000..1d76d54 --- /dev/null +++ b/scripts/daemon.sh @@ -0,0 +1,25 @@ +#! /bin/bash + +missioncontroldir=$HOME/.config/hyprmsn +mkdir $missioncontroldir/windows 2> /dev/null +window=$(hyprctl activewindow -j | jq --raw-output .title) +rm -rf $missioncontroldir/windows/* 2> /dev/null + +while true; do + new_window=$(hyprctl activewindow -j | jq --raw-output .title) + new_window=$(echo $new_window | sed 's/\[\([^]]*\)\]/\\[\1\\]/g') #add \ to [] + new_window=$(echo $new_window | sed 's/'\''\.\*\\^//g') #add \ to special characters + + if [[ "$window" == "$new_window" ]]; then + continue + fi + window=$new_window + + + at_size=$(hyprctl clients | sed -n "/$window/,/^\$/p" | grep -Ew 'at|size' | tr -d '[a-z]|:|\t| ') + at=$(echo $at_size | tr ' ' '\n' | head -1 | tail -1) + size=$(echo $at_size | tr ' ' '\n' | head -2 | tail -1 | tr ',' 'x') + + sleep 0.4 + grim -g "$at $size" -t jpeg -q 50 "$missioncontroldir/windows/$window.jpeg" +done