Compare commits

...

4 Commits

Author SHA1 Message Date
Tim Gröger 6090f8f90e add hyprland 2026-04-21 12:19:19 +02:00
Tim Gröger 30fb0e5959 complete new config 2026-04-04 18:11:38 +02:00
Tim Gröger c8ad498fae update wallpaper, add wlogout and swaylock-effects 2026-03-13 13:21:26 +01:00
Tim Gröger 5498ae76fa swayfx 2026-03-11 13:45:33 +01:00
65 changed files with 2830 additions and 653 deletions

View File

@ -4,16 +4,31 @@ set -g set-titles on
set -g set-titles-string '#{session_name}: #{window_name}'
# List of plugins
set -g @plugin 'catppuccin/tmux#v2.1.3'
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'christoomey/vim-tmux-navigator'
set -g @plugin 'catppuccin/tmux'
set -g @plugin 'omerxx/tmux-floax'
# set -g @plugin 'niksingh710/minimal-tmux-status'
# Einstellungen für den Zen-Look:
# set -g @minimal-tmux-justify "left"
# set -g @minimal-tmux-indicator false
# set -g @minimal-tmux-status "bottom" # oder "top"
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Erlaubt Yazi & Neovim Bilder/Grafiken in Ghostty anzuzeigen
set -g allow-passthrough on
set -g @plugin 'catppuccin/tmux'
# Verhindert Verzögerungen beim Wechsel in den Normal-Mode in AstroNvim
set -s escape-time 0
# Stellt sicher, dass Ghostty die Farben korrekt darstellt
set -ag terminal-overrides ",xterm-256color:RGB"
# set -g @catppuccin_flavor 'macchiato' # or frappe, macchiato, mocha
set -g @catppuccin_flavor 'macchiato' # or frappe, macchiato, mocha
set -g @catppuccin_window_status_style 'rounded'
@ -29,6 +44,8 @@ set -ag status-right "#{E:@catppuccin_status_user}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -ag status-right "#{E:@catppuccin_status_host}"
# set allow-passthrough on
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

50
.zshrc
View File

@ -15,9 +15,9 @@ fi
#export TERM="xterm-256color"
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=$HOME/.cargo/bin:$PATH
export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"
export PATH="$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts:$HOME/.local/bin"
export PATH="$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts"
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
@ -155,3 +155,49 @@ if [[ -z "$TMUX" ]]; then
fi
eval "$(direnv hook zsh)"
alias freecad='LD_PRELOAD=/usr/lib64/libdrm_amdgpu.so.1 /opt/FreeCAD-0.21.2-Linux-x86_64.AppImage'
export NDK_HOME=/home/crimsen/Android/Sdk/ndk/29.0.14206865
export ANDROID_HOME=/home/crimsen/Android/Sdk
export EDITOR=nvim
if command -v yazi >/dev/null 2>&1; then
# Hier kommt der Code hin, der nur mit Yazi läuft
echo "Yazi gefunden! Initialisiere Aliase..."
# Beispiel: Ein Alias, der beim Beenden von Yazi ins letzte Verzeichnis wechselt
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
else
# Optionaler Fallback oder einfach gar nichts tun
echo "Yazi ist nicht installiert. Nutze stattdessen 'ls' oder 'cd'."
fi
source ~/.env.secrets
# Pfad zu fpath hinzufügen
fpath=(~/.zsh/completions $fpath)
# Completions initialisieren
autoload -U compinit && compinit
export FZF_DEFAULT_OPTS='
--layout=reverse
--info=inline
--height=80%
--multi
--preview-window=right:60%
--border="rounded"
--margin=1
--padding=1
--prompt="🔭 "
--pointer="▶"
--marker="✓"
--color="bg+:-1,gutter:-1,prompt:#7aa2f7,pointer:#7aa2f7,marker:#9ece6a,hl:#ff9e64,hl+:#ff9e64"
'

View File

@ -24,7 +24,9 @@ key = "Return"
mods = "Control|Shift"
[window]
opacity = 0.9
opacity = 0.7
[general]
import = ["/home/crimsen/.config/alacritty/catppuccin/catppuccin-macchiato.toml"]
import = [
"/home/crimsen/.config/alacritty/catppuccin/catppuccin-macchiato.toml",
]

14
ghostty/config.ghostty Normal file
View File

@ -0,0 +1,14 @@
# Font-Einstellungen (Wichtig für Icons in AstroNvim)
font-family = "Hack Nerd Font"
font-size = 11
# Performance & Grafik (Für Bild-Support & Geschwindigkeit) # Oder dein bevorzugtes Theme
theme = catppuccin-machiato.conf
window-decoration = false
confirm-close-surface = false
# Maus-Support für Neovim
mouse-hide-while-typing = true
shell-integration = zsh

View File

@ -0,0 +1,23 @@
palette = 0=#494d64
palette = 1=#ed8796
palette = 2=#a6da95
palette = 3=#eed49f
palette = 4=#8aadf4
palette = 5=#f5bde6
palette = 6=#8bd5ca
palette = 7=#a5adcb
palette = 8=#5b6078
palette = 9=#ed8796
palette = 10=#a6da95
palette = 11=#eed49f
palette = 12=#8aadf4
palette = 13=#f5bde6
palette = 14=#8bd5ca
palette = 15=#b8c0e0
background = 24273a
foreground = cad3f5
cursor-color = f4dbd6
cursor-text = 181926
selection-background = 3a3e53
selection-foreground = cad3f5
split-divider-color = 363a4f

View File

@ -0,0 +1,18 @@
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = $terminal
# exec-once = waybar
exec-once = ironbar
exec-once = gsettings set org.gnome.desktop.interface icon-theme 'candy-icons-master'
exec-once = hypridle
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
# exec-once = qs -c noctalia-shell
#
exec = ~/.config/hypr/scripts/clamshell.sh
exec-once = awww-daemon

View File

@ -0,0 +1,75 @@
###################
### KEYBINDINGS ###
###################
# See https://wiki.hypr.land/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
$mainShiftMod = SUPER_SHIFT
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainShiftMod, X, killactive,
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
bind = $mainMod, e, exec, $fileManager
bind = $mainShiftMod, f, togglefloating,
bind = $mainMod, a, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, layoutmsg, togglesplit # dwindle
bind = $mainMod, L, exec, loginctl lock-session
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod SHIFT, C, exec, hyprctl reload && pkill ironbar; ironbar &
# 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
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous

15
hypr/config.d/env.conf Normal file
View File

@ -0,0 +1,15 @@
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hypr.land/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1# - (From the Qt documentation) enables automatic scaling, based on the monitors pixel density
env = QT_QPA_PLATFORM,wayland;xcb# - Tell Qt applications to use the Wayland backend, and fall back to X11 if Wayland is unavailable
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1# - Disables window decorations on Qt applications
env = QT_QPA_PLATFORMTHEME,qt5c

70
hypr/config.d/input.conf Normal file
View File

@ -0,0 +1,70 @@
#############
### INPUT ###
#############
# https://wiki.hypr.land/Configuring/Variables/#input
input {
kb_layout = de
kb_variant = neo
kb_model =
kb_options = grp:alt_shift_toggle
kb_rules =
resolve_binds_by_sym = 1
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
# See https://wiki.hypr.land/Configuring/Gestures
gesture = 3, horizontal, workspace
# Example per-device config
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# device {
# name = at-translated-set-2-keyboard
# kb_layout = de
# kb_variant = neo
# }
device {
name = crimsen-manufactor-crimsens-tastatur
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
}
device {
name = crimsen-manufactor-crimsens-tastatur-system-control
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
}
device {
name = crimsen-manufactor-crimsens-tastatur-consumer-control
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
}
device {
name = crimsen-manufactor-crimsens-tastatur-keyboard
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
}

View File

@ -0,0 +1,130 @@
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hypr.land/Configuring/Variables/
# https://wiki.hypr.land/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 10
border_size = 2
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = $teal
# col.inactive_border = rgba(595959aa)
col.inactive_border = $surface0
# col.group_border_active=$flamingo
# col.group_border=$surface0
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
rounding = 10
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hypr.land/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hypr.land/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
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
bezier = quick, 0.15, 0, 0.1, 1
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
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
animation = zoomFactor, 1, 7, quick
}
# Ref https://wiki.hypr.land/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
# windowrule {
# name = no-gaps-wtv1
# match:float = false
# match:workspace = w[tv1]
#
# border_size = 0
# rounding = 0
# }
#
# windowrule {
# name = no-gaps-f1
# match:float = false
# match:workspace = f[1]
#
# border_size = 0
# rounding = 0
# }
# See https://wiki.hypr.land/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
force_split = 2
}
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hypr.land/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. :(
}

View File

