Commit graph

850 commits

Author SHA1 Message Date
Dave Davenport
534aa6ad54 Rename Dialogs -> Modes
Try to fix some of old syntax.
2022-02-23 23:18:53 +01:00
Dave Davenport
4e06bff706 Change modi -> modes
issues: #1599
2022-02-23 22:42:56 +01:00
Dave Davenport
eff3b86c94 Bump copyright date. 2022-02-07 23:17:15 +01:00
Dave Davenport
a34c13bdb2 [Theme] Validate variables in theme and throw error on fail.
issue: #1580
2022-01-31 23:19:51 +01:00
Dave Davenport
85c6545a43
Merge List and Array type into one. (#1572)
* Merge list and array into one.

* [Lexer] Only use string without " in list

* Some cleanups

* Cleanups based on feedback.
2022-01-25 09:57:59 +01:00
Jakub Jirutka
6e3feee179
Add support for setting tabs stops on textboxes (#1571)
* Document new array of values type

* Move WIDGET_PADDING_INIT from widget.c to widget-internal.h

* Refactor WIDGET_PADDING_INIT macro

* Add support for setting tab stops on textbox

This allows to emulate a multi-column layout inside the text boxes.

The implementation is kinda hackish due to the limitations of the theme
parser. The only property type that can contain multiple distance values
is Padding, so I used that.

* Use new array syntax for tab-stops
2022-01-24 22:20:41 +01:00
Dave Davenport
4bef336b9c What is in a name. 2022-01-24 20:33:19 +01:00
Dave Davenport
55b043bcfa [Theme] Add set type for testing.
Allows a set of properties, f.e.:
test: { "aap", "noot", "mies"}

or

tabs: { 1px, 10px, 1px, 3em }

Issue: #1571
2022-01-24 19:43:08 +01:00
Jakub Jirutka
50b85ba954
Add -combi-display-format (#1570)
Implement a new option -combi-display-format (analogous to
-drun-display-format) that allows to change position appearance of
the mode name in the combi entries.
2022-01-22 22:03:10 +01:00
Dave Davenport
b6ce41825c [#1569] Add initial round,floor,ceil function
a round b
 rounds a to the closest multiple off b

 a ceil b
 ceil a to the multiple off b

 a floor b
 floor a to the multiple off b

 Completely untested.
2022-01-18 11:01:56 +01:00
Dave Davenport
e563cd3ad0 Add -replace option
Issue: #568
2021-12-22 21:03:54 +01:00
Dave Davenport
0424dc6f2e Small rename switcher --> mode. 2021-12-22 20:33:22 +01:00
Dave Davenport
f0500a5a0e [Help] Print out the parsed config/theme files. 2021-12-12 20:56:32 +01:00
Dave Davenport
dac09b8728 Cleanups based on cppcheck. 2021-12-01 13:14:36 +01:00
Quentin Glidic
bde8175d39
gitmodules: Update libnkutils
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2021-10-28 06:33:12 +00:00
Dave Davenport
c10ee955bd
#1437 - Fix sizing logic for widgets and textboxes. (#1444)
* [I1437] Textbox make get_desired_width depend on width.

Should fix some weird sizing issues on creation of widgest.


* [i1437] [View] Do the sizing based on the desired window width.

issue: #1437

* [i1437] Fix header documentation.
2021-09-07 19:40:07 +02:00
Dave Davenport
f4e5fd328a Revert "[I1437] Textbox make get_desired_width depend on width."
This reverts commit 154e03efc1.
2021-09-06 22:47:35 +02:00
Dave Davenport
154e03efc1 [I1437] Textbox make get_desired_width depend on width.
Should fix some weird sizing issues on creation of widgest.

Issue: #1437
2021-09-06 22:36:21 +02:00
Dave Davenport
4d0eaf1463
[Window] Issue 1406 fix the broken close-on-delete (#1421)
* [1406] Add watcher for new/removed windows and reload based on that.
* [1406] Add a small timeout before reloading to avoid reloading several times in a row.
* [1406] close rofi if you receive a destroy window on rofi.
2021-09-03 13:53:43 +02:00
Dave Davenport
cb12e6fc05 [main] tiny code tweaks. 2021-09-02 16:38:34 +02:00
TonCherAmi
ceee9d672a
[CI] Port CI to github actions. (#1374)
* [CI] Port CI to github actions.

* [Doc] Fix doxygen comment block.
2021-08-20 14:54:34 +02:00
Dave Davenport
e60e6bab2a [Doc] Try to fix some of the doxygen coverage warnings. 2021-08-20 11:37:03 +02:00
Dave Davenport
8d0dd01997 Cleanup, update header files using clang-tidy. 2021-08-19 13:34:01 +02:00
Dave Davenport
954fc728b2 [Cleanup] Using clang-tidy 2021-08-18 01:16:45 +02:00
Dave Davenport
47f26ca2f1 [IconFetcher] Look for images in theme directories. 2021-08-17 11:05:03 +02:00
a1346054
c62137f8ab
Simple maintenance improvements (#1370)
* rofi moved to libera.chat

* unify some theme headers and whitespace

* consistently use the same hashbang for bash

* improve obsolete way of testing equality

see https://github.com/koalaman/shellcheck/wiki/SC2268 for explanation

* use consistent function definitions in bash scripts

* remove duplicated author and fix whitespace

* quote all variables in scripts

fixes many warnings identified through shellcheck

* fix whitespace in scripts

* fix whitespace in non-source files

* fix spelling in non-source files

* fix whitespace and indentation in source files

* fix spelling in source files
2021-08-14 13:03:16 +02:00
Dave Davenport
9f71c4f78d [Config] Load default config file in at startup
* load via resources doc/default_configuration.rasi
* print the configuration options on dump-config
2021-07-10 00:25:20 +02:00
Dave Davenport
c9701b2a91 [View] Add support for user timeout + keybinding action
Configuration looks like:

```css
configuration {
  timeout {
      delay:  15;
      action: "kb-cancel";
  }
}
```

Both delay and action need to be set.
Action can be any of the keybindings as shown in `rofi -show keys`.

(-timeout-delay 15 -timeout-action "kb-cancel"  on commandline.).

Fixes: #1066
2021-06-30 13:29:54 +02:00
Dave Davenport
067a3b82ad [Config system] Add a bit of a hack to auto-add commandline options.
For new config system.
2021-06-27 12:21:26 +02:00
TonCherAmi
0ff0866be7
[FileBrowser] Add sorting-method. (#1340)
* [FileBrowser] Add sorting-method.

* [FileBrowser] Convert -file-browser-directory to new config format.
2021-06-27 09:28:21 +02:00
Dave Davenport
f38f832405 [Widget] Fix default scaling. 2021-06-15 19:14:01 +02:00
Dave Davenport
6e2584ffc8 [Doc] Add some header documentation. 2021-06-15 17:22:39 +02:00
Dave Davenport
4c1a74e15e [Widget] Add scaling option to background-image. 2021-06-15 17:18:34 +02:00
Markus Gräb
4fd4fb89af
New keybinding Ctrl-Shift-Enter (#874)
This function combines accept-custom with the functionality to start
the command in terminal

Co-authored-by: Markus Gräb <m_graeb11@cs.uni-kl.de>
Co-authored-by: Dave Davenport <DaveDavenport@users.noreply.github.com>
2021-06-15 14:43:30 +02:00
Dave Davenport
0f21541327 [Configuration] Add start of more 'theme' based configuration.
Nested CSS blocks in configuration {} are parsed into
rofi_configuration.
2021-06-14 19:29:05 +02:00
Dave Davenport
828aaa231a [Theme] Add angle support to linear-gradient. 2021-06-14 16:04:15 +02:00
Dave Davenport
5c5428bd11 [Theme] Add direction support to linear-gradient. 2021-06-14 15:14:41 +02:00
Dave Davenport
7cf0385681 [Theme] Support multiple stops in linear-gradient
* Fix anchor dumping
* Fix image dumping
2021-06-13 22:57:35 +02:00
Dave Davenport
beccfe4178 [Widget] with background image, draw background-color first. 2021-06-13 21:41:31 +02:00
Dave Davenport
a0b8a05315 [Widget] Change scaling of background-image 2021-06-13 20:59:28 +02:00
Dave Davenport
2c325b3f09 [Widget] Add initial support for background-image.
* Supports url("path") and linear-gradient(start,stop).
2021-06-13 20:50:25 +02:00
Dave Davenport
9d85bcb914 Update copyright header. 2021-06-09 14:50:39 +02:00
Dave Davenport
0726ed9f33 [Config] Remove fake-transparency/background option.
* fake-transparency
* fake-background
2021-06-08 23:07:52 +02:00
Dave Davenport
e0a3067f69 [Config] Remove old unused options. 2021-06-08 23:04:19 +02:00
Dave Davenport
dc46457f71 Remove deprecated theme options
* color_window
* color_urgent
* color_active
* color_normal
2021-06-08 22:44:15 +02:00
Dave Davenport
1a9dac80a9 Remove some deprecated options.
* lines
 * columns
 * width
2021-06-08 22:33:23 +02:00
Dave Davenport
b478de3d7d Remove deprecated option, fix typo in manpage. 2021-06-08 22:02:29 +02:00
Dave Davenport
cb250fa73a Add fallback icon option. 2021-06-08 20:21:28 +02:00
Dave Davenport
0db6412ae2 [Doc,Config] Remove line-margin|padding and fix doc mistake.
*Deprecated* option.
2021-06-08 12:17:59 +02:00
TonCherAmi
c1244b066f
[FileBrowser] Allow setting startup directory (#1325) 2021-06-05 14:22:48 +02:00
Dave Davenport
2eefd9b191 [Run] Allow (Ctrl-L) to complete files using file-browser.
Merge old setup from #1116

issue: #1116  #659
2021-06-01 13:14:45 +02:00
Dave Davenport
3598ebe603 [Config] Quick hackish workaround for handling dynamic options from config file
Quick hackish workaround for having options that are added *after*
config file is parsed.
This needs to be replaced once the config system is revamped.

Fixes: #905
2021-06-01 12:17:59 +02:00
Dave Davenport
3b297ee80d Re-indent the code using indenter. 2021-06-01 10:44:23 +02:00
Dave Davenport
5a7df38ccd [Configuration] Remove old configuration format. 2021-06-01 10:43:25 +02:00
Dave Davenport
f14c5c2ada [X11Helper] Add exception for bspwm window placing above window.
fixes: #1169
2021-05-31 14:02:08 +02:00
unisgn
c3e70d4e1a
add prefix matching method feature (#1237)
* add prefix matching method feature

* Update helper.c

* prefix matching regex memory leak fix

* prefix matching regex memory leak fix

Co-authored-by: francis <oxfrancis@outlook.com>
2021-05-29 13:39:31 +02:00
TonCherAmi
dc28a97437
Add cursor property (#1313)
* Change mouse cursor on widget hover

Currently only listview element and editbox are supported.

* Add cursor property
2021-05-23 00:17:27 +02:00
Dave Davenport
fa96f32846 More doxygen cleanups. (1 warning left I don't understand) 2021-05-05 22:39:03 +02:00
Dave Davenport
f69f8fcb7b Cleanup code documentation. 2021-05-05 21:53:29 +02:00
Dave Davenport
37044dc27e Remove -dump-xresources option update manpage. 2021-05-04 20:44:38 +02:00
Dave Davenport
2516173a3d Remove parsing of xresource config settings via Xserver.
This option is deprecated.
2021-05-04 19:50:23 +02:00
Dave Davenport
67eda1a776 Remove -fullscreen option, deprecated by new theme format.
Use 'window {fullscreen: true;}' instead.
2021-05-02 20:15:58 +02:00
Dave Davenport
d539e6478a Remove -show-match option, deprecated.
Use 'element {highlight: none;}' in theme/configuration to reproduce it.
2021-05-02 20:01:03 +02:00
Dave Davenport
413eddd825 [hover-select] Change option to gboolean. 2021-04-13 11:49:42 +02:00
rahulaggarwal965
e304dbc883
Added -hover-select option that automatically selects the entry under the cursor (#1234) 2021-04-13 11:45:20 +02:00
Dave Davenport
318a6d40ca Add 'steal-focus' option instead of 'restore-focus' option.
Disable steal-focus by default.

Fixes: #1275
2021-04-13 11:35:34 +02:00
Dave Davenport
750dbad729 Add [no]focus restore option. 2021-03-27 16:28:27 +01:00
Dave Davenport
e9cf6fb2b0 Improve blur algorithm. 2021-02-16 01:46:04 +01:00
Dave Davenport
606d9d12bf Test blurring of background image (screenshot/background/image).
window {
    blur: {radius};
}

Does not work on true transparency.
2021-02-15 23:30:58 +01:00
Dave Davenport
653f023b21 Small fix in log domain container 2021-02-03 22:03:29 +01:00
Dave Davenport
01935064d8 Add -rasi-validate option.
Issue: #1260
2021-01-26 17:27:32 +01:00
Quentin Glidic
11b677b521
xcb: Nicer focus stealing in O-R mode
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2020-12-13 15:56:37 +01:00
Quentin Glidic
627bd43510
xcb: Ask for focus where possible
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2020-11-27 07:26:16 +01:00
Dave Davenport
7061eb21ae Indent round. 2020-11-03 23:57:02 +01:00
Dave Davenport
6e98290335 [RofiIconFetcher] Do image checking in icon fetcher, use nkutils-enum 2020-10-18 22:01:49 +02:00
Dave Davenport
eea8897501 Fix some of the documentation 2020-10-12 21:39:36 +02:00
Dave Davenport
519d4d2818 [FileBrowser] Add file browser modi. 2020-10-12 20:17:21 +02:00
Dave Davenport
b4bbce4af5 [Helper] Add -normalize-match option.
Decomposes string and remove accent characters before matching.
This makes o match ö, é match e and more.
It is not a perfect implementation but works.
Currently disables the match highlighting.

Fixes: #1119
2020-09-30 21:56:37 +02:00
Dave Davenport
7c331b130b [Calc] Add min/max operator support to calc()
Fixes: #1172
2020-09-14 20:34:39 +02:00
Dave Davenport
011908e1ff
issue 1187: If error on launching application, show error message and return to list` (#1193)
* Show error message, then possibly pop back to main window.

Fix drun/run dialog to use this for command execution.

Issue #1187

* [Combi] When no line selected, handle using the first entry.

* [Window] Add execute on invalid input to window dialog.

* Update view.h doxygen docu

* Update manpage with running application changes.
2020-09-13 21:56:25 +02:00
Dave Davenport
31fc5c9d35 [Textbox] Try to fix estimated font height.
This was on newer pango 1 pixel off with actual font height.
This casues drawing issues.

Fixes: #1190
2020-09-13 10:24:59 +02:00
Dave Davenport
6a38f88e98 Split MENU_QUICK_SWITCH into MENU_CUSTOM_COMMAND/QUICK_SWITCH 2020-09-08 18:24:36 +02:00
Dave Davenport
30735791b4 Run indenter. 2020-08-28 16:41:59 +02:00
Mike Dalessio
5bec191d2e
Follow Type=Link standard desktop entries with drun (#1168)
* [DRun] Introduce data structure changes for Link desktop entries

From the [freedesktop spec][1]:

> This specification defines 3 types of desktop entries:
> Application (type 1), Link (type 2) and Directory (type 3). To allow
> the addition of new types in the future, implementations should
> ignore desktop entries with an unknown type.

This commit adds an enum to capture these types, and adds `type` to
DRunModeEntry.

  [1]: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

part of #1166

* [DRun] Sanity check Link entries and capture the URL

Note that we're introducing some logic that will differ depending on
the Desktop entry type (Application or Link). The logic is:

- if entry is Application type,
  - then Exec is required
  - and the value is saved in .exec
  - and drun_mode_result calls exec_cmd_entry
- if entry is Link type,
  - then URL is required (but is not saved in the DRunModeEntry)
  - and drun_mode_result calls new function launch_link_entry

part of #1166

* [DRun] Launch desktop links via xdg-open

Note that this introduces a new dependency on xdg-open, which may not
be installed. In that case, rofi will display an error dialog
with something like:

  "Failed to execute child process xdg-open (No such file or directory)"

which hopefully is explanatory enough for folks.

part of #1166

* Make drun options comments consistent and add a bit of whitespace

* [DRun] new config option drun-url-launcher for opening links

In previous commit, this was a hard-coded string.

part of #1166
2020-08-26 21:10:04 +02:00
nick87720z
57ee69367d
micro-refactoring: widget.c (#1148)
* widget.c: microrefactoring

* widget.c: join enable/disable functions
2020-07-11 14:48:58 +02:00
nick87720z
fb2ba8ada3
Millimeter support for distance (#1144) 2020-06-09 22:19:43 +02:00
Dave Davenport
1342b733af [Script] Add 'info' row option, that gets passed to ROFI_INFO environment. 2020-05-24 19:10:49 +02:00
Jason Kim
a4c5a92199
Support rasi config character type options (#1131)
* style: remove extra space

* feat: handle xrm_Char in config parser

Handle the `xrm_Char` case in the (rasi theme) config file parser.  This
should properly handle configuration like

```
matching-negate-char: "\0";
```

and

```
matching-negate-char: "-";
```

* refactor: don't handle mem in xrm_Char case

`mem` shouldn't ever be set when `XrmOption` is `type` `xrm_Char`.
Therefore, there is no need to check it and free it.  Remove that logic.

* refactor: further condense logic

* style: s/Everythin/Everything/

* style: s/parsing an section/parsing a section/

...and missing period.

* feat(lexer): add CHAR token

Add a `CHAR` token that takes things of the form `'<char>'` or some
specific backslash escape sequences like `'\''` and `'\0'`.  For now,
save it as a `T_STRING`.

* refactor: define char property type

* feat(parser): add cval and T_CHAR

* refactor: use char property for xrm_Char

Instead of using strings for property elements of type char, use
characters, which were recently added to the grammar.
2020-05-17 14:50:38 +02:00
Dave Davenport
f2b6cf6b3c [Widget] Propaget set_state to children. 2020-05-13 16:25:12 +02:00
Dave Davenport
2ccc65ff52 Add some ui benchmark code 2020-05-12 10:40:50 +02:00
Dave Davenport
151547a99e
[Themes] add calc() support to distance in theme format. (#1105)
* Initial test to allow math in distances.

Support + and -
Needs spaces around + and -.

* [THEME] Fix printing theme with math in distance.

* [Theme] use calc() syntax.

* [Theme] Add * and /  to calc().

* [Theme] Fix the precedense ordering in parsing. Also avoid making copies.

* [Theme] Don't print unneeded ().

* [Theme] Add modulo to calc.
2020-04-24 19:54:08 +02:00
Dave Davenport
3e64e4422d [DMenu] Implement -keep-right
Fixes: #1089
2020-04-16 23:31:43 +02:00
Dave Davenport
f63da72ea6 [Dmenu] Fix possible crash.
Don't pass empty string.

Issue: #1083
2020-04-06 23:31:45 +02:00
Dave Davenport
7dcc3f450c Add option to make entry non-selectable in dmenu/script.
Fixes: #1024
2020-02-02 14:21:29 +01:00
Dave Davenport
b169289996 Indent all the code. 2020-02-02 13:56:37 +01:00
Jeff
83c2e467d5
Add support for additional field on script entries meta (#1052)
* Add test for hidden meta data in script mode

The purpose of this is to provide support for "hidden" fields on a
script item that work for search but don't get displayed.  This is
mostly to provide something similar to the optional display (but still
matchable) fields in drun like "categories" or "keywords".  This also
enables the choice to display unicode icons but still allow for
searching for the keywords without needing to print them.

* Ignore the output file from test runs

* Add support for the "meta" field on script entries

This fields provides a matchable but unprinted string for entries in a
script mode list match.  This means you can use one thing but provide
multiple options that can match that item without polluting the list
view or make confusing output.

* Add new test to test suite file
2020-02-01 13:49:11 +01:00
Dave Davenport
a35a898816 [DRun] Add desktop cache
Add a desktop cache file. Usable for system with slow filesystems.

* -drun-use-desktop-cache
* -drun-reload-desktop-cache

Fixes: #1040
2020-01-26 12:47:04 +01:00
Dave Davenport
b44b5e8d16 Add -upgrade-config option.
* Print warning when old-style configuration is used.
* Add -upgrade-config option.
2020-01-02 12:00:44 +01:00
Dave Davenport
b03edc5cf3 Update copyright dates. 2020-01-01 12:23:12 +01:00
Dave Davenport
f3bb043df0 [Textbox] Add placeholder.
Fixes: #1020
2019-12-26 14:24:10 +01:00