aboutsummaryrefslogtreecommitdiffstats
path: root/sway-launcher-desktop.sh
diff options
context:
space:
mode:
authorMoritz Meißelbach <m.meisselbach@inpsyde.com>2019-10-14 16:40:28 +0200
committerMoritz Meißelbach <m.meisselbach@inpsyde.com>2019-10-14 16:40:28 +0200
commit57fe8d716f9bae2674f34dc8d11e882391922398 (patch)
tree1a8bd125a2fc4faad9518bf5b659b2b4847ddffd /sway-launcher-desktop.sh
parent6eb70a002377fa466703aacd444719e7fc9bf546 (diff)
downloadsway-launcher-desktop-57fe8d716f9bae2674f34dc8d11e882391922398.tar.gz
sway-launcher-desktop-57fe8d716f9bae2674f34dc8d11e882391922398.zip
Make shellcheck happy
Diffstat (limited to 'sway-launcher-desktop.sh')
-rwxr-xr-x[-rw-r--r--]sway-launcher-desktop.sh35
1 files changed, 17 insertions, 18 deletions
diff --git a/sway-launcher-desktop.sh b/sway-launcher-desktop.sh
index 8ceec7d..2ed6c02 100644..100755
--- a/sway-launcher-desktop.sh
+++ b/sway-launcher-desktop.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
# terminal application launcher for sway, using fzf
# Based on: https://gitlab.com/FlyingWombat/my-scripts/blob/master/sway-launcher
@@ -13,22 +13,21 @@ DIRS=(
GLYPH_COMMAND=" "
GLYPH_DESKTOP=" "
-touch $HIST_FILE
+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')
+HIST_FILE_CONTENT=$(< "$HIST_FILE")
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')
+ 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}')
+ DESCRIPTION=$(grep Comment= "$1" | awk -F= '{print $2}')
fi
echo -e "\033[33m $TITLE \033[0m"
echo "$DESCRIPTION"
@@ -38,28 +37,28 @@ export -f createPreview
FZFPIPE=$(mktemp)
# Append Launcher History, removing usage count
-(echo "$HIST_FILE_CONTENT" | sed -n -e 's/^[0-9]* //p' >> $FZFPIPE )&
+(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 )&
+ 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 )&
+({ 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) |
+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
+[ -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$")
+HIST_LINE=$(echo "$HIST_FILE_CONTENT" | grep -Pe "^[0-9]+ \Q$COMMAND_STR\E$")
# echo "Hist Line: $HIST_LINE"
@@ -72,24 +71,24 @@ else
((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$")
+ grep --invert-match -Pe "^[0-9]+ \Q$COMMAND_STR\E$")
fi
# update history
-update_line="${HIST_COUNT} ${command_str}"
+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
+case $(echo "$COMMAND_STR" | awk -F'|' '{print $2}') in
desktop)
- file=$(echo $command_str | awk -F '|' '{print $1}')
+ 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}')
+ command=$(echo "$COMMAND_STR" | awk -F '|' '{print $1}')
;;
esac