added walker rose-pine and reworked some waybar stuff

This commit is contained in:
2025-08-26 00:34:59 +02:00
parent 9b9dfd0b73
commit 1e660e8168
39 changed files with 2174 additions and 763 deletions

View File

@@ -1,4 +0,0 @@
[Desktop Entry]
Exec=/home/mpuchstein/.local/bin/eww open-many topbar_DP-1 topbar_DP-2
Name=eww
Type=Application

View File

@@ -2,7 +2,7 @@
gtk-theme-name=Adwaita
gtk-icon-theme-name=Adwaita
gtk-font-name=InconsolataGo Nerd Font 9
gtk-cursor-theme-name=AC-Volantes
gtk-cursor-theme-name=volantes
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR

View File

@@ -1,235 +1,106 @@
app_launch_prefix = "uwsm app -- "
terminal= "kitty"
terminal_title_flag = ""
locale = ""
close_when_open = false
theme = "vikingowl"
monitor = ""
hotreload_theme = false
as_window = false
timeout = 0
disable_click_to_close = false
force_keyboard_focus = false
force_keyboard_focus = false # forces keyboard forcus to stay in Walker
close_when_open = true # close walker when invoking while already opened
selection_wrap = false # 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
keep_open_modifier = "shift" # won't close on activation, but rather select the next item in the list
exact_search_prefix = "'" # disable fuzzy searching
theme = "rose-pine" # theme to use
disable_mouse = false # disable mouse (on input and list only)
[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"]
[shell]
anchor_top = true
anchor_bottom = true
anchor_left = true
anchor_right = true
[keys.activation_modifiers]
keep_open = "shift"
alternate = "alt"
[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"
[keys.ai]
clear_session = ["ctrl x"]
copy_last_response = ["ctrl c"]
resume_session = ["ctrl r"]
run_last_response = ["ctrl e"]
[keybinds]
close = "esc"
next = "down"
previous = "up"
toggle_exact = "ctrl e"
resume_last_query = "ctrl r"
[events]
on_activate = ""
on_selection = ""
on_exit = ""
on_launch = ""
on_query_change = ""
[providers]
default = [
"desktopapplications",
"calc",
"runner",
"menus",
"websearch",
] # providers to be queried by default
empty = ["desktopapplications"] # providers to be queried when query is empty
[list]
dynamic_sub = true
keyboard_scroll_style = "emacs"
max_entries = 50
show_initial_entries = true
single_click = true
visibility_threshold = 20
placeholder = "No Results"
[[providers.prefixes]]
prefix = ";"
provider = "providerlist"
[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
[builtins.applications.actions]
enabled = true
hide_category = false
hide_without_query = true
[builtins.bookmarks]
weight = 5
placeholder = "Bookmarks"
name = "bookmarks"
icon = "bookmark"
switcher_only = true
[[builtins.bookmarks.entries]]
label = "Walker"
url = "https://github.com/abenz1267/walker"
keywords = ["walker", "github"]
[builtins.xdph_picker]
hidden = true
weight = 5
placeholder = "Screen/Window Picker"
show_sub_when_single = true
name = "xdphpicker"
switcher_only = true
[builtins.ai]
weight = 5
placeholder = "AI"
name = "ai"
icon = "help-browser"
switcher_only = true
[[builtins.ai.anthropic.prompts]]
model = "claude-3-5-sonnet-20241022"
temperature = 1
max_tokens = 1_000
label = "General Assistant"
prompt = "You are a helpful general assistant. Keep your answers short and precise."
[builtins.calc]
require_number = true
weight = 5
name = "calc"
icon = "accessories-calculator"
placeholder = "Calculator"
min_chars = 4
[builtins.windows]
weight = 5
icon = "view-restore"
name = "windows"
placeholder = "Windows"
show_icon_when_single = true
[builtins.clipboard]
exec = "wl-copy"
weight = 5
name = "clipboard"
avoid_line_breaks = true
placeholder = "Clipboard"
image_height = 300
max_entries = 10
switcher_only = true
[builtins.commands]
weight = 5
icon = "utilities-terminal"
switcher_only = true
name = "commands"
placeholder = "Commands"
[builtins.custom_commands]
weight = 5
icon = "utilities-terminal"
name = "custom_commands"
placeholder = "Custom Commands"
[builtins.emojis]
exec = "wl-copy"
weight = 5
name = "emojis"
placeholder = "Emojis"
switcher_only = true
history = true
typeahead = true
show_unqualified = false
[builtins.symbols]
after_copy = ""
weight = 5
name = "symbols"
placeholder = "Symbols"
switcher_only = true
history = true
typeahead = true
[builtins.finder]
use_fd = false
weight = 5
icon = "file"
name = "finder"
placeholder = "Finder"
switcher_only = true
ignore_gitignore = true
refresh = true
concurrency = 8
show_icon_when_single = true
[builtins.runner]
weight = 5
icon = "utilities-terminal"
name = "runner"
placeholder = "Runner"
typeahead = true
history = true
generic_entry = false
refresh = true
[builtins.ssh]
weight = 5
icon = "preferences-system-network"
name = "ssh"
placeholder = "SSH"
switcher_only = true
history = true
refresh = true
[builtins.switcher]
weight = 5
name = "switcher"
placeholder = "Switcher"
[[providers.prefixes]]
prefix = "/"
provider = "files"
[builtins.websearch]
weight = 5
icon = "applications-internet"
name = "websearch"
placeholder = "Websearch"
[[providers.prefixes]]
prefix = "."
provider = "symbols"
[[builtins.websearch.entries]]
name = "Google"
url = "https://www.google.com/search?q=%TERM%"
[[providers.prefixes]]
prefix = "="
provider = "calc"
[[builtins.websearch.entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
switcher_only = true
[[providers.prefixes]]
prefix = "@"
provider = "websearch"
[[builtins.websearch.entries]]
name = "Ecosia"
url = "https://www.ecosia.org/search?q=%TERM%"
switcher_only = true
[[providers.prefixes]]
prefix = ":"
provider = "clipboard"
[[builtins.websearch.entries]]
name = "Yandex"
url = "https://yandex.com/search/?text=%TERM%"
switcher_only = true
[providers.calc]
click = "copy"
copy = "enter"
save = "ctrl s"
delete = "ctrl d"
[builtins.dmenu]
hidden = true
weight = 5
name = "dmenu"
placeholder = "Dmenu"
switcher_only = true
[providers.websearch]
click = "search"
search = "enter"
[providers.providerlist]
click = "activate"
activate = "enter"
[providers.clipboard]
time_format = "%d.%m. - %H:%M" # format for the clipboard item date
click = "copy"
copy = "enter"
delete = "ctrl d"
[providers.desktopapplications]
click = "start"
start = "enter"
[providers.files]
click = "open"
open = "enter"
open_dir = "ctrl enter"
copy_path = "ctrl shift C"
copy_file = "ctrl c"
[providers.runner]
click = "start"
start = "enter"
start_terminal = "shift enter"
[providers.dmenu]
click = "select"
select = "enter"
[providers.symbols]
click = "copy"
copy = "enter"
[providers.menus]
click = "activate"
activate = "enter"

View File

@@ -1,162 +0,0 @@
/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */
@define-color foreground rgba(255, 255, 255, 0.8);
@define-color background hsla(240, 12.7%, 13.9%, 0.98);
@define-color color1 hsl(172, 100%, 25.3%);
/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */
#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);
}

View File

@@ -1,103 +0,0 @@
# AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN.
[ui.anchors]
bottom = true
left = true
right = true
top = true
[ui.window]
h_align = "fill"
v_align = "fill"
[ui.window.box]
h_align = "center"
width = 450
[ui.window.box.bar]
orientation = "horizontal"
position = "end"
[ui.window.box.bar.entry]
h_align = "fill"
h_expand = true
[ui.window.box.bar.entry.icon]
h_align = "center"
h_expand = true
pixel_size = 24
theme = ""
[ui.window.box.margins]
top = 200
[ui.window.box.ai_scroll]
name = "aiScroll"
h_align = "fill"
v_align = "fill"
max_height = 300
min_width = 400
height = 300
width = 400
[ui.window.box.ai_scroll.margins]
top = 8
[ui.window.box.ai_scroll.list]
name = "aiList"
orientation = "vertical"
width = 400
spacing = 10
[ui.window.box.ai_scroll.list.item]
name = "aiItem"
h_align = "fill"
v_align = "fill"
x_align = 0
y_align = 0
wrap = true
[ui.window.box.scroll.list]
marker_color = "#1BFFE1"
max_height = 300
max_width = 400
min_width = 400
width = 400
[ui.window.box.scroll.list.item.activation_label]
h_align = "fill"
v_align = "fill"
width = 20
x_align = 0.5
y_align = 0.5
[ui.window.box.scroll.list.item.icon]
pixel_size = 26
theme = ""
[ui.window.box.scroll.list.margins]
top = 8
[ui.window.box.search.prompt]
name = "prompt"
icon = "edit-find"
theme = ""
pixel_size = 18
h_align = "center"
v_align = "center"
[ui.window.box.search.clear]
name = "clear"
icon = "edit-clear"
theme = ""
pixel_size = 18
h_align = "center"
v_align = "center"
[ui.window.box.search.input]
h_align = "fill"
h_expand = true
icons = true
[ui.window.box.search.spinner]
hide = true

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="pixel-size">48</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,51 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkPicture" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="content-fit">cover</property>
<property name="height-request">100</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,34 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
</object>
</interface>

View File

@@ -0,0 +1,42 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="ellipsize">1</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,41 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,40 @@
<?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">0</property>
<child>
<object class="GtkLabel" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkWindow" id="Window">
<style>
<class name="window"></class>
</style>
<property name="resizable">true</property>
<property name="title">Walker</property>
<child>
<object class="GtkBox" id="BoxWrapper">
<style>
<class name="box-wrapper"></class>
</style>
<property name="orientation">horizontal</property>
<property name="margin-top">300</property>
<property name="valign">start</property>
<property name="halign">center</property>
<child>
<object class="GtkBox" id="Box">
<style>
<class name="box"></class>
</style>
<property name="orientation">vertical</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkBox" id="SearchContainer">
<style>
<class name="search-container"></class>
</style>
<property name="orientation">horizontal</property>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkEntry" id="Input">
<style>
<class name="input"></class>
</style>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="ContentContainer">
<style>
<class name="content-container"></class>
</style>
<property name="orientation">horizontal</property>
<child>
<object class="GtkLabel" id="Placeholder">
<style>
<class name="placeholder"></class>
</style>
<property name="label">No Results</property>
<property name="height-request">400</property>
<property name="width-request">500</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="Scroll">
<style>
<class name="scroll"></class>
</style>
<property name="can_focus">false</property>
<property name="overlay-scrolling">true</property>
<property name="max-content-width">500</property>
<property name="min-content-width">500</property>
<property name="max-content-height">400</property>
<property name="min-content-height">400</property>
<property name="propagate-natural-height">true</property>
<property name="propagate-natural-width">true</property>
<property name="hscrollbar-policy">automatic</property>
<property name="vscrollbar-policy">automatic</property>
<child>
<object class="GtkGridView" id="List">
<style>
<class name="list"></class>
</style>
<property name="max_columns">1</property>
<property name="can_focus">false</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="Preview">
<style>
<class name="preview"></class>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="Keybinds">
<style>
<class name="keybind-hints"></class>
</style>
<property name="xalign">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkBox" id="PreviewBox">
<style>
<class name="preview-box"></class>
</style>
<property name="height-request">300</property>
<property name="width-request">500</property>
<child>
<object class="GtkStack" id="PreviewStack">
<style>
<class name="preview-stack"></class>
</style>
<property name="hexpand">true</property>
<property name="vexpand">true</property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,100 @@
scrollbar {
opacity: 0;
}
.box-wrapper {
box-shadow:
0 19px 38px rgba(0, 0, 0, 0.3),
0 15px 12px rgba(0, 0, 0, 0.22);
/* NEEDS TO BE TRANSPARENT CUZ OF HYPRLAND BUG */
background: alpha(@window_bg_color, 0.99);
}
.preview-box {
}
.box {
}
.search-container {
background: @window_bg_color;
}
.input placeholder {
opacity: 0.5;
}
.input {
font-size: 20px;
border-radius: 0;
padding: 10px;
box-shadow: none;
outline: none;
padding-left: 10px;
}
.input:focus,
.input:active {
box-shadow: none;
outline: none;
}
.content-container {
}
.placeholder {
}
.scroll {
}
.list {
background: @window_bg_color;
}
child,
child > * {
padding: 0;
margin: 0;
}
.item-box {
padding: 10px;
}
.item-text-box {
all: unset;
}
.item-text {
}
.item-subtext {
font-size: 12px;
opacity: 0.8;
}
.item-image {
}
.keybind-hints {
padding: 10px;
font-size: 14px;
color: @theme_fg_color;
opacity: 0.5;
background: lighter(@window_bg_color);
}
.preview {
}
.calc .item-text {
font-size: 24px;
}
.calc .item-subtext {
}
.symbols .item-image {
font-size: 18px;
}

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="pixel-size">48</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,51 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkPicture" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="content-fit">cover</property>
<property name="height-request">100</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,34 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
</object>
</interface>

View File

@@ -0,0 +1,42 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="ellipsize">1</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,41 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,40 @@
<?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">0</property>
<child>
<object class="GtkLabel" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkWindow" id="Window">
<style>
<class name="window"></class>
</style>
<property name="resizable">true</property>
<property name="title">Walker</property>
<child>
<object class="GtkBox" id="BoxWrapper">
<style>
<class name="box-wrapper"></class>
</style>
<property name="orientation">horizontal</property>
<property name="margin-top">300</property>
<property name="valign">start</property>
<property name="halign">center</property>
<child>
<object class="GtkBox" id="Box">
<style>
<class name="box"></class>
</style>
<property name="orientation">vertical</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkBox" id="SearchContainer">
<style>
<class name="search-container"></class>
</style>
<property name="orientation">horizontal</property>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkEntry" id="Input">
<style>
<class name="input"></class>
</style>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="ContentContainer">
<style>
<class name="content-container"></class>
</style>
<property name="orientation">horizontal</property>
<child>
<object class="GtkLabel" id="Placeholder">
<style>
<class name="placeholder"></class>
</style>
<property name="label">No Results</property>
<property name="height-request">400</property>
<property name="width-request">500</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="Scroll">
<style>
<class name="scroll"></class>
</style>
<property name="can_focus">false</property>
<property name="overlay-scrolling">true</property>
<property name="max-content-width">500</property>
<property name="min-content-width">500</property>
<property name="max-content-height">400</property>
<property name="min-content-height">400</property>
<property name="propagate-natural-height">true</property>
<property name="propagate-natural-width">true</property>
<property name="hscrollbar-policy">automatic</property>
<property name="vscrollbar-policy">automatic</property>
<child>
<object class="GtkGridView" id="List">
<style>
<class name="list"></class>
</style>
<property name="max_columns">1</property>
<property name="can_focus">false</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="Preview">
<style>
<class name="preview"></class>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="Keybinds">
<style>
<class name="keybind-hints"></class>
</style>
<property name="xalign">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkBox" id="PreviewBox">
<style>
<class name="preview-box"></class>
</style>
<property name="height-request">300</property>
<property name="width-request">500</property>
<child>
<object class="GtkStack" id="PreviewStack">
<style>
<class name="preview-stack"></class>
</style>
<property name="hexpand">true</property>
<property name="vexpand">true</property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,200 @@
/* ===================================================================
Rosé Pine for Walker — GTK4 CSS Theme
- Transparent fullscreen background with a floating panel.
- Authentic Rosé Pine palette colors.
- To use a different variant, uncomment its variable block
and comment out the active one.
=================================================================== */
:root {
/*
// Rosé Pine (Main) - Active by default
*/
--base: #191724;
--surface: #1f1d2e;
--overlay: #26233a;
--text: #e0def4;
--subtle: #908caa;
--muted: #6e6a86;
--love: #eb6f92;
--gold: #f6c177;
--rose: #ebbcba;
--pine: #31748f;
--foam: #9ccfd8;
--iris: #c4a7e7;
--hl-low: #21202e;
--hl-med: #403d52;
--hl-high: #524f67;
/*
// Rosé Pine Moon
--base: #232136;
--surface: #2a273f;
--overlay: #393552;
--text: #e0def4;
--subtle: #908caa;
--muted: #6e6a86;
--love: #eb6f92;
--gold: #f6c177;
--rose: #ea9a97;
--pine: #3e8fb0;
--foam: #9ccfd8;
--iris: #c4a7e7;
--hl-low: #2a283e;
--hl-med: #44415a;
--hl-high: #56526e;
*/
/*
// Rosé Pine Dawn
--base: #faf4ed;
--surface: #fffaf3;
--overlay: #f2e9e1;
--text: #575279;
--subtle: #797593;
--muted: #9893a5;
--love: #b4637a;
--gold: #ea9d34;
--rose: #d7827e;
--pine: #286983;
--foam: #56949f;
--iris: #907aa9;
--hl-low: #f2e9e1;
--hl-med: #e6dccf;
--hl-high: #dcd3c9;
*/
}
/* ===================================================================
Global Styles & Window
=================================================================== */
* {
transition: all 120ms ease-out;
}
/* Make the main window transparent so only the panel is visible */
window,
window.background {
background: transparent;
}
/* ===================================================================
Layout (Based on your provided style.css)
=================================================================== */
scrollbar {
opacity: 0;
}
/* The main launcher panel */
.box-wrapper {
/* Panel uses the Rosé Pine 'base' color, slightly transparent for the Hyprland bug */
background: color-mix(in srgb, var(--base) 97%, transparent);
border: 1px solid var(--hl-high);
border-radius: 14px;
/* A softer, color-matched shadow */
box-shadow: 0 10px 30px -5px color-mix(in srgb, var(--base) 50%, transparent);
}
/* The search bar and results list share the panel's base color */
.search-container,
.list,
.content-container {
background: transparent;
}
/* The search input field itself uses the 'surface' color for a subtle depth effect */
.input {
background: var(--surface);
color: var(--text);
font-size: 20px;
padding: 12px;
border-radius: 8px;
border: 1px solid var(--hl-med);
box-shadow: none;
outline: none;
}
.input:focus,
.input:active {
border-color: var(--iris);
box-shadow: 0 0 0 3px color-mix(in srgb, var(--iris) 25%, transparent);
}
.input placeholder {
color: var(--muted);
opacity: 1;
}
/* The preview panel also uses the 'surface' color */
.preview-box,
.preview {
background: var(--surface);
color: var(--text);
border-top: 1px solid var(--hl-med);
}
/* The keybinds hint bar at the bottom */
.keybind-hints {
background: var(--hl-low);
color: var(--subtle);
font-size: 14px;
padding: 10px;
opacity: 1;
border-top: 1px solid var(--hl-med);
}
/* ===================================================================
Result Items
=================================================================== */
/* Reset item spacing */
child,
child > * {
padding: 0;
margin: 0;
}
.item-box {
padding: 10px;
border-radius: 8px;
border: 1px solid transparent; /* for smooth transitions */
}
/* Selected item styling */
.item-box:hover,
.item-box::selected {
background: var(--hl-med);
}
/* Unset the default text box styling to allow our own */
.item-text-box {
all: unset;
}
.item-text {
color: var(--text);
font-weight: bold;
}
.item-subtext {
color: var(--subtle);
font-size: 12px;
opacity: 1;
}
.item-image {
color: var(--subtle);
}
/* Specific item types */
.calc .item-text {
font-size: 24px;
color: var(--foam);
}
.symbols .item-image {
font-size: 18px;
color: var(--rose);
}

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,53 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="pixel-size">48</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,51 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkPicture" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="content-fit">cover</property>
<property name="height-request">100</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
<child>
<object class="GtkLabel" id="ItemSubtext">
<style>
<class name="item-subtext"></class>
</style>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,34 @@
<?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">vertical</property>
<property name="spacing">0</property>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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>
</object>
</interface>

View File

@@ -0,0 +1,42 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
<property name="ellipsize">1</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,41 @@
<?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">0</property>
<child>
<object class="GtkImage" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
<property name="icon-size">large</property>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,40 @@
<?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">0</property>
<child>
<object class="GtkLabel" id="ItemImage">
<style>
<class name="item-image"></class>
</style>
</object>
</child>
<child>
<object class="GtkBox" id="ItemTextBox">
<style>
<class name="item-text-box"></class>
</style>
<property name="orientation">vertical</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="wrap">false</property>
<property name="vexpand_set">true</property>
<property name="vexpand">true</property>
<property name="xalign">0</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkWindow" id="Window">
<style>
<class name="window"></class>
</style>
<property name="resizable">true</property>
<property name="title">Walker</property>
<child>
<object class="GtkBox" id="BoxWrapper">
<style>
<class name="box-wrapper"></class>
</style>
<property name="orientation">horizontal</property>
<property name="margin-top">300</property>
<property name="valign">start</property>
<property name="halign">center</property>
<child>
<object class="GtkBox" id="Box">
<style>
<class name="box"></class>
</style>
<property name="orientation">vertical</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkBox" id="SearchContainer">
<style>
<class name="search-container"></class>
</style>
<property name="orientation">horizontal</property>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
<child>
<object class="GtkEntry" id="Input">
<style>
<class name="input"></class>
</style>
<property name="halign">fill</property>
<property name="hexpand-set">true</property>
<property name="hexpand">true</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="ContentContainer">
<style>
<class name="content-container"></class>
</style>
<property name="orientation">horizontal</property>
<child>
<object class="GtkLabel" id="Placeholder">
<style>
<class name="placeholder"></class>
</style>
<property name="label">No Results</property>
<property name="height-request">400</property>
<property name="width-request">500</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="Scroll">
<style>
<class name="scroll"></class>
</style>
<property name="can_focus">false</property>
<property name="overlay-scrolling">true</property>
<property name="max-content-width">500</property>
<property name="min-content-width">500</property>
<property name="max-content-height">400</property>
<property name="min-content-height">400</property>
<property name="propagate-natural-height">true</property>
<property name="propagate-natural-width">true</property>
<property name="hscrollbar-policy">automatic</property>
<property name="vscrollbar-policy">automatic</property>
<child>
<object class="GtkGridView" id="List">
<style>
<class name="list"></class>
</style>
<property name="max_columns">1</property>
<property name="can_focus">false</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="Preview">
<style>
<class name="preview"></class>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkLabel" id="Keybinds">
<style>
<class name="keybind-hints"></class>
</style>
<property name="xalign">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"></requires>
<object class="GtkBox" id="PreviewBox">
<style>
<class name="preview-box"></class>
</style>
<property name="height-request">300</property>
<property name="width-request">500</property>
<child>
<object class="GtkStack" id="PreviewStack">
<style>
<class name="preview-stack"></class>
</style>
<property name="hexpand">true</property>
<property name="vexpand">true</property>
</object>
</child>
</object>
</interface>

View File

@@ -0,0 +1,122 @@
/* --- Rosé Pine Theme für Walker (GTK4 Version) --- */
/* 1. Palette (Rosé Pine) */
:root {
/* Rosé Pine Palette */
--foreground: #e0def4; /* Text */
--background: rgba(25, 23, 36, 0.98); /* Base */
--color1: #c4a7e7; /* Iris (Accent) */
--selection_bg: rgba(64, 61, 82, 0.5); /* HighlightMed (transparent) */
--search_bg: rgba(31, 29, 46, 0.85); /* Surface */
}
/* 2. Globaler Reset und Schriftart (unverändert) */
* {
all: unset;
box-sizing: border-box;
font-family: "Inconsolata Go Nerd Font", monospace;
color: var(--foreground);
}
/* 3. Hauptfenster und Container */
/* Gilt für das GtkWindow, macht es transparent, damit der Blur-Effekt des Compositors durchscheint */
window {
background-color: transparent;
}
/* Der Hauptcontainer, ersetzt #box */
.box {
padding: 24px; /* Etwas weniger Padding für modernes Aussehen */
background-color: var(--background);
border-radius: 16px;
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2); /* Etwas stärkerer Schatten für den Kontrast */
/* KORRIGIERT: alpha() durch rgba() mit den Werten von --color1 ersetzt */
border: 1px solid rgba(196, 167, 231, 0.5);
margin: 12px;
}
/* 4. Suchleiste */
/* Ersetzt #search */
.search-container {
padding: 8px 12px;
background-color: var(--search_bg);
border-radius: 20px;
transition:
background 150ms ease,
border 150ms ease;
margin-bottom: 8px;
border: 1px solid transparent; /* Platzhalter für den Fokus-Rand */
}
.search-container:focus-within {
/* Angepasst an Rosé Pine Palette */
background-color: rgba(38, 35, 58, 0.95); /* Overlay */
border: 1px solid var(--color1);
}
/* Das GtkEntry-Feld selbst, ersetzt #input */
entry.input {
background-color: transparent;
border: none;
outline: none;
font-size: 1em;
line-height: 1.2em;
color: var(--foreground);
}
/* 5. Ergebnisliste und Einträge */
/* Die GtkGridView, welche die Items enthält */
.list {
/* Keine speziellen Stile nötig, wird durch die Items selbst formatiert */
}
/* Ein einzelnes Ergebnis, ersetzt .item */
.item-box {
padding: 10px 14px;
border-radius: 12px;
transition: background 120ms ease;
margin: 2px 4px; /* Kleiner Außenabstand für die Items */
}
.item-box:hover {
background-color: var(--selection_bg);
}
/* Ausgewähltes Item */
.item-box:selected {
background-color: var(--selection_bg);
border-left: 4px solid var(--color1);
padding-left: 10px;
}
/* Styling für die verschiedenen Teile eines Items */
.item-image {
margin-right: 12px;
font-size: 26px; /* Größe für Icon-Fonts */
}
.item-text {
font-weight: 500;
}
.item-subtext {
opacity: 0.7;
font-size: 0.9em;
}
/* 6. Scrollbar (unverändert) */
scrollbar {
background-color: transparent;
width: 6px;
border-radius: 3px;
}
scrollbar:hover {
/* Angepasst an Rosé Pine Palette */
background-color: rgba(82, 79, 103, 0.4); /* HighlightHigh (transparent) */
}
slider {
background-color: var(--color1);
border-radius: 3px;
}

View File

@@ -1,168 +0,0 @@
/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */
@define-color foreground rgba(255, 255, 255, 0.8);
@define-color background hsla(240, 12.7%, 13.9%, 0.98);
@define-color color1 hsl(172, 100%, 25.3%);
/* AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN. */
#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 {
padding: 32px;
background: rgba(0, 0, 0, 0.9);
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(25px);
border-image: linear-gradient(45deg, #33ccffee, #00ff99ee) 1;
border-width: 1px;
border-style: solid;
}
#search {
padding: 14px 8px 8px 8px;
border-radius: 16px;
}
#search:focus-visible, #search:focus-within, #search:focus {
border-image: linear-gradient(45deg, #33ccffee, #00ff99ee) 1;
border-width: 1px;
border-style: solid;
}
#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: linear-gradient(45deg, rgba(51, 204, 255, 0.5), rgba(0, 255, 153, 0.5));
border-radius: 16px;
}
#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);
}

