aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/bin
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.local/bin')
-rwxr-xr-xdotfiles/.local/bin/menuman60
-rwxr-xr-xdotfiles/.local/bin/menuwebsurf21
-rwxr-xr-xdotfiles/.local/bin/menuworkspace12
-rwxr-xr-xdotfiles/.local/bin/workspace40
4 files changed, 121 insertions, 12 deletions
diff --git a/dotfiles/.local/bin/menuman b/dotfiles/.local/bin/menuman
index acad4c4..98efc02 100755
--- a/dotfiles/.local/bin/menuman
+++ b/dotfiles/.local/bin/menuman
@@ -1,19 +1,67 @@
#!/bin/sh
# Search and open man page
+# Options:
+# -t use in terminal with fzf otherwise launch bemenu.
+# -s search with apropos.
-list="$(man -k . | awk '{ print $1$2 }')"
+# Source settings from .bemenurc
+. ~/.config/bemenurc
-if [ "$1" = "-t" ]; then
- chosen=$(printf "$list" | fzf)
+issearch=
+isterminal=
+
+printusage() {
+ echo "Options:" >&2
+ echo " -t use in terminal with fzf otherwise launch bemenu." >&2
+ echo " -s search with apropos." >&2
+}
+
+while getopts "st" curopt "$@"; do
+ case "$curopt" in
+ "s")
+ issearch=1
+ continue;;
+ "t")
+ isterminal=1
+ continue;;
+ "?")
+ printusage
+ exit 1;;
+ esac
+done
+
+if [ ! -z "$issearch" ]; then
+ if [ ! -z "$isterminal" ]; then
+ printf "Enter query:\t"
+ read query
+ else
+ query="$(echo "" | bemenu -p "Enter apropos query:" -i --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")"
+ fi
+ if [ -z "$query" ]; then
+ echo "Empty query" >&2
+ exit 1
+ fi
+ list="$(apropos "$query")"
else
- # Source settings from .bemenurc
- . ~/.config/bemenurc
+ list="$(man -k . | awk '{ print $1$2 }')"
+fi
- chosen=$(printf "$list" | bemenu -p "Select man page:" -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")
+if [ ! -z "$isterminal" ]; then
+ chosen=$(printf "$list" | fzf)
+else
+ chosen=$(printf "$list" | bemenu -p "Select man page:" -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")
fi
if [ -z "$chosen" ]; then
exit 0
fi
+if [ ! -z "$issearch" ]; then
+ chosen="$(printf "$chosen" | sed "s/\(.* ([a-zA-Z0-9]*)\)\s*-.*/\1/")"
+fi
+
+if [ ! -z "$isterminal" ]; then
+ man "$chosen" && exit
+fi
+
$TERMINAL -T "man $chosen" man $chosen
diff --git a/dotfiles/.local/bin/menuwebsurf b/dotfiles/.local/bin/menuwebsurf
index bef9890..9e1a7a9 100755
--- a/dotfiles/.local/bin/menuwebsurf
+++ b/dotfiles/.local/bin/menuwebsurf
@@ -5,18 +5,27 @@
# Source settings from .bemenurc
. ~/.config/bemenurc
-prompt="🌐"
+searchurl="https://srx.yaroslavps.com/search?q="
# Have to use this "hack" because bemenu doesn't know how to paste
if [ "$1" = "paste" ]; then
- prompt="$(wl-paste)"
+ prompt="$(wl-paste)"
+else
+ qmarks="$HOME/.config/qutebrowser/quickmarks"
+ hist="$HOME/.local/share/qutebrowser/history.sqlite"
+ prompt="$(sqlite3 -separator ' ' "$hist" \
+ 'select title, url from CompletionHistory' |
+ cat "$qmarks" -)"
fi
-choice=$(echo "$prompt" | bemenu -i -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") || exit 1
+choice=$(printf "%s" "$prompt" |
+ bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") || exit 1
-if [ "$choice" = "🌐" ]; then
- $BROWSER
+if echo "$choice" | egrep ".*://.*" >/dev/null 2>&1; then
+ choice="$(echo "$choice" | sed -E 's/[^ ]+ +//g' |
+ grep -E "https?:" || echo "$choice")"
+ mimeo "$choice"
else
- mimeo "$choice"
+ $BROWSER "$choice"
fi
diff --git a/dotfiles/.local/bin/menuworkspace b/dotfiles/.local/bin/menuworkspace
new file mode 100755
index 0000000..7d947d0
--- /dev/null
+++ b/dotfiles/.local/bin/menuworkspace
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Open a "workspace" (see workspace) from a list of dirs under home
+
+# Source settings from .bemenurc
+. ~/.config/bemenurc
+
+# All dirs under home, except ones under hidden dirs
+dirs="$(find $HOME -type d -path "*/\.*" -prune -o -not -name ".*" -type d)"
+
+workspace "$(echo "$dirs" |
+ bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")"
diff --git a/dotfiles/.local/bin/workspace b/dotfiles/.local/bin/workspace
new file mode 100755
index 0000000..bfc2357
--- /dev/null
+++ b/dotfiles/.local/bin/workspace
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# Yaroslav de la Peña Smirnov 2021
+#
+# A quick script to quickly open several terminal windows, in a layout that I
+# often use, all in the specified directory. The layout looks something like
+# this:
+#
+# ┌──────────────────┬──────────────────────────────────────────────┐
+# │ │ │
+# │ │ │
+# │ lf │ │
+# │ │ │
+# │ │ │
+# ├──────────────────┤ │
+# │ │ shell │
+# │ │ │
+# │ │ │
+# │ shell │ │
+# │ │ │
+# │ │ │
+# │ │ │
+# └──────────────────┴──────────────────────────────────────────────┘
+
+if [ -z "$1" ]; then
+ echo "Specify working directory"
+ exit 1
+fi
+
+swaymsg "gaps inner current set 0; gaps outer current set 0"
+
+cd "$1"
+setsid $TERMINAL -a "$TERMINAL lf:$1" "lf" >/dev/null 2>&1 & sleep 0.1
+setsid $TERMINAL -a "$TERMINAL edit:$1" >/dev/null 2>&1 & sleep 0.1
+
+sleep 0.2
+swaymsg "[app_id=\"$TERMINAL lf:$1\"] focus; resize set width 27ppt; split v"
+setsid $TERMINAL >/dev/null 2>&1 & sleep 0.2
+swaymsg "resize set height 60ppt" && sleep 0.1
+swaymsg "[app_id=\"$TERMINAL edit:$1\"] focus"