From dc4de3e6b89d47f1b58e21bd831fca72e25991cb Mon Sep 17 00:00:00 2001 From: Yuri Zamyatin Date: Sat, 25 Oct 2025 23:30:01 +0000 Subject: [PATCH] bemenu -> wmenu --- arch-root/install.sh | 2 +- arch-user/bin/menu/horizontal.sh | 2 ++ arch-user/bin/{bemenu => menu}/pinentry.sh | 13 +++++----- arch-user/bin/{bemenu => menu}/run-calc.sh | 0 arch-user/bin/{bemenu => menu}/run-capture.sh | 0 arch-user/bin/{bemenu => menu}/run-man.sh | 0 arch-user/bin/{bemenu => menu}/run-pass.sh | 0 arch-user/bin/{bemenu => menu}/run-power.sh | 0 arch-user/bin/{bemenu => menu}/run.sh | 6 ++--- arch-user/bin/menu/vertical.sh | 4 ++++ arch-user/bin/sway/command-mode.sh | 2 +- arch-user/bin/sway/search-mode.sh | 2 +- arch-user/config/bemenu/env.sh.tmpl | 24 ------------------- arch-user/config/gnupg/gpg-agent.conf | 2 +- .../config/{bemenu => menu}/base.runlist | 0 arch-user/config/menu/env.sh.tmpl | 15 ++++++++++++ arch-user/config/readline/inputrc | 2 ++ arch-user/config/sway/config.tmpl | 4 ++-- arch-user/install.sh | 3 ++- 19 files changed, 40 insertions(+), 41 deletions(-) create mode 100755 arch-user/bin/menu/horizontal.sh rename arch-user/bin/{bemenu => menu}/pinentry.sh (98%) rename arch-user/bin/{bemenu => menu}/run-calc.sh (100%) rename arch-user/bin/{bemenu => menu}/run-capture.sh (100%) rename arch-user/bin/{bemenu => menu}/run-man.sh (100%) rename arch-user/bin/{bemenu => menu}/run-pass.sh (100%) rename arch-user/bin/{bemenu => menu}/run-power.sh (100%) rename arch-user/bin/{bemenu => menu}/run.sh (77%) create mode 100755 arch-user/bin/menu/vertical.sh delete mode 100755 arch-user/config/bemenu/env.sh.tmpl rename arch-user/config/{bemenu => menu}/base.runlist (100%) create mode 100755 arch-user/config/menu/env.sh.tmpl diff --git a/arch-root/install.sh b/arch-root/install.sh index e30bd96..eec1c4d 100755 --- a/arch-root/install.sh +++ b/arch-root/install.sh @@ -27,7 +27,7 @@ PACKAGES=( neomutt telegram-desktop # communication greetd sway swaybg swayidle # desktop basic - alacritty bemenu-wayland i3blocks mako libnotify # terminals, ui + alacritty wmenu i3blocks mako libnotify # terminals, ui wev wl-clipboard wtype slurp grim # interaction ttf-roboto ttf-roboto-mono otf-font-awesome # fonts kvantum kvantum-qt5 kvantum-theme-materia materia-gtk-theme # themes diff --git a/arch-user/bin/menu/horizontal.sh b/arch-user/bin/menu/horizontal.sh new file mode 100755 index 0000000..278da1c --- /dev/null +++ b/arch-user/bin/menu/horizontal.sh @@ -0,0 +1,2 @@ +#!/bin/sh +eval "wmenu $WMENU_HOPTS \"$@\"" diff --git a/arch-user/bin/bemenu/pinentry.sh b/arch-user/bin/menu/pinentry.sh similarity index 98% rename from arch-user/bin/bemenu/pinentry.sh rename to arch-user/bin/menu/pinentry.sh index fae15af..219e828 100755 --- a/arch-user/bin/bemenu/pinentry.sh +++ b/arch-user/bin/menu/pinentry.sh @@ -8,13 +8,13 @@ #exec 2>/tmp/pinentry.log #set -x +############################### PATCH ################################# +. ~/.config/menu/env.sh +####################################################################### + VERSION='1.0' FLAVOR='bash' -############################### PATCH ################################# -. ~/.config/bemenu/env.sh -####################################################################### - keyinfo='' error='' timeout=0 @@ -125,9 +125,8 @@ cmd_getpin() output="$( echo -n "|" ############################### PATCH ################################# - bemenu \ - --password indicator \ - --prompt "${prompt:-$def_prompt}" \ + ~/.local/bin/menu/horizontal.sh \ + -Pp "${prompt:-$def_prompt}" \ ")" +inp="$(echo "$rl" | ~/.local/bin/menu/vertical.sh -p ">")" [ -z "$inp" ] && exit 0 eval "inp_arr=($inp)" @@ -18,5 +18,5 @@ case "$exectr" in exec) exec $inp;; float-sh) exec alacritty msg create-window --class="term_float" --working-directory="$HOME" --command "$SHELL" -c "($inp)";; float-sh-keep) exec alacritty msg create-window --class="term_float" --working-directory="$HOME" --command "($inp); read -n1";; - *) exec bash "$HOME/.local/bin/bemenu/run-$exectr.sh" "${inp_arr[@]}" + *) exec bash "$HOME/.local/bin/menu/run-$exectr.sh" "${inp_arr[@]}" esac diff --git a/arch-user/bin/menu/vertical.sh b/arch-user/bin/menu/vertical.sh new file mode 100755 index 0000000..0b62b8a --- /dev/null +++ b/arch-user/bin/menu/vertical.sh @@ -0,0 +1,4 @@ +#!/bin/sh +input=$(cat) +lines=$(echo "$input" | wc -l) +echo "$input" | eval "wmenu $WMENU_VOPTS -l $((lines < 50 ? lines : 50)) \"$@\"" diff --git a/arch-user/bin/sway/command-mode.sh b/arch-user/bin/sway/command-mode.sh index ffa111d..1354571 100755 --- a/arch-user/bin/sway/command-mode.sh +++ b/arch-user/bin/sway/command-mode.sh @@ -1,6 +1,6 @@ #!/bin/bash -out="$(printf '' | bemenu --prompt ':sway')" +out="$(printf '' | ~/.local/bin/menu/horizontal.sh -p ':sway')" eval "executor_args=($out)" #shellcheck disable=SC2154 sway "${executor_args[@]}" diff --git a/arch-user/bin/sway/search-mode.sh b/arch-user/bin/sway/search-mode.sh index 3d5621d..6f74640 100755 --- a/arch-user/bin/sway/search-mode.sh +++ b/arch-user/bin/sway/search-mode.sh @@ -41,7 +41,7 @@ formatted_list=$(echo "$window_list" | while IFS='|' read -r id app_id name work printf "%s%s%s %s %s\n" "$workspace" "$indicator" "$id" "$app_id" "$name" done) -selection=$(echo "$formatted_list" | bemenu --auto-select --width-factor 100 --prompt "/" --index "$(echo "$formatted_list" | awk 'substr($0,2,1)==">" {print NR-1}')" ) +selection=$(echo "$formatted_list" | ~/.local/bin/menu/vertical.sh -p "/") [ -z "$selection" ] && exit 0 window_id=$(echo "$selection" | sed -E 's/^...([0-9]+).*/\1/') diff --git a/arch-user/config/bemenu/env.sh.tmpl b/arch-user/config/bemenu/env.sh.tmpl deleted file mode 100755 index ae83804..0000000 --- a/arch-user/config/bemenu/env.sh.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -export BEMENU_OPTS="\ ---ignorecase \ ---width-factor 0.5 \ ---fn \"{{ .theme.font.name_mono }} {{ math.Add .theme.font.size_base_pt .theme.font.size_step_pt }}\" \ ---list 500 \ ---border 2 \ ---scrollbar autohide \ ---border-radius 4 \ ---bdr #{{ .theme.color.fg_accent }}{{ math.Mul .theme.opacity.med 255 | conv.ToInt64 | printf "%02X" }} \ ---scf #{{ .theme.color.fg_accent }}{{ math.Mul .theme.opacity.med 255 | conv.ToInt64 | printf "%02X" }} \ ---scb #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---nb #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---ab #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---hb #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---fb #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---tb #{{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ ---nf #{{ .theme.color.fg }} \ ---af #{{ .theme.color.fg }} \ ---cf #{{ .theme.color.fg }} \ ---hf #{{ .theme.color.fg_accent }} \ ---tf #{{ .theme.color.fg_accent }} \ ---ff #{{ .theme.color.fg_accent }} \ -" diff --git a/arch-user/config/gnupg/gpg-agent.conf b/arch-user/config/gnupg/gpg-agent.conf index ff149ec..6e81259 100644 --- a/arch-user/config/gnupg/gpg-agent.conf +++ b/arch-user/config/gnupg/gpg-agent.conf @@ -1 +1 @@ -pinentry-program ~/.local/bin/bemenu/pinentry.sh +pinentry-program ~/.local/bin/menu/pinentry.sh diff --git a/arch-user/config/bemenu/base.runlist b/arch-user/config/menu/base.runlist similarity index 100% rename from arch-user/config/bemenu/base.runlist rename to arch-user/config/menu/base.runlist diff --git a/arch-user/config/menu/env.sh.tmpl b/arch-user/config/menu/env.sh.tmpl new file mode 100755 index 0000000..b812d4b --- /dev/null +++ b/arch-user/config/menu/env.sh.tmpl @@ -0,0 +1,15 @@ +#!/bin/sh +export WMENU_VOPTS="\ +-i \ +-f '{{ .theme.font.name_mono }} {{ math.Add .theme.font.size_base_pt .theme.font.size_step_pt }}' \ +-n {{ .theme.color.fg }} -N {{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ +-m {{ .theme.color.fg_accent }} -M {{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ +-s {{ .theme.color.fg_accent }} -S {{ .theme.color.bg }}{{ math.Mul .theme.opacity.high 255 | conv.ToInt64 | printf "%02X" }} \ +" +export WMENU_HOPTS="\ +-i \ +-f '{{ .theme.font.name_mono }} {{ math.Add .theme.font.size_base_pt .theme.font.size_step_pt }}' \ +-n {{ .theme.color.fg }} -N {{ .theme.color.bg }} \ +-m {{ .theme.color.fg_accent }} -M {{ .theme.color.bg }} \ +-s {{ .theme.color.fg_accent }} -S {{ .theme.color.bg }} \ +" diff --git a/arch-user/config/readline/inputrc b/arch-user/config/readline/inputrc index e020474..1d60b63 100644 --- a/arch-user/config/readline/inputrc +++ b/arch-user/config/readline/inputrc @@ -25,6 +25,8 @@ set keymap vi-command "n":backward-char "\C-n":backward-char # e -> k (reverse swap) +set keymap vi-insert +"\C-e":"\C-j" set keymap vi-command "e":previous-history "\C-e":kill-line diff --git a/arch-user/config/sway/config.tmpl b/arch-user/config/sway/config.tmpl index 2861a33..02aa87e 100644 --- a/arch-user/config/sway/config.tmpl +++ b/arch-user/config/sway/config.tmpl @@ -188,11 +188,11 @@ bindsym --to-code { XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% && pkill -SIGRTMIN+2 i3blocks XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% && pkill -SIGRTMIN+2 i3blocks XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle && pkill -SIGRTMIN+2 i3blocks - XF86Calculator exec .local/bin/bemenu/run-calc.sh calc tui + XF86Calculator exec .local/bin/menu/run-calc.sh calc tui # basic scripts $mod+Return exec alacritty msg create-window $mod+Colon exec ~/.local/bin/sway/command-mode.sh - $mod+Space exec ~/.local/bin/bemenu/run.sh + $mod+Space exec ~/.local/bin/menu/run.sh } ############################################## diff --git a/arch-user/install.sh b/arch-user/install.sh index 6a4a7f7..7b17019 100755 --- a/arch-user/install.sh +++ b/arch-user/install.sh @@ -48,7 +48,7 @@ mkdir -p "${USER_DIRS[@]}" ########## scripts ############# cp -rf bin/* ~/.local/bin -LN_EXCLUDE_DIRS=(i3blocks bemenu sway) +LN_EXCLUDE_DIRS=(i3blocks menu sway) ln_exclude_dirs_cmp=" ${LN_EXCLUDE_DIRS[*]} " for sdir in bin/*; do @@ -93,5 +93,6 @@ export IS_COMPAT=0 ############################### swaymsg reload || true +. ~/.profile echo ok