diff --git a/widget/app_launcher/init.lua b/widget/app_launcher/init.lua index 914c6c1..5184598 100644 --- a/widget/app_launcher/init.lua +++ b/widget/app_launcher/init.lua @@ -25,6 +25,14 @@ local INOTIFY_SCRIPT = [[ bash -c "while (inotifywait -e modify /usr/share/appli local AWESOME_SENSIBLE_TERMINAL_PATH = debug.getinfo(1).source:match("@?(.*/)") .. "awesome-sensible-terminal" +local function default_value(value, default) + if value == nil then + return default + else + return value + end +end + local function string_levenshtein(str1, str2) local len1 = string.len(str1) local len2 = string.len(str2) @@ -693,51 +701,50 @@ end local function new(args) args = args or {} - args.favorites = args.favorites or {} - args.search_commands = args.search_commands == nil and true or args.search_commands - args.skip_names = args.skip_names or {} - args.skip_commands = args.skip_commands or {} - args.skip_empty_icons = args.skip_empty_icons ~= nil and args.skip_empty_icons or false - args.sort_alphabetically = args.sort_alphabetically == nil and true or args.sort_alphabetically - args.reverse_sort_alphabetically = args.reverse_sort_alphabetically ~= nil and args.reverse_sort_alphabetically or false - args.select_before_spawn = args.select_before_spawn == nil and true or args.select_before_spawn - args.hide_on_left_clicked_outside = args.hide_on_left_clicked_outside == nil and true or args.hide_on_left_clicked_outside - args.hide_on_right_clicked_outside = args.hide_on_right_clicked_outside == nil and true or args.hide_on_right_clicked_outside - args.hide_on_launch = args.hide_on_launch == nil and true or args.hide_on_launch - args.try_to_keep_index_after_searching = args.try_to_keep_index_after_searching ~= nil and args.try_to_keep_index_after_searching or false - args.reset_on_hide = args.reset_on_hide == nil and true or args.reset_on_hide - args.save_history = args.save_history == nil and true or args.save_history - args.wrap_page_scrolling = args.wrap_page_scrolling == nil and true or args.wrap_page_scrolling - args.wrap_app_scrolling = args.wrap_app_scrolling == nil and true or args.wrap_app_scrolling + args.favorites = default_value(args.favorites, {}) + args.search_commands = default_value(args.search_commands, true) + args.skip_names = default_value(args.skip_names, {}) + args.skip_commands = default_value(args.skip_commands, {}) + args.skip_empty_icons = default_value(args.skip_empty_icons, false) + args.sort_alphabetically = default_value(args.sort_alphabetically, true) + args.reverse_sort_alphabetically = default_value(args.reverse_sort_alphabetically, false) + args.select_before_spawn = default_value(args.select_before_spawn, true) + args.hide_on_left_clicked_outside = default_value(args.hide_on_left_clicked_outside, true) + args.hide_on_right_clicked_outside = default_value(args.hide_on_right_clicked_outside, true) + args.hide_on_launch = default_value(args.hide_on_launch, true) + args.try_to_keep_index_after_searching = default_value(args.try_to_keep_index_after_searching, false) + args.reset_on_hide = default_value(args.reset_on_hide, true) + args.save_history = default_value(args.save_history, true) + args.wrap_page_scrolling = default_value(args.wrap_page_scrolling, true) + args.wrap_app_scrolling = default_value(args.wrap_app_scrolling, true) - args.type = args.type or "dock" - args.show_on_focused_screen = args.show_on_focused_screen == nil and true or args.show_on_focused_screen - args.screen = args.screen or capi.screen.primary - args.placement = args.placement or awful.placement.centered - args.rubato = args.rubato or nil - args.background = args.background or "#000000" - args.border_width = args.border_width or beautiful.border_width or dpi(0) - args.border_color = args.border_color or beautiful.border_color or "#FFFFFF" - args.shape = args.shape or nil + args.type = default_value(args.type, "dock") + args.show_on_focused_screen = default_value(args.show_on_focused_screen, true) + args.screen = default_value(args.screen, capi.screen.primary) + args.placement = default_value(args.placement, awful.placement.centered) + args.rubato = default_value(args.rubato, nil) + args.background = default_value(args.background, "#000000") + args.border_width = default_value(args.border_width, beautiful.border_width or dpi(0)) + args.border_color = default_value(args.border_color, beautiful.border_color or "#FFFFFF") + args.shape = default_value(args.shape, nil) - args.default_app_icon_name = args.default_app_icon_name or nil - args.default_app_icon_path = args.default_app_icon_path or nil - args.icon_theme = args.icon_theme or nil - args.icon_size = args.icon_size or nil + args.default_app_icon_name = default_value(args.default_app_icon_name, nil) + args.default_app_icon_path = default_value(args.default_app_icon_path, nil) + args.icon_theme = default_value(args.icon_theme, nil) + args.icon_size = default_value(args.icon_size, nil) - args.apps_per_row = args.apps_per_row or 5 - args.apps_per_column = args.apps_per_column or 3 - args.apps_margin = args.apps_margin or dpi(30) - args.apps_spacing = args.apps_spacing or dpi(30) - args.expand_apps = args.expand_apps == nil and true or args.expand_apps + args.apps_per_row = default_value(args.apps_per_row, 5) + args.apps_per_column = default_value(args.apps_per_column, 3) + args.apps_spacing = default_value(args.apps_spacing, dpi(30)) + args.expand_apps = default_value(args.expand_apps, true) - args.prompt_bg_color = args.prompt_bg_color or beautiful.fg_normal or "#FFFFFF" - args.prompt_icon_font = args.prompt_icon_font or beautiful.font - args.prompt_icon_color = args.prompt_icon_color or beautiful.bg_normal or "#000000" - args.prompt_icon = args.prompt_icon or "" - args.prompt_label = args.prompt_label or "Search: " - args.prompt_font = args.prompt_font or beautiful.font - args.prompt_text_color = args.prompt_text_color or beautiful.bg_normal or "#000000" + args.prompt_bg_color = default_value(args.prompt_bg_color, beautiful.fg_normal or "#FFFFFF") + args.prompt_icon_font = default_value(args.prompt_icon_font, beautiful.font) + args.prompt_icon_color = default_value(args.prompt_icon_color, beautiful.bg_normal or "#000000") + args.prompt_icon = default_value(args.prompt_icon, "") + args.prompt_label = default_value(args.prompt_label, "Search: ") + args.prompt_font = default_value(args.prompt_font, beautiful.font) + args.prompt_text_color = default_value(args.prompt_text_color, beautiful.bg_normal or "#000000") args.app_normal_color = args.app_normal_color or beautiful.bg_normal or "#000000" args.app_normal_hover_color = args.app_normal_hover_color or (color.is_dark(args.app_normal_color) or color.is_opaque(args.app_normal_color)) and @@ -747,9 +754,9 @@ local function new(args) args.app_selected_hover_color = args.app_selected_hover_color or (color.is_dark(args.app_normal_color) or color.is_opaque(args.app_normal_color)) and color.rgba_to_hex(color.multiply(color.hex_to_rgba(args.app_selected_color), 2.5)) or color.rgba_to_hex(color.multiply(color.hex_to_rgba(args.app_selected_color), 0.5)) - args.app_name_normal_color = args.app_name_normal_color or beautiful.fg_normal or "#FFFFFF" - args.app_name_selected_color = args.app_name_selected_color or beautiful.bg_normal or "#000000" - args.app_name_font = args.app_name_font or beautiful.font + args.app_name_normal_color = default_value(args.app_name_normal_color, beautiful.fg_normal or "#FFFFFF") + args.app_name_selected_color = default_value(args.app_name_selected_color, beautiful.bg_normal or "#000000") + args.app_name_font = default_value(args.app_name_font, beautiful.font) local ret = gobject {} ret._private = {} @@ -860,7 +867,7 @@ local function new(args) }, { widget = wibox.container.margin, - margins = ret.apps_margin, + margins = dpi(30), ret._private.grid } }