summaryrefslogtreecommitdiffstats
path: root/releasenotes/1.5.0/release-1.5.0.markdown
blob: 13c9821aa9add618c2242811f43841459430bda3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# V1.5.0: The Hoff uses it.

After the large previous release, we are hopefully back to more regular smaller releases.
This release is focused on squashing some bugs and hopefully improving the user experience.
But to satisfy people hunkering for new things, we also included a few new features.

Big thanks to [SardemFF7](https://www.sardemff7.net/), without his help and contributions this release would not have been possible.


## New features

### Specify matching field

What field rofi should match on the drun view has been a source of long discussions. Some people only want to match the
name, others want to include the field with the tooltip text. In this release you can now set what fields are used for
matching for both the drun as window browser.

`-drun-match-fields` *field1*,*field2*,...

When using drun, match only with the specified Desktop entry fields.
The different fields are:

* **name**: the application's name
* **generic**: the application's generic name
* **exec**: the application's  executable
* **categories**: the application's categories
* **comment**: the application comment
* **all**: all of the above

    Default: *name,generic,exec,categories*

`-window-match-fields` *field1*,*field2*,...

When using window mode, match only with the specified fields.
The different fields are:

* **title**: window's title
* **class**: window's class
* **role**: window's role
* **name**: window's name
* **desktop**: window's current desktop
* **all**: all of the above

Default: *all*

### Pass extra properties in script mode

As a first step in improving script mode, support for passing properties where added.
You can now, from the script, set the `prompt`, a `message`, if the row contain `markup` and `active`, `urgent`.

For example to set the prompt from a bash mode script:

```bash
echo -en "\x00prompt\x1ftesting\n"
```

Or to mark the first 4 rows urgent and add message:
```bash
echo -en "\x00urgent\x1f0-3\n"
echo -en "\0message\x1fSpecial <b>bold</b> message\n"
```

The `urgent` and `active` syntax is identical to the dmenu command-line argument.

### Negated matching

The matching engine has been extended so, part of, queries can be negated. Searching for `deconz -sh` will list all
fields that match `deconz` but do not contain `sh`.

![match](rofi-match.png)

![match negated](rofi-neg-match.png)

### Hashtag rofi?

We have updated the theme format so that the '#' prefix before the element name is now optional.
Beside being unneeded, it made the multi-selector look weird.

Example:

```css
entry,prompt {
    background-color: DarkRed;
    text-color:       White;
}
```

## Backward incompatible changes

### Mouse bindings

Mouse button and scroll bindings are now separated, and names have changed.

For the 3 base buttons:

- `Mouse1` is now `MousePrimary`
- `Mouse2` is now `MouseMiddle`
- `Mouse3` is `MouseSecondary`

For the scroll wheel:

- `Mouse4` is `ScrollUp`
- `Mouse5` is `ScrollDown`
- `Mouse6` is `ScrollLeft`
- `Mouse7` is `ScrollRight`

For extra buttons:

- `Mouse8` is `MouseBack`
- `Mouse9` is `MouseForward`
- Above 10, you have to use the platform-specific `MouseExtra<number>` (replace `<number>`). Under X11, these buttons will go on from 10.

## Bug fixes

### Prompt colon

This is a controversial one, being the cause of heated issues in the past. The prompt string of rofi is now left
unmodified. Themes, like the default theme, can re-add the colon if desired.

```css
inputbar {
    children:   [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
textbox-prompt-colon {
    expand:     false;
    str:        ":";
    margin:     0px 0.3em 0em 0em ;
}
```

Results in:

![rofi colon](rofi-colon.png)

### History size

On frequent request, you can now tweak the size of the history each modi keeps. While not recommended to change as it
can cause performance issues, this allows power users to tweak it to their liking.

```
rofi.max-history-size: 500
```

## Full Changelog
 - Rofi 1.4.2 doesn't capture ←, ↑, →, ↓ binding to keys to work in combination with Mode_switch (#744)
 - Add konsole to list of sensible terminals. (#739)
 - Allow drun to filter based on comment field. (#733)
 - Add prompt widget to default theme.
 - Add manpage for rofi-theme-selector.
 - Dump theme without # prefix and separator .
 - Fix issue with xnomad and -4 placing. (#683)
 - DRun obey OnlyShowIn and NotShowIn properties.
 - Store default theme in rofi binary using GResources.
 - Add extra margin between prompt and entry.
 - Remove colon from prompt. (#637)
 - Add support for passing extra properties in script mode.
 - Better error message on invalid argb syntax.
 - Fix default theme border.
 - Make '#' in the parser optional.
 - Update themes.
 - Add -drun/window-match-fields option (thx to Askrenteam) for drun/window menu. (#690/#656)
 - Implement negated match. (#665)
 - Fix parsing of non-existing fields. (#700)
 - rofi-theme-selector fixes.
 - Fix spelling error (thx to jmkjaer)
 - Fix test on i686/arm. (#692)
 - Fix error in theme manpage. (#686)
 - Allow history size to be specified. (#613)
 - Fix drun history implementation. (#579)
 - Add gentoo install instruction. (#685)