@ -0,0 +1,78 @@
# Catppuccin Macchiato
$rosewater = rgb(f4dbd6)
$rosewaterAlpha = f4dbd6
$flamingo = rgb(f0c6c6)
$flamingoAlpha = f0c6c6
$pink = rgb(f5bde6)
$pinkAlpha = f5bde6
$mauve = rgb(c6a0f6)
$mauveAlpha = c6a0f6
$red = rgb(ed8796)
$redAlpha = ed8796
$maroon = rgb(ee99a0)
$maroonAlpha = ee99a0
$peach = rgb(f5a97f)
$peachAlpha = f5a97f
$yellow = rgb(eed49f)
$yellowAlpha = eed49f
$green = rgb(a6da95)
$greenAlpha = a6da95
$teal = rgb(8bd5ca)
$tealAlpha = 8bd5ca
$sky = rgb(91d7e3)
$skyAlpha = 91d7e3
$sapphire = rgb(7dc4e4)
$sapphireAlpha = 7dc4e4
$blue = rgb(8aadf4)
$blueAlpha = 8aadf4
$lavender = rgb(b7bdf8)
$lavenderAlpha = b7bdf8
$text = rgb(cad3f5)
$textAlpha = cad3f5
$subtext1 = rgb(b8c0e0)
$subtext1Alpha = b8c0e0
$subtext0 = rgb(a5adcb)
$subtext0Alpha = a5adcb
$overlay2 = rgb(939ab7)
$overlay2Alpha = 939ab7
$overlay1 = rgb(8087a2)
$overlay1Alpha = 8087a2
$overlay0 = rgb(6e738d)
$overlay0Alpha = 6e738d
$surface2 = rgb(5b6078)
$surface2Alpha = 5b6078
$surface1 = rgb(494d64)
$surface1Alpha = 494d64
$surface0 = rgb(363a4f)
$surface0Alpha = 363a4f
$base = rgb(24273a)
$baseAlpha = 24273a
$mantle = rgb(1e2030)
$mantleAlpha = 1e2030
$crust = rgb(181926)
$crustAlpha = 181926

View File

@ -0,0 +1,13 @@
################
### MONITORS ###
################
# See https://wiki.hypr.land/Configuring/Monitors/
monitor=,preferred,auto,1.0
# Deaktiviert den internen Monitor beim Zuklappen, wenn ein externer dran ist
# Ersetze 'eDP-1' durch den Namen deines Laptop-Bildschirms
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
# Aktiviert den internen Monitor wieder beim Aufklappen
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1"

View File

@ -0,0 +1,15 @@
###################
### PERMISSIONS ###
###################
# See https://wiki.hypr.land/Configuring/Permissions/
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
# for security reasons
# ecosystem {
# enforce_permissions = 1
# }
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow

View File

@ -0,0 +1,11 @@
###################
### MY PROGRAMS ###
###################
# See https://wiki.hypr.land/Configuring/Keywords/
# Set programs that you use
$terminal = /home/crimsen/.local/bin/ghostty
$fileManager = nautilus
#$menu = hyprlauncher
$menu = wofi

0
hypr/config.d/rules.conf Normal file
View File

View File

@ -0,0 +1,23 @@
$wallpaperDir = ~/Bilder/wallpaper
$WR = WallRizz -n -e -s 81x25 -d $wallpaperDir $themeMode -f "STD.setenv('enableBlur',true)"
$WallRizz = kitty -1 -o allow_remote_control=yes -o background_opacity=$overlay_window_opacity --title=WallRizz $WR
$WallRizzRandom = kitty -1 -o allow_remote_control=yes --class=hidden --title=hidden $WR -r
# WallRizz MODERN BLOCK SYNTAX
windowrule {
name = wallrizz-stack
match:title = ^(WallRizz)$
float = on
pin = on
dim_around = on
border_size = 10
rounding = 20
size = 363 981
move = 80% 5%
animation = slide right
}
# Key binds
bindd = ,f3, Apply wallpaper preset, exec, $WallRizz
bindd = $mainMod, f3, Apply random wallpaper, exec, $WallRizzRandom

View File

@ -0,0 +1,60 @@
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# Example windowrules that are useful
windowrule {
# Ignore maximize requests from all apps. You'll probably like this.
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
windowrule {
# Fix some dragging issues with XWayland
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
# Hyprland-run windowrule
windowrule {
name = move-hyprland-run
match:class = hyprland-run
move = 20 monitor_h-120
float = yes
}
windowrule {
name = Iron Thread
match:class = iron_thread
no_initial_focus = true
}
windowrule {
name = Ghostty
match:class = com.mitchellh.ghostty
workspace = 1
move = 100 100
size = 100 100
}
windowrule {
name = Google Chrome
match:class = google-chrome
workspace = 2
}

16
hypr/hypridle.conf Normal file
View File

@ -0,0 +1,16 @@
general {
lock_cmd = pidof hyprlock || hyprlock # Verhindert mehrfaches Starten
before_sleep_cmd = loginctl lock-session # Sperren vor dem Standby
after_sleep_cmd = hyprctl dispatch dpms on # Monitor an nach dem Aufwachen
}
listener {
timeout = 300 # 5 Minuten
on-timeout = loginctl lock-session # Sperren
}
listener {
timeout = 330 # 5.5 Minuten
on-timeout = hyprctl dispatch dpms off # Monitor aus
on-resume = hyprctl dispatch dpms on # Monitor an
}

22
hypr/hyprland.conf Normal file
View File

@ -0,0 +1,22 @@
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hypr.land/Configuring/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
#
source = config.d/macchiato.conf
source = config.d/monitor.conf
source = config.d/programms.conf
source = config.d/autostart.conf
source = config.d/env.conf
source = config.d/permissions.conf
source = config.d/look_and_feel.conf
source = config.d/input.conf
source = config.d/bindings.conf
source = config.d/workspace.conf
source = config.d/wallrizz.conf

64
hypr/hyprlock.conf Normal file
View File

@ -0,0 +1,64 @@
general {
no_fade_in = false
grace = 0
disable_loading = true
}
background {
monitor =
path = screenshot # Nimmt einen Screenshot vom aktuellen Desktop
color = rgb(24273a) # Fallback auf Macchiato Base
blur_passes = 3
blur_size = 7
noise = 0.0117
contrast = 0.8916
brightness = 0.8172
}
input-field {
monitor =
size = 250, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
# Farben im Macchiato Style
outer_color = rgb(c6a0f6) # Mauve
inner_color = rgb(363a4f) # Surface0
font_color = rgb(cad3f5) # Text
check_color = rgb(eed49f) # Yellow (beim Prüfen)
fail_color = rgb(ed8796) # Red (bei falschem Passwort)
fade_on_empty = false
placeholder_text = <span foreground="##cad3f5">Passwort eingeben...</span>
hide_input = false
position = 0, -20
halign = center
valign = center
}
# Uhrzeit
label {
monitor =
text = $TIME
color = rgb(cad3f5) # Text
font_size = 120
font_family = JetBrains Mono Nerd Font Bold
position = 0, 80
halign = center
valign = center
}
# Benutzername
label {
monitor =
text = Hallo, $USER
color = rgb(b7bdf8) # Lavender
font_size = 25
font_family = JetBrains Mono Nerd Font
position = 0, -130
halign = center
valign = center
}

10
hypr/scripts/clamshell.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/env bash
if hyprctl monitors | grep -q "ID [1-9]"; then
if grep -q open /proc/acpi/button/lid/LID/state; then
hyprctl keyword monitor "eDP-1, preferred, auto, 1"
else
hyprctl keyword monitor "eDP-1, disable"
fi
fi

178
hypr/try.conf Normal file
View File

@ -0,0 +1,178 @@
source=~/.config/hypr/mocha.conf
monitor=,preferred,auto,1
monitor=eDP-1,1920x1080,0x0,1
input {
follow_mouse=1
touchpad {
natural_scroll=no
}
}
general {
sensitivity=1.0 # for mouse cursor
gaps_in=5
gaps_out=10
border_size=5
col.active_border=$pink
col.inactive_border=$surface0
col.group_border_active=$flamingo
col.group_border=$surface0
apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
}
misc {
disable_hyprland_logo=yes
disable_splash_rendering=yes
}
decoration {
rounding=10
blur=1
blur_size=2 # minimum 1
blur_passes=1 # minimum 1, more passes = more resource intensive.
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
# if you want heavy blur, you need to up the blur_passes.
# the more passes, the more you can up the blur_size without noticing artifacts.
col.shadow=$surface0
col.shadow_inactive=$surface0
}
bezier=overshot,0.05,0.9,0.1,1.1
animations {
enabled=1
animation=windows,1,8,overshot,popin
# animation=fade,1,8,overshot - This breaks for whatever reason?
animation=workspaces,1,8,overshot,slidevert
}
dwindle {
pseudotile=0 # enable pseudotiling on dwindle
}
gestures {
workspace_swipe=yes
}
exec-once=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP && systemctl --user start hyprland-session.target
exec=hyprpaper &
exec-once=blueman-applet &
exec-once=mako &
exec-once=waybar &
windowrule=workspace 1 silent,firefox
windowrule=workspace 2 silent,discord
windowrule=workspace 4 silent,YouTube Music
windowrule=workspace special silent,title:^(Firefox — Sharing Indicator)$
bind=SUPER,Alt_R,exec,pkill --signal USR1 waybar
bind=SUPER,RETURN,exec,foot
bind=SUPERSHIFT,q,killactive,
bind=SUPERSHIFT,e,exec,powermenu
bind=SUPERSHIFT,c,exec,hyprctl reload
bind=SUPERSHIFT,SPACE,togglefloating,
bind=SUPER,D,exec,rofi -show drun
bind=SUPER,C,exec,hyprpicker -n -a
bind=SUPER,F,fullscreen,0,
bind=CTRL,SPACE,exec,makoctl dismiss
bind=SUPERSHIFT,b,exec,firefox
bind=SUPERALT,L,exec,swaylock
bind=,Print,exec,wayshot-ss | wl-copy
bind=SUPERSHIFT,m,exec,wayshot-ss > ~/media/pictures/"$(date +"%s")"-wayshot.png
bind=SUPERALT,m,exec,wl-ocr
bind=SUPERSHIFTALT,m,exec,wl-qr
binde=,XF86AudioRaiseVolume,exec,pamixer -i 5 && notify-send -t 1000 " Audio" "$(pamixer --get-volume-human)" --hint="int:value:$(pamixer --get-volume)"
binde=,XF86AudioLowerVolume,exec,pamixer -d 5 && notify-send -t 1000 " Audio" "$(pamixer --get-volume-human)" --hint="int:value:$(pamixer --get-volume)"
bind=,XF86AudioMute,exec,pamixer -t && notify-send -t 1000 "ﱝ Audio" "Muted"
bind=,XF86AudioPlay,exec,playerctl play-pause
bind=,XF86AudioNext,exec,playerctl next
bind=,XF86AudioPrev,exec,playerctl previous
binde=,XF86MonBrightnessUp,exec,brightnessctl s +5% && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)"
binde=,XF86MonBrightnessDown,exec,brightnessctl s 5%- && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)"
bind=SUPER,1,workspace,1
bind=SUPER,2,workspace,2
bind=SUPER,3,workspace,3
bind=SUPER,4,workspace,4
bind=SUPER,5,workspace,5
bind=SUPER,6,workspace,6
bind=SUPER,7,workspace,7
bind=SUPER,8,workspace,8
bind=SUPER,9,workspace,9
bind=SUPER,0,workspace,10
bind=SUPERSHIFT,1,movetoworkspacesilent,1
bind=SUPERSHIFT,2,movetoworkspacesilent,2
bind=SUPERSHIFT,3,movetoworkspacesilent,3
bind=SUPERSHIFT,4,movetoworkspacesilent,4
bind=SUPERSHIFT,5,movetoworkspacesilent,5
bind=SUPERSHIFT,6,movetoworkspacesilent,6
bind=SUPERSHIFT,7,movetoworkspacesilent,7
bind=SUPERSHIFT,8,movetoworkspacesilent,8
bind=SUPERSHIFT,9,movetoworkspacesilent,9
bind=SUPERSHIFT,0,movetoworkspacesilent,10
bind=SUPER,minus,togglespecialworkspace
bind=SUPERSHIFT,minus,movetoworkspace,special
bind=SUPER,R,submap,resize
submap=resize
binde=,h,resizeactive,-10 0
binde=,l,resizeactive,10 0
binde=,k,resizeactive,0 -10
binde=,j,resizeactive,0 10
bind=,escape,submap,reset
submap=reset
bind=SUPER,M,submap,move
submap=move
binde=,h,moveactive,-10 0
binde=,l,moveactive,10 0
binde=,k,moveactive,0 -10
binde=,j,moveactive,0 10
bind=,escape,submap,reset
submap=reset
bind=SUPER,B,submap,brightness
submap=brightness
binde=,l,exec,brightnessctl s +5% && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)"
binde=,h,exec,brightnessctl s 5%- && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)"
bind=,escape,submap,reset
submap=reset
bind=SUPER,h,movefocus,l
bind=SUPER,l,movefocus,r
bind=SUPER,j,movefocus,u
bind=SUPER,k,movefocus,d
bind=SUPERSHIFT,h,movewindow,l
bind=SUPERSHIFT,l,movewindow,r
bind=SUPERSHIFT,j,movewindow,u
bind=SUPERSHIFT,k,movewindow,d
bind=SUPERSHIFT,z,togglegroup
bind=SUPER,z,submap,group
submap=group
bind=,l,changegroupactive,f
bind=,h,changegroupactive,b
bind=,escape,submap,reset
submap=reset

