rofi 1.7.9
|
Data Structures | |
struct | RofiHelperExecuteContext |
Macros | |
#define | rofi_fallthrough |
Functions | |
int | helper_parse_setup (char *string, char ***output, int *length,...) |
rofi_int_matcher ** | helper_tokenize (const char *input, int case_sensitive) |
void | helper_tokenize_free (rofi_int_matcher **tokens) |
int | find_arg_char (const char *const key, char *val) |
int | find_arg_uint (const char *const key, unsigned int *val) |
int | find_arg_int (const char *const key, int *val) |
int | find_arg_str (const char *const key, char **val) |
const char ** | find_arg_strv (const char *const key) |
int | find_arg (const char *const key) |
int | helper_token_match (rofi_int_matcher *const *tokens, const char *input) |
int | execute_generator (const char *cmd) __attribute__((nonnull)) |
int | create_pid_file (const char *pidfile, gboolean kill_running) |
void | remove_pid_file (int fd) |
int | config_sanity_check (void) |
char | helper_parse_char (const char *arg) |
void | cmd_set_arguments (int argc, char **argv) |
char * | rofi_expand_path (const char *input) |
unsigned int | levenshtein (const char *needle, const glong needlelen, const char *haystack, const glong haystacklen, const int case_sensitive) |
char * | rofi_force_utf8 (const gchar *data, ssize_t length) |
char * | rofi_latin_to_utf8_strdup (const char *input, gssize length) |
int | rofi_scorer_fuzzy_evaluate (const char *pattern, glong plen, const char *str, glong slen, const int case_sensitive) |
int | utf8_strncmp (const char *a, const char *b, size_t n) __attribute__((nonnull(1 |
gboolean | helper_execute (const char *wd, char **args, const char *error_precmd, const char *error_cmd, RofiHelperExecuteContext *context) |
gboolean | helper_execute_command (const char *wd, const char *cmd, gboolean run_in_term, RofiHelperExecuteContext *context) |
cairo_surface_t * | cairo_image_surface_create_from_svg (const gchar *file, int height) |
void | parse_ranges (char *input, rofi_range_pair **list, unsigned int *length) |
int | parse_case_sensitivity (const char *input) |
void | rofi_output_formatted_line (const char *format, const char *string, int selected_line, const char *filter) |
char * | helper_string_replace_if_exists (char *string,...) |
char * | helper_get_theme_path (const char *file, const char **ext, const char *parent_dir) __attribute__((nonnull(1 |
char ConfigEntry * | rofi_config_find_widget (const char *name, const char *state, gboolean exact) |
Property * | rofi_theme_find_property (ConfigEntry *widget, PropertyType type, const char *property, gboolean exact) |
const char * | helper_get_matching_mode_str (void) |
void | helper_select_next_matching_mode (void) |
void | helper_select_previous_matching_mode (void) |
#define rofi_fallthrough |
Method to indicate fallthrough. This will help gcc/llvm warning/static code analysis.
Definition at line 466 of file helper.h.
Referenced by listview_element_trigger_action(), rofi_view_calculate_window_position(), rofi_view_trigger_action(), and x11_button_to_nk_bindings_scroll().
cairo_surface_t * cairo_image_surface_create_from_svg | ( | const gchar * | file, |
int | height ) |
file | The file path |
height | The wanted height Gets a surface from an svg path |
void cmd_set_arguments | ( | int | argc, |
char ** | argv ) |
argc | number of arguments. |
argv | Array of arguments. |
Set the application arguments.
Definition at line 98 of file helper.c.
References stored_argc, and stored_argv.
Referenced by main().
int config_sanity_check | ( | void | ) |
Do some input validation, especially the first few could break things. It is good to catch them beforehand.
This functions exits the program with 1 when it finds an invalid configuration.
Definition at line 672 of file helper.c.
References config, MatchingMethodEnabled, MatchingMethodStr, MM_NUM_MATCHERS, mon, monitor_active(), monitor_position_entries, NUMMatchingMethodEnabled, rofi_add_error_message(), SORT_FZF, SORT_NORMAL, and WL_CENTER.
Referenced by startup().
int create_pid_file | ( | const char * | pidfile, |
gboolean | kill_running ) |
pidfile | The pidfile to create. |
kill_running | Try killing running instance. |
returns file descriptor (or -1 when failed)
Definition at line 586 of file helper.c.
References create_pid_file(), flags, pidfile, and remove_pid_file().
Referenced by create_pid_file(), and main().
int execute_generator | ( | const char * | cmd | ) |
cmd | The command to execute. |
Execute cmd using config.run_command and outputs the result (stdout) to the opened file descriptor.
Definition at line 563 of file helper.c.
References config, helper_parse_setup(), and rofi_view_error_dialog().
Referenced by get_apps_external().
int find_arg | ( | const char *const | key | ) |
key | The key to search for |
Check if key is passed as argument.
Definition at line 326 of file helper.c.
References stored_argc, and stored_argv.
Referenced by config_parse_cmd_option(), display_late_setup(), dmenu_finalize(), dmenu_mode_dialog(), dmenu_mode_init(), find_arg_char(), find_arg_int(), find_arg_str(), find_arg_uint(), help(), main(), rofi_collect_modes(), run_mode_index(), and startup().
int find_arg_char | ( | const char *const | key, |
char * | val ) |
key | The key to search for |
val | Pointer to the string to set to the key value (if found) |
Parse command line argument 'key' to character. This one supports character escaping.
Definition at line 432 of file helper.c.
References find_arg(), helper_parse_char(), stored_argc, and stored_argv.
Referenced by config_parse_cmd_option(), and dmenu_mode_init().
int find_arg_int | ( | const char *const | key, |
int * | val ) |
key | The key to search for |
val | Pointer to the string to set to the key value (if found) |
Parse command line argument 'key' to int.
Definition at line 365 of file helper.c.
References find_arg(), stored_argc, and stored_argv.
Referenced by config_parse_cmd_option().
int find_arg_str | ( | const char *const | key, |
char ** | val ) |
key | The key to search for |
val | Pointer to the string to set to the key value (if found) |
Parse command line argument 'key' to string.
Definition at line 335 of file helper.c.
References find_arg(), stored_argc, and stored_argv.
Referenced by config_parse_cmd_option(), display_setup(), dmenu_mode_dialog(), dmenu_mode_init(), main(), rofi_collect_modes(), and startup().
const char ** find_arg_strv | ( | const char *const | key | ) |
key | The key to search for |
Parse all command line options 'key' to string vector.
Definition at line 345 of file helper.c.
References stored_argc, and stored_argv.
Referenced by main().
int find_arg_uint | ( | const char *const | key, |
unsigned int * | val ) |
key | The key to search for |
val | Pointer to the string to set to the key value (if found) |
Parse command line argument 'key' to unsigned int.
Definition at line 374 of file helper.c.
References find_arg(), stored_argc, and stored_argv.
Referenced by config_parse_cmd_option(), dmenu_mode_init(), main(), and run_mode_index().
gboolean helper_execute | ( | const char * | wd, |
char ** | args, | ||
const char * | error_precmd, | ||
const char * | error_cmd, | ||
RofiHelperExecuteContext * | context ) |
wd | The working directory. |
args | The arguments of the command to exec. |
error_precmd | Prefix to error message command. |
error_cmd | Error message command |
context | The startup notification context, if any |
Executes the command
Definition at line 1043 of file helper.c.
References display_startup_notification(), and rofi_view_error_dialog().
Referenced by execshssh(), helper_execute_command(), rofi_error_user_callback(), rofi_quit_user_callback(), screenshot_taken_user_callback(), and selection_changed_user_callback().
gboolean helper_execute_command | ( | const char * | wd, |
const char * | cmd, | ||
gboolean | run_in_term, | ||
RofiHelperExecuteContext * | context ) |
wd | The work directory (optional) |
cmd | The cmd to execute |
run_in_term | Indicate if command should be run in a terminal |
context | The startup notification context, if any |
Execute command. If needed members of context are NULL, they will be filled.
Definition at line 1071 of file helper.c.
References RofiHelperExecuteContext::binary, RofiHelperExecuteContext::command, config, RofiHelperExecuteContext::description, helper_execute(), helper_parse_setup(), and RofiHelperExecuteContext::name.
Referenced by exec_cmd(), file_browser_mode_result(), recursive_browser_mode_result(), and rofi_quit_user_callback().
const char * helper_get_matching_mode_str | ( | void | ) |
Definition at line 81 of file helper.c.
References config, and MatchingMethodStr.
Referenced by rofi_view_trigger_global_action().
char * helper_get_theme_path | ( | const char * | file, |
const char ** | ext, | ||
const char * | parent_dir ) |
file | File name passed to option. |
ext | NULL terminated array of file extension passed to option. |
parent_dir | The file that was used to import this file, or NULL. |
Get the full path to the theme, trying to resolve it over the possible locations.
char helper_parse_char | ( | const char * | arg | ) |
arg | string to parse. |
Parses a string into an character.
Definition at line 384 of file helper.c.
Referenced by find_arg_char(), and parse_header_entry().
int helper_parse_setup | ( | char * | string, |
char *** | output, | ||
int * | length, | ||
... ) |
string | The input string. |
output | Pointer to 2 dimensional array with parsed string. |
length | Length of 2 dimensional array. |
... | Key, value parse. Replaces the string Key with value. |
Parses a string into arguments. While replacing keys with values.
Definition at line 103 of file helper.c.
References config, helper_string_replace_if_exists_v(), and rofi_view_error_dialog().
Referenced by execshssh(), execute_generator(), helper_execute_command(), rofi_error_user_callback(), rofi_icon_fetcher_worker(), rofi_quit_user_callback(), screenshot_taken_user_callback(), and selection_changed_user_callback().
void helper_select_next_matching_mode | ( | void | ) |
Switch to the next matching method.
Definition at line 84 of file helper.c.
References config, CurrentMatchingMethod, MatchingMethodEnabled, and NUMMatchingMethodEnabled.
Referenced by rofi_view_trigger_global_action().
void helper_select_previous_matching_mode | ( | void | ) |
Switch to the previous matching method.
Definition at line 90 of file helper.c.
References config, CurrentMatchingMethod, MatchingMethodEnabled, and NUMMatchingMethodEnabled.
Referenced by rofi_view_trigger_global_action().
char * helper_string_replace_if_exists | ( | char * | string, |
... ) |
string | The string with elements to be replaced |
... | Set of {key}, value that will be replaced, terminated by a NULL |
Items {key} are replaced by the value if '{key}' is passed as key/value pair, otherwise removed from string. If the {key} is in between [] all the text between [] are removed if {key} is not found. Otherwise key is replaced and [ & ] removed.
This allows for optional replacement, f.e. '{ssh-client} [-t {title}] -e "{cmd}"' the '-t {title}' is only there if {title} is set.
Definition at line 1401 of file helper.c.
References helper_string_replace_if_exists_v().
Referenced by combi_mgrv().
int helper_token_match | ( | rofi_int_matcher *const * | tokens, |
const char * | input ) |
tokens | List of (input) tokens to match. |
input | The entry to match against. |
Tokenized match, match tokens to line input.
Definition at line 542 of file helper.c.
References config, and utf8_helper_simplify_string().
Referenced by dmenu_mode_dialog(), dmenu_token_match(), file_browser_token_match(), help_keys_token_match(), recursive_browser_token_match(), run_token_match(), script_token_match(), and ssh_token_match().
rofi_int_matcher ** helper_tokenize | ( | const char * | input, |
int | case_sensitive ) |
input | The input string. |
case_sensitive | Whether case is significant. |
Tokenize the string on spaces.
Definition at line 287 of file helper.c.
References config, and create_regex().
Referenced by dmenu_mode_dialog(), and rofi_view_refilter_real().
void helper_tokenize_free | ( | rofi_int_matcher ** | tokens | ) |
tokens | Array of regex objects |
Frees the array of matching objects.
Definition at line 147 of file helper.c.
Referenced by dmenu_mode_dialog(), rofi_view_free(), and rofi_view_refilter_real().
unsigned int levenshtein | ( | const char * | needle, |
const glong | needlelen, | ||
const char * | haystack, | ||
const glong | haystacklen, | ||
const int | case_sensitive ) |
needle | The string to find match weight off |
needlelen | The length of the needle |
haystack | The string to match against |
haystacklen | The length of the haystack |
case_sensitive | Whether case is significant. |
UTF-8 aware levenshtein distance calculation
Definition at line 813 of file helper.c.
References MIN3.
Referenced by filter_elements().
int parse_case_sensitivity | ( | const char * | input | ) |
input | String to parse |
Definition at line 1294 of file helper.c.
References config.
Referenced by dmenu_mode_dialog(), and rofi_view_refilter_real().
void parse_ranges | ( | char * | input, |
rofi_range_pair ** | list, | ||
unsigned int * | length ) |
Ranges.
input | String to parse |
list | List of ranges |
length | Length of list. |
ranges
Definition at line 1276 of file helper.c.
References parse_pair().
Referenced by dmenu_mode_init(), and parse_header_entry().
void remove_pid_file | ( | int | fd | ) |
Remove pid file
Definition at line 645 of file helper.c.
Referenced by create_pid_file(), and teardown().
char ConfigEntry * rofi_config_find_widget | ( | const char * | name, |
const char * | state, | ||
gboolean | exact ) |
name | The name of the element to find. |
state | The state of the element. |
exact | If the match should be exact, or parent can be included. |
Find the configuration element. If not exact, the closest specified element is returned.
Definition at line 780 of file theme.c.
References rofi_configuration, rofi_theme_find(), and rofi_theme_find_single().
Referenced by combi_mgrv(), file_browser_mode_init_config(), file_browser_mode_init_current_dir(), file_browser_mode_result(), input_history_save(), mode_get_display_name(), mode_get_icon(), recursive_browser_mode_init_config(), recursive_browser_mode_init_current_dir(), recursive_browser_mode_result(), rofi_view_set_user_timeout(), and rofi_view_take_action().
char * rofi_expand_path | ( | const char * | input | ) |
input | The path to expand |
Expand path, both ~
and ~<user>
Definition at line 781 of file helper.c.
Referenced by dmenu_mode_init(), file_browser_mode_completer(), file_browser_mode_result(), get_apps(), get_ssh(), helper_get_theme_path(), main(), parse_ssh_config_file(), rofi_view_setup_fake_transparency(), and script_mode_parse_setup().
char * rofi_force_utf8 | ( | const gchar * | data, |
ssize_t | length ) |
data | the unvalidated character array holding possible UTF-8 data |
length | the length of the data array |
Convert string to valid utf-8, replacing invalid parts with replacement character.
Definition at line 856 of file helper.c.
Referenced by get_file_browser(), read_add(), read_add_block(), and scan_dir().
char * rofi_latin_to_utf8_strdup | ( | const char * | input, |
gssize | length ) |
input | the char array holding latin text |
length | the length of the data array |
Converts latin to UTF-8.
Definition at line 850 of file helper.c.
Referenced by window_get_text_prop().
void rofi_output_formatted_line | ( | const char * | format, |
const char * | string, | ||
int | selected_line, | ||
const char * | filter ) |
format | The format string used. See below for possible syntax. |
string | The selected entry. |
selected_line | The selected line index. |
filter | The entered filter. |
Function that outputs the selected line in the user-specified format. Currently the following formats are supported:
This functions outputs the formatted string to stdout, appends a newline (
) character and calls flush on the file descriptor.
Definition at line 1315 of file helper.c.
Referenced by dmenu_mode_dialog(), and dmenu_print_results().
int rofi_scorer_fuzzy_evaluate | ( | const char * | pattern, |
glong | plen, | ||
const char * | str, | ||
glong | slen, | ||
const int | case_sensitive ) |
pattern | The user input to match against. |
plen | Pattern length. |
str | The input to match against pattern. |
slen | Length of str. |
case_sensitive | Whether case is significant. |
rofi_scorer_fuzzy_evaluate implements a global sequence alignment algorithm to find the maximum accumulated score by aligning pattern
to str
. It applies when pattern
is a subsequence of str
.
Scoring criteria
pattern
receive bonus because they usually have more significance than the rest. See PATTERN_START_MULTIPLIER/PATTERN_NON_START_MULTIPLIER.str
will reduce the score (gap penalty). See GAP_SCORE.The recurrence of the dynamic programming: dp[i][j]: maximum accumulated score by aligning pattern[0..i] to str[0..j] dp[0][j] = leading_gap_penalty(0, j) + score[j] dp[i][j] = max(dp[i-1][j-1] + CONSECUTIVE_SCORE, max(dp[i-1][k] + gap_penalty(k+1, j) + score[j] : k < j))
The first dimension can be suppressed since we do not need a matching scheme, which reduces the space complexity from O(N*M) to O(M)
Definition at line 962 of file helper.c.
References CONSECUTIVE_SCORE, FUZZY_SCORER_MAX_LENGTH, GAP_SCORE, LEADING_GAP_SCORE, MIN_SCORE, NON_WORD, PATTERN_NON_START_MULTIPLIER, PATTERN_START_MULTIPLIER, rofi_scorer_get_character_class(), and rofi_scorer_get_score_for().
Referenced by filter_elements().
Property * rofi_theme_find_property | ( | ConfigEntry * | widget, |
PropertyType | type, | ||
const char * | property, | ||
gboolean | exact ) |
widget | The widget to find the property on. |
type | The PropertyType to find. |
property | The property to find. |
exact | If the property should only be found on this widget, or on parents if not found. |
Find the property on the widget. If not exact, the parents are searched recursively until match is found.
Definition at line 743 of file theme.c.
References _PropertyValue::link, ThemeWidget::name, P_INHERIT, P_INTEGER, P_LINK, P_PADDING, ThemeWidget::parent, ThemeWidget::properties, PropertyTypeName, _PropertyValue::ref, rofi_theme_resolve_link_property(), Property::type, and Property::value.
Referenced by combi_mgrv(), file_browser_mode_init_config(), file_browser_mode_init_current_dir(), file_browser_mode_result(), input_history_save(), mode_get_display_name(), mode_get_icon(), recursive_browser_mode_init_config(), recursive_browser_mode_init_current_dir(), recursive_browser_mode_result(), rofi_theme_get_boolean(), rofi_theme_get_boolean_inside(), rofi_theme_get_color(), rofi_theme_get_color_inside(), rofi_theme_get_cursor_type(), rofi_theme_get_cursor_type_inside(), rofi_theme_get_distance(), rofi_theme_get_distance_inside(), rofi_theme_get_double(), rofi_theme_get_double_inside(), rofi_theme_get_double_integer_fb_inside(), rofi_theme_get_highlight(), rofi_theme_get_highlight_inside(), rofi_theme_get_image(), rofi_theme_get_image_inside(), rofi_theme_get_integer(), rofi_theme_get_integer_inside(), rofi_theme_get_list_distance(), rofi_theme_get_list_inside(), rofi_theme_get_list_strings(), rofi_theme_get_orientation(), rofi_theme_get_orientation_inside(), rofi_theme_get_padding(), rofi_theme_get_padding_inside(), rofi_theme_get_position(), rofi_theme_get_position_inside(), rofi_theme_get_string(), rofi_theme_get_string_inside(), rofi_theme_has_property(), rofi_theme_has_property_inside(), rofi_view_set_user_timeout(), and rofi_view_take_action().
int utf8_strncmp | ( | const char * | a, |
const char * | b, | ||
size_t | n ) |
a | UTF-8 string to compare |
b | UTF-8 string to compare |
n | Maximum number of characters to compare |
Compares the G_NORMALIZE_ALL_COMPOSE
forms of the two strings.
n
characters (not bytes) of a
are found, respectively, to be less than, to match, or be greater than the first n
characters (not bytes) of b
.