bling/docs/widgets/app_launcher.md

6.4 KiB

🎨 App Launcher

A popup application launcher similar to Rofi

image by JavaCafe01

Usage

To enable:

local app_launcher = bling.widget.app_launcher()

To run the app launcher, call :toggle() on the launcher.

app_launcher:toggle()

Example Implementation:

local args = {
    apps_per_column = 1,
    sort_alphabetically = false,
    reverse_sort_alphabetically = true,
}
local app_launcher = bling.widget.app_launcher(args)

Available Options:

local args = {
    favorites = { "firefox", "wezterm" }                              -- Favorites are given priority and are bubbled to top of the list
    search_commands = true                                            -- Search by app name AND commandline command
    skip_names = { "Discord" }                                        -- List of apps to omit from launcher
    skip_commands = { "thunar" }                                      -- List of commandline commands to omit from launcher
    skip_empty_icons = true                                           -- Skip applications without icons
    sort_alphabetically = true                                        -- Sorts applications alphabetically
    reverse_sort_alphabetically = false                               -- Sort in reverse alphabetical order (NOTE: must set `sort_alphabetically = false` to take effect)
    select_before_spawn = true                                        -- When selecting by mouse, click once to select app, click once more to open the app.
    hide_on_left_clicked_outside = true                               -- Hide launcher on left click outside the launcher popup
    hide_on_right_clicked_outside = true                              -- Hide launcher on right click outside the launcher popup
    hide_on_launch = true                                             -- Hide launcher when spawning application
    try_to_keep_index_after_searching = false                         -- After a search, reselect the previously selected app
    reset_on_hide = true                                              -- When you hide the launcher, reset search query
    save_history = true                                               -- Save search history
    wrap_page_scrolling = true                                        -- Allow scrolling to wrap back to beginning/end of launcher list
    wrap_app_scrolling = true                                         -- Set app scrolling

    default_app_icon_name = "standard.svg"                            -- Sets default app icon name for apps without icon names
    default_app_icon_path = "~/icons/"                                -- Sets default app icon path for apps without icon paths
    icon_theme = "application"                                        -- Set icon theme
    icon_size = 24                                                    -- Set icon size

    type = "dock"                                                     -- awful.popup type ("dock", "desktop", "normal"...).  See awesomewm docs for more detail
    show_on_focused_screen = true                                     -- Should app launcher show on currently focused screen
    screen = awful.screen                                             -- Screen you want the launcher to launch to
    placement = awful.placement.top_left                              -- Where launcher should be placed ("awful.placement.centered").
    background = "#FFFFFF"                                            -- Set bg color
    border_width = dpi(0)                                             -- Set border width of popup
    border_color = "#FFFFFF"                                          -- Set border color of popup
    shape = function(cr, width, height)                               -- Set shape for launcher
      gears.shape.rectangle(cr, width, height)
    end

    prompt_height = dpi(50)                                           -- Prompt height
    prompt_margins = dpi(30)                                          -- Prompt margins
    prompt_paddings = dpi(15)                                         -- Prompt padding
    prompt_color = "#000000"                                          -- Prompt background color
    prompt_border_width = dpi(0)                                      -- Prompt border width
    prompt_border_color = "#000000"                                   -- Prompt border color
    prompt_text_halign = "center"                                     -- Prompt text horizontal alignment
    prompt_text_valign = "center"                                     -- Prompt text vertical alignment
    prompt_icon_text_spacing = dpi(10)                                -- Prompt icon text spacing
    prompt_show_icon = true                                           -- Should prompt show icon (?)
    prompt_icon_font = "Comic Sans"                                   -- Prompt icon font
    prompt_icon_color = "#000000"                                     -- Prompt icon color
    prompt_icon = ""                                                 -- Prompt icon
    prompt_icon_markup = string.format(
        "<span size='xx-large' foreground='%s'>%s</span>",
        args.prompt_icon_color, args.prompt_icon
    )                                                                 -- Prompt icon markup
    prompt_text = "<b>Search</b>:"                                    -- Prompt text
    prompt_start_text = "manager"                                     -- Set string for prompt to start with
    prompt_font = "Comic Sans"                                        -- Prompt font
    prompt_text_color = "#FFFFFF"                                     -- Prompt text color
    prompt_cursor_color = "#000000"                                   -- Prompt cursor color

    apps_per_row = 3                                                  -- Set how many apps should appear in each row
    apps_per_column = 3                                               -- Set how many apps should appear in each column

    app_normal_color = "#000000"                                      -- App normal color
    app_selected_color = "#FFFFFF"                                    -- App selected color
    app_name_normal_color = "#FFFFFF"                                 -- App name normal color
    app_name_selected_color = "#000000"                               -- App name selected color
}