33
laio/_default.yaml Normal file
View File

@ -0,0 +1,33 @@
---
name: {{ session_name }}
startup:
- command: echo
args:
- starting {{ session_name }} session # add commands here to run on session startup
shutdown:
- command: echo
args:
- stopping {{ session_name }} session # add commands here to run on session shutdown
path: {{ path }}
windows:
- name: code
flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side
panes:
- name: Editor
commands:
- command: {{ editor | default(value="nvim") }}
- name: misc
flex_direction: row
panes:
- flex: 1
- flex: 1
path: . # optional relative or absolute path
flex_direction: column
panes:
- flex: 1
- flex: 5

22
laio/astronvim.yaml Normal file
View File

@ -0,0 +1,22 @@
---
name: astronvim
startup:
- command: echo
args:
- starting astronvim session # add commands here to run on session startup
shutdown:
- command: echo
args:
- stopping astronvim session # add commands here to run on session shutdown
path: /home/crimsen/.config/nvim
windows:
- name: code
flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side
panes:
- name: Editor
commands:
- command: nvim

28
laio/iron-thread.yaml Normal file
View File

@ -0,0 +1,28 @@
---
name: iron-thread
startup:
- command: echo
args:
- starting iron-thread session # add commands here to run on session startup
shutdown:
- command: echo
args:
- stopping iron-thread session # add commands here to run on session shutdown
path: /home/crimsen/git/iron-thread/
windows:
- name: editor
flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side
panes:
- name: Editor
commands:
- command: nvim
- name: env_starter
flex_direction: column
panes:
- commands:
- command: cargo tauri android dev

26
laio/nvim.yaml Normal file
View File

@ -0,0 +1,26 @@
---
name: nvim
startup:
- command: echo
args:
- starting nvim session # add commands here to run on session startup
shutdown:
- command: echo
args:
- stopping nvim session # add commands here to run on session shutdown
path: /home/crimsen/.config/nvim/
windows:
- name: code
flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side
panes:
- name: Editor
commands:
- command: nvim
- name: cli
flex_direction: column
panes:
- name: CLI

26
laio/qmk.yaml Normal file
View File

@ -0,0 +1,26 @@
---
name: qmk
startup:
- command: echo
args:
- starting qmk session # add commands here to run on session startup
shutdown:
- command: echo
args:
- stopping qmk session # add commands here to run on session shutdown
path: /home/crimsen/qmk_firmware/
windows:
- name: code
flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side
panes:
- name: Editor
commands:
- command: nvim
- name: cli
flex_direction: column
panes:
- name: CLI

28
lazygit/config.yml Normal file
View File

@ -0,0 +1,28 @@
gui:
nerdFontsVersion: "3"
theme:
activeBorderColor:
- "#8bd5ca"
- bold
inactiveBorderColor:
- "#a5adcb"
optionsTextColor:
- "#8aadf4"
selectedLineBgColor:
- "#363a4f"
cherryPickedCommitBgColor:
- "#494d64"
cherryPickedCommitFgColor:
- "#8bd5ca"
unstagedChangesColor:
- "#ed8796"
defaultFgColor:
- "#cad3f5"
searchingActiveBorderColor:
- "#eed49f"
authorColors:
"*": "#b7bdf8"
git:
pagers:
- pager: delta --dark --paging=never

1
lazygit/teal.yml Symbolic link
View File

@ -0,0 +1 @@
/home/crimsen/git/lazygit/themes-mergable/macchiato/teal.yml

View File

@ -15,7 +15,8 @@ set $down n
set $up r
set $right t
# Your preferred terminal emulator
set $term alacritty
#set $term alacritty
set $term $HOME/.local/bin/ghostty
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.

View File

@ -1,5 +1,5 @@
# target title bg text indicator border
client.focused $pink $base $text $rosewater $pink
client.focused $teal $base $text $rosewater $teal
client.focused_inactive $mauve $base $text $rosewater $mauve
client.unfocused $mauve $base $text $rosewater $mauve
client.urgent $peach $base $peach $overlay0 $peach

View File

@ -2,11 +2,33 @@
#
# Example configuration:
#
exec swayidle -w \
before-sleep 'swaylock -f -c 000000 -i $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg'
#exec swayidle -w \
# before-sleep 'swaylock -f -c 000000 -i $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg'
# timeout 300 'swaylock -f -c 000000 -i $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg' \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"'
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
# Definiere den Lock-Befehl (falls noch nicht geschehen)
# set $lock_cmd swaylock --screenshots --clock --indicator --indicator-radius 120 --indicator-thickness 10 --ignore-empty-password --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.3 --ring-color 8bd5ca --key-hl-color 91d7e3 --text-color cad3f5 --line-color 00000000 --inside-color 24273a88 --separator-color 00000000 --ring-ver-color 8aadf4 --inside-ver-color 24273a88 --ring-wrong-color ed8796 --inside-wrong-color 24273a88 --text-wrong-color ed8796 --bs-hl-color ed8796 --effect-compose "50%,25%;150x150;center;/home/crimsen/Bilder/wallpaper/logo.png"
#
# # Swayidle Konfiguration
# exec swayidle -w \
# timeout 300 '$lock_cmd' \
# timeout 600 'swaymsg "output * power off"' \
# resume 'swaymsg "output * power on"' \
# before-sleep '$lock_cmd'
# Ich habe pkill -0 vorne ergänzt, damit kein zweiter Lock startet
set $lock_cmd pkill -0 swaylock || swaylock -f --screenshots --clock --indicator --indicator-radius 120 --indicator-thickness 10 --ignore-empty-password --effect-blur 7x5 --effect-vignette 0.5:0.5 --grace 0 --fade-in 0.3 --ring-color 8bd5ca --key-hl-color 91d7e3 --text-color cad3f5 --line-color 00000000 --inside-color 24273a88 --separator-color 00000000 --ring-ver-color 8aadf4 --inside-ver-color 24273a88 --ring-wrong-color ed8796 --inside-wrong-color 24273a88 --text-wrong-color ed8796 --bs-hl-color ed8796 --effect-compose "50%,25%;150x150;center;/home/crimsen/Bilder/wallpaper/logo.png" --no-unlock-indicator --indicator-idle-visible
# Swayidle Konfiguration
exec swayidle -w \
timeout 300 '$lock_cmd' \
timeout 600 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"' \
before-sleep '$lock_cmd' \
after-resume 'swaymsg "output * power on"'
# Shortcut zum Sperren (z.B. Mod + L)
bindsym $mod+Shift+j exec $lock_cmd

