diff options
| author | Moritz Meißelbach <m.meisselbach@inpsyde.com> | 2020-12-23 20:35:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-23 20:35:44 +0100 |
| commit | c741cb2dcd60b84e3f3ca8eeb7a9a64ad14b26d1 (patch) | |
| tree | 4ce9b74e4c17eb582d550054671efbeb4c54dcb2 | |
| parent | 9859390621dbddcdd6447df55e17a8a0f6e5d5c5 (diff) | |
| parent | 8f4cb34b9046cded085a84badea3ef84c491c759 (diff) | |
| download | sway-launcher-desktop-c741cb2dcd60b84e3f3ca8eeb7a9a64ad14b26d1.tar.gz sway-launcher-desktop-c741cb2dcd60b84e3f3ca8eeb7a9a64ad14b26d1.zip | |
Merge pull request #30 from itspngu/pngu
Allow overriding default glyphs, "cleaner" UI, make configuration not URxvt-specific
| -rw-r--r-- | README.md | 9 | ||||
| -rwxr-xr-x | sway-launcher-desktop.sh | 12 | ||||
| -rwxr-xr-x[-rw-r--r--] | tests/autostart.bats | 4 | ||||
| -rwxr-xr-x[-rw-r--r--] | tests/describe.bats | 2 | ||||
| -rwxr-xr-x[-rw-r--r--] | tests/entries.bats | 4 | ||||
| -rwxr-xr-x[-rw-r--r--] | tests/generate-command.bats | 4 | ||||
| -rwxr-xr-x[-rw-r--r--] | tests/providers.bats | 2 |
7 files changed, 27 insertions, 10 deletions
@@ -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" |
