611 lines
15 KiB
Nix
611 lines
15 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib;
|
|
with lib.custom; let
|
|
cfg = config.apps.helpers.walker;
|
|
in {
|
|
options.apps.helpers.walker = with types; {
|
|
enable = mkBoolOpt false "Enable Walker";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
programs.walker = {
|
|
enable = true;
|
|
runAsService = true;
|
|
|
|
theme = {
|
|
layout = {
|
|
ui = {
|
|
anchors = {
|
|
bottom = true;
|
|
left = true;
|
|
right = true;
|
|
top = true;
|
|
};
|
|
|
|
window = {
|
|
h_align = "fill";
|
|
v_align = "fill";
|
|
|
|
box = {
|
|
h_align = "center";
|
|
width = 450;
|
|
|
|
bar = {
|
|
orientation = "horizontal";
|
|
position = "end";
|
|
|
|
entry = {
|
|
h_align = "fill";
|
|
h_expand = true;
|
|
|
|
icon = {
|
|
h_align = "center";
|
|
h_expand = true;
|
|
pixel_size = 24;
|
|
theme = "";
|
|
};
|
|
};
|
|
};
|
|
|
|
margins = {
|
|
top = 450;
|
|
};
|
|
|
|
ai_scroll = {
|
|
name = "aiScroll";
|
|
h_align = "fill";
|
|
v_align = "fill";
|
|
max_height = 300;
|
|
min_width = 400;
|
|
height = 300;
|
|
width = 400;
|
|
|
|
margins = {
|
|
top = 8;
|
|
};
|
|
|
|
list = {
|
|
name = "aiList";
|
|
orientation = "vertical";
|
|
width = 400;
|
|
spacing = 10;
|
|
|
|
item = {
|
|
name = "aiItem";
|
|
h_align = "fill";
|
|
v_align = "fill";
|
|
x_align = 0;
|
|
y_align = 0;
|
|
wrap = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
scroll = {
|
|
list = {
|
|
marker_color = "#1BFFE1";
|
|
max_height = 300;
|
|
max_width = 400;
|
|
min_width = 400;
|
|
width = 400;
|
|
|
|
item = {
|
|
activation_label = {
|
|
h_align = "fill";
|
|
v_align = "fill";
|
|
width = 20;
|
|
x_align = 0.5;
|
|
y_align = 0.5;
|
|
};
|
|
|
|
icon = {
|
|
pixel_size = 26;
|
|
theme = "";
|
|
};
|
|
};
|
|
|
|
margins = {
|
|
top = 8;
|
|
};
|
|
};
|
|
};
|
|
|
|
search = {
|
|
prompt = {
|
|
name = "prompt";
|
|
icon = "edit-find";
|
|
theme = "";
|
|
pixel_size = 18;
|
|
h_align = "center";
|
|
v_align = "center";
|
|
};
|
|
|
|
clear = {
|
|
name = "clear";
|
|
icon = "edit-clear";
|
|
theme = "";
|
|
pixel_size = 18;
|
|
h_align = "center";
|
|
v_align = "center";
|
|
};
|
|
|
|
input = {
|
|
h_align = "fill";
|
|
h_expand = true;
|
|
icons = true;
|
|
};
|
|
|
|
spinner = {
|
|
hide = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
style = ''
|
|
@define-color foreground ${colors.fg.hex}; /* text */
|
|
@define-color background ${colors.bg.hex}; /* base */
|
|
@define-color cursor ${colors.primary.hex}; /* rosewater */
|
|
|
|
@define-color color0 ${colors.surface0.hex}; /* surface0 */
|
|
@define-color color1 ${colors.red.hex}; /* red */
|
|
@define-color color2 ${colors.green.hex}; /* green */
|
|
@define-color color3 ${colors.yellow.hex}; /* yellow */
|
|
@define-color color4 ${colors.blue.hex}; /* blue */
|
|
@define-color color5 ${colors.pink.hex}; /* pink */
|
|
@define-color color6 ${colors.teal.hex}; /* teal */
|
|
@define-color color7 ${colors.subtext1.hex}; /* subtext1 */
|
|
@define-color color8 ${colors.surface1.hex}; /* surface1 */
|
|
@define-color color9 ${colors.red.hex}; /* red */
|
|
@define-color color10 ${colors.green.hex}; /* green */
|
|
@define-color color11 ${colors.yellow.hex}; /* yellow */
|
|
@define-color color12 ${colors.blue.hex}; /* blue */
|
|
@define-color color13 ${colors.pink.hex}; /* pink */
|
|
@define-color color14 ${colors.teal.hex}; /* teal */
|
|
@define-color color15 ${colors.subtext0.hex}; /* subtext0 */
|
|
|
|
#window,
|
|
#box,
|
|
#aiScroll,
|
|
#aiList,
|
|
#search,
|
|
#password,
|
|
#input,
|
|
#prompt,
|
|
#clear,
|
|
#typeahead,
|
|
#list,
|
|
child,
|
|
scrollbar,
|
|
slider,
|
|
#item,
|
|
#text,
|
|
#label,
|
|
#bar,
|
|
#sub,
|
|
#activationlabel {
|
|
all: unset;
|
|
}
|
|
|
|
#cfgerr {
|
|
background: rgba(255, 0, 0, 0.4);
|
|
margin-top: 20px;
|
|
padding: 8px;
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
#window {
|
|
color: @foreground;
|
|
}
|
|
|
|
#box {
|
|
border-radius: 2px;
|
|
background: @background;
|
|
padding: 32px;
|
|
border: 1px solid lighter(@background);
|
|
box-shadow:
|
|
0 19px 38px rgba(0, 0, 0, 0.3),
|
|
0 15px 12px rgba(0, 0, 0, 0.22);
|
|
}
|
|
|
|
#search {
|
|
box-shadow:
|
|
0 1px 3px rgba(0, 0, 0, 0.1),
|
|
0 1px 2px rgba(0, 0, 0, 0.22);
|
|
background: lighter(@background);
|
|
padding: 8px;
|
|
}
|
|
|
|
#prompt {
|
|
margin-left: 4px;
|
|
margin-right: 12px;
|
|
color: @foreground;
|
|
opacity: 0.2;
|
|
}
|
|
|
|
#clear {
|
|
color: @foreground;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
#password,
|
|
#input,
|
|
#typeahead {
|
|
border-radius: 2px;
|
|
}
|
|
|
|
#input {
|
|
background: none;
|
|
}
|
|
|
|
#password {
|
|
}
|
|
|
|
#spinner {
|
|
padding: 8px;
|
|
}
|
|
|
|
#typeahead {
|
|
color: @foreground;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
#input placeholder {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
#list {
|
|
}
|
|
|
|
child {
|
|
padding: 8px;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
child:selected,
|
|
child:hover {
|
|
background: alpha(@color1, 0.4);
|
|
}
|
|
|
|
#item {
|
|
}
|
|
|
|
#icon {
|
|
margin-right: 8px;
|
|
}
|
|
|
|
#text {
|
|
}
|
|
|
|
#label {
|
|
font-weight: 500;
|
|
}
|
|
|
|
#sub {
|
|
opacity: 0.5;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
#activationlabel {
|
|
}
|
|
|
|
#bar {
|
|
}
|
|
|
|
.barentry {
|
|
}
|
|
|
|
.activation #activationlabel {
|
|
}
|
|
|
|
.activation #text,
|
|
.activation #icon,
|
|
.activation #search {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.aiItem {
|
|
padding: 10px;
|
|
border-radius: 2px;
|
|
color: @foreground;
|
|
background: @background;
|
|
}
|
|
|
|
.aiItem.user {
|
|
padding-left: 0;
|
|
padding-right: 0;
|
|
}
|
|
|
|
.aiItem.assistant {
|
|
background: lighter(@background);
|
|
}
|
|
'';
|
|
};
|
|
|
|
config = {
|
|
app_launch_prefix = "";
|
|
terminal_title_flag = "";
|
|
locale = "";
|
|
close_when_open = false;
|
|
theme = "nixos";
|
|
monitor = "";
|
|
hotreload_theme = false;
|
|
as_window = false;
|
|
timeout = 0;
|
|
disable_click_to_close = false;
|
|
force_keyboard_focus = false;
|
|
|
|
keys = {
|
|
accept_typeahead = ["tab"];
|
|
trigger_labels = "lalt";
|
|
next = ["down"];
|
|
prev = ["up"];
|
|
close = ["esc"];
|
|
remove_from_history = ["shift backspace"];
|
|
resume_query = ["ctrl r"];
|
|
toggle_exact_search = ["ctrl m"];
|
|
|
|
activation_modifiers = {
|
|
keep_open = "shift";
|
|
alternate = "alt";
|
|
};
|
|
|
|
ai = {
|
|
clear_session = ["ctrl x"];
|
|
copy_last_response = ["ctrl c"];
|
|
resume_session = ["ctrl r"];
|
|
run_last_response = ["ctrl e"];
|
|
};
|
|
};
|
|
|
|
events = {
|
|
on_activate = "";
|
|
on_selection = "";
|
|
on_exit = "";
|
|
on_launch = "";
|
|
on_query_change = "";
|
|
};
|
|
|
|
list = {
|
|
dynamic_sub = true;
|
|
keyboard_scroll_style = "emacs";
|
|
max_entries = 50;
|
|
show_initial_entries = true;
|
|
single_click = true;
|
|
visibility_threshold = 20;
|
|
placeholder = "No Results";
|
|
};
|
|
|
|
search = {
|
|
argument_delimiter = "#";
|
|
placeholder = "Search...";
|
|
delay = 0;
|
|
resume_last_query = false;
|
|
};
|
|
|
|
activation_mode = {
|
|
labels = "jkl;asdf";
|
|
};
|
|
|
|
builtins = {
|
|
applications = {
|
|
weight = 5;
|
|
name = "applications";
|
|
placeholder = "Applications";
|
|
prioritize_new = true;
|
|
hide_actions_with_empty_query = true;
|
|
context_aware = true;
|
|
refresh = true;
|
|
show_sub_when_single = true;
|
|
show_icon_when_single = true;
|
|
show_generic = true;
|
|
history = true;
|
|
|
|
actions = {
|
|
enabled = true;
|
|
hide_category = false;
|
|
hide_without_query = true;
|
|
};
|
|
};
|
|
|
|
bookmarks = {
|
|
weight = 5;
|
|
placeholder = "Bookmarks";
|
|
name = "bookmarks";
|
|
icon = "bookmark";
|
|
switcher_only = true;
|
|
|
|
entries = [
|
|
{
|
|
label = "Walker";
|
|
url = "https://github.com/abenz1267/walker";
|
|
keywords = ["walker" "github"];
|
|
}
|
|
];
|
|
};
|
|
|
|
xdph_picker = {
|
|
hidden = true;
|
|
weight = 5;
|
|
placeholder = "Screen/Window Picker";
|
|
show_sub_when_single = true;
|
|
name = "xdphpicker";
|
|
switcher_only = true;
|
|
};
|
|
|
|
ai = {
|
|
weight = 5;
|
|
placeholder = "AI";
|
|
name = "ai";
|
|
icon = "help-browser";
|
|
switcher_only = true;
|
|
show_sub_when_single = true;
|
|
|
|
anthropic = {
|
|
prompts = [
|
|
{
|
|
model = "claude-3-7-sonnet-20250219";
|
|
temperature = 1;
|
|
max_tokens = 1000;
|
|
label = "General Assistant";
|
|
prompt = "You are a helpful general assistant. Keep your answers short and precise.";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
calc = {
|
|
require_number = true;
|
|
weight = 5;
|
|
name = "calc";
|
|
icon = "accessories-calculator";
|
|
placeholder = "Calculator";
|
|
min_chars = 4;
|
|
};
|
|
|
|
windows = {
|
|
weight = 5;
|
|
icon = "view-restore";
|
|
name = "windows";
|
|
placeholder = "Windows";
|
|
show_icon_when_single = true;
|
|
};
|
|
|
|
clipboard = {
|
|
always_put_new_on_top = true;
|
|
exec = "wl-copy";
|
|
weight = 5;
|
|
name = "clipboard";
|
|
avoid_line_breaks = true;
|
|
placeholder = "Clipboard";
|
|
image_height = 300;
|
|
max_entries = 10;
|
|
switcher_only = true;
|
|
};
|
|
|
|
commands = {
|
|
weight = 5;
|
|
icon = "utilities-terminal";
|
|
switcher_only = true;
|
|
name = "commands";
|
|
placeholder = "Commands";
|
|
};
|
|
|
|
custom_commands = {
|
|
weight = 5;
|
|
icon = "utilities-terminal";
|
|
name = "custom_commands";
|
|
placeholder = "Custom Commands";
|
|
};
|
|
|
|
emojis = {
|
|
exec = "wl-copy";
|
|
weight = 5;
|
|
name = "emojis";
|
|
placeholder = "Emojis";
|
|
switcher_only = true;
|
|
history = true;
|
|
typeahead = true;
|
|
show_unqualified = false;
|
|
};
|
|
|
|
symbols = {
|
|
after_copy = "";
|
|
weight = 5;
|
|
name = "symbols";
|
|
placeholder = "Symbols";
|
|
switcher_only = true;
|
|
history = true;
|
|
typeahead = true;
|
|
};
|
|
|
|
finder = {
|
|
use_fd = false;
|
|
fd_flags = "--ignore-vcs --type file";
|
|
weight = 5;
|
|
icon = "file";
|
|
name = "finder";
|
|
placeholder = "Finder";
|
|
switcher_only = true;
|
|
ignore_gitignore = true;
|
|
refresh = true;
|
|
concurrency = 8;
|
|
show_icon_when_single = true;
|
|
preview_images = false;
|
|
};
|
|
|
|
runner = {
|
|
eager_loading = true;
|
|
weight = 5;
|
|
icon = "utilities-terminal";
|
|
name = "runner";
|
|
placeholder = "Runner";
|
|
typeahead = true;
|
|
history = true;
|
|
generic_entry = false;
|
|
refresh = true;
|
|
use_fd = false;
|
|
};
|
|
|
|
ssh = {
|
|
weight = 5;
|
|
icon = "preferences-system-network";
|
|
name = "ssh";
|
|
placeholder = "SSH";
|
|
switcher_only = true;
|
|
history = true;
|
|
refresh = true;
|
|
};
|
|
|
|
switcher = {
|
|
weight = 5;
|
|
name = "switcher";
|
|
placeholder = "Switcher";
|
|
prefix = "/";
|
|
};
|
|
|
|
websearch = {
|
|
keep_selection = true;
|
|
weight = 5;
|
|
icon = "applications-internet";
|
|
name = "websearch";
|
|
placeholder = "Websearch";
|
|
|
|
entries = [
|
|
{
|
|
name = "searx";
|
|
url = "https://search.zoeys.cloud/searx/search?q=%TERM%";
|
|
}
|
|
];
|
|
};
|
|
|
|
dmenu = {
|
|
hidden = true;
|
|
weight = 5;
|
|
name = "dmenu";
|
|
placeholder = "Dmenu";
|
|
switcher_only = true;
|
|
show_icon_when_single = true;
|
|
};
|
|
|
|
translation = {
|
|
delay = 1000;
|
|
weight = 5;
|
|
name = "translation";
|
|
icon = "accessories-dictionary";
|
|
placeholder = "Translation";
|
|
switcher_only = true;
|
|
provider = "googlefree";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|