├── Github ├── 1.png └── 2.png ├── config ├── fastfetch │ ├── Img │ │ ├── lain.jpg │ │ ├── buh │ │ ├── frieren │ │ ├── konataSmirk │ │ ├── konataSmirkBuh │ │ ├── paimon_hehe │ │ ├── lain │ │ ├── gojoCat │ │ ├── konataThumb │ │ └── lainDance │ ├── Images │ │ ├── lain.jpg │ │ └── miku_38.jpg │ ├── Ascii-Art │ │ ├── buh │ │ ├── frieren │ │ ├── konataSmirk │ │ ├── konataSmirkBuh │ │ ├── paimon_hehe │ │ ├── lain │ │ ├── gojoCat │ │ ├── konataThumb │ │ └── lainDance │ ├── Alt │ │ ├── config-simple.jsonc │ │ └── config-default.jsonc │ └── config.jsonc ├── swayosd │ ├── backend.toml │ ├── config.toml │ └── style.css ├── wofi │ ├── config │ └── style.css ├── hypr │ ├── hypridle.conf │ ├── hyprlock.conf │ └── hyprland.conf ├── clipse │ ├── custom_theme.json │ └── config.json ├── wlogout │ ├── layout │ └── style.css ├── swaync │ ├── config.json │ └── style.css ├── starship.toml ├── waybar │ ├── style.css │ └── config.jsonc └── foot │ └── foot.ini ├── Scripts ├── Waybar │ ├── wifi_status.sh │ ├── bluetooth_status.sh │ ├── swaync-icon.sh │ └── force_split_output-waybar.sh ├── Hyprlock │ ├── volumeInfo.sh │ ├── weather.sh │ └── batteryInfoHyprlock.sh ├── Swaync │ ├── eth0_toggle-swaync.sh │ ├── idle_inhibitor-swaync.sh │ ├── wifi_toggle-swaync.sh │ └── bluetooth_toggle-swaync.sh ├── Hyprland │ ├── layout_toggle.sh │ ├── force_split_toggle.sh │ ├── touchpad_toggle.sh │ ├── powermode.sh │ └── devwatch.sh ├── pybg.sh └── pypv.sh └── README.md /Github/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fleshguard/hyprfiles/HEAD/Github/1.png -------------------------------------------------------------------------------- /Github/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fleshguard/hyprfiles/HEAD/Github/2.png -------------------------------------------------------------------------------- /config/fastfetch/Img/lain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fleshguard/hyprfiles/HEAD/config/fastfetch/Img/lain.jpg -------------------------------------------------------------------------------- /config/fastfetch/Images/lain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fleshguard/hyprfiles/HEAD/config/fastfetch/Images/lain.jpg -------------------------------------------------------------------------------- /config/fastfetch/Images/miku_38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fleshguard/hyprfiles/HEAD/config/fastfetch/Images/miku_38.jpg -------------------------------------------------------------------------------- /config/fastfetch/Img/buh: -------------------------------------------------------------------------------- 1 | ____ _ _ _ _ 2 | | __ )| | | | | | | 3 | | _ \| | | | |_| | 4 | | |_) | |_| | _ | 5 | |____/ \___/|_| |_| 6 | 7 | -------------------------------------------------------------------------------- /config/swayosd/backend.toml: -------------------------------------------------------------------------------- 1 | [input] 2 | ## completely ignore the caps lock key (useful if it's rebound to something else like escape) 3 | # ignore_caps_lock_key = false 4 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/buh: -------------------------------------------------------------------------------- 1 | ____ _ _ _ _ 2 | | __ )| | | | | | | 3 | | _ \| | | | |_| | 4 | | |_) | |_| | _ | 5 | |____/ \___/|_| |_| 6 | 7 | -------------------------------------------------------------------------------- /Scripts/Waybar/wifi_status.sh: -------------------------------------------------------------------------------- 1 | wifi_status=$(rfkill list all | awk '/phy0/{f=1} f&&/Soft blocked/{print $3; exit}') 2 | 3 | if [[ "$wifi_status" == 'yes' ]]; then 4 | echo ' 󰖪 ' 5 | else 6 | echo ' 󰖩 ' 7 | fi 8 | -------------------------------------------------------------------------------- /Scripts/Waybar/bluetooth_status.sh: -------------------------------------------------------------------------------- 1 | bluetooth_status=$(rfkill list all | awk '/hci0/{f=1} f&&/Soft blocked/{print $3; exit}') 2 | 3 | if [[ "$bluetooth_status" == 'yes' ]]; then 4 | echo ' 󰂲 ' 5 | else 6 | echo '  ' 7 | fi 8 | -------------------------------------------------------------------------------- /Scripts/Hyprlock/volumeInfo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | volume=$(pamixer --get-volume) 4 | volumeIfMuted=$(pamixer --get-mute) 5 | 6 | if [ "$volumeIfMuted" = "true" ]; then 7 | icon=" " 8 | else 9 | icon="" 10 | fi 11 | 12 | echo "$icon" 13 | -------------------------------------------------------------------------------- /config/wofi/config: -------------------------------------------------------------------------------- 1 | xoffset=5 2 | yoffset=5 3 | 4 | height=1080 5 | width=500 6 | 7 | key_up=Ctrl-k 8 | key_down=Ctrl-j 9 | key_left=Ctrl-h 10 | key_right=Ctrl-l 11 | 12 | prompt= Applications ... 13 | allow_images=true 14 | image_size=28 15 | -------------------------------------------------------------------------------- /Scripts/Swaync/eth0_toggle-swaync.sh: -------------------------------------------------------------------------------- 1 | eth0_state=$(nmcli device show eth0 | awk -F': +' '/GENERAL.STATE/ {print $2}') 2 | 3 | if [[ "$eth0_state" == '100 (connected)' ]]; then 4 | nmcli device down eth0 5 | echo 'eth0 down' 6 | else 7 | nmcli device up eth0 8 | echo 'eth0 up' 9 | fi 10 | -------------------------------------------------------------------------------- /Scripts/Swaync/idle_inhibitor-swaync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | hypridle_status=$(pidof hypridle) 4 | 5 | if [[ "$hypridle_status" == "" ]]; then 6 | pkill -x hypridle || hyprctl dispatch exec hypridle 7 | echo 'dispatched hypridle' 8 | else 9 | pkill -x hypridle 10 | echo 'killed hypridle' 11 | fi 12 | -------------------------------------------------------------------------------- /Scripts/Swaync/wifi_toggle-swaync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | wlan_status=$(rfkill list all | awk '/phy0/{f=1} f&&/Soft blocked/{print $3; exit}') 4 | 5 | if [[ "$wlan_status" == 'no' ]]; then 6 | rfkill block wlan 7 | echo 'blocked wlan' 8 | else 9 | rfkill unblock wlan 10 | echo 'unblocked wlan' 11 | fi 12 | -------------------------------------------------------------------------------- /Scripts/Hyprlock/weather.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | weather=$(echo "It is currently $(curl -s 'wttr.in?format=%t' | tr -d '+') and $(curl -s 'wttr.in?format=%C')") 4 | 5 | if echo "$weather" | grep -q -E "°C|°F" ; then 6 | echo "$weather" 7 | else 8 | echo "󰖐 󰖝 Weather data unavailable." 9 | fi 10 | -------------------------------------------------------------------------------- /Scripts/Swaync/bluetooth_toggle-swaync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bt_status=$(rfkill list all | awk '/hci0/{f=1} f&&/Soft blocked/{print $3; exit}') 4 | 5 | if [[ "$bt_status" == 'no' ]]; then 6 | rfkill block bluetooth 7 | echo 'blocked bluetooth' 8 | else 9 | rfkill unblock bluetooth 10 | echo 'unblocked bluetooth' 11 | fi 12 | -------------------------------------------------------------------------------- /config/fastfetch/Img/frieren: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⢀⡴⢾⣶⣴⠚⣫⠏⠉⠉⠛⠛⢭⡓⢶⣶⠶⣦⡀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⣰⠋⡀⣠⠟⢁⣾⠇⠀⣀⣷⠀⠀⠓⣝⠂⠙⣆⢄⢻⡞⢢⠀⠀⠀ 3 | ⠀⠀⠀⠀⢠⡇⢸⢡⠃⢠⡞⠁⠀⣰⡟⠉⢦⣄⠀⠈⢆⠀⢻⣾⡄⢧⢸⠀⠀⠀ 4 | ⠀⠀⠀⠀⢸⠀⡇⡌⠀⡞⠀⢀⣴⡋⠀⠀⠀⣙⣷⡀⠘⡄⠘⣿⣧⢸⣼⣥⠀⠀ 5 | ⣀⣀⣀⣀⣞⣰⠁⡇⠀⣧⢴⡛⠛⠁⠀⠀⠀⠉⠉⡙⡦⡇⠀⣿⣸⣼⣿⣇⣀⣀ 6 | ⠳⢽⣷⠺⡟⡿⣯⡇⠰⣧⢩⣭⣥⠀⠀⠀⠀⢠⣭⣥⠁⡀⠀⣿⡟⣴⠶⢁⡨⠊ 7 | ⠀⠀⠉⢳⢦⣅⠘⣿⣄⢿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⢀⣏⣳⡇⢴⡞⠁⠀ 8 | ⠀⠀⠀⣼⢸⡅⢹⣿⣿⣾⣟⠀⠀⠠⣀⢄⡠⠀⠀⠠⡚⣿⡿⣿⢻⠁⢹⣷⡀⠀ 9 | ⠀⠀⠸⡏⠸⡇⢼⣿⡿⠟⠛⠓⣦⣄⣀⣀⣀⣀⡤⠴⠿⢿⡟⠛⠺⣦⣬⣗⠀⠀ 10 | ⠀⠀⢰⡇⠀⡇⠸⡏⠀⠀⢰⠋⠙⠛⠛⠉⠉⢹⠀⠀⠀⠀⡇⠀⠀⣿⣿⣿⣟⡃ 11 | ⠀⡐⣾⠀⡀⢹⠀⣿⣄⠀⢸⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⢠⣇⠀⠀⣿⣿⣿⣛⡃ 12 | ⠀⣾⣿⠀⡇⠘⡄⢸⣿⠆⠈⡇⠀⠀⠀⠀⠈⢉⠃⠀⣰⡾⠻⠃⢰⣿⣿⣛⡋⠀ 13 | ⠀⣿⣿⡆⢷⠀⢧⠈⣿⠤⠤⣇⠀⠀⠀⠀⢀⣸⣠⢾⠟⠓⡶⢤⣾⣿⣿⣟⣓⠀ 14 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/frieren: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⢀⡴⢾⣶⣴⠚⣫⠏⠉⠉⠛⠛⢭⡓⢶⣶⠶⣦⡀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⣰⠋⡀⣠⠟⢁⣾⠇⠀⣀⣷⠀⠀⠓⣝⠂⠙⣆⢄⢻⡞⢢⠀⠀⠀ 3 | ⠀⠀⠀⠀⢠⡇⢸⢡⠃⢠⡞⠁⠀⣰⡟⠉⢦⣄⠀⠈⢆⠀⢻⣾⡄⢧⢸⠀⠀⠀ 4 | ⠀⠀⠀⠀⢸⠀⡇⡌⠀⡞⠀⢀⣴⡋⠀⠀⠀⣙⣷⡀⠘⡄⠘⣿⣧⢸⣼⣥⠀⠀ 5 | ⣀⣀⣀⣀⣞⣰⠁⡇⠀⣧⢴⡛⠛⠁⠀⠀⠀⠉⠉⡙⡦⡇⠀⣿⣸⣼⣿⣇⣀⣀ 6 | ⠳⢽⣷⠺⡟⡿⣯⡇⠰⣧⢩⣭⣥⠀⠀⠀⠀⢠⣭⣥⠁⡀⠀⣿⡟⣴⠶⢁⡨⠊ 7 | ⠀⠀⠉⢳⢦⣅⠘⣿⣄⢿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⢀⣏⣳⡇⢴⡞⠁⠀ 8 | ⠀⠀⠀⣼⢸⡅⢹⣿⣿⣾⣟⠀⠀⠠⣀⢄⡠⠀⠀⠠⡚⣿⡿⣿⢻⠁⢹⣷⡀⠀ 9 | ⠀⠀⠸⡏⠸⡇⢼⣿⡿⠟⠛⠓⣦⣄⣀⣀⣀⣀⡤⠴⠿⢿⡟⠛⠺⣦⣬⣗⠀⠀ 10 | ⠀⠀⢰⡇⠀⡇⠸⡏⠀⠀⢰⠋⠙⠛⠛⠉⠉⢹⠀⠀⠀⠀⡇⠀⠀⣿⣿⣿⣟⡃ 11 | ⠀⡐⣾⠀⡀⢹⠀⣿⣄⠀⢸⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⢠⣇⠀⠀⣿⣿⣿⣛⡃ 12 | ⠀⣾⣿⠀⡇⠘⡄⢸⣿⠆⠈⡇⠀⠀⠀⠀⠈⢉⠃⠀⣰⡾⠻⠃⢰⣿⣿⣛⡋⠀ 13 | ⠀⣿⣿⡆⢷⠀⢧⠈⣿⠤⠤⣇⠀⠀⠀⠀⢀⣸⣠⢾⠟⠓⡶⢤⣾⣿⣿⣟⣓⠀ 14 | -------------------------------------------------------------------------------- /Scripts/Waybar/swaync-icon.sh: -------------------------------------------------------------------------------- 1 | swayncNoti=$(swaync-client --count) 2 | swayncDnd=$(swaync-client --get-dnd) 3 | 4 | function indicator { 5 | if [[ "$swayncNoti" == 0 ]];then 6 | echo "󰂚" 7 | else 8 | echo "󱅫" 9 | fi 10 | } 11 | 12 | if [[ "$swayncDnd" == 'true' ]]; then 13 | echo "󰂛" 14 | else 15 | icon=$(indicator) 16 | echo "$icon $swayncNoti" 17 | fi 18 | -------------------------------------------------------------------------------- /config/fastfetch/Img/konataSmirk: -------------------------------------------------------------------------------- 1 | ⠀⠀⣸⣾⡗⡏⠉⣗⠿⡆⠀⠀⢈⠀⣆⡀⠀⠀⠀⠀⠈⠂⡀⠀⢸⠀⠀⠀⠁⠀ 2 | ⠀⢠⡟⠀⡇⣂⠠⠼⣦⢳⠀⠀⢸⢰⠄⠀⠀⠀⠀⠀⠀⠀⠙⣤⠀⢆⠀⠀⠀⠀ 3 | ⠀⣸⠀⠒⡇⠀⠀⠀⢹⢯⢇⠀⠘⡼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⡈⢆⠀⠀⠀ 4 | ⢀⠆⠀⠀⢠⠀⠀⠀⠀⠳⣫⠂⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢎⡆⠀⠀ 5 | ⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀⠙⠧⠀⢰⠀⠀⠀⢐⣂⣀⣤⣤⣤⣤⣤⣤⣤⡍⠄⠀ 6 | ⢓⢴⠀⠀⠀⡀⣀⣀⠄⠀⠀⠈⢑⣄⡆⠀⠀⠸⠿⠿⠿⣛⡻⢿⣿⠟⡟⠀⢠⡀ 7 | ⡿⠸⣄⣮⣷⣿⣿⣿⡆⠀⠀⠀⠀⠙⢿⡀⠀⠀⠀⡀⠀⠿⠷⠾⠶⠞⠚⣀⠨⣣ 8 | ⣷⡎⢏⢿⠡⣬⣝⠯⠇⠐⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠐⠘⠈⠀⠀⠉⠀⠘ 9 | ⣟⡇⢺⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂ 10 | ⣿⡇⣸⠀⠀⠀⠀⠀⠀⠀⣀⡀⠄⠤⠤⠄⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠ 11 | ⣿⠃⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢠ 12 | ⣇⠀⡿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼ 13 | ⠱⡀⡇⡏⢷⢤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢠⣴⣧⠏ 14 | ⠀⠐⣇⡇⣶⢀⠀⠈⣗⠖⡤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠄⠂⠀⢳⠀⣼⠀ 15 | ⠀⠀⠘⢱⡏⠀⣰⠀⡇⠠⣇⠀⡀⠉⣗⣒⡶⠂⠀⡆⠁⠀⠀⠀⢀⠄⠚⠁⡖⣠ 16 | -------------------------------------------------------------------------------- /Scripts/Hyprland/layout_toggle.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | current_layout=$(hyprctl getoption general:layout | grep -oP '(?<=str: )\w+') 4 | 5 | if [[ "$current_layout" == "master" ]]; then 6 | hyprctl keyword general:layout "dwindle" 7 | notify-send -t 750 -h boolean:transient:true \ 8 | -h string:x-canonical-private-synchronous:layout 'dwindle' 9 | else 10 | hyprctl keyword general:layout "master" 11 | notify-send -t 750 -h boolean:transient:true \ 12 | -h string:x-canonical-private-synchronous:layout 'master' 13 | fi 14 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/konataSmirk: -------------------------------------------------------------------------------- 1 | ⠀⠀⣸⣾⡗⡏⠉⣗⠿⡆⠀⠀⢈⠀⣆⡀⠀⠀⠀⠀⠈⠂⡀⠀⢸⠀⠀⠀⠁⠀ 2 | ⠀⢠⡟⠀⡇⣂⠠⠼⣦⢳⠀⠀⢸⢰⠄⠀⠀⠀⠀⠀⠀⠀⠙⣤⠀⢆⠀⠀⠀⠀ 3 | ⠀⣸⠀⠒⡇⠀⠀⠀⢹⢯⢇⠀⠘⡼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⡈⢆⠀⠀⠀ 4 | ⢀⠆⠀⠀⢠⠀⠀⠀⠀⠳⣫⠂⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢎⡆⠀⠀ 5 | ⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀⠙⠧⠀⢰⠀⠀⠀⢐⣂⣀⣤⣤⣤⣤⣤⣤⣤⡍⠄⠀ 6 | ⢓⢴⠀⠀⠀⡀⣀⣀⠄⠀⠀⠈⢑⣄⡆⠀⠀⠸⠿⠿⠿⣛⡻⢿⣿⠟⡟⠀⢠⡀ 7 | ⡿⠸⣄⣮⣷⣿⣿⣿⡆⠀⠀⠀⠀⠙⢿⡀⠀⠀⠀⡀⠀⠿⠷⠾⠶⠞⠚⣀⠨⣣ 8 | ⣷⡎⢏⢿⠡⣬⣝⠯⠇⠐⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠐⠘⠈⠀⠀⠉⠀⠘ 9 | ⣟⡇⢺⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂ 10 | ⣿⡇⣸⠀⠀⠀⠀⠀⠀⠀⣀⡀⠄⠤⠤⠄⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠ 11 | ⣿⠃⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢠ 12 | ⣇⠀⡿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼ 13 | ⠱⡀⡇⡏⢷⢤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢠⣴⣧⠏ 14 | ⠀⠐⣇⡇⣶⢀⠀⠈⣗⠖⡤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠄⠂⠀⢳⠀⣼⠀ 15 | ⠀⠀⠘⢱⡏⠀⣰⠀⡇⠠⣇⠀⡀⠉⣗⣒⡶⠂⠀⡆⠁⠀⠀⠀⢀⠄⠚⠁⡖⣠ 16 | -------------------------------------------------------------------------------- /config/swayosd/config.toml: -------------------------------------------------------------------------------- 1 | [server] 2 | ## style file for the OSD 3 | style = "/home/spacerat/.config/swayosd/style.css" 4 | 5 | ## on which height to show the OSD 6 | top_margin = 0.05 7 | 8 | ## The maximum volume that can be reached in % 9 | max_volume = 120 10 | 11 | ## show percentage on the right of the OSD 12 | show_percentage = true 13 | 14 | ## set format for the media player OSD 15 | playerctl_format = "{artist} - {title}" 16 | ## Available values: 17 | ## artist, albumArtist, title, album, trackNumber, discNumber, autoRating 18 | 19 | [client] 20 | -------------------------------------------------------------------------------- /Scripts/pybg.sh: -------------------------------------------------------------------------------- 1 | wallpaper_path="$1" 2 | 3 | if [[ -f "$wallpaper_path" ]]; then 4 | pkill -x swaybg 5 | swaybg -o '*' -m fill -i "$wallpaper_path" & disown 6 | 7 | wal -c 8 | wal -n -t -i $wallpaper_path 9 | 10 | echo -e "\nswaync-client --reload-css" 11 | swaync-client --reload-css 12 | 13 | echo -e "\nhyprctl reload " 14 | hyprctl reload 15 | 16 | cat ~/.cache/wal/sequences 17 | 18 | cp -r $wallpaper_path ~/Pictures/Wallpapers/PyWal/pywallpaper 19 | 20 | echo -e "\nusing \e[1m'$wallpaper_path'\e[0m ..." 21 | else 22 | echo -e "\e[1mInvalid path, or none given.\e[0m" 23 | exit 1 24 | fi 25 | -------------------------------------------------------------------------------- /config/fastfetch/Img/konataSmirkBuh: -------------------------------------------------------------------------------- 1 | ⠀⠀⣸⣾⡗⡏⠉⣗⠿⡆⠀⠀⢈⠀⣆⡀⠀⠀⠀⠀⠈⠂⡀⠀⢸⠀⠀⠀⠁⠀ 2 | ⠀⢠⡟⠀⡇⣂⠠⠼⣦⢳⠀⠀⢸⢰⠄⠀⠀⠀⠀⠀⠀⠀⠙⣤⠀⢆⠀⠀⠀⠀ 3 | ⠀⣸⠀⠒⡇⠀⠀⠀⢹⢯⢇⠀⠘⡼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⡈⢆⠀⠀⠀ 4 | ⢀⠆⠀⠀⢠⠀⠀⠀⠀⠳⣫⠂⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢎⡆⠀⠀ 5 | ⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀⠙⠧⠀⢰⠀⠀⠀⢐⣂⣀⣤⣤⣤⣤⣤⣤⣤⡍⠄⠀ 6 | ⢓⢴⠀⠀⠀⡀⣀⣀⠄⠀⠀⠈⢑⣄⡆⠀⠀⠸⠿⠿⠿⣛⡻⢿⣿⠟⡟⠀⢠⡀ 7 | ⡿⠸⣄⣮⣷⣿⣿⣿⡆⠀⠀⠀⠀⠙⢿⡀⠀⠀⠀⡀⠀⠿⠷⠾⠶⠞⠚⣀⠨⣣ 8 | ⣷⡎⢏⢿⠡⣬⣝⠯⠇⠐⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠐⠘⠈⠀⠀⠉⠀⠘ 9 | ⣟⡇⢺⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂ 10 | ⣿⡇⣸⠀⠀⠀⠀⠀⠀⠀⣀⡀⠄⠤⠤⠄⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠ 11 | ⣿⠃⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢠ 12 | ⣇⠀⡿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼ 13 | ⠱⡀⡇⡏⢷⢤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢠⣴⣧⠏ 14 | ⠀⠐⣇⡇⣶⢀⠀⠈⣗⠖⡤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠄⠂⠀⢳⠀⣼⠀ 15 | ⠀⠀⠘⢱⡏⠀⣰⠀⡇⠠⣇⠀⡀⠉⣗⣒⡶⠂⠀⡆⠁⠀⠀⠀⢀⠄⠚⠁⡖⣠ 16 | ____ _ _ _ _ 17 | | __ )| | | | | | | 18 | | _ \| | | | |_| | 19 | | |_) | |_| | _ | 20 | |____/ \___/|_| |_| 21 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/konataSmirkBuh: -------------------------------------------------------------------------------- 1 | ⠀⠀⣸⣾⡗⡏⠉⣗⠿⡆⠀⠀⢈⠀⣆⡀⠀⠀⠀⠀⠈⠂⡀⠀⢸⠀⠀⠀⠁⠀ 2 | ⠀⢠⡟⠀⡇⣂⠠⠼⣦⢳⠀⠀⢸⢰⠄⠀⠀⠀⠀⠀⠀⠀⠙⣤⠀⢆⠀⠀⠀⠀ 3 | ⠀⣸⠀⠒⡇⠀⠀⠀⢹⢯⢇⠀⠘⡼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⡈⢆⠀⠀⠀ 4 | ⢀⠆⠀⠀⢠⠀⠀⠀⠀⠳⣫⠂⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢎⡆⠀⠀ 5 | ⡜⡇⠀⠀⠀⠀⠀⠀⠀⠀⠙⠧⠀⢰⠀⠀⠀⢐⣂⣀⣤⣤⣤⣤⣤⣤⣤⡍⠄⠀ 6 | ⢓⢴⠀⠀⠀⡀⣀⣀⠄⠀⠀⠈⢑⣄⡆⠀⠀⠸⠿⠿⠿⣛⡻⢿⣿⠟⡟⠀⢠⡀ 7 | ⡿⠸⣄⣮⣷⣿⣿⣿⡆⠀⠀⠀⠀⠙⢿⡀⠀⠀⠀⡀⠀⠿⠷⠾⠶⠞⠚⣀⠨⣣ 8 | ⣷⡎⢏⢿⠡⣬⣝⠯⠇⠐⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠐⠘⠈⠀⠀⠉⠀⠘ 9 | ⣟⡇⢺⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂ 10 | ⣿⡇⣸⠀⠀⠀⠀⠀⠀⠀⣀⡀⠄⠤⠤⠄⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠ 11 | ⣿⠃⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢠ 12 | ⣇⠀⡿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼ 13 | ⠱⡀⡇⡏⢷⢤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢠⣴⣧⠏ 14 | ⠀⠐⣇⡇⣶⢀⠀⠈⣗⠖⡤⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⠄⠂⠀⢳⠀⣼⠀ 15 | ⠀⠀⠘⢱⡏⠀⣰⠀⡇⠠⣇⠀⡀⠉⣗⣒⡶⠂⠀⡆⠁⠀⠀⠀⢀⠄⠚⠁⡖⣠ 16 | ____ _ _ _ _ 17 | | __ )| | | | | | | 18 | | _ \| | | | |_| | 19 | | |_) | |_| | _ | 20 | |____/ \___/|_| |_| 21 | -------------------------------------------------------------------------------- /config/hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | general { 2 | lock_cmd = pidof hyprlock || hyprlock 3 | unlock_cmd = 4 | before_sleep_cmd = loginctl lock-session 5 | after_sleep_cmd = hyprctl dispatch dpms on 6 | ignore_dbus_inhibit = false 7 | ignore_systemd_inhibit = false 8 | ignore_wayland_inhibit = false 9 | } 10 | 11 | listener { 12 | timeout = 140 13 | on-timeout = brightnessctl set 7% 14 | on-resume = brightnessctl set 60% 15 | } 16 | 17 | listener { 18 | timeout = 150 19 | on-timeout = playerctl --all-players pause ; loginctl lock-session 20 | } 21 | 22 | listener { 23 | #unlock_cmd = 24 | timeout = 210 25 | on-timeout = hyprctl dispatch dpms off && systemctl suspend 26 | on-resume = hyprctl dispatch dpms on 27 | } 28 | 29 | -------------------------------------------------------------------------------- /Scripts/Hyprland/force_split_toggle.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | current_int=$(hyprctl getoption dwindle:force_split | awk '/int:/ {print $2}') 4 | 5 | if [[ "$current_int" == 0 ]]; then 6 | hyprctl 'keyword dwindle:force_split 1' 7 | notify-send -t 750 -h boolean:transient:true \ 8 | -h string:x-canonical-private-synchronous:splitint 'Dwindle: Left' 9 | elif [[ "$current_int" == 1 ]]; then 10 | hyprctl 'keyword dwindle:force_split 2' 11 | notify-send -t 750 -h boolean:transient:true \ 12 | -h string:x-canonical-private-synchronous:splitint 'Dwindle: Right' 13 | else 14 | hyprctl 'keyword dwindle:force_split 0' 15 | notify-send -t 750 -h boolean:transient:true \ 16 | -h string:x-canonical-private-synchronous:splitint 'Dwindle: Follows mouse' 17 | 18 | fi 19 | -------------------------------------------------------------------------------- /Scripts/pypv.sh: -------------------------------------------------------------------------------- 1 | wallpaper_path="$1" 2 | 3 | if [[ -f "$wallpaper_path" ]]; then 4 | echo -e "\nExtracting frame from \e[1m'$wallpaper_path'\e[0m ... \n" 5 | ffmpeg -i $wallpaper_path -vf "select=eq(n\,0)" -vframes 1 ~/Pictures/Wallpapers/PyWal/pypv_colors.png 6 | 7 | pkill -x mpvpaper ; pkill -x swaybg 8 | mpvpaper '*' -vsp -o "no-audio loop" "$wallpaper_path" & disown 9 | 10 | wal -c 11 | wal -n -t -i ~/Pictures/Wallpapers/PyWal/pypv_colors.png 12 | 13 | echo -e "\nswaync-client --reload-css" 14 | swaync-client --reload-css 15 | 16 | echo -e "\nhyprctl reload " 17 | hyprctl reload 18 | 19 | cat ~/.cache/wal/sequences 20 | 21 | ln -ifvs "$wallpaper_path" ~/Pictures/Wallpapers/PyWal/pypv # For manual wallpaper setting 22 | else 23 | echo -e "\e[1mInvalid path, or none given.\e[0m" 24 | exit 1 25 | fi 26 | -------------------------------------------------------------------------------- /Scripts/Hyprlock/batteryInfoHyprlock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | batteryPerc=$(cat /sys/class/power_supply/BAT1/capacity) 4 | batteryStatus=$(cat /sys/class/power_supply/BAT1/status) 5 | 6 | discharging() { 7 | case $batteryPerc in 8 | 100) 9 | icon="󰁹" 10 | ;; 11 | 9[0-9]) 12 | icon="󰂂" 13 | ;; 14 | 8[0-9]) 15 | icon="󰂁" 16 | ;; 17 | 6[0-9]|7[0-9]) 18 | icon="󰂀" 19 | ;; 20 | 4[0-9]|5[0-9]) 21 | icon="󰁾" 22 | ;; 23 | [1-3][0-9]) 24 | icon="󰁼" 25 | ;; 26 | [0-9]) 27 | icon="󰂃" 28 | ;; 29 | *) 30 | icon="?" 31 | ;; 32 | esac 33 | } 34 | 35 | if [ "$batteryStatus" = "Charging" ] ; then 36 | icon="󰂄" 37 | else 38 | discharging 39 | fi 40 | 41 | echo "$icon $batteryPerc%" 42 | -------------------------------------------------------------------------------- /config/clipse/custom_theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "useCustomTheme": true, 3 | "TitleFore": "#d9e0ee", 4 | "TitleBack": "#1e1e2e", 5 | "TitleInfo": "#89b4fa", 6 | "NormalTitle": "#cba6f7", 7 | "DimmedTitle": "#6c7086", 8 | "SelectedTitle": "#cba6f7", 9 | "NormalDesc": "#bac2de", 10 | "DimmedDesc": "#45475a", 11 | "SelectedDesc": "#cba6f7", 12 | "StatusMsg": "#a6e3a1", 13 | "PinIndicatorColor": "#f9e2af", 14 | "SelectedBorder": "#b4befe", 15 | "SelectedDescBorder": "#b4befe", 16 | "FilteredMatch": "#f5e0dc", 17 | "FilterPrompt": "#a6e3a1", 18 | "FilterInfo": "#89b4fa", 19 | "FilterText": "#f5e0dc", 20 | "FilterCursor": "#f9e2af", 21 | "HelpKey": "#d9e0ee", 22 | "HelpDesc": "#6c7086", 23 | "PageActiveDot": "#b4befe", 24 | "PageInactiveDot": "#313244", 25 | "DividerDot": "#b4befe", 26 | "PreviewedText": "#d9e0ee", 27 | "PreviewBorder": "#b4befe" 28 | } 29 | -------------------------------------------------------------------------------- /config/wlogout/layout: -------------------------------------------------------------------------------- 1 | { 2 | "label" : "shutdown", 3 | "action" : "systemctl poweroff", 4 | "text" : "Shutdown", 5 | "keybind" : "s" 6 | } 7 | { 8 | "label" : "reboot", 9 | "action" : "systemctl reboot", 10 | "text" : "Reboot", 11 | "keybind" : "r" 12 | } 13 | { 14 | "label" : "logout", 15 | "action" : "loginctl kill-session $XDG_SESSION_ID", 16 | "text" : "Logout", 17 | "keybind" : "e" 18 | } 19 | { 20 | "label" : "hibernate", 21 | "action" : "systemctl hibernate", 22 | "text" : "Hibernate", 23 | "keybind" : "h" 24 | } 25 | { 26 | "label" : "lock", 27 | "action" : "playerctl --all-players pause && pidof hyprlock || hyprlock", 28 | "text" : "Lock", 29 | "keybind" : "l" 30 | } 31 | { 32 | "text": "Suspend", 33 | "label" : "suspend", 34 | "action" : "systemctl suspend", 35 | "keybind" : "u" 36 | } 37 | -------------------------------------------------------------------------------- /config/swayosd/style.css: -------------------------------------------------------------------------------- 1 | @import url("/home/spacerat/.cache/wal/colors-waybar.css"); 2 | 3 | window#osd { 4 | padding: 5px 10px 5px; 5 | border-radius: 4px; 6 | border: 1.0px solid alpha(@foreground, 0.80); 7 | background: alpha(@background, 0.80); 8 | 9 | #container { 10 | margin: 16px; 11 | } 12 | 13 | image, 14 | label { 15 | color: @theme_fg_color; 16 | } 17 | 18 | progressbar:disabled, 19 | image:enabled { 20 | opacity: 0.5; 21 | } 22 | 23 | progressbar { 24 | min-height: 6px; 25 | border-radius: 100%; 26 | background: transparent; 27 | border: none; 28 | } 29 | trough { 30 | min-height: inherit; 31 | border-radius: inherit; 32 | border: none; 33 | /*background: #{"alpha(@theme_fg_color, 0.5)"};*/ 34 | } 35 | progress { 36 | min-height: inherit; 37 | border-radius: inherit; 38 | border: none; 39 | background: @theme_fg_color; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /config/clipse/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "allowDuplicates": false, 3 | "historyFile": "clipboard_history.json", 4 | "maxHistory": 100, 5 | "logFile": "clipse.log", 6 | "themeFile": "custom_theme.json", 7 | "tempDir": "tmp_files", 8 | "keyBindings": { 9 | "choose": "enter", 10 | "clearSelected": "S", 11 | "down": "down", 12 | "end": "end", 13 | "filter": "/", 14 | "home": "home", 15 | "more": "?", 16 | "nextPage": "right", 17 | "prevPage": "left", 18 | "preview": " ", 19 | "quit": "q", 20 | "remove": "x", 21 | "selectDown": "ctrl+down", 22 | "selectSingle": "s", 23 | "selectUp": "ctrl+up", 24 | "togglePin": "p", 25 | "togglePinned": "tab", 26 | "up": "up", 27 | "yankFilter": "ctrl+s" 28 | }, 29 | "imageDisplay": { 30 | "type": "basic", 31 | "scaleX": 9, 32 | "scaleY": 9, 33 | "heightCut": 2 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /config/wofi/style.css: -------------------------------------------------------------------------------- 1 | @import url("/home/spacerat/.cache/wal/colors-waybar.css"); 2 | 3 | * { 4 | } 5 | 6 | #expander-box, 7 | window { 8 | font-size: 16.0px; 9 | font-family: "JetBrainsMono NF Medium"; 10 | background: alpha(@background, 0.80); 11 | border-radius: 0px; 12 | border: 1px solid alpha(@color6, 0.50); 13 | } 14 | 15 | #expander-box { 16 | margin: 10px; 17 | } 18 | 19 | #expander-box:selected, 20 | #entry:selected { 21 | background: alpha(@color6, 0.80); 22 | border-radius: 4px; 23 | padding: 6px; 24 | margin-left: 20px; 25 | margin-right: 20px; 26 | margin-top: 3px; 27 | margin-bottom: 3px; 28 | transition: all .1s ease-in; 29 | } 30 | 31 | #text:selected { 32 | color: @background; 33 | font-family: "JetBrainsMono NF SemiBold" 34 | } 35 | 36 | text:unselected { 37 | @foreground; 38 | } 39 | 40 | #expander-box, 41 | #entry:unselected { 42 | padding: 10px; 43 | } 44 | 45 | #img { 46 | margin-right: 10px; 47 | margin-left: 10px; 48 | } 49 | 50 | #input { 51 | background: alpha(@background, 1); 52 | margin: 20px; 53 | padding: 6px; 54 | border: 1.5px solid alpha(@color6, 0.50); 55 | } 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ⚙️ Hyprfiles 2 | 3 | ![r/unixporn](https://www.reddit.com/r/unixporn/comments/1kz4jrr/hyprland_first_rice_as_a_9_month_old_baby/) ![2](https://www.reddit.com/r/unixporn/comments/1nfrb4f/hyprland_meow/) • ![r/hyprland crosspost](https://www.reddit.com/r/hyprland/comments/1kz8lxe/first_setup_as_a_9_month_old_baby/) 4 | 5 | My dotfiles for Hyprland, with left-hand centered keybinds/submaps 6 | 7 | ## 8 | [See Gallery](Github/) • [See Wallpapers](https://drive.proton.me/urls/RZQ5D3Q5S4#BKeL9QLuCTG5) 9 | 10 | ![img](Github/1.png) 11 | 12 | 13 | > [!NOTE] 14 | > These are my personal dotfiles, they are not perfect, or complete. You may have to edit some things.
15 | > Everything else you need should be named or in 'System Information' 16 | 17 | ## System Information: 18 | * OS: [Arch GNU/Linux](https://archlinux.org/) 19 | * Terminal Emulator: [kitty](https://github.com/kovidgoyal/kitty) 20 | * Window Manager: [Hyprland](https://hyprland.org/) 21 | * Bar: [waybar](https://man.archlinux.org/man/waybar.5.en) 22 | * Launcher: [wofi](https://man.archlinux.org/man/wofi.1) 23 | * Notification Manager: [SwayNC](https://github.com/ErikReider/SwayNotificationCenter) 24 | * Clipboard Manager: [Clipse](https://github.com/savedra1/clipse) 25 | * Cursor: [Bibata Modern Classic](https://github.com/ful1e5/Bibata_Cursor/releases) 26 | -------------------------------------------------------------------------------- /config/fastfetch/Img/paimon_hehe: -------------------------------------------------------------------------------- 1 | ⠀⠀⡜⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⢣⣖⠠⠛⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡷⠀⠉⢷⡀⠀⠈⢧⠱⡄⠀⠙⣿⣯⠀ 2 | ⠀⠀⡜⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣷⠃⠈⢧⡃⢜⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣏⠀⠀⠀⠙⢆⠀⠈⣷⢱⡀⠀⠘⢿⣇ 3 | ⠀⢰⠣⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠃⠀⠀⠀⢻⣄⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⠶⠶⠶⠒⠋⠳⣄⠚⣧⢧⠀⠀⠀⢻ 4 | ⠀⢸⡐⠁⠀⠀⠀⠀⠀⠀⠀⣴⡟⠁⠀⢀⣠⣤⠖⠻⡄⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣏⠀⠀⠀⠀⠀⠀⠙⢮⡸⡞⣆⠀⠀⠀ 5 | ⠀⡒⣘⠀⠀⠀⠀⠀⠀⢤⣼⡿⠴⠶⠛⠛⠉⠀⡀⠀⠹⣾⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣡⣫⠗⠀⠀⠀⠀⠀⠈⠳⣿⣸⠀⠀⠀ 6 | ⠀⡱⠤⡁⠀⠀⠀⠀⢠⣾⠟⠀⠀⠀⢀⣠⠴⢋⢳⠀⠀⢹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⣇⠃⠀⠀ 7 | ⠀⣇⠒⡁⠀⠀⢀⣴⣻⠏⠀⠀⠀⠀⠉⠉⠉⠙⠚⠇⠀⠀⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠃⣀⣠⣤⠤⢀⣀⣤⣶⣼⡄⢸⣿⡄⠀⠀ 8 | ⠀⡧⡉⡔⠀⢠⠞⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡇⠀⠀⠀⠀⠀⠀⠀⣴⢿⣏⣩⣥⣴⣶⣿⣿⣿⣿⢿⣿⠀⣸⣿⡇⠀⠀ 9 | ⠰⣷⠡⡘⢄⣣⠞⠁⠀⠀⠀⣀⣀⣤⣤⠴⠶⠖⣦⡀⠀⠀⠈⣷⠀⠀⠀⠀⠀⢀⡾⢡⡾⣿⣿⣿⣿⣿⣿⠛⣿⡿⢠⡇⠀⣿⣚⣷⠀⠀ 10 | ⠸⣧⢃⣼⣞⣡⣤⣤⣤⣤⣴⣴⣾⣶⣶⣿⣶⣶⣶⡟⠀⠀⠀⢹⠀⠀⠀⢀⡴⢋⢔⡿⠹⠓⠀⣿⣿⣿⣿⠀⣿⡟⠈⠀⠄⣿⡜⣿⠀⠀ 11 | ⠘⡷⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⢻⣿⡟⢻⠛⠂⠀⠀⣸⠀⢀⡴⢋⠔⣡⠞⠀⠀⠀⠀⢿⣿⣿⣿⣤⣿⠃⠀⠠⠀⣿⢺⣽⡂⠀ 12 | ⢈⡷⠀⠈⢿⡄⠀⠀⢸⣿⣿⣿⣿⣿⠀⠈⣿⡇⠀⠀⠀⠀⠀⣿⠒⠭⣐⢡⡾⠋⠀⠀⠀⠀⠀⠸⣿⣿⣱⣿⠏⠀⠀⡀⠁⢻⡳⢾⡇⠀ 13 | ⠀⣿⠀⠀⠈⠳⠀⠀⠈⣿⣿⣿⣟⣿⣧⣴⣿⡇⠀⠀⠀⠀⢠⡟⢌⣱⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠉⠁⠀⠀⠄⠀⠀⢸⣿⣹⡇⠀ 14 | ⠠⢹⡄⠀⠀⠀⠠⡀⠀⠘⣿⣿⣟⣧⡯⠿⡿⠁⠀⠀⠀⠀⡼⠗⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢀⠀⢂⠁⠠⠈⠀⠸⣧⢻⡇⠀ 15 | ⠠⡙⡇⠀⡀⠁⠀⠈⠀⠀⠀⠀⠀⠀⠒⠂⠀⠀⡀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠠⠀⠂⠀⠂⠀⠁⠠⢸⣿⣹⡇⠀ 16 | ⠠⡑⢿⠀⠀⠀⠁⠠⠈⠀⠂⢀⠂⠄⡀⠄⠈⠀⠄⠀⠀⠀⣀⠀⠀⠀⣀⣠⣴⣶⣤⣤⡴⠋⠀⠀⠀⠀⠄⠀⠁⠀⠁⠠⢠⣿⣷⣹⠇⠀ 17 | ⠠⡑⢺⣧⠀⠁⠀⠄⠀⠂⠀⠄⠠⠀⠄⠀⠁⠄⠀⠀⠈⠀⢸⡿⣿⡟⣻⢛⠿⣿⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣱⣿⢫⣷⣹⠃⠀ 18 | ⠀⡑⠢⣿⣧⡄⠀⠄⠀⠀⠁⠀⠀⠀⠄⠀⠄⠀⠀⠀⠀⠁⣿⠲⣍⠲⠥⣎⠳⣰⠹⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⣰⣾⡟⣼⢻⡧⣿⠀⠀ 19 | ⠀⢡⠃⡼⣿⣿⣶⣄⠠⠀⠀⢀⣤⠤⣤⣄⣀⠀⠠⠀⠀⠁⣿⠱⡎⢭⠓⣌⢣⢣⡝⣼⠃⠀⠀⠀⣀⡤⠶⠒⠛⣿⢧⡻⣜⣿⢳⡟⠀⠀ 20 | ⠀⢠⠃⠖⣹⣿⣿⣿⣿⣶⣤⣸⣧⣄⠀⠀⠉⠛⢦⡀⠀⠀⠘⣧⡝⣊⠷⡌⢖⢣⣼⠏⠀⣀⡴⠋⠁⠀⠀⣀⣴⡿⣣⢿⣼⣟⣳⡏⠀⠀ 21 | ⠀⠠⣉⠚⠤⣿⣿⣿⣿⣿⣿⣭⣛⣮⡝⢦⡀⠀⠈⢳⡄⠀⠀⠈⠙⠲⠷⠼⠟⠞⢁⣠⠞⠋⠀⠀⠀⣴⣯⣾⣿⣷⡹⣞⣾⢣⣿⠀⠀⠀ 22 | ⠀⠀⢢⠙⡰⡈⢿⣿⣿⣿⣿⣿⣿⣾⣿⣆⠃⠀⠀⠀⢻⡶⣤⣤⣄⣀⣀⣤⠶⠚⠉⠀⠀⠀⠀⣀⣴⣿⣿⣿⣿⣿⣿⣞⢧⣻⢏⠀⠀⠀ 23 | ⠀⠀⢠⠩⠔⣡⠊⢿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠙⠷⢾⠾⠛⠉⠀⠀⠀⠀⠀⣀⣴⠞⢹⣿⣿⣿⣿⣿⡿⣫⠞⣧⣿⠂⠀⠀⠀ 24 | ⢄⡀⠀⢃⠎⢤⡉⢆⠻⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠟⠁⠀⣼⣿⣿⣿⣯⣷⣹⣵⣿⣿⢛⠀⠀⠀⠀ 25 | ⠢⠜⡐⢌⡸⢄⠚⡄⠣⢌⠻⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⢠⣟⣿⣿⣿⣿⣿⣿⣿⡿⢁⠂⠀⠀⠀⠀ 26 | -------------------------------------------------------------------------------- /Scripts/Waybar/force_split_output-waybar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | force_split_out=$(hyprctl getoption dwindle:force_split | awk '/int:/ {print $2}') 4 | current_layout=$(hyprctl getoption general:layout | awk -F': ' '/str/ {print $2}') 5 | special_workspaces=$(hyprctl workspaces | awk '/workspace ID -98/ {found=1} found && /windows:/ {print $2; exit}') 6 | 7 | 8 | function windows_in_active_workspace { 9 | active_workspace=$(hyprctl activewindow | awk '/workspace:/ { gsub("[()]", "", $3); print $2 }') 10 | 11 | hyprctl workspaces | awk -v active_workspace="$active_workspace" ' 12 | $1 == "workspace" && $3 == active_workspace { in_target=1 } 13 | in_target && $1 == "windows:" { print $2; exit } 14 | ' 15 | } 16 | 17 | 18 | function windows_in_special { 19 | if (( special_workspaces > 0 )); then 20 | echo " $special_workspaces" 21 | else 22 | return 0 23 | fi 24 | } 25 | 26 | 27 | function call_split_out { 28 | 29 | if [[ "$force_split_out" == 0 ]]; then 30 | icon='󰍽' 31 | elif [[ "$force_split_out" == 1 ]]; then 32 | icon='' 33 | else 34 | icon='' 35 | fi 36 | } 37 | 38 | if [[ "$current_layout" == dwindle ]]; then 39 | call_split_out 40 | else 41 | icon='󰶮 ' 42 | fi 43 | 44 | active=$(windows_in_active_workspace) 45 | special=$(windows_in_special) 46 | 47 | #echo -n "$icon $active$special" 48 | echo -n "$special" 49 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/paimon_hehe: -------------------------------------------------------------------------------- 1 | ⠀⠀⡜⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⢣⣖⠠⠛⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡷⠀⠉⢷⡀⠀⠈⢧⠱⡄⠀⠙⣿⣯⠀ 2 | ⠀⠀⡜⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣷⠃⠈⢧⡃⢜⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣏⠀⠀⠀⠙⢆⠀⠈⣷⢱⡀⠀⠘⢿⣇ 3 | ⠀⢰⠣⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠃⠀⠀⠀⢻⣄⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⠶⠶⠶⠒⠋⠳⣄⠚⣧⢧⠀⠀⠀⢻ 4 | ⠀⢸⡐⠁⠀⠀⠀⠀⠀⠀⠀⣴⡟⠁⠀⢀⣠⣤⠖⠻⡄⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣏⠀⠀⠀⠀⠀⠀⠙⢮⡸⡞⣆⠀⠀⠀ 5 | ⠀⡒⣘⠀⠀⠀⠀⠀⠀⢤⣼⡿⠴⠶⠛⠛⠉⠀⡀⠀⠹⣾⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣡⣫⠗⠀⠀⠀⠀⠀⠈⠳⣿⣸⠀⠀⠀ 6 | ⠀⡱⠤⡁⠀⠀⠀⠀⢠⣾⠟⠀⠀⠀⢀⣠⠴⢋⢳⠀⠀⢹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣻⣇⠃⠀⠀ 7 | ⠀⣇⠒⡁⠀⠀⢀⣴⣻⠏⠀⠀⠀⠀⠉⠉⠉⠙⠚⠇⠀⠀⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠃⣀⣠⣤⠤⢀⣀⣤⣶⣼⡄⢸⣿⡄⠀⠀ 8 | ⠀⡧⡉⡔⠀⢠⠞⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡇⠀⠀⠀⠀⠀⠀⠀⣴⢿⣏⣩⣥⣴⣶⣿⣿⣿⣿⢿⣿⠀⣸⣿⡇⠀⠀ 9 | ⠰⣷⠡⡘⢄⣣⠞⠁⠀⠀⠀⣀⣀⣤⣤⠴⠶⠖⣦⡀⠀⠀⠈⣷⠀⠀⠀⠀⠀⢀⡾⢡⡾⣿⣿⣿⣿⣿⣿⠛⣿⡿⢠⡇⠀⣿⣚⣷⠀⠀ 10 | ⠸⣧⢃⣼⣞⣡⣤⣤⣤⣤⣴⣴⣾⣶⣶⣿⣶⣶⣶⡟⠀⠀⠀⢹⠀⠀⠀⢀⡴⢋⢔⡿⠹⠓⠀⣿⣿⣿⣿⠀⣿⡟⠈⠀⠄⣿⡜⣿⠀⠀ 11 | ⠘⡷⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⢻⣿⡟⢻⠛⠂⠀⠀⣸⠀⢀⡴⢋⠔⣡⠞⠀⠀⠀⠀⢿⣿⣿⣿⣤⣿⠃⠀⠠⠀⣿⢺⣽⡂⠀ 12 | ⢈⡷⠀⠈⢿⡄⠀⠀⢸⣿⣿⣿⣿⣿⠀⠈⣿⡇⠀⠀⠀⠀⠀⣿⠒⠭⣐⢡⡾⠋⠀⠀⠀⠀⠀⠸⣿⣿⣱⣿⠏⠀⠀⡀⠁⢻⡳⢾⡇⠀ 13 | ⠀⣿⠀⠀⠈⠳⠀⠀⠈⣿⣿⣿⣟⣿⣧⣴⣿⡇⠀⠀⠀⠀⢠⡟⢌⣱⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠉⠁⠀⠀⠄⠀⠀⢸⣿⣹⡇⠀ 14 | ⠠⢹⡄⠀⠀⠀⠠⡀⠀⠘⣿⣿⣟⣧⡯⠿⡿⠁⠀⠀⠀⠀⡼⠗⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢀⠀⢂⠁⠠⠈⠀⠸⣧⢻⡇⠀ 15 | ⠠⡙⡇⠀⡀⠁⠀⠈⠀⠀⠀⠀⠀⠀⠒⠂⠀⠀⡀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠠⠀⠂⠀⠂⠀⠁⠠⢸⣿⣹⡇⠀ 16 | ⠠⡑⢿⠀⠀⠀⠁⠠⠈⠀⠂⢀⠂⠄⡀⠄⠈⠀⠄⠀⠀⠀⣀⠀⠀⠀⣀⣠⣴⣶⣤⣤⡴⠋⠀⠀⠀⠀⠄⠀⠁⠀⠁⠠⢠⣿⣷⣹⠇⠀ 17 | ⠠⡑⢺⣧⠀⠁⠀⠄⠀⠂⠀⠄⠠⠀⠄⠀⠁⠄⠀⠀⠈⠀⢸⡿⣿⡟⣻⢛⠿⣿⣿⣿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣱⣿⢫⣷⣹⠃⠀ 18 | ⠀⡑⠢⣿⣧⡄⠀⠄⠀⠀⠁⠀⠀⠀⠄⠀⠄⠀⠀⠀⠀⠁⣿⠲⣍⠲⠥⣎⠳⣰⠹⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⣰⣾⡟⣼⢻⡧⣿⠀⠀ 19 | ⠀⢡⠃⡼⣿⣿⣶⣄⠠⠀⠀⢀⣤⠤⣤⣄⣀⠀⠠⠀⠀⠁⣿⠱⡎⢭⠓⣌⢣⢣⡝⣼⠃⠀⠀⠀⣀⡤⠶⠒⠛⣿⢧⡻⣜⣿⢳⡟⠀⠀ 20 | ⠀⢠⠃⠖⣹⣿⣿⣿⣿⣶⣤⣸⣧⣄⠀⠀⠉⠛⢦⡀⠀⠀⠘⣧⡝⣊⠷⡌⢖⢣⣼⠏⠀⣀⡴⠋⠁⠀⠀⣀⣴⡿⣣⢿⣼⣟⣳⡏⠀⠀ 21 | ⠀⠠⣉⠚⠤⣿⣿⣿⣿⣿⣿⣭⣛⣮⡝⢦⡀⠀⠈⢳⡄⠀⠀⠈⠙⠲⠷⠼⠟⠞⢁⣠⠞⠋⠀⠀⠀⣴⣯⣾⣿⣷⡹⣞⣾⢣⣿⠀⠀⠀ 22 | ⠀⠀⢢⠙⡰⡈⢿⣿⣿⣿⣿⣿⣿⣾⣿⣆⠃⠀⠀⠀⢻⡶⣤⣤⣄⣀⣀⣤⠶⠚⠉⠀⠀⠀⠀⣀⣴⣿⣿⣿⣿⣿⣿⣞⢧⣻⢏⠀⠀⠀ 23 | ⠀⠀⢠⠩⠔⣡⠊⢿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠙⠷⢾⠾⠛⠉⠀⠀⠀⠀⠀⣀⣴⠞⢹⣿⣿⣿⣿⣿⡿⣫⠞⣧⣿⠂⠀⠀⠀ 24 | ⢄⡀⠀⢃⠎⢤⡉⢆⠻⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠟⠁⠀⣼⣿⣿⣿⣯⣷⣹⣵⣿⣿⢛⠀⠀⠀⠀ 25 | ⠢⠜⡐⢌⡸⢄⠚⡄⠣⢌⠻⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⢠⣟⣿⣿⣿⣿⣿⣿⣿⡿⢁⠂⠀⠀⠀⠀ 26 | -------------------------------------------------------------------------------- /Scripts/Hyprland/touchpad_toggle.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | #touchpad_state=$(hyprctl getoption device[asuf1204:00-2808:0202-touchpad]:disable_while_typing | grep -oP '(?<=str: )\w+') # Doesn't work in modern Hyprland 4 | touchpad_state=$(awk '/name *= *asuf1204:00-2808:0202-touchpad/ {f=1} f && /disable_while_typing/ {gsub(/[ \t]/,""); split($0,a,"="); print a[2]; exit}' ~/.config/hypr/hyprland.conf) 5 | state_file="/home/spacerat/.config/hypr/Scripts/Hyprland/touchpad_state_file" 6 | 7 | main() { 8 | current_state=$(cat "$state_file" | cut -d ' ' -f 3) 9 | 10 | if [[ "$current_state" == "true" ]]; then 11 | hyprctl keyword device[asuf1204:00-2808:0202-touchpad]:disable_while_typing false 12 | notify-send -i /usr/share/icons/breeze-dark/status/32/touchpad_enabled.svg -t 1000 -h boolean:transient:true \ 13 | -h string:x-canonical-private-synchronous:layout 'DWT disabled' 14 | echo "false" > "$state_file" 15 | else 16 | hyprctl keyword device[asuf1204:00-2808:0202-touchpad]:disable_while_typing true 17 | notify-send -i /usr/share/icons/breeze-dark/status/32/touchpad_disabled.svg -t 1000 -h boolean:transient:true \ 18 | -h string:x-canonical-private-synchronous:layout 'DWT enabled' 19 | echo "true" > "$state_file" 20 | fi 21 | 22 | } 23 | 24 | 25 | if [[ -f "$state_file" ]]; then 26 | main 27 | else 28 | touch "$state_file" 29 | echo "$touchpad_state" > "$state_file" 30 | main 31 | fi 32 | -------------------------------------------------------------------------------- /config/wlogout/style.css: -------------------------------------------------------------------------------- 1 | @import url("/home/spacerat/.cache/wal/colors-waybar.css"); 2 | 3 | * { 4 | font-family: "JetBrainsMono NF Medium"; 5 | font-size: 25.5; 6 | } 7 | 8 | window { 9 | background: transparent; 10 | } 11 | 12 | button { 13 | border-radius: 4; 14 | background: alpha(@background, 0.80); 15 | color: @foreground; 16 | background-repeat: no-repeat; 17 | background-position: center; 18 | background-size: 25%; 19 | margin: 10; 20 | } 21 | 22 | button:focus, 23 | button:active, 24 | button:hover { 25 | color: @background; 26 | background-color: alpha(@color6, 0.80); 27 | outline-style: none; 28 | transition: background-color .15s ease-in; 29 | } 30 | 31 | #lock { 32 | background-image: image(url("/usr/share/wlogout/icons/lock_white.svg"), url("/usr/local/share/wlogout/icons/lock.svg")); 33 | } 34 | 35 | #logout { 36 | background-image: image(url("/usr/share/wlogout/icons/logout_white.svg"), url("/usr/local/share/wlogout/icons/logout.svg")); 37 | } 38 | 39 | #suspend { 40 | background-image: image(url("/usr/share/wlogout/icons/suspend_white.svg"), url("/usr/local/share/wlogout/icons/suspend.svg")); 41 | } 42 | 43 | #hibernate { 44 | background-image: image(url("/usr/share/wlogout/icons/hibernate_white.svg"), url("/usr/local/share/wlogout/icons/hibernate.svg")); 45 | } 46 | 47 | #shutdown { 48 | background-image: image(url("/usr/share/wlogout/icons/shutdown_white.svg"), url("/usr/local/share/wlogout/icons/shutdown.svg")); 49 | } 50 | 51 | #reboot { 52 | background-image: image(url("/usr/share/wlogout/icons/reboot_white.svg"), url("/usr/local/share/wlogout/icons/reboot.svg")); 53 | } 54 | -------------------------------------------------------------------------------- /config/fastfetch/Img/lain: -------------------------------------------------------------------------------- 1 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⣉⣢⣤⣤⣤⣤⣴⣶⣤⣤⣄⣈⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 2 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢁⣠⣴⣿⡏⢀⣠⣿⣿⣿⣿⡿⠿⠿⠿⢿⣧⣀⣁⡨⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 3 | ⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⡑⠄⠤⠒⣉⢀⣴⣿⣿⣿⣿⣿⣿⠿⢛⣩⣥⣶⣶⣶⣾⣷⣶⣦⣍⡛⢿⣦⡐⠉⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 4 | ⣿⣿⣿⣿⣿⣿⣿⡟⢀⣴⠃⣤⣶⣶⠖⣸⣿⣿⣿⣿⣿⣿⠋⣡⣾⣿⣿⣿⣿⣿⣇⠀⠀⠀⠈⣻⣿⣦⡙⢿⣄⠳⢀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿ 5 | ⣿⣿⣿⣿⣿⣿⣿⢀⢸⡧⢸⣿⣿⠏⣸⣿⣿⣿⣿⣿⠟⣡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⣴⣿⣿⣿⣿⣄⢻⣦⠠⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿ 6 | ⣿⣿⣿⣿⣿⣿⣿⡆⠈⠃⠀⠙⠟⠀⠉⠀⠀⠀⠛⠟⢰⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠿⠿⠿⠿⢿⣿⣿⣿⣆⢻⣆⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿ 7 | ⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡿⠟⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⡈⠋⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿ 8 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠃⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿ 9 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿ 10 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢹⣿⣿⣿⣿⣿⣿ 11 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⡄⠀⠀⠀⡇⣼⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⢸⣿⣿⣿⣿⣿⣿ 12 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣇⠀⣷⠀⢀⡀⡇⢹⣿⡇⢸⢀⣀⠀⢸⠀⣀⡀⠀⠀⠀⠀⠀⠀⡇⢸⣿⣿⣿⣿⣿⣿ 13 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣘⣩⣤⣤⣤⣤⢤⡠⣸⣿⡇⣿⣾⣿⡃⠨⡄⣉⣉⡀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿ 14 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠠⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⠟⠉⠠⠀⠌⣁⣿⣿⣿⣷⣿⣿⣿⠃⡉⡉⠉⡛⢿⡇⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿ 15 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠸⣧⣶⣄⣿⣿⣶⡑⠄⠀⣀⣿⣿⣿⣿⣿⣿⣿⣿⣯⡣⠀⠠⠗⣿⠁⠀⣠⡀⡇⢸⣿⣿⣿⣿⣿⣿⣿ 16 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢠⣶⡟⣿⠡⢸⣿⣿⣿⣿⣿⣿⣿ 17 | ⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢸⣿⣷⠸⠀⠸⣿⣿⣿⣿⣿⣿⣿ 18 | ⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⡄⢠⡀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⣿⣿⣿⣧⠀⠁⢿⣿⣿⣿⣿⣿⣿ 19 | ⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⢀⣾⣷⣾⣿⣦⣸⣷⣌⣷⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣁⠀⠀⠀⣿⣿⣿⣿⣧⠀⠌⣿⣿⣿⣿⣿⣿ 20 | ⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣬⡙⠿⢿⣿⣿⡿⠟⣋⢥⣾⣿⣿⠀⠀⠀⣿⣿⣿⣿⣿⣧⡀⡸⣿⣿⣿⣿⣿ 21 | ⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣔⠢⡴⢂⣜⣵⣿⣿⣿⣿⠀⠀⠀⢸⣿⣿⣿⣿⣿⣷⡀⠹⣿⣿⣿⣿ 22 | ⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁⠀⠀⢀⡄⠀⠈⠛⢿⣿⣿⡇⠀⠀⢸⣿⣿⣿⣿⣿⣿⡷⠁⣿⣿⣿⣿ 23 | ⣿⣿⣿⣿⣿⠃⠁⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠉⠣⠀⠀⢸⣿⣿⣿⣿⣿⡟⠁⣰⣿⣿⣿⣿ 24 | ⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⠿⠋⠀⠌⢿⣿⣿⣿⣿ 25 | ⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⣿⣿⣿⣿ 26 | ⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿ 27 | ⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿ 28 | ⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⣿⣿ 29 | ⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿ 30 | ⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿ 31 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/lain: -------------------------------------------------------------------------------- 1 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⣉⣢⣤⣤⣤⣤⣴⣶⣤⣤⣄⣈⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 2 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⢁⣠⣴⣿⡏⢀⣠⣿⣿⣿⣿⡿⠿⠿⠿⢿⣧⣀⣁⡨⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 3 | ⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⡑⠄⠤⠒⣉⢀⣴⣿⣿⣿⣿⣿⣿⠿⢛⣩⣥⣶⣶⣶⣾⣷⣶⣦⣍⡛⢿⣦⡐⠉⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ 4 | ⣿⣿⣿⣿⣿⣿⣿⡟⢀⣴⠃⣤⣶⣶⠖⣸⣿⣿⣿⣿⣿⣿⠋⣡⣾⣿⣿⣿⣿⣿⣇⠀⠀⠀⠈⣻⣿⣦⡙⢿⣄⠳⢀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿ 5 | ⣿⣿⣿⣿⣿⣿⣿⢀⢸⡧⢸⣿⣿⠏⣸⣿⣿⣿⣿⣿⠟⣡⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⣴⣿⣿⣿⣿⣄⢻⣦⠠⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿ 6 | ⣿⣿⣿⣿⣿⣿⣿⡆⠈⠃⠀⠙⠟⠀⠉⠀⠀⠀⠛⠟⢰⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠿⠿⠿⠿⢿⣿⣿⣿⣆⢻⣆⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿ 7 | ⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡿⠟⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢿⣿⡈⠋⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿ 8 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠃⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿ 9 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿ 10 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢹⣿⣿⣿⣿⣿⣿ 11 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⡄⠀⠀⠀⡇⣼⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⢸⣿⣿⣿⣿⣿⣿ 12 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣇⠀⣷⠀⢀⡀⡇⢹⣿⡇⢸⢀⣀⠀⢸⠀⣀⡀⠀⠀⠀⠀⠀⠀⡇⢸⣿⣿⣿⣿⣿⣿ 13 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⣘⣩⣤⣤⣤⣤⢤⡠⣸⣿⡇⣿⣾⣿⡃⠨⡄⣉⣉⡀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿ 14 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠠⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⠟⠉⠠⠀⠌⣁⣿⣿⣿⣷⣿⣿⣿⠃⡉⡉⠉⡛⢿⡇⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿ 15 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠸⣧⣶⣄⣿⣿⣶⡑⠄⠀⣀⣿⣿⣿⣿⣿⣿⣿⣿⣯⡣⠀⠠⠗⣿⠁⠀⣠⡀⡇⢸⣿⣿⣿⣿⣿⣿⣿ 16 | ⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢠⣶⡟⣿⠡⢸⣿⣿⣿⣿⣿⣿⣿ 17 | ⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⢸⣿⣷⠸⠀⠸⣿⣿⣿⣿⣿⣿⣿ 18 | ⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⡄⢠⡀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⣿⣿⣿⣧⠀⠁⢿⣿⣿⣿⣿⣿⣿ 19 | ⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⢀⣾⣷⣾⣿⣦⣸⣷⣌⣷⣦⡙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣁⠀⠀⠀⣿⣿⣿⣿⣧⠀⠌⣿⣿⣿⣿⣿⣿ 20 | ⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣬⡙⠿⢿⣿⣿⡿⠟⣋⢥⣾⣿⣿⠀⠀⠀⣿⣿⣿⣿⣿⣧⡀⡸⣿⣿⣿⣿⣿ 21 | ⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣔⠢⡴⢂⣜⣵⣿⣿⣿⣿⠀⠀⠀⢸⣿⣿⣿⣿⣿⣷⡀⠹⣿⣿⣿⣿ 22 | ⣿⣿⣿⣿⣿⣿⠋⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠋⠁⠀⠀⢀⡄⠀⠈⠛⢿⣿⣿⡇⠀⠀⢸⣿⣿⣿⣿⣿⣿⡷⠁⣿⣿⣿⣿ 23 | ⣿⣿⣿⣿⣿⠃⠁⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠁⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠉⠣⠀⠀⢸⣿⣿⣿⣿⣿⡟⠁⣰⣿⣿⣿⣿ 24 | ⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣿⣿⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⠿⠋⠀⠌⢿⣿⣿⣿⣿ 25 | ⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⣿⣿⣿⣿ 26 | ⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿ 27 | ⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿ 28 | ⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⣿⣿ 29 | ⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿ 30 | ⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿ 31 | -------------------------------------------------------------------------------- /config/fastfetch/Alt/config-simple.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "source": "/home/spacerat/.config/fastfetch/Img/konataSmirk", 5 | "color": { 6 | "1": "0;94;94", 7 | "2": "38;33;0" 8 | } 9 | }, 10 | "display": { 11 | "separator": " " 12 | }, 13 | "modules": [ 14 | { 15 | "type": "title", 16 | "format": "|──────────~Software~────────────|" 17 | }, 18 | { 19 | "type": "os", 20 | "key": "  ~", 21 | "keyColor": "white" 22 | }, 23 | { 24 | "type": "kernel", 25 | "key": "  ~", 26 | "keyColor": "white" 27 | }, 28 | { 29 | "type": "shell", 30 | "key": "  ~", 31 | "keyColor": "white" 32 | }, 33 | { 34 | "type": "wm", 35 | "key": "  ~", 36 | "keyColor": "white" 37 | }, 38 | { 39 | "type": "terminal", 40 | "key": "  ~", 41 | "keyColor": "white" 42 | }, 43 | "break", 44 | { 45 | "type": "custom", 46 | "format": "|───────────~Hardware~───────────|" 47 | }, 48 | { 49 | "type": "cpu", 50 | "key": "  ~", 51 | "keyColor": "white" 52 | }, 53 | { 54 | "type": "gpu", 55 | "key": "  ~", 56 | "keyColor": "white" 57 | }, 58 | { 59 | "type": "memory", 60 | "key": " 󰧑 ~", 61 | "keyColor": "white" 62 | }, 63 | "break", 64 | { 65 | "type": "custom", 66 | "keyColor": "blue", 67 | "format": "\u001b[90m ▂▂ \u001b[31m▂▂ \u001b[32m▂▂ \u001b[33m▂▂ \u001b[34m▂▂ \u001b[35m▂▂ \u001b[36m▂▂ \u001b[37m▂▂ " 68 | }, 69 | /*"colors"*/ 70 | ] 71 | } 72 | -------------------------------------------------------------------------------- /config/fastfetch/Img/gojoCat: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠟⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⠀⠈⠻⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣶⣦⡀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⡇⠀⠀⠀⠀⠈⠙⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠁⢸⣿⡇⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⡇⠀⠀⠀⠀⠀⠀⠀⠙⢷⣆⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡾⠛⠁⠀⠀⠀⣿⣼⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡏⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡾⠛⠁⠀⠀⠀⠀⠀⣸⡿⣿⠂⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣿⠀⠀⠀⠀⠀⠶⠶⠶⠶⠶⠶⠿⠷⠶⠶⠤⣤⣤⣀⣀⡀⢀⣤⡾⠛⠁⠀⠀⠀⠀⠀⠀⠀⢠⣿⢣⡟⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⣽⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡷⣸⠇⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⢣⡿⠁⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣼⠃⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡏⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣿⣿⡾⠛⠉⣉⣽⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⠶⠛⢛⣿⣿⣷⣶⣤⣀⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⢰⣾⠛⢉⣵⡟⣃⣤⣶⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⣠⣾⠏⣡⣴⣾⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⢈⡹⣇⠀⠀⠀⠀⠀⠀ 14 | ⠀⠀⠀⠀⠀⠀⠙⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⣀⣀⣀⣰⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠶⠖⠲⠾⣿⣿⣦⠀⠀⠀⠀⠀ 15 | ⠀⠀⠀⠀⣠⣴⡾⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠈⠙⢿⣄⠀⠀⠀⠀ 16 | ⠀⠀⣿⡛⠉⠁⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⣄⠀⠀ 17 | ⠀⠀⣾⣷⣦⣀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣧⠀ 18 | ⠀⡀⠈⠻⢿⣿⣿⣷⠆⠀⠙⠻⠿⣿⣿⡿⢿⣿⠋⠀⠀⠀⣴⠇⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡆ 19 | ⠀⠻⣟⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠿⣿⣆⣀⣠⣼⢿⣧⠀⠀⠀⢀⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⠿⣛⠹⣮⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷ 20 | ⠀⠀⠈⠻⢦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢩⠿⠻⣯⢻⣷⣶⣿⡿⠋⠀⠀⠀⠉⠉⠉⠉⠁⠀⣐⣭⣾⡿⠋⢻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿ 21 | ⠀⠀⠀⢀⣰⣿⣻⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡿⠛⣍⠡⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟ 22 | ⠀⠀⠀⠛⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠁ 23 | ⠀⠀⠀⢐⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠀⠀ 24 | ⠀⠀⠀⣼⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⠀⠀ 25 | ⠀⠀⠀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⡟⠀⠀⠀⠀⠀ 26 | ⠀⠀⣰⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠛⠀⠀⠀⠀⠀⠀ 27 | ⢠⣾⢿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡏⠀⠀⠀⠀⠀⠀⠀ 28 | ⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⣿⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⣾⢿⣾⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠛⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⢀⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/gojoCat: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠟⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⠀⠈⠻⣦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣶⣦⡀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⡇⠀⠀⠀⠀⠈⠙⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠁⢸⣿⡇⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⡇⠀⠀⠀⠀⠀⠀⠀⠙⢷⣆⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡾⠛⠁⠀⠀⠀⣿⣼⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡏⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⡾⠛⠁⠀⠀⠀⠀⠀⣸⡿⣿⠂⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⣿⠀⠀⠀⠀⠀⠶⠶⠶⠶⠶⠶⠿⠷⠶⠶⠤⣤⣤⣀⣀⡀⢀⣤⡾⠛⠁⠀⠀⠀⠀⠀⠀⠀⢠⣿⢣⡟⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⣽⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡷⣸⠇⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⢣⡿⠁⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣼⠃⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡏⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣿⣿⡾⠛⠉⣉⣽⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⠶⠛⢛⣿⣿⣷⣶⣤⣀⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⢰⣾⠛⢉⣵⡟⣃⣤⣶⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⣠⣾⠏⣡⣴⣾⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠀⠀⢈⡹⣇⠀⠀⠀⠀⠀⠀ 14 | ⠀⠀⠀⠀⠀⠀⠙⣷⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⣀⣀⣀⣰⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠶⠖⠲⠾⣿⣿⣦⠀⠀⠀⠀⠀ 15 | ⠀⠀⠀⠀⣠⣴⡾⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠈⠙⢿⣄⠀⠀⠀⠀ 16 | ⠀⠀⣿⡛⠉⠁⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⣄⠀⠀ 17 | ⠀⠀⣾⣷⣦⣀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣧⠀ 18 | ⠀⡀⠈⠻⢿⣿⣿⣷⠆⠀⠙⠻⠿⣿⣿⡿⢿⣿⠋⠀⠀⠀⣴⠇⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡆ 19 | ⠀⠻⣟⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠿⣿⣆⣀⣠⣼⢿⣧⠀⠀⠀⢀⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⠿⣛⠹⣮⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷ 20 | ⠀⠀⠈⠻⢦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢩⠿⠻⣯⢻⣷⣶⣿⡿⠋⠀⠀⠀⠉⠉⠉⠉⠁⠀⣐⣭⣾⡿⠋⢻⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿ 21 | ⠀⠀⠀⢀⣰⣿⣻⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡿⠛⣍⠡⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡟ 22 | ⠀⠀⠀⠛⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡿⠁ 23 | ⠀⠀⠀⢐⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠀⠀ 24 | ⠀⠀⠀⣼⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⠀⠀⠀ 25 | ⠀⠀⠀⣸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⡟⠀⠀⠀⠀⠀ 26 | ⠀⠀⣰⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠛⠀⠀⠀⠀⠀⠀ 27 | ⢠⣾⢿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡏⠀⠀⠀⠀⠀⠀⠀ 28 | ⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⣿⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⣾⢿⣾⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠛⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⢀⣾⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | -------------------------------------------------------------------------------- /config/fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "source": "~/.config/fastfetch/Img/lain_332.jpg", 5 | "width": 28, 6 | "type": "kitty" 7 | //"color": { 8 | //"1": "0;33;33", 9 | //"2": "38;33;0" 10 | //} 11 | }, 12 | "display": { 13 | "separator": " " 14 | }, 15 | "modules": [ 16 | { 17 | "type": "custom", 18 | "format": "" 19 | }, 20 | { 21 | "type": "host", 22 | "key": "HOST", 23 | "keyColor": "yellow", 24 | "outputColor": "red" 25 | }, 26 | { 27 | "type": "custom", 28 | "format": "" 29 | }, 30 | { 31 | "type": "os", 32 | "key": "  ", 33 | "keyColor": "yellow" 34 | }, 35 | { 36 | "type": "kernel", 37 | "key": "  ", 38 | "keyColor": "yellow" 39 | }, 40 | { 41 | "type": "cpu", 42 | "key": "  ", 43 | "keyColor": "yellow" 44 | }, 45 | { 46 | "type": "gpu", 47 | "key": " 󰢮 ", 48 | "keyColor": "yellow" 49 | }, 50 | { 51 | "type": "shell", 52 | "key": "  ", 53 | "keyColor": "yellow" 54 | }, 55 | { 56 | "type": "wm", 57 | "key": "  ", 58 | "keyColor": "yellow" 59 | }, 60 | { 61 | "type": "terminal", 62 | "key": "  ", 63 | "keyColor": "yellow" 64 | }, 65 | { 66 | "type": "uptime", 67 | "key": " 󰥔 ", 68 | "keyColor": "yellow" 69 | }, 70 | "break", 71 | { 72 | "type": "custom", 73 | "keyColor": "blue", 74 | "format": " \u001b[90m▂▂ \u001b[31m▂▂ \u001b[32m▂▂ \u001b[33m▂▂ \u001b[34m▂▂ \u001b[35m▂▂ \u001b[36m▂▂ \u001b[37m▂▂ " 75 | } 76 | /*"colors"*/ 77 | ] 78 | } 79 | -------------------------------------------------------------------------------- /config/fastfetch/Alt/config-default.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | //"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 3 | "logo": { 4 | "source": "~/.config/fastfetch/Img/1.webp", 5 | "width": 24, 6 | "type": "kitty" 7 | //"color": { 8 | //"1": "0;33;33", 9 | //"2": "38;33;0" 10 | //} 11 | }, 12 | "display": { 13 | "separator": " " 14 | }, 15 | "modules": [ 16 | { 17 | "type": "custom", 18 | "format": "" 19 | }, 20 | { 21 | "type": "custom", 22 | "format": "" 23 | }, 24 | { 25 | "type": "custom", 26 | "format": " ─── ⋆⋅☆⋅⋆ ───", 27 | "outputColor": "magenta" 28 | }, 29 | { 30 | "type": "title", 31 | "format": "╭────────────────────────────────────────────╮", 32 | "outputColor": "green" 33 | }, 34 | { 35 | "type": "os", 36 | "key": "  ", 37 | "keyColor": "yellow" 38 | }, 39 | { 40 | "type": "kernel", 41 | "key": "  ", 42 | "keyColor": "yellow" 43 | }, 44 | { 45 | "type": "shell", 46 | "key": "  ", 47 | "keyColor": "yellow" 48 | }, 49 | { 50 | "type": "wm", 51 | "key": "  ", 52 | "keyColor": "yellow" 53 | }, 54 | { 55 | "type": "terminal", 56 | "key": "  ", 57 | "keyColor": "yellow" 58 | }, 59 | { 60 | "type": "memory", 61 | "key": " 󰧑 ", 62 | "keyColor": "yellow" 63 | }, 64 | { 65 | "type": "custom", 66 | "format": "╰────────────────────────────────────────────╯", 67 | "outputColor": "green" 68 | }, 69 | /*"break",*/ 70 | { 71 | "type": "custom", 72 | "keyColor": "blue", 73 | "format": " \u001b[90m▂▂ \u001b[31m▂▂ \u001b[32m▂▂ \u001b[33m▂▂ \u001b[34m▂▂ \u001b[35m▂▂ \u001b[36m▂▂ \u001b[37m▂▂ " 74 | }, 75 | /*"colors"*/ 76 | ] 77 | } 78 | -------------------------------------------------------------------------------- /config/fastfetch/Img/konataThumb: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⠶⠚⠉⢉⣩⠽⠟⠛⠛⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠉⠀⢀⣠⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡞⠁⠀⠀⣰⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠀⠀⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⡤⠤⠄⢤⣄⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠒⠋⠉⠀⠀⠀⣀⣤⠴⠒⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⡄⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⢳⡄⢀⡴⠚⠉⠀⠀⠀⠀⠀⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠘⣧⠀⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠹⡏⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠳⢬⣳⣄⣠⠤⠤⠶⠶⠒⠋⠀⠀⠀⠀⠹⡀⠀⠀⠀⠀⠈⠉⠛⠲⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠤⠖⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢳⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠋⠀⠀⠀⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⢃⠈⠙⠲⣄⡀⠀⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⢠⠞⠁⠀⠀⠀⢀⢾⠃⠀⠀⠀⠀⠀⠀⠀⠀⢢⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⠮⣄⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⣰⠋⠀⠀⢀⡤⡴⠃⠈⠦⣀⠀⠀⠀⠀⠀⠀⢀⣷⢸⠀⠀⠀⠀⢀⣀⠘⡄⠤⠤⢤⠔⠒⠂⠉⠁⠀⠀⠀⠑⢄⡀⠀⠀⠙⢦⡀⠀⠀⠀ 14 | ⠀⠀⠀⠀⣼⠃⠀⠀⢠⣞⠟⠀⠀⠀⡄⠀⠉⠒⠢⣤⣤⠄⣼⢻⠸⠀⠀⠀⠀⠉⢤⠀⢿⡖⠒⠊⢦⠤⠤⣀⣀⡀⠀⠀⠀⠈⠻⡝⠲⢤⣀⠙⢦⠀⠀ 15 | ⠀⠀⠀⢰⠃⠀⠀⣴⣿⠎⠀⠀⢀⣜⠤⠄⢲⠎⠉⠀⠀⡼⠸⠘⡄⡇⠀⠀⠀⠀⢸⠀⢸⠘⢆⠀⠘⡄⠀⠀⠀⢢⠉⠉⠀⠒⠒⠽⡄⠀⠈⠙⠮⣷⡀ 16 | ⠀⠀⠀⡟⠀⠀⣼⢻⠧⠐⠂⠉⡜⠀⠀⡰⡟⠀⠀⠀⡰⠁⡇⠀⡇⡇⠀⠀⠀⠀⢺⠇⠀⣆⡨⢆⠀⢽⠀⠀⠀⠈⡷⡄⠀⠀⠀⠀⠹⡄⠀⠀⠀⠈⠁ 17 | ⠀⠀⢸⠃⠀⠀⢃⠎⠀⠀⠀⣴⠃⠀⡜⠹⠁⠀⠀⡰⠁⢠⠁⠀⢸⢸⠀⠀⠀⢠⡸⢣⠔⡏⠀⠈⢆⠀⣇⠀⠀⠀⢸⠘⢆⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀ 18 | ⠀⠀⢸⠀⠀⠀⡜⠀⠀⢀⡜⡞⠀⡜⠈⠏⠀⠈⡹⠑⠒⠼⡀⠀⠀⢿⠀⠀⠀⢀⡇⠀⢇⢁⠀⠀⠈⢆⢰⠀⠀⠀⠈⡄⠈⢢⠀⠀⠀⠈⣇⠀⠀⠀⠀ 19 | ⠀⠀⢸⡀⠀⢰⠁⠀⢀⢮⠀⠇⡜⠀⠘⠀⠀⢰⠃⠀⠀⡇⠈⠁⠀⢘⡄⠀⠀⢸⠀⠀⣘⣼⠤⠤⠤⣈⡞⡀⠀⠀⠀⡇⠰⡄⢣⡀⠀⠀⢻⠀⠀⠀⠀ 20 | ⠀⠀⠈⡇⠀⡜⠀⢀⠎⢸⢸⢰⠁⠀⠄⠀⢠⠃⠀⠀⢸⠀⠀⠀⠀⠀⡇⠀⠀⡆⠀⠀⣶⣿⡿⠿⡛⢻⡟⡇⠀⠀⠀⡇⠀⣿⣆⢡⠀⠀⢸⡇⠀⠀⠀ 21 | ⠀⠀⢠⡏⠀⠉⢢⡎⠀⡇⣿⠊⠀⠀⠀⢠⡏⠀⠀⠀⠎⠀⠀⠀⠀⠀⡇⠀⡸⠀⠀⠀⡇⠀⢰⡆⡇⢸⢠⢹⠀⠀⠀⡇⠀⢹⠈⢧⣣⠀⠘⡇⠀⠀⠀ 22 | ⠀⠀⢸⡇⠀⠀⠀⡇⠀⡇⢹⠀⠀⠀⢀⡾⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢠⠃⠀⠀⠠⠟⡯⣻⣇⢃⠇⢠⠏⡇⠀⢸⡆⠀⢸⠀⠈⢳⡀⠀⡇⠀⠀⠀ 23 | ⠀⠀⠀⣇⠀⡔⠋⡇⠀⢱⢼⠀⠀⡂⣼⡇⢹⣶⣶⣶⣤⣤⣀⠀⠀⠀⣇⠇⠀⠀⠀⠀⣶⡭⢃⣏⡘⠀⡎⠀⠇⠀⡾⣷⠀⣼⠀⠀⠀⢻⡄⡇⠀⠀⠀ 24 | ⠀⠀⠀⣹⠜⠋⠉⠓⢄⡏⢸⠀⠀⢳⡏⢸⠹⢀⣉⢭⣻⡽⠿⠛⠓⠀⠋⠀⠀⠀⠀⠀⠘⠛⠛⠓⠀⡄⡇⠀⢸⢰⡇⢸⡄⡟⠀⠀⠀⠀⢳⡇⠀⠀⠀ 25 | ⠀⣠⠞⠁⠀⠀⠀⠀⠀⢙⠌⡇⠀⣿⠁⠀⡇⡗⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠁⠁⠀⢸⣼⠀⠈⣇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀ 26 | ⢸⠁⠀⠀⢀⡠⠔⠚⠉⠉⢱⣇⢸⢧⠀⠀⠸⣱⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡤⠦⡔⠀⠀⠀⠀⠀⢀⡼⠀⠀⣼⡏⠀⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀ 27 | ⢸⠀⠀⠀⠋⠀⠀⠀⢀⡠⠤⣿⣾⣇⣧⠀⠀⢫⡆⠀⠀⠀⠀⠀⠀⠀⢨⠀⠀⣠⠇⠀⠀⢀⡠⣶⠋⠀⠀⡸⣾⠁⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ 28 | ⢸⡄⠀⠀⠀⠀⠠⠊⠁⠀⠀⢸⢃⠘⡜⡵⡀⠈⢿⡱⢲⡤⠤⢀⣀⣀⡀⠉⠉⣀⡠⡴⠚⠉⣸⢸⠀⠀⢠⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⠀⢧⠀⠀⠀⠀⠀⠀⠀⣀⠤⠚⠚⣤⣵⡰⡑⡄⠀⢣⡈⠳⡀⠀⠀⠀⢨⡋⠙⣆⢸⠀⠀⣰⢻⡎⠀⠀⡎⡇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⠀⠈⢷⡀⠀⠀⠀⠀⠀⠁⠀⠀⠀⡸⢌⣳⣵⡈⢦⡀⠳⡀⠈⢦⡀⠀⠘⠏⠲⣌⠙⢒⠴⡧⣸⡇⠀⡸⢸⠇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | ⠀⠀⢠⣿⠢⡀⠀⠀⠀⠠⠄⡖⠋⠀⠀⠙⢿⣳⡀⠑⢄⠹⣄⡀⠙⢄⡠⠤⠒⠚⡖⡇⠀⠘⣽⡇⢠⠃⢸⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 32 | ⠀⠀⣾⠃⠀⠀⠀⠀⠀⢀⡼⣄⠀⠀⠀⠀⠀⠑⣽⣆⠀⠑⢝⡍⠒⠬⢧⣀⡠⠊⠀⠸⡀⠀⢹⡇⡎⠀⡿⢸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 33 | ⠀⡼⠁⠀⠀⠀⠀⠀⠀⢀⠻⣺⣧⠀⠀⠀⠰⢢⠈⢪⡷⡀⠀⠙⡄⠀⠀⠱⡄⠀⠀⠀⢧⠀⢸⡻⠀⢠⡇⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 34 | ⢰⠇⠀⠀⠀⠀⠀⠀⠀⢸⠀⡏⣿⠀⠀⠀⠀⢣⢇⠀⠑⣄⠀⠀⠸⡄⠀⠀⠘⡄⠀⠀⠸⡀⢸⠁⠀⡾⢰⡏⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 35 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/konataThumb: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⠶⠚⠉⢉⣩⠽⠟⠛⠛⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠉⠀⢀⣠⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡞⠁⠀⠀⣰⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠀⠀⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⡤⠤⠄⢤⣄⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠒⠋⠉⠀⠀⠀⣀⣤⠴⠒⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⡄⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⢳⡄⢀⡴⠚⠉⠀⠀⠀⠀⠀⣠⠴⠚⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠘⣧⠀⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠹⡏⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠳⢬⣳⣄⣠⠤⠤⠶⠶⠒⠋⠀⠀⠀⠀⠹⡀⠀⠀⠀⠀⠈⠉⠛⠲⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠤⠖⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢳⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠋⠀⠀⠀⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⢃⠈⠙⠲⣄⡀⠀⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⢠⠞⠁⠀⠀⠀⢀⢾⠃⠀⠀⠀⠀⠀⠀⠀⠀⢢⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⣹⠮⣄⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⣰⠋⠀⠀⢀⡤⡴⠃⠈⠦⣀⠀⠀⠀⠀⠀⠀⢀⣷⢸⠀⠀⠀⠀⢀⣀⠘⡄⠤⠤⢤⠔⠒⠂⠉⠁⠀⠀⠀⠑⢄⡀⠀⠀⠙⢦⡀⠀⠀⠀ 14 | ⠀⠀⠀⠀⣼⠃⠀⠀⢠⣞⠟⠀⠀⠀⡄⠀⠉⠒⠢⣤⣤⠄⣼⢻⠸⠀⠀⠀⠀⠉⢤⠀⢿⡖⠒⠊⢦⠤⠤⣀⣀⡀⠀⠀⠀⠈⠻⡝⠲⢤⣀⠙⢦⠀⠀ 15 | ⠀⠀⠀⢰⠃⠀⠀⣴⣿⠎⠀⠀⢀⣜⠤⠄⢲⠎⠉⠀⠀⡼⠸⠘⡄⡇⠀⠀⠀⠀⢸⠀⢸⠘⢆⠀⠘⡄⠀⠀⠀⢢⠉⠉⠀⠒⠒⠽⡄⠀⠈⠙⠮⣷⡀ 16 | ⠀⠀⠀⡟⠀⠀⣼⢻⠧⠐⠂⠉⡜⠀⠀⡰⡟⠀⠀⠀⡰⠁⡇⠀⡇⡇⠀⠀⠀⠀⢺⠇⠀⣆⡨⢆⠀⢽⠀⠀⠀⠈⡷⡄⠀⠀⠀⠀⠹⡄⠀⠀⠀⠈⠁ 17 | ⠀⠀⢸⠃⠀⠀⢃⠎⠀⠀⠀⣴⠃⠀⡜⠹⠁⠀⠀⡰⠁⢠⠁⠀⢸⢸⠀⠀⠀⢠⡸⢣⠔⡏⠀⠈⢆⠀⣇⠀⠀⠀⢸⠘⢆⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀ 18 | ⠀⠀⢸⠀⠀⠀⡜⠀⠀⢀⡜⡞⠀⡜⠈⠏⠀⠈⡹⠑⠒⠼⡀⠀⠀⢿⠀⠀⠀⢀⡇⠀⢇⢁⠀⠀⠈⢆⢰⠀⠀⠀⠈⡄⠈⢢⠀⠀⠀⠈⣇⠀⠀⠀⠀ 19 | ⠀⠀⢸⡀⠀⢰⠁⠀⢀⢮⠀⠇⡜⠀⠘⠀⠀⢰⠃⠀⠀⡇⠈⠁⠀⢘⡄⠀⠀⢸⠀⠀⣘⣼⠤⠤⠤⣈⡞⡀⠀⠀⠀⡇⠰⡄⢣⡀⠀⠀⢻⠀⠀⠀⠀ 20 | ⠀⠀⠈⡇⠀⡜⠀⢀⠎⢸⢸⢰⠁⠀⠄⠀⢠⠃⠀⠀⢸⠀⠀⠀⠀⠀⡇⠀⠀⡆⠀⠀⣶⣿⡿⠿⡛⢻⡟⡇⠀⠀⠀⡇⠀⣿⣆⢡⠀⠀⢸⡇⠀⠀⠀ 21 | ⠀⠀⢠⡏⠀⠉⢢⡎⠀⡇⣿⠊⠀⠀⠀⢠⡏⠀⠀⠀⠎⠀⠀⠀⠀⠀⡇⠀⡸⠀⠀⠀⡇⠀⢰⡆⡇⢸⢠⢹⠀⠀⠀⡇⠀⢹⠈⢧⣣⠀⠘⡇⠀⠀⠀ 22 | ⠀⠀⢸⡇⠀⠀⠀⡇⠀⡇⢹⠀⠀⠀⢀⡾⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢠⠃⠀⠀⠠⠟⡯⣻⣇⢃⠇⢠⠏⡇⠀⢸⡆⠀⢸⠀⠈⢳⡀⠀⡇⠀⠀⠀ 23 | ⠀⠀⠀⣇⠀⡔⠋⡇⠀⢱⢼⠀⠀⡂⣼⡇⢹⣶⣶⣶⣤⣤⣀⠀⠀⠀⣇⠇⠀⠀⠀⠀⣶⡭⢃⣏⡘⠀⡎⠀⠇⠀⡾⣷⠀⣼⠀⠀⠀⢻⡄⡇⠀⠀⠀ 24 | ⠀⠀⠀⣹⠜⠋⠉⠓⢄⡏⢸⠀⠀⢳⡏⢸⠹⢀⣉⢭⣻⡽⠿⠛⠓⠀⠋⠀⠀⠀⠀⠀⠘⠛⠛⠓⠀⡄⡇⠀⢸⢰⡇⢸⡄⡟⠀⠀⠀⠀⢳⡇⠀⠀⠀ 25 | ⠀⣠⠞⠁⠀⠀⠀⠀⠀⢙⠌⡇⠀⣿⠁⠀⡇⡗⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠁⠁⠀⢸⣼⠀⠈⣇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀ 26 | ⢸⠁⠀⠀⢀⡠⠔⠚⠉⠉⢱⣇⢸⢧⠀⠀⠸⣱⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡤⠦⡔⠀⠀⠀⠀⠀⢀⡼⠀⠀⣼⡏⠀⠀⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀ 27 | ⢸⠀⠀⠀⠋⠀⠀⠀⢀⡠⠤⣿⣾⣇⣧⠀⠀⢫⡆⠀⠀⠀⠀⠀⠀⠀⢨⠀⠀⣠⠇⠀⠀⢀⡠⣶⠋⠀⠀⡸⣾⠁⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀ 28 | ⢸⡄⠀⠀⠀⠀⠠⠊⠁⠀⠀⢸⢃⠘⡜⡵⡀⠈⢿⡱⢲⡤⠤⢀⣀⣀⡀⠉⠉⣀⡠⡴⠚⠉⣸⢸⠀⠀⢠⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⠀⢧⠀⠀⠀⠀⠀⠀⠀⣀⠤⠚⠚⣤⣵⡰⡑⡄⠀⢣⡈⠳⡀⠀⠀⠀⢨⡋⠙⣆⢸⠀⠀⣰⢻⡎⠀⠀⡎⡇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⠀⠈⢷⡀⠀⠀⠀⠀⠀⠁⠀⠀⠀⡸⢌⣳⣵⡈⢦⡀⠳⡀⠈⢦⡀⠀⠘⠏⠲⣌⠙⢒⠴⡧⣸⡇⠀⡸⢸⠇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | ⠀⠀⢠⣿⠢⡀⠀⠀⠀⠠⠄⡖⠋⠀⠀⠙⢿⣳⡀⠑⢄⠹⣄⡀⠙⢄⡠⠤⠒⠚⡖⡇⠀⠘⣽⡇⢠⠃⢸⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 32 | ⠀⠀⣾⠃⠀⠀⠀⠀⠀⢀⡼⣄⠀⠀⠀⠀⠀⠑⣽⣆⠀⠑⢝⡍⠒⠬⢧⣀⡠⠊⠀⠸⡀⠀⢹⡇⡎⠀⡿⢸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 33 | ⠀⡼⠁⠀⠀⠀⠀⠀⠀⢀⠻⣺⣧⠀⠀⠀⠰⢢⠈⢪⡷⡀⠀⠙⡄⠀⠀⠱⡄⠀⠀⠀⢧⠀⢸⡻⠀⢠⡇⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 34 | ⢰⠇⠀⠀⠀⠀⠀⠀⠀⢸⠀⡏⣿⠀⠀⠀⠀⢣⢇⠀⠑⣄⠀⠀⠸⡄⠀⠀⠘⡄⠀⠀⠸⡀⢸⠁⠀⡾⢰⡏⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 35 | -------------------------------------------------------------------------------- /config/fastfetch/Img/lainDance: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⢤⣤⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣧⣐⠍⢙⣀⣼⣿⣿⣅⡐⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠉⠙⠻⣿⣿⣿⣿⣿⣯⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣶⠆⠀⢀⣺⡃⣀⠀⠀⠀⠈⢿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣷⣼⠆⠀⡌⢹⣿⣿⠀⢄⠀⠀⠈⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⠀⠸⣷⣿⣿⣿⣆⣠⣿⡄⠀⣼⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⠂⠀⠹⡿⣿⣿⣿⣿⣿⠀⠀⠟⠈⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠏⢰⣿⣦⡀⠚⠛⢿⣿⡿⠀⠀⢸⠇⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢿⣿⣿⠀⢾⣿⣿⡇⢻⡏⠀⠀⠀⠀⠀⡆⢰⣿⣿⡗⢠⣿⣿⣷⣦⣤⣤⣀⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠒⠿⠿⣿⣿⠸⠇⠀⠀⠀⠀⠀⣷⠘⣿⠟⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢆⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠀⠀⠀⠀⠀⠀⣿⠀⣃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠘⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠀⠀⠀⠀⠀⠀⢄⣸⣿⣿⣿⣿⣭⣭⡉⠉⠉⠉⠈⠉⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠛⢸⡄⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 14 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣶⢸⣷⠀⠀⠀⠀⠈⣇⣽⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 15 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠛⠈⠉⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 16 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⢷⡆⠀⠀⠀⠀⠀⠀⠈⣄⣼⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 17 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠃⠀⠀⠀⠀⠀⠀⠀⢹⠛⢿⣿⠟⠁⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 18 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⣴⡀⢰⡆⢀⣤⣄⣒⡉⠀⣶⣀⣎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 19 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⡟⠀⣼⡿⣷⢾⠇⢠⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 20 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣉⠛⠛⠁⢴⣽⣷⣧⣼⡄⠸⣽⡿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 21 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣯⣿⣿⣿⣿⣿⣷⡶⣦⣴⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 22 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡯⢽⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 23 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 24 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 25 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 26 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣰⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 27 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢾⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 28 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠉⠙⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣾⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠻⠿⢿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢰⣶⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 32 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 33 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 34 | -------------------------------------------------------------------------------- /config/fastfetch/Ascii-Art/lainDance: -------------------------------------------------------------------------------- 1 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⢤⣤⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 2 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣧⣐⠍⢙⣀⣼⣿⣿⣅⡐⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 3 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠉⠙⠻⣿⣿⣿⣿⣿⣯⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 4 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣶⠆⠀⢀⣺⡃⣀⠀⠀⠀⠈⢿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 5 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣷⣼⠆⠀⡌⢹⣿⣿⠀⢄⠀⠀⠈⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 6 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⠀⠸⣷⣿⣿⣿⣆⣠⣿⡄⠀⣼⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 7 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⠂⠀⠹⡿⣿⣿⣿⣿⣿⠀⠀⠟⠈⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 8 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠏⢰⣿⣦⡀⠚⠛⢿⣿⡿⠀⠀⢸⠇⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 9 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢿⣿⣿⠀⢾⣿⣿⡇⢻⡏⠀⠀⠀⠀⠀⡆⢰⣿⣿⡗⢠⣿⣿⣷⣦⣤⣤⣀⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 10 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠒⠿⠿⣿⣿⠸⠇⠀⠀⠀⠀⠀⣷⠘⣿⠟⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢆⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 11 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠀⠀⠀⠀⠀⠀⣿⠀⣃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠘⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 12 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣧⠀⠀⠀⠀⠀⠀⢄⣸⣿⣿⣿⣿⣭⣭⡉⠉⠉⠉⠈⠉⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 13 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠛⢸⡄⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 14 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣶⢸⣷⠀⠀⠀⠀⠈⣇⣽⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 15 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠛⠈⠉⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 16 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⢷⡆⠀⠀⠀⠀⠀⠀⠈⣄⣼⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 17 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠃⠀⠀⠀⠀⠀⠀⠀⢹⠛⢿⣿⠟⠁⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 18 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⣴⡀⢰⡆⢀⣤⣄⣒⡉⠀⣶⣀⣎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 19 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⡟⠀⣼⡿⣷⢾⠇⢠⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 20 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣉⠛⠛⠁⢴⣽⣷⣧⣼⡄⠸⣽⡿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 21 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣯⣿⣿⣿⣿⣿⣷⡶⣦⣴⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 22 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡯⢽⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 23 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 24 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 25 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 26 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣰⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 27 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⢾⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 28 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠉⠙⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣾⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 29 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠻⠿⢿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 30 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢰⣶⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 31 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 32 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 33 | ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 34 | -------------------------------------------------------------------------------- /Scripts/Hyprland/powermode.sh: -------------------------------------------------------------------------------- 1 | user_args="$1" 2 | state_file="~/.config/hypr/Scripts/Hyprland/state_file" 3 | modes="Available modes are:\e[1m\ncycle (cycles through all options, useful for scripts)\ndefault\nperformance\nbalanced\npower-saver\e[0m" 4 | 5 | 6 | if [[ -f "$state_file" ]]; then 7 | : 8 | else 9 | touch "$state_file" 10 | echo "Set to default mode" > "$state_file" 11 | fi 12 | 13 | 14 | cycle() { 15 | current_mode=$(cat "$state_file" | cut -d ' ' -f 3) 16 | 17 | case "$current_mode" in 18 | default) 19 | next_mode="performance" 20 | ;; 21 | performance) 22 | next_mode="balanced" 23 | ;; 24 | balanced) 25 | next_mode="power-saver" 26 | ;; 27 | power-saver) 28 | next_mode="default" 29 | ;; 30 | *) 31 | next_mode="default" 32 | ;; 33 | esac 34 | 35 | user_args="$next_mode" 36 | main 37 | } 38 | 39 | 40 | main() { 41 | case $user_args in 42 | cycle) 43 | cycle 44 | ;; 45 | default) 46 | hyprctl keyword monitor eDP-2,1920x1200@165Hz,1920x0,1.0 47 | hyprctl keyword monitor eDP-1,1920x1200@165Hz,1920x0,1.0 48 | powerprofilesctl set balanced 49 | asusctl -k high 50 | echo -e "Set to \e[1mdefault\e[0m" ; message="Set to default mode" ; echo "$message" > "$state_file" 51 | ;; 52 | performance) 53 | hyprctl keyword monitor eDP-2,1920x1200@165Hz,1920x0,1.0 54 | hyprctl keyword monitor eDP-1,1920x1200@165Hz,1920x0,1.0 55 | powerprofilesctl set performance 56 | asusctl -k high 57 | echo -e "Set to \e[1mpower-saver\e[0m" ; message="Set to performance mode" ; echo "$message" > "$state_file" 58 | ;; 59 | balanced) 60 | hyprctl keyword monitor eDP-2,1920x1200@90Hz,1920x0,1.0 61 | hyprctl keyword monitor eDP-1,1920x1200@90Hz,1920x0,1.0 62 | powerprofilesctl set balanced 63 | asusctl -k med 64 | echo -e "Set to \e[1mbalanced\e[0m" ; message="Set to balanced mode" ; echo "$message" > "$state_file" 65 | ;; 66 | power-saver) 67 | hyprctl keyword monitor eDP-2,1920x1200@60Hz,1920x0,1.0 68 | hyprctl keyword monitor eDP-1,1920x1200@60Hz,1920x0,1.0 69 | powerprofilesctl set power-saver 70 | asusctl -k low 71 | echo -e "Set to \e[1mpower-saver\e[0m" ; message="Set to power-saver mode" ; echo "$message" > "$state_file" 72 | ;; 73 | *) 74 | echo -e "Invalid option. $modes" 75 | ;; 76 | esac 77 | } 78 | 79 | 80 | transient_notification() { 81 | notify-send -t 2500 -h boolean:transient:true \ 82 | -h string:x-canonical-private-synchronous:powermode-wrapper "$message" 83 | } 84 | 85 | 86 | if [[ -z "$user_args" ]]; then 87 | echo -e "No arguments passed. $modes" 88 | exit 1 89 | else 90 | main 91 | transient_notification 92 | fi 93 | -------------------------------------------------------------------------------- /config/swaync/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "/etc/xdg/swaync/configSchema.json", 3 | "positionX": "right", 4 | "positionY": "top", 5 | "layer": "overlay", 6 | "control-center-layer": "top", 7 | "layer-shell": true, 8 | "cssPriority": "application", 9 | "control-center-margin-top": 5, 10 | "control-center-margin-bottom": 5, 11 | "control-center-margin-right": 5, 12 | "control-center-margin-left": 5, 13 | "notification-2fa-action": true, 14 | "notification-inline-replies": false, 15 | "notification-icon-size": 64, 16 | "notification-body-image-height": 100, 17 | "notification-body-image-width": 200, 18 | "timeout": 3.5, 19 | "timeout-low": 1.5, 20 | "timeout-critical": 0, 21 | "fit-to-screen": true, 22 | "relative-timestamps": true, 23 | "control-center-width": 500, 24 | "control-center-height": 600, 25 | "notification-window-width": 500, 26 | "keyboard-shortcuts": true, 27 | "image-visibility": "when-available", 28 | "transition-time": 200, 29 | "hide-on-clear": false, 30 | "hide-on-action": true, 31 | "script-fail-notify": true, 32 | "scripts": { 33 | "idle-inhibit": { 34 | "exec": "echo 'do something'", 35 | "urgency": "Normal" 36 | }, 37 | "example-action-script": { 38 | "exec": "echo 'Do something actionable!'", 39 | "urgency": "Normal", 40 | "run-on": "action" 41 | } 42 | }, 43 | "notification-visibility": { 44 | "example-name": { 45 | "state": "muted", 46 | "urgency": "Low", 47 | "app-name": "Spotify" 48 | } 49 | }, 50 | "widgets": [ 51 | "buttons-grid", 52 | "dnd", 53 | "mpris", 54 | "inhibitors", 55 | "title", 56 | "notifications" 57 | ], 58 | "widget-config": { 59 | "inhibitors": { 60 | "text": "Inhibitors", 61 | "button-text": "Clear All", 62 | "clear-all-button": true 63 | }, 64 | "volume": { 65 | "label": "  " 66 | }, 67 | "title": { 68 | "text": "󰂚 Notifications", 69 | "clear-all-button": true, 70 | "button-text": "  " 71 | }, 72 | "dnd": { 73 | "text": " Do Not Disturb" 74 | }, 75 | "label": { 76 | "max-lines": 5, 77 | "text": "Label Text" 78 | }, 79 | "mpris": { 80 | "image-size": 106, 81 | "image-radius": 1000 82 | }, 83 | "buttons-grid": { 84 | "actions": [ 85 | { 86 | "label": "", 87 | "type": "toggle", 88 | "active": false, 89 | "command": "bash ~/.config/hypr/Scripts/Swaync/idle_inhibitor-swaync.sh" 90 | }, 91 | { 92 | "label": "", 93 | "command": "/home/spacerat/.config/hypr/Swaync/Scripts/kdeconnectd_toggle.sh" 94 | }, 95 | { 96 | "label": "", 97 | "command": "~/.config/hypr/Scripts/Swaync/wifi_toggle.sh" 98 | }, 99 | { 100 | "label": "", 101 | "command": "~/.config/hypr/Scripts/Swaync/bluetooth_toggle-swaync.sh" 102 | }, 103 | { 104 | "label": "󰗽", 105 | "command": "swaync-client -t ; playerctl --all-players pause && pidof hyprlock || hyprlock" 106 | }, 107 | { 108 | "label": "", 109 | "command": "swaync-client -t ; pidof wlogout || wlogout" 110 | } 111 | ] 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /config/hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | source = ~/.cache/wal/colors-hyprland.conf 2 | 3 | general { 4 | ignore_empty_input = true 5 | } 6 | 7 | input-field { 8 | placeholder_text =  Password 9 | size = 290, 80 10 | outline_thickness = 1 11 | font_color = $color6 12 | inner_color = $background 13 | outer_color = $background 14 | dots_size = 0.40 15 | fail_text = $FAIL ($ATTEMPTS) 16 | fail_color = $color11 17 | check_color = $color6 18 | fade_on_empty = true 19 | fade_timeout = 3500 20 | font_family = JetBrainsMono NF Bold 21 | position = 0, -150 22 | rounding = 15 23 | halign = center 24 | valign = center 25 | } 26 | 27 | label { 28 | text = cmd[update:1000] echo -e "$(date +"%l:%M %p")" 29 | font_size = 95 30 | font_family = Geist Mono SemiBold 31 | color = $color6 32 | position = 0, -290 33 | halign = center 34 | valign = top 35 | shadow_passes = 3 36 | shadow_size = 1 37 | shadow_color = rgba(50, 50, 50, 0.50) 38 | } 39 | 40 | label { 41 | text =  $USER 42 | font_size = 13 43 | color = $foreground 44 | font_family = JetBrainsMono Nerd Font 45 | position = 20, -580 46 | halign = left 47 | valign = center 48 | shadow_passes = 2 49 | shadow_size = 1 50 | shadow_color = rgba(50, 50, 50, 0.15) 51 | onclick = pkill -x wlogout || wlogout 52 | } 53 | 54 | label { 55 | text = cmd[update:1000] echo -e "$(date +"%b, %d %A")" 56 | font_size = 35 57 | font_family = Geist Mono Medium 58 | color = $color6 59 | position = 0, -460 60 | halign = center 61 | valign = top 62 | shadow_passes = 3 63 | shadow_size = 1 64 | shadow_color = rgba(50, 50, 50, 0.50) 65 | } 66 | 67 | label { 68 | text = cmd[update:250000] bash ~/.config/hypr/Scripts/Hyprlock/weather.sh 69 | color = $color6 70 | font_size = 20 71 | font_family = JetBrainsMono Nerd Font 72 | position = 0, 180 73 | halign = center 74 | valign = bottom 75 | shadow_passes = 2 76 | shadow_size = 1 77 | shadow_color = rgba(50, 50, 50, 0.15) 78 | } 79 | 80 | #label { 81 | # text = cmd[update:1000] echo "󱎫 $(echo -e "Uptime" | uptime -p | sed -e 's/up //g')" 82 | # font_family = JetBrainsMono Nerd Font 83 | # font_size = 13 84 | # position = 0, -990 85 | # halign = center 86 | # valign = top 87 | # shadow_passes = 2 88 | # shadow_size = 1 89 | # shadow_color = rgba(50, 50, 50, 0.15) 90 | # color = $foreground 91 | #} 92 | 93 | label { 94 | text = cmd[update:1000] echo -e "$(~/.config/hypr/Scripts/Hyprlock/batteryInfoHyprlock.sh)" 95 | font_family = JetBrainsMono Nerd Font 96 | font_size = 13 97 | position = -20, -580 98 | halign = right 99 | valign = center 100 | shadow_passes = 2 101 | shadow_size = 1 102 | shadow_color = rgba(50, 50, 50, 0.15) 103 | color = $foreground 104 | } 105 | 106 | background { 107 | path = /home/spacerat/Pictures/Wallpapers/PyWal/pywallpaper 108 | blur_size = 3 109 | blur_passes = 2 110 | noise = 0 111 | brightness = 0.95 112 | contrast = 1.1000 113 | vibrancy = 0.2000 114 | vibrancy_darkness = 0.0 115 | } 116 | 117 | animations { 118 | enabled = true 119 | 120 | bezier = bubbles, 0.05, 0.9, 0.1, 1.05 121 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 122 | bezier = winOut, 0.3, -0.3, 0, 1 123 | bezier = linear, 1, 1, 1, 1 124 | 125 | animation = fadeIn, 1, 5, bubbles 126 | animation = fadeOut, 1, 2, linear 127 | 128 | animation = inputFieldColors, 1, 5, winIn 129 | animation = inputFieldFade, 1, 5, winOut 130 | #animation = inputFieldWidth, 1, 5, winOut 131 | #animation = inputFieldDots, 3, 1, linear 132 | } 133 | -------------------------------------------------------------------------------- /config/starship.toml: -------------------------------------------------------------------------------- 1 | # version: 1.0.0 2 | 3 | add_newline = false 4 | continuation_prompt = "[▸▹ ](dimmed white)" 5 | 6 | format = """($nix_shell$container$git_metrics\n)$cmd_duration\ 7 | $hostname\ 8 | $localip\ 9 | $shlvl\ 10 | $shell\ 11 | $env_var\ 12 | $jobs\ 13 | $sudo\ 14 | $username\ 15 | $os\ 16 | $character""" 17 | 18 | right_format = """ 19 | $singularity\ 20 | $kubernetes\ 21 | $directory\ 22 | $vcsh\ 23 | $fossil_branch\ 24 | $git_branch\ 25 | $git_commit\ 26 | $git_state\ 27 | $git_status\ 28 | $hg_branch\ 29 | $pijul_channel\ 30 | $docker_context\ 31 | $package\ 32 | $c\ 33 | $cpp\ 34 | $cmake\ 35 | $cobol\ 36 | $daml\ 37 | $dart\ 38 | $deno\ 39 | $dotnet\ 40 | $elixir\ 41 | $elm\ 42 | $erlang\ 43 | $fennel\ 44 | $golang\ 45 | $guix_shell\ 46 | $haskell\ 47 | $haxe\ 48 | $helm\ 49 | $java\ 50 | $julia\ 51 | $kotlin\ 52 | $gradle\ 53 | $lua\ 54 | $nim\ 55 | $nodejs\ 56 | $ocaml\ 57 | $opa\ 58 | $perl\ 59 | $php\ 60 | $pulumi\ 61 | $purescript\ 62 | $python\ 63 | $raku\ 64 | $rlang\ 65 | $red\ 66 | $ruby\ 67 | $rust\ 68 | $scala\ 69 | $solidity\ 70 | $swift\ 71 | $terraform\ 72 | $vlang\ 73 | $vagrant\ 74 | $zig\ 75 | $buf\ 76 | $conda\ 77 | $pixi\ 78 | $meson\ 79 | $spack\ 80 | $memory_usage\ 81 | $aws\ 82 | $gcloud\ 83 | $openstack\ 84 | $azure\ 85 | $crystal\ 86 | $custom\ 87 | $status\ 88 | $battery\ 89 | $time""" 90 | 91 | [fill] 92 | symbol = ' ' 93 | 94 | [character] 95 | format = "$symbol " 96 | success_symbol = "[󰅂](bold bright-yellow)" 97 | error_symbol = "[󰅂](bold purple)" 98 | vimcmd_symbol = "[](bold bright-yellow)" 99 | # not supported in zsh 100 | vimcmd_replace_one_symbol = " Replace one" 101 | vimcmd_replace_symbol = " Replace" 102 | vimcmd_visual_symbol = " Visual" 103 | 104 | [env_var.VIMSHELL] 105 | format = "[$env_value]($style)" 106 | style = 'green italic' 107 | 108 | [os] 109 | format = "on [($type $symbol)]($style)" 110 | style = "bold blue" 111 | disabled = false 112 | 113 | [os.symbols] 114 | AIX = "➿ " 115 | Alpaquita = "🔔 " 116 | AlmaLinux = "💠 " 117 | Alpine = "🏔️ " 118 | Amazon = "🙂 " 119 | Android = "🤖 " 120 | Arch = "󰣇 " 121 | Artix = " " 122 | Bluefin = "🐟 " 123 | CachyOS = "🎗️ " 124 | CentOS = "💠 " 125 | Debian = "🌀 " 126 | DragonFly = "🐉 " 127 | Emscripten = "🔗 " 128 | EndeavourOS = "🚀 " 129 | Fedora = " " 130 | FreeBSD = "😈 " 131 | Garuda = "🦅 " 132 | Gentoo = "🗜️ " 133 | HardenedBSD = "🛡️ " 134 | Illumos = "🐦 " 135 | Kali = "🐉 " 136 | Linux = "🐧 " 137 | Mabox = "📦 " 138 | Macos = "🍎 " 139 | Manjaro = "🥭 " 140 | Mariner = "🌊 " 141 | MidnightBSD = "🌘 " 142 | Mint = "🌿 " 143 | NetBSD = "🚩 " 144 | NixOS = "󱄅 " 145 | Nobara = "🎩 " 146 | OpenBSD = "🐡 " 147 | OpenCloudOS = "☁️ " 148 | openEuler = "🦉 " 149 | openSUSE = "🦎 " 150 | OracleLinux = "🦴 " 151 | Pop = "🍭 " 152 | Raspbian = "🍓 " 153 | Redhat = "🎩 " 154 | RedHatEnterprise = "🎩 " 155 | RockyLinux = "💠 " 156 | Redox = "🧪 " 157 | Solus = "⛵ " 158 | SUSE = "🦎 " 159 | Ubuntu = "🎯 " 160 | Ultramarine = "🔷 " 161 | Unknown = "❓ " 162 | Uos = "🐲 " 163 | Void = " " 164 | Windows = "🪟 " 165 | 166 | [sudo] 167 | format = "[$symbol]($style)" 168 | style = "bold italic bright-purple" 169 | symbol = "⋈ " 170 | disabled = false 171 | 172 | [username] 173 | style_user = "bright-yellow bold" 174 | style_root = "purple bold italic" 175 | format = "[⭘ $user]($style) " 176 | disabled = false 177 | show_always = false 178 | 179 | [directory] 180 | #home_symbol = " " 181 | #truncation_length = 2 182 | #truncation_symbol = "□ " 183 | read_only = "  " 184 | use_os_path_sep = true 185 | style = "italic blue" 186 | format = '[$path]($style)[$read_only]($read_only_style)' 187 | repo_root_style = 'bold blue' 188 | repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) [△](bold bright-blue)' 189 | 190 | [directory.substitutions] 191 | "Desktop" = "  " 192 | "Documents" = "  " 193 | "Downloads" = "  " 194 | "Music" = " 󰎈 " 195 | "Pictures" = "  " 196 | "Videos" = "  " 197 | 198 | [cmd_duration] 199 | format = "[󱎫 $duration ](semibold white)" 200 | 201 | [jobs] 202 | format = "[$symbol$number]($style) " 203 | style = "white" 204 | symbol = "[▶](blue italic)" 205 | 206 | [localip] 207 | ssh_only = true 208 | format = " ◯[$localipv4](bold magenta)" 209 | disabled = false 210 | 211 | [time] 212 | disabled = false 213 | format = "[ $time]($style)" 214 | time_format = "%I:%M:%S %p" 215 | utc_time_offset = "local" 216 | style = "semibold dimmed white" 217 | 218 | [battery] 219 | format = "[ $percentage $symbol]($style)" 220 | full_symbol = "█" 221 | charging_symbol = "[↑](italic bold green)" 222 | discharging_symbol = "↓" 223 | unknown_symbol = "░" 224 | empty_symbol = "▃" 225 | 226 | [[battery.display]] 227 | threshold = 20 228 | style = "italic bold red" 229 | 230 | [[battery.display]] 231 | threshold = 60 232 | style = "italic dimmed bright-purple" 233 | 234 | [[battery.display]] 235 | threshold = 70 236 | style = "italic dimmed yellow" 237 | 238 | [git_branch] 239 | format = " [$branch(:$remote_branch)]($style)" 240 | symbol = "[󰘬](bold italic bright-blue)" 241 | style = "italic bright-blue" 242 | truncation_symbol = "⋯" 243 | truncation_length = 11 244 | ignore_branches = ["main", "master"] 245 | only_attached = true 246 | 247 | [git_metrics] 248 | format = '([▴$added]($added_style))([▿$deleted]($deleted_style))' 249 | added_style = 'italic dimmed green' 250 | deleted_style = 'italic dimmed red' 251 | ignore_submodules = true 252 | disabled = false 253 | 254 | [git_status] 255 | style = "bold italic bright-blue" 256 | format = "([⎪$ahead_behind$staged$modified$untracked$renamed$deleted$conflicted$stashed⎥]($style))" 257 | conflicted = "[◪◦](italic bright-magenta)" 258 | ahead = "[▴│[${count}](bold white)│](italic green)" 259 | behind = "[▿│[${count}](bold white)│](italic red)" 260 | diverged = "[◇ ▴┤[${ahead_count}](regular white)│▿┤[${behind_count}](regular white)│](italic bright-magenta)" 261 | untracked = "[◌◦](italic bright-yellow)" 262 | stashed = "[◃◈](italic white)" 263 | modified = "[●◦](italic yellow)" 264 | staged = "[▪┤[$count](bold white)│](italic bright-cyan)" 265 | renamed = "[◎◦](italic bright-blue)" 266 | deleted = "[✕](italic red)" 267 | 268 | [package] 269 | format = " [pkg](italic dimmed) [$symbol$version]($style)" 270 | version_format = "${raw}" 271 | symbol = "◨ " 272 | style = "dimmed yellow italic bold" 273 | 274 | [docker_context] 275 | symbol = "◧ " 276 | format = " docker [$symbol$context]($style)" 277 | 278 | [memory_usage] 279 | symbol = "▪▫▪ " 280 | format = " mem [${ram}( ${swap})]($style)" 281 | 282 | [nix_shell] 283 | style = 'bold italic dimmed blue' 284 | symbol = '✶' 285 | format = '[$symbol nix⎪$state⎪]($style) [$name](italic dimmed white)' 286 | impure_msg = '[⌽](bold dimmed red)' 287 | pure_msg = '[⌾](bold dimmed green)' 288 | unknown_msg = '[◌](bold dimmed ellow)' 289 | -------------------------------------------------------------------------------- /config/waybar/style.css: -------------------------------------------------------------------------------- 1 | @import url("/home/spacerat/.cache/wal/colors-waybar.css"); 2 | 3 | * { 4 | font-family: JetBrainsMonoNerdFont, NotoFontsEmoji, FontAwesome; 5 | font-size: 13.0px; 6 | min-height: 0px; 7 | margin-left: 2px; 8 | margin-right: 2px; 9 | } 10 | 11 | window#waybar { 12 | background: alpha(@background, 0.80); 13 | color: @foreground; 14 | transition-property: background-color; 15 | transition-duration: .5s; 16 | } 17 | 18 | window#waybar.empty #window { 19 | background-color: transparent 20 | } 21 | 22 | /*window#waybar.empty { 23 | border-bottom: 1px solid alpha(@foreground, 0.35); 24 | box-shadow: inset 0 -1.5px 0 alpha(@background, 0.70); 25 | }*/ 26 | 27 | #custom-swaync, 28 | #custom-applications { 29 | margin-right: 2px; 30 | text-shadow: 0px 0px 2px alpha(@color6, .3); 31 | } 32 | 33 | #custom-applications { 34 | margin-left: -2px; 35 | } 36 | 37 | #custom-bluetooth-status { 38 | margin-left: 0px; 39 | margin-right: 0px; 40 | } 41 | 42 | #custom-expander { 43 | margin-right: 4px; 44 | text-shadow: 0px 0px 2px alpha(@foreground, .5) 45 | } 46 | 47 | #custom-seperator_2, 48 | #custom-seperator { 49 | margin-top: 1px; 50 | color: alpha(@foreground, 0.25); 51 | } 52 | 53 | window#waybar.empty #custom-seperator { 54 | color: transparent 55 | } 56 | 57 | #custom-expander, 58 | #custom-pacman-updates { 59 | margin-left: 6px; 60 | margin-right: 6px; 61 | } 62 | 63 | #custom-expander:hover, 64 | #custom-pacman-updates:hover { 65 | color: @color1; 66 | transition: color .12s ease-in 67 | } 68 | 69 | #custom-pacman-updates { 70 | margin-left: -0px; 71 | } 72 | 73 | button { 74 | box-shadow: inset 0 -3px transparent; 75 | border: none; 76 | border-radius: 0; 77 | } 78 | 79 | button:hover { 80 | background: inherit; 81 | box-shadow: inset 0 -3px #ffffff; 82 | } 83 | 84 | #workspaces { 85 | /*background: alpha(@background, 0.55) 55%;*/ 86 | margin-top: 1px; 87 | margin-bottom: 1px; 88 | border-radius: 6px; 89 | } 90 | 91 | #workspaces button { 92 | text-shadow: 0px 0px 2px alpha(@color6, .2); 93 | padding: 0 5px; 94 | color: @color15; 95 | transition: color .10s linear 96 | } 97 | 98 | #workspaces button:hover, 99 | #workspaces button.active { 100 | background: linear-gradient( 101 | 180deg, 102 | alpha(@color6, 0.90) 50%, 103 | alpha(@color6, 0.85) 104 | ); 105 | color: @background; 106 | border-radius: 5px; 107 | box-shadow: inset 0 0px @transparent; /* Fixes glitch when hover */ 108 | box-shadow: 0px 0px 5px alpha(@background, .5); 109 | text-shadow: 0px 0px 5px alpha(@background, .5); 110 | margin-top: 1px; 111 | margin-bottom: 1px; 112 | transition: border-radius .10s linear 113 | } 114 | 115 | #workspaces button.urgent { 116 | color: @color1; 117 | } 118 | 119 | #window, 120 | #taskbar { 121 | margin-left: 8px; 122 | } 123 | 124 | #window { 125 | text-shadow: 0px 0px 2px alpha(@color6, .2); 126 | color: @foreground; 127 | transition: text-shadow 1s ease-in 128 | } 129 | 130 | #taskbar button { 131 | text-shadow: 0px 0px 2px alpha(@color6, .2); 132 | border-top: 1.5px solid alpha(@color6, 0.55); 133 | margin-left: 1px; 134 | margin-right: 1px; 135 | padding-left: 12px; 136 | padding-right: 8px; 137 | color: @foreground; 138 | transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1); 139 | } 140 | 141 | #taskbar button.active { 142 | border-top: 1.5px solid @color3; 143 | background: alpha(@background, 0.45) 45%; 144 | } 145 | 146 | #taskbar button:hover { 147 | border-top: 1.5px solid @color3; 148 | box-shadow: inset 0 0px @transparent; /* Fixes glitch when hover */ 149 | } 150 | 151 | #clock { 152 | margin-left: 2px 153 | } 154 | 155 | #custom-uptime, 156 | #temperature, 157 | #cpu, 158 | #memory, 159 | #custom-splitint, 160 | #custom-applications, 161 | #clock, 162 | #battery, 163 | #network, 164 | #pulseaudio, 165 | #backlight, 166 | #tray, 167 | #submap { 168 | color: @foreground; 169 | padding: 0 10px; 170 | text-shadow: 0px 0px 2px alpha(@color6, .2); 171 | } 172 | 173 | #custom-uptime:hover, 174 | #window:hover, 175 | #custom-bluetooth-status:hover, 176 | #custom-splitint:hover, 177 | #custom-swaync:hover, 178 | #custom-applications:hover, 179 | #network:hover, 180 | #clock:hover, 181 | #cpu:hover, 182 | #memory:hover, 183 | /*#pulseaudio:hover,*/ 184 | #pulseaudionslider:hover, 185 | #pulseaudionslider:hover #pulseaudio, 186 | #backlight:hover, 187 | #battery:hover, 188 | #temperature:hover { 189 | border-radius: 6px; 190 | background-color: @color6; 191 | color: @background; 192 | transition: all .12s ease-in 193 | 194 | } 195 | 196 | #custom-splitint { 197 | color: @color6 198 | } 199 | 200 | #submap { 201 | background: linear-gradient( 202 | 180deg, 203 | alpha(@color1, 0.90) 50%, 204 | alpha(@color1, 0.85) 205 | ); 206 | color: @background; 207 | border-radius: 6px; 208 | margin-top: 2px; 209 | margin-bottom: 2px; 210 | transition: all .30s ease-in 211 | } 212 | 213 | @keyframes battery_blink { 214 | to { 215 | color: @foreground; 216 | color: @color1; 217 | } 218 | } 219 | 220 | #battery { 221 | margin-right: -3px 222 | } 223 | 224 | /* Using steps() instead of linear as a timing function to limit cpu usage */ 225 | #battery.critical:not(.charging) { 226 | animation-name: battery_blink; 227 | animation-duration: 2.5s; 228 | animation-timing-function: linear; 229 | animation-iteration-count: infinite; 230 | animation-direction: alternate; 231 | } 232 | 233 | #battery.charging { 234 | color: @color6 235 | } 236 | 237 | #network.wifi { 238 | margin-right: 4px; 239 | } 240 | 241 | #network.disconnected { 242 | color: @color1 243 | } 244 | 245 | #pulseaudio { 246 | color: @color6; 247 | } 248 | 249 | #pulseaudio.muted { 250 | color: @color1; 251 | } 252 | 253 | #backlightnslider, 254 | #pulseaudionslider { 255 | margin-right: -2px; 256 | margin-top: -5px; 257 | margin-bottom: -5px; 258 | background: transparent; 259 | transition: all 0.5s; 260 | } 261 | 262 | #backlight-slider slider, 263 | #pulseaudio-slider slider { 264 | min-height: 0px; 265 | min-width: 0px; 266 | background: @color6; 267 | border: none; 268 | box-shadow: 0px 0px 2px alpha(@color6, .2); 269 | } 270 | 271 | 272 | #backlight-slider trough, 273 | #pulseaudio-slider trough { 274 | margin-left: -4px; 275 | min-height: 8px; 276 | min-width: 50px; 277 | border-radius: 2px; 278 | border: none; 279 | background: @color3; 280 | } 281 | 282 | #backlight-slider highlight, 283 | #pulseaudio-slider highlight { 284 | min-width: 10px; 285 | border-radius: 2px; 286 | border: 0px solid @background; 287 | background: @color6; 288 | } 289 | 290 | #backlight { 291 | } 292 | 293 | #cpu { 294 | } 295 | 296 | #memory { 297 | margin-right: -2px; 298 | } 299 | 300 | #tray { 301 | padding: 0px 6px; 302 | } 303 | 304 | #tray > .passive { 305 | -gtk-icon-effect: dim; 306 | } 307 | 308 | #tray > .needs-attention { 309 | -gtk-icon-effect: highlight; 310 | background-color: @color1; 311 | } 312 | -------------------------------------------------------------------------------- /Scripts/Hyprland/devwatch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sound_cmd="paplay --property=media.role=event" 4 | 5 | 6 | timer() { 7 | local elapsed=$({ time "$@"; } 2>&1 | grep real | awk '{print $2}') 8 | echo -e "\e[2m🔊 $elapsed\e[0m" 9 | } 10 | 11 | 12 | transient_notification() { 13 | notify-send -t 5000 -h boolean:transient:true \ 14 | -h string:x-canonical-private-synchronous:devwatch_transient_notification "$1" "$2" 15 | } 16 | 17 | 18 | block_device_watch_notification() { 19 | echo -e "\e[1m[*] Watching block devices ...\e[0m" 20 | 21 | udisksctl monitor | \ 22 | while read -r line; do 23 | dev=$(echo "$line" | grep -oP 'block_devices/\K[^ ]+') 24 | 25 | if [[ -z "$dev" ]] || [[ "$dev" =~ [0-9]$ ]]; then 26 | continue 27 | fi 28 | 29 | case "$line" in 30 | *"Added"*) 31 | notify-send "💽 Device added" "/dev/$dev" 32 | echo "[+] Block device added: /dev/$dev" 33 | ;; 34 | *"Removed"*) 35 | notify-send "🗄️ Device removed" "/dev/$dev" 36 | echo "[-] Block device removed: /dev/$dev" 37 | ;; 38 | *"Properties Changed"*) 39 | read -r mount_line 40 | 41 | if [[ "$mount_line" == *'MountPoints: '* ]]; then 42 | mount_point=$(echo "$mount_line" | grep -oP 'MountPoints:\s+\K.*') 43 | 44 | elif [[ -n "$mount_point" ]]; then 45 | mount_point=$(echo "$mount_point" | xargs) 46 | message="📁 Device mounted" 47 | message2="/dev/$dev --> $mount_point 📋" 48 | wl-copy "$mount_point" 49 | else 50 | message="📂 Device unmounted" 51 | message2="$mount_point --> /dev/$dev" 52 | fi 53 | 54 | transient_notification "$message" "$message2" 55 | ;; 56 | esac 57 | done 58 | } 59 | 60 | 61 | usb_watch_notification() { 62 | echo -e "\e[1m[*] Watching USB devices ...\e[0m" 63 | 64 | udevadm monitor --udev --subsystem-match=usb --env | \ 65 | while IFS= read -r line; do 66 | if [[ -z "$line" ]]; then 67 | 68 | if [[ "$ACTION" == "add" && "$DEVTYPE" == "usb_device" ]]; then 69 | message="🔗 Device plugged in" 70 | message2="$ID_MODEL_FROM_DATABASE" 71 | echo "[+] Device plugged in: '$ID_MODEL_FROM_DATABASE' $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/device-added.oga)" 72 | transient_notification "$message" "$message2" 73 | elif [[ "$ACTION" == "remove" && "$DEVTYPE" == "usb_device" ]]; then 74 | echo "[-] Device unplugged: '$ID_MODEL_FROM_DATABASE' $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/device-removed.oga)" 75 | fi 76 | unset ACTION DEVTYPE # ID_MODEL_FROM_DATABASE 77 | else 78 | case "$line" in 79 | ACTION=*) ACTION="${line#ACTION=}" ;; 80 | DEVTYPE=*) DEVTYPE="${line#DEVTYPE=}" ;; 81 | ID_MODEL_FROM_DATABASE=*) ID_MODEL_FROM_DATABASE="${line#ID_MODEL_FROM_DATABASE=}" ;; 82 | esac 83 | fi 84 | done 85 | 86 | } 87 | 88 | 89 | iface_watch_notification() { 90 | echo -e "\e[1m[*] Watching network interfaces ...\e[0m" 91 | 92 | udevadm monitor --udev --subsystem-match=net --env | \ 93 | while IFS= read -r line; do 94 | if [[ -z "$line" ]]; then 95 | if [[ "$ACTION" == "add" ]]; then 96 | echo "[+] Network interface added: $INTERFACE $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/dialog-information.oga)" 97 | notify-send "🌐 Interface established" "$INTERFACE" 98 | elif [[ "$ACTION" == "remove" ]]; then 99 | echo "[-] Network interface removed: $INTERFACE $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/dialog-information.oga)" 100 | notify-send "⛓️‍💥 Interface disbanded" "$INTERFACE" 101 | fi 102 | unset ACTION INTERFACE 103 | else 104 | case "$line" in 105 | ACTION=*) ACTION="${line#ACTION=}" ;; 106 | INTERFACE=*) INTERFACE="${line#INTERFACE=}" ;; 107 | esac 108 | fi 109 | done 110 | } 111 | 112 | 113 | power_supply_watch_notification() { 114 | echo -e "\e[1m[*] Watching power supply ...\e[0m" 115 | 116 | local THRESHOLD=30 117 | local RECOVERY=35 118 | 119 | local LAST_ADAPTER_STATE=$(cat /sys/class/power_supply/*/online | grep -m1 . || echo "unknown") 120 | local LAST_BATTERY_STATE="" 121 | local NOTIFIED=0 122 | 123 | udevadm monitor --udev --subsystem-match=power_supply --env | \ 124 | while IFS= read -r line; do 125 | if [[ -z $line ]]; then 126 | if [[ "$POWER_SUPPLY_NAME" == ADP+([0-9]) ]]; then 127 | if [[ "$POWER_SUPPLY_ONLINE" != "$LAST_ADAPTER_STATE" ]]; then 128 | if [[ "$POWER_SUPPLY_ONLINE" == "0" ]]; then 129 | echo "[-] Power supply status: Offline $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/power-unplug.oga)" 130 | else 131 | echo "[+] Power supply status: Online $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/power-plug.oga)" 132 | fi 133 | LAST_ADAPTER_STATE="$POWER_SUPPLY_ONLINE" 134 | fi 135 | fi 136 | 137 | if [[ "$POWER_SUPPLY_NAME" == BAT+([0-9]) ]]; then 138 | if [[ "$POWER_SUPPLY_CAPACITY" =~ ^[0-9]+$ ]]; then 139 | if [[ "$POWER_SUPPLY_CAPACITY" -le "$THRESHOLD" && "$NOTIFIED" == 0 ]]; then 140 | echo "[!] Power supply capacity: $POWER_SUPPLY_CAPACITY% $(timer eval "$sound_cmd" /usr/share/sounds/ocean/stereo/dialog-error-critical.oga)" 141 | notify-send -u critical "🪫 Battery critically low" \ 142 | "$POWER_SUPPLY_CAPACITY% capacity. Plug in your device!" 143 | NOTIFIED=1 144 | elif [[ "$POWER_SUPPLY_CAPACITY" -ge "$RECOVERY" && "$NOTIFIED" == 1 ]]; then 145 | NOTIFIED=0 146 | fi 147 | fi 148 | fi 149 | unset POWER_SUPPLY_ONLINE POWER_SUPPLY_CAPACITY POWER_SUPPLY_NAME 150 | else 151 | case "$line" in 152 | POWER_SUPPLY_ONLINE=*) POWER_SUPPLY_ONLINE="${line#POWER_SUPPLY_ONLINE=}" ;; 153 | POWER_SUPPLY_CAPACITY=*) POWER_SUPPLY_CAPACITY="${line#POWER_SUPPLY_CAPACITY=}" ;; 154 | POWER_SUPPLY_NAME=*) POWER_SUPPLY_NAME="${line#POWER_SUPPLY_NAME=}" ;; 155 | esac 156 | fi 157 | done 158 | } 159 | 160 | 161 | main() { 162 | trap "echo -e '\n\e[1mReceived SIGINT, terminating all processes.\e[0m'; kill 0" SIGINT 163 | 164 | echo -e "\nDMY: $(date '+%d-%m-%Y, %H:%M:%S')\n" >> "$log_file" 165 | exec > >(tee -a "$log_file") 2>&1 166 | power_supply_watch_notification & 167 | block_device_watch_notification & 168 | usb_watch_notification & 169 | iface_watch_notification & 170 | 171 | wait 172 | } 173 | 174 | max_lines=1000 175 | trim=500 176 | log_file="$HOME/.config/hypr/Scripts/Logs/devwatch_logs" 177 | 178 | if [[ -f "$log_file" ]]; then 179 | if (( $(wc -l < "$log_file") > max_lines )); then 180 | tail -n "$trim" "$log_file" > "${log_file}.tmp" && mv "${log_file}.tmp" "$log_file" 181 | fi 182 | main 183 | else 184 | touch "$log_file" 185 | main 186 | fi 187 | -------------------------------------------------------------------------------- /config/foot/foot.ini: -------------------------------------------------------------------------------- 1 | # -*- conf -*- 2 | 3 | # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) 4 | # term=foot (or xterm-256color if built with -Dterminfo=disabled) 5 | # login-shell=no 6 | 7 | # app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode 8 | # title=foot 9 | # locked-title=no 10 | 11 | shell=fish 12 | 13 | font=FantasqueSansMono:size=12, font-awesome:size=11, Symbol:size:11, NotoFontsEmoji:size=11 14 | # font-bold= 15 | # font-italic= 16 | # font-bold-italic= 17 | # font-size-adjustment=0.5 18 | # line-height= 19 | # letter-spacing=0 20 | # horizontal-letter-offset=0 21 | # vertical-letter-offset=0 22 | # underline-offset= 23 | # underline-thickness= 24 | # box-drawings-uses-font-glyphs=no 25 | # dpi-aware=no 26 | 27 | # initial-window-size-pixels=700x500 # Or, 28 | # initial-window-size-chars= 29 | # initial-window-mode=windowed 30 | pad=3x3 # optionally append 'center' 31 | # resize-by-cells=yes 32 | # resize-delay-ms=100 33 | 34 | # bold-text-in-bright=no 35 | # word-delimiters=,│`|:"'()[]{}<> 36 | # selection-target=primary 37 | # workers= 38 | # utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux) 39 | # utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD) 40 | 41 | [environment] 42 | # name=value 43 | 44 | [bell] 45 | # urgent=no 46 | # notify=no 47 | # visual=no 48 | # command= 49 | # command-focused=no 50 | 51 | [desktop-notifications] 52 | command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body} 53 | # command-action-argument=--action ${action-name}=${action-label} 54 | # close="" 55 | # inhibit-when-focused=yes 56 | 57 | 58 | [scrollback] 59 | lines=10000 60 | # multiplier=3.0 61 | # indicator-position=relative 62 | # indicator-format="" 63 | 64 | [url] 65 | launch=xdg-open ${url} 66 | label-letters=sadfjklewcmpgh 67 | osc8-underline=url-mode 68 | # Removed during update #protocols=http, https, ftp, ftps, file, gemini, gopher 69 | # Removed during update #uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] 70 | 71 | [cursor] 72 | style=beam 73 | # color= 74 | blink=yes 75 | blink-rate=820 76 | beam-thickness=1.3 77 | # underline-thickness= 78 | 79 | [mouse] 80 | hide-when-typing=yes 81 | # alternate-scroll-mode=yes 82 | 83 | [touch] 84 | # long-press-delay=400 85 | 86 | [colors] 87 | # alpha=1.0 88 | background=16171b # 16171b 101010 89 | foreground=c1cbcd # fafafa 90 | # flash=7f7f00 91 | # flash-alpha=0.5 92 | 93 | ## Normal/regular colors (color palette 0-7) 94 | regular0=0a0a0c # black | GRUVBOX: 282828, 111219 95 | regular1=4e506d # red | GRUVBOX: cc241d, e58585 96 | regular2=5b5170 # green | GRUVBOX: 98971a, 7cbe8c 97 | regular3=5d5d80 # yellow | GRUVBOX: d79921, 8e8a6f 98 | regular4=5a647d # blue | GRUVBOX: 458588, 4c89ac 99 | regular5=676e8e # magenta | GRUVBOX b16286, 6c75cb 100 | regular6=6f9696 # cyan | GRUVBOX: 689d6a, 73c1a9 101 | regular7=c2c2c6 # white | GRUVBOX: fbf1c7, 9ea3c0 102 | 103 | ## Bright colors (color palette 8-15) 104 | bright0=87878a # bright black | GRUVBOX: 665c54, 545c8c 105 | bright1=4e506d # bright red | GRUVBOX: fb4934, b871b8 106 | bright2=5b5170 # bright green | GRUVBOX: b8bb26, 7cbe8c 107 | bright3=5d5d80 # bright yellow | GRUVBOX: fabd2f, a8a384 108 | bright4=5a647d # bright blue | GRUVBOX: 83a598, 589ec6 109 | bright5=676e8e # bright magenta | GRUVBOX: d3869b, 929be5 110 | bright6=6f9696 # bright cyan | GRUVBOX: 8ec07c, 59b6b6 111 | bright7=c2c2c6 # bright white | GRUVBOX: ebdbb2, 9ea3c0 112 | 113 | ## dimmed colors (see foot.ini(5) man page) 114 | # dim0= 115 | # ... 116 | # dim7= 117 | 118 | ## The remaining 256-color palette 119 | # 16 = <256-color palette #16> 120 | # ... 121 | # 255 = <256-color palette #255> 122 | 123 | ## Misc colors 124 | # selection-foreground= 125 | # selection-background= 126 | # jump-labels= # black-on-yellow 127 | # scrollback-indicator= # black-on-bright-blue 128 | # search-box-no-match= # black-on-red 129 | # search-box-match= # black-on-yellow 130 | # urls= 131 | 132 | [csd] 133 | # preferred=server 134 | # size=23 135 | # font= 136 | # color= 137 | # hide-when-maximized=no 138 | # double-click-to-maximize=yes 139 | # border-width=0 140 | # border-color= 141 | # button-width=26 142 | # button-color= 143 | # button-minimize-color= 144 | # button-maximize-color= 145 | # button-close-color= 146 | 147 | [key-bindings] 148 | # scrollback-up-page=Shift+Page_Up 149 | # scrollback-up-half-page=none 150 | # scrollback-up-line=none 151 | # scrollback-down-page=Shift+Page_Down 152 | # scrollback-down-half-page=none 153 | # scrollback-down-line=none 154 | # scrollback-home=none 155 | # scrollback-end=none 156 | clipboard-copy=Control+Shift+c XF86Copy 157 | clipboard-paste=Control+Shift+v XF86Paste 158 | # primary-paste=Shift+Insert 159 | # search-start=Control+Shift+r 160 | # font-increase=Control+plus Control+equal Control+KP_Add 161 | # font-decrease=Control+minus Control+KP_Subtract 162 | # font-reset=Control+0 Control+KP_0 163 | # spawn-terminal=Control+Shift+n 164 | # minimize=none 165 | # maximize=none 166 | # fullscreen=none 167 | # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none 168 | # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none 169 | # pipe-selected=[xargs -r firefox] none 170 | # pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard 171 | # show-urls-launch=Control+Shift+o 172 | # show-urls-copy=none 173 | # show-urls-persistent=none 174 | # prompt-prev=Control+Shift+z 175 | # prompt-next=Control+Shift+x 176 | # unicode-input=Control+Shift+u 177 | # noop=none 178 | 179 | [search-bindings] 180 | # cancel=Control+g Control+c Escape 181 | # commit=Return 182 | # find-prev=Control+r 183 | # find-next=Control+s 184 | # cursor-left=Left Control+b 185 | # cursor-left-word=Control+Left Mod1+b 186 | # cursor-right=Right Control+f 187 | # cursor-right-word=Control+Right Mod1+f 188 | # cursor-home=Home Control+a 189 | # cursor-end=End Control+e 190 | # delete-prev=BackSpace 191 | # delete-prev-word=Mod1+BackSpace Control+BackSpace 192 | # delete-next=Delete 193 | # delete-next-word=Mod1+d Control+Delete 194 | # extend-char=Shift+Right 195 | # extend-to-word-boundary=Control+w Control+Shift+Right 196 | # extend-to-next-whitespace=Control+Shift+w 197 | # extend-line-down=Shift+Down 198 | # extend-backward-char=Shift+Left 199 | # extend-backward-to-word-boundary=Control+Shift+Left 200 | # extend-backward-to-next-whitespace=none 201 | # extend-line-up=Shift+Up 202 | # clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste 203 | # primary-paste=Shift+Insert 204 | # unicode-input=none 205 | # quit=none 206 | # scrollback-up-page=Shift+Page_Up 207 | # scrollback-up-half-page=none 208 | # scrollback-up-line=none 209 | # scrollback-down-page=Shift+Page_Down 210 | # scrollback-down-half-page=none 211 | # scrollback-down-line=none 212 | # scrollback-home=none 213 | # scrollback-end=none 214 | 215 | [url-bindings] 216 | # cancel=Control+g Control+c Control+d Escape 217 | # toggle-url-visible=t 218 | 219 | [text-bindings] 220 | # \x03=Mod4+c # Map Super+c -> Ctrl+c 221 | 222 | [mouse-bindings] 223 | # scrollback-up-mouse=BTN_WHEEL_BACK 224 | # scrollback-down-mouse=BTN_WHEEL_FORWARD 225 | # font-increase=Control+BTN_WHEEL_BACK 226 | # font-decrease=Control+BTN_WHEEL_FORWARD 227 | # selection-override-modifiers=Shift 228 | # primary-paste=BTN_MIDDLE 229 | # select-begin=BTN_LEFT 230 | # select-begin-block=Control+BTN_LEFT 231 | # select-extend=BTN_RIGHT 232 | # select-extend-character-wise=Control+BTN_RIGHT 233 | # select-word=BTN_LEFT-2 234 | # select-word-whitespace=Control+BTN_LEFT-2 235 | # select-quote = BTN_LEFT-3 236 | # select-row=BTN_LEFT-4 237 | 238 | # vim: ft=dosini 239 | -------------------------------------------------------------------------------- /config/waybar/config.jsonc: -------------------------------------------------------------------------------- 1 | // -*- mode: jsonc -*- 2 | { 3 | //"output": "HDMI-A-1", 4 | //"layer": "top", // Waybar at top layer 5 | "position": "top", // Waybar position (top|bottom|left|right) 6 | "reload_style_on_change": true, 7 | "height": 25, // Waybar height (to be removed for auto height) 8 | // "width": 1280, // Waybar width 9 | "spacing": -2, // Gaps between modules (4px) 10 | "modules-left": [ 11 | "custom/applications", 12 | "cpu", 13 | "memory", 14 | "custom/seperator", 15 | //"wlr/taskbar", 16 | "hyprland/window" 17 | ], 18 | "modules-center": [ 19 | "hyprland/submap", 20 | "custom/splitint", 21 | "hyprland/workspaces" 22 | ], 23 | "modules-right": [ 24 | "group/expand", 25 | "network", 26 | "custom/bluetooth-status", 27 | //"group/backlightnslider" 28 | "backlight", 29 | "group/pulseaudionslider", 30 | "battery", 31 | "custom/seperator_2", 32 | "clock", 33 | "custom/swaync" 34 | ], 35 | "hyprland/workspaces": { 36 | "disable-scroll": true, 37 | "all-outputs": true, 38 | "warp-on-scroll": false, 39 | "format": "{name}", 40 | "format-icons": { 41 | "1": "", 42 | "2": "", 43 | "3": "", 44 | "4": "", 45 | "5": "", 46 | "urgent": "", 47 | "focused": "", 48 | "default": "" 49 | } 50 | }, 51 | 52 | "keyboard-state": { 53 | "numlock": true, 54 | "capslock": true, 55 | "format": "{name} {icon}", 56 | "format-icons": { 57 | "locked": "", 58 | "unlocked": "" 59 | } 60 | }, 61 | "hyprland/submap": { 62 | "format": "{}", 63 | "tooltip": false 64 | }, 65 | 66 | 67 | "custom/seperator": { 68 | "format": " |", 69 | "tooltip": false 70 | }, 71 | 72 | "custom/seperator_2": { 73 | "format": " |", 74 | "tooltip": false 75 | }, 76 | 77 | 78 | "wlr/taskbar": { 79 | "all-outputs": false, 80 | "icon-size": 16.5, 81 | "tooltip": true, 82 | "format": "{icon}", //{title} 83 | "tooltip-format": "{name}\nAPPID: {app_id}\nWindow State: {state} [{short_state}] \n\n{name}", 84 | "on-click-middle": "close", 85 | "on-click": "minimize-raise", 86 | "sort-by-app-id": false, 87 | "markup": true 88 | }, 89 | 90 | 91 | "hyprland/window": { 92 | "separate-outputs": true, 93 | "format": "{title}", 94 | "icon": true, 95 | "icon-size": 19, 96 | "tooltip-format": "{title}\n\n{class}, {initialClass}", 97 | "expand": false, 98 | "tooltip": true 99 | }, 100 | 101 | "custom/expander": { 102 | "format": "", 103 | "tooltip": false 104 | }, 105 | 106 | "group/pulseaudionslider": { 107 | "orientation": "horizontal", 108 | "modules": ["pulseaudio", "pulseaudio/slider"] 109 | }, 110 | 111 | "group/backlightnslider": { 112 | "orientation": "horizontal", 113 | "modules": ["backlight", "backlight/slider"] 114 | }, 115 | 116 | "group/expand": { 117 | "orientation": "horizontal", 118 | "drawer": { 119 | "transition-duration": 600, 120 | "transition-to-left": true, 121 | "click-to-reveal": true 122 | }, 123 | "modules": ["custom/expander", "tray"] 124 | 125 | 126 | }, 127 | "tray": { 128 | "icon-size": 18.0, 129 | "spacing": 12 130 | }, 131 | 132 | "clock": { 133 | /*"timezone": "America/x",*/ 134 | "interval": 1, 135 | "tooltip-format": "{:%Y %B, %d | %A\n%r}\n\n{calendar}", 136 | "format": "{:%a %b %d %I:%M %p}" 137 | }, 138 | 139 | "custom/applications": { 140 | "format": " {}", 141 | "exec": "uptime -p | sed -E 's/up //; s/([0-9]+) day(s)?(,? )?/\\1d /g; s/([0-9]+) hour(s)?(,? )?/\\1h /g; s/([0-9]+) minute(s)?/\\1m/; s/ +/ /g; s/ $//'", 142 | "interval": 60, 143 | "on-click": "pkill -x wofi || wofi -I --show drun", 144 | "on-click-right": "hyprctl dispatch overview:toggle", 145 | 146 | "tooltip": false 147 | }, 148 | 149 | "cpu": { 150 | "format": " {usage}%", 151 | "interval": 5, 152 | "tooltip-format": "{usage{n}}" 153 | }, 154 | 155 | "memory": { 156 | "format": " {percentage}%", 157 | "interval": 10, 158 | "tooltip-format": "Avail: {used}GiB of {avail}GiB\nSWAP: {swapUsed}GiB of {swapTotal}GiB\nTotal Used: {total}GiB" 159 | }, 160 | 161 | "temperature": { 162 | "tooltip-format": "Temperature from thermal zone\n {temperatureC}°C", 163 | // "thermal-zone": 2, 164 | "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", 165 | "critical-threshold": 85, 166 | // "format-critical": "{temperatureC}°C {icon}", 167 | "format": "{icon} {temperatureC}°C", 168 | "format-icons": ["", "", ""] 169 | }, 170 | 171 | "battery": { 172 | "states": { 173 | "good": 75, 174 | "warning": 35, 175 | "critical": 30 176 | }, 177 | "interval": 2, 178 | "format": "{icon} {capacity}%", 179 | "format-full": "{icon} {capacity}%", 180 | "format-charging": " + {capacity}%", 181 | "format-plugged": "< - {capacity}%", 182 | "format-tooltip": "{capacity}%\n{time}", 183 | "format-icons": ["", "", "", "", ""] 184 | }, 185 | 186 | "network": { 187 | // "interface": "wlp2*", // (Optional) To force the use of this interface 188 | "format-wifi": "{icon} ({signalStrength}%) {essid}", 189 | "format-ethernet": " ({ifname}) Wired", 190 | "tooltip-format": "{ipaddr} on {ifname}\nessid: {essid}, ({signalStrength}%)\n{bandwidthUpBits}   {bandwidthDownBits}", 191 | "format-linked": "󰌙 Unknown", 192 | "format-disconnected": "󰌙 Disconnected", /* 󱄁*/ 193 | "on-click": "foot -e --title=nmtui-foot nmtui", 194 | //"on-click": "nm-connection-editor", 195 | "format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"] 196 | 197 | }, 198 | 199 | "pulseaudio": { 200 | "format": "{format_source}{icon}", 201 | "format-bluetooth": "{icon}  {volume}%", 202 | "format-muted": "{format_source}", 203 | "format-bluetooth-muted": "  {format_source}", 204 | "format-source": " {volume}% ", 205 | "format-source-muted": " ", 206 | "format-icons": { 207 | "default": ["", "", ""] 208 | }, 209 | "on-click": "pkill -x pavucontrol || pavucontrol", 210 | "on-click-right": "pamixer -t" 211 | 212 | }, 213 | 214 | "pulseaudio/slider": { 215 | "min": 0, 216 | "max": 120, 217 | "orientation": "horizontal" 218 | }, 219 | 220 | "backlight": { 221 | //"device": "amdgpu_bl2", 222 | "format": "{icon}", 223 | "format-icons": ["", "", "", "", "", "", "", "", ""], 224 | "tooltip": "true", 225 | "tooltip-format": "Backlight: {percent}%" 226 | }, 227 | 228 | "backlight/slider": { 229 | "min": 0, 230 | "max": 100, 231 | "orientation": "horizontal", 232 | //"device": "amdgpu_bl2" 233 | }, 234 | 235 | "custom/splitint": { 236 | "format": "{}", 237 | "exec": "~/.config/hypr/Scripts/Waybar/force_split_output-waybar.sh", 238 | "interval": 1, 239 | "on-click": "~/.config/hypr/Scripts/Waybar/force_split_toggle.sh", 240 | "tooltip": false 241 | }, 242 | 243 | "custom/bluetooth-status": { 244 | "format": "{}", 245 | "exec": "~/.config/hypr/Scripts/Waybar/bluetooth_status.sh", 246 | "tooltip": false, 247 | "interval": 2, 248 | "on-click": "foot -e bluetoothctl" 249 | }, 250 | 251 | "custom/swaync": { 252 | "format": " {} ", 253 | "exec": "~/.config/hypr/Scripts/Waybar/swaync-icon.sh", 254 | "on-click": "swaync-client -t", 255 | "tooltip": false, 256 | "interval": 2 257 | } 258 | } 259 | } 260 | -------------------------------------------------------------------------------- /config/swaync/style.css: -------------------------------------------------------------------------------- 1 | @import url("/home/spacerat/.cache/wal/colors-waybar.css"); 2 | 3 | @define-color cc-bg rgba(22, 23, 27, 0.30); 4 | @define-color cc-border alpha(@color6, 0.50); 5 | @define-color noti-border-color rgba(55, 55, 55, 1); 6 | @define-color noti-bg alpha(@color6, 0.30); 7 | @define-color noti-bg-opaque rgb(48, 48, 48); 8 | @define-color noti-bg-darker rgb(38, 38, 38); 9 | @define-color noti-bg-hover alpha(@color6, 0.85); 10 | @define-color noti-bg-hover-opaque rgb(61, 70, 104); 11 | @define-color noti-bg-focus rgba(68, 68, 68, 0.6); 12 | @define-color noti-close-bg rgba(16, 16, 16, 0.27); 13 | @define-color noti-close-bg-hover rgba(16, 16, 16, 0.27); 14 | @define-color text-color @foreground; 15 | @define-color text-color-disabled rgb(150, 150, 150); 16 | @define-color bg-selected rgb(0, 128, 255); 17 | .notification-row { 18 | outline: none; 19 | } 20 | 21 | * { 22 | font-family: JetBrainsMonoNerdFont, NotoFontsEmoji; 23 | } 24 | 25 | .notification-row:focus, .notification-row:hover { 26 | } 27 | 28 | .notification-row .notification-background { 29 | padding: 6px 12px; 30 | } 31 | 32 | .notification-row .notification-background .close-button { 33 | /* The notification Close Button */ 34 | background: alpha(@background, 1); 35 | color: @text-color; 36 | text-shadow: none; 37 | padding: 0; 38 | border-radius: 100%; 39 | margin-top: 5px; 40 | margin-right: 5px; 41 | box-shadow: none; 42 | min-width: 24px; 43 | min-height: 24px; 44 | } 45 | 46 | .notification-row .notification-background .close-button:hover { 47 | background: @foreground; 48 | color: @background; 49 | transition: background 0.15s ease-in-out; 50 | } 51 | 52 | .notification-row .notification-background .notification { 53 | /* The actual notification */ 54 | border-radius: 0px; 55 | background: alpha(@background, 0.80); 56 | border: 1.0px solid alpha(@color6, 1); 57 | padding: 0px; 58 | transition: all 1s fade-in 59 | } 60 | 61 | .notification-row .notification-background .notification.low { 62 | /* Low Priority Notification */ 63 | } 64 | 65 | .notification-row .notification-background .notification.normal { 66 | /* Normal Priority Notification */ 67 | } 68 | 69 | .notification-row .notification-background .notification.critical { 70 | /* Critical Priority Notification */ 71 | } 72 | 73 | .notification-row .notification-background .notification .notification-action, .notification-row .notification-background .notification .notification-default-action { 74 | padding: 4px; 75 | margin: 0; 76 | box-shadow: none; 77 | background: transparent; 78 | border: none; 79 | color: @text-color; 80 | transition: background 0.15s ease-in-out; 81 | } 82 | 83 | /* NOTI HOVER */ 84 | .notification-row .notification-background .notification .notification-action:hover, .notification-row .notification-background .notification .notification-default-action:hover { 85 | background: @noti-bg-hover; 86 | border-color: @color1; 87 | border-radius: 0px; 88 | } 89 | 90 | .notification-row .notification-background .notification .notification-default-action { 91 | /* The large action that also displays the notification summary and body */ 92 | } 93 | 94 | .notification-row .notification-background .notification .notification-default-action:not(:only-child) { 95 | /* When alternative actions are visible */ 96 | border-bottom-left-radius: 0px; 97 | border-bottom-right-radius: 0px; 98 | } 99 | 100 | .notification-row .notification-background .notification .notification-default-action .notification-content { 101 | background: transparent; 102 | padding: 4px; 103 | } 104 | 105 | .notification-row .notification-background .notification .notification-default-action .notification-content .image { 106 | /* Notification Primary Image */ 107 | -gtk-icon-effect: none; 108 | /*border-radius: 100px;*/ 109 | /* Size in px */ 110 | margin: 4px; 111 | } 112 | 113 | .notification-row .notification-background .notification .notification-default-action .notification-content .app-icon { 114 | /* Notification app icon (only visible when the primary image is set) */ 115 | -gtk-icon-effect: none; 116 | -gtk-icon-shadow: 0 1px 4px black; 117 | margin: 6px; 118 | } 119 | 120 | .notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary { 121 | /* Notification summary/title */ 122 | font-size: 16px; 123 | font-weight: normal; 124 | background: transparent; 125 | color: @text-color; 126 | text-shadow: none; 127 | } 128 | 129 | .notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time { 130 | /* Notification time-ago */ 131 | font-size: 16px; 132 | font-weight: bold; 133 | background: transparent; 134 | color: @text-color; 135 | margin-left: 10px; 136 | margin-right: 10px; 137 | } 138 | 139 | .notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body { 140 | /* Notification body */ 141 | font-size: 15px; 142 | font-weight: normal; 143 | background: transparent; 144 | color: @text-color; 145 | text-shadow: none; 146 | } 147 | 148 | .notification-row .notification-background .notification .notification-default-action .notification-content progressbar { 149 | /* The optional notification progress bar */ 150 | margin-top: 4px; 151 | } 152 | 153 | .notification-row .notification-background .notification .notification-default-action .notification-content .body-image { 154 | /* The "extra" optional bottom notification image */ 155 | margin-top: 4px; 156 | background-color: white; 157 | border-radius: 12px; 158 | -gtk-icon-effect: none; 159 | } 160 | 161 | .notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply { 162 | /* The inline reply section */ 163 | margin-top: 4px; 164 | } 165 | 166 | .notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry { 167 | background: @noti-bg-darker; 168 | color: @text-color; 169 | caret-color: @text-color; 170 | border: 1px solid @noti-border-color; 171 | border-radius: 12px; 172 | } 173 | 174 | .notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button { 175 | margin-left: 4px; 176 | background: @noti-bg; 177 | border: 1px solid @noti-border-color; 178 | border-radius: 12px; 179 | color: @text-color; 180 | } 181 | 182 | .notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled { 183 | background: initial; 184 | color: @text-color-disabled; 185 | border: 1px solid @noti-border-color; 186 | border-color: transparent; 187 | } 188 | 189 | .notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover { 190 | background: @noti-bg-hover; 191 | } 192 | 193 | .notification-row .notification-background .notification .notification-action { 194 | /* The alternative actions below the default action */ 195 | border-top: 1px solid @noti-border-color; 196 | border-radius: 0px; 197 | border-right: 1px solid @noti-border-color; 198 | } 199 | 200 | .notification-row .notification-background .notification .notification-action:first-child { 201 | /* add bottom border radius to eliminate clipping */ 202 | border-bottom-left-radius: 12px; 203 | } 204 | 205 | .notification-row .notification-background .notification .notification-action:last-child { 206 | border-bottom-right-radius: 12px; 207 | border-right: none; 208 | } 209 | 210 | .notification-group { 211 | /* Styling only for Grouped Notifications */ 212 | } 213 | 214 | .notification-group.low { 215 | /* Low Priority Group */ 216 | } 217 | 218 | .notification-group.normal { 219 | /* Low Priority Group */ 220 | } 221 | 222 | .notification-group.critical { 223 | /* Low Priority Group */ 224 | } 225 | 226 | .notification-group .notification-group-buttons, .notification-group .notification-group-headers { 227 | margin: 0 16px; 228 | color: @text-color; 229 | } 230 | 231 | .notification-group .notification-group-headers { 232 | /* Notification Group Headers */ 233 | } 234 | 235 | .notification-group .notification-group-headers .notification-group-icon { 236 | color: @text-color; 237 | } 238 | 239 | .notification-group .notification-group-headers .notification-group-header { 240 | color: @text-color; 241 | } 242 | 243 | .notification-group .notification-group-buttons { 244 | /* Notification Group Buttons */ 245 | } 246 | 247 | .notification-group.collapsed .notification-row .notification { 248 | background: @background 249 | } 250 | 251 | .notification-group.collapsed .notification-row:not(:last-child) { 252 | /* Top notification in stack */ 253 | /* Set lower stacked notifications opacity to 0 */ 254 | } 255 | 256 | .notification-group.collapsed .notification-row:not(:last-child) .notification-action, 257 | .notification-group.collapsed .notification-row:not(:last-child) .notification-default-action { 258 | opacity: 0; 259 | } 260 | 261 | .notification-group.collapsed:hover .notification-row:not(:only-child) .notification { 262 | background-color: @noti-bg-hover; 263 | } 264 | 265 | .control-center { 266 | /* The Control Center which contains the old notifications + widgets */ 267 | border: 1px solid @cc-border; 268 | color: @text-color; 269 | background: alpha(@background, 0.85); 270 | border-radius: 0px; 271 | } 272 | 273 | .control-center .control-center-list-placeholder { 274 | /* The placeholder when there are no notifications */ 275 | opacity: 0.5; 276 | } 277 | 278 | .control-center .control-center-list { 279 | /* List of notifications */ 280 | background: transparent; 281 | } 282 | 283 | .control-center .control-center-list .notification { 284 | box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7), 0 2px 6px 2px rgba(0, 0, 0, 0.3); 285 | } 286 | 287 | .control-center .control-center-list .notification .notification-default-action, 288 | .control-center .control-center-list .notification .notification-action { 289 | transition: opacity 400ms ease-in-out, background 0.15s ease-in-out; 290 | } 291 | 292 | .control-center .control-center-list .notification .notification-default-action:hover, 293 | .control-center .control-center-list .notification .notification-action:hover { 294 | background-color: @noti-bg-hover; 295 | } 296 | 297 | .blank-window { 298 | /* Window behind control center and on all other monitors */ 299 | background: transparent; 300 | } 301 | 302 | .floating-notifications { 303 | background: transparent; 304 | } 305 | 306 | .floating-notifications .notification { 307 | box-shadow: none; 308 | } 309 | 310 | /*** Widgets ***/ 311 | /* Title widget */ 312 | .widget-title { 313 | color: @text-color; 314 | margin: 8px; 315 | font-size: 1.3rem; 316 | } 317 | 318 | .widget-title > button { /* CLEAR ALL */ 319 | padding: 5px 15px 5px; 320 | color: @text-color; 321 | background: alpha(@color2, 1); 322 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.35); 323 | border-radius: 4px; 324 | } 325 | 326 | .widget-title > button:hover { 327 | background: alpha(@color6, 1); 328 | color: @background; 329 | transition: all .3s ease; 330 | } 331 | 332 | /* DND widget */ 333 | .widget-dnd { 334 | color: @text-color; 335 | margin: 12px; 336 | margin: 11px 0 0; 337 | font-size: 1rem; 338 | } 339 | 340 | .widget-dnd > switch { 341 | padding: 3px; 342 | font-size: initial; 343 | border-radius: 4px; 344 | border: 0px solid @transparent; 345 | background: alpha(@color6, 0.15); 346 | 347 | } 348 | 349 | .widget-dnd > switch:checked { 350 | background: alpha(@color2, 1); 351 | } 352 | 353 | .widget-dnd > switch:checked slider { 354 | background: alpha(@background, 0.80); 355 | } 356 | 357 | .widget-dnd > switch slider { 358 | background: alpha(@color2, 1); 359 | border: 3px solid transparent; 360 | border-radius: 4px; 361 | min-width: 18px; 362 | min-height: 18px; 363 | } 364 | 365 | /* Label widget */ 366 | .widget-label { 367 | margin: 8px; 368 | } 369 | 370 | .widget-label > label { 371 | font-size: 1.1rem; 372 | } 373 | 374 | /* Mpris widget */ 375 | .widget-mpris { 376 | /* The parent to all players */ 377 | background: alpha(@background, 1); 378 | border: 2.5px solid alpha(@color6, 0.15); 379 | box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.60); 380 | border-radius: 4px; 381 | margin: 10px 20px 10px 20px; 382 | } 383 | 384 | .widget-mpris .widget-mpris-player { 385 | color: @text; 386 | margin: 0 5px; 387 | background-color: @background; 388 | /*background-color: @mpris-album-art-overlay;*/ 389 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.60); 390 | } 391 | 392 | .widget-mpris .widget-mpris-player button:hover { 393 | /* The media player buttons (play, pause, next, etc...) */ 394 | background: @noti-bg-hover; 395 | } 396 | 397 | .widget-mpris .widget-mpris-player .widget-mpris-album-art { 398 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75); 399 | } 400 | 401 | .widget-mpris .widget-mpris-player .widget-mpris-title { 402 | font-weight: bold; 403 | font-size: 1.15rem; 404 | } 405 | 406 | .widget-mpris .widget-mpris-player .widget-mpris-subtitle { 407 | font-size: 1.1rem; 408 | } 409 | 410 | .widget-mpris .widget-mpris-player > box > button { 411 | /* Change player control buttons */ 412 | color: @text-color; 413 | text-shadow: 0px 0px 1px alpha(@background, 0.55) 414 | } 415 | 416 | .widget-mpris .widget-mpris-player > box > button:hover { 417 | background-color: @noti-bg-hover; 418 | box-shadow: 0px 0px 2px alpha(@background, 0.70) 419 | } 420 | 421 | .widget-mpris > box > button { 422 | /* Change player side buttons */ 423 | } 424 | 425 | .widget-mpris > box > button:hover { 426 | background: transparent; 427 | } 428 | 429 | .widget-mpris > box > button:disabled { 430 | /* Change player side buttons insensitive */ 431 | } 432 | 433 | /* Buttons widget */ 434 | .widget-buttons-grid { 435 | font-size: 1.3rem; 436 | padding: 0px; 437 | margin: 20px; 438 | border: 1.5px solid alpha(@color6, 0.50); 439 | border-radius: 4px; 440 | background: alpha(@background, 0.90); 441 | box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.60); 442 | } 443 | 444 | .widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked:hover, 445 | .widget-buttons-grid > flowbox > flowboxchild > button { 446 | min-height: 35px; 447 | min-width: 35px; 448 | border: 0px transparent; 449 | background: transparent; 450 | color: @text-color; 451 | box-shadow: none; 452 | text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.30); 453 | } 454 | 455 | 456 | .widget-buttons-grid > flowbox > flowboxchild > button:hover, 457 | .widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked { 458 | border: 0px solid @noti-bg-hover; 459 | border-radius: 8px; 460 | background: @noti-bg-hover; 461 | } 462 | 463 | /* Menubar widget */ 464 | .widget-menubar > box > .menu-button-bar > button { 465 | border: none; 466 | background: transparent; 467 | } 468 | 469 | .topbar-buttons > button { 470 | /* Name defined in config after # */ 471 | border: none; 472 | background: transparent; 473 | } 474 | 475 | /* Volume widget */ 476 | .widget-volume { 477 | background: linear-gradient( 478 | 180deg, 479 | alpha(@color6, 0.10) 50%, 480 | alpha(@color6, 0.12) 481 | ); 482 | font-size: 35; 483 | padding: 0px; 484 | margin: 10px; 485 | margin-right: 20px; 486 | margin-left: 20px; 487 | border-radius: 7px; 488 | text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.30); 489 | box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.30); 490 | border: 1.5px solid alpha(@color6, 0.15); 491 | } 492 | 493 | .widget-volume > box > button { 494 | background: transparent; 495 | border: none; 496 | color: @text-color; 497 | } 498 | 499 | .per-app-volume { 500 | background-color: @noti-bg-alt; 501 | padding: 4px 8px 8px 8px; 502 | margin: 0px 8px 8px 8px; 503 | border-radius: 12px; 504 | } 505 | 506 | /* Backlight widget */ 507 | .widget-backlight { 508 | background-color: @noti-bg; 509 | padding: 8px; 510 | margin: 8px; 511 | border-radius: 12px; 512 | } 513 | 514 | /* Inhibitors widget */ 515 | .widget-inhibitors { 516 | margin: 8px; 517 | font-size: 1.5rem; 518 | } 519 | 520 | .widget-inhibitors > button { 521 | font-size: initial; 522 | color: @text-color; 523 | text-shadow: none; 524 | background: @noti-bg; 525 | border: 1px solid @noti-border-color; 526 | box-shadow: none; 527 | border-radius: 12px; 528 | } 529 | 530 | .widget-inhibitors > button:hover { 531 | background: @noti-bg-hover; 532 | } 533 | 534 | .notification-group-collapse-button, 535 | .notification-group-close-all-button { 536 | background: alpha(@color6, 0.15); 537 | color: alpha(@text-color, 0.80); 538 | box-shadow: none; 539 | text-shadow: none 540 | } 541 | 542 | .notification-group-collapse-button:hover, 543 | .notification-group-close-all-button:hover { 544 | background: @noti-bg-hover; 545 | color: @foreground; 546 | box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.25); 547 | } 548 | -------------------------------------------------------------------------------- /config/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | source= ~/.cache/wal/colors-hyprland.conf 2 | 3 | # This is an example Hyprland config file. 4 | # Refer to the wiki for more information. 5 | # https://wiki.hyprland.org/Configuring/ 6 | 7 | # Please note not all available settings / options are set here. 8 | # For a full list, see the wiki 9 | 10 | # You can split this configuration into multiple files 11 | # Create your files separately and then link them to this file like this: 12 | 13 | 14 | # Else 15 | env = EDITOR,nvim 16 | env = AQ_TRACE=1 17 | env = AQ_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1 # card1 is 7700s, card2 is 680M. Switching dominant to 7700s may prevent external monitors crashing on suspension 18 | #render:explicit_sync = 0 19 | render:direct_scanout = false 20 | #opengl { 21 | # nvidia_anti_flicker = false 22 | #} 23 | 24 | # NVIDIA 25 | #env = LIBVA_DRIVER_NAME,nvidia 26 | #env = __GLX_VENDOR_LIBRARY_NAME,nvidia 27 | 28 | # Cursor 29 | env = XCURSOR_THEME,Bibata-Modern-Classic # $ gsettings set org.gnome.desktop.interface cursor-theme 'Theme-Name' 30 | env = XCURSOR_SIZE,24 31 | 32 | # GTK 33 | #env = GTK_USE_PORTAL,0 34 | 35 | # Qt 36 | env = XDG_MENU_PREFIX,arch- # Fixes dolphin 'open with' 37 | env = QT_QPA_PLATFORMTHEME,qt6ct 38 | env = QT_STYLE_OVERRIDE=Breeze-Dark 39 | #env = QT_QPA_PLATFORM,wayland 40 | env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style 41 | env = QT_WAYLAND_SMOOTH_SCROLL=1 42 | 43 | # Electron 44 | env = ELECTRON_OZONE_PLATFORM_HINT,auto 45 | 46 | debug { 47 | colored_stdout_logs = true 48 | enable_stdout_logs = true 49 | disable_logs = false 50 | } 51 | 52 | xwayland { 53 | use_nearest_neighbor= true 54 | force_zero_scaling = true 55 | } 56 | 57 | ecosystem { 58 | no_update_news = true 59 | no_donation_nag = false # Twice a year popup 60 | enforce_permissions = false 61 | } 62 | 63 | 64 | ################ 65 | ### MONITORS ### 66 | ################ 67 | 68 | # See https://wiki.hyprland.org/Configuring/Monitors/ 69 | monitor = *, highres,auto,1 70 | monitor = *, highrr,auto,1 71 | 72 | monitor = , preferred, auto, 1.0 # "Recommended rule for quickly plugging in random monitors:" 73 | #monitor = Virtual-1, 1920x1080@60,auto,1 74 | monitor = eDP-2, 1920x1200@165Hz, 1920x0, 1.0, vrr, 1 75 | monitor = eDP-1, 1920x1200@165Hz, 1920x0, 1.0, vrr, 1 76 | monitor = HDMI-A-1, 1920x1080@75Hz, 0x0, 1.0, vrr, 0 # vrr, 0 turns off vrr for this monitor. experiences issues with vrr enabled 77 | 78 | ################### 79 | ### MY PROGRAMS ### 80 | ################### 81 | 82 | # See https://wiki.hyprland.org/Configuring/Keywords/ 83 | $terminal = kitty 84 | $terminalAlt = foot 85 | $clipboard = $terminal --title=Clipse ~/Source/clipse/./clipse 86 | $fileManager = dolphin 87 | $fileManagerAlt = $terminal -e yazi 88 | $menu = wofi --show drun 89 | $lockCmd = playerctl --all-players pause && pidof hyprlock || hyprlock 90 | $wallpaper = swaybg -o '*' -m fill -i ~/Pictures/Wallpapers/PyWal/pywallpaper 91 | 92 | ################# 93 | ### AUTOSTART ### 94 | ################# 95 | 96 | # Autostart necessary processes (like notifications daemons, status bars, etc.) 97 | # Or execute your favorite apps at launch like this: 98 | 99 | exec-once = brightnessctl --restore 100 | exec-once = swayosd-server 101 | #exec-once = foot --server 102 | exec-once = ~/Source/clipse/./clipse -listen 103 | #exec-once = bash ~/.config/hypr/Scripts/Hyprland/devwatch.sh 104 | exec-once = wal -t -n -R & $wallpaper 105 | exec-once = swaync 106 | exec-once = hypridle 107 | exec-once = hyprctl setcursor Bibata-Modern-Classic 22 108 | exec-once = waybar 109 | exec-once = /usr/lib/polkit-kde-authentication-agent-1 110 | 111 | 112 | ##################### 113 | ### LOOK AND FEEL ### 114 | ##################### 115 | 116 | # Refer to https://wiki.hyprland.org/Configuring/Variables/ 117 | 118 | # https://wiki.hyprland.org/Configuring/Variables/#general 119 | 120 | general { 121 | gaps_in = 3 122 | gaps_out = 5 123 | border_size = 1 124 | # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors 125 | col.active_border = $color6 #rgba(707070ff) 126 | col.inactive_border = $color1 #rgba(393939ff) 127 | resize_on_border = true 128 | # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on 129 | allow_tearing = false 130 | layout = dwindle 131 | } 132 | 133 | cursor { 134 | no_hardware_cursors = false # When true may fix choppy cursors 135 | inactive_timeout = 5 136 | hide_on_key_press = false 137 | enable_hyprcursor = true 138 | } 139 | 140 | # https://wiki.hyprland.org/Configuring/Variables/#decoration 141 | decoration { 142 | rounding = 0 143 | 144 | # Change transparency of focused and unfocused windows 145 | active_opacity = 1.0 146 | inactive_opacity = 1.0 147 | 148 | #dim_inactive = true 149 | #dim_strength = 0.15 150 | 151 | # https://wiki.hyprland.org/Configuring/Variables/#blur 152 | blur { 153 | enabled = true 154 | size = 10 155 | passes = 3 156 | vibrancy = 0.2150 157 | vibrancy_darkness = 0.63 158 | brightness = 0.95 159 | new_optimizations = true 160 | ignore_opacity = true 161 | noise = 0 162 | } 163 | 164 | shadow { 165 | enabled = true 166 | range = 10 167 | render_power = 3 168 | offset = 0 0 169 | sharp = false 170 | ignore_window = true 171 | color = rgba(000000CC) 172 | color_inactive = rgba(00000055) 173 | } 174 | } 175 | 176 | # https://wiki.hyprland.org/Configuring/Variables/#animations 177 | animations { 178 | 179 | enabled = true 180 | bezier = bubbles, 0.05, 0.9, 0.1, 1.05 181 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 182 | bezier = winOut, 0.3, -0.3, 0, 1 183 | bezier = linear, 1, 1, 1, 1 184 | 185 | animation = windows, 1, 5, bubbles, popin 50% 186 | animation = windowsIn, 1, 4, bubbles, popin 50% 187 | animation = windowsOut, 1, 7, bubbles, popin 40% 188 | animation = windowsMove, 1, 5, bubbles, slide 189 | 190 | animation = global, 1, 5, bubbles 191 | animation = border, 1, 2, linear 192 | animation = borderangle, 1, 30, linear, loop 193 | animation = fade, 1, 10, default 194 | 195 | animation = workspaces, 1, 5, bubbles, fade 196 | animation = workspacesIn, 1, 4, bubbles, fade 197 | animation = workspacesOut, 1, 4, bubbles, fade 198 | 199 | animation = layers, 1, 5, bubbles 200 | animation = layersIn, 1, 15, winIn, fade 201 | animation = layersOut, 1, 15, winIn, fade 202 | 203 | animation = fade, 1, 5, bubbles 204 | } 205 | 206 | 207 | layerrule = blur, wofi 208 | layerrule = ignorezero, wofi 209 | 210 | layerrule = blur, waybar 211 | layerrule = xray true, waybar 212 | 213 | layerrule = blur, swayosd 214 | layerrule = ignorezero, swayosd 215 | layerrule = abovelock, swayosd 216 | 217 | layerrule = blur, swaync-control-center 218 | layerrule = blur, swaync-notification-window 219 | layerrule = ignorezero, swaync-control-center 220 | layerrule = ignorezero, swaync-notification-window 221 | 222 | #wlogout 223 | layerrule = blur, logout_dialog 224 | layerrule = dimaround, logout_dialog 225 | layerrule = ignorezero, logout_dialog 226 | layerrule = abovelock true, logout_dialog 227 | 228 | layerrule = dimaround, wofi 229 | layerrule = dimaround, swaync-control-center 230 | layerrule = dimaround, ~/Source/clipse/./clipse 231 | 232 | # Smart decor 233 | workspace=f[1],bordersize:0,gapsout:0, shadow:false #,rounding:false # No gaps, rounding or shadows when in fullscreen-monocle mode 234 | workspace = w[tv1], gapsout:0, gapsin:0, shadow:false #,rounding:false # No gaps, rounding or shadows when there is more than 1 window in the current workspace 235 | 236 | windowrulev2 = dimaround, title:Clipse 237 | windowrulev2 = dimaround, class:org.kde.polkit-kde-authentication-agent-1 238 | windowrulev2 = bordersize 0, fullscreen:1 239 | # windowrulev2 = bordercolor rgba(17171790) / rgba(17171790) rgba(17171790) 45deg rgba(17171700) rgba(17171700) 45deg, floating:1 240 | windowrulev2 = rounding 0, floating:1 241 | windowrulev2 = bordersize 1, floating:1 242 | windowrulev2 = opacity 0.80, class:(foot) 243 | windowrulev2 = opacity 0.80, class:(kitty) # Can be handled through kitty.conf 244 | 245 | windowrulev2 = tile, class:(Nsxiv) 246 | windowrulev2 = float, class:(org.pulseaudio.pavucontrol) 247 | windowrulev2 = float, class:(org.kde.kdeconnect.app) 248 | windowrulev2 = float, class:(org.gnome.Calculator) 249 | 250 | windowrulev2 = float, title:Clipse 251 | windowrulev2 = bordersize 1, title:Clipse 252 | windowrulev2 = pin, title:Clipse 253 | windowrulev2 = size 900 600, title:Clipse 254 | 255 | windowrulev2 = size 700 870, class:(org.pulseaudio.pavucontrol)$ 256 | windowrulev2 = size 950 870, class:(org.kde.kdeconnect.app)$ 257 | 258 | # Ignore maximize requests from apps. You'll probably like this. 259 | windowrulev2 = suppressevent maximize, class:.* 260 | 261 | # Fix some dragging issues with XWayland 262 | windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 263 | 264 | 265 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 266 | dwindle { 267 | force_split = 0 # 0, Follow mouse 1, Split Left 2, Split right 268 | pseudotile = true 269 | preserve_split = true 270 | } 271 | 272 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 273 | master { 274 | new_status = master 275 | mfact = 0.60 276 | orientation = left 277 | new_on_top = true 278 | allow_small_split = true 279 | } 280 | # https://wiki.hyprland.org/Configuring/Variables/#misc 281 | 282 | misc { 283 | middle_click_paste = false 284 | exit_window_retains_fullscreen = true 285 | force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers 286 | disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( 287 | disable_splash_rendering = true 288 | #enable_swallow = true 289 | new_window_takes_over_fullscreen = 1 290 | initial_workspace_tracking = 2 291 | vrr = 0 # you may have external monitor issues when set to 1 292 | vfr = true 293 | layers_hog_keyboard_focus = false 294 | animate_manual_resizes = false 295 | animate_mouse_windowdragging = false 296 | enable_anr_dialog = false 297 | } 298 | 299 | 300 | ############# 301 | ### INPUT ### 302 | ############# 303 | 304 | # https://wiki.hyprland.org/Configuring/Variables/#input 305 | # https://wiki.hyprland.org/Configuring/Variables/#gestures 306 | 307 | input { 308 | kb_layout = us 309 | #kb_variant = qwerty 310 | #kb_options = grp:alt_shift_toggle # grep -i 'persian' /usr/share/X11/xkb/rules/base.lst 311 | scroll_factor = 1.5 312 | natural_scroll = false 313 | emulate_discrete_scroll = 2 314 | special_fallthrough = true 315 | focus_on_close = 1 316 | 317 | } 318 | 319 | gestures { 320 | #workspace_swipe = false 321 | } 322 | 323 | device { 324 | name = logitech-g203-lightsync-gaming-mouse 325 | disable_while_typing = false 326 | sensitivity = 0.78 327 | accel_profile = 328 | } 329 | 330 | device { 331 | name = asuf1204:00-2808:0202-touchpad 332 | disable_while_typing = false 333 | sensitivity = 0.60 334 | accel_profile = adaptive 335 | } 336 | 337 | device { 338 | name = sony-interactive-entertainment-dualsense-wireless-controller-touchpad 339 | disable_while_typing = false 340 | sensitivity = 0.45 341 | accel_profile = adaptive 342 | } 343 | 344 | device { 345 | name = xing-wei-2.4g-us-usb-composite-device 346 | disable_while_typing = true 347 | sensitivity = 0.80 348 | accel_profile = adaptive 349 | } 350 | 351 | device { 352 | name = compx-kysona-m600-3 353 | disable_while_typing = false 354 | sensitivity = 0.95 #.93, red 355 | accel_profile = adaptive 356 | } 357 | 358 | device { 359 | name = cx-2.4g-wireless-receiver-mouse 360 | disable_while_typing = false 361 | sensitivity = 0.95 #.93, red 362 | accel_profile = adaptive 363 | } 364 | 365 | ################### 366 | ### KEYBINDINGS ### 367 | ################### 368 | 369 | binds { 370 | movefocus_cycles_fullscreen = 1 371 | } 372 | 373 | # See https://wiki.hyprland.org/Configuring/Keywords/ 374 | $mainMod = SUPER # Sets "Windows" key as main modifier 375 | 376 | # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 377 | bind = $mainMod SHIFT, Return, exec, $terminal 378 | bind = $mainMod SHIFT Alt, Return, exec, $terminalAlt 379 | bind = $mainMod SHIFT, Q, killactive, 380 | bind = Alt, F4, exec, hyprctl kill 381 | bind = $mainMod SHIFT, escape, exit, 382 | bind = $mainMod SHIFT, E, exec, $fileManager 383 | bind = $mainMod SHIFT, i, exec, xdg-open ~/.config/hypr/hyprland.conf 384 | bind = $mainMod, V, exec, pkill -x clipse || $clipboard 385 | bind = $mainMod SHIFT, Space, togglefloating, 386 | bind = $mainMod, D, exec, pkill -x wofi || $menu 387 | bind = $mainMod SHIFT, D, exec, swaync-client -t 388 | bind = $mainMod, G, togglesplit, # dwindle, top/side 389 | bind = $mainMod, G, layoutmsg, addmaster # adds a master to the master side. That will be the active window, if it’s not a master, or the first non-master window. 390 | bind = $mainMod SHIFT, G, layoutmsg, removemaster 391 | bind = $mainMod, T, layoutmsg, swapwithmaster master # master, swaps the current window with master. If current window=master, swaps it with the first child. 392 | bind = $mainMod, T, swapsplit, # dwindle, swaps the two halves of the current window 393 | bind = $mainMod Ctrl, Return, exec, bash ~/.config/hypr/Scripts/Hyprland/force_split_toggle.sh 394 | bind = $mainMod, Return, exec, bash ~/.config/hypr/Scripts/Hyprland/layout_toggle.sh 395 | bind = $mainMod, O, exec, bash ~/.config/hypr/Scripts/Hyprland/powermode.sh cycle 396 | bind = $mainMod, Escape, exec, $terminal -e btop 397 | 398 | # Move focus with mainMod + arrow keys 399 | bind = $mainMod, H, movefocus, l 400 | bind = $mainMod, L, movefocus, r 401 | bind = $mainMod, K, movefocus, u 402 | bind = $mainMod, J, movefocus, d 403 | 404 | bind = $mainMod, left, movefocus, l 405 | bind = $mainMod, right, movefocus, r 406 | bind = $mainMod, up, movefocus, u 407 | bind = $mainMod, down, movefocus, d 408 | 409 | # Switch workspaces with mainMod + [0-9] 410 | bind = $mainMod, 1, workspace, 1 411 | bind = $mainMod, 2, workspace, 2 412 | bind = $mainMod, 3, workspace, 3 413 | bind = $mainMod, 4, workspace, 4 414 | bind = $mainMod, 5, workspace, 5 415 | bind = $mainMod, 6, workspace, 6 416 | bind = $mainMod, 7, workspace, 7 417 | bind = $mainMod, 8, workspace, 8 418 | bind = $mainMod, 9, workspace, 9 419 | bind = $mainMod, 0, workspace, 10 420 | 421 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 422 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 423 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 424 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 425 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 426 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 427 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 428 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 429 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 430 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 431 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 432 | 433 | 434 | 435 | bind = $mainMod, B, exec, killall -SIGUSR1 waybar || waybar 436 | 437 | bind = $mainMod SHIFT, Delete, exec, $lockCmd 438 | 439 | bindl = CtrlAlt, Delete, exec, pkill -x wlogout || wlogout 440 | 441 | bind = ctrl, Print, exec, grim_path=~/Pictures/Screenshots/$(date +%m-%d-%y-%I%M%p_%N).png && grim -g "$(pidof slurp || slurp -d -b ffffff20 -c 0a0a0a95 -B ffffff90 -w 2)" "$grim_path" && notify-send " 📋 Screenshot Captured w/ Geometry" "$grim_path" -t 10000 -i "$grim_path" && wl-copy < "$grim_path" 442 | bind = ctrl SHIFT, Print, exec, grim_path=~/Pictures/Screenshots/$(date +%m-%d-%y-%I%M%p_%N).png && grim -g "$(hyprctl activewindow | awk '$1=="at:"{at=$2} $1=="size:"{split($2,s,","); size=s[1]"x"s[2]} END{print at, size}')" "$grim_path" && notify-send " 📋 Screenshot Captured w/ Geometry" "$grim_path" -t 10000 -i "$grim_path" && wl-copy < "$grim_path" 443 | bind = ,Print, exec, grim_path=~/Pictures/Screenshots/$(date +%m-%d-%y-%I%M%p_%N).png && grim "$grim_path" && notify-send " 📋 Screenshot Captured" "$grim_path" -t 10000 -i "$grim_path" && wl-copy < "$grim_path" 444 | 445 | bind = alt ,Print, exec, wfr_path=~/Videos/User-Videos/screen_recording-$(date +%m-%d-%y-%I%M%p_%N).mkv && $terminal -e wf-recorder -a Master --file="$wfr_path" && notify-send ' 📋 Recording completed' "$wfr_path" -t 10000 -i "$wfr_path" && wl-copy < "$wfr_path" 446 | bind = SHIFT alt ,Print, exec, wfr_path=~/Videos/User-Videos/screen_recording-$(date +%m-%d-%y-%I%M%p_%N).mkv && $terminal -e wf-recorder -g "$(pidof slurp || slurp -d -b ff303015 -c 0b0b0b90 -B ffffff90 -w 2)" -a Master --file="$wfr_path" && notify-send ' 📋 Recording completed w/ Geometry' "$wfr_path" -t 10000 -i "$wfr_path" && wl-copy < "$wfr_path" 447 | 448 | 449 | bind = $mainMod, W, fullscreen, 1 # Monocle-like layout 450 | bind = $mainMod, F, fullscreen 451 | bind = $mainMod SHIFT, C, exec, pkill -x waybar ; waybar & disown ; pkill -x swaybg ; $wallpaper; swaync-client -rs; wal -t -n -R; hyprctl reload 452 | 453 | # special workspace (scratchpad-esque) 454 | bind = $mainMod, minus, togglespecialworkspace, magic 455 | bind = $mainMod SHIFT, minus, movetoworkspace, special:magic 456 | 457 | 458 | # Scroll through existing workspaces with mainMod + scroll 459 | bind = $mainMod, mouse_down, workspace, e+1 460 | bind = $mainMod, mouse_up, workspace, e-1 461 | 462 | # Move/resize windows with mainMod + LMB/RMB and dragging 463 | bindm = $mainMod, mouse:272, movewindow 464 | bind = $mainMod SHIFT, H, movewindow, l 465 | bind = $mainMod SHIFT, L, movewindow, r 466 | bind = $mainMod SHIFT, L, movewindow, u 467 | bind = $mainMod SHIFT, J, movewindow, d 468 | bind = $mainMod SHIFT, left, movewindow, l 469 | bind = $mainMod SHIFT, right, movewindow, r 470 | bind = $mainMod SHIFT, up, movewindow, u 471 | bind = $mainMod SHIFT, down, movewindow, d 472 | bindm = $mainMod, mouse:273, resizewindow 473 | 474 | #bindm = , mouse:275 mouse:273, overview:toggle 475 | #bindm = , mouse:276, resizewindow 476 | 477 | # Laptop multimedia keybinds 478 | bind = , XF86Launch3, exec, rog-control-center 479 | bind = , XF86Launch4, exec, bash ~/.config/hypr/Scripts/Hyprland/powermode.sh default 480 | bind = , XF86Calculator, exec, kcalc 481 | bind = , XF86TouchpadToggle, exec, bash ~/.config/hypr/Scripts/Hyprland/touchpad_toggle.sh 482 | 483 | 484 | #bindo = , XF86PowerOff, exec, systemctl hibernate 485 | #bindo = , power-button, exec, systemctl hibernate 486 | bind = , XF86PowerOff, exec, systemctl suspend 487 | bind = , power-button, exec, systemctl suspend 488 | 489 | bindr = ,Lock, exec, swayosd-client --caps-lock 490 | bindr = ,Num_Lock, exec, swayosd-client --num-lock 491 | 492 | $eventAudio=if [ "$(playerctl status)" != "Playing" ] || [ "$(playerctl status)" == "No players found" ]; then paplay /usr/share/sounds/ocean/stereo/audio-volume-change.oga; fi # --property=media.role=event 493 | 494 | binde = ,XF86AudioRaiseVolume, exec, swayosd-client --max-volume=120 --output-volume raise 5 && $eventAudio # pamixer --allow-boost -i 5 495 | binde = SHIFT, XF86AudioRaiseVolume, exec, swayosd-client --max-volume=120 --output-volume +1 && $eventAudio # pamixer --allow-boost -i 1 496 | binde = ,XF86AudioLowerVolume, exec, swayosd-client --max-volume=120 --output-volume lower && $eventAudio # pamixer --allow-boost -d 5 497 | binde = SHIFT, XF86AudioLowerVolume, exec, swayosd-client --max-volume=120 --output-volume -1 && $eventAudio # pamixer --allow-boost -d 1 498 | bindl = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle # pamixer -t 499 | bindl = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle # wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle 500 | 501 | binde = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise # brightnessctl -qs set +5% 502 | binde = SHIFT,XF86MonBrightnessUp, exec, swayosd-client --brightness +1 # brightnessctl -qs set +1% 503 | binde = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower # brightnessctl -qs set 5%- 504 | binde = SHIFT,XF86MonBrightnessDown, exec, swayosd-client --brightness -1 # brightnessctl -qs set 1%- 505 | 506 | bind = , XF86AudioNext, exec, playerctl next 507 | bindl = , XF86AudioPause, exec, playerctl play-pause 508 | bind = , XF86AudioPlay, exec, playerctl play-pause 509 | bind = , XF86AudioPrev, exec, playerctl previous 510 | 511 | #bindl=,switch:on:Lid Switch, exec, hyprctl dispatch dpms off && hyprctl dispatch exec hyprlock 512 | #bindl=,switch:off:Lid Switch, exec, hyprctl dispatch dpms on 513 | 514 | bindl = , switch:[sleep-button], exec, playerctl --all-players pause ; loginctl lock-session ; systemctl suspend 515 | bindl = , switch:on:[sleep-button], exec, hyprctl keyword monitor "eDP-2, disable" "eDP-1 disable" 516 | bindl = , switch:off:[sleep-button], exec, hyprctl keyword monitor "eDP-2, enable" "eDP-1 enable" 517 | 518 | ################ 519 | ### SUBMAPS #### 520 | ################ 521 | 522 | bind = $mainMod SHIFT, Tab, submap, Focus 523 | submap = Focus 524 | 525 | bind = , A, movefocus, l 526 | bind = , D, movefocus, r 527 | bind = , W, movefocus, u 528 | bind = , S, movefocus, d 529 | 530 | bind = $mainMod SHIFT, A, movewindow, l 531 | bind = $mainMod SHIFT, D, movewindow, r 532 | bind = $mainMod SHIFT, W, movewindow, u 533 | bind = $mainMod SHIFT, S, movewindow, d 534 | 535 | bind = , escape, submap, reset 536 | bind = $mainMod SHIFT, Tab, submap, reset 537 | submap = reset 538 | 539 | # 540 | 541 | bind = $mainMod, R, submap, Resize 542 | submap = Resize 543 | 544 | # WASD Keybinds 545 | binde = , d, resizeactive, 10 0 546 | binde = , a, resizeactive, -10 0 547 | binde = , w, resizeactive, 0 -10 548 | binde = , s, resizeactive, 0 10 549 | 550 | binde = SHIFT, d, resizeactive, 30 0 551 | binde = SHIFT, a, resizeactive, -30 0 552 | binde = SHIFT, w, resizeactive, 0 -30 553 | binde = SHIFT, s, resizeactive, 0 30 554 | 555 | # Vim keybinds 556 | binde = , l, resizeactive, 10 0 557 | binde = , h, resizeactive, -10 0 558 | binde = , k, resizeactive, 0 -10 559 | binde = , j, resizeactive, 0 10 560 | 561 | binde = SHIFT, l, resizeactive, 30 0 562 | binde = SHIFT, h, resizeactive, -30 0 563 | binde = SHIFT, k, resizeactive, 0 -30 564 | binde = SHIFT, j, resizeactive, 0 30 565 | 566 | bind = , escape, submap, reset 567 | bind = $mainMod, R, submap, reset 568 | submap = reset 569 | 570 | 571 | --------------------------------------------------------------------------------