Compare commits

...

27 Commits

Author SHA1 Message Date
6b8532d304 feat(hypr): monitors/workspaces; tuning; chore(waybar,theme)
- theme: add conf.d/theme.conf symlink -> rose-pine.conf
- cursor: set inactive_timeout=0; zoom_factor=1.0; zoom_rigid=false; enable_hyprcursor=true; sync_gsettings_theme=true
- decoration: enable dim_modal
- animations: add specialWorkspace (easeOutQuint, slidevert)
- master: allow_small_split=false; special_scale_factor=0.8; drop_at_cursor=true
- misc: enable vfr=true (keep vrr=2)
- groups: enable render_titles, scrolling; set priority=3
- monitors: add monitorv2 (DP-1 1920x1080@60 @ 0x0; DP-2 1920x1080@144 @ 1920x0, vrr=1)
- workspaces: map 1–5 -> DP-1; 6–10 -> DP-2 (nwg-displays generated)
- waybar: change on-click to "kitty --hold alhp.utils -j"
2025-09-16 17:07:49 +02:00
3ea7d8230c [feat](cs2autoexec) added some settings" 2025-09-13 02:11:31 +02:00
9161dd0311 [fix] removed gestures from hyprland because of update 2025-09-12 22:16:12 +02:00
77d1a4556f [feat](waybar) added alhp module to waybar 2025-09-11 21:06:51 +02:00
91d4729dfa [feat](waybar): Add support for custom/alhp module
[feat](waybar): Add support for custom/alhp module
2025-09-11 20:32:27 +02:00
daeeabddb0 chore(aliases): Updated yadmai-interactive and yadmai-msg aliases to use yadm diff --stage and removed git diff --cached. 2025-09-11 15:58:42 +02:00
e9e6e7a1b1 feat(aliases): Add interactive commit message generation alias using ollama 2025-09-11 15:33:30 +02:00
5ca1977b03 [feat](aliases): Update aliases to use git-change-g3n2b for diff processing and commit message generation.
[refactor](aliases):  The `gaids` alias was refactored to use `git-change-g3n2b` for diff processing.
[feat](aliases): The `gai-interactive` alias was refactored to use `git-change-g3n2b` for diff processing and commit message generation.
[feat](aliases): The `gai-summaary` alias was refactored to use `git-change-g3n2b` for diff processing.
[feat](aliases): The `gai-msg` alias was refactored to use `git-change-g3n2b` for diff processing and commit message generation.
[feat](aliases): The `gai-all` alias was refactored to use `git-change-g3n2b` for diff processing and commit message generation.
[feat](aliases): The `gaicm` alias was refactored to use `git-change-g3n2b` for diff processing and commit message generation.
2025-09-11 15:19:17 +02:00
c022de5a1e feat(zsh): Implement aliases for git diff, commit message generation, and AI-generated commits 2025-09-11 15:11:34 +02:00
5983f3154a feat: Update GTK theme and icons, and adjust Hyprland keybindings
This commit updates the GTK theme to 'rose-pine-gtk' and its associated icon theme to 'rose-pine-icons'.  It also modifies Hyprland keybindings for applications like KeePassXC and adjusts the launcher.
2025-09-09 00:11:44 +02:00
a09095ebc0 autostart files 2025-08-26 15:18:30 +02:00
9afa23d32b added laptop symlink for waybar 2025-08-26 15:16:47 +02:00
1f2a2d2908 added laptop symlink for waybar 2025-08-26 15:15:34 +02:00
1cad14c6b8 waybar config to symlink; 2025-08-26 15:05:52 +02:00
4b78d86a2b added autostart files 2025-08-26 14:58:53 +02:00
11e6d2e510 fixed gamma 2025-08-26 05:53:06 +02:00
b69b54790a fixed gamma 2025-08-26 05:50:03 +02:00
0fa2292e3c added hyprsunset config 2025-08-26 05:46:37 +02:00
f372a94266 new wallpapers fitting for the rosé pine style and gave spotify a theme 2025-08-26 05:41:34 +02:00
c07202ac58 fine tuned the network and made the gaps fitting 2025-08-26 03:12:22 +02:00
eb6cf09597 moved modules of waybar 2025-08-26 03:00:31 +02:00
fe19724470 added swaync and hyprsunset modules to waybar 2025-08-26 02:59:06 +02:00
1e660e8168 added walker rose-pine and reworked some waybar stuff 2025-08-26 00:34:59 +02:00
9b9dfd0b73 updated eww and hyprpaper for new graka 2025-08-23 18:54:47 +02:00
76f1e4fd86 small changes to mouse follow 2025-07-29 05:23:39 +02:00
cd9c6c0a24 hyprland switch to master layout 2025-07-28 21:04:43 +02:00
2d63eb7a4e some small stuff 2025-07-28 20:30:08 +02:00
73 changed files with 3792 additions and 989 deletions

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Elephant
Comment=A powerful data provider backend for building custom application launchers and desktop utilities.
Exec=elephant
Icon=applications-other
Terminal=false
Categories=Utility;
Keywords=backend;data-provider;launcher;desktop;utility;

View File

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

View File

@@ -0,0 +1 @@
/usr/share/applications/io.element.Element.desktop

View File

@@ -1,5 +1,5 @@
[Desktop Entry]
Icon=/home/mpuchstein/.local/share/JetBrains/Toolbox/toolbox.svg
Icon=/home/mpuchstein/.local/share/JetBrains/Toolbox/bin/toolbox.svg
Exec=/home/mpuchstein/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize
Version=1.0
Type=Application

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Waybar
Comment=Start Waybar on login
Exec=waybar
TryExec=waybar
Icon=waybar
Terminal=false

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Elephant
Comment=A powerful data provider backend for building custom application launchers and desktop utilities.
Exec=elephant
Icon=applications-other
Terminal=false
Categories=Utility;
Keywords=backend;data-provider;launcher;desktop;utility;

View File

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

View File

@@ -0,0 +1,18 @@
[Desktop Entry]
Name=Mumble
GenericName=Voice Chat
GenericName[de]=Sprachkonferenz
GenericName[fr]=Chat vocal
Comment=Open source, low-latency, high quality voice chat.
Comment[de]=Ein Open Source Sprachkonferenzprogramm mit niedriger Latenz und hoher Qualität
Comment[fr]=Un logiciel de chat vocal de haute qualité et de faible latence
Exec=mumble %u
Icon=mumble
Terminal=false
Type=Application
StartupNotify=false
StartupWMClass=mumble
MimeType=x-scheme-handler/mumble;
Categories=Network;Chat;Qt;
Keywords=VoIP;Messaging;Voice Chat;Secure Communication;
Version=1.0

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Element
Comment=Feature-rich client for Matrix
Exec=/usr/bin/element-desktop --password-store="gnome-libsecret" %u
Terminal=false
Type=Application
Icon=io.element.Element
StartupWMClass=Element
Categories=Network;InstantMessaging;Chat;IRCClient
MimeType=x-scheme-handler/element;

View File

@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Vesktop
Comment=Vesktop autostart script
Exec="/usr/lib/vesktop/vesktop"
StartupNotify=false
Terminal=false

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Waybar
Comment=Start Waybar on login
Exec=waybar
TryExec=waybar
Icon=waybar
Terminal=false

