Provided by: wofi_1.3-1_amd64 bug

NAME

       wofi - Built in modes and other features

DESCRIPTION

       Wofi  contains  several  built in modes as well as a lot of other features including combi
       which are documented here.

       The config options documented here are  stripped  of  mode  names.  Mode  specific  config
       options  are  placed  in  the  config file in the format mode-example_opt=val. For example
       dmenu has  an  option  called  parse_action  which  would  be  placed  in  the  config  as
       dmenu-parse_action=true.

MODES

       Currently wofi has 3 built in modes

       1.  run - searches $PATH for executables and allows them to be run by selecting them.

       2.  drun   -  searches  $XDG_DATA_HOME/applications  and  $XDG_DATA_DIRS/applications  for
           desktop files and allows them to be run by selecting them.

       3.  dmenu - reads from stdin and displays options which when selected will  be  output  to
           stdout.

       In   the  event  $XDG_DATA_HOME  is  not  specified  it  defaults  to  ~/.local/share.  If
       $XDG_DATA_DIRS is not specified it defaults to /usr/local/share:/usr/share.

       Combi is not a mode however it does exist as a feature. You can use  it  by  doing  --show
       mode1,mode2,mode3,etc.  You  can  mix  and match any number of modes however each mode can
       only be loaded once so doing something like --show run,drun,run is not supported  although
       I'm not sure why you'd do that in the first place.

DMENU CONFIG OPTIONS

       parse_action=BOOL
              If true the result returned by dmenu will be stripped of image escape sequences and
              pango markup, default is false.

       separator=CHAR
              The character used to separate dmenu entries, default is \n.

       print_line_num=BOOL
              When an entry is selected the number of the  line  the  entry  was  on  is  printed
              instead   of  the  entry  itself.  This  disables  caching  as  it's  fundamentally
              incompatible with it.

RUN

       In run mode holding ctrl while running an entry will cause arguments to be parsed even  if
       always_parse_args=false. Holding shift will cause the entry to be run in a terminal.

RUN CONFIG OPTIONS

       always_parse_args=BOOL
              If  true spaces will not be treated as part of the executable name but rather as an
              argument separator equivalent to holding control while pressing enter,  default  is
              false.

       show_all=BOOL
              If  true  shows  all the entries in path, this will show entries that have the same
              executable name, for example /bin/bash and /usr/bin/bash will be  shown  separately
              as  bash instead of having one bash entry for the first one encountered, default is
              true.

       print_command=BOOL
              If true the executable that would be run will  be  printed  to  stdout  instead  of
              executing it, default is false.

DRUN CONFIG OPTIONS

       print_command=BOOL
              If  true  the  command  used  to  launch the desktop file will be printed to stdout
              instead of invoking it, default is false.

       display_generic=BOOL
              If true then generic names will be displayed in () next to  the  application  name,
              default is false.

DRUN

       When  images  are  enabled  drun  mode  will pull icon themes however being a GTK app it's
       possible you'll need to run gtk-update-icon-cache to get them to apply.

LOCATIONS

       There are 9 possible locations which can be specified either by name  or  by  number,  the
       number  scheme  is  the same as in rofi and the corresponding number is listed next to the
       names below, the default is center.

       1.  center 0

       2.  top_left 1

       3.  top 2

       4.  top_right 3

       5.  right 4

       6.  bottom_right 5

       7.  bottom 6

       8.  bottom_left 7

       9.  left 8

       The x and y offsets are applied based on layer-shell anchors which means an x  offset  can
       only  be applied if wofi is anchored on the x axis, i.e. you can only use an x offset with
       the top_left, top_right, right, bottom_right, bottom_left,  and  left  locations.  center,
       top,  and  bottom  can't  have x offsets as they're not anchored on the x axis. Likewise y
       offsets can only be  applied  to  top_left,  top,  top_right,  bottom_right,  bottom,  and
       bottom_left  locations.  center,  left, and right can't have y offsets because they're not
       anchored to the y axis. Since center can't have offsets on either as it's not anchored  to
       any  axis  any  x  or  y  offset  applied while using center will override the location to
       top_left for backwards compatibility reasons seeing as not doing so  would  simply  ignore
       the offsets anyway.

ORDER

       There  are  2 order options currently, default and alphabetical. Default means the entries
       are displayed in the order they are added by the mode, for all  built  in  modes  this  is
       cached  items  first,  followed  by other entries in no specific order. Alphabetical means
       entries are alphabetical sorted period. These orders only affect the order when no  search
       has  been  entered. Once a search is entered the order is re-arranged based on the current
       matching preference and this order is ignored.

CACHING

       Caching cannot be disabled however the cache file can be set to /dev/null  to  effectively
       disable it.

WINDOW SWITCHER

       Wofi  does not have the ability to do window switching on its own as there is no way to do
       this with wayland/wlroots protocols however if you're using sway you can use swaymsg  with
       dmenu mode to accomplish it.  The following script can be used to do window switching:

       swaymsg -t get_tree |
         jq   -r   '.nodes[].nodes[]   |  if  .nodes  then  [recurse(.nodes[])]  else  []  end  +
       .floating_nodes | .[] | select(.nodes==[]) | ((.id | tostring) + " " + .name)' |
         wofi --show dmenu | {
           read -r id name
           swaymsg "[con_id=$id]" focus
       }

WIDGET LAYOUT

       This section is for advanced CSS which needs more control  than  the  built  in  wofi  CSS
       names/classes  allow  for. This widget layout is subject to change at any time and without
       warning so your CSS might very well  break  if  you  rely  on  this.  Widgets  have  their
       corresponding names next to them if they have one.

       window - #window
           box - #outer-box
               entry - #input

               scrolledwindow - #scroll
                   viewport
                       box
                           flowbox - #inner-box
                               flowboxchild - #entry

                                   .entry - #unselected or #selected
                                   This  only  exists  if  there's  ONLY  1  action.  This  is  a
                                   WofiPropertyBox which has no CSS node and should probably  not
                                   be  used, the name is dependent on whether or not the entry is
                                   selected. See wofi(5) on #selected and #unselected for info.

                                       image
                                       This is only present if an image is present in  the  entry
                                       and  might  occur  multiple  times  if multiple images are
                                       present.

                                       label
                                       This is only present if text is present in the  entry  and
                                       might  occur  multiple  times  if  there are multiple text
                                       objects in a single entry.

                                   expander
                                   This and its children only exist if there are multiple actions
                                   on the entry

                                       .entry - #unselected or #selected
                                       The  main  action.  This is a WofiPropertyBox which has no
                                       CSS node and should probably not  be  used,  the  name  is
                                       dependent  on  whether  or  not the entry is selected. See
                                       wofi(5) on #selected and #unselected for info.

                                           image
                                           This is only present if an image  is  present  in  the
                                           entry  and  might  occur  multiple  times  if multiple
                                           images are present.

                                           label
                                           This is only present if text is present in  the  entry
                                           and  might  occur multiple times if there are multiple
                                           text objects in a single entry.

                                       list
                                       This contains all the secondary actions
                                           row - #entry
                                               .entry - #unselected or #selected
                                               This is a WofiPropertyBox which has  no  CSS  node
                                               and  should  probably  not  be  used,  the name is
                                               dependent on whether or not the entry is selected.
                                               See wofi(5) on #selected and #unselected for info.

                                                   image
                                                   This is only present if an image is present in
                                                   the entry and might occur  multiple  times  if
                                                   multiple images are present.

                                                   label
                                                   This is only present if text is present in the
                                                   entry and might occur multiple times if  there
                                                   are multiple text objects in a single entry.
                   scrollbar

                                                                                          wofi(7)