switching to yadm

This commit is contained in:
2025-03-08 08:03:49 +01:00
commit 2b7f7ed8be
56 changed files with 5000 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
[general]
import = [
"/home/mpuchstein/.config/alacritty/themes/themes/github_dark.toml"
]
live_config_reload = true
ipc_socket = true
[window]
opacity = 0.7
[font]
normal = { family = "Inconsolata Nerd Font Mono", style = "Regular" }
size = 9
[mouse]
hide_when_typing = true

1
.config/eww/eww.scss Normal file
View File

@@ -0,0 +1 @@
@import 'topbar_dp2.scss';

1
.config/eww/eww.yuck Normal file
View File

@@ -0,0 +1 @@
(include "./topbar_dp2.yuck")

12
.config/eww/scripts/getvol Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
if command -v pamixer &>/dev/null; then
if [ true == $(pamixer --get-mute) ]; then
echo 0
exit
else
pamixer --get-volume
fi
else
amixer -D pulse sget Master | awk -F '[^0-9]+' '/Left:/{print $3}'
fi

View File

@@ -0,0 +1,47 @@
@import 'widgets';
* {
all: unset;
}
tooltip {
background: #2E3440;
color: #E5E6E7;
border-radius: 1.5rem 1rem;
border: 1px solid #6F7175;
}
.popup {
background: #2E3440;
color: #E5E6E7;
border: 1px solid #6F7175;
}
.popup menuitem:hover {
background: grey;
}
window {
background: transparent;
color: transparent;
* {
font-family: 'Inconsolata Go Nerd Font';
font-size: 0.85rem;
border-radius: 1.5rem 1rem;
padding: 2px 6px;
}
/* Modules */
.left {
//background: orange;
}
.center {
//background: blue;
}
.right {
//background: yellow;
}
}

View File

@@ -0,0 +1,51 @@
(include "./widgets.yuck")
(defwindow topbar_DP-2
:monitor "DP-2"
:geometry (geometry :x "0%"
:y "0%"
:width "90%"
:height "10px"
:anchor "top center")
:stacking "bg"
:exclusive true
:reserve (struts :side "top" :distance "4%")
:windowtype "dock"
(bar0))
(defwidget bar0 []
(centerbox :orientation "h"
(left)
(center)
(right)))
(defwidget left []
(box :orientation 'h'
:class: 'left'
:space-evenly false
:spacing 5
:halign 'start'
(hypr_workspaces)
(hypr_active_window)))
(defwidget center []
(box :orientation 'h'
:class 'center'
:space-evenly false
:spacing 5
(media)
(sysmon)))
(defwidget right []
(box
:orientation 'h'
:class 'right'
:space-evenly false
:spacing 5
:halign 'end'
(hyprsunset)
(datetime)
(stray)
(volume)
(swaync)))

10
.config/eww/widgets.scss Normal file
View File

@@ -0,0 +1,10 @@
@import 'widgets/media';
@import 'widgets/datetime.scss';
@import 'widgets/systray';
@import 'widgets/hyprsunset';
@import 'widgets/lorem-text';
@import 'widgets/hypr_activewindow.scss';
@import 'widgets/hypr_workspaces.scss';
@import 'widgets/sysmon.scss';
@import 'widgets/swaync.scss';
@import 'widgets/volume.scss';

10
.config/eww/widgets.yuck Normal file
View File

@@ -0,0 +1,10 @@
(include "widgets/media.yuck")
(include "widgets/datetime.yuck")
(include "widgets/systray.yuck")
(include "widgets/hyprsunset.yuck")
(include "widgets/lorem-text.yuck")
(include "widgets/hypr_workspaces.yuck")
(include "widgets/hypr_activewindow.yuck")
(include "widgets/sysmon.yuck")
(include "widgets/swaync.yuck")
(include "widgets/volume.yuck")

View File

@@ -0,0 +1,4 @@
.datetime {
background: #2E3440;
color: #E5E6E7;
}

View File

@@ -0,0 +1,19 @@
(defwidget datetime []
(box
:class "datetime"
:halign "center"
:valign "center"
{ time == ''
? ''
: time
}
)
)
(defvar time-visible false)
(defpoll time
:interval "1s"
:initial "initial-value" ; optional, defaults to poll at startup
:run-while time-visible ; optional, defaults to 'true'
`date +"%H:%M - %a, %d %b"` ; https://www.man7.org/linux/man-pages/man1/date.1.html
)