View File

@@ -1,103 +0,0 @@
# AUTO GENERATED. DO NOT EDIT. CHANGES WILL BE OVERWRITTEN.
[ui.anchors]
bottom = true
left = true
right = true
top = true
[ui.window]
h_align = "fill"
v_align = "fill"
[ui.window.box]
h_align = "center"
width = 450
[ui.window.box.bar]
orientation = "horizontal"
position = "end"
[ui.window.box.bar.entry]
h_align = "fill"
h_expand = true
[ui.window.box.bar.entry.icon]
h_align = "center"
h_expand = true
pixel_size = 24
theme = ""
[ui.window.box.margins]
top = 200
[ui.window.box.ai_scroll]
name = "aiScroll"
h_align = "fill"
v_align = "fill"
max_height = 300
min_width = 400
height = 300
width = 400
[ui.window.box.ai_scroll.margins]
top = 8
[ui.window.box.ai_scroll.list]
name = "aiList"
orientation = "vertical"
width = 400
spacing = 10
[ui.window.box.ai_scroll.list.item]
name = "aiItem"
h_align = "fill"
v_align = "fill"
x_align = 0
y_align = 0
wrap = true
[ui.window.box.scroll.list]
marker_color = "#1BFFE1"
max_height = 300
max_width = 400
min_width = 400
width = 400
[ui.window.box.scroll.list.item.activation_label]
h_align = "fill"
v_align = "fill"
width = 20
x_align = 0.5
y_align = 0.5
[ui.window.box.scroll.list.item.icon]
pixel_size = 26
theme = ""
[ui.window.box.scroll.list.margins]
top = 8
[ui.window.box.search.prompt]
name = "prompt"
icon = "edit-find"
theme = ""
pixel_size = 26
h_align = "center"
v_align = "center"
[ui.window.box.search.clear]
name = "clear"
icon = "edit-clear"
theme = ""
pixel_size = 18
h_align = "center"
v_align = "center"
[ui.window.box.search.input]
h_align = "fill"
h_expand = true
icons = true
[ui.window.box.search.spinner]
hide = true