View File

@ -11,8 +11,8 @@
#
input "type:keyboard" {
xkb_layout "de"
xkb_variant "neo"
xkb_layout de,de
xkb_variant neo,
}
input "type:touchpad" {
tap enabled
@ -21,3 +21,5 @@ input "type:touchpad" {
}
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
bindsym $mod+BackSpace input "type:keyboard" xkb_switch_layout next

View File

@ -23,10 +23,11 @@
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+l exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
# bindsym $mod+Shift+l exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Shift+l exec wlogout -b 2 -c 50 -r 50 -m 200 -L 400 -R 400 --no-span
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status

View File

@ -2,7 +2,8 @@
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
#output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
output * bg $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg fill
# output * bg $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg fill
output * bg $HOME/Bilder/wallpaper/romantic-night-sky-5120x2880-25549.jpg fill
#output * bg $HOME/Bilder/wallpaper.jpg fill
#
# Example configuration:
@ -12,5 +13,7 @@ output * bg $HOME/Bilder/wallpaper/undertale_sans-wallpaper-2048x1152.jpg fill
# You can get the names of your outputs by running: swaymsg -t get_outputs
font pango:Hack Nerd Font mono:style=Regular 12
output "LG Electronics LG ULTRAWIDE 510NTJJN1324" resolution 3440x1440
output "Mars-Tech Corporation MTC26T42 0x000003E9" resolution --custom 1920x1080
bindswitch --locked --reload lid:on output eDP-1 disable
bindswitch --locked --reload lid:off output eDP-1 enable

View File

@ -1,8 +1,8 @@
set $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'Catppuccin-Macchiato-Standard-Blue-Dark'
#gsettings set $gnome-schema icon-theme 'Your icon theme'
#gsettings set $gnome-schema cursor-theme 'Your cursor Theme'
#gsettings set $gnome-schema font-name 'Your font name'
# gsettings set $gnome-schema gtk-theme 'Catppuccin-Macchii#ato-Standard-Blue-Dark'
gsettings set $gnome-schema icon-theme 'candy-icons-master'
gsettings set $gnome-schema cursor-theme 'Catppuccin-Macchiato-Teal-Cursors'
gsettings set $gnome-schema font-name 'Hack Nerd Font 11'
}

View File

@ -29,11 +29,43 @@
workspace_layout tabbed
assign [app_id="Alacritty"] 1
assign [instance="google-chrome"] 2
assign [app_id="google-chrome"] 2
assign [class="jetbrains-studio"] 3
assign [app_id="blender"] 3
assign [instance="freecad"] 3
assign [instance="bambu-studio"] 3
assign [app_id="org.gnome.Nautilus"] 4
assign [app_id="mpv"] 5
assign [instance="Mail"] 6
for_window [class="platformer"] floating enable
# 1. Floating für alle Emulator-Fenster deaktivieren
# for_window [class="Emulator"] floating disable
# 2. Das Hauptfenster (Pixel 9 Display) konfigurieren
# Wir suchen nach dem Titel, der den Namen des Geräts enthält
for_window [title="Android Emulator - Pixel_9*"] floating disable
for_window [title="Android Emulator - Pixel_9*"] move right
for_window [title="Android Emulator - Pixel_9*"] resize set width 500 px
# 3. Die Toolbar konfigurieren
# Diese hat meist nur den schlichten Titel "Emulator"
# for_window [title="^Emulator$"] move right, resize set width 60 px
# Optional: Fokus zurück auf das Terminal setzen, falls gewünscht
# for_window [class="Emulator"] focus left
# 1. Standardmäßig alle Godot-Fenster auf Floating setzen
for_window [class="Godot"] floating enable
# 2. Das Haupt-Editor-Fenster (Tiling) erzwingen
# Wir suchen nach Fenstern, die "Godot Engine" im Titel haben,
# aber NICHT den Projekt-Manager oder kleine Popups sind.
for_window [class="Godot" title="(?i).*Godot Engine.*"] floating disable
# 3. Optional: Den Projekt-Manager gezielt floaten lassen (falls er nicht schon durch Regel 1 floatet)
for_window [class="Godot" title="Project Manager"] floating enable
# ext: set ft=swayconfig

View File

@ -0,0 +1,7 @@
# In deiner Sway-Konfigurationsdatei (~/.config/sway/config)
exec --no-startup-id fcitx5
#setenv GTK_IM_MODULE fcitx
#setenv QT_IM_MODULE fcitx
#setenv XMODIFIERS "@im=fcitx"

View File

@ -0,0 +1,79 @@
# # Ecken abrunden
# corner_radius 10
#
# # Schatten
# shadows on
# shadow_blur_radius 20
# shadow_color #00000077
#
# # Unschärfe (Blur) für transparente Fenster
# blur on
# blur_xray off
## Deaktiviert "Smart Gaps" (damit Lücken immer da sind)
smart_gaps off
# Optional: Versteckt die Ränder, wenn nur ein Fenster offen ist
smart_borders on
# Stelle sicher, dass die Werte gesetzt sind
gaps inner 10
gaps outer 5
### Optik-Tuning
# Abgerundete Ecken für alle Fenster
corner_radius 12
# Schatten-Konfiguration
shadows on
shadow_blur_radius 20
shadow_color #000000A0
# Blur (Unschärfe)
# Tipp: Damit das gut aussieht, muss das Terminal/App transparent sein!
blur on
blur_passes 3
blur_radius 7
# Entferne die hässlichen Standard-Titelleisten
# default_border pixel 2 blur_radius 5
# # Waybar Hintergrund weichzeichnen
# for_window [class="waybar"] blur on
# for_window [class="waybar"] opacity 0.8
default_border pixel 2
#
# title_window_icon yes
# border 10pixel
layer_effects "waybar" {
blur enable;
blur_xray enable
shadows enable;
corner_radius 12;
}
# Effekte für SwayNotificationCenter
layer_effects "swaync" {
blur enable;
blur_xray enable
shadows enable;
corner_radius 12;
}
# Effekte für Wofi
layer_effects "wofi" {
blur enable;
blur_xray enable
shadows enable;
corner_radius 12;
}
default_dim_inactive 0.4
titlebar_separator enable
#titlebar_padding 10 5
titlebar_border_thickness 2
scratchpad_minimize enable
# Alle Fenster standardmäßig leicht transparent machen
for_window [class=".*"] opacity 0.8

96
swaync/config.json Normal file
View File

@ -0,0 +1,96 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"ignore-gtk-theme": true,
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
"layer-shell-cover-screen": true,
"cssPriority": "highest",
"control-center-margin-top": 0,
"control-center-margin-bottom": 0,
"control-center-margin-right": 0,
"control-center-margin-left": 0,
"notification-2fa-action": true,
"notification-inline-replies": false,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"relative-timestamps": true,
"control-center-width": 500,
"control-center-height": 600,
"notification-window-width": 500,
"keyboard-shortcuts": true,
"notification-grouping": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"text-empty": "No Notifications",
"script-fail-notify": true,
"scripts": {
"example-script": {
"exec": "echo 'Do something...'",
"urgency": "Normal"
},
"example-action-script": {
"exec": "echo 'Do something actionable!'",
"urgency": "Normal",
"run-on": "action"
}
},
"notification-visibility": {
"example-name": {
"state": "muted",
"urgency": "Low",
"app-name": "Spotify"
}
},
"widgets": [
"inhibitors",
"title",
"dnd",
"notifications"
],
"widget-config": {
"inhibitors": {
"text": "Inhibitors",
"button-text": "Clear All",
"clear-all-button": true
},
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 5,
"text": "Label Text"
},
"mpris": {
"blacklist": [],
"autohide": false,
"show-album-art": "always",
"loop-carousel": false
},
"buttons-grid": {
"buttons-per-row": 7,
"actions": [
{
"label": "直",
"type": "toggle",
"active": true,
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
}
]
}
}
}

330
swaync/style.css Normal file
View File