View File

@@ -0,0 +1,14 @@
.activewindow{
background: lightgreen;
color: black;
&--xwayland{
background: red;
color: black;
}
&--tooltip{
background: darkgrey;
color: white;
}
}

View File

@@ -0,0 +1,34 @@
(deflisten activewindow :initial "..." "RUST_BACKTRACE=1 hyprman -a 2>>/tmp/eww_hyprman_activewindow.log")
(defvar windowIcons
`{
"generic": "",
"spotify": "",
"mpv": "",
"firefox": "",
"chromium": "",
"zen": "",
"Alacritty": "",
"steam": "󰓓",
"discord": "󰙯"
}`)
(defwidget windowIcon []
(image
:limit-width 10
:icon-size: 12
:icon {activewindow.class}))
(defwidget hypr_active_window []
(tooltip
(label :class "activewindow--tooltip" :text {activewindow.title})
(box
:class "activewindow${activewindow.xwayland == true ? '--xwayland' : ''}"
:halign "left"
:valign "center"
:spacing 1
(label
:limit-width 25
:unindent true
:text "${activewindow.class}"))))

View File

@@ -0,0 +1,19 @@
.workspacecontainer{
background: orange;
}
.workspace{
border-radius: 1rem 1rem;
font-family: 'Symbols Nerd Font Mono';
font-size: 16px;
border: 1px solid blue;
color: black;
}
.wsactive{
background: red;
}
.wsinactive{
background: yellow;
}

View File

@@ -0,0 +1,25 @@
(deflisten workspaces :initial "" "hyprman -w 2>>/tmp/eww_hyprman_workspaces.log")
(defvar workspaceIcons '{
"empty": "",
"full": "",
"focused": "󱓻"
}')
(defwidget hypr_workspaces []
(box
:class "workspacecontainer"
:space-evenly false
:spacing 3
(for workspace in workspaces
(eventbox
:width 20
:height 20
:onclick "hyprctl dispatch workspace ${workspace.id}"
:tooltip "${workspace.name}"
:class "workspace ${workspace.active == true ? 'wsactive' : 'wsinactive'}"
(label
:xalign 0
:yalign 0.5
:limit-width 1
:text "${workspace.windows > 0 ? workspaceIcons.full : workspaceIcons.empty}")))))

View File

@@ -0,0 +1,4 @@
.hypr-sunset {
background: #003366;
color: #e5e6e7;
}

View File

@@ -0,0 +1,16 @@
(defvar temperature "3000K")
(defvar display-fix "off")
(defwidget hyprsunset []
(box
:class "hypr-sunset"
:halign "center"
:valign "center"
(eventbox
:cursor "pointer"
:onclick `${display-fix == "off"
? "eww update display-fix=on && nohup hyprsunset -t ${temperature} > /dev/null 2>&1 &"
: "eww update display-fix=off && pkill hyprsunset"}`
`${display-fix == "off" ? "󰛨 Off" : "󱩌 On"}`)))

View File

@@ -0,0 +1,4 @@
.lorem-text {
background: darkgrey;
color: black;
}

View File

@@ -0,0 +1,6 @@
(defwidget loremText [text]
(label
:text text
:class 'lorem-text'
)
)

View File

@@ -0,0 +1,5 @@
(defwidget loremText [text]
(label :text text
:class 'lorem-text')
)

View File

@@ -0,0 +1,34 @@
.music {
background: transparent;
color: transparent;
&--off {
background: transparent;
color: transparent;
}
&--on {
background: #8ce513;
color: #010101;
}
&--spotify {
background: #17d860;
color: #282828;
}
&--firefox {
background: #fd8728;
color: #010101;
}
&--mpv {
background: #420042;
color: white;
}
&--chromium {
background: #1a73e8;
color: white;
}
}

View File