View File

@@ -1,5 +1,5 @@
(include "./widgets.yuck")
(include "./topbar_dp1.yuck")
(include "./topbar_dp2.yuck")
(include "./topbar_dp3.yuck")
(include "./topbar_owlenlap02.yuck")

BIN
.config/eww/eww.zip Normal file

Binary file not shown.

View File

@@ -1,5 +1,5 @@
(defwindow topbar_DP-3
:monitor "DP-3"
(defwindow topbar_DP-1
:monitor "DP-1"
:geometry (geometry :x "0%"
:y "0%"
:width "90%"
@@ -9,37 +9,42 @@
:exclusive true
:reserve (struts :side "top" :distance "4%")
:windowtype "dock"
(bar1))
(bar0))
(defwidget bar1 []
(defwidget bar0 []
(centerbox :orientation "h"
(bar1_left)
(bar1_center)
(bar1_right)))
(bar0_left)
(bar0_center)
(bar0_right)))
(defwidget bar1_left []
(defwidget bar0_left []
(box :orientation 'h'
:class: 'left'
:space-evenly false
:spacing 5
:halign 'start'
(hypr_workspaces)))
(hypr_workspaces)
(hypr_active_window)))
(defwidget bar1_center []
(defwidget bar0_center []
(box :orientation 'h'
:class 'center'
:space-evenly false
:spacing 5
(media)
(hyprscreencast)
(sysmon)))
(defwidget bar1_right []
(defwidget bar0_right []
(box
:orientation 'h'
:class 'right'
:space-evenly false
:spacing 5
:halign 'end'
(media)
(hyprscreencast)
(datetime)))
(hyprsunset)
(datetime)
(stray)
(volume)
(swaync)))

View File

@@ -9,42 +9,37 @@
:exclusive true
:reserve (struts :side "top" :distance "4%")
:windowtype "dock"
(bar0))
(bar1))
(defwidget bar0 []
(defwidget bar1 []
(centerbox :orientation "h"
(bar0_left)
(bar0_center)
(bar0_right)))
(bar1_left)
(bar1_center)
(bar1_right)))
(defwidget bar0_left []
(defwidget bar1_left []
(box :orientation 'h'
:class: 'left'
:space-evenly false
:spacing 5
:halign 'start'
(hypr_workspaces)
(hypr_active_window)))
(hypr_workspaces)))
(defwidget bar0_center []
(defwidget bar1_center []
(box :orientation 'h'
:class 'center'
:space-evenly false
:spacing 5
(media)
(hyprscreencast)
(sysmon)))
(defwidget bar0_right []
(defwidget bar1_right []
(box
:orientation 'h'
:class 'right'
:space-evenly false
:spacing 5
:halign 'end'
(hyprsunset)
(datetime)
(stray)
(volume)
(swaync)))
(media)
(hyprscreencast)
(datetime)))

View File

@@ -1,3 +1,4 @@
file:///home/mpuchstein/Documents/personal
file:///home/mpuchstein/Documents/uni uni
file:///home/mpuchstein/Documents
file:///home/mpuchstein/Pictures

View File

@@ -1,8 +1,8 @@
[Settings]
gtk-theme-name=Adwaita
gtk-icon-theme-name=Adwaita
gtk-theme-name=rose-pine-gtk
gtk-icon-theme-name=rose-pine-icons
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
@@ -14,4 +14,4 @@ gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1
gtk-application-prefer-dark-theme=0

View File

@@ -7,14 +7,13 @@ $terminal = uwsm app -T
$terminal_backup = uwsm app -- kitty
$term_tmux = uwsm app -- kitty tmux a
$filemanager = uwsm app -- nautilus
$launcher = uwsm app -- walker
$clipboard = uwsm app -- nwg-clipman
$browser = uwsm app -- zen-browser
$browserprv = uwsm app -- zen-browser --private-window
$firefox = uwsm app -- firefox
$editor = uwsm app -T -- vim
$editor0 = uwsm app -- zeditor
$clipman = uwsm app -- nwg-clipman
$launcher = uwsm app -- sherlock
$clipman = uwsm app -- sherlock-clp | sherlock | cliphist decode | wl-copy
$browser = uwsm app -- firefox
$browserprv = uwsm app -- firefox --private-window
$altbrowser = uwsm app -- chromium
$editor = uwsm app -T -- nvim
$alteditor = uwsm app -- zeditor
$taskman = uwsm app -- uuctl walker -d
$pwdmgr = uwsm app -- keepassxc
$notcenter = uwsm app -- swaync-client -t -sw
@@ -34,9 +33,9 @@ $mainMod = SUPER
bind = $mainMod, E, exec, $filemanager
bind = $mainMod, W, exec, $browser
bind = $mainMod SHIFT, W, exec, $browserprv
bind = $mainMod CTRL, W, exec, $firefox
bind = $mainMod CTRL, W, exec, $altbrowser
bind = $mainMod Shift, E, exec, $editor
bind = $mainMod Shift ALT_L, E, exec, $editor0
bind = $mainMod Shift ALT_L, E, exec, $alteditor
bind = $mainMod, X, exec, $launcher
bind = $mainMod, C, exec, $clipman
bind = $mainMod, Return, exec, $terminal_backup
@@ -51,7 +50,6 @@ bind = $mainMod, A, exec, $nothide
bind = $mainMod SHIFT, A, exec, $notclose
bind = $mainMod CTRL, A, exec, $notcloseall
bind = $mainMod SHIFT, Pause, exec, uwsm stop
bind = $mainMod, Pause, exec, $lockcmd
bind = $mainMod SHIFT, Escape, exec, $lockcmd
@@ -70,6 +68,13 @@ bind = $mainMod SHIFT, Tab, togglesplit,
bind = $mainMod CTRL, Tab, layoutmsg, movetoroot
bind = $mainMod, P, pseudo,
#master layout
bind = $mainMod, Tab, layoutmsg, swapwithmaster
bind = $mainMod SHIFT, Tab, layoutmsg, addmaster
bind = $mainMod CTRL, Tab, layoutmsg, removemaster
bind = $mainMod CTRL SHIFT, Tab, layoutmsg, rollnext
# MOVE FOCUS with mainMod + vim keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r

View File

@@ -0,0 +1 @@
rose-pine.conf

View File

