├── 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 |   • 
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 | 
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 |
--------------------------------------------------------------------------------