@@ -0,0 +1,35 @@
; icons used can be found on https://www.nerdfonts.com/cheat-sheet
(defvar playerIcons `{
"spotify": "",
"mpv": "",
"firefox": "",
"chromium": ""
}`)
(defvar playerRegex "spotify|firefox|mpv|chromium") ; don't forget to update this with your icons
(defvar separator " | ") ; separator between artist and title
(defvar ellipsisIcon "…") ; your icon to display in case of ellipsis
(defvar ellipsisArtist 20) ; set length for ellipsis on artist
(defvar ellipsisTitle 25) ; set length for ellipsis on title
(defwidget media []
(box
:class "media"
:halign "center"
:valign "center"
:class { playerctl == '' || objectlength(playerctl) == 0
? 'music--off'
: matches(playerctl.player, playerRegex)
? 'music--' + playerctl.player
: 'music--on' }
{ playerctl == '' || objectlength(playerctl) == 0
? ''
: matches(playerctl.player, playerRegex)
? "${playerIcons[playerctl.player]} ${substring(playerctl.artist, 0, ellipsisArtist)}${strlength(playerctl.artist) >= ellipsisArtist ? ellipsisIcon : ''} | ${substring(playerctl.title, 0, ellipsisTitle)}${strlength(playerctl.title) >= ellipsisTitle ? ellipsisIcon : ''}"
: "${playerctl.player} - ${substring(playerctl.artist, 0, ellipsisArtist)}${strlength(playerctl.artist) >= ellipsisArtist ? ellipsisIcon : ''} | ${ substring(playerctl.title, 0, ellipsisTitle)}${strlength(playerctl.title) >= ellipsisTitle ? ellipsisIcon : ''}"
}
)
)
(deflisten playerctl
:initial ""
`playerctl --follow metadata --format '{"player": "{{ playerName }}", "trackid": "{{ mpris:trackid }}", "length": "{{ duration(mpris:length) }}", "artUrl": "{{ mrpis:artUrl }}", "album": "{{ album }}", "albumArtist": "{{ xesam:albumArtist }}", "artist": "{{ artist }}", "autoRating": "{{ xesam:autoRating }}", "discNumber": "{{ xesam:discNumber }}", "title": "{{ title }}", "trackNumber": "{{ xesam:trackNumber }}", "url": "{{ xesam:url }}", "position": "{{ position }}"}'`
)

View File

@@ -0,0 +1,13 @@
.swaync{
background: aqua;
color: black;
&--dnd{
background: rosybrown;
color: black;
}
&--inhib{
background: indianred;
color: black;
}
}

View File

@@ -0,0 +1,19 @@
(deflisten notification :initial '{ "count": 0, "dnd": false, "visible": false, "inhibited": false }' "swaync-client -s")
(defvar swaync_icon_act "󰀠")
(defvar swaync_icon_inh "󰚎")
(defvar swaync_icon_dnd "󰀣")
(defwidget swaync []
(eventbox
:class "swaync${notification.dnd == true ? " swaync--dnd" : ""}${notification.inhibited == true ? " swaync--inhib" : ""}"
:cursor "pointer"
:onclick "swaync-client -t"
:onmiddleclick "swaync-client -d"
:onrightclick "swaync-client -C"
(box
:orientation "horizontal"
:spacing 3
:space-evenly false
(label :text "${notification.dnd == true ? swaync_icon_dnd : notification.inhibited == true ? swaync_icon_inh : swaync_icon_act}")
(label :text "${notification.count}"))))

View File

@@ -0,0 +1,19 @@
.sysmon{
background: darkred;
color: black;
}
.danger{
color: red
}
.ram{
background: tan;
}
.disk{
background: mediumturquoise;
}
.cpu{
background: lightgreen;
}
.net{
background: plum;
}

View File