@ -0,0 +1,330 @@
* {
all: unset;
font-size: 14px;
font-family: "Hack Nerd Font";
transition: 200ms;
}
trough highlight {
background: #cad3f5;
}
scale {
margin: 0 7px;
}
scale trough {
margin: 0rem 1rem;
min-height: 8px;
min-width: 70px;
border-radius: 12.6px;
}
trough slider {
margin: -10px;
border-radius: 12.6px;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
transition: all 0.2s ease;
background-color: #8aadf4;
}
trough slider:hover {
box-shadow:
0 0 2px rgba(0, 0, 0, 0.8),
0 0 8px #8aadf4;
}
trough {
background-color: #363a4f;
}
/* notifications */
.notification-background {
box-shadow:
0 0 8px 0 rgba(0, 0, 0, 0.8),
inset 0 0 0 1px #494d64;
border-radius: 12.6px;
margin: 18px;
background: #1e2030;
color: #cad3f5;
padding: 0;
}
.notification-background .notification {
padding: 7px;
border-radius: 12.6px;
}
.notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #ed8796;
}
.notification .notification-content {
margin: 7px;
}
.notification .notification-content overlay {
/* icons */
margin: 4px;
}
.notification-content .summary {
color: #cad3f5;
}
.notification-content .time {
color: #a5adcb;
}
.notification-content .body {
color: #b8c0e0;
}
.notification > *:last-child > * {
min-height: 3.4em;
}
.notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #24273a;
background-color: #ed8796;
}
.notification-background .close-button:hover {
background-color: #ee99a0;
}
.notification-background .close-button:active {
background-color: #f5bde6;
}
.notification .notification-action {
border-radius: 7px;
color: #cad3f5;
box-shadow: inset 0 0 0 1px #494d64;
margin: 4px;
padding: 8px;
font-size: 0.2rem; /* controls the button size not text size*/
}
.notification .notification-action {
background-color: #363a4f;
}
.notification .notification-action:hover {
background-color: #494d64;
}
.notification .notification-action:active {
background-color: #5b6078;
}
.notification.critical progress {
background-color: #ed8796;
}
.notification.low progress,
.notification.normal progress {
background-color: #8aadf4;
}
.notification progress,
.notification trough,
.notification progressbar {
border-radius: 12.6px;
padding: 3px 0;
}
/* control center */
.control-center {
box-shadow:
0 0 8px 0 rgba(0, 0, 0, 0.8),
inset 0 0 0 1px #363a4f;
border-radius: 12.6px;
background-color: #24273a;
color: #cad3f5;
padding: 14px;
}
.control-center .notification-background {
border-radius: 7px;
box-shadow: inset 0 0 0 1px #494d64;
margin: 4px 10px;
}
.control-center .notification-background .notification {
border-radius: 7px;
}
.control-center .notification-background .notification.low {
opacity: 0.8;
}
.control-center .widget-title > label {
color: #cad3f5;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: #cad3f5;
background-color: #363a4f;
box-shadow: inset 0 0 0 1px #494d64;
padding: 8px;
}
.control-center .widget-title button:hover {
background-color: #494d64;
}
.control-center .widget-title button:active {
background-color: #5b6078;
}
.control-center .notification-group {
margin-top: 10px;
}
scrollbar slider {
margin: -3px;
opacity: 0.8;
}
scrollbar trough {
margin: 2px 0;
}
/* dnd */
.widget-dnd {
margin-top: 5px;
border-radius: 8px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 8px;
background: #363a4f;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: #8aadf4;
}
.widget-dnd > switch slider {
background: #494d64;
border-radius: 8px;
}
/* mpris */
.widget-mpris-player {
background: #363a4f;
border-radius: 12.6px;
color: #cdd6f4;
}
.mpris-overlay {
background-color: #363a4f;
opacity: 0.9;
padding: 15px 10px;
}
.widget-mpris-album-art {
-gtk-icon-size: 100px;
border-radius: 12.6px;
margin: 0 10px;
}
.widget-mpris-title {
font-size: 1.2rem;
color: #cad3f5;
}
.widget-mpris-subtitle {
font-size: 1rem;
color: #b8c0e0;
}
.widget-mpris button {
border-radius: 12.6px;
color: #cad3f5;
margin: 0 5px;
padding: 2px;
}
.widget-mpris button image {
-gtk-icon-size: 1.8rem;
}
.widget-mpris button:hover {
background-color: #363a4f;
}
.widget-mpris button:active {
background-color: #494d64;
}
.widget-mpris button:disabled {
opacity: 0.5;
}
.widget-menubar > box > .menu-button-bar > button > label {
font-size: 3rem;
padding: 0.5rem 2rem;
}
.widget-menubar > box > .menu-button-bar > :last-child {
color: #ed8796;
}
.power-buttons button:hover,
.powermode-buttons button:hover,
.screenshot-buttons button:hover {
background: #363a4f;
}
.control-center .widget-label > label {
color: #cad3f5;
font-size: 2rem;
}
.widget-buttons-grid {
padding-top: 1rem;
}
.widget-buttons-grid > flowbox > flowboxchild > button label {
font-size: 2.5rem;
}
.widget-volume {
padding: 1rem 0;
}
.widget-volume label {
color: #7dc4e4;
padding: 0 1rem;
}
.widget-volume trough highlight {
background: #7dc4e4;
}
.widget-backlight trough highlight {
background: #eed49f;
}
.widget-backlight label {
font-size: 1.5rem;
color: #eed49f;
}
.widget-backlight .KB {
padding-bottom: 1rem;
}
.image {
padding-right: 0.5rem;
}

308
swaync/style.css.old Normal file
View File

@ -0,0 +1,308 @@
* {
all: unset;
font-size: 14px;
font-family: "Hack Nerd Font";
transition: 200ms;
}
.floating-notifications.background .notification-row .notification-background {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f;
border-radius: 12.6px;
margin: 18px;
background-color: #24273a;
color: #cad3f5;
padding: 0;
}
.floating-notifications.background
.notification-row
.notification-background
.notification {
padding: 7px;
border-radius: 12.6px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification.critical {
box-shadow: inset 0 0 7px 0 #ed8796;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content {
margin: 7px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.summary {
color: #cad3f5;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.time {
color: #a5adcb;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.body {
color: #cad3f5;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 7px;
color: #cad3f5;
background-color: #363a4f;
box-shadow: inset 0 0 0 1px #494d64;
margin: 7px;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #363a4f;
color: #cad3f5;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #7dc4e4;
color: #cad3f5;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #24273a;
background-color: #ed8796;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:hover {
background-color: #ee99a0;
color: #24273a;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:active {
background-color: #ed8796;
color: #24273a;
}
.control-center {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #363a4f;
border-radius: 12.6px;
margin: 18px;
background-color: #24273a;
color: #cad3f5;
padding: 14px;
}
.control-center .widget-title {
color: #cad3f5;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: #cad3f5;
background-color: #363a4f;
box-shadow: inset 0 0 0 1px #494d64;
padding: 8px;
}
.control-center .widget-title button:hover {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #5b6078;
color: #cad3f5;
}
.control-center .widget-title button:active {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #7dc4e4;
color: #24273a;
}
.control-center .notification-row .notification-background {
border-radius: 7px;
color: #cad3f5;
background-color: #363a4f;
box-shadow: inset 0 0 0 1px #494d64;
margin-top: 14px;
}
.control-center .notification-row .notification-background .notification {
padding: 7px;
border-radius: 7px;
}
.control-center
.notification-row
.notification-background
.notification.critical {
box-shadow: inset 0 0 7px 0 #ed8796;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content {
margin: 7px;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.summary {
color: #cad3f5;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.time {
color: #a5adcb;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.body {
color: #cad3f5;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3.4em;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 7px;
color: #cad3f5;
background-color: #181926;
box-shadow: inset 0 0 0 1px #494d64;
margin: 7px;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #363a4f;
color: #cad3f5;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #7dc4e4;
color: #cad3f5;
}
.control-center .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #24273a;
background-color: #ee99a0;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: #ed8796;
color: #24273a;
}
.control-center
.notification-row
.notification-background
.close-button:active {
background-color: #ed8796;
color: #24273a;
}
.control-center .notification-row .notification-background:hover {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #8087a2;
color: #cad3f5;
}
.control-center .notification-row .notification-background:active {
box-shadow: inset 0 0 0 1px #494d64;
background-color: #7dc4e4;
color: #cad3f5;
}

BIN
wallpaper/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 MiB

88
waybar/config.jsonc Normal file
View File

@ -0,0 +1,88 @@
{
"layer": "top", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
// "width": 1280, // Waybar width
// Choose the order of the modules
"modules-left": ["hyprland/workspaces", "custom/music"],
"modules-center": ["clock"],
"modules-right": ["pulseaudio", "backlight", "battery", "tray", "custom/lock", "custom/power"],
"hyprland/workspaces": {
"disable-scroll": true,
"sort-by-name": true,
"format": " {icon} ",
"format-icons": {
"1": "",
// "1":"1",
//"1:www": "龜", // Icon: firefox-browser
"2": "",
//"2:mail": "", // Icon: mail
//"3": "",
"3":"󰂫",
//"3:editor": "", // Icon: code
"4": "",
//"4:terminals": "", // Icon: terminal
"5": "",
//"5:portal": "", // Icon: terminal
"6": "",
"default": "",
},
"persistent-workspaces": { "1":[], "2":[], "3":[], "4":[], "5":[], "6":[]}
},
"tray": {
"icon-size": 21,
"spacing": 10
},
"custom/music": {
// "format": " {}",
"format": "󰝚 {}",
"escape": true,
"interval": 5,
"tooltip": false,
"exec": "playerctl metadata --format='{{ title }}'",
"on-click": "playerctl play-pause",
"max-length": 50
},
"clock": {
"timezone": "Europe/Berlin",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": " {:%d/%m/%Y}",
"format": " {:%H:%M}"
},
"backlight": {
"device": "intel_backlight",
"format": "{icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon}",
"format-charging": "󰂄",
"format-plugged": "󰂄",
"format-alt": "{icon}",
"format-icons": ["", "", "", "", "", "", "", "", "", "", "", ""]
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"default": ["", "", " "]
},
"on-click": "pavucontrol"
},
"custom/lock": {
"tooltip": false,
"on-click": "sh -c '(sleep 0.5s; swaylock --grace 0)' & disown",
"format": "",
},
"custom/power": {
"tooltip": false,
"on-click": "wlogout &",
// "format": "襤"
"format": " "
// "format": "moopä"
}
}

View File

@ -20,13 +20,15 @@
"modules-left": [
"sway/workspaces",
"hyprland/workspaces"
],
"modules-center": [
"sway/window"
"sway/window",
"hyprland/window"
],
"modules-right": [
"network",
//"custom/keyboard-layout",
"custom/keyboard-layout",
"battery",
"pulseaudio",
"custom/notification",
@ -38,6 +40,18 @@
// -------------------------------------------------------------------------
// Modules
// -------------------------------------------------------------------------
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": {
"numlock": "N {icon}",
"capslock": "C {icon}"
},
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"custom/notification": {
"tooltip": false,
"format": "{icon}",
@ -75,7 +89,13 @@
"", // Icon: battery-quarter
"" // Icon: battery-empty
],
"tooltip": true
"tooltip": true,
"events": {
"on-discharging-warning": "notify-send -u normal 'Low Battery'",
"on-discharging-critical": "notify-send -u critical 'Very Low Battery'",
"on-charging-99": "notify-send -u normal 'Battery Full!'",
"on-discharging-96": "notify-send -u normal 'Battery discharge'",
}
},
"clock#time": {
@ -116,6 +136,11 @@
"max-length": 120
},
"hyprland/window": {
"format": "{}",
"max-length": 120
},
"sway/workspaces": {
"all-outputs": false,
"disable-scroll": true,
@ -125,7 +150,8 @@
//"1:www": "龜", // Icon: firefox-browser
"2": "",
//"2:mail": "", // Icon: mail
"3": "",
//"3": "",
"3":"",
//"3:editor": "", // Icon: code
"4": "",
//"4:terminals": "", // Icon: terminal
@ -133,7 +159,29 @@
//"5:portal": "", // Icon: terminal
"6": "",
"urgent": "",
"focused": "",
//"focused": "",
"default": "",
}
},
"hyprland/workspaces": {
"all-outputs": true,
"disable-scroll": true,
"format": "{icon} {name}",
"format-icons": {
"1": "",
//"1:www": "龜", // Icon: firefox-browser
"2": "",
//"2:mail": "", // Icon: mail
//"3": "",
"3":"",
//"3:editor": "", // Icon: code
"4": "",
//"4:terminals": "", // Icon: terminal
"5": "",
//"5:portal": "", // Icon: terminal
"6": "",
"urgent": "",
//"focused": "",
"default": "",
}
},
@ -162,6 +210,7 @@
"modules-left": [
"backlight",
"sway/mode",
"hyprland/submap"
],
"modules-right": [
"memory",
@ -217,4 +266,8 @@
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false
},
"hyprland/submap": {
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false
},
}]