@@ -36,7 +36,7 @@ source = ~/.config/hypr/conf.d/theme.conf
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 0,10,10,10
gaps_out = 5,5,5,5
border_size = 2
@@ -52,7 +52,7 @@ general {
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
layout = master
}
render {
@@ -63,6 +63,12 @@ cursor {
hide_on_key_press = true # Hide cursor when typing
persistent_warps = true # Cursor returns to last position in window
warp_on_change_workspace = true # Move cursor to focused window on workspace switch
inactive_timeout = 0
zoom_factor = 1.0
zoom_rigid = false
enable_hyprcursor = true
sync_gsettings_theme = true
}
@@ -75,6 +81,7 @@ decoration {
inactive_opacity = 1.0
# Dim inactive windows
dim_modal = true
dim_inactive = true
dim_strength = 0.1
@@ -123,6 +130,7 @@ animations {
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
animation = specialWorkspace, 1, 1.5, easeOutQuint, slidevert
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
@@ -139,11 +147,23 @@ animations {
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
smart_split = true
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
orientation = center
center_master_fallback = left
slave_count_for_center_master = 4
mfact = 0.60
new_status = slave
new_on_top = true
new_on_active = after
inherit_fullscreen = true
allow_small_split = false
special_scale_factor = 0.8
drop_at_cursor = true
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
@@ -151,6 +171,7 @@ misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
vrr = 2
vfr = true
mouse_move_enables_dpms = true
key_press_enables_dpms = true
layers_hog_keyboard_focus = true
@@ -169,9 +190,9 @@ input {
numlock_by_default = true
repeat_rate = 25
repeat_delay = 600
follow_mouse = 2
follow_mouse = 1
mouse_refocus = true
float_switch_override_focus = 1
float_switch_override_focus = 2
special_fallthrough = true
touchpad {
disable_while_typing = true
@@ -181,11 +202,6 @@ input {
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
#device {
@@ -237,6 +253,10 @@ group {
col.locked_inactive = $groupbar_grouplocked_inactive
gaps_out = 0
gaps_in = 0
render_titles = true
scrolling = true
priority = 3
}
}
@@ -279,6 +299,7 @@ windowrule = workspace 3, class:^(steam|battle\.net\.exe|net\.lutris\.Lutris)$
## ========== System ==========
windowrule = float, class:org.keepassxc.KeePassXC
windowrule = noscreenshare, class:org.keepassxc.KeePassXC
windowrule = size 60%, 60%, class:org.keepassxc.KeePassXC
windowrule = float, class:com.saivert.pwvucontrol
windowrule = float, class:scrrec

View File

@@ -2,7 +2,8 @@ splash = true
splash_offset = 2.0
ipc = true
preload = /home/mpuchstein/Pictures/wallpaper/1920x1080/widescreen/138 - 1jb5suO.jpg
wallpaper = DP-2, /home/mpuchstein/Pictures/wallpaper/1920x1080/widescreen/138 - 1jb5suO.jpg
preload = /home/mpuchstein/Pictures/wallpaper/1920x1080/widescreen/97 - YDJuRTa.jpg
wallpaper = DP-3, /home/mpuchstein/Pictures/wallpaper/1920x1080/widescreen/97 - YDJuRTa.jpg
preload = /home/mpuchstein/Pictures/wallpaper/1920x1080/rosepinesuccubus10.png
preload = /home/mpuchstein/Pictures/wallpaper/1920x1080/rosepinesuccubus3.png
preload = /home/mpuchstein/Pictures/wallpaper/1920x1080/rosepineskull.png
wallpaper = DP-1, /home/mpuchstein/Pictures/wallpaper/1920x1080/rosepinesuccubus10.png
wallpaper = DP-2, /home/mpuchstein/Pictures/wallpaper/1920x1080/rosepinesuccubus3.png

View File

@@ -0,0 +1,43 @@
max-gamma = 150
profile {
time = 7:30
identity = true
gamma = 1
}
profile {
time = 18:00
temperature = 5000
gamma = 0.90
}
profile {
time = 19:00
temperature = 4500
gamma = 0.90
}
profile {
time = 20:00
temperature = 4000
gamma = 0.90
}
profile {
time = 21:00
temperature = 3500
gamma = 0.80
}
profile {
time = 22:00
temperature = 3000
gamma = 0.80
}
profile {
time = 23:00
temperature = 2500
gamma = 0.80
}

View File

@@ -0,0 +1,13 @@
monitorv2 {
output = DP-1
mode = 1920x1080@60
position = 0x0
scale = 1
}
monitorv2 {
output = DP-2
mode = 1920x1080@144
position = 1920x0
scale = 1
vrr = 1
}

View File

@@ -0,0 +1,12 @@
# Generated by nwg-displays on 2025-08-23 at 18:21:52. Do not edit manually.
workspace=1,monitor:DP-1,default:true
workspace=2,monitor:DP-1
workspace=3,monitor:DP-1
workspace=4,monitor:DP-1
workspace=5,monitor:DP-1
workspace=6,monitor:DP-2,default:true
workspace=7,monitor:DP-2
workspace=8,monitor:DP-2
workspace=9,monitor:DP-2
workspace=10,monitor:DP-2

View File

@@ -1,7 +1,7 @@
[Setting]
spotify_path = $HOME/.local/share/spotify-launcher/install/usr/share/spotify/
current_theme = marketplace
color_scheme =
current_theme = Ziro
color_scheme = rose-pine
inject_theme_js = 1
replace_colors = 1
always_enable_devtools = 0
@@ -19,7 +19,7 @@ expose_apis = 1
[AdditionalOptions]
custom_apps = marketplace
sidebar_config = 1
sidebar_config = 0
home_config = 1
experimental_features = 1
extensions =
@@ -28,5 +28,5 @@ extensions =
; DO NOT CHANGE!
[Backup]
version = 1.2.56.502.ga68d2d4f
with = 2.39.5
version = 1.2.63.394.g126b0d89
with = 2.41.0

View File

@@ -1,228 +1,256 @@
@define-color cc-bg #32302f;
@define-color noti-border-color #32302f;
@define-color noti-bg #3c3836;
@define-color noti-bg-darker #3c3836;
@define-color noti-bg-hover rgb(27, 27, 43);
@define-color noti-bg-focus rgba(27, 27, 27, 0.6);
@define-color text-color #f9f5d7;
@define-color text-color-disabled #bdae93;
@define-color bg-selected #fabd2f;
@define-color rp-base #191724;
@define-color rp-surface #1f1d2e;
@define-color rp-overlay #26233a;
@define-color rp-hl-low #21202e;
@define-color rp-hl-med #403d52;
@define-color rp-hl-high #524f67;
* {
@define-color rp-muted #6e6a86;
@define-color rp-subtle #908caa;
@define-color rp-text #e0def4;
@define-color rp-love #eb6f92;
@define-color rp-gold #f6c177;
@define-color rp-rose #ebbcba;
@define-color rp-pine #31748f;
@define-color rp-foam #9ccfd8;
@define-color rp-iris #c4a7e7;
/* To use Rosé Pine Moon, replace:
rp-base: #232136; rp-surface: #2a273f; rp-overlay: #393552;
rp-hl-low: #2a283e; rp-hl-med: #44415a; rp-hl-high: #56526e;
rp-text: #e0def4; rp-subtle: #908caa; accents same.
For Dawn (light), youll likely also want to invert contrasts. */
@define-color cc-bg @rp-surface;
@define-color noti-border-color @rp-hl-high;
@define-color noti-bg @rp-overlay;
@define-color noti-bg-darker @rp-hl-low;
@define-color noti-bg-hover @rp-hl-med;
@define-color noti-bg-focus alpha(@rp-hl-high, 0.6);
@define-color text-color @rp-text;
@define-color text-color-disabled @rp-subtle;
@define-color bg-selected @rp-iris;
{
font-family: JetBrainsMono NFP;
font-weight: bold;
font-size: 14px
}
font-size: 14px;
}
.control-center .notification-row:focus,
.control-center .notification-row:hover {
opacity: 1;
background: @noti-bg-darker
opacity: 1;
background: @noti-bg-darker;
}
.notification-row {
outline: none;
margin: 20px;
padding: 0;
outline: none;
margin: 20px;
padding: 0;
}
.notification {
background: transparent;
margin: 0px;
background: transparent;
margin: 0px;
}
.notification-content {
background: @cc-bg;
padding: 7px;
border-radius: 0px;
border: 2px solid #85796f;
margin: 0;
background: @cc-bg;
padding: 7px;
border-radius: 0px;
border: 2px solid @noti-border-color;
margin: 0;
}
.close-button {
background: #d79921;
color: @cc-bg;
text-shadow: none;
padding: 0;
border-radius: 0px;
margin-top: 5px;
margin-right: 5px;
background: @rp-gold;
color: @cc-bg;
text-shadow: none;
padding: 0;
border-radius: 0px;
margin-top: 5px;
margin-right: 5px;
}
.close-button:hover {
box-shadow: none;
background: #fabd2f;
transition: all .15s ease-in-out;
border: none
box-shadow: none;
background: @rp-rose;
color: @cc-bg;
transition: all .15s ease-in-out;
border: none;
}
.notification-action {
color: #ebdbb2;
border: 2px solid #85796f;
border-top: none;
border-radius: 0px;
background: #32302F;
color: @text-color;
border: 2px solid @noti-border-color;
border-top: none;
border-radius: 0px;
background: @rp-base;
}
.notification-default-action:hover,
.notification-action:hover {
color: #ebdbb2;
background: #32302F;
color: @text-color;
background: @noti-bg-hover;
}
.summary {
padding-top: 7px;
font-size: 13px;
color: #ebdbb2;
padding-top: 7px;
font-size: 13px;
color: @text-color;
}
.time {
font-size: 11px;
color: #d79921;
margin-right: 24px
font-size: 11px;
color: @rp-gold;
margin-right: 24px;
}
.body {
font-size: 12px;
color: #ebdbb2;
font-size: 12px;
color: @text-color;
}
.control-center {
background: @cc-bg;
border: 2px solid #85796f;
border-radius: 0px;
background: @cc-bg;
border: 2px solid @noti-border-color;
border-radius: 0px;
}
.control-center-list {
background: transparent
background: transparent;
}
.control-center-list-placeholder {
opacity: .5
opacity: .5;
}
.floating-notifications {
background: transparent
background: transparent;
}
.blank-window {
background: alpha(black, 0.1)
background: alpha(@rp-base, 0.1);
}
.widget-title {
color: #f9f5d7;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 10px 10px 5px 10px;
font-size: 1.5rem;
border-radius: 5px;
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 10px 10px 5px 10px;
font-size: 1.5rem;
border-radius: 5px;
}
.widget-title>button {
font-size: 1rem;
color: @text-color;
text-shadow: none;
background: @noti-bg;
box-shadow: none;
border-radius: 5px;
.widget-title > button {
font-size: 1rem;
color: @text-color;
text-shadow: none;
background: @noti-bg;
box-shadow: none;
border-radius: 5px;
}
.widget-title>button:hover {
background: #d79921;
color: @cc-bg;
.widget-title > button:hover {
background: @rp-gold;
color: @cc-bg;
}
.widget-dnd {
background: @noti-bg-darker;
padding: 5px 10px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
font-size: large;
color: #f2e5bc;
background: @noti-bg-darker;
padding: 5px 10px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
font-size: large;
color: @text-color;
}
.widget-dnd>switch {
border-radius: 4px;
background: #665c54;
.widget-dnd > switch {
border-radius: 4px;
background: @rp-muted;
}
.widget-dnd>switch:checked {
background: #d79921;
border: 1px solid #d79921;
.widget-dnd > switch:checked {
background: @rp-gold;
border: 1px solid @rp-gold;
}
.widget-dnd>switch slider {
background: @cc-bg;
border-radius: 5px
.widget-dnd > switch slider {
background: @cc-bg;
border-radius: 5px;
}
.widget-dnd>switch:checked slider {
background: @cc-bg;
border-radius: 5px
.widget-dnd > switch:checked slider {
background: @cc-bg;
border-radius: 5px;
}
.widget-label {
margin: 10px 10px 5px 10px;
margin: 10px 10px 5px 10px;
}
.widget-label>label {
font-size: 1rem;
color: @text-color;
.widget-label > label {
font-size: 1rem;
color: @text-color;
}
.widget-mpris {
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px 0px 0px;
margin: 5px 10px 5px 10px;
border-radius: 0px;
color: @text-color;
background: @noti-bg-darker;
padding: 5px 10px 0px 0px;
margin: 5px 10px 5px 10px;
border-radius: 0px;
}
.widget-mpris > box > button {
border-radius: 5px;
border-radius: 5px;
}
.widget-mpris-player {
padding: 5px 10px;
margin: 10px
padding: 5px 10px;
margin: 10px;
}
.widget-mpris-title {
font-weight: 700;
font-size: 1.25rem
font-weight: 700;
font-size: 1.25rem;
}
.widget-mpris-subtitle {
font-size: 1.1rem
font-size: 1.1rem;
color: @text-color-disabled;
}
.widget-buttons-grid {
font-size: x-large;
padding: 5px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
background: @noti-bg-darker;
font-size: x-large;
padding: 5px;
margin: 5px 10px 10px 10px;
border-radius: 5px;
background: @noti-bg-darker;
}
.widget-buttons-grid>flowbox>flowboxchild>button {
margin: 3px;
background: @cc-bg;
border-radius: 5px;
color: @text-color
.widget-buttons-grid > flowbox > flowboxchild > button {
margin: 3px;
background: @cc-bg;
border-radius: 5px;
color: @text-color;
border: 1px solid @noti-border-color;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: #d79921;
color: @cc-bg;
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @rp-gold;
color: @cc-bg;
}
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent
.widget-menubar > box > .menu-button-bar > button {
border: none;
background: transparent;
color: @text-color;
}
.topbar-buttons>button {
border: none;
background: transparent
.topbar-buttons > button {
border: none;
background: transparent;
color: @text-color;
}

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

1
.config/waybar/config Symbolic link
View File

@@ -0,0 +1 @@
config##hostname.owlenpc00

View File

@@ -0,0 +1,282 @@
{
"layer": "top",
"position": "left",
"output": "eDP-1",
"width": 95,
"spacing": 6,
"margin-top": 6,
"margin-bottom": 6,
"modules-left": [
"clock",
"custom/swaync",
"hyprland/window",
"hyprland/workspaces"
],
"modules-center": [
"cpu",
"memory",
"disk#root",
"network",
"temperature#cpu",
"temperature#gpu_hotspot"
],
"modules-right": [
"idle_inhibitor",
"custom/hyprsunset",
"gamemode",
"privacy",
"wireplumber#source",
"wireplumber#sink",
"tray",
"bluetooth",
"power-profiles-daemon",
"battery"
],
"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": " {essid}%",
"format-ethernet": " {ifname}",
"tooltip-format-wifi": "{signalStrength}\n {bandwidthUpBytes}\n {bandwidthDownBytes}",
"tooltip-format-ethernet": " {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"
}
},
"power-profiles-daemon": {
"format": "{icon} {profile}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"performance": "",
"balanced": "",
"power-saver": "",
"default": ""
}
},
"battery": {
"interval": 30,
"states": { "warning": 30, "critical": 15 },
"format": "{capacity}% {icon}",
"format-time": "{H}h {M}m",
"format-icons": ["", "", "", "", ""],
"tooltip": true,
"events": {
"on-discharging-warning": "notify-send -u normal 'Battery low'",
"on-discharging-critical": "notify-send -u critical 'Battery very low'",
"on-charging-100": "notify-send -u normal 'Battery full'"
}
},
"bluetooth": {
"format": "",
"format-disabled": "",
"format-off": "",
"format-on": "",
"tooltip": true,
"on-click": "blueman-manager"
},
"group/temps": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 300,
"transition-left-to-right": true,
"click-to-reveal": true
},
"modules": [
"custom/temps-wrap", // leader, always visible
"temperature#cpu",
"temperature#gpu_hotspot",
"temperature#nvme",
]
},
"custom/temps-wrap": {
"format": "",
"tooltip-format": "Temperatures"
},
"temperature#cpu": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"critical-threshold": 85,
"format": " CPU: {temperatureC}°C",
"format-critical": " CPU: {temperatureC}°C ",
"tooltip-format": "CPU Tctl: {temperatureC}°C"
},
"temperature#gpu_edge": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"critical-threshold": 100,
"format": "GPU {temperatureC}°C",
"format-critical": "GPU {temperatureC}°C ",
"tooltip-format": "GPU edge: {temperatureC}°C"
},
"temperature#gpu_hotspot": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp2_input",
"interval": 5,
"critical-threshold": 110,
"format": " GPU: {temperatureC}°C",
"format-critical": " GPU: {temperatureC}°C ",
"tooltip-format": "GPU junction: {temperatureC}°C"
},
"temperature#gpu_mem": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp3_input",
"interval": 5,
"critical-threshold": 100,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
"tooltip-format": "GPU memory: {temperatureC}°C"
},
"temperature#nvme": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:02.2/0000:23:00.0/nvme/nvme0/hwmon",
"input-filename": "temp1_input",
"interval": 10,
"critical-threshold": 85,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
"tooltip-format": "NVMe Composite: {temperatureC}°C"
},
"custom/swaync": {
"format": " {}",
"exec-if": "which swaync-client >/dev/null 2>&1 && pgrep -x swaync >/dev/null 2>&1",
"exec": "swaync-client -c",
"interval": 2,
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d",
"on-click-middle": "swaync-client -C"
},
"custom/hyprsunset": {
"format": "SUN",
"tooltip": true,
"tooltip-format": "Hyprsunset controls: Left=Enable, Right=Disable, Scroll=Gamma ±10%",
"on-click": "hyprctl hyprsunset temperature 2500", // enable warm tint
"on-click-right": "hyprctl hyprsunset identity", // disable (neutral)
"on-scroll-up": "hyprctl hyprsunset gamma +10", // brighter
"on-scroll-down": "hyprctl hyprsunset gamma -10", // dimmer
"interval": 0
}
}

View File

@@ -0,0 +1,293 @@
{
"layer": "top",
"position": "left",
"output": "DP-1",
"width": 95,
"spacing": 6,
"margin-top": 6,
"margin-bottom": 6,
"modules-left": [
"clock",
"custom/swaync",
"custom/alhp",
"hyprland/window",
"hyprland/workspaces"
],
"modules-center": [
"cpu",
"memory",
"disk#root",
"network",
"temperature#cpu",
"temperature#gpu_hotspot"
],
"modules-right": [
"idle_inhibitor",
"custom/hyprsunset",
"gamemode",
"privacy",
"wireplumber#source",
"wireplumber#sink",
"tray",
"bluetooth",
"power-profiles-daemon",
"battery"
],
"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": " {essid}%",
"format-ethernet": " {ifname}",
"tooltip-format-wifi": "{signalStrength}\n {bandwidthUpBytes}\n {bandwidthDownBytes}",
"tooltip-format-ethernet": " {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"
}
},
"power-profiles-daemon": {
"format": "{icon} {profile}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"performance": "",
"balanced": "",
"power-saver": "",
"default": ""
}
},
"battery": {
"interval": 30,
"states": { "warning": 30, "critical": 15 },
"format": "{capacity}% {icon}",
"format-time": "{H}h {M}m",
"format-icons": ["", "", "", "", ""],
"tooltip": true,
"events": {
"on-discharging-warning": "notify-send -u normal 'Battery low'",
"on-discharging-critical": "notify-send -u critical 'Battery very low'",
"on-charging-100": "notify-send -u normal 'Battery full'"
}
},
"bluetooth": {
"format": "",
"format-disabled": "",
"format-off": "",
"format-on": "",
"tooltip": true,
"on-click": "blueman-manager"
},
"group/temps": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 300,
"transition-left-to-right": true,
"click-to-reveal": true
},
"modules": [
"custom/temps-wrap", // leader, always visible
"temperature#cpu",
"temperature#gpu_hotspot",
"temperature#nvme",
]
},
"custom/temps-wrap": {
"format": "",
"tooltip-format": "Temperatures"
},
"temperature#cpu": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"critical-threshold": 85,
"format": " CPU: {temperatureC}°C",
"format-critical": " CPU: {temperatureC}°C ",
"tooltip-format": "CPU Tctl: {temperatureC}°C"
},
"temperature#gpu_edge": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp1_input",
"interval": 5,
"critical-threshold": 100,
"format": "GPU {temperatureC}°C",
"format-critical": "GPU {temperatureC}°C ",
"tooltip-format": "GPU edge: {temperatureC}°C"
},
"temperature#gpu_hotspot": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp2_input",
"interval": 5,
"critical-threshold": 110,
"format": " GPU: {temperatureC}°C",
"format-critical": " GPU: {temperatureC}°C ",
"tooltip-format": "GPU junction: {temperatureC}°C"
},
"temperature#gpu_mem": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:01.1/0000:10:00.0/0000:11:00.0/0000:12:00.0/hwmon",
"input-filename": "temp3_input",
"interval": 5,
"critical-threshold": 100,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
"tooltip-format": "GPU memory: {temperatureC}°C"
},
"temperature#nvme": {
"hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:02.2/0000:23:00.0/nvme/nvme0/hwmon",
"input-filename": "temp1_input",
"interval": 10,
"critical-threshold": 85,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C ",
"tooltip-format": "NVMe Composite: {temperatureC}°C"
},
"custom/swaync": {
"format": " {}",
"exec-if": "which swaync-client >/dev/null 2>&1 && pgrep -x swaync >/dev/null 2>&1",
"exec": "swaync-client -c",
"interval": 2,
"on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -d",
"on-click-middle": "swaync-client -C"
},
"custom/hyprsunset": {
"format": "SUN",
"tooltip": true,
"tooltip-format": "Hyprsunset controls: Left=Enable, Right=Disable, Scroll=Gamma ±10%",
"on-click": "hyprctl hyprsunset temperature 2500", // enable warm tint
"on-click-right": "hyprctl hyprsunset identity", // disable (neutral)
"on-scroll-up": "hyprctl hyprsunset gamma +10", // brighter
"on-scroll-down": "hyprctl hyprsunset gamma -10", // dimmer
"interval": 0
},
"custom/alhp": {
"id": "custom-alhp",
"exec": "$HOME/.config/waybar/scripts/alhp.sh",
"return-type": "json",
"interval": 60,
"tooltip": true,
"format": "{text}",
"on-click": "kitty --hold alhp.utils -j"
}
}