@@ -0,0 +1,51 @@
(defvar netiface "enp34s0")
(defwidget sysmon []
(box
:class 'sysmon'
:space-evenly false
:spacing 1
(cpu)
(ram)
(disk)
(net)))
(defwidget ram []
(tooltip
:class 'ram ${EWW_RAM.used_mem_perc > 90 ? 'danger' : ''}'
(label :text " ${round(EWW_RAM.free_swap/1000000000, 2)} GB/${round(EWW_RAM.total_swap/1000000000, 2)} GB")
(label :text " ${round(EWW_RAM.used_mem/1000000000, 2)} GB/${round(EWW_RAM.total_mem/1000000000, 2)} GB")))
(defwidget disk []
(tooltip
:class 'disk ${EWW_DISK["/"].used_perc > 90 ? 'danger' : ''}'
(label :text " ${round(EWW_DISK["/"].free/1000000000, 2)} GB /${round(EWW_DISK["/"].total/1000000000, 2)} GB")
(label :text " ${round(EWW_DISK["/"].used_perc,2)}%")))
(defwidget cpu []
(tooltip
:class 'cpu'
(box :orientation "vertical"
(for cpu in {EWW_CPU.cores}
(box
:orientation "horizontal"
:space-evenly false
:spacing 10
(circular-progress
:thickness 5
:start-at 75
:value {cpu.usage})
(label
:limit-width 6
:show-truncated false
:text "${cpu.core}: ")
(label :text "${cpu.freq} Hz ${cpu.usage}%"))))
(label :text " ${round(EWW_CPU.avg, 2)}%")))
(defwidget net []
(box
:class 'net'
:space-evenly false
(label :text "")
(label :text " ${round(EWW_NET.enp34s0.NET_UP * 8 / 1000000, 2)} Mbit")
(label :text " ${round(EWW_NET.enp34s0.NET_DOWN * 8 / 1000000, 2)} Mbit")))

View File

@@ -0,0 +1,5 @@
.systray {
background: #2E3440;
color: #E5E6E7;
}

View File

@@ -0,0 +1,10 @@
(defwidget stray []
(systray
:class "systray"
:halign "center"
:valign "center"
:active true
:icon-size 16
:spacing -5
)
)

View File

@@ -0,0 +1,11 @@
.sourcevol{
background: steelblue;
color: black;
}
.sinkvol{
background: slateblue;
color: black;
}
.muted{
background: tomato;
}

View File

@@ -0,0 +1,17 @@
(defpoll sourcevol :interval "1s" `wpctl get-volume @DEFAULT_SOURCE@ | awk -F ' ' '{print $2}'`)
(defpoll sourcemute :interval "1s" `wpctl get-volume @DEFAULT_SOURCE@ | awk -F ' ' '{print $3}'`)
(defpoll sinkvol :interval "1s" `wpctl get-volume @DEFAULT_SINK@ | awk -F ' ' '{print $2}'`)
(defpoll sinkmute :interval "1s" `wpctl get-volume @DEFAULT_SINK@ | awk -F ' ' '{print $3}'`)
(defwidget volume []
(box
:space-evenly false
:spacing 3
(eventbox
:class "sourcevol${sourcemute == "[MUTED]" ? " muted" : ""}"
:onclick "wpctl set-mute @DEFAULT_SOURCE@ toggle"
(label :text "${sourcemute == "[MUTED]" ? "󰍭" : "󰍬"} ${sourcevol}"))
(eventbox
:class "sinkvol${sinkmute == "[MUTED]" ? " muted" : ""}"
:onclick "wpctl set-mute @DEFAULT_SINK@ toggle"
(label :text "${sinkmute == "[MUTED]" ? "󰟎" : "󰋋"} ${sinkvol}"))))

1
.config/fuzzel/fuzzel.ini Symbolic link
View File

@@ -0,0 +1 @@
theme_dracula/fuzzel.ini

View File

@@ -0,0 +1,11 @@
[Filechooser Settings]
LocationMode=path-bar
ShowHidden=false
ShowSizeColumn=true
GeometryX=0
GeometryY=0
GeometryWidth=657
GeometryHeight=492
SortColumn=name
SortOrder=ascending
StartupMode=recent

View File

@@ -0,0 +1,4 @@
file:///home/mpuchstein/Documents/
file:///home/mpuchstein/Pictures/
file:///home/mpuchstein/Music/
file:///home/mpuchstein/Nextcloud/

2
.config/gtk-3.0/gtk.css Normal file
View File

@@ -0,0 +1,2 @@
/* Remove dotted lines from GTK 3 applications */
.undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left { background-image: none; }

View File

@@ -0,0 +1,17 @@
[Settings]
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=breeze-dark
gtk-font-name=Inconsolata Nerd Font Mono 9
gtk-cursor-theme-name=phinger-cursors-light
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1

View File

