aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rwxr-xr-xsway-launcher-desktop.sh12
-rwxr-xr-x[-rw-r--r--]tests/autostart.bats4
-rwxr-xr-x[-rw-r--r--]tests/describe.bats2
-rwxr-xr-x[-rw-r--r--]tests/entries.bats4
-rwxr-xr-x[-rw-r--r--]tests/generate-command.bats4
-rwxr-xr-x[-rw-r--r--]tests/providers.bats2
7 files changed, 27 insertions, 10 deletions
diff --git a/README.md b/README.md
index 936f6ea..e69d22f 100644
--- a/README.md
+++ b/README.md
@@ -25,12 +25,15 @@ Arch Linux users can also grab it from the AUR (thanks @turtlewit)
Configure it in Sway like this:
```
-for_window [class="URxvt" instance="launcher"] floating enable, border pixel 10, sticky enable
-set $menu exec urxvt -geometry 55x18 -name launcher -e env TERMINAL_COMMAND="urxvt -e" /path/to/repo/sway-launcher-desktop.sh
+for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 30 ppt 60 ppt, border pixel 10
+set $menu exec $term --class=launcher -e /path/to/repo/sway-launcher-desktop.sh
bindsym $mod+d exec $menu
```
-
+You can override the default icons/glyphs by setting the appropriate GLYPH_ variable in your $menu command, e.g.:
+```
+set $menu exec $term --class=launcher -e env GLYPH_COMMAND="" GLYPH_DESKTOP="" GLYPH_PROMPT="? " sway-launcher
+```
### Setup a Terminal command
Some of your desktop entries will probably be TUI programs that expect to be launched in a new terminal window. Those entries have the `Terminal=true` flag set and you need to tell the launcher which terminal emulator to use. Pass the `TERMINAL_COMMAND` environment variable with your terminal startup command to the script to use your preferred terminal emulator. The script will default to `$TERM -e`
diff --git a/sway-launcher-desktop.sh b/sway-launcher-desktop.sh
index a8ee3dc..e58c053 100755
--- a/sway-launcher-desktop.sh
+++ b/sway-launcher-desktop.sh
@@ -13,8 +13,8 @@ IFS=$'\n\t'
DEL=$'\34'
TERMINAL_COMMAND="${TERMINAL_COMMAND:="$TERM -e"}"
-GLYPH_COMMAND=" "
-GLYPH_DESKTOP=" "
+GLYPH_COMMAND="${GLYPH_COMMAND- }"
+GLYPH_DESKTOP="${GLYPH_DESKTOP- }"
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/sway-launcher-desktop"
PROVIDERS_FILE="${PROVIDERS_FILE:=providers.conf}"
if [[ "${PROVIDERS_FILE#/}" == "${PROVIDERS_FILE}" ]]; then
@@ -256,9 +256,13 @@ for PROVIDER_NAME in "${!PROVIDERS[@]}"; do
done
COMMAND_STR=$(
- fzf +s -x -d '\034' --nth ..3 --with-nth 3 \
+ fzf --ansi +s -x -d '\034' --nth ..3 --with-nth 3 \
--preview "$0 describe {2} {1}" \
- --preview-window=up:3:wrap --ansi \
+ --preview-window=up:2:noborder \
+ --no-multi --cycle \
+ --prompt="${GLYPH_PROMPT-# }" \
+ --header='' --no-info --margin='1,2' \
+ --color='16,gutter:-1' \
<"$FZFPIPE"
) || exit 1
diff --git a/tests/autostart.bats b/tests/autostart.bats
index 0197a30..f2019f3 100644..100755
--- a/tests/autostart.bats
+++ b/tests/autostart.bats
@@ -1,3 +1,5 @@
+#!/usr/bin/env bats
+
setup() {
export TERMINAL_COMMAND='urxvt -e'
export XDG_CONFIG_HOME=./data/autostart-folders/0
@@ -11,4 +13,4 @@ setup() {
[[ ${#lines[@]} == 2 ]]
[[ ${lines[0]} =~ data/autostart-folders/0/autostart/firefox.desktop ]]
[[ ${lines[1]} =~ data/autostart-folders/1/autostart/htop.desktop ]]
-} \ No newline at end of file
+}
diff --git a/tests/describe.bats b/tests/describe.bats
index 1ac58ff..7692c63 100644..100755
--- a/tests/describe.bats
+++ b/tests/describe.bats
@@ -1,3 +1,5 @@
+#!/usr/bin/env bats
+
@test "Name and description of firefox desktop file are properly extracted" {
run env XDG_CONFIG_HOME=./data/config ../sway-launcher-desktop.sh describe desktop ./data/desktop-files/0/applications/firefox.desktop
[ "$status" -eq 0 ]
diff --git a/tests/entries.bats b/tests/entries.bats
index e6781ed..dd77fd8 100644..100755
--- a/tests/entries.bats
+++ b/tests/entries.bats
@@ -1,3 +1,5 @@
+#!/usr/bin/env bats
+
@test "Firefox desktop entry and all its actions are extracted" {
run ../sway-launcher-desktop.sh entries data/desktop-files/0/applications/firefox.desktop
echo -e "OUTPUT:\n$output"
@@ -19,4 +21,4 @@
echo "EXPECTED: foo-bar.desktop ACTUAL: $output"
[ "$status" -eq 0 ]
[[ ${#lines[@]} == 6 ]]
-} \ No newline at end of file
+}
diff --git a/tests/generate-command.bats b/tests/generate-command.bats
index 1dccc13..2a30cd0 100644..100755
--- a/tests/generate-command.bats
+++ b/tests/generate-command.bats
@@ -1,3 +1,5 @@
+#!/usr/bin/env bats
+
setup() {
export TERMINAL_COMMAND='urxvt -e'
}
@@ -21,4 +23,4 @@ setup() {
run ../sway-launcher-desktop.sh generate-command data/desktop-files/0/applications/minecraft-launcher.desktop
[ "$status" -eq 0 ]
[[ "$output" == 'cd /opt/minecraft-launcher/ && env GDK_BACKEND=x11 /opt/minecraft-launcher/minecraft-launcher' ]]
-} \ No newline at end of file
+}
diff --git a/tests/providers.bats b/tests/providers.bats
index 1c11f0d..21a061f 100644..100755
--- a/tests/providers.bats
+++ b/tests/providers.bats
@@ -1,3 +1,5 @@
+#!/usr/bin/env bats
+
@test "Builtin desktop provider works" {
run env XDG_CONFIG_HOME=./data/config XDG_DATA_HOME=./data/desktop-files/1 XDG_DATA_DIRS=./data/desktop-files/0 ../sway-launcher-desktop.sh provide desktop
echo "OUTPUT:$output"