52
.config/waybar/scripts/alhp.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# defaults
text=""
tooltip='All good'
class='good'
# Check if alhp.utils command exists, if not consider it as down
if ! command -v alhp.utils &> /dev/null; then
tooltip="Service unavailable"
text=""
class="down"
else
ALHP_OUTPUT=$(alhp.utils -j)
mirror_stale=$(jq -r '.mirror_out_of_date' <<<"$ALHP_OUTPUT")
total=$(jq -r '.total' <<<"$ALHP_OUTPUT")
mirror_stale=$(jq -r '.mirror_out_of_date' <<<"$ALHP_OUTPUT")
# safe array even if packages is null
readarray -t packages < <(
jq -r '.packages // [] | .[]' <<<"$ALHP_OUTPUT"
)
# 1) Mirror stale? highest priority
if [[ "$mirror_stale" == "true" ]]; then
class="stale"
tooltip="Mirror is out of date"
# 2) Any pending PKGBUILDs?
elif (( total > 0 )); then
class="bad"
text="$total"
tooltip=$(printf "%s\n" "${packages[@]}")
fi
fi
case "$class" in
good) icon=" ";;
stale) icon="󰏖 ";;
bad) icon="󰏗 ";;
down) icon="x ";;
esac
# Emit compact JSON for Statusbar
jq -nc \
--arg text "<span color=\"#4F84CC\">$icon</span> <span color=\"#CAD3E8\">$text</span>" \
--arg class "$class" \
--arg tooltip "$tooltip" \
'{text: $text, class: $class, tooltip: $tooltip}'

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