@@ -0,0 +1,39 @@
### based on the example config from hyprland.org
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
ignore_systemd_inhibit = false # whether to ignore systemd-inhibit --what=idle inhibitors
}
#listener {
# timeout = 150 # 2.5min.
# on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
# on-resume = brightnessctl -r # monitor backlight restore.
#}
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
#listener {
# timeout = 150 # 2.5min.
# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
#}
listener {
timeout = 300 # 5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 1800 # 30min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 3600 # 60min
on-timeout = systemctl hibernate # hibernate and suspend pc
}

207
.config/hypr/hyprland.conf Normal file
View File

@@ -0,0 +1,207 @@
################
### MONITORS ###
################
source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/workspaces.conf
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
source = ~/.config/hypr/hyprland.d/autostart.conf
#############################
### ENVIRONMENT VARIABLES ###
#############################
# uwsm handles those
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 10
border_size = 1
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 5
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
# Dim inactive windows
dim_inactive = true
dim_strength = 0.1
shadow {
enabled = false
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
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
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
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
mouse_move_enables_dpms = true
key_press_enables_dpms = true
layers_hog_keyboard_focus = true
mouse_move_focuses_monitor = true
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = eu
kb_options = caps:escape_shifted_capslock, compose:102
numlock_by_default = true
repeat_rate = 25
repeat_delay = 600
follow_mouse = 1
mouse_refocus = true
float_switch_override_focus = 1
touchpad {
disable_while_typing = true
scroll_factor = 1.0
tap-to-click = true
}
}
# 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 {
# name = epic-mouse-v1
# sensitivity = -0.5
#}
###################
### KEYBINDINGS ###
###################
source = ~/.config/hypr/hyprland.d/keybinds.conf
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Blur swaync
layerrule = blur, swaync-control-center
layerrule = blur, swaync-notification-window
layerrule = ignorezero, swaync-control-center
layerrule = ignorezero, swaync-notification-window
layerrule = ignorealpha, swaync-control-center
layerrule = ignorealpha, swaync-notification-window

View File

@@ -0,0 +1,5 @@
# AUTOSTART
# most apps are either started as systemd service like either directly like hyprpolkitagent or indirectly via uwsm
# and ~/.config/autostart
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store

View File

@@ -0,0 +1,144 @@
##############################################
################## MY APPS ###################
##############################################
# Set programs that you use
$terminal = uwsm app -T
$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
$editor = uwsm app -T -- vim
$editor0 = uwsm app -- zeditor
$clipman = uwsm app -- nwg-clipman
$taskman = uwsm app -- uuctl walker -d
$notcenter = uwsm app -- swaync-client -t -sw
$notdnd = uwsm app -- swaync-client -d
$nothide = uwsm app -- swaync-client --hide-latest
$notclose = uwsm app -- swaync-client --close-latest
$notcloseall = uwsm app -- swaync-client --close-all
$lockcmd = loginctl lock-session
##############################################
################## KEYBINDS ##################
##############################################
$mainMod = SUPER
bind = $mainMod, E, exec, $filemanager
bind = $mainMod, W, exec, $browser
bind = $mainMod SHIFT, W, exec, $browserprv
bind = $mainMod Shift, E, exec, $editor
bind = $mainMod Shift ALT_L, E, exec, $editor0
bind = $mainMod, X, exec, $launcher
bind = $mainMod, C, exec, $clipman
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, Escape, exec, $taskman
bind = $mainMod, Grave, exec, $notcenter
bind = $mainMod SHIFT, Grave, exec, $notdnd
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
bind = $mainMod, I, pin
bind = $mainMod, Q, killactive,
bind = $mainMod, Space, togglefloating,
bind = $mainMod SHIFT, F, fullscreen
bind = $mainMod SHIFT, S, movetoworkspace, special # move to the special workspace
bind = $mainMod, S, togglespecialworkspace # show/hide special workspace
#dwindle layout
bind = $mainMod, Tab, swapsplit,
bind = $mainMod SHIFT, Tab, togglesplit,
bind = $mainMod CTRL, Tab, layoutmsg, movetoroot
bind = $mainMod, P, pseudo,
# MOVE FOCUS with mainMod + vim keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# MOVE WINDOW with mainMod SHIFT + vim keys
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
# Resize window with mainMod + CTRL + vim keys
bind = $mainMod CTRL, h, resizeactive,-25 0
bind = $mainMod CTRL, l, resizeactive,25 0
bind = $mainMod CTRL, k, resizeactive,0 -25
bind = $mainMod CTRL, j, resizeactive,0 25
# SWITCH WORKSPACES with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# MOVE ACTIVE WINDOW TO A WORKSPACE with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# MOVE ACTIVE WINDOW TO A WORKSPACE with mainMod + SHIFT + [0-9]
bind = $mainMod CTRL SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod CTRL SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod CTRL SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod CTRL SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod CTRL SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod CTRL SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod CTRL SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod CTRL SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod CTRL SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod CTRL SHIFT, 0, movetoworkspacesilent, 10
# MOVE/RESIZE WINDOWS with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Brightness controls
bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness +5
bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness -5
# Output volume control
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise --max-volume 150
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower --max-volume 150
bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
# Input volume control
bindel = SHIFT ,XF86AudioRaiseVolume, exec, swayosd-client --input-volume raise --max-volume 150
bindel = SHIFT ,XF86AudioLowerVolume, exec, swayosd-client --input-volume lower --max-volume 150
bindel = SHIFT ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
# Requires playerctl
bindl = , XF86AudioNext, exec, swayosd-client --playerctl next
bindl = , XF86AudioPause, exec, swayosd-client --playerctl play-pause
bindl = , XF86AudioPlay, exec, swayosd-client --playerctl play-pause
bindl = , XF86AudioPrev, exec, swayosd-client --playerctl previous
bind = , Print, exec, grimblast --notify copy output
bind = $mainMod, Print, exec, grimblast --notify edit area