View File

@ -1,166 +0,0 @@
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 30, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 4, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"],
"modules-center": ["sway/window"],
"modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "clock", "tray"],
// Modules configuration
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{name}: {icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"urgent": "",
"focused": "",
"default": ""
}
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 2,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}

37
waybar/macchiato.css Normal file
View File

@ -0,0 +1,37 @@
/*
*
* Catppuccin Mocha palette
* Maintainer: rubyowo
*
*/
@define-color base #24273a;
@define-color mantle #1e2030;
@define-color crust #181926;
@define-color text #cad3f5;
@define-color subtext0 #a5adcb;
@define-color subtext1 #b8c0e0;
@define-color surface0 #363a4f;
@define-color surface1 #494d64;
@define-color surface2 #5b6078;
@define-color overlay0 #6e738d;
@define-color overlay1 #8087a2;
@define-color overlay2 #939ab7;
@define-color blue #8aadf4;
@define-color lavender #b7bdf8;
@define-color sapphire #7dc4e4;
@define-color sky #91d7e3;
@define-color teal #8bd5ca;
@define-color green #a6da95;
@define-color yellow #eed49f;
@define-color peach #f5a97f;
@define-color maroon #ee99a0;
@define-color red #ed8796;
@define-color mauve #c6a0f6;
@define-color pink #f5bde6;
@define-color flamingo #f0c6c6;
@define-color rosewater #f4dbd6;

View File

@ -1,194 +1,141 @@
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@keyframes blink-warning {
70% {
color: white;
}
to {
color: white;
background-color: orange;
}
}
@keyframes blink-critical {
70% {
color: white;
}
to {
color: white;
background-color: red;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
@import "macchiato.css";
* {
border: none;
border-radius: 0;
all: unset;
/* font-family: FantasqueSansMono Nerd Font; */
font-family: Hack Nerd Font Mono Propo;
font-size: 17px;
min-height: 0;
margin: 0;
padding: 0;
}
/* The whole bar */
#waybar {
/*background: #323232;*/
background: rgba(50, 50, 50, 0.7);
color: white;
/* font-family: Cantarell, Noto Sans, sans-serif; */
font-family: "Hack Nerd Font", "Noto Sans", sans-serif;
font-size: 13px;
background: transparent;
color: @text;
margin: 5px 5px;
}
/* Each module */
#battery,
#clock,
#cpu,
#custom-keyboard-layout,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#tray {
padding-left: 10px;
padding-right: 10px;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: orange;
}
#battery.critical {
color: red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#clock {
font-weight: bold;
}
#cpu {
/* No styles */
}
#cpu.warning {
color: orange;
}
#cpu.critical {
color: red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: orange;
}
#memory.critical {
color: red;
animation-name: blink-critical;
animation-duration: 2s;
}
#mode {
background: #64727d;
border-top: 2px solid white;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
}
#network {
/* No styles */
}
#network.disconnected {
color: orange;
}
#pulseaudio {
/* No styles */
}
#pulseaudio.muted {
/* No styles */
}
#custom-spotify {
color: rgb(102, 220, 105);
}
#temperature {
/* No styles */
}
#temperature.critical {
color: red;
}
#tray {
/* No styles */
}
#window {
font-weight: bold;
#workspaces {
border-radius: 1rem 0px 0px 1rem;
margin: 5px;
margin-right: 0px;
background-color: @surface0;
margin-left: 1rem;
}
#workspaces button {
border-top: 2px solid transparent;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
color: #888888;
font-family: Hack Nerd Mono Font;
font-weight: 500;
/* color: @lavender; */
background-color: transparent;
border-radius: 1rem;
margin: 0.5rem;
padding: 0.2rem;
padding-left: 0rem;
padding-right: 0.5rem;
}
#workspaces button#hyprland-workspace-1 {
background-color: #f38ba8; /* Catppuccin Red */
border-bottom: 3px solid #f38ba8;
}
#workspaces button.focused {
border-color: #4c7899;
color: white;
background-color: #285577;
#workspaces button.2 {
background-color: #fab387; /* Catppuccin Peach */
border-bottom: 3px solid #fab387;
}
#workspaces button.urgent {
border-color: #c9545d;
color: #c9545d;
#workspaces button.3 {
background-color: #f9e2af; /* Catppuccin Yellow */
border-bottom: 3px solid #f9e2af;
}
#workspaces button.4 {
background-color: #a6e3a1; /* Catppuccin Green */
border-bottom: 3px solid #a6e3a1;
}
#workspaces button.active {
background-color: @teal;
font-family: Hack Nerd Mono Font;
color: @surface0;
border-radius: 1rem;
margin: 0.5rem;
padding: 0rem;
padding-right: 0.5rem;
transition: width 0.5s, height 0.5s, background-color 0.5s;
}
#workspaces button:hover {
color: @sapphire;
border-radius: 1rem;
}
#custom-music,
#tray,
#backlight,
#clock,
#pulseaudio,
#custom-lock,
#custom-power {
background-color: @surface0;
padding: 0.5rem 1rem;
margin: 5px 0;
}
#clock {
color: @blue;
/* border-radius: 0px 1rem 1rem 0px; */
border-radius: 1rem;
margin-right: 1rem;
}
#battery {
background-color: @surface0;
margin: 5px 0;
margin-right: 1rem;
padding: 0.5rem 1rem;
color: @green;
border-radius: 0px 1rem 1rem 0px;
}
#battery.charging {
color: @green;
}
#battery.warning:not(.charging) {
color: @red;
}
#backlight {
color: @yellow;
}
#backlight {
border-radius: 0;
}
#pulseaudio {
color: @maroon;
border-radius: 1rem 0px 0px 1rem;
margin-left: 1rem;
}
#custom-music {
color: @mauve;
border-radius: 0px 1rem 1rem 0px;
}
#custom-lock {
border-radius: 1rem 0px 0px 1rem;
color: @lavender;
}
#custom-power {
margin-right: 1rem;
border-radius: 0px 1rem 1rem 0px;
color: @red;
}
#tray {
margin-right: 1rem;
border-radius: 1rem;
}

