diff options
| author | Moritz Meißelbach <arbelzapf@gmail.com> | 2019-10-14 08:40:49 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-14 08:40:49 +0000 |
| commit | 6eb70a002377fa466703aacd444719e7fc9bf546 (patch) | |
| tree | cf79f094abe6df195b4da12f0f8ea43564471eb3 /gistfile1.txt | |
| parent | 637c353138226e7e23a022d4408d0ce8e08c737f (diff) | |
| download | sway-launcher-desktop-6eb70a002377fa466703aacd444719e7fc9bf546.tar.gz sway-launcher-desktop-6eb70a002377fa466703aacd444719e7fc9bf546.zip | |
Diffstat (limited to 'gistfile1.txt')
| -rw-r--r-- | gistfile1.txt | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/gistfile1.txt b/gistfile1.txt deleted file mode 100644 index 8ceec7d..0000000 --- a/gistfile1.txt +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh -# terminal application launcher for sway, using fzf -# Based on: https://gitlab.com/FlyingWombat/my-scripts/blob/master/sway-launcher - -HIST_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/sway-launcher-history.txt" - -DIRS=( -/usr/share/applications -~/.local/share/applications -/usr/local/share/applications -) - -GLYPH_COMMAND=" " -GLYPH_DESKTOP=" " - -touch $HIST_FILE -# Filter DIRS array for directories that actually exist. Append *.desktop to remaining elements -for i in "${!DIRS[@]}" ; do [[ ! -d "${DIRS[i]}" ]] && unset -v 'DIRS[$i]' || DIRS[$i]="${DIRS[i]}/*.desktop" ; done -DIRS=("${DIRS[@]}") - -HIST_FILE_CONTENT=$(cat "$HIST_FILE") -HIST_ENTRIES=$(echo "$HIST_FILE_CONTENT" | sed -n -e 's/^[0-9]* //p') - -function createPreview(){ - DESCRIPTION='No description' - if [[ $2 == 'command' ]]; then - TITLE=$1 - DESCRIPTION=$(whatis -l $1 2>/dev/null | head -n1 | sed -n -e 's/^.*\(.*\).*\-//p') - else - TITLE=$(cat $1 | grep ^Name= | head -n1 | awk -F= '{print $2}') - DESCRIPTION=$(cat $1 | grep Comment= | awk -F= '{print $2}') - fi - echo -e "\033[33m $TITLE \033[0m" - echo "$DESCRIPTION" -} -export -f createPreview - -FZFPIPE=$(mktemp) - -# Append Launcher History, removing usage count -(echo "$HIST_FILE_CONTENT" | sed -n -e 's/^[0-9]* //p' >> $FZFPIPE )& - -# Load and append Desktop entries -(grep -roP "Type=Application" ${DIRS[@]} | - awk -F : '{print $1}' | - sort -u | - xargs -d "\n" grep -oP "(?<=Name=).*" | - awk -F : -v pre="$GLYPH_DESKTOP" '{print $1 "|desktop|\033[33m" pre "\033[0m" $2}' >> $FZFPIPE )& - -# Load and append command list -({ IFS=:; ls -H $PATH; } | grep -v '/.*' | sort -u | awk -v pre="$GLYPH_COMMAND" '{print $1 "|command|\033[31m" pre "\033[0m" $1 }' >> $FZFPIPE )& - -command_str=$((tail -f $FZFPIPE & echo $! > pid) | - fzf +x +s -d '\|' --nth ..3 --with-nth 3.. --preview 'createPreview {1} {2}' --preview-window=up:3:wrap --ansi ; kill -9 $(<pid) | - tail -n1) || exit 1 - - -[ -z "$command_str" ] && exit 1 - - -# get full line from history (with count number) -HIST_LINE=$(echo "$HIST_FILE_CONTENT" | grep -Pe "^[0-9]+ \Q$command_str\E$") -# echo "Hist Line: $HIST_LINE" - - - -if [ "$HIST_LINE" == "" ]; then - HIST_COUNT=1 -else - # Increment usage count - HIST_COUNT=$(echo "$HIST_LINE" | sed -E 's/^([0-9]+) .+$/\1/') - ((HIST_COUNT++)) - # delete line, to add updated later - HIST_FILE_CONTENT=$(echo "$HIST_FILE_CONTENT" | \ - grep --invert-match -Pe "^[0-9]+ \Q$command_str\E$") -fi - -# update history -update_line="${HIST_COUNT} ${command_str}" -echo -e "${update_line}\n${HIST_FILE_CONTENT}" | \ - sort --numeric-sort --reverse > "$HIST_FILE" - -command='echo "nope"' - -case $(echo $command_str | awk -F'|' '{print $2}') in -desktop) - file=$(echo $command_str | awk -F '|' '{print $1}') - command=$(cat $file | grep Exec | awk -F'=' '{print $2}') - ;; - -command) - command=$(echo $command_str | awk -F '|' '{print $1}') - ;; - -esac - -swaymsg -t command exec "$command" |
