From 7f7859534ab85624779a046917a0cbca47cd6b6f Mon Sep 17 00:00:00 2001 From: Rabbit Date: Mon, 9 Mar 2026 03:00:29 +0300 Subject: [PATCH] walker --- uwsm/env | 4 + uwsm/env-hyprland | 1 + walker/.config/elephant/elephant.toml | 1 + walker/.config/elephant/menus.toml | 2 + walker/.config/elephant/menus/nsfw.lua | 36 +++ walker/.config/elephant/menus/test.css | 109 ++++++++ walker/.config/elephant/menus/test.toml | 58 ++++ walker/.config/elephant/menus/wall.lua | 38 +++ walker/.config/walker/config.toml | 258 ++++++++++++++++++ .../walker/themes/test/item_menus-nsfw.xml | 46 ++++ walker/.config/walker/themes/test/style.css | 122 +++++++++ 11 files changed, 675 insertions(+) create mode 100644 uwsm/env create mode 100644 uwsm/env-hyprland create mode 100644 walker/.config/elephant/elephant.toml create mode 100644 walker/.config/elephant/menus.toml create mode 100644 walker/.config/elephant/menus/nsfw.lua create mode 100644 walker/.config/elephant/menus/test.css create mode 100644 walker/.config/elephant/menus/test.toml create mode 100644 walker/.config/elephant/menus/wall.lua create mode 100644 walker/.config/walker/config.toml create mode 100644 walker/.config/walker/themes/test/item_menus-nsfw.xml create mode 100644 walker/.config/walker/themes/test/style.css diff --git a/uwsm/env b/uwsm/env new file mode 100644 index 0000000..d6d3212 --- /dev/null +++ b/uwsm/env @@ -0,0 +1,4 @@ +export EDITOR=nvim +export XCURSOR_SIZE=24 +export SWWW_TRANSITION=any +export SWWW_TRANSITION_DURATION=1 diff --git a/uwsm/env-hyprland b/uwsm/env-hyprland new file mode 100644 index 0000000..93f41ef --- /dev/null +++ b/uwsm/env-hyprland @@ -0,0 +1 @@ +export HYPRCURSOR_SIZE=24 diff --git a/walker/.config/elephant/elephant.toml b/walker/.config/elephant/elephant.toml new file mode 100644 index 0000000..08e504d --- /dev/null +++ b/walker/.config/elephant/elephant.toml @@ -0,0 +1 @@ +launch_prefix = "runapp" diff --git a/walker/.config/elephant/menus.toml b/walker/.config/elephant/menus.toml new file mode 100644 index 0000000..6e88cf8 --- /dev/null +++ b/walker/.config/elephant/menus.toml @@ -0,0 +1,2 @@ +Cache=true +submenu = "nsfw" diff --git a/walker/.config/elephant/menus/nsfw.lua b/walker/.config/elephant/menus/nsfw.lua new file mode 100644 index 0000000..876843e --- /dev/null +++ b/walker/.config/elephant/menus/nsfw.lua @@ -0,0 +1,36 @@ +Name = "nsfw" +NamePretty = "Wallpaper switcher" +Icon = "applications-other" +Cache = true +Action = "swww img %VALUE%" +HideFromProviderlist = false +Description = "Wallpaper change menu" +SearchName = true +Parent = "wallpaper" +refresh_on_change = "/home/arch/Pictures/Wallpapers/NSFW" + +function GetEntries() + local entries = {} + local wallpaper_dir = "/home/arch/Pictures/Wallpapers/NSFW" + + local handle = io.popen("find '" .. + wallpaper_dir .. + "' -maxdepth 1 -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' 2>/dev/null") + if handle then + for line in handle:lines() do + local filename = line:match("([^/]+)$") + if filename then + table.insert(entries, { + Text = filename, + Subtext = "wallpaper", + Value = line, + Preview = line, + PreviewType = "file", + Icon = line + }) + end + end + handle:close() + end + return entries +end diff --git a/walker/.config/elephant/menus/test.css b/walker/.config/elephant/menus/test.css new file mode 100644 index 0000000..d2f320a --- /dev/null +++ b/walker/.config/elephant/menus/test.css @@ -0,0 +1,109 @@ +Name = "twallpaper" +NamePretty = "Wallpaper switcher" +Icon = "applications-other" +Cache = true +Action = "swww img %VALUE%" +HideFromProviderlist = false +Description = "Wallpaper change menu" +SearchName = true + +-- Конфигурация +local config = { + wallpaper_dir = os.getenv("HOME") .. "/Pictures/Wallpapers", + supported_formats = { + jpg = true, jpeg = true, png = true, + gif = true, bmp = true, webp = true + } +} + +function GetEntries() + local entries = {} + local lfs = require("lfs") + + -- Проверяем существование основной директории + local test_handle = io.open(config.wallpaper_dir, "r") + if not test_handle then + return {{ + Text = "Error: Wallpaper directory not found!", + Subtext = config.wallpaper_dir, + Value = "", + Preview = "", + PreviewType = "text", + Icon = "error" + }} + end + test_handle:close() + + -- Получаем список поддиректорий + local subdirs = {} + for item in lfs.dir(config.wallpaper_dir) do + if item ~= "." and item ~= ".." then + local path = config.wallpaper_dir .. "/" .. item + local attr = lfs.attributes(path) + if attr and attr.mode == "directory" then + table.insert(subdirs, item) + end + end + end + + -- Создаём запись для основной директории (все обои без группировки) + table.insert(entries, { + Text = "All wallpapers", + Subtext = "Show all available wallpapers", + Value = "all", + Preview = "", + PreviewType = "text", + Icon = "view-fullscreen" + }) + + -- Создаём записи для поддиректорий (подменю) + for _, dirname in ipairs(subdirs) do + table.insert(entries, { + Text = dirname, + Subtext = "Wallpapers from '" .. dirname .. "'", + Value = dirname, + Preview = "", + PreviewType = "text", + Icon = "folder" + }) + end + + return entries +end + +-- Функция для получения обоев из конкретной директории +function GetWallpapersFromDir(dirname) + local wallpapers = {} + local lfs = require("lfs") + local target_dir + + if dirname == "all" then + target_dir = config.wallpaper_dir + else + target_dir = config.wallpaper_dir .. "/" .. dirname + end + + for filename in lfs.dir(target_dir) do + if filename ~= "." and filename ~= ".." then + local filepath = target_dir .. "/" .. filename + local attr = lfs.attributes(filepath) + if attr and attr.mode == "file" then + local ext = filename:match("%.([^%.]+)$") + if ext and config.supported_formats[ext:lower()] then + table.insert(wallpapers, { + Text = filename, + Subtext = "From '" .. (dirname == "all" and "All" or dirname) .. "'", + Value = filepath, + Preview = filepath, + PreviewType = "file", + Icon = filepath + }) + end + end + end + end + + table.sort(wallpapers, function(a, b) return a.Text < b.Text end) + return wallpapers +end + diff --git a/walker/.config/elephant/menus/test.toml b/walker/.config/elephant/menus/test.toml new file mode 100644 index 0000000..5d4e124 --- /dev/null +++ b/walker/.config/elephant/menus/test.toml @@ -0,0 +1,58 @@ +name = "other" +name_pretty = "Other" +icon = "applications-other" + +[[entries]] +text = "Color Picker" +keywords = ["color", "picker", "hypr"] +actions = { "cp_use" = "sleep 0.5 && wl-copy $(hyprpicker)" } +icon = "color-picker" + +[[entries]] +icon = "zoom-in" +text = "Zoom Toggle" +actions = { "zoom_use" = "hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float) | if . > 1 then 1 else 1.5 end')" } + +[[entries]] +text = "Volume" +async = "echo $(wpctl get-volume @DEFAULT_AUDIO_SINK@)" +icon = "audio-volume-high" + +[entries.actions] +"volume_raise" = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+" +"volume_lower" = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-" +"volume_mute" = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0" +"volume_unmute" = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1" +"volume_set" = "wpctl set-volume @DEFAULT_AUDIO_SINK@ %VALUE%" + +[[entries]] +keywords = ["disk", "drive", "space"] +text = "Disk" +actions = { "disk_copy" = "wl-copy '%VALUE%'" } +async = """echo $(df -h / | tail -1 | awk '{print "Used: " $3 " - Available: " $4 " - Total: " $2}')""" +icon = "drive-harddisk" + +[[entries]] +text = "Mic" +async = "echo $(wpctl get-volume @DEFAULT_AUDIO_SOURCE@" +icon = "audio-input-microphone" +actions = { "mic_set" = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ %VALUE%" } + +[[entries]] +text = "System" +async = """echo $(echo "Memory: $(free -h | awk '/^Mem:/ {printf "%s/%s", $3, $2}') | CPU: $(top -bn1 | grep 'Cpu(s)' | awk '{printf "%.1f%%", 100 - $8}')")""" +icon = "computer" + +[[entries]] +text = "Today" +keywords = ["date", "today", "calendar"] +async = """echo $(date "+%H:%M - %d.%m. %A - KW %V")""" +icon = "clock" +actions = { "open_cal" = "xdg-open https://calendar.google.com" } + +[[entries]] +text = "uuctl" +keywords = ["uuctl"] +icon = "applications-system" +submenu = "nsfw" + diff --git a/walker/.config/elephant/menus/wall.lua b/walker/.config/elephant/menus/wall.lua new file mode 100644 index 0000000..a34f878 --- /dev/null +++ b/walker/.config/elephant/menus/wall.lua @@ -0,0 +1,38 @@ +Name = "wallpaper" +NamePretty = "Wallpaper switcher" +Description = "Wallpaper change menu" +Icon = "applications-other" +HideFromProviderlist = true +SearchName = true +Cache = true +RefreshOnChange = {"/home/arch/Pictures/Wallpapers"} +FixedOrder = true + +function GetEntries() + local wallpaper_dir = os.getenv('HOME').."/Pictures/Wallpapers" + local entries = {} + + local handle = io.popen("find '"..wallpaper_dir.."' -maxdepth 1 -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' 2>/dev/null") + if handle then + for line in handle:lines() do + local filename = line:match("([^/]+)$"):gsub('%..*', '') + if filename then + table.insert(entries, { + Text = filename, + PreviewType = "file", + Preview = line, + Icon = line, + Value = line, + Actions = {set = "swww img %VALUE%"} + }) + end + end + handle:close() + end + table.insert(entries, { + Text = "NSFW", + Icon = "applications-system", + SubMenu = "nsfw" + }) + return entries +end diff --git a/walker/.config/walker/config.toml b/walker/.config/walker/config.toml new file mode 100644 index 0000000..5860106 --- /dev/null +++ b/walker/.config/walker/config.toml @@ -0,0 +1,258 @@ +force_keyboard_focus = false # forces keyboard forcus to stay in Walker +close_when_open = true # close walker when invoking while already opened +click_to_close = true # closes walker if clicking outside of the main content area +as_window = false # launch walker as a regular window instead of layer shell application +single_click_activation = true # activate items with a single click opposed to a double click +selection_wrap = true # wrap list if at bottom or top +global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config +exact_search_prefix = "'" # disable fuzzy searching +theme = "test" # theme to use +disable_mouse = false # disable mouse (on input and list only) +debug = false # enables debug printing for some stuff, f.e. keybinds +page_jump_items = 10 # number of items to skip with Page Up/Down +hide_quick_activation = false # globally hide the quick activation buttons +hide_action_hints = false # globally hide the action hints +hide_action_hints_dmenu = false # hide the actions hints for dmenu +hide_return_action = false # hide actions that are bound to Return +resume_last_query = false # open walker with the last query in place +actions_as_menu = false # display all possible actions in a submenu +autoplay_videos = false # auto-play video previews + +[shell] +layer = "overlay" +anchor_top = true +anchor_bottom = true +anchor_left = true +anchor_right = true + +[columns] +"symbols" = 3 + +[placeholders] +"default" = { input = "Search", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other" + +[keybinds] +close = ["Escape"] +next = ["Down"] +previous = ["Up"] +left = ["Left"] +right = ["Right"] +down = ["Down"] +up = ["Up"] +toggle_exact = ["ctrl e"] +resume_last_query = ["ctrl r"] +quick_activate = ["F1", "F2", "F3", "F4"] +page_down = ["Page_Down"] +page_up = ["Page_Up"] +show_actions = ["alt j"] + +[providers] +default = [ + "desktopapplications", + "calc", + # "runner", + "websearch", +] # providers to be queried by default +empty = ["desktopapplications"] # providers to be queried when query is empty +ignore_preview = [] # providers that should not show previews +max_results = 50 # global max results + +[providers.argument_delimiter] # define the argument delimiter per provider +# runner = " " + +[providers.sets] # define your own defaults/empty sets of providers +[providers.max_results_provider] # define max results per provider in here + +[[providers.prefixes]] +prefix = ";" +provider = "providerlist" + +[[providers.prefixes]] +prefix = ">" +provider = "runner" + +[[providers.prefixes]] +prefix = "/" +provider = "files" + +[[providers.prefixes]] +prefix = "." +provider = "symbols" + +[[providers.prefixes]] +prefix = "!" +provider = "todo" + +[[providers.prefixes]] +prefix = "%" +provider = "bookmarks" + +[[providers.prefixes]] +prefix = "=" +provider = "calc" + +[[providers.prefixes]] +prefix = "@" +provider = "websearch" + +[[providers.prefixes]] +prefix = ":" +provider = "clipboard" + +[[providers.prefixes]] +prefix = "$" +provider = "windows" + +[providers.clipboard] +time_format = "relative" # format for the clipboard item date + +[providers.actions] # This will be MERGED/OVERWRITTEN with what the user specifies +fallback = [ + { action = "menus:open", label = "open", after = "Nothing" }, + { action = "menus:default", label = "run", after = "Close" }, + { action = "menus:parent", label = "back", bind = "Escape", after = "Nothing" }, + { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" }, +] + +dmenu = [{ action = "select", default = true, bind = "Return" }] + +providerlist = [ + { action = "activate", default = true, bind = "Return", after = "ClearReload" }, +] + +bluetooth = [ + { action = "find", bind = "ctrl f", after = "AsyncClearReload" }, + { action = "remove", bind = "ctrl d", after = "AsyncReload" }, + { action = "trust", bind = "ctrl t", after = "AsyncReload" }, + { action = "untrust", bind = "ctrl t", after = "AsyncReload" }, + { action = "pair", bind = "Return", after = "AsyncReload" }, + { action = "connect", default = true, bind = "Return", after = "AsyncReload" }, + { action = "disconnect", default = true, bind = "Return", after = "AsyncReload" }, + { action = "power_on", label = "Power On", bind = "ctrl e", after = "AsyncReload" }, + { action = "power_off", label = "Power Off", bind = "ctrl e", after = "AsyncReload" }, +] + +archlinuxpkgs = [ + { action = "install", bind = "Return", default = true }, + { action = "remove", bind = "Return" }, + { action = "show_all", label = "show all", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "refresh", label = "refresh", bind = "ctrl r", after = "AsyncReload" }, + { action = "visit_url", label = "open URL", bind = "ctrl o" }, + { action = "show_installed", label = "show installed", bind = "ctrl i", after = "AsyncClearReload" }, +] + +calc = [ + { action = "copy", default = true, bind = "Return" }, + { action = "delete", bind = "ctrl d", after = "AsyncReload" }, + { action = "delete_all", bind = "ctrl shift d", after = "AsyncReload" }, + { action = "save", bind = "ctrl s", after = "AsyncClearReload" }, +] + +websearch = [ + { action = "search", default = true, bind = "Return" }, + { action = "open_url", label = "open url", default = true, bind = "Return" }, +] + +desktopapplications = [ + { action = "start", default = true, bind = "Return" }, + { action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" }, + { action = "new_instance", label = "new instance", bind = "ctrl Return" }, + { action = "new_instance:keep", label = "new+next", bind = "ctrl alt Return", after = "KeepOpen" }, + { action = "pin", bind = "ctrl p", after = "AsyncReload" }, + { action = "unpin", bind = "ctrl p", after = "AsyncReload" }, + { action = "pinup", bind = "ctrl n", after = "AsyncReload" }, + { action = "pindown", bind = "ctrl m", after = "AsyncReload" }, +] + +dnfpackages = [ + { action = "install", label = "Install Package", bind = "Return", default = true }, + { action = "remove", label = "Remove Package", bind = "Return", default = true }, + { action = "show_all", label = "Show All", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "show_installed", label = "Show Installed", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "refresh", label = "Refresh", bind = "ctrl r", after = "AsyncClearReload" }, + { action = "visit_url", label = "Open URL", bind = "ctrl o" }, +] + +files = [ + { action = "open", default = true, bind = "Return" }, + { action = "opendir", label = "open dir", bind = "ctrl Return" }, + { action = "copypath", label = "copy path", bind = "ctrl shift c" }, + { action = "copyfile", label = "copy file", bind = "ctrl c" }, + { action = "localsend", label = "localsend", bind = "ctrl l" }, + { action = "refresh_index", label = "reload", bind = "ctrl r", after = "AsyncReload" }, +] + +1password = [ + { action = "copy_password", label = "copy password", default = true, bind = "Return" }, + { action = "copy_username", label = "copy username", bind = "shift Return" }, + { action = "copy_2fa", label = "copy 2fa", bind = "ctrl Return" }, +] + +bitwarden = [ + { action = "copypassword", label = "copy password", default = true, bind = "Return" }, + { action = "typepassword", label = "type password", default = true, bind = "ctrl p" }, + { action = "copyusername", label = "copy username", bind = "shift Return" }, + { action = "typeusername", label = "type username", bind = "ctrl u" }, + { action = "copyotp", label = "copy 2fa", bind = "ctrl Return" }, + { action = "typeotp", label = "type 2fa", bind = "ctrl t" }, + { action = "syncvault", label = "sync", bind = "ctrl s" }, +] + +todo = [ + { action = "save", default = true, bind = "Return", after = "AsyncClearReload" }, + { action = "save_next", label = "save & new", bind = "shift Return", after = "AsyncClearReload" }, + { action = "delete", bind = "ctrl d", after = "AsyncClearReload" }, + { action = "active", default = true, bind = "Return", after = "Nothing" }, + { action = "inactive", default = true, bind = "Return", after = "Nothing" }, + { action = "done", bind = "ctrl f", after = "Nothing" }, + { action = "change_category", bind = "ctrl y", label = "change category", after = "Nothing" }, + { action = "clear", bind = "ctrl x", after = "AsyncClearReload" }, + { action = "create", bind = "ctrl a", after = "AsyncClearReload" }, + { action = "search", bind = "ctrl a", after = "AsyncClearReload" }, +] + +runner = [ + { action = "run", default = true, bind = "Return" }, + { action = "runterminal", label = "run in terminal", bind = "shift Return" }, +] + +symbols = [ + { action = "run_cmd", label = "select", default = true, bind = "Return" }, +] + +unicode = [ + { action = "run_cmd", label = "select", default = true, bind = "Return" }, +] + +nirisessions = [ + { action = "start", label = "start", default = true, bind = "Return" }, + { action = "start_new", label = "start blank", bind = "ctrl Return" }, +] + +clipboard = [ + { action = "copy", default = true, bind = "Return" }, + { action = "remove", bind = "ctrl d", after = "AsyncClearReload" }, + { action = "remove_all", label = "clear", bind = "ctrl shift d", after = "AsyncClearReload" }, + { action = "show_images_only", label = "only images", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "show_text_only", label = "only text", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "show_combined", label = "show all", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "pause", bind = "ctrl shift p" }, + { action = "unpause", bind = "ctrl shift p" }, + { action = "unpin", bind = "ctrl p", after = "AsyncClearReload" }, + { action = "pin", bind = "ctrl p", after = "AsyncClearReload" }, + { action = "edit", bind = "ctrl o" }, + { action = "localsend", bind = "ctrl l" }, +] + +bookmarks = [ + { action = "save", bind = "Return", after = "AsyncClearReload" }, + { action = "open", default = true, bind = "Return" }, + { action = "delete", bind = "ctrl d", after = "AsyncClearReload" }, + { action = "change_category", label = "Change category", bind = "ctrl y", after = "Nothing" }, + { action = "change_browser", label = "Change browser", bind = "ctrl b", after = "Nothing" }, + { action = "import", label = "Import", bind = "ctrl i", after = "AsyncClearReload" }, + { action = "create", bind = "ctrl a", after = "AsyncClearReload" }, + { action = "search", bind = "ctrl a", after = "AsyncClearReload" }, +] + +niriactions = [{ action = "execute", bind = "Return" }] diff --git a/walker/.config/walker/themes/test/item_menus-nsfw.xml b/walker/.config/walker/themes/test/item_menus-nsfw.xml new file mode 100644 index 0000000..682bbe1 --- /dev/null +++ b/walker/.config/walker/themes/test/item_menus-nsfw.xml @@ -0,0 +1,46 @@ + + + + + + horizontal + 10 + + + + vertical + true + true + true + 0 + + + + true + 0 + 1 + 3 + true + + + + + + + + false + center + 0 + 0.5 + + + + diff --git a/walker/.config/walker/themes/test/style.css b/walker/.config/walker/themes/test/style.css new file mode 100644 index 0000000..cd4ce6d --- /dev/null +++ b/walker/.config/walker/themes/test/style.css @@ -0,0 +1,122 @@ +/* Color definitions */ +@define-color window_bg_color #24283b7f; +@define-color accent_bg_color #54546d; +@define-color theme_fg_color #c0caf5; +@define-color error_bg_color #C34043; +@define-color error_fg_color #DCD7BA; + +/* Reset all styles */ +* { + all: unset; +} + +/* Window wrapper */ +.box-wrapper { + box-shadow: + 0 19px 38px rgba(0, 0, 0, 0.3), + 0 15px 12px rgba(0, 0, 0, 0.22); + background: @window_bg_color; + padding: 10px; + border-radius: 8px; + border: 2px solid darker(@accent_bg_color); +} + +/* Input field */ +.input { + caret-color: @theme_fg_color; + background: lighter(@window_bg_color); + padding: 10px; + color: @theme_fg_color; + border-radius: 10px; +} + +.input placeholder { + opacity: 0.5; +} + +/* List items */ +.list, .keybinds { + color: @theme_fg_color; +} + +.item-box { + border-radius: 10px; + padding: 10px; +} + +child:hover .item-box, +child:selected .item-box { + background: alpha(@accent_bg_color, 0.25); +} + +.item-text { + font-size: 14px; +} + +.item-subtext { + font-size: 12px; + opacity: 0.5; +} + +.item-image, +.item-image-text { + margin-right: 10px; +} + +/* Quick activation labels */ +.item-quick-activation { + margin-left: 10px; + background: alpha(@accent_bg_color, 0.25); + border-radius: 5px; + padding: 10px; +} + +/* Placeholders */ +.placeholder, +.elephant-hint { + color: @theme_fg_color; + opacity: 0.5; +} + +/* Keybinds display */ +.keybinds-wrapper { + border-top: 1px solid lighter(@window_bg_color); + font-size: 12px; + opacity: 0.5; + color: @theme_fg_color; +} + +.keybind-bind { + font-weight: bold; + text-transform: lowercase; +} + +/* Error display */ +.error { + padding: 10px; + background: @error_bg_color; + color: @error_fg_color; + border-radius: 5px; +} + +/* Preview pane */ +.preview { + border: 1px solid alpha(@accent_bg_color, 0.25); + padding: 10px; + border-radius: 10px; + color: @theme_fg_color; +} + +/* Icon sizes */ +.normal-icons { + -gtk-icon-size: 16px; +} + +.large-icons { + -gtk-icon-size: 32px; +} + +/* Hide scrollbar */ +scrollbar { + opacity: 0; +}