2017-08-03 10:48:07 -04:00
|
|
|
# V1.4.0: I reject your truth and trumpstitute my own
|
|
|
|
|
|
|
|
> This release contains some major changes. One of them being a new theme engine. The migration from older versions
|
2017-08-28 02:05:44 -04:00
|
|
|
> to this version might not go flawless.
|
2017-08-03 10:48:07 -04:00
|
|
|
|
|
|
|
With more then 700 commits since the last version, this is one of the biggest releases so far.
|
|
|
|
In this version we used the groundwork laid in v1.3.0 and went completely nuts. This release should satisfy the die-hard
|
|
|
|
desktop [ricers](https://www.reddit.com/r/unixporn/) with a brand new, CSS based, theme engine.
|
|
|
|
|
|
|
|
The great work of [SardemFF7](https://github.com/SardemFF7/) simplified the code base and improved the key and mouse
|
|
|
|
handling. It also made it possible to add a often requested feature of icons (correctly using the icon-theme). A feature
|
|
|
|
I never expected to be added.
|
|
|
|
|
2017-08-28 02:05:44 -04:00
|
|
|
A last big addition and still in beta, is support for plugins. Allowing the addition of some weird/fancy features.
|
|
|
|
Currently two plugins are available, [blezz](https://gitcrate.org/qtools/rofi-blezz) a quick launch menu with it own
|
|
|
|
menu definition and [top](https://gitcrate.org/qtools/rofi-top/) displaying running processes.
|
2017-08-03 10:48:07 -04:00
|
|
|
|
|
|
|
Beside these major changes, this release includes a lot of bug-fixes and small improvements. See the bottom of this
|
|
|
|
release notes for the full list of changes.
|
|
|
|
|
2017-08-28 02:05:44 -04:00
|
|
|
|
2017-08-03 10:48:07 -04:00
|
|
|
## CSS Like Theme engine
|
|
|
|
|
2017-08-28 02:05:44 -04:00
|
|
|
The biggest new feature of this release is the theme engine. Building on the changes made in v1.3.0 we implemented a new
|
|
|
|
theme engine and it has a completely new theme format modelled after CSS. We decided to model the theme format after
|
|
|
|
CSS because many people are familiar with it and it seems to be a reasonable fit. While the themes are a lot more
|
|
|
|
verbose now, it does allow for a lot of extra customizations.
|
|
|
|
|
|
|
|
It is now possible to theme each widget in rofi independently:
|
2017-08-03 10:48:07 -04:00
|
|
|
|
2017-08-19 10:30:13 -04:00
|
|
|
### Colors
|
2017-08-03 10:48:07 -04:00
|
|
|
|
2017-08-28 02:05:44 -04:00
|
|
|
You can now set the color on each widget independent in most of the CSS supported color formats (hsl, cmyk, rgb, etc.)
|
|
|
|
and each color can have a transparency. Each widget has three colors: background, foreground and text.
|
2017-08-19 10:30:13 -04:00
|
|
|
|
2017-09-02 16:31:29 -04:00
|
|
|
![rainbox](rofi-rainbow.png)
|
2017-08-19 10:30:13 -04:00
|
|
|
|
|
|
|
### Borders
|
|
|
|
|
|
|
|
On every widget we can now configure a border for each of the four sides, the color of the border, the style of the
|
2017-08-28 02:05:44 -04:00
|
|
|
border (solid or dashed0) and the radius of the corners can be set.
|
2017-08-19 10:30:13 -04:00
|
|
|
|
2017-09-02 16:44:56 -04:00
|
|
|
![border1](rofi-border.png)
|
2017-08-19 10:30:13 -04:00
|
|
|
|
|
|
|
This combined with (fake) transparency can make for a very nice looking, rounded rofi experience.
|
|
|
|
|
2017-09-02 16:44:56 -04:00
|
|
|
![border2](rofi-border-transp.png)
|
2017-08-19 10:30:13 -04:00
|
|
|
|
|
|
|
### Fonts
|
|
|
|
|
|
|
|
An often made request was support for different fonts for the entry box and the list. With the new theme, it is possible
|
|
|
|
to change the font and size of all widgets.
|
|
|
|
|
2017-09-02 17:03:56 -04:00
|
|
|
![fonts](rofi-fonts.png)
|
2017-08-19 10:30:13 -04:00
|
|
|
|
|
|
|
### Flexible layout
|
|
|
|
|
|
|
|
To top all these changes, as an advanced feature the whole layout of the window can be changed. Making it possible to
|
|
|
|
mimic the original dmenu view, or make it appear as a minimal context menu.
|
|
|
|
|
2017-09-02 17:03:56 -04:00
|
|
|
![dmenu](rofi-dmenu.png)
|
2017-08-03 10:48:07 -04:00
|
|
|
|
|
|
|
## Icons
|
|
|
|
|
2017-08-19 10:30:13 -04:00
|
|
|
Another often made request, I never expected to be implemented, was icon support. But with the help of SardemFF7 an
|
|
|
|
implementation was possible that correctly follows the XDG icon specification and does not negatively impact the
|
|
|
|
performance.
|
|
|
|
|
2017-09-02 16:34:01 -04:00
|
|
|
|
|
|
|
![icons](rofi-icons.png)
|
2017-08-19 10:30:13 -04:00
|
|
|
|
2017-08-03 10:48:07 -04:00
|
|
|
|
|
|
|
## More flexible key and mouse bindings
|
|
|
|
|
2017-09-03 06:32:01 -04:00
|
|
|
Thanks to the great work of SardemFF7 you can now configure how the mouse
|
|
|
|
behave and bind modifier keys. It also improves on error messages. It will now
|
|
|
|
detect duplicate bindings.
|
|
|
|
|
|
|
|
For example to select an entry on single click, instead of double click:
|
|
|
|
|
|
|
|
```
|
|
|
|
rofi -show run -me-select-entry '' -me-accept-entry 'Mouse1'
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2017-08-03 10:48:07 -04:00
|
|
|
## Fuzzy Matching
|
|
|
|
|
2017-09-03 06:32:01 -04:00
|
|
|
With thanks to Fangrui Song, the `fuzzy` matcher will now use a ranking similar to `fzf` to sort the results.
|
|
|
|
This should hopefully to improve the results, something a lot of users will appreciate.
|
|
|
|
|
|
|
|
Without:
|
|
|
|
|
|
|
|
![rofi no fzf](rofi-no-fzf.png)
|
|
|
|
|
|
|
|
With:
|
|
|
|
|
|
|
|
![rofi fzf](rofi-fzf.png)
|
|
|
|
|
|
|
|
|
2017-08-03 10:48:07 -04:00
|
|
|
## Initial Plugin support
|
|
|
|
|
2017-09-03 06:32:01 -04:00
|
|
|
It is now possible to add custom mode via C plugins. This way more interactive modi can be added to rofi.
|
|
|
|
For example it is possible to have `top` (display linux processes) shown:
|
|
|
|
|
|
|
|
![rofi top](rofi-top.png)
|
|
|
|
|
|
|
|
See [here](https://gitcrate.org/qtools/rofi-top).
|
2017-08-03 10:48:07 -04:00
|
|
|
|
2017-08-28 02:05:44 -04:00
|
|
|
## Configuration File
|
|
|
|
|
|
|
|
The new theme format can now (as an alpha) feature be used to set rofi's configuration. In the future, when we add
|
|
|
|
wayland support, we want to get rid of the current Xresources (X11) based configuration format.
|
|
|
|
You can see how this would look using: `rofi -dump-config`.
|
|
|
|
|
2017-08-03 10:48:07 -04:00
|
|
|
## Detailed Changelog
|
|
|
|
|
2017-09-03 09:40:49 -04:00
|
|
|
* Improved error messages
|
|
|
|
* Theme parsing.
|
|
|
|
* Keybinding.
|
|
|
|
* invalid commandline options.
|
|
|
|
* etc.
|
|
|
|
* Customizable highlight.
|
|
|
|
* Give up when keyboard is not grabbed in first 5 seconds.
|
|
|
|
* Improved manpage
|
|
|
|
* rofi (1)
|
|
|
|
* rofi-themes (5)
|
|
|
|
* Super-{1..10} hotkey for first 10 rows.
|
|
|
|
* Allow x-align/y-align for textbox.
|
|
|
|
* Support matching bangs on multiple characters in combi mode. (#542)
|
|
|
|
* Set WM_CLASS (#549)
|
|
|
|
* Async pre-read 25 rows for improving user experience. (#550)
|
|
|
|
* Improve handling in floating window manager by always setting window size.
|
|
|
|
* DRun speedup.
|
|
|
|
* Make lazy-grab defualt.
|
|
|
|
* Remove extra layer in textbox. (#553)
|
|
|
|
* Ignore fonts that result in a family name or size 0. (#554)
|
|
|
|
* [Combi] Allow bang to match multiple modes. (#552)
|
|
|
|
* Add detection of window manager and work around quirks.
|
|
|
|
* Support dynamic plugins.
|
2017-08-03 10:48:07 -04:00
|
|
|
* DMENU tty detection.
|
2017-09-03 09:40:49 -04:00
|
|
|
* Support for icons in drun, combi and window mode.
|
2017-08-03 10:48:07 -04:00
|
|
|
* Startup notification of launched application support.
|
|
|
|
* Meson support.
|
|
|
|
* Fuzzy matching with fzf based sorting algorithm.
|
|
|
|
* Auto-detect DPI.
|
2017-09-03 09:40:49 -04:00
|
|
|
* Set cursor at the end of the input field. (#662)
|
|
|
|
* Meson support (thx to SardemFF7).
|
|
|
|
* [Script] parse the command as if it was commandline. (#650)
|
|
|
|
* Don't enable asan by meson. (#642)
|
|
|
|
* Allow text widgets to be added in theme and string to be set.
|
|
|
|
* [Dmenu] Support the -w flag.
|
|
|
|
* Allow window (via window id) to be location for rofi window.
|
|
|
|
* [Dmenu] Allow multi-select mode in `-no-custom` mode.
|