mirror of
https://github.com/davatorium/rofi.git
synced 2024-11-18 13:54:36 -05:00
[Plugins] Add -no-plugins and -plugin-path options
* -no-plugins disables the loading of plugins. * -plugin-path specifies the directory used by rofi to look for plugins.
This commit is contained in:
parent
01159b29f0
commit
04e764c8e6
6 changed files with 32 additions and 3 deletions
|
@ -116,4 +116,5 @@ Settings config = {
|
|||
.color_active = NULL,
|
||||
.color_urgent = NULL,
|
||||
.color_window = NULL,
|
||||
.plugin_path = PLUGIN_PATH,
|
||||
};
|
||||
|
|
|
@ -222,6 +222,15 @@ Hide the indicator that shows what part of the string is matched.
|
|||
|
||||
Disables lazy grab, this forces the keyboard being grabbed before gui is shown.
|
||||
|
||||
`-no-plugins`
|
||||
|
||||
Disable plugin loading.
|
||||
|
||||
`-plugin-path` *directory*
|
||||
|
||||
Specify the directory where *rofi* should look for plugins.
|
||||
|
||||
|
||||
### Matching
|
||||
|
||||
`-matching` *method*
|
||||
|
|
12
doc/rofi.1
12
doc/rofi.1
|
@ -312,6 +312,18 @@ Hide the indicator that shows what part of the string is matched\.
|
|||
.P
|
||||
Disables lazy grab, this forces the keyboard being grabbed before gui is shown\.
|
||||
.
|
||||
.P
|
||||
\fB\-no\-plugins\fR
|
||||
.
|
||||
.P
|
||||
Disable plugin loading\.
|
||||
.
|
||||
.P
|
||||
\fB\-plugin\-path\fR \fIdirectory\fR
|
||||
.
|
||||
.P
|
||||
Specify the directory where \fIrofi\fR should look for plugins\.
|
||||
.
|
||||
.SS "Matching"
|
||||
\fB\-matching\fR \fImethod\fR
|
||||
.
|
||||
|
|
|
@ -165,6 +165,8 @@ typedef struct
|
|||
gboolean show_match;
|
||||
|
||||
char *theme;
|
||||
/** Path where plugins can be found. */
|
||||
char * plugin_path;
|
||||
} Settings;
|
||||
/** Global Settings structure. */
|
||||
extern Settings config;
|
||||
|
|
|
@ -305,6 +305,7 @@ static void print_main_application_options ( int is_term )
|
|||
print_help_msg ( "-normal-window", "", "In dmenu mode, behave as a normal window. (experimental)", NULL, is_term );
|
||||
print_help_msg ( "-show", "[mode]", "Show the mode 'mode' and exit. The mode has to be enabled.", NULL, is_term );
|
||||
print_help_msg ( "-no-lazy-grab", "", "Disable lazy grab that, when fail to grab keyboard, does not block but retry later.", NULL, is_term );
|
||||
print_help_msg ( "-no-plugins", "", "Disable loading of external plugins.", NULL, is_term );
|
||||
}
|
||||
static void help ( G_GNUC_UNUSED int argc, char **argv )
|
||||
{
|
||||
|
@ -547,7 +548,7 @@ static void rofi_collect_modi_dir ( const char *base_dir )
|
|||
Mode *m = NULL;
|
||||
if ( g_module_symbol ( mod, "mode", (gpointer *) &m ) ) {
|
||||
if ( m->abi_version != ABI_VERSION ) {
|
||||
g_warning ( "ABI version of plugin does not match: %08X expecting: %08X", m->abi_version, ABI_VERSION );
|
||||
g_warning ( "ABI version of plugin: '%s' does not match: %08X expecting: %08X", dn, m->abi_version, ABI_VERSION );
|
||||
g_module_close ( mod );
|
||||
}
|
||||
else {
|
||||
|
@ -558,7 +559,7 @@ static void rofi_collect_modi_dir ( const char *base_dir )
|
|||
}
|
||||
}
|
||||
else {
|
||||
g_warning ( "Symbol 'mode' not found in module: %s", fn );
|
||||
g_warning ( "Symbol 'mode' not found in module: %s", dn );
|
||||
g_module_close ( mod );
|
||||
}
|
||||
}
|
||||
|
@ -585,7 +586,9 @@ static void rofi_collect_modi ( void )
|
|||
rofi_collect_modi_add ( &combi_mode );
|
||||
rofi_collect_modi_add ( &help_keys_mode );
|
||||
|
||||
rofi_collect_modi_dir ( PLUGIN_PATH );
|
||||
if ( find_arg ( "-no-plugins" ) < 0 ) {
|
||||
rofi_collect_modi_dir ( config.plugin_path );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -180,6 +180,8 @@ static XrmOption xrmOptions[] = {
|
|||
"Color scheme for active row", CONFIG_DEFAULT },
|
||||
{ xrm_String, "color-window", { .str = &config.color_window }, NULL,
|
||||
"Color scheme window", CONFIG_DEFAULT },
|
||||
{ xrm_String, "plugin-path", { .str = &config.plugin_path }, NULL,
|
||||
"Directory containing plugins", CONFIG_DEFAULT },
|
||||
};
|
||||
|
||||
/** Dynamic array of extra options */
|
||||
|
|
Loading…
Reference in a new issue