Highly extensible, customizable application launcher and window switcher written in less than 300 lines of Golang and fyne

Overview


logo
golauncher

A go application launcher

license go report card


A simple, highly extensible, customizable application launcher and window switcher written in less than 300 lines of Golang and fyne


screenshot
screenshot

golauncher is a simple, highly extensible application launcher written in Golang. Its written using fyne in less than 300 lines of Go (actually, most of them are just layouts!).

Works on i3, Xfce, GNOME, Plasma, fynedesk, ...

πŸ“’ Features

The basic plugin set adds the following functionalities to golauncher:

  • Window fuzzy search
  • Program fuzzy search
  • Opening URLs
  • Taking screenshot
  • Process kill
  • ..... add yours!

πŸ’» Installation

Download the release, extract the tarball in your system and run make install.

As it does use fyne, does not depend on GTK or either QT installed on your system.

πŸ‘· Build from source

You can also build golauncher locally with go build.

Note: plugins are standalone binaries and not part of golauncher, you need to install them separately, or if you are developing, use --plugin-dir to point to a specific plugin directory.

πŸƒ Run

Once you have golauncher installed you can either run it from the terminal with golauncher, or either start it from the application menu.

GLOBAL OPTIONS:
   --theme value        [$THEME]
   --plugin-dir value   [$PLUGIN_DIR]

Golauncher takes optionally a theme with --theme and an additional directory to scan for plugins (--plugin-dir).

The plugin directory must contains binary prefixed with golauncher- in order to be loaded.

✏️ Extensible

golauncher is extensible from the bottom up, and indeed the core does provide no functionalities besides the GUI displaying.

βš™οΈ Building from source

To build golauncher run:

$ git clone https://github.com/mudler/golauncher
$ cd golauncher
$ make build

Note that plugins are shipping core functionalities of golauncher are built separately, in order to build the default plugin set:

$ make -C plugins/ build

This will build the default set of plugins, to try them out you can either run make test or:

$ mkdir plugin-build
$ make DESTDIR=$PWD/plugin-build -C plugins install
$ golauncher --plugin-dir plugin-build/usr/local/bin/ 

βš™οΈ Writing extensions

Extensions can be written in any language. golauncher reads binaries starting with golauncher- prefix inside $PATH and automatically invokes them while the user is submitting inputs to retrieve results to be displayed to the user. Optionally, golauncher takes a PLUGIN_DIR environment variable (or --plugin-dir as args) to specify an additional plugin directory to use.

All the current functionalities of golauncher are split into separate plugins.

Plugins can be written in any language. For examples on how to extend golauncher, see the plugin folder in this repository and the wiki page

🎨 Themes

Golauncher supports custom themes, you can find examples inside the themes folder.

To run golauncher with a theme, run:

$ THEME=/home/mudler/.golauncher/monokai.yaml golauncher
or
$ golauncher --theme /home/mudler/.golauncher/monokai.yaml

Check also the gallery in the wiki

License

MIT License

Copyright (c) 2022 Ettore Di Giacinto

Issues
Owner
Ettore Di Giacinto
Ettore Di Giacinto
Toontown Offline Launcher rewritten in Go

Toontown Offline Launcher This is an unofficial launcher I built as the current one struggles from downloading issues. Feel free to take a look at the

null 2 Mar 7, 2022
Executor - Fast exec task with go and less mem ops

executor fast exec task with go and less mem ops Why we need executor? Go with g

Te Nguyen 3 Jan 3, 2022
gosignal is expected to be used in minimal window manager configurations

gosignal is expected to be used in minimal window manager configurations. It provides a simple battery monitor , which notifies of battery events. It has a config file where you can configure the notification messages given

pspiagicw 0 Mar 21, 2022
Solver for wordle hard mode - achieves 5 attempts or less 100% of the time

wordier Solver for wordle hard mode - achieves 5 attempts or less 100% of the time Example - Spoiler ➜ wordier git:(master) βœ— go run main.go scamp ➜

Adam Smith 0 Jan 12, 2022
jacobin - A more than minimal JVM written in Go and capable of running Java 11 bytecode.

This overview gives the background on this project, including its aspirations and the features that it supports. The remaining pages discuss the basics of JVM operation and, where applicable, how Jacobin implements the various steps, noting any items that would be of particular interest to JVM cognoscenti.

Andrew Binstock 33 Jun 15, 2022
A minimalist Go PDF writer in 1982 lines. Draws text, images and shapes. Helps understand the PDF format. Used in production for reports.

one-file-pdf - A minimalist PDF generator in <2K lines and 1 file The main idea behind this project was: "How small can I make a PDF generator for it

Ali Bala 441 May 15, 2022
mackerel metric plugin for count lines in log

mackerel metric plugin for count lines in log

Masahiro Nagano 2 Nov 13, 2021
Print lines matching a pattern in repositories using GitHub API

gh-grep Print lines matching a pattern in repositories using GitHub API Usage $ gh grep func.*schema.Schema --include=**/*.go --owner k1LoW --repo tbl

Ken’ichiro Oyama 119 Jun 25, 2022
Build reply markup keyboards easier than ever.

gotgbot keyboard Build reply markup keyboards easier than ever.

null 4 Feb 24, 2022
My Go solution that's faster than 95%

Palindrome-Partitioning My Go solution that's faster than 95% "Given a string s, partition s such that every substring of the partition is a palindrom

Daniel Pickens 0 Nov 15, 2021
Antch, a fast, powerful and extensible web crawling & scraping framework for Go

Antch Antch, inspired by Scrapy. If you're familiar with scrapy, you can quickly get started. Antch is a fast, powerful and extensible web crawling &

null 233 Jun 4, 2022
An simple, easily extensible and concurrent health-check library for Go services

Healthcheck A simple and extensible RESTful Healthcheck API implementation for Go services. Health provides an http.Handlefunc for use as a healthchec

Ether Labs 221 May 24, 2022
An easy to use, extensible health check library for Go applications.

Try browsing the code on Sourcegraph! Go Health Check An easy to use, extensible health check library for Go applications. Table of Contents Example M

Claudemiro 431 May 31, 2022
An application that is developed to generate application by API specification

GO boilerplate is an application that is developed to generate application by API specification and Database schema with the collaboration with opn-generator.

Rafi Mahmud 0 Oct 14, 2021
Person is a simple CRUD application written in go which exposes API endpoint to create the person.

Person Person is a simple CRUD application written in go which exposes API endpoint to create the person. Installation Install docker in your local sy

null 0 Oct 18, 2021
A golang application to mock the billing system

mock-billing-cli A golang application to mock the billing system in super markets Features View all items & items with filter Refill items with admin

Ramya D 0 Jan 13, 2022
An application dedicated to the trivial and boring task of meal planning πŸ“… and generating shoppings list πŸ›’.

An application dedicated to the trivial and boring task of meal planning ?? and generating shoppings list ??.

Anders Wiggers 1 Mar 1, 2022
An example event-driven application using Atmo and NATS

Atmo + NATS Example Project This repo is an example of using Atmo with NATS as a streaming messaging layer. In this example, Atmo connects to NATS and

Connor Hicks 2 Oct 27, 2021
Application to learn and demo Tekton pipelines

Tekton sample Application to learn and demo Tekton pipelines Building $ go test ./pkg/api && go build Running it locally $ podman-compose up --force-r

Sergi Jimenez 1 Oct 28, 2021