Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
wofi(3)			   Library Functions Manual		       wofi(3)

NAME
       wofi - Mode functions and documentation

DESCRIPTION
       Wofi provides a C API which can be used for developing 3rd party	modes.
       These  modes  should  be	 compiled  to  a shared	object which should be
       placed in $XDG_CONFIG_HOME/wofi/plugins.	If $XDG_CONFIG_HOME is not de-
       fined then it will default to ~/.config.

       It is very important to note that this API is not stable.  It's	mostly
       stable however if something comes up that requires a substantial	change
       things will be changed. This shouldn't happen too much but has happened
       in the past and might in	the future.

HEADER FILES
       There  are  2  header  files  required  in  order  to use the wofi API,
       wofi_api.h and map.h. utils.h might be useful to	include	if you want  a
       few  helper functions but it is not required. utils.h will not be docu-
       mented here as it's outside the scope of	the mode API.

MODE FUNCTIONS
       The following list of functions are the functions which can be  defined
       inside of your mode which will be called	to do setup, and acquire vari-
       ous pieces of information from the mode.

       void init(struct	mode* mode, struct map*	config)
	      Defining	this  function is required. This function is called to
	      setup your plugin	and provide it with several pointers which are
	      described	below.

	      struct mode* mode	- used to identify your	mode, it is passed  to
	      a	large number of	the API	functions to identify your mode.

	      struct map* config - all of the config options that the user de-
	      fined  for  your	mode. Information on how to access this	can be
	      found in wofi-map(3).

       void load(struct	mode* mode)
	      Defining this function is	optional. This function	is called  be-
	      fore  ALL	others and provides your mode pointer as early as pos-
	      sible.

	      struct mode* mode	- used to identify your	mode, it is passed  to
	      a	large number of	the API	functions to identify your mode.

       const char** get_arg_names(void)
	      Defining	this  function is optional. This function is called to
	      get an array of config options which can be set by the user. All
	      of these options have the	name of	 your  mode  prefixed  on  the
	      front  so	if your	array is for example {"opt1", "opt2"} the con-
	      fig options defined will be mode-opt1=value and  mode-opt2=value
	      where mode is the	name of	the shared object.

       size_t get_arg_count(void)
	      Defining	this  function is optional. This function is called to
	      get the number of	arguments returned by get_arg_names(void).

       void exec(const char* cmd)
	      Defining this function is	required. This function	is called when
	      the user selects an entry.

	      const char* cmd -	The action registered to the  selected	entry.
	      If  your	mode allows executing searches directly	then this will
	      be the search contents if	no matching entries exist.

       struct widget* get_widget(void)
	      Defining this function is	optional. This function	is  called  to
	      request the next widget to be added. See wofi_create_widget() in
	      wofi-api(3)  on  how  to obtain a	struct widget*.	NULL should be
	      returned to denote no more widgets are available.

       bool no_entry(void)
	      Defining this function is	optional. This function	is  called  to
	      find  out	 whether  or  not  this	mode supports running searches
	      without any matching entries. The	default	is false, if you  wish
	      to  allow	 your  mode  to	take searches directly you must	define
	      this and return true.

								       wofi(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=wofi&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help