Compare commits

...

9 commits

Author SHA1 Message Date
bb24154c42 update gtk config 2025-08-15 23:24:31 +02:00
a5fa1a7587 add the fuck 2025-08-15 23:22:50 +02:00
3038bf2052 add keybinds for rotation 2025-08-15 23:21:38 +02:00
16e3268524 add pactl output alias 2025-07-16 17:52:29 +02:00
540eda8a14 add tldr alias 2025-07-16 17:52:05 +02:00
7c19fa5ff0 update btop config version 2025-07-15 15:31:56 +02:00
a6ea2145f8 add keybinds and kdeconnect 2025-07-15 15:30:40 +02:00
f46749b320 fix fingerprint msg on lockscreen 2025-07-15 15:29:41 +02:00
4016f00c7a hyprland updates and tests 2025-06-04 21:01:18 +02:00
7 changed files with 207 additions and 13 deletions

View file

@ -1,4 +1,4 @@
#? Config file for btop v. 1.4.0 #? Config file for btop v. 1.4.4
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@ -53,7 +53,7 @@ graph_symbol_proc = "default"
shown_boxes = "cpu mem net proc" shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 500 update_ms = 900
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
@ -150,11 +150,11 @@ background_update = True
custom_cpu_name = "" custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". #* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
disks_filter = "" disks_filter = ""
#* Show graphs instead of meters for memory values. #* Show graphs instead of meters for memory values.
mem_graphs = True mem_graphs = False
#* Show mem box below net box instead of above. #* Show mem box below net box instead of above.
mem_below_net = False mem_below_net = False
@ -187,7 +187,7 @@ disk_free_priv = False
show_io_stat = True show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds. #* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False io_mode = True
#* Set to True to show combined read/write io graphs in io mode. #* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False io_graph_combined = False
@ -210,6 +210,9 @@ net_sync = True
#* Starts with the Network Interface specified here. #* Starts with the Network Interface specified here.
net_iface = "" net_iface = ""
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present. #* Show battery stats in top right if battery is present.
show_battery = True show_battery = True
@ -226,6 +229,9 @@ log_level = "WARNING"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True nvml_measure_pcie_speeds = True
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph. #* Horizontally mirror the GPU graph.
gpu_mirror_graph = True gpu_mirror_graph = True

View file

@ -1,6 +1,8 @@
[Settings] [Settings]
gtk-application-prefer-dark-theme=true gtk-application-prefer-dark-theme=true
gtk-button-images=true gtk-button-images=true
gtk-cursor-blink=true
gtk-cursor-blink-time=1000
gtk-cursor-theme-name=breeze_cursors gtk-cursor-theme-name=breeze_cursors
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-decoration-layout=icon:minimize,maximize,close gtk-decoration-layout=icon:minimize,maximize,close
@ -17,7 +19,7 @@ gtk-theme-name=Materia-dark
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-toolbar-style=3 gtk-toolbar-style=3
gtk-xft-antialias=1 gtk-xft-antialias=1
gtk-xft-dpi=98304 gtk-xft-dpi=147456
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb gtk-xft-rgba=rgb

View file

