reupload
This commit is contained in:
33
arch-user/bin/alg/file-tree-apply.sh
Executable file
33
arch-user/bin/alg/file-tree-apply.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]; then
|
||||
echo "bad args" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEST=$(realpath "$2")
|
||||
cd "$1"
|
||||
|
||||
#shellcheck disable=SC2016
|
||||
find . \
|
||||
-type f \
|
||||
-not -path '*/.*' \
|
||||
-path "$3" | \
|
||||
xargs -0 -d \\n -n 1 sh -c "mkdir -p $DEST/\$(dirname \"\$1\")" sh
|
||||
|
||||
#shellcheck disable=SC2016
|
||||
find . \
|
||||
-type f \
|
||||
-not -path '*/.*' \
|
||||
-path "$3" \
|
||||
-printf "$(pwd)/%P\n$DEST/%P\n" | \
|
||||
xargs -0 -d \\n -n 2 sh -c "$4" sh
|
||||
|
||||
|
||||
#for rel in $(find . -type f -name *.gpg); do
|
||||
# DESTFILE=$(echo $DEST/$rel | sed 's/\.[^.]*$//')
|
||||
# [ -f "$DESTFILE" ] && continue
|
||||
# mkdir -p "$(dirname "$DESTFILE")"
|
||||
# gpg --output "$DESTFILE" --decrypt "$rel"
|
||||
#done
|
||||
9
arch-user/bin/archiso/make.sh
Executable file
9
arch-user/bin/archiso/make.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
sudo rm -rf /tmp/archiso-work /tmp/archiso-out
|
||||
cd ~/know/archiso
|
||||
sudo mkarchiso -v -w /tmp/archiso-work -o /tmp/archiso-out "profile-$1"
|
||||
iso=(/tmp/archiso-out/*)
|
||||
sudo dd if="$iso" of="$2" status=progress bs=4M
|
||||
sudo rm -rf /tmp/archiso-work /tmp/archiso-out
|
||||
251
arch-user/bin/bemenu/pinentry.sh
Executable file
251
arch-user/bin/bemenu/pinentry.sh
Executable file
@@ -0,0 +1,251 @@
|
||||
#!/bin/bash -efu
|
||||
### This file is covered by the GNU General Public License,
|
||||
### which should be included with libshell as the file LICENSE.
|
||||
### All copyright information are listed in the COPYING.
|
||||
|
||||
#exec 2>/tmp/pinentry.log
|
||||
#set -x
|
||||
|
||||
VERSION='1.0'
|
||||
FLAVOR='bash'
|
||||
|
||||
############################### PATCH #################################
|
||||
. ~/.config/bemenu/env.sh
|
||||
#######################################################################
|
||||
|
||||
keyinfo=''
|
||||
error=''
|
||||
timeout=0
|
||||
touch_file=''
|
||||
|
||||
readonly def_desc='Enter password for GPG key'
|
||||
readonly def_prompt='Password:'
|
||||
readonly def_title='GPG Key Credentials'
|
||||
readonly def_repeat='Confirm password for GPG key'
|
||||
readonly def_labelok='OK'
|
||||
readonly def_labelnotok='Do not do this'
|
||||
readonly def_labelcancel='Cancel'
|
||||
|
||||
# from /usr/include/gpg-error.h
|
||||
readonly GPG_ERR_NO_ERROR=0
|
||||
readonly GPG_ERR_TIMEOUT=62
|
||||
readonly GPG_ERR_CANCELED=99
|
||||
readonly GPG_ERR_NOT_CONFIRMED=114
|
||||
readonly GPG_ERR_ASS_PARAMETER=280
|
||||
|
||||
strerror()
|
||||
{
|
||||
case "$1" in
|
||||
$GPG_ERR_NO_ERROR) echo "Success" ;;
|
||||
$GPG_ERR_TIMEOUT) echo "Timeout" ;;
|
||||
$GPG_ERR_CANCELED) echo "Operation cancelled" ;;
|
||||
$GPG_ERR_NOT_CONFIRMED) echo "Not confirmed" ;;
|
||||
$GPG_ERR_ASS_PARAMETER) echo "IPC parameter error" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
assuan_result()
|
||||
{
|
||||
[ "$1" -gt 0 ] &&
|
||||
echo -n "ERR $(( 5 << 24 | $1 )) " ||
|
||||
echo -n "OK "
|
||||
strerror "$1"
|
||||
}
|
||||
|
||||
cmd_settimeout()
|
||||
{
|
||||
[ -n "${1##0*}" ] && [ -n "${1##*[!0-9]*}" ] && [ "$1" -gt 0 ] 2>/dev/null ||
|
||||
return 0
|
||||
timeout="$1"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
}
|
||||
|
||||
cmd_setkeyinfo()
|
||||
{
|
||||
[ "$1" = "--clear" ] &&
|
||||
keyinfo="" ||
|
||||
keyinfo="$1"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
}
|
||||
|
||||
set_text_variable()
|
||||
{
|
||||
printf -v "$1" "${2//%/\\x}"
|
||||
eval "set_$1=1"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
}
|
||||
|
||||
cmd_setoption()
|
||||
{
|
||||
case "$1" in
|
||||
default-prompt=*) set_text_variable prompt "${1#*=}" ;;
|
||||
default-ok=*) set_text_variable labelok "${1#*=}" ;;
|
||||
default-cancel=*) set_text_variable labelcancel "${1#*=}" ;;
|
||||
touch-file=*)
|
||||
touch_file="${1#*=}"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
*)
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
cmd_getinfo()
|
||||
{
|
||||
case "$1" in
|
||||
version)
|
||||
echo "D $VERSION"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
pid)
|
||||
echo "D $BASHPID"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
flavor)
|
||||
echo "D $FLAVOR"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
ttyinfo)
|
||||
echo "D - - - - $(id -u 2>/dev/null || echo 0)/$(id -g 2>/dev/null || echo 0) -"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
*)
|
||||
assuan_result $GPG_ERR_ASS_PARAMETER
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
cmd_getpin()
|
||||
{
|
||||
local ret=0 result output password=1 repeatpassword=3
|
||||
|
||||
output="$(
|
||||
echo -n "|"
|
||||
############################### PATCH #################################
|
||||
bemenu \
|
||||
--password indicator \
|
||||
--prompt "${prompt:-$def_prompt}" \
|
||||
</dev/null | tr -d '\n'
|
||||
ret=${PIPESTATUS[0]}
|
||||
# yad \
|
||||
# --splash \
|
||||
# --no-markup \
|
||||
# --title="${title:-$def_title}" \
|
||||
# --form \
|
||||
# --separator="\n" \
|
||||
# --field="${desc:-$def_desc}:LBL" \
|
||||
# --field="${prompt:-$def_prompt}:H" \
|
||||
# ${set_repeat:+--field="${repeat:-$def_repeat}:LBL"} \
|
||||
# ${set_repeat:+--field="${prompt-$def_prompt}:H"} \
|
||||
# ${error:+--field="$error:LBL"} \
|
||||
# --button="${labelok:-$def_labelok}:0" \
|
||||
# --button="${labelcancel:-$def_labelcancel}:1" \
|
||||
# --timeout="${timeout:-0}" \
|
||||
# </dev/null || ret=$?
|
||||
######################################################################
|
||||
echo -n "|"
|
||||
exit $ret
|
||||
)" || ret=$?
|
||||
|
||||
set_error='' error=''
|
||||
|
||||
case "$ret" in
|
||||
1) assuan_result $GPG_ERR_CANCELED; return 0; ;;
|
||||
70) assuan_result $GPG_ERR_TIMEOUT; return 0; ;;
|
||||
esac
|
||||
|
||||
output="${output#|}"
|
||||
output="${output%|}"
|
||||
|
||||
############################### PATCH #################################
|
||||
declare -A result
|
||||
result[$password]="$output"
|
||||
result[$repeatpassword]="$output"
|
||||
# readarray -t result <<<"$output"
|
||||
# output=''
|
||||
#
|
||||
#######################################################################
|
||||
if [ -n "${set_repeat-}" ]; then
|
||||
set_repeat='' repeat=''
|
||||
|
||||
if [ "${result[$password]}" != "${result[$repeatpassword]}" ]; then
|
||||
cmd_confirm --one-button "${repeaterror:-Error: Passwords did not match.}"
|
||||
assuan_result $GPG_ERR_NOT_CONFIRMED
|
||||
return
|
||||
fi
|
||||
echo "S PIN_REPEATED"
|
||||
fi
|
||||
|
||||
[ -z "$touch_file" ] ||
|
||||
touch "$touch_file"
|
||||
|
||||
echo "D ${result[$password]}"
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
}
|
||||
|
||||
cmd_confirm()
|
||||
{
|
||||
local ret=0 showmsg='' showcfm=1
|
||||
|
||||
if [ "$1" = '--one-button' ]; then
|
||||
shift
|
||||
showmsg=1
|
||||
showcfm=
|
||||
fi
|
||||
|
||||
yad \
|
||||
--splash \
|
||||
--no-markup \
|
||||
--title="${title:-$def_title}" \
|
||||
--text="${1:-${desc:-$def_desc}}" \
|
||||
${showmsg:+--button="${labelok:-$def_labelok}:0"} \
|
||||
${showcfm:+${error:+--field="$error:LBL"}} \
|
||||
--timeout="${timeout:-0}" \
|
||||
< /dev/null ||
|
||||
ret=$?
|
||||
|
||||
set_error='' error=''
|
||||
|
||||
case "$ret" in
|
||||
0) assuan_result $GPG_ERR_NO_ERROR ;;
|
||||
1) assuan_result $GPG_ERR_CANCELED ;;
|
||||
70) assuan_result $GPG_ERR_TIMEOUT ;;
|
||||
*) assuan_result $GPG_ERR_NOT_CONFIRMED ;;
|
||||
esac
|
||||
}
|
||||
|
||||
echo "OK Your orders please"
|
||||
|
||||
while :; do
|
||||
read -r cmd args 2>/dev/null ||
|
||||
continue
|
||||
|
||||
#echo >&2 "$cmd: $args"
|
||||
|
||||
case "$cmd" in
|
||||
BYE)
|
||||
echo "OK closing connection"
|
||||
exit 0
|
||||
;;
|
||||
GETPIN) cmd_getpin ;;
|
||||
CONFIRM) cmd_confirm "$args" ;;
|
||||
MESSAGE) cmd_confirm --one-button ;;
|
||||
GETINFO) cmd_getinfo "$args" ;;
|
||||
SETTIMEOUT) cmd_settimeout "$args" ;;
|
||||
SETKEYINFO) cmd_setkeyinfo "$args" ;;
|
||||
OPTION) cmd_setoption "$args" ;;
|
||||
SETDESC) set_text_variable desc "$args" ;;
|
||||
SETPROMPT) set_text_variable prompt "$args" ;;
|
||||
SETTITLE) set_text_variable title "$args" ;;
|
||||
SETOK) set_text_variable labelok "$args" ;;
|
||||
SETCANCEL) set_text_variable labelcancel "$args" ;;
|
||||
SETNOTOK) set_text_variable labelnotok "$args" ;;
|
||||
SETERROR) set_text_variable error "$args" ;;
|
||||
SETREPEAT) set_text_variable repeat "$args" ;;
|
||||
SETREPEATERROR) set_text_variable repeaterror "$args" ;;
|
||||
*)
|
||||
assuan_result $GPG_ERR_NO_ERROR
|
||||
;;
|
||||
esac
|
||||
done
|
||||
13
arch-user/bin/gpg/reencrypt-to-sym.sh
Executable file
13
arch-user/bin/gpg/reencrypt-to-sym.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
if [ -z "$PASSPHRASE" ]; then
|
||||
read -srp "Password: " PASSPHRASE
|
||||
echo
|
||||
fi
|
||||
export PASSPHRASE
|
||||
|
||||
bash ~/.local/bin/alg/file-tree-apply.sh "$1" "$2" '*.gpg' \
|
||||
'if [ ! -f "$2" ]; then gpg --decrypt "$1" | gpg --symmetric --output "$2" --passphrase "$PASSPHRASE" --batch --yes; fi'
|
||||
|
||||
echo ok
|
||||
14
arch-user/bin/i3blocks/battery.sh
Executable file
14
arch-user/bin/i3blocks/battery.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
read -r stat </sys/class/power_supply/ACAD/online
|
||||
read -r cap </sys/class/power_supply/BAT1/capacity
|
||||
read -r volt </sys/class/power_supply/BAT1/voltage_now
|
||||
read -r curr </sys/class/power_supply/BAT1/current_now
|
||||
|
||||
w=$((volt*curr/1000000000000))
|
||||
if [ "$stat" = "1" ]; then
|
||||
echo "🔌 $cap% ${w}W"
|
||||
else
|
||||
echo "🔋 $cap% ${w}W"
|
||||
[ "$cap" -lt "15" ] && exit 33
|
||||
fi
|
||||
23
arch-user/bin/i3blocks/volume.sh
Executable file
23
arch-user/bin/i3blocks/volume.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
sink_mute=$(pactl get-sink-mute @DEFAULT_SINK@)
|
||||
case "$sink_mute" in
|
||||
*yes*) sink_res=M;;
|
||||
*) sink_res=$(pactl get-sink-volume @DEFAULT_SINK@ | sed -e 's/.*\s\([0-9]*\)%.*/\1/;t;d');;
|
||||
esac
|
||||
|
||||
source_mute=$(pactl get-source-mute @DEFAULT_SOURCE@)
|
||||
case "$source_mute" in
|
||||
*yes*) source_res=M;;
|
||||
*) source_res=$(pactl get-source-volume @DEFAULT_SOURCE@ | sed -e 's/.*\s\([0-9]*\)%.*/\1/;t;d');;
|
||||
esac
|
||||
|
||||
bt_status="$(bluetoothctl devices Connected)"
|
||||
if [ -n "$bt_status" ]; then
|
||||
sink_icon=🎧
|
||||
else
|
||||
sink_icon=🔈
|
||||
fi
|
||||
|
||||
echo "$sink_icon $sink_res% 🎙 $source_res%"
|
||||
|
||||
3
arch-user/bin/i3blocks/weather.sh
Executable file
3
arch-user/bin/i3blocks/weather.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
curl "https://wttr.in/?format=%l;%t%20%p" --silent | sed 's/^\(.\{3\}\)\(.*\);/\1 /'
|
||||
echo
|
||||
2
arch-user/bin/i3blocks/xkb_layout.sh
Executable file
2
arch-user/bin/i3blocks/xkb_layout.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
swaymsg -t get_inputs | jq -r 'map(select(has("xkb_active_layout_name")))[0].xkb_active_layout_name'
|
||||
6
arch-user/bin/init
Executable file
6
arch-user/bin/init
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
. /etc/profile
|
||||
. ~/.profile
|
||||
|
||||
sway --unsupported-gpu >>~/.local/state/sway/out.log 2>>~/.local/state/sway/err.log
|
||||
12
arch-user/bin/misc/font-glyphs.sh
Executable file
12
arch-user/bin/misc/font-glyphs.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
for range in $(fc-match --format='%{charset}\n' "$1"); do
|
||||
for n in $(seq "0x${range%-*}" "0x${range#*-}"); do
|
||||
printf "%04x\n" "$n"
|
||||
done
|
||||
done | while read -r n_hex; do
|
||||
count=$((count + 1))
|
||||
printf "%-5s\U$n_hex\t" "$n_hex"
|
||||
[ $((count % 10)) = 0 ] && printf "\n"
|
||||
done
|
||||
printf "\n"
|
||||
|
||||
2
arch-user/bin/pacman/uninstall-orphans.sh
Executable file
2
arch-user/bin/pacman/uninstall-orphans.sh
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
pacman -Qdttq | sudo pacman -Rns -
|
||||
211
arch-user/bin/run.sh
Executable file
211
arch-user/bin/run.sh
Executable file
@@ -0,0 +1,211 @@
|
||||
#!/bin/bash
|
||||
|
||||
LIST=();
|
||||
# gui
|
||||
if [ "$USER" = "yrzam" ]; then
|
||||
LIST+=(
|
||||
"web" "web projects"
|
||||
"web" "web life"
|
||||
)
|
||||
WEB_HAS_PROFILES=1
|
||||
else
|
||||
LIST+=(
|
||||
"web" "web"
|
||||
)
|
||||
fi
|
||||
LIST+=(
|
||||
"gui" "telegram-desktop"
|
||||
"gui" "gimp"
|
||||
"gui" "sqlitebrowser"
|
||||
# tui
|
||||
"shell_tui" "vifm"
|
||||
"shell_tui" "vim"
|
||||
"tui" "htop"
|
||||
"float_tui" "nmtui"
|
||||
"float_tui" "bluetoothctl"
|
||||
"man" "man"
|
||||
"float_tui" "node"
|
||||
"term" "term"
|
||||
# native
|
||||
"screen_pick" "screenshot output"
|
||||
"screen_pick" "screenshot selection"
|
||||
"screen_pick" "color-picker"
|
||||
"todo" "pass"
|
||||
"calc" "calc"
|
||||
"todo" "translate ru-en"
|
||||
"todo" "translate en-ru"
|
||||
"grep_dict" "dict"
|
||||
)
|
||||
if [ "$FEAT_BRIGHTNESS" ]; then
|
||||
LIST+=(
|
||||
"brightness" "brightness"
|
||||
)
|
||||
fi
|
||||
LIST+=(
|
||||
"direct" "sway reload"
|
||||
"power" "logout"
|
||||
"todo" "inhibit"
|
||||
"power" "suspend"
|
||||
"power" "poweroff"
|
||||
"power" "poweroff --check-inhibitors=no"
|
||||
"power" "reboot"
|
||||
)
|
||||
|
||||
sure() {
|
||||
echo yes | bemenu --prompt "sure?"
|
||||
}
|
||||
|
||||
# generic
|
||||
exec_gui() {
|
||||
exec "$@"
|
||||
}
|
||||
exec_tui() {
|
||||
exec footclient -D ~/ "$@"
|
||||
}
|
||||
exec_float_tui() { # todo
|
||||
exec footclient --app-id="footclient_float" -D ~/ "$@"
|
||||
}
|
||||
exec_shell_tui() {
|
||||
exec footclient -D ~/ "$SHELL" -c "$@"
|
||||
}
|
||||
exec_shell_full() {
|
||||
exec footclient -D ~/ "$SHELL" -c "($1); read -n1"
|
||||
}
|
||||
exec_direct() {
|
||||
exec "$@"
|
||||
}
|
||||
exec_term() {
|
||||
exec footclient -D ~/
|
||||
}
|
||||
# custom
|
||||
exec_web() {
|
||||
shift
|
||||
if [ "$WEB_HAS_PROFILES" ]; then
|
||||
shift
|
||||
fi
|
||||
qutebrowser "$*"
|
||||
}
|
||||
exec_man() {
|
||||
shift
|
||||
page="$1"
|
||||
if [ -z "$page" ]; then
|
||||
page="$(
|
||||
man -k . | \
|
||||
bemenu --prompt "man" | \
|
||||
sed ' s/\s\+\-.*//;s/ //g'
|
||||
)"
|
||||
fi
|
||||
[ -n "$page" ] && exec footclient "$SHELL" -c "man '$page' || read -n1"
|
||||
}
|
||||
exec_screen_pick() {
|
||||
if [ "$*" = "screenshot output" ]; then
|
||||
mon="$(swaymsg -t get_outputs | jq -r '. | map(select(.focused == true)) | .[0].name')"
|
||||
grim -o "$mon" - | wl-copy -t image/png
|
||||
notify-send Done -a screenshot "PNG image copied to clipboard" -t 3000
|
||||
elif [ "$*" = "screenshot selection" ]; then
|
||||
grim -g "$(slurp)" - | wl-copy -t image/png
|
||||
notify-send Done -a screenshot "PNG image copied to clipboard" -t 3000
|
||||
elif [ "$*" = "color-picker" ]; then
|
||||
hex="$(
|
||||
grim -g "$(slurp -p)" -t ppm - | \
|
||||
magick - -format '%[pixel:p{0,0}]' txt:- | \
|
||||
tail -n 1 | \
|
||||
cut -d ' ' -f 4
|
||||
)"
|
||||
notify-send "$hex" -a screenshot "stnrit" -t 3000
|
||||
fi
|
||||
}
|
||||
exec_pass() {
|
||||
echo 1
|
||||
}
|
||||
exec_calc() {
|
||||
shift
|
||||
query="$1"
|
||||
if [ -z "$query" ]; then
|
||||
query="$(echo "tui" | bemenu --prompt "qalc")"
|
||||
fi
|
||||
if [ "$query" = "tui" ]; then
|
||||
exec_float_tui "qalc"
|
||||
elif [ -n "$query" ]; then
|
||||
qalc_res="$(qalc --terse "$query")"
|
||||
menu_res="$(echo -e "$qalc_res\ntui" | bemenu --prompt "qalc")"
|
||||
if [ "$qalc_res" = "$menu_res" ]; then
|
||||
wl-copy "$qalc_res"
|
||||
notify-send "$qalc_res" -a calc "Result copied to clipboard" -t 3000
|
||||
elif [ -n "$menu_res" ]; then
|
||||
exec_calc _ "$menu_res"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
exec_transl() {
|
||||
echo 1
|
||||
}
|
||||
exec_grep_dict() {
|
||||
shift
|
||||
dict="$1"
|
||||
pattern="$2"
|
||||
dicts_path="$HOME/know/dict/"
|
||||
if [ -z "$dict" ]; then
|
||||
dict="$(find "$dicts_path" -type f -printf "%f\n" | bemenu --prompt "dict")"
|
||||
[ -z "$dict" ] && return
|
||||
fi
|
||||
if [ -z "$pattern" ]; then
|
||||
pattern="$(echo -n | bemenu --prompt "grep $dict")"
|
||||
[ -z "$pattern" ] && return
|
||||
fi
|
||||
res="$({ echo ..; grep "$pattern" "$dicts_path/$dict"; } | bemenu --prompt " ")"
|
||||
if [ "$res" = ".." ]; then
|
||||
exec_grep_dict _ "$dict"
|
||||
else
|
||||
wl-copy "$res"
|
||||
notify-send "$res" -a dict "Word copied to clipboard" -t 3000
|
||||
fi
|
||||
}
|
||||
exec_brightness() {
|
||||
shift
|
||||
target="$1"
|
||||
if [ -z "$target" ]; then
|
||||
current="$(($(brightnessctl g)*100/$(brightnessctl m)))"
|
||||
current_i="$((current/5))"
|
||||
list="$(echo 1%; seq 5 5 100 | sed 's/$/%/')";
|
||||
target="$(echo "$list" | bemenu --index $current_i --prompt "$current% ->")";
|
||||
fi
|
||||
if [ -n "$target" ] && [ "$target" != "$current%" ]; then
|
||||
brightnessctl set "$target"
|
||||
[ -z "$1" ] && exec_brightness _
|
||||
fi
|
||||
}
|
||||
exec_power() {
|
||||
case "$1" in
|
||||
poweroff|reboot|suspend) sure && systemctl "$@";;
|
||||
logout) sure && swaymsg exit;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
out="$*";
|
||||
else
|
||||
out=$(
|
||||
for (( i=1; i<${#LIST[@]}; i+=2 )); do
|
||||
echo "${LIST[$i]}";
|
||||
done | bemenu --prompt ">"
|
||||
)
|
||||
fi
|
||||
|
||||
|
||||
if [ "$out" ]; then
|
||||
for (( i=1; i<${#LIST[@]}; i+=2 )); do
|
||||
if [[ "$out" == "${LIST[$i]}"* ]]; then
|
||||
executor=${LIST[$((i-1))]}
|
||||
fi
|
||||
done
|
||||
[ -z "$executor" ] && executor=shell_full
|
||||
|
||||
if [ "$executor" = "shell_full" ]; then
|
||||
"exec_$executor" "$out"
|
||||
else
|
||||
eval "executor_args=($out)"
|
||||
#shellcheck disable=SC2154
|
||||
"exec_$executor" "${executor_args[@]}"
|
||||
fi
|
||||
fi
|
||||
4
arch-user/bin/sway/brightness-set-and-notify.sh
Executable file
4
arch-user/bin/sway/brightness-set-and-notify.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
brig="$(brightnessctl set "$1" -m | sed -e 's/.*,\([0-9]*\)%.*/\1/')"
|
||||
notify-send -t 2000 -h "int:value:$brig" -a "brightness" "$brig%" \
|
||||
-h string:x-canonical-private-synchronous:brightness
|
||||
6
arch-user/bin/sway/command-mode.sh
Executable file
6
arch-user/bin/sway/command-mode.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
out="$(printf '' | bemenu --prompt ':sway')"
|
||||
eval "executor_args=($out)"
|
||||
#shellcheck disable=SC2154
|
||||
sway "${executor_args[@]}"
|
||||
Reference in New Issue
Block a user