Commit graph

243 commits

Author SHA1 Message Date
Dave Davenport
bfae111579 Fix indenting and header commenting. 2017-01-11 09:11:19 +01:00
Dave Davenport
25dff63006 Improve error handling string. 2017-01-09 22:40:11 +01:00
Dave Davenport
854aa55453 Better error reporting (1) 2017-01-09 18:32:26 +01:00
Dave Davenport
f42e4ffbd7 Remove old cairo color set functions 2017-01-09 08:32:16 +01:00
Dave Davenport
713d41f619 Allow matching highlighting to be set. Fixes #522 2017-01-09 00:09:02 +01:00
Dave Davenport
baab2047ad Indent magic, rework makefile so lexer and yacc file are not passed. 2017-01-08 21:36:06 +01:00
Dave Davenport
26efbecbc3 Fix multiple -theme-str lines parsing, fix num lines 2017-01-08 17:18:49 +01:00
Dave Davenport
c57e7348d2 Add some better error message. Allow -theme-str option to override part of theme 2017-01-08 16:09:24 +01:00
Dave Davenport
22e2d7587d Update copyright to 2017. 2017-01-03 17:59:28 +01:00
Dave Davenport
2220b75467 Fix two issues detected by coverty. 1.) copy /paste error. 2.) dead code 2016-11-30 08:41:47 +01:00
Dave Davenport
84f7ec2f0e Fuzzy matcher, take simple escaping into account when creating regex. 2016-11-26 17:18:38 +01:00
Dave Davenport
b1a44cc65e Update code documentation 2016-11-15 21:54:31 +01:00
Dave Davenport
7e74d39a01 Fix indentation 2016-11-15 08:24:27 +01:00
Dave Davenport
c86a28ca70 Small code restructure 2016-11-15 08:24:06 +01:00
Dave Davenport
d22920fd5e Backspace->BackSpace 2016-11-14 16:58:43 +01:00
Dave Davenport
fcf3c33415 Fix keybinding with Shift in name. Alt-Shift-S -> Alt-S. Alt-Shift-1 -> Alt-exclam
+ indent.
2016-11-14 16:25:04 +01:00
Dave Davenport
27cef3c9ae Fix #497: Create cache dir if not exists. 2016-11-12 11:28:40 +01:00
Dave Davenport
ed6cb59b5d Fix crash on wrongly queued ViewState (thx to teto) 2016-11-02 18:24:20 +01:00
Dave Davenport
4c5df96fcd Pull config option access from out of separator widget. 2016-11-01 08:04:39 +01:00
Dave Davenport
86b6beb1e9 Update some code. 2016-10-28 23:28:49 +02:00
Dave Davenport
fb459e1660 Make scrollbar behave better 2016-10-26 08:24:34 +02:00
Dave Davenport
a38ac9caf3 Update scrollbar behaviour, so dragging is more natural. (limit range from hw/2 to h-hw/2) 2016-10-25 21:19:39 +02:00
Dave Davenport
7b3b68462e Fix memory leak in box and listview widget, add coverage make target. (ggcov and lcov) 2016-10-18 13:49:24 +02:00
Dave Davenport
f0981d6697 Indenting, comments 2016-10-15 15:39:08 +02:00
Dave Davenport
ce341f6885 Document more headers. 2016-10-14 16:46:54 +02:00
Dave Davenport
eb5f169af0 Remove error check for large windows as it is incorrect often. Fix issue 468 2016-10-13 18:11:15 +02:00
Dave Davenport
07425fd10a Always refilter when switching modi. 2016-10-11 08:11:14 +02:00
Dave Davenport
3c64507f02 Qtk widgets (#478)
* Initial support for using boxes for packing widgets.

* Make CapiTalIzation more consistent

* Move widgets to subdirectory

* Removed nolonger needed resize function.

* Small cleanup

* When switching mode, reuse view, don't rebuild it. Reduces artifacts.

* Needs cleaning up.

* Remove separate prompt argument, use display_name

* Simplify run-switcher code.

* Add notion of parents, and trigger parent update on resize.

* Use widget_get_height wrapper, avoid crash

* Size separator width based on height. (indent)

 * TODO add margin to box.

* First draft version of listview.

* Add scrollbar to listview widget

* Add padding option to box

* Move access to global config out of widget. (1/2 done)

*  Remove printf

* Make listview not access global config

* Add click support, implement on mode buttons.

* Re-introduce mouse handling on list-view.

* TODO draggin on scrollbar.

* Fix multi-select

* Fix warnings

* Fix include
2016-10-08 18:57:59 +02:00
Dave Davenport
e3fb17a843 Ask window manager to hide decoration in normal-window mode.
Issue #485
2016-09-08 08:57:35 +02:00
Dave Davenport
c099aaeabf Add debug output. 2016-08-30 21:24:04 +02:00
Dave Davenport
5cfe9a89b3 Improve DRun handling a bit.
- Remove entries that are deprecated or unsupported.
 - Handle field codes %c and %k

TODO:
 - Detect multiple identical field code entries and throw error.
2016-08-29 21:14:03 +02:00
Dave Davenport
e4cab560f4 First hack at fixing Desktop file parser. 2016-08-28 22:43:42 +02:00
Dave Davenport
20e55e1e4e Add fuzzy matching, make a -matching option.
* -matching *method* option instead of -regex, -glob, -fuzzy.
 * Re-add fuzzy matching pattern.
 * When there are substrings in regex, only highlight those matches.

Fixes: #447
2016-08-25 21:17:58 +02:00
Dave Davenport
99cb1e6f11 Don't force an second error when monitor is not found. 2016-08-24 10:36:39 +02:00
Dave Davenport
ef3c773097 Constness. 2016-08-24 00:39:56 +02:00
Dave Davenport
6225b29d94 Issue 448, Take another default that should not fail, better error mesg 2016-08-19 18:01:26 +02:00
Dave Davenport
df7468b491 Use XRandr to get monitor layout instead of xinerama.
* You can now specify monitor by name, or primary status.
2016-08-19 10:46:38 +02:00
Dave Davenport
eb0bfc60c4 Indicate what set an option, comment default options in dump-xresources. 2016-08-04 20:24:01 +02:00
Dave Davenport
604b4cb619 Fix memory leak, re-indent 2016-07-31 23:28:31 +02:00
Dave Davenport
fe230eb95c Fix #432, Control+k removes till eol. 2016-07-25 11:32:30 +02:00
Dave Davenport
59635919ea Add selection indicator to dmenu mode. 2016-07-18 23:49:26 +02:00
Dave Davenport
9f25a975ae Fix windowcd command and allow custom Window string format 2016-06-28 23:07:48 +02:00
Dave Davenport
77a0800ccf Copy memory instead of mixing malloc and g_malloc'ed memories (and freeing them all with g_free) 2016-06-21 22:40:42 +02:00
Dave Davenport
1f4af41e96 Split Custom and Alternate command. 2016-06-19 18:02:49 +02:00
Dave Davenport
03239cb989 Remove fuzzy matching option. 2016-06-18 20:54:29 +02:00
Dave Davenport
7a2435a23b Indent don't use partial match. 2016-06-16 22:23:55 +02:00
Dave Davenport
0e86050db8 Fix combi mode 'bang' behaviour, improve levenshtein with combi 2016-05-26 08:39:33 +02:00
Dave Davenport
498fadc735 Remove the is_ascii mess. 2016-05-22 17:47:34 +02:00
Dave Davenport
8091558ed8 Go Regex Go 2016-05-21 10:37:23 +02:00
Dave Davenport
c8a6b26607 First try at highlighting match (regex only) 2016-05-10 18:02:23 +02:00
Dave Davenport
3918625804 Move teardown to the logic place again (possible with deamon mode removed) 2016-04-20 08:04:23 +02:00
Dave Davenport
cbf625ec9f Work around crash. echo error to stderr. 2016-04-10 15:04:34 +02:00
Dave Davenport
96cb3a8695 Remove fgets and replace by getline. 2016-04-10 14:30:13 +02:00
Dave Davenport
e54e012500 Issue: #381: Try to handle X11 input and UTF-8 better.
In window_get_text_prop do conversion when input is of type STRING. (latin1) to utf8.
Dmenu: don't skip invalid lines, but try to display as much as possible.
Window mode: Double check all input from X.
2016-04-10 12:05:34 +02:00
Dave Davenport
d36ae81408 Fix positioning window on top of window. 2016-03-20 10:16:55 +01:00
Dave Davenport
a2869ef39d Make clang static code analyzer happy (300+ -> 5) 2016-03-19 13:29:04 +01:00
Quentin Glidic
f5231ca24d rofi: Allow fullscreen on specified monitor
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2016-03-18 09:21:36 +01:00
Dave Davenport
d99111c73b Remove deprecated theme system. 2016-03-05 18:28:39 +01:00
Dave Davenport
f0b1998703 Cleanups (cppcheck) 2016-03-02 18:07:59 +01:00
Dave Davenport
f05f0de583 Fix #348, give a warning when font failed to parse 2016-03-01 19:48:18 +01:00
Dave Davenport
7d046a1f5b Pack magic externs into a xcb_stuff. 2016-03-01 18:11:55 +01:00
Dave Davenport
131b8eaaea Remove dead code 2016-02-28 18:33:01 +01:00
Dave Davenport
a4fd907fe8 Run indenter 2016-02-28 15:32:53 +01:00
Dave Davenport
4c661c3932 Move most of window modi to xcb 2016-02-27 22:55:47 +01:00
Dave Davenport
a02cb83a98 Move more to xcb. 2016-02-27 20:45:47 +01:00
Dave Davenport
758d155a20 Fixing. 2016-02-19 20:08:14 +01:00
Dave Davenport
6e3bb506de Full mainloop madness 2016-02-19 19:50:48 +01:00
Dave Davenport
5a86ae5c99 Cleanups 2016-02-08 09:03:11 +01:00
Gareth Poole
5bb2414a2b Fix spelling error 2016-01-30 17:04:14 -05:00
Dave Davenport
51b5511017 More doxygen sugar. 2016-01-07 16:01:56 +01:00
Dave Davenport
d661a515f0 Make levenshtein sort utf8 aware and obey case sensitive setting.
- Add tests.
        - Use Glibs unichar for comparison.
2016-01-04 17:18:49 +01:00
Dave Davenport
5a3c202423 Update copyright 2016-01-01 00:27:00 +01:00
Dave Davenport
eaa553bfd5 Indent. 2015-12-03 22:48:30 +01:00
Dave Davenport
91e0f6b555 Fix small char s/u issue 2015-12-02 17:46:17 +01:00
Dave Davenport
4b77a1728d Remove custom code, replace by glib, fix fuzzy matching for unicode.
- Also fixes char endianess issues.
2015-12-01 22:09:34 +01:00
Dave Davenport
ca6b1a8178 Fixing path. 2015-11-28 12:59:10 +01:00
Dave Davenport
2da1207b7d Fix issue #271 expand path. 2015-11-27 13:01:25 +01:00
Dave Davenport
611c2c4302 Don't create collate, use normalized form to match. 2015-11-22 23:49:41 +01:00
Dave Davenport
8c9b72f34e Start at fixing Issue 273, this might break some things.
* Only use get_display_data for displaying. (Except the select complete (ctrl-space), this needs fixing).
 * Fix possible race condition in parallelization.
 * Fix small bug in case-sensitive handling. (beware for collision in keybinding)
 * Keep less lists around.
2015-11-21 23:59:59 +01:00
Dave Davenport
38d2bc717a handle failed regex better. 2015-11-17 16:25:42 +01:00
Dave Davenport
00c8439b57 Small fix 2015-11-17 16:21:30 +01:00
Dave Davenport
aeaceb154a Add experimental regex support 2015-11-17 16:10:14 +01:00
Dave Davenport
80e873c8a3 Add threadpool support, add optional timings compile flag 2015-11-14 13:47:45 +01:00
Dave Davenport
45c8de9387 If threads is set to 0, try to autodetect number of threads. 2015-11-12 17:20:51 +01:00
Qball Cow
c7dcb4821a Use getdelim instead of custom fgets function. 2015-11-12 14:15:33 +01:00
Qball Cow
aedd26aef4 Fix #258: Set fallback alternative color before trying to allocate it. 2015-11-04 12:03:59 +01:00
QC
683632c36c Some cleanups 2015-10-18 19:02:19 +02:00
QC
73fd87f820 Add mesg about fullscreen and monitor setup 2015-10-18 13:45:15 +02:00
QC
93b6b83fb9 Try todo some validation of monitor size/padding in config sanity check. 2015-10-18 13:40:39 +02:00
Dave Davenport
4975704a05 Fix #244 Do not catch sigchld, let glib handle this internally
- TODO fix man page viewing.
2015-10-12 08:12:25 +02:00
Tom Hinton
a53061b890 Merge remote-tracking branch 'upstream/master' into fast-ascii-filtering
Conflicts:
	source/dialogs/dmenu.c
	source/helper.c
	source/rofi.c
2015-10-05 10:44:11 +01:00
QC
9a39ebb3e9 Fix typo 2015-10-04 17:02:54 +02:00
Dave Davenport
6b039ac524 Add tokenize option and append * to glob. 2015-10-04 16:37:07 +02:00
QC
5de38cd755 Add glob version for testing. 2015-10-02 20:39:57 +02:00
Tom Hinton
c2d8cb1f45 Move ascii testing gizmos to macros at the top.
Still not sure about best way to do this.
2015-10-02 09:58:56 +01:00
Tom Hinton
d1a5b0d362 whoops, rogue print statement 2015-10-01 13:46:50 +01:00
Tom Hinton
0a953a03b4 Make fuzzy matching fast and unicode-happy 2015-10-01 13:45:23 +01:00
Tom Hinton
af6a4b83eb Make normal filtering of plain ASCII lines faster
This patch adds a field lines_not_ascii to the MenuState structure. The
nth entry is 0 unless the nth member of MenuState.lines has a non-ascii
codepoint in it.

All comparison functions (menu_match_cb type) take an additional
argument to tell them if the thing they are matching is not_ascii. They
can use this to determine whether to collate and case-fold the
input (for non-ascii strings), or whether to use strstr/strcasestr (for
ascii strings).

The change is not currently implemented for flex matching, due to my
laziness. However, it should be a simple enough matter to add.

For my large input of 400,000 lines, this reduces typical filtering time
to about ten microseconds from about 2 seconds.
2015-10-01 12:16:41 +01:00
Tom Hinton
574bf2da82 Make dmenu reading very marginally faster
A slight reduction in use of realloc and avoidance of 3 or 4 strlens for
a string we know the length of
2015-10-01 11:41:44 +01:00
QC
023bb23bcf Support \0 2015-09-20 20:05:04 +02:00
QC
b18d68eff2 Adjust new editor width 2015-09-19 12:57:48 +02:00
QC
442e235c24 Some cleanups, tweak uncrustify. 2015-09-19 12:21:30 +02:00
QC
89dcb5be1e Remove unused function 2015-08-29 11:57:04 +02:00
Dave Davenport
353e82b27d Allow 0 line margin 2015-08-27 07:35:34 +02:00
QC
2277501566 Cleanup drawing a bit. 2015-08-26 21:49:53 +02:00
Dave Davenport
1ca7141621 Add quick solution for #202, expose line-margin setting. 2015-08-04 09:42:14 +02:00
QC
5777ee57e5 Remove use of g_close, not available on travis 2015-08-02 15:56:52 +02:00
Dave Davenport
dffc27e5aa Try to make things more robust, e.g. try to recover before giving up. 2015-07-31 12:23:41 +02:00
Dave Davenport
69c75971f3 Print error to stderr when fclose fails. 2015-07-31 10:21:32 +02:00
Dave Davenport
8d6a78939c Small cleanup + fail more gracefull here and there 2015-07-30 08:57:09 +02:00
Dave Davenport
93c01ccbd5 Add new event handling 2015-07-28 22:22:18 +02:00
QC
d60f6701de Add patches from BSD (hopefully ok?) 2015-07-04 15:36:11 +02:00
Dave Davenport
98b8e583cb Make fuzzy matching available everywhere: #133 (-fuzzy) 2015-07-01 09:12:22 +02:00
Dave Davenport
30743d1789 Move fuzzy_token_match to where it can be reused. 2015-06-28 13:53:37 +02:00
QC
354ccdd94d Fix Issue #164 2015-05-16 13:58:09 +02:00
QC
a38ddb3b06 Fix space. 2015-04-14 22:12:21 +02:00
QC
9ff5a615e9 Add combi viewer.
Use by adding combi to the list of enabled modi.
2015-03-30 20:12:22 +02:00
QC
b21368c005 OO-ify the Switchers. 2015-03-27 20:28:53 +01:00
Dave Davenport
42b86015c3 Make pointers static. 2015-03-12 08:39:50 +01:00
Dave Davenport
4fad02225e Cleanup argc/argv lugging around. 2015-03-11 18:32:37 +01:00
Dave Davenport
444d09b905 Update spell. 2015-03-05 20:26:52 +01:00
Dave Davenport
2474575a90 Small move. 2015-02-19 13:44:59 +01:00
Qball Cow
3b18c28792 Remove unused function. 2015-02-17 14:27:12 +01:00
Dave Davenport
a534a0f244 Rewrite of the configuration parsing, no longer duplicating options between Xrm and CMD.
* NEEDS TESTING.
2015-02-17 10:31:59 +01:00
Dave Davenport
bda97e0849 Throw a warning when using old commandline arguments.
* Give error on -now, -rnow, -snow, -key, -skey, -rkey
        * Update manpage.
2015-02-16 09:07:05 +01:00
QC
dee0bfb821 Fix #128: Better handling of keybindings and remove deprecated launching.
See manpage.
2015-02-15 21:15:16 +01:00
Dave Davenport
8347963ed8 Fix some warnings from clang-check. 2015-02-13 15:37:55 +01:00
QC
877c8051c6 Update copyright license. 2015-02-12 22:34:06 +01:00
Dave Davenport
a50219e903 Remove hmode. (Rather no implementation then a bad one.) 2015-02-10 07:42:40 +01:00
Dave Davenport
d9aef65ea7 Cleanups. 2015-02-04 09:37:34 +01:00
Dave Davenport
63fd534ba2 Move data around, constness, etc. 2015-02-03 08:21:59 +01:00
Dave Davenport
f86cf8988b Move stuff around. Try to reduce size rofi.c. 2015-02-03 08:00:33 +01:00
QC
b74e6b791a Fix not grabbing keyboard, and add pid file to ensure one instance. 2015-01-31 18:23:17 +01:00
Dave Davenport
a00cfbb5b0 Small cleanup and reducing of scopes. 2015-01-15 17:59:59 +01:00
QC
e166fa3d8e Move indicator to end of entry box. 2015-01-13 11:48:38 +01:00
Edwin Pujols
d1ba4bd8dc Fix #102 - Add case sensitivity. 2015-01-12 09:25:20 -04:00
Dave Davenport
a28b6df307 Add support custom command. 2015-01-05 21:53:50 +01:00
Dave Davenport
781ca03f02 Small moving to helper. 2014-12-02 09:09:20 +01:00
Dave Davenport
2c9f33a1bd More commenting.
Code    Comment  Comment %      Blank      Total  File
------  ---------  ---------  ---------  ---------  -----------------
    36         69      65.7%          2        107  config.c
    66         31      32.0%         14        111  dmenu-dialog.c
   185         52      21.9%         19        256  helper.c
   179         66      26.9%         27        272  history.c
  1896        325      14.6%        345       2566  rofi.c
   197         45      18.6%         42        284  run-dialog.c
   144         31      17.7%         24        199  script-dialog.c
   171         42      19.7%         31        244  ssh-dialog.c
   350         69      16.5%         84        503  textbox.c
   151         37      19.7%         27        215  xrmoptions.c
    26          0       0.0%          5         31  helper-test.c
    65          6       8.5%         35        106  history-test.c
   109          5       4.4%         22        136  textbox-test.c
    34         33      49.3%         24         91  config.h
     5         10      66.7%          4         19  dmenu-dialog.h
    11         70      86.4%         10         91  helper.h
     9         46      83.6%          8         63  history.h
    83        128      60.7%         17        228  rofi.h
     4          8      66.7%          2         14  run-dialog.h
    11         26      70.3%          5         42  script-dialog.h
     4          8      66.7%          2         14  ssh-dialog.h
    64        142      68.9%         31        237  textbox.h
     6         13      68.4%          4         23  xrmoptions.h
2014-11-25 12:57:34 +01:00
QC
66349a00dc Small updates. 2014-11-15 16:26:55 +01:00
QC
f728e3f03e Add separator option. 2014-10-19 19:42:02 +02:00
QC
15bee1f543 Add source files and man page.
* Add bugtracker to manpage.
        * Print msg to stderr, when error dialog not available.
2014-09-06 14:57:30 +02:00
Dave Davenport
0462811800 Add flexible configuration for launching
* You can now specify links: {terminal} -e bash -e "{ssh-client} {host}"
    * Add test for this code.
2014-09-03 13:07:26 +02:00