201
waybar/style.css.new.old Normal file
View File

@ -0,0 +1,201 @@
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@keyframes blink-warning {
70% {
color: white;
}
to {
color: white;
background-color: orange;
}
}
@keyframes blink-critical {
70% {
color: white;
}
to {
color: white;
background-color: red;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
}
/* The whole bar */
#waybar {
/*background: #323232;*/
background: rgba(50, 50, 50, 0.7);
color: white;
/* font-family: Cantarell, Noto Sans, sans-serif; */
/* font-family: "Hack Nerd Font", "Noto Sans", sans-serif; */
font-family: "Hack Nerd Font";
font-size: 14px;
}
/* Each module */
#battery,
#clock,
#cpu,
#custom-keyboard-layout,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#tray {
padding-left: 10px;
padding-right: 10px;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: orange;
}
#battery.critical {
color: red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#clock {
font-weight: bold;
}
#cpu {
/* No styles */
}
#cpu.warning {
color: orange;
}
#cpu.critical {
color: red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: orange;
}
#memory.critical {
color: red;
animation-name: blink-critical;
animation-duration: 2s;
}
#mode {
background: #64727d;
border-top: 2px solid white;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
}
#network {
/* No styles */
}
#network.disconnected {
color: orange;
}
#pulseaudio {
/* No styles */
}
#pulseaudio.muted {
/* No styles */
}
#custom-spotify {
color: rgb(102, 220, 105);
}
#temperature {
/* No styles */
}
#temperature.critical {
color: red;
}
#tray {
/* No styles */
}
#window {
font-weight: bold;
}
#workspaces button {
border-top: 2px solid transparent;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
color: #888888;
}
#workspaces button.focused {
border-color: #4c7899;
color: white;
background-color: #285577;
}
#workspaces button.active {
border-color: #4c7899;
color: white;
background-color: #285577;
}
#workspaces button.urgent {
border-color: #c9545d;
color: #c9545d;
}

View File

@ -1,280 +0,0 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 13px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
border-bottom: 3px solid #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #f1c40f;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #2980b9;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><g><path d="M500,10C229.4,10,10,229.4,10,500s219.4,490,490,490s490-219.4,490-490S770.6,10,500,10z M500,885.1c-212.7,0-385.1-172.4-385.1-385.1S287.3,114.9,500,114.9S885.1,287.3,885.1,500S712.7,885.1,500,885.1z M576.5,308.7v382.4c0,42.2-34.2,76.5-76.5,76.5c-42.3,0-76.5-34.2-76.5-76.5V308.7c0-42.2,34.2-76.5,76.5-76.5C542.2,232.3,576.5,266.5,576.5,308.7z"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></g>
</svg>

After

Width:  |  Height:  |  Size: 969 B

7
wlogout/icons/lock.svg Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><g><path d="M321.8,455.5h356.4V321.8c0-49.2-17.4-91.2-52.2-126c-34.8-34.8-76.8-52.2-126-52.2c-49.2,0-91.2,17.4-126,52.2c-34.8,34.8-52.2,76.8-52.2,126L321.8,455.5L321.8,455.5z M900.9,522.3v400.9c0,18.6-6.5,34.3-19.5,47.3c-13,13-28.8,19.5-47.3,19.5H165.9c-18.6,0-34.3-6.5-47.3-19.5s-19.5-28.8-19.5-47.3V522.3c0-18.6,6.5-34.3,19.5-47.3c13-13,28.8-19.5,47.3-19.5h22.3V321.8c0-85.4,30.6-158.7,91.9-219.9C341.3,40.6,414.6,10,500,10c85.4,0,158.7,30.6,219.9,91.9c61.3,61.3,91.9,134.6,91.9,219.9v133.6h22.3c18.6,0,34.3,6.5,47.3,19.5C894.4,487.9,900.9,503.7,900.9,522.3L900.9,522.3z"/></g></g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
wlogout/icons/logout.svg Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M622.5,990H50.8C26.3,990,10,973.7,10,949.2V50.8C10,26.3,26.3,10,50.8,10h571.7c24.5,0,40.8,16.3,40.8,40.8v285.8c0,24.5-16.3,40.8-40.8,40.8s-40.8-16.3-40.8-40.8v-245h-490v816.7h490v-245c0-24.5,16.3-40.8,40.8-40.8s40.8,16.3,40.8,40.8v285.8C663.3,973.7,647,990,622.5,990z"/><path d="M949.2,540.8H336.7c-24.5,0-40.8-16.3-40.8-40.8c0-24.5,16.3-40.8,40.8-40.8h612.5c24.5,0,40.8,16.3,40.8,40.8C990,524.5,973.7,540.8,949.2,540.8z"/><path d="M949.2,540.8c-12.3,0-20.4-4.1-28.6-12.3L757.3,365.3c-16.3-16.3-16.3-40.8,0-57.2c16.3-16.3,40.8-16.3,57.2,0l163.3,163.3c16.3,16.3,16.3,40.8,0,57.2C969.6,536.8,961.4,540.8,949.2,540.8z"/><path d="M785.8,704.2c-12.3,0-20.4-4.1-28.6-12.3c-16.3-16.3-16.3-40.8,0-57.2l163.3-163.3c16.3-16.3,40.8-16.3,57.2,0c16.3,16.3,16.3,40.8,0,57.2L814.4,691.9C806.3,700.1,798.1,704.2,785.8,704.2z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

7
wlogout/icons/reboot.svg Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M134.6,285.6C64.9,420.7,60.1,590,137.1,723.4L42,668.5l-32,55.4c93.1,52.1,133.6,75.9,184,106.2c28.5-51.5,52.8-94.4,107.4-186.1L246,612l-53.4,92.5C65.4,502.7,167.2,200.3,398.8,126.2C638,29.3,929,223.5,931.5,481.5c19.6,236.7-208.9,443.6-439.3,416.2l-29.5,51c277.7,54.4,556.5-201.7,524.7-483.1C976.1,170.8,637.1-41.2,367.1,77.5C262.8,114.2,183.1,191.5,134.6,285.6z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 877 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M764,152.1c30.9,22,58.3,46.8,82.4,74.6c24,27.8,44.6,57.8,61.8,90.1c17.2,32.3,30.2,66.4,39.1,102.4c8.9,36,13.4,72.6,13.4,109.6c0,63.8-12.2,123.7-36.5,179.6c-24.4,55.9-57.3,104.7-98.8,146.2c-41.5,41.5-90.2,74.5-146.2,98.8C623.2,977.8,563.3,990,499.5,990c-63.1,0-122.7-12.2-178.6-36.5c-55.9-24.4-104.8-57.3-146.7-98.8c-41.9-41.5-74.8-90.2-98.8-146.2c-24-55.9-36-115.8-36-179.6c0-36.4,4.3-72.1,12.9-107.1c8.6-35,20.8-68.3,36.5-99.9c15.8-31.6,35.3-61.1,58.7-88.5c23.3-27.5,49.4-52.2,78.2-74.1c15.1-11,31.4-15.1,48.9-12.4c17.5,2.7,31.7,11.3,42.7,25.7c11,14.4,15.1,30.5,12.4,48.4c-2.7,17.8-11.3,32.3-25.7,43.2c-43.2,31.6-76.4,70.3-99.3,116.3c-23,46-34.5,95.4-34.5,148.2c0,45.3,8.6,88,25.7,128.2c17.2,40.1,40.7,75.1,70.5,105c29.9,29.9,64.9,53.5,105,71c40.1,17.5,82.9,26.3,128.2,26.3c45.3,0,88-8.7,128.2-26.3c40.1-17.5,75.1-41.2,105-71s53.5-64.9,71-105c17.5-40.1,26.3-82.9,26.3-128.2c0-53.5-12.4-104.1-37.1-151.8c-24.7-47.7-59.4-87-104-117.9c-15.1-10.3-24.2-24.4-27.3-42.2c-3.1-17.8,0.5-34.3,10.8-49.4c10.3-14.4,24.4-23.2,42.2-26.2C732.5,138.2,748.9,141.8,764,152.1L764,152.1z M499.5,531.9c-17.8,0-33.1-6.3-45.8-19c-12.7-12.7-19-28-19-45.8V75.9c0-17.8,6.3-33.3,19-46.3c12.7-13,28-19.6,45.8-19.6c18.5,0,34.1,6.5,46.8,19.6c12.7,13,19,28.5,19,46.3v391.2c0,17.8-6.3,33.1-19,45.8C533.6,525.6,518,531.9,499.5,531.9L499.5,531.9z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill="#8bd5ca" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M500,990c-66.1,0-130.3-13-190.7-38.5c-58.4-24.7-110.8-60-155.7-105s-80.3-97.4-105-155.7C23,630.3,10,566.1,10,500c0-66.1,13-130.3,38.5-190.7c24.7-58.4,60-110.8,105-155.7c45-45,97.4-80.3,155.7-105C369.7,23,433.9,10,500,10c66.1,0,130.3,13,190.7,38.5c58.4,24.7,110.8,60,155.7,105c45,45,80.3,97.4,105,155.7C977,369.7,990,433.9,990,500c0,66.1-13,130.3-38.5,190.7c-24.7,58.4-60,110.8-105,155.7s-97.4,80.3-155.7,105C630.3,977,566.1,990,500,990z M500,79.6c-112.3,0-217.9,43.7-297.3,123.1C123.3,282.1,79.6,387.7,79.6,500s43.7,217.9,123.1,297.3c79.4,79.4,185,123.1,297.3,123.1c112.3,0,217.9-43.7,297.3-123.1c79.4-79.4,123.1-185,123.1-297.3s-43.7-217.9-123.1-297.3C717.9,123.3,612.3,79.6,500,79.6z"/><path d="M322.5,290.6h108v412h-108V290.6z"/><path d="M561.6,290.6h107.9v412H561.6V290.6z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