@@ -0,0 +1,388 @@
@define-color base #191724;
@define-color surface #1f1d2e;
@define-color overlay #26233a;
@define-color text #e0def4;
@define-color muted #6e6a86;
@define-color subtle #908caa;
@define-color love #eb6f92;
@define-color gold #f6c177;
@define-color rose #ea9a97;
@define-color pine #31748f;
@define-color foam #9ccfd8;
@define-color iris #c4a7e7;
@define-color hl_low #21202e;
@define-color hl_med #403d52;
@define-color hl_high #524f67;
/* Bar */
window#waybar {
background: @base;
color: @text;
border-right: 1px solid @hl_low;
}
/* Typography */
* {
font-family:
"InconsolataGo Nerd Font Mono", "InconsolataGo Nerd Font", monospace;
font-size: 11px;
}
/* Workspaces */
#workspaces {
margin: 1px;
padding: 2px 4px;
background: transparent;
font-size: 10px;
}
#workspaces button {
background: @surface;
color: @text;
border: 1px solid @hl_low;
border-radius: 6px;
margin: 2px;
padding: 3px 6px;
}
#workspaces button:hover {
background: @overlay;
}
#workspaces button.active {
background: @hl_med;
border-color: @hl_high;
color: @text;
}
#workspaces button.urgent {
background: @love;
color: @base;
}
/* Shared pill look for ALL modules - FIXED */
#window,
#cpu,
#memory,
#disk,
#network,
#privacy,
#wireplumber,
#clock,
#idle_inhibitor,
#gamemode,
#battery,
#power-profiles-daemon,
#bluetooth,
#group-temps,
#tray,
#temperature,
#custom-swaync,
#custom-hyprsunset,
#custom-alhp {
background: @surface;
color: @text;
border: 1px solid @hl_low;
border-radius: 8px;
padding: 3px 6px;
margin: 2px 4px;
}
/* Universal hover effects - FIXED */
#window:hover,
#cpu:hover,
#memory:hover,
#disk:hover,
#network:hover,
#privacy:hover,
#wireplumber:hover,
#clock:hover,
#idle_inhibitor:hover,
#gamemode:hover,
#battery:hover,
#power-profiles-daemon:hover,
#bluetooth:hover,
#group-temps:hover,
#tray:hover,
#temperature:hover,
#custom-swaync:hover,
#custom-hyprsunset:hover,
#custom-alhp:hover {
background: @overlay;
}
/* Window title */
#window {
border-left: 3px solid @iris;
}
/* Accents for metrics */
#cpu {
border-left: 3px solid @pine;
}
#memory {
border-left: 3px solid @iris;
}
#disk {
border-left: 3px solid @foam;
}
#network {
border-left: 3px solid @gold;
}
/* Temperature modules - individual styling for standalone use */
#temperature.cpu {
border-left: 3px solid @pine;
}
#temperature.gpu_edge {
border-left: 3px solid @iris;
}
#temperature.gpu_hotspot {
border-left: 3px solid @rose;
}
#temperature.gpu_mem {
border-left: 3px solid @foam;
}
#temperature.nvme {
border-left: 3px solid @gold;
}
#temperature.critical {
background: @hl_med;
color: @love;
border-left-color: @love;
}
/* WirePlumber / audio */
#wireplumber {
border-left: 3px solid @gold;
}
#wireplumber.muted {
color: @muted;
border-left-color: @hl_high;
}
#wireplumber.microphone {
border-left-color: @gold;
}
#wireplumber.microphone.muted {
border-left-color: @hl_high;
color: @muted;
}
/* Privacy states */
#privacy.screencast {
border-left: 3px solid @rose;
}
#privacy.microphone {
border-left: 3px solid @gold;
}
#privacy.camera {
border-left: 3px solid @iris;
}
/* Idle inhibitor */
#idle_inhibitor.activated {
border-left: 3px solid @foam;
}
#idle_inhibitor.deactivated {
border-left: 3px solid @hl_high;
}
/* Gamemode */
#gamemode {
border-left: 3px solid @gold;
}
/* Clock */
#clock {
border-left: 3px solid @foam;
}
/* Battery */
#battery {
border-left: 3px solid @foam;
}
#battery.warning {
border-left-color: @gold;
}
#battery.critical {
border-left-color: @love;
color: @love;
}
/* Power profiles */
#power-profiles-daemon {
border-left: 3px solid @gold;
}
#power-profiles-daemon.performance {
border-left-color: @love;
}
#power-profiles-daemon.balanced {
border-left-color: @foam;
}
#power-profiles-daemon.power-saver {
border-left-color: @pine;
}
/* Bluetooth */
#bluetooth {
border-left: 3px solid @iris;
}
#bluetooth.off,
#bluetooth.disabled {
color: @muted;
border-left-color: @hl_high;
}
/* Notifications */
#custom-swaync {
border-left: 3px solid @iris;
}
#custom-swaync.dnd {
border-left-color: @gold;
}
/* Night shift */
#custom-hyprsunset {
border-left: 3px solid @rose;
}
/* ALHP custom module - FIXED */
#custom-alhp {
border-left: 3px solid @pine;
}
/* Temps group: outer pill + compact rows */
#group-temps {
border-left: 3px solid @rose;
}
#group-temps > * {
background: transparent;
border: 0;
margin: 0;
padding: 0;
}
#custom-temps-wrap {
padding: 4px 6px;
border-radius: 6px;
}
#group-temps #temperature {
background: transparent;
color: @text;
margin: 2px 0;
padding: 4px 6px;
border-radius: 6px;
}
#group-temps #temperature:hover {
background: @overlay;
}
/* Temperature modules within group - maintain specific colors */
#group-temps #temperature.cpu {
border-left: 3px solid @pine;
}
#group-temps #temperature.gpu_edge {
border-left: 3px solid @iris;
}
#group-temps #temperature.gpu_hotspot {
border-left: 3px solid @rose;
}
#group-temps #temperature.gpu2_edge {
border-left: 3px solid @foam;
}
#group-temps #temperature.nvme {
border-left: 3px solid @gold;
}
#group-temps #temperature.critical {
background: @hl_med;
color: @text;
}
/* Tray */
#tray {
border-left: 3px solid @iris;
}
#tray > .passive {
opacity: 0.7;
}
#tray > .needs-attention {
border-left: 3px solid @love;
}
/* Tooltips */
tooltip,
window#waybar tooltip {
background: @surface;
color: @text;
border: 1px solid @hl_low;
border-radius: 8px;
padding: 6px 8px;
}
/* Popup menus */
menu,
.menu,
popover,
.popover {
background: @surface;
color: @text;
border: 1px solid @hl_low;
border-radius: 8px;
padding: 6px 8px;
}
menuitem,
.menuitem {
background: transparent;
color: @text;
border-radius: 6px;
padding: 6px 8px;
}
menuitem:hover,
.menuitem:hover {
background: @overlay;
}
menuitem:disabled,
.menuitem:disabled {
color: @muted;
}
menu separator,
.menu separator {
background: @hl_low;
min-height: 1px;
margin: 6px 0;
}

