walker
This commit is contained in:
4
uwsm/env
Normal file
4
uwsm/env
Normal file
@@ -0,0 +1,4 @@
|
||||
export EDITOR=nvim
|
||||
export XCURSOR_SIZE=24
|
||||
export SWWW_TRANSITION=any
|
||||
export SWWW_TRANSITION_DURATION=1
|
||||
1
uwsm/env-hyprland
Normal file
1
uwsm/env-hyprland
Normal file
@@ -0,0 +1 @@
|
||||
export HYPRCURSOR_SIZE=24
|
||||
1
walker/.config/elephant/elephant.toml
Normal file
1
walker/.config/elephant/elephant.toml
Normal file
@@ -0,0 +1 @@
|
||||
launch_prefix = "runapp"
|
||||
2
walker/.config/elephant/menus.toml
Normal file
2
walker/.config/elephant/menus.toml
Normal file
@@ -0,0 +1,2 @@
|
||||
Cache=true
|
||||
submenu = "nsfw"
|
||||
36
walker/.config/elephant/menus/nsfw.lua
Normal file
36
walker/.config/elephant/menus/nsfw.lua
Normal file
@@ -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
|
||||
109
walker/.config/elephant/menus/test.css
Normal file
109
walker/.config/elephant/menus/test.css
Normal file
@@ -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
|
||||
|
||||
58
walker/.config/elephant/menus/test.toml
Normal file
58
walker/.config/elephant/menus/test.toml
Normal file
@@ -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"
|
||||
|
||||
38
walker/.config/elephant/menus/wall.lua
Normal file
38
walker/.config/elephant/menus/wall.lua
Normal file
@@ -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
|
||||
258
walker/.config/walker/config.toml
Normal file
258
walker/.config/walker/config.toml
Normal file
@@ -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" }]
|
||||
46
walker/.config/walker/themes/test/item_menus-nsfw.xml
Normal file
46
walker/.config/walker/themes/test/item_menus-nsfw.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk" version="4.0"></requires>
|
||||
<object class="GtkBox" id="ItemBox">
|
||||
<style>
|
||||
<class name="item-box"></class>
|
||||
</style>
|
||||
<property name="orientation">horizontal</property>
|
||||
<property name="spacing">10</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="ItemTextBox">
|
||||
<style>
|
||||
<class name="item-text-box"></class>
|
||||
</style>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">true</property>
|
||||
<property name="vexpand">true</property>
|
||||
<property name="vexpand-set">true</property>
|
||||
<property name="spacing">0</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="ItemText">
|
||||
<style>
|
||||
<class name="item-text"></class>
|
||||
</style>
|
||||
<property name="vexpand">true</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="lines">1</property>
|
||||
<property name="ellipsize">3</property>
|
||||
<property name="single-line-mode">true</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="QuickActivation">
|
||||
<style>
|
||||
<class name="item-quick-activation"></class>
|
||||
</style>
|
||||
<property name="wrap">false</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
122
walker/.config/walker/themes/test/style.css
Normal file
122
walker/.config/walker/themes/test/style.css
Normal file
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user