6 releases

0.1.5 Sep 10, 2023
0.1.4 Aug 20, 2023
0.1.3 Apr 30, 2023
0.1.2 Sep 13, 2022
0.1.1 Jul 26, 2022

#185 in Operating systems

29 downloads per month

BSD-2-Clause

61KB
914 lines

Logo

License Latest version standard-readme compliant written in Rust

Blazing fast TUI launcher for GNU/Linux and *BSD

asciicast

Table of Contents

Install

Option 1: Build from source

  • Install Rust
  • Build:
    $ cargo install gyr
    
  • Add $HOME/.cargo/bin to your $PATH

Or build from Git:

  • Build:
    $ git clone https://git.sr.ht/~f9/gyr && cd gyr
    $ cargo build --release
    
  • Copy target/release/gyr to somewhere in your $PATH

Option 2: Distro packages

Gyr is in the Arch Linux AUR (gyr, gyr-git and gyr-bin).

Other distros may come soon-ish

Alternatively, pre-built binaries for Linux (x86_64 and aarch64) and FreeBSD 13.1 (x86_64) are available in the releases.

Usage

Run gyr from a terminal. Scroll through the app list, find some app typing chars, run selected pressing ENTER. Pretty straightforward. Oh, yes: go to the bottom with the left arrow, top with right. Cancel pressing Esc.

Alternative bindings are Ctrl-Q to cancel, Ctrl-Y to run the app, Ctrl-N scroll down and Ctrl-P to scroll up (VIM bindings).

I designed it for tiling WMs like Sway or i3.

Note for Sway: When $SWAYSOCK is set, swaymsg exec is used to run the program. This allows Sway to spawn the program in the workspace Gyr was run in.

You can configure some stuff with cli flags, see gyr --help

Gyr also has a history feature, so most used entries will be sorted first. This can be reset with gyr --clear_history

There's also a config file which can be placed in $HOME/.config/gyr/config.toml or $XDG_DATA_HOME/gyr/config.toml (sample)

Verbosity levels (-v, -vv, -vvv, each level adds logs to the previous one):

  • -v: will make the launched binary inherit Gyr's stdio. (which means you'll see the logs)
  • -vv: will show the path of each app in the info
  • -vvv: adds some debug information (number of times the apps were run, etc.)

Sway-specific usage

This is what I have on my config file:

$ cat ~/.config/sway/config
...
set $menu alacritty --title launcher -e gyr
bindsym $mod+d exec $menu
for_window [title="^launcher$"] floating enable, resize set width 500 height 430, border none
...

TODO

  • Most used entries first
  • Cached entries

Contributing

Feature requests and bug reports are most welcome.

I'll accept patchsets fixing bugs or adding requested features.

NOTE: The preferred way to contribute is via SourceHut, tickets can be opened at https://todo.sr.ht/~f9/gyr

The GitLab releases & issues are kept for convenience, but merge requests are closed.

Changelog

Notable changes will be documented in the CHANGELOG file

License

BSD 2-Clause (c) 2020-2022 Namkhai B.

Dependencies

~6–17MB
~170K SLoC