144
.config/waybar/config Normal file
View File

@@ -0,0 +1,144 @@
{
"layer": "top",
"position": "left",
"output": "DP-1",
"width": 95,
"spacing": 6,
"margin-top": 6,
"margin-bottom": 6,
"modules-left": [
"hyprland/window",
"hyprland/workspaces"
],
"modules-center": [
"cpu",
"memory",
"disk#root",
"network"
],
"modules-right": [
"idle_inhibitor",
"gamemode",
"privacy",
"wireplumber#source",
"wireplumber#sink",
"tray",
"clock"
],
"hyprland/window": {
"format": "{title}",
"max-length": 28,
"icon": true,
"icon-size": 18,
"separate-outputs": false
},
"hyprland/workspaces": {
"format": "{icon} {id}",
"all-outputs": true,
"format-icons": {
"default": "",
"active": "",
"empty": "",
"visible": "",
"persistent": "",
"special": ""
},
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1"
},
"cpu": {
"interval": 2,
"format": "{usage}%"
},
"memory": {
"interval": 5,
"format": "{used:0.1f}G/{total:0.1f}G\n{swapUsed:0.1f}G/{swapTotal:0.1f}G"
},
"disk#root": {
"interval": 30,
"format": "/ {percentage_used}%",
"path": "/"
},
"network": {
"interval": 3,
"format-wifi": " {signalStrength}%",
"format-ethernet": " {ifname}\n {bandwidthUpBytes}\n {bandwidthDownBytes}",
"format-disconnected": ""
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"tooltip-format-activated": "Idle inhibited",
"tooltip-format-deactivated": "Idle allowed"
},
"gamemode": {
"format": ""
},
"privacy": {
"icon-size": 16
},
"wireplumber#source": {
"node-type": "Audio/Source",
"format": " {volume}%",
"format-muted": "",
"tooltip-format": "{node_name} {volume}%",
"scroll-step": 5,
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-"
},
"wireplumber#sink": {
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": ["", "", "󰕾", ""],
"scroll-step": 2,
"max-volume": 140,
"tooltip-format": "{node_name} {volume}%",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
},
"tray": {
"icon-size": 16,
"spacing": 6
},
"clock": {
"format": "{:%H:%M}",
"tooltip-format": "<tt><small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"weeks-pos": "right",
"on-scroll": 1,
"format": {
"months": "<span color='#f6c177'><b>{}</b></span>",
"weekdays": "<span color='#908caa'><b>{}</b></span>",
"days": "<span>{}</span>",
"today": "<span color='#eb6f92'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
}
}

176
.config/waybar/style.css Normal file
View File

@@ -0,0 +1,176 @@
/* Rosé Pine (main) palette
base: #191724 surface: #1f1d2e overlay: #26233a text: #e0def4
muted: #6e6a86 subtle: #908caa
love: #eb6f92 gold: #f6c177 rose: #ea9a97 pine: #31748f foam: #9ccfd8 iris: #c4a7e7
highlight-low: #21202e highlight-med: #403d52 highlight-high: #524f67
*/
/* Bar */
window#waybar {
background: #191724; /* base */
color: #e0def4; /* text */
border-right: 1px solid #21202e; /* highlight-low */
}
/* Typography */
* {
font-family:
JetBrainsMono Nerd Font,
monospace;
font-size: 11px;
}
/* Common module padding for a narrow vertical bar */
#workspaces,
#window,
#cpu,
#memory,
#disk,
#network,
#privacy,
#wireplumber,
#clock,
#idle_inhibitor,
#gamemode {
padding: 6px 8px;
}
/* Window title (top) */
#window {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
border-radius: 8px;
margin: 4px 6px 6px 6px;
}
/* Workspaces */
#workspaces {
padding: 2px 2px;
}
#workspaces button {
padding: 3px; /* was 6px */
margin: 1px 1px; /* was 3px 2px */
border-radius: 6px;
font-size: 10px; /* was 11px */
}
/* Optional: smaller global font just for workspaces */
#workspaces {
font-size: 10px;
}
#workspaces button:hover {
background: #21202e; /* highlight-low */
color: #e0def4; /* text */
}
#workspaces button.active {
background: #403d52; /* highlight-med */
border-color: #524f67; /* highlight-high */
color: #e0def4; /* text */
}
#workspaces button.urgent {
background: #eb6f92; /* love */
color: #191724; /* base for contrast */
}
/* Center stack (cpu/ram/ssds/network) */
#cpu,
#memory,
#disk,
#network {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
}
/* Accent hints for metrics */
#cpu {
border-left: 3px solid #31748f;
} /* pine */
#memory {
border-left: 3px solid #c4a7e7;
} /* iris */
#disk {
border-left: 3px solid #9ccfd8;
} /* foam */
#network {
border-left: 3px solid #f6c177;
} /* gold */
/* Bottom stack */
#privacy,
#wireplumber,
#clock,
#idle_inhibitor,
#gamemode {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
}
/* Microphone button (wireplumber#microphone) */
#wireplumber.microphone {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
border-left: 3px solid #f6c177; /* gold */
}
#wireplumber.microphone.muted {
border-left-color: #524f67; /* highlight-high when muted */
color: #6e6a86; /* muted */
}
#wireplumber.microphone:hover {
background: #26233a;
} /* overlay */
/* Privacy states (camera/mic/screencast) */
#privacy.screencast {
border-left: 3px solid #ea9a97;
} /* rose */
#privacy.microphone {
border-left: 3px solid #f6c177;
} /* gold */
#privacy.camera {
border-left: 3px solid #c4a7e7;
} /* iris */
/* Idle inhibitor */
#idle_inhibitor.activated {
border-left: 3px solid #9ccfd8;
} /* foam */
#idle_inhibitor.deactivated {
border-left: 3px solid #524f67;
} /* highlight-high */
#idle_inhibitor:hover {
background: #26233a;
} /* overlay */
/* Gamemode */
#gamemode {
border-left: 3px solid #f6c177;
}
#gamemode:hover {
background: #26233a;
}
/* Speaker (PipeWire via wireplumber) */
#wireplumber.muted {
color: #6e6a86; /* muted */
border-color: #21202e;
}
/* Clock */
#clock {
border-left: 3px solid #9ccfd8; /* foam */
}
/* Subtle separators */
.modules-center > *:not(:last-child),
.modules-right > *:not(:last-child) {
border-bottom: 1px solid #21202e; /* highlight-low */
}