435
.config/waybar/style_bk.css Normal file
View File

@@ -0,0 +1,435 @@
/* 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 */
}
/* SwayNC widget */
#custom-swaync {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
padding: 6px 8px;
border-left: 3px solid #c4a7e7; /* iris */
}
#custom-swaync.dnd {
/* if swaync emits a 'dnd' class */
border-left-color: #f6c177; /* gold */
}
#custom-swaync:hover {
background: #26233a; /* overlay */
}
/* Hyprsunset widget */
#custom-hyprsunset {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
padding: 6px 8px;
border-left: 3px solid #ea9a97; /* rose */
}
#custom-hyprsunset:hover {
background: #26233a; /* overlay */
}
/* Unified pill styling for new modules (Rose Pine) */
#group-temps,
#battery,
#power-profiles-daemon,
#bluetooth,
#group-temps #temperature,
#custom-temps-wrap {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
padding: 6px 8px;
}
/* Tighter padding for the groups revealed children so they fit the narrow bar */
#group-temps #temperature,
#custom-temps-wrap {
padding: 4px 6px;
border-radius: 6px;
}
/* Hover feedback matching other tiles */
#group-temps:hover,
#battery:hover,
#power-profiles-daemon:hover,
#bluetooth:hover,
#group-temps #temperature:hover,
#custom-temps-wrap:hover {
background: #26233a; /* overlay */
}
/* Accent edges for the temperature instances */
#temperature.cpu {
border-left: 3px solid #31748f;
} /* pine */
#temperature.gpu_edge {
border-left: 3px solid #c4a7e7;
} /* iris */
#temperature.gpu_hotspot {
border-left: 3px solid #ea9a97;
} /* rose */
#temperature.gpu2_edge {
border-left: 3px solid #9ccfd8;
} /* foam */
#temperature.nvme {
border-left: 3px solid #f6c177;
} /* gold */
/* Low/critical battery accents */
#battery {
border-left: 3px solid #9ccfd8;
} /* foam */
#battery.warning {
border-left-color: #f6c177;
} /* gold */
#battery.critical {
border-left-color: #eb6f92;
color: #eb6f92;
} /* love */
/* Power profile accents */
#power-profiles-daemon {
border-left: 3px solid #f6c177;
} /* gold */
#power-profiles-daemon.performance {
border-left-color: #eb6f92;
} /* love */
#power-profiles-daemon.balanced {
border-left-color: #9ccfd8;
} /* foam */
#power-profiles-daemon.power-saver {
border-left-color: #31748f;
} /* pine */
/* Bluetooth state accents */
#bluetooth {
border-left: 3px solid #c4a7e7;
} /* iris */
#bluetooth.off,
#bluetooth.disabled {
color: #6e6a86;
border-left-color: #524f67;
} /* muted / highlight-high */
/* Temps group: make the outer pill look like other tiles */
#group-temps {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
padding: 6px 8px; /* match other pills */
border-left: 3px solid #ea9a97; /* rose */
}
/* Reset inner containers so only the outer pill draws the card */
#group-temps > * {
background: transparent;
border: 0;
margin: 0;
padding: 0;
}
/* Leader glyph spacing */
#custom-temps-wrap {
padding: 2px 0 6px 0; /* compact leader inside the pill */
}
/* Children: compact rows inside the pill, not separate cards */
#group-temps #temperature {
background: transparent; /* let the outer pill show through */
color: #e0def4;
margin: 2px 0;
border-radius: 6px;
padding: 4px 6px;
}
/* Hover feedback like other tiles */
#group-temps #temperature:hover,
#group-temps:hover {
background: #26233a; /* overlay */
}
/* Accent edges per instance */
#temperature.cpu {
border-left: 3px solid #31748f;
} /* pine */
#temperature.gpu_edge {
border-left: 3px solid #c4a7e7;
} /* iris */
#temperature.gpu_hotspot {
border-left: 3px solid #ea9a97;
} /* rose */
#temperature.gpu2_edge {
border-left: 3px solid #9ccfd8;
} /* foam */
#temperature.nvme {
border-left: 3px solid #f6c177;
} /* gold */
/* Critical tint consistent with warnings */
#temperature.critical {
background: #403d52; /* highlight-med */
color: #e0def4;
}
/* Tray container (pill) */
#tray {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
margin: 3px 6px;
border-radius: 8px;
border: 1px solid #21202e; /* highlight-low */
padding: 6px 8px;
border-left: 3px solid #c4a7e7; /* iris */
}
/* Tray icon states */
#tray > .passive {
opacity: 0.7; /* muted */
}
#tray > .needs-attention {
border-left: 3px solid #eb6f92; /* love */
animation: tray-attn 1s ease-in-out infinite alternate;
}
@keyframes tray-attn {
from {
opacity: 0.75;
}
to {
opacity: 1;
}
}
/* Hover like other tiles */
#tray:hover {
background: #26233a; /* overlay */
}
/* Tooltips for tray items (Waybar uses GTK tooltips) */
tooltip, /* GTK selector */
window#waybar tooltip {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
border: 1px solid #21202e; /* highlight-low */
border-radius: 8px;
padding: 6px 8px;
}
/* Popup menus opened from tray icons (GTK) */
menu,
.menu,
popover,
.popover {
background: #1f1d2e; /* surface */
color: #e0def4; /* text */
border: 1px solid #21202e; /* highlight-low */
border-radius: 8px;
padding: 6px 8px;
}
/* Menu items */
menuitem,
.menuitem {
background: transparent;
color: #e0def4;
border-radius: 6px;
padding: 6px 8px;
}
menuitem:hover,
.menuitem:hover {
background: #26233a; /* overlay */
}
menuitem:disabled,
.menuitem:disabled {
color: #6e6a86; /* muted */
}
/* Menu separators */
menu separator,
.menu separator {
background: #21202e; /* highlight-low */
min-height: 1px;
margin: 6px 0;
}

