rofi 1.7.5
rofi.c File Reference
#include "config.h"
#include <errno.h>
#include <gmodule.h>
#include <locale.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sysexits.h>
#include <time.h>
#include <unistd.h>
#include <xcb/xcb.h>
#include <glib-unix.h>
#include <libgwater-xcb.h>
#include "resources.h"
#include "display.h"
#include "rofi.h"
#include "settings.h"
#include "helper.h"
#include "mode.h"
#include "modes/modes.h"
#include "widgets/textbox.h"
#include "xrmoptions.h"
#include "view-internal.h"
#include "view.h"
#include "rofi-icon-fetcher.h"
#include "theme.h"
#include "timings.h"
#include "mode-private.h"
Include dependency graph for rofi.c:

Go to the source code of this file.

Macros

#define G_LOG_DOMAIN   "Rofi"
 

Functions

static void rofi_collectmodes_destroy (void)
 
void rofi_add_error_message (GString *str)
 
void rofi_clear_error_messages (void)
 
void rofi_add_warning_message (GString *str)
 
void rofi_clear_warning_messages (void)
 
void process_result (RofiViewState *state)
 
void rofi_set_return_code (int code)
 
unsigned int rofi_get_num_enabled_modes (void)
 
const Moderofi_get_mode (unsigned int index)
 
static int mode_lookup (const char *name)
 
static void teardown (int pfd)
 
static void run_mode_index (ModeMode mode)
 
static void print_list_of_modes (int is_term)
 
static void print_main_application_options (int is_term)
 
static void help (G_GNUC_UNUSED int argc, char **argv)
 
static void help_print_disabled_mode (const char *mode)
 
static void help_print_mode_not_found (const char *mode)
 
static void help_print_no_arguments (void)
 
static void cleanup (void)
 
Moderofi_collect_modes_search (const char *name)
 
static gboolean rofi_collectmodes_add (Mode *mode)
 
static void rofi_collectmodes_dir (const char *base_dir)
 
static void rofi_collect_modes (void)
 
static void rofi_collectmodes_setup (void)
 
static int add_mode (const char *token)
 
static gboolean setup_modes (void)
 
void rofi_quit_main_loop (void)
 
static gboolean main_loop_signal_handler_int (G_GNUC_UNUSED gpointer data)
 
static void show_error_dialog (void)
 
static gboolean startup (G_GNUC_UNUSED gpointer data)
 
static gboolean record (G_GNUC_UNUSED void *data)
 
static void rofi_custom_log_function (const char *log_domain, G_GNUC_UNUSED GLogLevelFlags log_level, const gchar *message, gpointer user_data)
 
int main (int argc, char *argv[])
 
int rofi_theme_rasi_validate (const char *filename)
 

Variables

char * pidfile = NULL
 
const char * cache_dir = NULL
 
GList * list_of_error_msgs = NULL
 
GList * list_of_warning_msgs = NULL
 
G_MODULE_EXPORT char * config_path = NULL
 
Mode ** modes = NULL
 
Mode ** available_modes = NULL
 
unsigned int num_available_modes = 0
 
unsigned int num_modes = 0
 
unsigned int curr_mode = 0
 
NkBindings * bindings = NULL
 
GMainLoop * main_loop = NULL
 
static int dmenu_mode = FALSE
 
int return_code = EXIT_SUCCESS
 

Macro Definition Documentation

◆ G_LOG_DOMAIN

#define G_LOG_DOMAIN   "Rofi"

Log domain

Definition at line 30 of file rofi.c.

Function Documentation

◆ add_mode()

static int add_mode ( const char * token)
static

Parse the mode string, into internal array of type Mode.

String is split on separator ',' First the three build-in modes are checked: window, run, ssh if that fails, a script-mode is created.

Definition at line 648 of file rofi.c.

References mode_set_config(), modes, num_modes, rofi_collect_modes_search(), rofi_collectmodes_add(), script_mode_is_valid(), and script_mode_parse_setup().

Referenced by setup_modes(), and startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cleanup()

static void cleanup ( void )
static

◆ help()

static void help ( G_GNUC_UNUSED int argc,
char ** argv )
static

Definition at line 330 of file rofi.c.

