Ulauncher is a fast application launcher for Linux. It's is written in Python, using GTK+, and features: App Search (fuzzy matching), Calculator, Extensions, Shortcuts, File browser mode and Custom Color Themes
App Search | File Browser | Color Themes |
---|---|---|
For more info or download links see ulauncher.io
If your distribution uses Systemd and the packages includes ulauncher.service, then you can run ulauncher
on startup by running:
systemctl --user enable --now ulauncher
If not, then you can open Ulauncher and enable "Launch at Login" in the preferences.
- If your DE doesn't use compositing, run ulauncher with
--no-window-shadow
to remove a black box around a window - inotify watch limit reached
- Can't map the keys to ALT+SPACE
- Hotkey doesn't work in Wayland when is triggered from certain apps
- Border appears around ulauncher window in Sway DE
- Pass custom environment variable to Ulauncher
Project | Contributor-friendly Issues |
---|---|
Ulauncher App | |
Frontend for extensions website Uses ReactJS |
|
API for extensions website Uses Python and bottle library |
Contributions are appreciated, but before you put a the work in please ensure that it's a feature or improvement we want by creating an issue for it if there isn't one already. Be aware that we might still not accept the PR depending on the implementation. Issues with the contributor-friendly label are more straight forward to implement without in depth knowledge of the Ulauncher architecture.
You need the the following:
- Docker
- python3-distutils-extra (may just be named python-distutils-extra in some distros)
- Application runtime dependencies (if you already installed Ulauncher you should have these)
Ubuntu/Debian
Install the dependencies (note that Docker recommends to use their installation instructions instead to get the latest version)
sudo apt-get update && sudo apt-get install \
docker.io gobject-introspection libgtk-3-0 libkeybinder-3.0-0 \
gir1.2-{gtk-3.0,keybinder-3.0,webkit2-4.0,glib-2.0,gdkpixbuf-2.0,notify-0.7,ayatanaappindicator3-0.1} \
python3-{all,gi,distutils-extra,xdg,dbus,pyinotify,levenshtein,websocket}
Enable docker and set permissions
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
- Fork the repo and clone your fork locally.
- Create a new branch for your PR
- Run
$ ./ul dev-container
to take you into a Docker container from which you can run build and test scripts. Usesudo -E ./ul dev-container
if your user is not in thedocker
group. - Build the preferences UI from inside the docker container:
root@container: # ./ul build-preferences
- Make your changes to the code
- Run the app
$ ./ul run
- Write unit tests and check if all tests pass using
root@container: # ./ul test
command (preferably from inside the container) - Create a pull request (provide the relevant information suggested by the template)
For GTK-related issues you may want to check out Useful Resources for a Python GTK Developer.
If you have any questions, feel free to ask in a Github issue.
./ul
lists more commands (note that many of them are only useful to the maintainers).
See the LICENSE file for license rights and limitations (GNU GPL v3.0).