1
.config/zsh/.zprofile Normal file
View File

@@ -0,0 +1 @@
emulate sh -c 'source /etc/profile'

View File

@@ -5,6 +5,11 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# Load personal aliases
if [[ -f "${HOME}/.config/zsh/aliases.zsh" ]]; then
source "${HOME}/.config/zsh/aliases.zsh"
fi
# Variables for ZIM
ZIM_CONFIG_FILE=${ZDOTDIR}/.zimrc
ZIM_HOME=${ZDOTDIR}/zim

43
.config/zsh/aliases.zsh Normal file
View File

@@ -0,0 +1,43 @@
# Basic git diff summarizer
alias gai-summary="git diff | ollama run git-change-g3n2b"
# Full git commit message generation pipeline
alias gai-msg="git diff --cached | ollama run git-change-g3n2b | ollama run git-commit-g3n2b"
# Alternative: analyze all changes (not just staged)
alias gai-all="git diff | ollama run git-change-g3n2b | ollama run git-commit-g3n2b"
# Interactive version - shows summary first, then generates commit message
alias gai-interactive='echo "=== DIFF SUMMARY ===" && git diff --cached | ollama run git-change-g3n2b && echo -e "\n=== COMMIT MESSAGE OPTIONS ===" && git diff --cached | ollama run git-change-g3n2b | ollama run git-commit-g3n2b'
# Shorter aliases for frequent use
alias gaids="git diff --cached | ollama run git-change-g3n2b"
alias gaicm="git diff --cached | ollama run git-change-g3n2b | ollama run git-commit-g3n2b"
# Function for creating commit with AI-generated message
gai-commit() {
if [[ -z $(git diff --cached --name-only) ]]; then
echo "No staged changes found. Stage your changes first with 'git add'."
return 1
fi
echo "Analyzing staged changes..."
local commit_msg=$(git diff --cached | ollama run git-diff-summarizer | ollama run commit-msg-generator)
echo -e "\nGenerated commit message:\n$commit_msg"
echo -e "\nProceed with this commit? (y/n)"
read -r response
if [[ "$response" =~ ^[Yy]$ ]]; then
git commit -m "$commit_msg"
echo "Committed successfully!"
else
echo "Commit cancelled."
fi
}
# Interactive version - shows summary first, then generates commit message
alias yadmai-interactive='echo "=== DIFF SUMMARY ===" && yadm diff --staged | ollama run git-change-g3n2b && echo -e "\n=== COMMIT MESSAGE OPTIONS ===" && yadm diff --staged | ollama run git-change-g3n2b | ollama run git-commit-g3n2b'
# Full git commit message generation pipeline
alias yadmai-msg="yadm diff --staged | ollama run git-change-g3n2b | ollama run git-commit-g3n2b"