References color_bold, color_green, color_red, color_reset, config_path, display_dump_monitor_layout(), find_arg(), print_dmenu_options(), print_list_of_modes(), print_main_application_options(), print_options(), rofi_theme_print_parsed_files(), and script_user_list().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ help_print_disabled_mode()

static void help_print_disabled_mode ( const char * mode)
static

Definition at line 407 of file rofi.c.

References color_green, color_red, color_reset, config, and Settings::modes.

Referenced by startup().

Here is the caller graph for this function:

◆ help_print_mode_not_found()

static void help_print_mode_not_found ( const char * mode)
static

Definition at line 420 of file rofi.c.

References available_modes, modes, rofi_mode::name, num_available_modes, num_modes, and rofi_add_error_message().

Referenced by setup_modes(), and startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ help_print_no_arguments()

static void help_print_no_arguments ( void )
static

Definition at line 437 of file rofi.c.

References available_modes, ERROR_MSG_MARKUP, modes, num_available_modes, num_modes, rofi_set_return_code(), and rofi_view_error_dialog().

Referenced by startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

◆ main_loop_signal_handler_int()

static gboolean main_loop_signal_handler_int ( G_GNUC_UNUSED gpointer data)
static

Definition at line 693 of file rofi.c.

References main_loop.

Referenced by main().

Here is the caller graph for this function:

◆ mode_lookup()

static int mode_lookup ( const char * name)
static
Parameters
nameName of the mode to lookup.

Find the index of the mode with name.

Returns
index of the mode in modes, -1 if not found.

Definition at line 158 of file rofi.c.

References mode_get_name(), modes, and num_modes.

Referenced by startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ print_list_of_modes()

static void print_list_of_modes ( int is_term)
static

Help function.

Definition at line 278 of file rofi.c.

References available_modes, color_green, color_red, color_reset, modes, rofi_mode::name, num_available_modes, and num_modes.

Referenced by help().

Here is the caller graph for this function:

◆ print_main_application_options()

static void print_main_application_options ( int is_term)
static

Definition at line 292 of file rofi.c.

References print_help_msg().

Referenced by help().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_result()

void process_result ( RofiViewState * state)
Parameters
stateThe Menu Handle

Check if a finalize function is set, and if sets executes it.

Load in the new mode.

Definition at line 217 of file rofi.c.

References curr_mode, MODE_EXIT, mode_result(), modes, NEXT_DIALOG, num_modes, PREVIOUS_DIALOG, RELOAD_DIALOG, RESET_DIALOG, rofi_view_clear_input(), rofi_view_free(), rofi_view_get_return_value(), rofi_view_get_selected_line(), rofi_view_get_user_input(), rofi_view_remove_active(), rofi_view_switch_mode(), RofiViewState::sw, RofiViewState::text, textbox_cursor_end(), and textbox_text().

Referenced by rofi_view_error_dialog(), and run_mode_index().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ record()

static gboolean record ( G_GNUC_UNUSED void * data)
static

Definition at line 795 of file rofi.c.

References rofi_capture_screenshot().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_collect_modes()

static void rofi_collect_modes ( void )
static

Find all available modes.

Definition at line 586 of file rofi.c.

References combi_mode, config, file_browser_mode, find_arg(), find_arg_str(), help_keys_mode, Settings::plugin_path, rofi_collectmodes_add(), rofi_collectmodes_dir(), run_mode, script_mode_gather_user_scripts(), and ssh_mode.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_collectmodes_add()

static gboolean rofi_collectmodes_add ( Mode * mode)
static
Parameters
modeAdd mode to list.
Returns
TRUE when success.

Definition at line 529 of file rofi.c.

References available_modes, rofi_mode::name, num_available_modes, and rofi_collect_modes_search().

Referenced by add_mode(), rofi_collect_modes(), and rofi_collectmodes_dir().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_collectmodes_destroy()

static void rofi_collectmodes_destroy ( void )
static

Definition at line 625 of file rofi.c.

References available_modes, mode_free(), rofi_mode::module, and num_available_modes.

Referenced by cleanup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_collectmodes_dir()

static void rofi_collectmodes_dir ( const char * base_dir)
static

Definition at line 542 of file rofi.c.

References ABI_VERSION, rofi_mode::abi_version, rofi_mode::module, and rofi_collectmodes_add().

