rmenu/README.md

111 lines
2.7 KiB
Markdown
Raw Normal View History

2023-08-09 03:52:41 +02:00
RMenu
------
2023-01-04 09:07:57 +01:00
2023-08-21 04:09:23 +02:00
<!--
TODO: improve documentation:
2. explain exchange format and rmenu-build tool
3. include more examples including fullscreen/transparent app-window
-->
2023-01-04 09:07:57 +01:00
Another customizable Application-Launcher written in Rust
2023-08-09 03:52:41 +02:00
### Features
* Blazingly Fast 🔥
* Simple and Easy to Use
* Customizable (Configuration and CSS-Styling)
* Plugin Support
* Dmenu-Like Stdin Menu Generation
### Installation
```bash
$ make install
```
### Usage
View all available options with the builtin help:
2023-08-09 03:52:41 +02:00
```bash
$ rmenu --help
2023-08-09 03:52:41 +02:00
```
RMenu Comes with a few default plugins.
| Name | Description |
| :-------: | ------------------------------------------------------- |
| run | Execute a program in $PATH |
| drun | Run a Configured Free-Desktop Application |
| audio | Select and Set-Default PulseAudio Sink using `pactl` |
| network | Wi-Fi Login/Connection Tool using Network-Manager |
| window | Simple Window Switcher (Currently Only Support Sway) |
| powermenu | Simple Power/Logout Tool (Currently Only Supports Sway) |
Run a plugin by passing the `-r` flag like one of the following:
2023-08-09 03:52:41 +02:00
```bash
$ rmenu -r run
2023-08-09 03:52:41 +02:00
$ rmenu -r drun
$ rmenu -r audio
```
Or even run plugins in combination if you'd like:
```bash
$ rmenu -r run -r drun
2023-08-09 03:52:41 +02:00
```
Custom Menus can also be passed much like Dmenu by passing items via
an input. The schema follows a standard as defined in [rmenu-plugin](./rmenu-plugin)
```bash
$ generate-my-menu.sh > input.json
$ rmenu -i input.json
```
When neither a plugin nor an input are specified, rmenu defaults to
reading from stdin.
```bash
$ generate-my-menu.sh | rmenu
```
### Configuration
Customize RMenu Behavior and Appearal in a [single config](./rmenu/public/config.yaml)
Customize the entire app's appearance with CSS. A few [Example Themes](./themes/)
are available as reference. To try them out use: `rmenu --css <my-css-theme>`
or move the css file to `$HOME/.config/rmenu/style.css`
### Scripting
RMenu plugins and imports communicate using JSON messages defined in `rmenu-plugin`.
Writing JSON in shell is painful, so rmenu provides another cli-tool to help build
messages quickly and easily while still retaining the flexibility of JSON.
After Installing. Use the following command, and look at [other-plugins](./other-plugins)
for example uses.
```
$ rmenu-build --help
```
2023-08-21 04:09:23 +02:00
### Example Screenshots
#### Launchpad
![launchpad](./screenshots/launchpad.png)
#### Nord
![nord](./screenshots/nord.png)
#### Dark
![dark](./screenshots/dark.png)
2023-08-09 03:52:41 +02:00
2023-08-21 04:09:23 +02:00
#### Solarized
![solzarized](./screenshots/solarized.png)
2023-08-21 04:13:12 +02:00
#### PowerMenu
![powermenu](./screenshots/powermenu.png)