Commit Graph

246 Commits

Author SHA1 Message Date
Scoopta
13b3c28c19 Removed unneeded semicolons 2020-05-08 18:34:23 -07:00
Scoopta
fdf1c5572d 65536 widgets is totally atainable in some crazy dmenu setups 2020-05-08 14:53:44 -07:00
Scoopta
323487d1bb Not sure what that code was for, probably --lines early on and then it never got removed 2020-05-08 14:53:08 -07:00
Scoopta
1266717492 Added 1px to the total size to get rid of the slightly undersized window when using --lines 2020-05-08 14:24:51 -07:00
Scoopta
e0337b5b7a select_item() now checks for expanders 2020-05-08 14:18:39 -07:00
Jerry Chanut
1649fb95e1 Fix terminal exec parameter when running command in a terminal as all terminals using the option '-e' by convention 2020-05-05 22:38:01 +02:00
Brian Daniels
8d1075eb2c Use the browse selection mode to ensure there is alway an item selected.
It was possible to deselect items when using a touch screen. This is done
by tapping on an item that's already selected. This would cause a segfault
in the select_item() function of src/wofi.c since
gtk_flow_box_get_selected_children() would return NULL in this case. By
setting the selection mode to GTK_SELECTION_BROWSE, we avoid this case
by ensuring an item is always selected.
2020-04-25 12:09:17 -04:00
Scoopta
17e43f2338 The contents of the entry boxes are now flagged as selected when selected 2020-04-24 22:41:49 -07:00
Jonas Witschel
023fe67c5b Fix double free when both allow_markup and parse_search are enabled
If out is not initialised, GLib will attempt to free the string automagically
later, leading to a crash. To reproduce, try running

wofi --define parse_search=true --define allow_markup=true --show dmenu,drun
2020-04-23 14:44:02 +02:00
lbonn
de40550d2f Hide the small window before percent resizing 2020-04-22 11:22:23 +02:00
Scoopta
443b729de5 Sorting will now fallback to basic sort order if the fancy sorts are identical 2020-04-10 22:12:43 -07:00
Scoopta
6ce49cd43d Fixed use after free 2020-04-10 21:55:03 -07:00
Scoopta
7308465f26 Added support for multiple key binds to a single action 2020-04-10 21:50:48 -07:00
Scoopta
6db2a2260d Added support for alt as a modifier key 2020-04-06 15:35:22 -07:00
Scoopta
f8e1c779cc Added key_hide_search 2020-04-06 15:17:12 -07:00
Scoopta
98fe587316 Fixed expanders not shrinking back to their original size 2020-04-06 15:00:14 -07:00
Scoopta
c3ca5e027d Added key_expand 2020-04-06 14:41:12 -07:00
Scoopta
a32fa82b12 Added alacritty to the default terminal list 2020-04-02 22:57:46 -07:00
Scoopta
29aeffd8c1 Cleaned up includes, they were a bit of a mess 2020-03-25 23:05:46 -07:00
Scoopta
0b5ad3499d Added an error if an image cannot be loaded instead of letting gdk-pixbuf error. 2020-03-17 14:21:10 -07:00
Scoopta
50719af3dd !wl_list_empty() is now used instead of wl_list_length() > 0 2020-03-13 21:58:54 -07:00
Scoopta
4f4b85eee6 The name of the mode and the name used for loading can now be different, this fixes some segfaults 2020-03-13 18:56:39 -07:00
Scoopta
8d4a9e22b2 Added the load() plugin function 2020-03-13 17:08:35 -07:00
Scoopta
8e8bd632c5 Added wofi_get_dso_path() 2020-03-13 13:00:59 -07:00
Scoopta
b182442f7a The full DSO name no longer needs to be specified to load an external mode 2020-03-13 12:30:00 -07:00
Scoopta
b2e879cc88 mode is not set to _mode but rather mode_ptr->name which is a copy of _mode 2020-03-13 12:27:26 -07:00
Scoopta
c42ec7676d The width of entries is no longer set by widget_allocate() 2020-03-12 17:09:45 -07:00
Scoopta
3e64b23847 Added page up/down support 2020-03-11 18:27:44 -07:00
Scoopta
b172590829 Renamed the locations enum to location 2020-03-11 17:44:08 -07:00
Scoopta
e9cbf88be4 Wofi properly shuts down if its window is closed in normal window mode 2020-03-09 14:27:07 -07:00
Scoopta
a6735a38cb Pressing a key with no modifier which is bound with a modifier will now correctly focus the search box 2020-03-07 22:01:22 -08:00
Scoopta
8796993fb6 Modes are no longer loaded on their own thread. It's not really needed, breaks drun mode with images, and is probably confusing for 3rd-party mode developers. 2020-03-07 19:55:30 -08:00
Scoopta
a167dcc42e Replaced 1 with TRUE when setting gtk-application-prefer-dark-theme 2020-03-05 19:51:49 -08:00
Scoopta
1b299e658f Removed debug print 2020-03-05 19:07:25 -08:00
Gigadoc2
dc58ddbfb8 add switch to use the dark gtk theme
Since some time now, GTK3 themes can ship an optional "dark" variant
and applications like picture viewers can make use of such a variant to
appear dark (to not distract from the picture) without overwriting the
current theme (and risking optical breakage). While wofi is not a
picture viewer it may still be desirable to use a dark theme, for
example to contrast the (light) application displaying in the
background.