View File

@@ -0,0 +1,66 @@
general {
hide_cursor = true
ignore_empty_input = true
}
#auth {
# just leave the defaults
#}
##################
### BACKGROUND ###
##################
background {
monitor =
path = /home/mpuchstein/Pictures/wallpaper/1920x1080/widescreen/208 - Dv9LXh1.jpg
}
#############
### INPUT ###
#############
input-field {
size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(0, 0, 0, 0.2)
font_color = rgba(255, 0, 132, 0.8)
fade_on_empty = false
rounding = -1
check_color = rgb(204, 136, 34)
placeholder_text =
hide_input = false
position = 0, -200
halign = center
valign = center
}
############
### DATA ###
############
label {
monitor =
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
color = rgba(242, 243, 244, 0.75)
font_size = 22
font_family = Inconsolata Nerd Font Mono
position = 0, 300
halign = center
valign = center
}
############
### TIME ###
############
label {
monitor =
text = cmd[update:1000] echo "$(date +"%-I:%M")"
color = rgba(242, 243, 244, 0.75)
font_size = 95
font_family = Inconsolata Nerd Font Mono Bold
position = 0, 200
halign = center
valign = center
}

View File

@@ -0,0 +1,9 @@
splash = true
splash_color = d202fcff
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

View File

@@ -0,0 +1,4 @@
# Generated by nwg-displays on 2025-01-18 at 02:07:11. Do not edit manually.
monitor=DP-2,1920x1080@60.0,0x0,1.0
monitor=DP-3,1920x1080@144.0,1920x0,1.0

View File

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

View File

@@ -0,0 +1 @@
client_socket_path = "hyprman.sock"

32
.config/qt6ct/qt6ct.conf Normal file
View File

@@ -0,0 +1,32 @@
[Appearance]
color_scheme_path=/usr/share/qt6ct/colors/airy.conf
custom_palette=false
icon_theme=breeze-dark
standard_dialogs=gtk3
style=Adwaita-Dark
[Fonts]
fixed="Inconsolata Nerd Font Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
general="Inconsolata Nerd Font Mono,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x80\0\0\0\0\0\0\xe\xe9\0\0\x4\x1f\0\0\a\x80\0\0\0\0\0\0\xe\xff\0\0\x4\x37\0\0\0\x1\x2\0\0\0\a\x80\0\0\a\x80\0\0\0\0\0\0\xe\xe9\0\0\x4\x1f)
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()

21
.config/uwsm/env Normal file
View File