View File

@@ -12,16 +12,19 @@ alias -lineupcrosshair "cl_crosshairsize 2"
alias +radarzoom "cl_radar_scale 0.4; cl_radar_always_centered 0"
alias -radarzoom "cl_radar_scale 0.7; cl_radar_always_centered 1"
alias "+bombfind" "+use; gameinstructor_enable 1"
alias "-bombfind" "-use; gameinstructor_enable 0"
//Binds
unbindall
// Movement binds
bind "w" "+forward"
bind "a" "+left"
bind "s" "+back"
bind "d" "+right"
bind "SPACE" "+duck"
bind "W" "+forward"
bind "A" "+left"
bind "S" "+back"
bind "D" "+right"
bind "SPACE" "+duck"
bind "SHIFT" "+sprint"
bind "MWHEELUP" "+jump"
bind "MWHEELDOWN" "+jump"
@@ -30,37 +33,45 @@ bind "MOUSE_X" "yaw"
bind "MOUSE_Y" "pitch"
// Combat binds
bind "MOUSE1" "+attack"
bind "MOUSE2" "+attack2"
bind "CTRL" "+reload"
bind "f" "+use"
bind "g" "drop"
bind "MOUSE4" "+jumpaction;+throwaction;"
bind "MOUSE1" "+attack"
bind "MOUSE2" "+attack2"
bind "CTRL" "+reload"
bind "E" "+use"
bind "F" "+inspect"
bind "G" "drop"
bind "MOUSE4" "+jumpaction;+throwaction;"
bind "R" "+jumpaction;+throwaction;"
bind "H" "+bombfind"
// Slot binds
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot5"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot5"
// Grenade binds
bind "e" "+lineupcrosshair; buy flashbang; slot7"
bind "v" "+lineupcrosshair; buy incgrenade; slot10"
bind "c" "+lineupcrosshair; buy smokegrenade; slot8"
bind "x" "buy hegrenade; slot6"
bind "z" "buy decoy; slot9"
bind "Z" "+lineupcrosshair; buy flashbang; slot7"
bind "V" "+lineupcrosshair; buy incgrenade; slot10"
bind "C" "+lineupcrosshair; buy smokegrenade; slot8"
bind "X" "buy hegrenade; slot6"
bind "5" "buy decoy; slot9"
// UI binds
bind "TAB" "+radarzoom"
bind "b" "buymenu"
bind "ESCAPE" "cancelselect"
bind "p" "+showscores"
bind "TAB" "+radarzoom"
bind "B" "buymenu"
bind "ESCAPE" "cancelselect"
bind "P" "+showscores"
// Communication and console binds
bind "ENTER" "messagemode"
bind "y" "messagemode2"
bind "q" "player_ping"
bind "`" "toggleconsole"
bind "ENTER" "messagemode"
bind "Y" "messagemode2"
bind "Q" "player_ping"
bind "`" "toggleconsole"
// Buybinds
bind "KP_1" "buy vesthelm; buy vest;"
bind "KP_2" "buy rifle1;"
bind "KP_3" "buy awp;"
// Audio
volume "0.15"
@@ -84,7 +95,7 @@ cl_showloadout "1"
gameinstructor_enable "0"
// Mouse
sensitivity "1"
sensitivity "0.8"
zoom_sensitivity_ratio "0.818933027098955175"
// Radar
@@ -97,6 +108,7 @@ cl_radar_square_with_scoreboard "0"
// Video
fps_max "0"
r_fullscreen_gamma 2.5
// Viewmodel
viewmodel_presetpos "1"
@@ -105,5 +117,12 @@ viewmodel_offset_x "-2.0"
viewmodel_offset_y "-2.0"
viewmodel_offset_z "-2.0"
// Performance
mat_queue_mode "-1"
cl_forcepreload "1"
cl_disable_ragdolls "1"
engine_low_latency_sleep_after_client_tick true
r_show_build_info false
echo "Loaded autoexec.cfg"
host_writeconfig

View File

@@ -2,8 +2,8 @@
# Added by Toolbox App
export PATH="${PATH}:/home/mpuchstein/.local/share/JetBrains/Toolbox/scripts"
export PATH="${PATH}:/home/mpuchstein/.local/bin"
export PATH="${PATH}:/home/mpuchstein/.cargo/bin"
export ZDOTDIR="/home/mpuchstein/.config/zsh"