Of course, wofi can already be fully customized through CSS and/or the
colors file, but using the existing dark variant may be easier than
fully restyling it, if all you want is a darker appearance. The only
way to set an arbitrary GTK application to use the dark theme seems to
be setting an environment variable, but that bears two problems:
For one, one needs to specify the full theme + dark modifier in the
variable, so one would have to keep the global GTK theme and the one
used by wofi manually in sync.
More critical though, the environment variable would be propagated to
the programs wofi launches (for now at least). That would lead to all
GTK applications launched through wofi to use the dark theme, which may
not be desirable. Wofi could also unset that variable before launching
a program, but at this point adding a simple switch is probably easier.

Side note: It may be that there is some way to configure the CSS file
to include the CSS of the dark variant of the current theme, but I have
not been able to find out how. Gnome-terminal uses a switch like this
too (just with dconf), so this may just be the way to go.
2020-03-03 12:09:55 +01:00
Scoopta
a672361d65 --lines should play nicer with % dimensions 2020-03-03 11:13:11 -08:00
Scoopta
36048841bb Changed the default wofi size to be 50%x40% instead of 1000x400 2020-03-03 00:10:12 -08:00
Scoopta
512c1cf7b5 Fixed percent sizing 2020-03-03 00:04:53 -08:00
Scoopta
459de542dc Added support for percentage based window sizing 2020-03-02 12:06:14 -08:00
Scoopta
f1a0e735f1 Changed the error if you have too many colors. You can have up to 100 not 99 2020-02-29 03:16:23 -08:00
Scoopta
a55c0421b2 gdk_threads_add_timeout() is now used instead of g_timeout_add() 2020-02-29 02:27:59 -08:00
Scoopta
b88c6727ea Added hide_search 2020-02-29 01:04:00 -08:00
Scoopta
0a0ba35075 The cache directory will now be created if it doesn't already exist 2020-02-28 22:36:48 -08:00
Scoopta
0dec3c883d Initial focus is now set on the top result not the scrolled window 2020-02-28 22:15:53 -08:00
Scoopta
973a454799 Added global_coords 2020-02-25 17:13:32 -08:00
Scoopta
6961672701 Tweaked --lines code. Hopefully it's more reliable now 2020-02-25 00:30:35 -08:00
Scoopta
f7b599fe6f Added utils_max(). utils_min() is now a one liner. 2020-02-25 00:13:12 -08:00
Scoopta
a1beb82635 line_wrap now takes the wrapping mode instead of a boolean 2020-02-21 00:43:44 -08:00
Scoopta
33a69e713a Added line_wrap config option 2020-02-21 00:17:59 -08:00
Scoopta
81a34c3374 Wofi can now be named wofi-askpass. This is for easy use as a sudo askpass program 2020-02-20 23:51:54 -08:00
Scoopta
91ad565ecc Removed the need to use gtk_widget_get_child_visible() 2020-02-17 00:15:57 -08:00
Scoopta
4d089df33d Fixed arg passing although I used gtk_widget_get_child_visible(). Compared to the alternative I think this is less hacky although maybe a tad not good 2020-02-16 20:34:55 -08:00
Scoopta
d96ddcce4f Added support for modifier keys to be bound 2020-02-16 14:43:14 -08:00
Scoopta
459639cd7e Added support for custom key binding 2020-02-15 21:53:02 -08:00
Scoopta
f4c4abfb02 Forgot I had a min function 2020-02-08 18:13:05 -08:00
Scoopta
400ca061b5 Fixed --lines 2020-02-08 18:04:38 -08:00
Scoopta
779678d1e2 Added null check to fix gtk-critical message 2020-02-07 22:04:15 -08:00
Scoopta
bafdea787f Fixed content_halign not working correctly with multi-action entries 2020-02-07 21:06:30 -08:00
Scoopta
6f2e4616ab That's not a very effective null check 2020-02-07 18:10:06 -08:00
Scoopta
28be2d8234 Fixed a null check that itself would cause a segfault 2020-02-07 18:07:46 -08:00
Scoopta
1e131bdce6 Added --sort-order 2020-02-07 18:04:37 -08:00
Scoopta
12dd2fbd4d filter_rate doesn't need to be global anymore 2020-02-07 12:23:57 -08:00
Scoopta
2f00ef2bd6 Replaced the double searching that was used to allow variable filter_rates and replaced it with something that actually makes sense. 2020-02-07 11:51:46 -08:00
Scoopta
b7de8057da That only needs to be uint16 2020-02-06 21:50:22 -08:00
Scoopta
0abad1f1c8 Fixed ordering when no search is input 2020-02-06 21:47:59 -08:00
Scoopta
afcc0c23f7 The first element is now always highlighted when searching 2020-02-06 21:20:08 -08:00
Scoopta
df75b649a5 Added --columns 2020-02-06 18:22:50 -08:00
Scoopta
7534181a8f Added --lines 2020-02-02 22:29:44 -08:00
Scoopta
b266a82b4b Added sorting to contains mode based on whether or not the result starts with your search 2020-02-02 13:54:34 -08:00
Scoopta
a648f2139f Renamed the arguments for utils_distance() 2020-02-01 23:24:04 -08:00
Scoopta
5538191317 Changed the signature of wofi_create_widget() to use arrays instead of pointers 2020-02-01 17:44:00 -08:00
Scoopta
7494cb1c7c Removed the utils.h include from config.h as it's not used by config 2020-02-01 17:06:41 -08:00
Scoopta
4fac0ee652 Fixed bug where mode order wasn't being taken into account when loading entries 2020-01-31 23:15:13 -08:00
Scoopta
7c44d9ec4b Added support for the :focus CSS selector 2020-01-31 22:04:07 -08:00
Scoopta
6e472afe6e Added infrastructure for external custom modes, the actual mode code will be committed later 2020-01-31 21:55:28 -08:00
Scoopta
3a80153e17 Added wofi_insert_widgets()
This allows modes to ask for wofi to query them for new entries
2020-01-31 13:25:04 -08:00
Scoopta
786718602b Actually fixed cache entries that contain a lf 2020-01-29 22:01:29 -08:00
Scoopta
3d39f7aa5f Fixed memory leak 2020-01-29 21:51:25 -08:00
Scoopta
c971d19fa0 Fixed caching entries that contain a lf 2020-01-29 21:49:16 -08:00
Scoopta
61fb0e38f1 Improved the distance algorithm to take into account whether or not the result contains the search 2020-01-26 12:18:32 -08:00
Scoopta
755d7b37f6 Removed the if statement in the sort code, it's not needed 2020-01-26 12:03:08 -08:00
Scoopta
b41b85a70b Added support for case insensitive fuzzy search 2020-01-26 11:45:56 -08:00
Scoopta
b43739921c Pressing escape now exits with error code 1 2020-01-26 11:22:29 -08:00
Scoopta
684a5adf95 Fixed up config parsing 2020-01-26 00:44:24 -08:00
Scoopta
fadbfd4c13 Backslashes are no longer removed from the config completely but can now be escaped with \\ 2020-01-26 00:21:29 -08:00
Scoopta
6fb839a903 --no-actions doesn't take an argument 2020-01-24 23:44:55 -08:00
Scoopta
5ec88a365e Added --define 2020-01-24 23:36:56 -08:00
Scoopta
84262b19f4 Modes must explicitly declare support for execution without a matching entry 2020-01-23 20:26:33 -08:00
Scoopta
05490241a9 Modes no longer have to pass a name that matches the name they were loaded with, this was just absurdly bad design and I don't know how I came up with it in the first place 2020-01-20 20:09:40 -08:00
Scoopta
5b41ab2ca6 Moved the wofi api to wofi_api.h 2020-01-20 16:22:14 -08:00
Scoopta
c47f7acdcd Don't need calloc 2020-01-19 22:16:15 -08:00
Scoopta
868710726e Switched out my map impl for a GTree 2020-01-19 22:09:04 -08:00
Scoopta
54654f20bb Added #entry and deprecated .entry, #selected, and #unselected 2020-01-18 14:54:52 -08:00
Scoopta
b560f77969 Fixed memory leak 2020-01-16 16:56:08 -08:00
Scoopta
f60cdc0167 Fixed cache files not being auto-created 2020-01-16 16:49:57 -08:00
Scoopta
e5300b2995 Changed the widget insertion system, this should hopefully increase performance and be an all around better system 2020-01-16 16:35:51 -08:00
Scoopta
e7be007842 The color and style config options now have the same semantics as the command line options 2020-01-12 22:20:37 -08:00
Scoopta
d6bac0e7bb Added --no-actions 2020-01-10 14:34:49 -08:00
Scoopta
f00b615f11 Replaced uint8_t with the correct enum types for variables from config_get_mnemonic() 2020-01-07 18:56:57 -08:00
Scoopta
753db64755 And that config_get too 2020-01-07 18:30:34 -08:00