Referenced by rofi_collect_modes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_collectmodes_setup()

static void rofi_collectmodes_setup ( void )
static

Setup configuration for config.

Definition at line 620 of file rofi.c.

References available_modes, mode_set_config(), and num_available_modes.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rofi_custom_log_function()

static void rofi_custom_log_function ( const char * log_domain,
G_GNUC_UNUSED GLogLevelFlags log_level,
const gchar * message,
gpointer user_data )
static

Definition at line 799 of file rofi.c.

Referenced by main().

Here is the caller graph for this function:

◆ rofi_theme_rasi_validate()

int rofi_theme_rasi_validate ( const char * filename)
Parameters
filenameThe file to validate.
Returns
the program exit code.

Definition at line 1148 of file rofi.c.

References list_of_error_msgs, list_of_warning_msgs, rofi_theme_parse_file(), and rofi_theme_parse_process_links().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_mode_index()

static void run_mode_index ( ModeMode mode)
static

Definition at line 183 of file rofi.c.

References config, curr_mode, ERROR_MSG_MARKUP, Settings::filter, find_arg(), find_arg_uint(), main_loop, mode_init(), modes, num_modes, process_result(), rofi_view_create(), rofi_view_error_dialog(), rofi_view_get_active(), rofi_view_set_active(), and rofi_view_set_selected_line().

Referenced by startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_modes()

static gboolean setup_modes ( void )
static

Definition at line 670 of file rofi.c.

References add_mode(), config, help_print_mode_not_found(), and Settings::modes.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ show_error_dialog()

static void show_error_dialog ( void )
static

Definition at line 698 of file rofi.c.

References ERROR_MSG_MARKUP, list_of_error_msgs, rofi_set_return_code(), and rofi_view_error_dialog().

Referenced by startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ startup()

◆ teardown()

static void teardown ( int pfd)
static

Teardown the gui.

Definition at line 170 of file rofi.c.

References display_early_cleanup(), remove_pid_file(), rofi_view_cleanup(), and textbox_cleanup().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ available_modes

Mode** available_modes = NULL

◆ bindings

NkBindings* bindings = NULL

Handle to NkBindings object for input devices.

Definition at line 133 of file rofi.c.

Referenced by cleanup(), display_setup(), main(), and parse_keys_abe().

◆ config_path

G_MODULE_EXPORT char* config_path = NULL

Path to the configuration file

Definition at line 118 of file rofi.c.

Referenced by cleanup(), help(), and main().

◆ curr_mode

unsigned int curr_mode = 0

Current selected mode

Definition at line 130 of file rofi.c.

Referenced by process_result(), and run_mode_index().

◆ dmenu_mode

int dmenu_mode = FALSE
static

Flag indicating we are in dmenu mode.

Definition at line 139 of file rofi.c.

Referenced by main(), and startup().

◆ list_of_error_msgs

GList * list_of_error_msgs = NULL

List of error messages.

Definition at line 86 of file rofi.c.

Referenced by main(), rofi_add_error_message(), rofi_clear_error_messages(), rofi_theme_rasi_validate(), show_error_dialog(), and startup().

◆ list_of_warning_msgs

GList* list_of_warning_msgs = NULL

◆ main_loop

GMainLoop* main_loop = NULL

Glib main loop.

Definition at line 136 of file rofi.c.

Referenced by cleanup(), display_setup(), main(), main_loop_signal_handler_int(), rofi_quit_main_loop(), run_mode_index(), and startup().

◆ modes

Mode** modes = NULL

Path to the configuration file in the new format Array holding all activated modes.

Definition at line 121 of file rofi.c.

Referenced by add_mode(), cleanup(), help_print_mode_not_found(), help_print_no_arguments(), mode_lookup(), print_list_of_modes(), process_result(), rofi_get_mode(), and run_mode_index().

◆ num_available_modes

◆ num_modes

unsigned int num_modes = 0

◆ pidfile

char* pidfile = NULL

Location of pidfile for this instance.

Definition at line 81 of file rofi.c.

Referenced by create_pid_file(), and main().

◆ return_code

int return_code = EXIT_SUCCESS

Rofi's return code

Definition at line 141 of file rofi.c.

Referenced by main(), and rofi_set_return_code().