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