rofi/releasenotes/1.4.0/release-1.4.0.markdown

154 lines
5.7 KiB
Markdown
Raw Normal View History

# 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 06:05:44 +00:00
> to this version might not go flawless.
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 06:05:44 +00: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.
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 06:05:44 +00:00
## CSS Like Theme engine
2017-08-28 06:05:44 +00: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-19 14:30:13 +00:00
### Colors
2017-08-28 06:05:44 +00: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 14:30:13 +00:00
2017-09-02 20:31:29 +00:00
![rainbox](rofi-rainbow.png)
2017-08-19 14:30:13 +00: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 06:05:44 +00:00
border (solid or dashed0) and the radius of the corners can be set.
2017-08-19 14:30:13 +00:00
2017-09-02 20:44:56 +00:00
![border1](rofi-border.png)
2017-08-19 14:30:13 +00:00
This combined with (fake) transparency can make for a very nice looking, rounded rofi experience.
2017-09-02 20:44:56 +00:00
![border2](rofi-border-transp.png)
2017-08-19 14:30:13 +00: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 21:03:56 +00:00
![fonts](rofi-fonts.png)
2017-08-19 14:30:13 +00: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 21:03:56 +00:00
![dmenu](rofi-dmenu.png)
## Icons
2017-08-19 14:30:13 +00: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 20:34:01 +00:00
![icons](rofi-icons.png)
2017-08-19 14:30:13 +00:00
## More flexible key and mouse bindings
2017-09-03 10:32:01 +00: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'
```
## Fuzzy Matching
2017-09-03 10:32:01 +00: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)
## Initial Plugin support
2017-09-03 10:32:01 +00: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-28 06:05:44 +00: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`.
## Detailed Changelog
2017-09-03 13:40:49 +00: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.
* DMENU tty detection.
2017-09-03 13:40:49 +00:00
* Support for icons in drun, combi and window mode.
* Startup notification of launched application support.
* Meson support.
* Fuzzy matching with fzf based sorting algorithm.
* Auto-detect DPI.
2017-09-03 13:40:49 +00: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.