36
wlogout/layout Normal file
View File

@ -0,0 +1,36 @@
{
"label" : "lock",
"action" : "swaylock --screenshots --clock --indicator --indicator-radius 120 --indicator-thickness 10 --ignore-empty-password --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.3 --ring-color 8bd5ca --key-hl-color 91d7e3 --text-color cad3f5 --line-color 00000000 --inside-color 24273a88 --separator-color 00000000 --ring-ver-color 8aadf4 --inside-ver-color 24273a88 --ring-wrong-color ed8796 --inside-wrong-color 24273a88 --text-wrong-color ed8796 --bs-hl-color ed8796 --effect-compose '50%,25%;150x150;center;/home/crimsen/Bilder/wallpaper/logo.png'",
"text" : "Lock",
"keybind" : "l"
}
{
"label" : "logout",
"action" : "loginctl terminate-user $USER",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
}
{
"label" : "hibernate",
"action" : "systemctl hibernate",
"text" : "Hibernate",
"keybind" : "h"
}

55
wlogout/style.css Normal file
View File

@ -0,0 +1,55 @@
* {
background-image: none;
box-shadow: none;
}
window {
background-color: rgba(36, 39, 58, 0.8);
}
button {
border-radius: 5rem;
border-color: #8bd5ca;
font-family: "JetBrainsMono Nerd Font";
font-size: 3rem;
text-decoration-color: #cad3f5;
color: #cad3f5;
background-color: rgba(30, 32, 48, 0.7);
border-style: solid;
border-width: 1px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:focus,
button:active,
button:hover {
/* 20% Overlay 2, 80% mantle */
background-color: rgb(53, 57, 75);
outline-style: none;
}
#lock {
background-image: url("/home/crimsen/.config/wlogout/icons/lock.svg");
}
#logout {
background-image: url("/home/crimsen/.config/wlogout/icons/logout.svg");
}
#suspend {
background-image: url("/home/crimsen/.config/wlogout/icons/suspend.svg");
}
#hibernate {
background-image: url("/home/crimsen/.config/wlogout/icons/hibernate.svg");
}
#shutdown {
background-image: url("/home/crimsen/.config/wlogout/icons/shutdown.svg");
}
#reboot {
background-image: url("/home/crimsen/.config/wlogout/icons/reboot.svg");
}

View File

@ -1,11 +1,15 @@
/* Macchiato Blue */
@define-color accent #8aadf4;
/*@define-color accent #8aadf4;*/
@define-color accent rgba(138, 173, 244, 0.8);
@define-color txt #cad3f5;
@define-color bg #24273a;
@define-color bg2 #494d64;
@define-color bg rgba(36, 39, 58, 0.7);
/* @define-color bg #24273a; */
@define-color bg2 rgba(73, 77, 100, 0.7);
/* @define-color bg2 #494d64; */
* {
font-family: "JetBrains Mono Nerd Font", monospace;
/* font-family: "JetBrains Mono Nerd Font", monospace; */
font-family: "Hack Nerd Font";
font-size: 14px;
}

7
yazi/package.toml Normal file
View File

@ -0,0 +1,7 @@
[[plugin.deps]]
use = "yazi-rs/plugins:piper"
rev = "e84f4fe"
hash = "384464b6df8cb807425c521f8cd790f3"
[flavor]
deps = []

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 yazi-rs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,102 @@
# piper.yazi
Pipe any shell command as a previewer.
## Installation
```sh
ya pkg add yazi-rs/plugins:piper
```
## Usage
Piper is a general-purpose previewer - you can pass any shell command to `piper` and it will use the command's output as the preview content.
It accepts a string parameter, which is the shell command to be executed, for example:
```toml
# ~/.config/yazi/yazi.toml
[[plugin.prepend_previewers]]
url = "*"
run = 'piper -- echo "$1"'
```
This will set `piper` as the previewer for all file types and use `$1` (file path) as the preview content.
## Variables
Available variables:
- `$w`: the width of the preview area.
- `$h`: the height of the preview area.
- `$1`: the path to the file being previewed.
## Examples
Here are some configuration examples:
### Preview tarballs with [`tar`](https://man7.org/linux/man-pages/man1/tar.1.html)
```toml
[[plugin.prepend_previewers]]
url = "*.tar*"
run = 'piper --format=url -- tar tf "$1"'
```
In this example, `--format=url` tells `piper` to parse the `tar` output as file URLs, so you'll be able to get a list of files with icons.
### Preview CSV with [`bat`](https://github.com/sharkdp/bat)
```toml
[[plugin.prepend_previewers]]
url = "*.csv"
run = 'piper -- bat -p --color=always "$1"'
```
Note that certain distributions might use a different name than `bat`, like Debian and Ubuntu use `batcat`, so please adjust accordingly.
### Preview Markdown with [`glow`](https://github.com/charmbracelet/glow)
```toml
[[plugin.prepend_previewers]]
url = "*.md"
run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
```
Note that there's [a bug in Glow v2.0](https://github.com/charmbracelet/glow/issues/440#issuecomment-2307992634) that causes slight color differences between tty and non-tty environments.
### Preview directory tree with [`eza`](https://github.com/eza-community/eza)
```toml
[[plugin.prepend_previewers]]
url = "*/"
run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"'
```
### Preview the schema of a SQLite database
```toml
[[plugin.prepend_previewers]]
mime = "application/sqlite3"
run = 'piper -- sqlite3 "$1" ".schema --indent"'
```
### Use [`hexyl`](https://github.com/sharkdp/hexyl) as fallback previewer
Yazi defaults to using [`file -bL "$1"`](https://github.com/sxyazi/yazi/blob/main/yazi-plugin/preset/plugins/file.lua) if there's no matched previewer.
This example uses `hexyl` as a fallback previewer instead of `file`.
```toml
[[plugin.append_previewers]]
url = "*"
run = 'piper -- hexyl --border=none --terminal-width=$w "$1"'
```
## Related projects
[`faster-piper.yazi`](https://github.com/alberti42/faster-piper.yazi): a cache-based, scrolling-optimized rewrite compatible with `piper.yazi`.
## License
This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file.

View File

@ -0,0 +1,70 @@
--- @since 26.1.22
local M = {}
local function fail(job, s) ya.preview_widget(job, ui.Text.parse(s):area(job.area):wrap(ui.Wrap.YES)) end
function M:peek(job)
local child, err = Command("sh")
:arg({ "-c", job.args[1], "sh", tostring(job.file.path) })
:env("w", job.area.w)
:env("h", job.area.h)
:stdout(Command.PIPED)
:stderr(Command.PIPED)
:spawn()
if not child then
return fail(job, "sh: " .. err)
end
local limit = job.area.h
local i, outs, errs = 0, {}, {}
repeat
local next, event = child:read_line()
if event == 1 then
errs[#errs + 1] = next
elseif event ~= 0 then
break
end
i = i + 1
if i > job.skip then
outs[#outs + 1] = next
end
until i >= job.skip + limit
child:start_kill()
if #errs > 0 then
fail(job, table.concat(errs, ""))
elseif job.skip > 0 and i < job.skip + limit then
ya.emit("peek", { math.max(0, i - limit), only_if = job.file.url, upper_bound = true })
else
ya.preview_widget(job, M.format(job, outs))
end
end
function M:seek(job) require("code"):seek(job) end
function M.format(job, lines)
local format = job.args.format
if format ~= "url" then
local s = table.concat(lines, ""):gsub("\t", string.rep(" ", rt.preview.tab_size))
return ui.Text.parse(s):area(job.area)
end
for i = 1, #lines do
lines[i] = lines[i]:gsub("[\r\n]+$", "")
local icon = File({
url = Url(lines[i]),
cha = Cha { mode = tonumber(lines[i]:sub(-1) == "/" and "40700" or "100644", 8) },
}):icon()
if icon then
lines[i] = ui.Line { ui.Span(" " .. icon.text .. " "):style(icon.style), lines[i] }
end
end
return ui.Text(lines):area(job.area)
end
return M

15
yazi/yazi.toml Normal file
View File

@ -0,0 +1,15 @@
[manager]
show_hidden = true
[[plugin.prepend_previewers]]
url = "*.tar*"
run = 'piper --format=url -- tar tf "$1"'
[[plugin.prepend_previewers]]
url = "*.csv"
run = 'piper -- bat -p --color=always "$1"'
[[plugin.prepend_previewers]]
url = "*.md"
run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
[[plugin.prepend_previewers]]
mime = "application/sqlite3"
run = 'piper -- sqlite3 "$1" ".schema --indent"'