Commit graph

768 commits

Author SHA1 Message Date
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
Dave Davenport
c1378e4c60 [View] Add two widgets num-rows/num-filtered-rows
Issue: #1026
2019-11-07 11:49:45 +01:00
Dave Davenport
aeecf34c27 [Window] Add thumbnail of windows as option. 2019-10-17 21:19:19 +02:00
Dave Davenport
8590a7ccf2 [CI] Fixing some more doxygen warnings. 2019-09-30 10:57:23 +02:00
Dave Davenport
0a0556c765 [CI] Update missing documentation. 2019-09-30 10:35:12 +02:00
Dave Davenport
8d9e403659 Update copyright. 2019-09-27 11:58:32 +02:00
Dave Davenport
7c613f6a4c
Issue893: Add support for @media in the theme format. (#1015)
* [Lexer] Add support for @media.

Issue: #893

* [Theme] @media limit to px.

* [Theme@Media] add *{} support.

* [Theme@Media] Add support for monitor-id media.

* [Theme@Media] Code cleanup.

* [Theme@Media] Add min/max-aspect-ratio.

* [Theme@Media] Remove some debug output

Fixes: #893
2019-09-20 15:05:36 +02:00
Dave Davenport
85279323e6 Set window title based on mode name.
For dmenu allow customize with `-window-title`.

Fixes: #969
2019-08-10 12:02:49 +02:00
Dave Davenport
f896146217 [DRUN] Add option to only show desktop files in certain categories
closes: #817
2019-08-09 19:33:23 +02:00
Dave Davenport
618d1396ee
Issue949 (#999)
* [Issue 949] Add initial split of listview row into widget tree.

Allowing better themeing.

* Remove unneeded code from textbox. allow dis. icons.

* Fix typo.

* Fix wrong widget offset in textbox.

* Fix mouse handling

* [ListView] Add 'fixed-columns' boolean option.

* [Listview] Fix inversion of option.

* [ListView] remove commented old code.

* [Textbox] Handle null pointer on desired width.

* [Listview] Fix crasher with fixed_columns and more max elements requested items.

* Add hack to get backwards compatibility for new listview structure.

* Fix the scrollbar test.

* Fix tests for theme update..
2019-08-08 20:02:20 +02:00
Kenneth Ho
be21fbae5d add pythonic rows selection to -a and -u (#985) 2019-07-02 21:27:46 +02:00
Dave Davenport
c4ce4df5e8 Fix more links from DaveDavenport -> davatorium 2019-05-14 11:52:21 +02:00
Dave Davenport
eb0e132bcc
[Timings] Move into new debug system. (#961)
* [Timings] Move into new debug system.

* [Timings] Remove newlines.
2019-05-11 20:57:18 +02:00
Dave Davenport
52c5592a6f [ListView|Textbox] Add user-settable ellipsize mode.
Fixes: #917
2019-05-04 11:04:54 +02:00
Dave Davenport
29c83b3623 [DmenuScript] Add missing header file. 2019-04-03 12:18:50 +02:00
Dave Davenport
6fffe427c4 Change sidebar in theme to mode-switcher.
Fixes: #930
2019-03-19 22:45:10 +01:00
Dave Davenport
52204a527c Add option to change location of cache dir.
-cache-dir

Fixes: #769
2019-02-08 20:43:53 +01:00
Dave Davenport
40da1b25e2 [Theme3.0] Change reference to use the CSS like var() syntax.
Supports defaults var(name, default); var(name);
Where default can be another property.
(https://www.w3schools.com/css/css3_variables.asp)

This deprecates the @name syntax.

Fixes: #876
2019-01-29 17:56:45 +01:00
Yoav
238648b5b2 Add history ignore (#846) 2018-12-31 00:35:00 +01:00
Dave Davenport
6b96ae123b Add an option to change the matching negation character.
Fixes: #877
2018-12-14 16:58:26 +01:00
Dave Davenport
76ceac1f20 [DRUN] Add drun-display-format. 2018-10-17 23:02:50 +02:00
Dave Davenport
e8edc42f9d [Helper] Quick and dirty string replacer with optional keys block.
First (quick and dirty) version of a more advanced key replacer where
sets of text are only outputted if the contained key matches.
2018-10-16 21:01:45 +02:00
Lukas Alexandre
6830e5d117 Fixing typos in docs and error messages, "numger" -> "number" (#867) 2018-10-14 16:57:52 +02:00
Dave Davenport
859a9c79d6 Indent the code. 2018-08-08 15:55:13 +02:00
Dave Davenport
4538303be6 [DRUN] Add option to show actions in drun.
Fixes: #836
2018-07-28 11:12:11 +02:00
Dave Davenport
e4d823774c Export icon fetcher header, remove nxd from icon-fetcher header. 2018-07-14 18:05:34 +02:00
Dave Davenport
bdb6abef4a
Sorting cleanup (#816)
* Add `-sorting-method` option remove weird -sort-levenshtein.

* Fix test for updated cmdline options.

* Update manpage
2018-06-13 11:57:23 +02:00
Dave Davenport
d2576e9f1f More source code documentation updates 2018-06-12 12:31:34 +02:00
Dave Davenport
32b45c2d10 Fix documentation
* theme
* view
* textbox
2018-06-12 12:16:33 +02:00
Dave Davenport
b8592f8b99 Documentation updates.
* theme,
* view,
* textbox
* helper
2018-06-12 12:00:00 +02:00
Dave Davenport
c856c1a8ab [Widget::Icon] Fix doxygen documentation in header file. 2018-06-12 11:28:31 +02:00
Dave Davenport
75811fd5a5 [IconFetcher] Add some doxygen documentation 2018-06-12 11:10:46 +02:00
Dave Davenport
53ccfd37ce Fix documentation error in icon widget header file. 2018-06-12 10:24:18 +02:00
Dave Davenport
0633bc9dad Remove (unused) widget ref counting. 2018-06-12 10:08:29 +02:00
Dave Davenport
d4cfb5bb4b Fix crash in error dialog and tests. 2018-06-12 09:46:24 +02:00
Dave Davenport
c96ebfc2de Re-add icon-theme option. 2018-06-09 22:17:32 +02:00
Dave Davenport
441c511296
Add an generic icon fetcher that can be used by any widget and re-uses the main threadpool.
Add an generic icon fetcher that can be used by any widget and re-uses the main threadpool.

* Make threadpool more generic usable.
* Add generic icon fetcher, that caches icons.
* Make DRUN use this fetcher.
* Add icon widget.

#809
2018-06-09 19:13:57 +02:00
Sven-Hendrik Haase
a4ca32fdc1 Fix typo (#804) 2018-05-14 15:46:34 +02:00
Edward Betts
79adae77d7 Correct spelling mistakes. (#722) 2017-11-23 18:41:52 +01:00
Dave Davenport
54c45f8f5f Fix __cplusplus guard. Move after include 2017-11-21 16:04:59 +01:00
Dave Davenport
35304e705d [Plugin] Add C++ #ifdefs to public header files. 2017-11-20 22:50:58 +01:00
Dave Davenport
4ac428bace [Combi] Add hide prefix option. 2017-11-07 20:03:42 +01:00
Dave Davenport
316de7ebeb Remove default-theme header file. 2017-10-31 19:00:31 +01:00
Dave Davenport
0bb64cf1ad Add extra margin between prompt and entry. 2017-10-31 09:51:00 +01:00
Dave Davenport
1dccdb302e Remove color from prompt, can be added in theme now.
fixed: #637
2017-10-30 21:40:13 +01:00
Dave Davenport
f9d1562513 [Default theme] Fix border width message box 2017-10-25 17:51:00 +02:00
Askrenteam
0dc71fcc00 Added option -name-only to match only desktop entry name with drun (#690)
* Added option -name-only to match only desktop entry name with drun

* fixed indent and xrdump test

* fixed test

* option -drun-match-fields

* option -window-match-fields

* matching fields as static in window/drun + enums for field indexes

* prevent window_mode_parse_fields() from executing twice
2017-10-21 11:18:52 +02:00
Dave Davenport
9ae62960c1 Indent files. 2017-10-05 17:45:50 +02:00
Dave Davenport
51d1ebf0ea Install rofi-types.h and fix includes for plugins 2017-10-03 20:50:38 +02:00
Dave Davenport
2784959fc1 Allow maximum history size to be configured.
Fixes: #613
2017-10-03 19:59:35 +02:00
Dave Davenport
91d88b1fd1 Rename tokenize to helper_tokenize 2017-10-01 10:51:02 +02:00
Dave Davenport
ebffe5503d Implement support for specifying negated match
- Prepending - inverts the matching result.
- Fix logic window/drun browser.
- Breaks API as argument token_match callback changed.
- Update tests.

Fixes: #665
2017-09-29 08:40:25 +02:00
Dave Davenport
a1ea3e268f Add more configuration options to script mode, getting closer to dmenu.
- urgent
 - active
 - prompt
 - message
2017-09-27 20:00:33 +02:00
Dave Davenport
99f2a1a9bf Add @theme import command, that resets the current theme. 2017-09-18 17:48:13 +02:00
Dave Davenport
ae0323211b small update to default theme 2017-09-18 07:49:24 +02:00
Dave Davenport
852d80fee3 Change WMQuirk logic
- Default is switch to desktop then select window.
- 2 quirks:
  - pango names.
  - do not switch.
2017-09-17 21:40:36 +02:00
Dave Davenport
97467fceff Update small part of doc. set hadle-color on scrollbar in default theme. 2017-09-09 22:09:02 +02:00
Dave Davenport
e01aefd773 Update shipped themes. 2017-09-09 14:50:23 +02:00
Dave Davenport
b24660a204 Fix default theme. 2017-09-09 12:49:40 +02:00
Dave Davenport
af369bd244 Update default theme and converter. 2017-09-09 12:07:11 +02:00
Dave Davenport
a97831e297 Fix doxygen documentation 2017-09-09 11:25:33 +02:00
Dave Davenport
acfc07a63e Fix Inherit keyword 2017-09-07 13:46:09 +02:00
Dave Davenport
7c1ecb4707 Add support for multiple selectors. #dummy0, dummy1 {} 2017-09-06 23:11:03 +02:00
Dave Davenport
6b43fed3aa use color, background-color and border-color 2017-09-06 19:02:09 +02:00
Dave Davenport
50998b8f04 Flatten hierarchy, don't inherit by default.
* add keyword inherit to language parser and theme structure.
2017-09-06 10:03:44 +02:00
Dave Davenport
9b0a430fd4 Indent. 2017-09-05 13:52:44 +02:00
Dave Davenport
ba296f9210 Add ch as size unit. 2017-09-05 13:52:21 +02:00
Dave Davenport
73827ce680 Only dump configuration changes, not theme in -dump-config. 2017-09-04 16:46:06 +02:00
Dave Davenport
508e39c3f3 Set cursor to end of input field.
Fixes: #662
2017-08-29 10:40:24 +02:00
Dave Davenport
3c52f15140 Move more enums to rofi-types.h 2017-08-18 11:38:54 +02:00
Dave Davenport
9105e5549f Move all property structs/enums into rofi-types 2017-08-17 22:52:17 +02:00
Dave Davenport
686be5856c Move PropertyType into rofi-types header and add check for names pairs. 2017-08-17 19:04:01 +02:00
Dave Davenport
474e3b3d63 Slight tweak to default theme 2017-07-24 16:58:03 +02:00
Dave Davenport
ecc9bcc270 Re-add some of the old theme options, so theme converter use them.
- line margin
 - separator style.
 - fake transparency.
 - line padding.
 - scrollbar width
2017-07-06 18:20:32 +02:00
Dave Davenport
ef4a171fca Put Xfwm4 on the WM list that needs extra desktop change.
Work-around that makes sure desktop gets switchs when setting active
window.

Fixes: #624
2017-07-05 21:30:29 +02:00
Quentin Glidic
727e3dc51a meson: Actually define TIMINGS if needed (#621)
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2017-07-04 15:35:49 +02:00
Dave Davenport
7e1c02b04c [OldTheme] Re-add the padding/bw option. 2017-07-03 09:23:03 +02:00
Dave Davenport
69d32164c9 Fix test building. 2017-06-21 19:18:57 +02:00
Dave Davenport
77a4d97262 Add -dump-config option. 2017-06-21 08:19:47 +02:00
Dave Davenport
9af191de26 Fix tests by splitting types name into separate file. 2017-06-20 21:02:13 +02:00
Dave Davenport
da00848416 Do better error reporting on configuration entries in rasi format. 2017-06-20 18:10:18 +02:00
Dave Davenport
22aacb8f94 Add extra check for rofi_theme_parse_prepare_file 2017-06-14 16:19:17 +02:00
Dave Davenport
26d9da7263 Position the overlay in the top right corner of the listview. 2017-06-12 08:17:28 +02:00