@ -15,7 +15,7 @@
################ ################
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres@highrr,auto,auto, transform, 0 monitor=,highres@highrr,auto,auto,transform, 0
# Scalling # Scalling
xwayland { xwayland {
@ -55,6 +55,7 @@ exec-once = hypridle
exec-once = flatpak run io.github.diegopvlk.Dosage --startup exec-once = flatpak run io.github.diegopvlk.Dosage --startup
exec-once = pactl set-sink-mute @DEFAULT_SINK@ 1 exec-once = pactl set-sink-mute @DEFAULT_SINK@ 1
exec-once = gentoo-pipewire-launcher restart exec-once = gentoo-pipewire-launcher restart
exec-once = kdeconnectd
exec-once = dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus # Only required on open-rc systems with specific login / session managers exec-once = dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus # Only required on open-rc systems with specific login / session managers
exec-once =[workspace 4 silent] youtube-music exec-once =[workspace 4 silent] youtube-music
@ -227,10 +228,11 @@ bind = $mainMod SHIFT, F, exec, qutebrowser
bind = $mainMod, W, exec, distrobox enter arch -- youtube-music bind = $mainMod, W, exec, distrobox enter arch -- youtube-music
# bind = $mainMod, P, pseudo, # dwindle # bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, N, togglesplit, bind = $mainMod, N, togglesplit,
bind = $mainMod, code:36 , focusurgentorlast # Code 36 => Enter key bind = $mainMod, code:36 , focusurgentorlast # Code 36 => Enter
bind = $mainMod SHIFT, S, exec, $screenshot -m region -o ~/Pictures/hyprshot bind = $mainMod, S, exec, $screenshot -m region -o ~/Pictures/hyprshot
bind = $mainMod SHIFT, S, exec, $screenshot -m window -o ~/Pictures/hyprshot
bind = $mainMod SHIFT, C, exec, hyprpicker -a -f hex bind = $mainMod SHIFT, C, exec, hyprpicker -a -f hex
bind = $mainMod, ESCAPE, exec, hyprlock bind = $mainMod, code:105, exec, hyprlock
bind = , F11, fullscreen, 1 bind = , F11, fullscreen, 1
bindel=, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +2db bindel=, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +2db
bindel=, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -2db bindel=, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -2db
@ -241,11 +243,14 @@ bindl =, XF86AudioNext, exec, playerctl next
bindl =, XF86AudioPrev, exec, playerctl previous bindl =, XF86AudioPrev, exec, playerctl previous
bindel=, XF86MonBrightnessUp, exec, brightnessctl set +5% bindel=, XF86MonBrightnessUp, exec, brightnessctl set +5%
bindel=, XF86MonBrightnessDown, exec, brightnessctl set 5%- bindel=, XF86MonBrightnessDown, exec, brightnessctl set 5%-
bindl = $mainMod, code:49, exec, playerctl play-pause # Code 94 => §
bindl =, switch:off:[Lid Switch], exec, hyprctl sleep bindl =, switch:off:[Lid Switch], exec, hyprctl sleep
binde = $mainMod, D, exec, makoctl dismiss binde = $mainMod, D, exec, makoctl dismiss
bind = $mainMod SHIFT, D, exec, makoctl dismiss -a bind = $mainMod SHIFT, D, exec, makoctl dismiss -a
#Move focus with mainMod + vim keys # Move focus with mainMod + vim keys
bind = $mainMod, H, movefocus, l bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u bind = $mainMod, K, movefocus, u
@ -269,6 +274,12 @@ binde = $mainMod SHIFT, I, resizeactive, 0 50
binde = $mainMod SHIFT, O, resizeactive, 0 -50 binde = $mainMod SHIFT, O, resizeactive, 0 -50
binde = $mainMod SHIFT, P, resizeactive, 50 0 binde = $mainMod SHIFT, P, resizeactive, 50 0
# Rotate screen with mainMod + Shift + r + 1-4
bind = CONTROL_ALT, 1, exec, hyprctl keyword input:touchdevice:transform 0 ; hyprctl keyword input:tablet:transform 0 ; hyprctl keyword monitor ",highres@highrr, auto, auto, transform, 0"
bind = CONTROL_ALT, 2, exec, hyprctl keyword input:touchdevice:transform 1 ; hyprctl keyword input:tablet:transform 1 ; hyprctl keyword monitor ",highres@highrr, auto, auto, transform, 1"
bind = CONTROL_ALT, 3, exec, hyprctl keyword input:touchdevice:transform 2 ; hyprctl keyword input:tablet:transform 2 ; hyprctl keyword monitor ",highres@highrr, auto, auto, transform, 2"
bind = CONTROL_ALT, 4, exec, hyprctl keyword input:touchdevice:transform 3 ; hyprctl keyword input:tablet:transform 3 ; hyprctl keyword monitor ",highres@highrr, auto, auto, transform, 3"
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
@ -304,6 +315,22 @@ bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
###############
### SUBMAPS ###
###############
bind = $mainMod, M, submap, volcontrol
submap = volcontrol
bind =, a, exec, playerctl
bindel=, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +2db
bindel=, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -2db
bindl =, XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bindl =, XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindl =, XF86AudioPlay, exec, playerctl play-pause
bindl =, XF86AudioNext, exec, playerctl next
bindl =, XF86AudioPrev, exec, playerctl previous
bind =, catchall, submap, reset
submap = reset
############################## ##############################
### WINDOWS AND WORKSPACES ### ### WINDOWS AND WORKSPACES ###
############################## ##############################

View file

@ -81,7 +81,7 @@ label {
label { label {
monitor = monitor =
text = $FPRINTMESSAGE text = $FPRINTPROMPT
text_align = center text_align = center
color = rgb(CCCCFF) color = rgb(CCCCFF)
font_size = 15 font_size = 15

View file

@ -0,0 +1,76 @@
# Use in crontab like this:
# */5 * * * * zsh -c "export $(</proc/$(pidof Hyprland)/environ tr \\0 \\n | grep -E '^DBUS_SESSION_BUS_ADDRESS=') ; source ~/.config/shellfunctions/fs_sync_offline && fs_sync_offline"
fs_sync_offline() {
local source1="filesync:/files"
local source2="$HOME/.offline_filesync"
local filter_file="$source2/.important-files.txt"
local bisync_log="$source2/.bisync_log.txt"
local notification_header="OfflineFileSync"
if timeout 2 curl shork.ch || timeout 2 curl status.shork.ch; then
else
return 1
fi
functions -T send_message # Scoping
send_message() {
echo "$1"
notify-send "$notification_header" "$1"
echo "$(date +"%Y-%m-%d %H:%M:%S"): $1" >>"$bisync_log"
echo "$output" >> "$bisync_log"
}
case $1 in
init)
rclone copyto "$source1/.important-files.txt" "$source2/.important-files.txt" \
--verbose
rclone bisync "$source1" "$source2" \
--create-empty-src-dirs \
--timeout 2s \
--filter-from "$filter_file" \
--resync \
--verbose
return 1
;;
esac
local output=$(rclone bisync "$source1" "$source2" \
--create-empty-src-dirs \
--conflict-resolve newer \
--conflict-loser num \
--timeout 2s \
--resilient \
--recover \
--filter-from "$filter_file" 2>&1)
local rclone_exit_code=$?
echo $rclone_exit_code
if [[ "$output" == *conflict* && "$output" == *home* ]]; then
# Extract the path from the colored output
local extracted_path=$(echo "$output" | sed -n 's/.*\x1b\[36m\(.*\)\x1b\[0m.*/\1/p')
# Remove ".conflict{number}" from the path
local cleaned_path=$(echo "$extracted_path" | sed 's/\.conflict[0-9]*//g')
if [[ -n "$cleaned_path" ]]; then
send_message "Conflict at $cleaned_path"
fi
fi
if [[ "$output" == *"prior lock file found"* ]]; then
send_message "Lockfile present. Not synchronising."
fi
if [[ $rclone_exit_code == 0 ]]; then
return 0
fi
if [[ "$output" == *"too many deletes"* ]]; then
send_message "Too many deletes. Not synchronising."
fi
if [[ "$output" == *"critical"* ]]; then
send_message "Critical Error. Resync required!"
fi
}

View file

@ -0,0 +1,71 @@
# Use in crontab like this:
# */5 * * * * zsh -c "export $(</proc/$(pidof Hyprland)/environ tr \\0 \\n | grep -E '^DBUS_SESSION_BUS_ADDRESS=') ; source ~/.config/shellfunctions/fs_sync_offline && fs_sync_offline"
fs_sync_offline() {
local source1="filesync:/files"
local source2="$HOME/.offline_filesync"
local filter_file="$source2/.important-files.txt"
local bisync_log="$source2/.bisync_log.txt"
local notification_header="OfflineFileSync"
if timeout 2 curl shork.ch || timeout 2 curl status.shork.ch; then
else
return 1
fi
functions -T send_message # Scoping
send_message() {
echo "$1"
notify-send "$notification_header" "$1"
echo "$(date +"%Y-%m-%d %H:%M:%S"): $1" >> "$bisync_log"
}
case $1 in
init)
rclone copyto "$source1/.important-files.txt" "$source2/.important-files.txt" \
--verbose
rclone bisync "$source1" "$source2" \
--create-empty-src-dirs \
--timeout 2s \
--filter-from "$filter_file" \
--resync \
--verbose
return 1
esac
rclone bisync "$source1" "$source2" \
--create-empty-src-dirs \
--conflict-resolve newer \
--conflict-loser num \
--timeout 2s \
--resilient \
--recover \
--filter-from "$filter_file" 2>&1 | while IFS= read -r line; do
if [[ "$line" == *conflict* && "$line" == *home* ]]; then
# Extract the path from the colored output
local extracted_path=$(echo "$line" | sed -n 's/.*\x1b\[36m\(.*\)\x1b\[0m.*/\1/p')
# Remove ".conflict{number}" from the path
local cleaned_path=$(echo "$extracted_path" | sed 's/\.conflict[0-9]*//g')
if [[ -n "$cleaned_path" ]]; then
send_message "Conflict at $cleaned_path"
fi
fi
if [[ "$line" == *"prior lock file found"* ]]; then
send_message "Lockfile present. Not synchronising."
fi
if [[ "$line" == *"too many deletes"* ]]; then
send_message "Too many deletes. Not synchronising."
fi
if [[ "$line" == *"critical"* ]]; then
send_message "Critical Error. Resync required!"
fi
done
}

14
.zshrc
View file

@ -105,6 +105,7 @@ source $ZSH/oh-my-zsh.sh
alias dotfiles='/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME' alias dotfiles='/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME'
fastfetch --config examples/16 fastfetch --config examples/16
# fastfetch --config examples/16 --kitty-direct ~/Pictures/shork.png --logo-width 25 --logo-height 10
# export XDG_CURRENT_DESKTOP=sway # export XDG_CURRENT_DESKTOP=sway
alias ledger-shell="ledger-agent ~/.ssh/ledger.conf -s -v" alias ledger-shell="ledger-agent ~/.ssh/ledger.conf -s -v"
@ -112,12 +113,23 @@ alias dcd="docker compose down"
alias dcu='UID="$(id -u)" GID="$(id -g)" docker compose up' alias dcu='UID="$(id -u)" GID="$(id -g)" docker compose up'
alias dcud='UID="$(id -u)" GID="$(id -g)" docker compose up -d' alias dcud='UID="$(id -u)" GID="$(id -g)" docker compose up -d'
alias dbounce='docker compose down && dcud' alias dbounce='docker compose down && dcud'
alias tldr='tldr -L en'
alias needssh="git remote set-url origin \$(git remote get-url origin | sed -e 's|https://github.com/|git@github.com:|' -e 's|/$||' -e 's|\.git$||')" alias needssh="git remote set-url origin \$(git remote get-url origin | sed -e 's|https://github.com/|git@github.com:|' -e 's|/$||' -e 's|\.git$||')"
alias icat="kitten icat --background white" alias icat="kitten icat --background white"
alias marptohtml="npx @marp-team/marp-cli@latest --theme-set themes/mytheme.css - template.md -o index.html" alias marptohtml="npx @marp-team/marp-cli@latest --html --theme-set themes/mytheme.css - template.md -o index.html"
alias output-on-all-devices="pactl load-module module-combine-sink"
alias remove-exif="exiftool -all= -overwrite_original"
alias fs="sudo rc-service filesync"
alias fs-sync='kill -SIGHUP "$(cat /run/filesync.pid)"'
alias fs-sync-offline='rclone bisync filesync:/files ~/.offline_filesync --conflict-resolve newer --conflict-loser num --timeout 2s --filter-from ~/.offline_filesync/.important-files.txt 2>&1 | grep conflict | grep home | sed -n "s/.*\x1b\[36m\([^[:cntrl:]]*\)\x1b\[0m.*/\1/p" | while read -r conflict; do notify-send "Conflict at $conflict"; echo "Conflict at $conflict" >> ~/.offline_filesync/.conflict_log.txt; done'
alias fs-sync-offline-init='cd ~; rm -rf .offline_filesync; mkdir .offline_filesync; rclone copyto filesync:/files/.important-files.txt ~/.offline_filesync/.important-files.txt --verbose && rclone bisync filesync:/files ~/.offline_filesync --conflict-resolve newer --conflict-loser num --timeout 2s --filter-from ~/.offline_filesync/.important-files.txt --verbose --resync'
source ~/.config/shellfunctions/fs_sync_offline.sh
# Created by `pipx` on 2024-11-22 13:27:16 # Created by `pipx` on 2024-11-22 13:27:16
export PATH="$PATH:/home/melody/.local/bin" export PATH="$PATH:/home/melody/.local/bin"
eval "$(zoxide init --cmd cd zsh)" eval "$(zoxide init --cmd cd zsh)"
eval "$(starship init zsh)" eval "$(starship init zsh)"
source <(fzf --zsh)
eval $(thefuck --alias)