@@ -0,0 +1,21 @@
export XCURSOR_SIZE=24
export XCURSOR_THEME=phinger-cursors-light
export GDK_BACKEND=wayland,x11,*
export SDL_VIDEODRIVER=wayland,x11
export CLUTTER_BACKEND=wayland
export QT_QPA_PLATFORM=wayland;xcb
export QT_QPA_PLATFORM=wayland
export QT_QPA_PLATFORMTHEME=qt6ct
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
#fix some bug with kde applications in hyprland https://www.lorenzobettini.it/2024/05/fixing-the-empty-open-with-in-dolphin-in-hyprland/
export XDG_MENU_PREFIX=arch-
export MOZ_ENABLE_WAYLAND=1
export GRIMBLAST_EDITOR='swappy -f'
export PATH=$PATH:/home/mpuchstein/.local/bin

11
.config/vim/.netrwhist Normal file
View File

@@ -0,0 +1,11 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =9
let g:netrw_dirhist_9='/home/mpuchstein/.ssh'
let g:netrw_dirhist_8='/home/mpuchstein/.config/uwsm'
let g:netrw_dirhist_7='/home/mpuchstein/.config/HybridBar'
let g:netrw_dirhist_6='/home/mpuchstein/gits/dotfiles/hypr'
let g:netrw_dirhist_5='/home/mpuchstein/gits/dotfiles/hypr/hyprland.d'
let g:netrw_dirhist_4='/home/mpuchstein/gits/dotfiles/hypr'
let g:netrw_dirhist_3='/home/mpuchstein/.config/uwsm'
let g:netrw_dirhist_2='/home/mpuchstein/.config'
let g:netrw_dirhist_1='/home/mpuchstein/.config/uwsm'

File diff suppressed because it is too large Load Diff

260
.config/vim/vimrc Normal file
View File

@@ -0,0 +1,260 @@
" Disable compatibility with vi which can cause unexpected issues.
set nocompatible
" Helps force plugins to load correctly when it is turned back on below.
filetype off
call plug#begin()
" List Plugins here
Plug 'ajmwagar/vim-deus'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'simnalamburt/vim-mundo'
Plug 'dense-analysis/ale'
Plug 'mhinz/vim-signify'
Plug 'preservim/nerdtree'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'ryanoasis/vim-devicons'
Plug 'PhilRunninger/nerdtree-visual-selection'
Plug 'elkowar/yuck.vim'
Plug 'eraserhd/parinfer-rust', {'do':'cargo build --release'}
call plug#end()
" Enable plugins and load plugin for the detected file type.
filetype plugin indent on
" Turn syntax highlighting on.
syntax on
" Highlight cursor line underneath the cursor horizontally.
set cursorline
" Highlight cursor line underneath the cursor vertically.
set cursorcolumn
" Show line numbers.
set number
" Show file stats.
set ruler
" Blink cursor on error instead of beeping.
set visualbell
" Encoding.
set encoding=utf-8
" Security.
set modelines=0
" Show color column at 80 characters width, visual reminder of keepingcode line within a popular line width.
set colorcolumn=120
"Wraps text instead of forcing a horizontal scroll
set wrap
"Reacts to the syntax/style of the code you are editing
set smartindent
"Makes sure that spaces are used for indenting lines, even when you press the "Tab" key
set expandtab
"This will insert 2 spaces for a line indent
set tabstop=2
"Manages the indentation when you use the ">>" or "<<" operators to add or remove indentation to an already existing line/block of code
set shiftwidth=2
"The previous commands can be combined into a single line
set tabstop=2 shiftwidth=2 expandtab
"Enable auto completion menu after pressing TAB.
set wildmenu
" Make wildmenu behave like similar to Bash completion.
set wildmode=list:longest
" Allow hidden buffers.
set hidden
" Rendering.
set ttyfast
" Status bar.
set laststatus=2
"Show what mode you are currently editing in
set showmode
"Shows partial commands in the last line of the screen
set showcmd
" Plugin Settings
" Set color scheme
colors deus
" Set color scheme for airline
let g:airline_theme='deus'
" Let airline use powerline fonts
let g:airline_powerline_fonts=1
" List vcs for sy
let g:signify_vcs_list=['git']
" CoC
" utf-8 already set
" Some servers have issues with backup files
set nobackup
set nowritebackup
" Having loger updatetime leads to noticable delays
set updatetime=100
" Always show signcolumn, otherwise it would shift the text each time
" diagnostics appear/become resolved
set signcolumn=yes
" Use tab for trigger completion with characters ahead and navigate
" NOTE: There's always complete item selected by default, you may want to enable
" no select by `"suggest.noselect": true` in your configuration file
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
" other plugin before putting this into your config
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ CheckBackspace() ? "\<Tab>" :
\ coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
" Make <CR> to accept selected completion item or notify coc.nvim to format
" <C-g>u breaks current undo, please make your own choice
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" Use `[g` and `]g` to navigate diagnostics
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window
nnoremap <silent> K :call ShowDocumentation()<CR>
function! ShowDocumentation()
if CocAction('hasProvider', 'hover')
call CocActionAsync('doHover')
else
call feedkeys('K', 'in')
endif
endfunction
" Highlight the symbol and its references when holding the cursor
autocmd CursorHold * silent call CocActionAsync('highlight')
" Symbol renaming
nmap <leader>rn <Plug>(coc-rename)
" Formatting selected code
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s)
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Applying code actions to the selected code block
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap keys for applying code actions at the cursor position
nmap <leader>ac <Plug>(coc-codeaction-cursor)
" Remap keys for apply code actions affect whole buffer
nmap <leader>as <Plug>(coc-codeaction-source)
" Apply the most preferred quickfix action to fix diagnostic on the current line
nmap <leader>qf <Plug>(coc-fix-current)
" Remap keys for applying refactor code actions
nmap <silent> <leader>re <Plug>(coc-codeaction-refactor)
xmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
nmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
" Run the Code Lens action on the current line
nmap <leader>cl <Plug>(coc-codelens-action)
" Map function and class text objects
" NOTE: Requires 'textDocument.documentSymbol' support from the language server
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Remap <C-f> and <C-b> to scroll float windows/popups
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" Use CTRL-S for selections ranges
" Requires 'textDocument/selectionRange' support of language server
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" Add `:Format` command to format current buffer
command! -nargs=0 Format :call CocActionAsync('format')
" Add `:Fold` command to fold current buffer
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer
command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
" Add (Neo)Vim's native statusline support
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Mappings for CoCList
" Show all diagnostics
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions
nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>

235
.config/walker/config.toml Normal file
View File

@@ -0,0 +1,235 @@
app_launch_prefix = "uwsm app -- "
terminal= "alacritty"
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
[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"]
[keys.activation_modifiers]
keep_open = "shift"
alternate = "alt"
[keys.ai]
clear_session = ["ctrl x"]
copy_last_response = ["ctrl c"]
resume_session = ["ctrl r"]
run_last_response = ["ctrl e"]
[events]
on_activate = ""
on_selection = ""
on_exit = ""
on_launch = ""
on_query_change = ""
[list]
dynamic_sub = true
keyboard_scroll_style = "emacs"
max_entries = 50
show_initial_entries = true
single_click = true
visibility_threshold = 20
placeholder = "No Results"
[search]
argument_delimiter = "#"
placeholder = "Search..."
delay = 0
resume_last_query = false
[activation_mode]
labels = "jkl;asdf"
[builtins.applications]
weight = 5
name = "applications"
placeholder = "Applications"
prioritize_new = true
hide_actions_with_empty_query = true
context_aware = true
refresh = true
show_sub_when_single = true
show_icon_when_single = true
show_generic = true
history = true
[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"
prefix = "/"
[builtins.websearch]
weight = 5
icon = "applications-internet"
name = "websearch"
placeholder = "Websearch"
[[builtins.websearch.entries]]
name = "Google"
url = "https://www.google.com/search?q=%TERM%"
[[builtins.websearch.entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Ecosia"
url = "https://www.ecosia.org/search?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Yandex"
url = "https://yandex.com/search/?text=%TERM%"
switcher_only = true
[builtins.dmenu]
hidden = true
weight = 5
name = "dmenu"
placeholder = "Dmenu"
switcher_only = true

View File

@@ -0,0 +1,162 @@
/* 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

@@ -0,0 +1,103 @@
# 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,168 @@
/* 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

@@ -0,0 +1,103 @@
# 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

6
.gitmodules vendored Normal file
View File

@@ -0,0 +1,6 @@
[submodule ".config/alacritty/themes"]
path = .config/alacritty/themes
url = https://github.com/alacritty/alacritty-theme
[submodule ".config/fuzzel/theme_dracula"]
path = .config/fuzzel/theme_dracula
url = https://github.com/dracula/fuzzel