├── .bashrc ├── .config ├── Scripts │ ├── battery-notify │ ├── battery-status │ ├── brightness │ ├── cache-update-count │ ├── caps-lock-status │ ├── charging-notify │ ├── dnd-status │ ├── dnd-toggle │ ├── dock │ ├── dynamic │ ├── ewwbar-refresh │ ├── hyprland │ ├── kb-brightness │ ├── killhypr │ ├── layout-status │ ├── mediaplayer.py │ ├── mpd-mpris-albumart │ ├── music-art │ ├── ncmpcpp-extended │ ├── network-status │ ├── notif │ ├── recording-status.sh │ ├── recording.sh │ ├── screenshot.sh │ ├── song-status │ ├── spootify.sh │ ├── start-dyn │ ├── updatewal-swww.sh │ ├── volume │ ├── wallpaper-changer-hyprpaper │ ├── waybar-launch.sh │ ├── whatsappify-video │ └── wifi-conn-strength ├── assets │ ├── banner.png │ ├── hyprland.png │ ├── hyprlock-1.png │ ├── hyprlock-2.png │ ├── kitty.png │ ├── made-with-arch-text.png │ ├── ncmpcpp.png │ ├── neofetch.png │ ├── neovim.png │ ├── rofi-1.png │ ├── rofi-2.png │ ├── rofi-3.png │ ├── spotify.png │ └── waybar.png ├── bat │ ├── config │ └── themes │ │ └── Material-Darker.tmTheme ├── cava │ ├── config │ └── shaders │ │ ├── bar_spectrum.frag │ │ ├── northern_lights.frag │ │ └── pass_through.vert ├── dunst │ ├── dunst.conf │ ├── dunstrc │ └── icons │ │ ├── arch.svg │ │ ├── battery-alert.png │ │ ├── battery-charging.png │ │ ├── battery-full.png │ │ ├── battery.png │ │ ├── critical.svg │ │ ├── dark.png │ │ ├── dnd │ │ ├── dnd-off.png │ │ └── dnd-on.png │ │ ├── hyprdots.png │ │ ├── hyprdots.svg │ │ ├── keyboard.svg │ │ ├── light.png │ │ ├── recorder │ │ ├── recording.png │ │ └── save.png │ │ └── vol │ │ ├── muted-mic.svg │ │ ├── muted-speaker.svg │ │ ├── unmuted-mic.svg │ │ ├── unmuted-speaker.svg │ │ ├── vol-0.svg │ │ ├── vol-10.svg │ │ ├── vol-100.svg │ │ ├── vol-15.svg │ │ ├── vol-20.svg │ │ ├── vol-25.svg │ │ ├── vol-30.svg │ │ ├── vol-35.svg │ │ ├── vol-40.svg │ │ ├── vol-45.svg │ │ ├── vol-5.svg │ │ ├── vol-50.svg │ │ ├── vol-55.svg │ │ ├── vol-60.svg │ │ ├── vol-65.svg │ │ ├── vol-70.svg │ │ ├── vol-75.svg │ │ ├── vol-80.svg │ │ ├── vol-85.svg │ │ ├── vol-90.svg │ │ └── vol-95.svg ├── fish │ ├── completions │ │ └── fisher.fish │ ├── conf.d │ │ ├── tmux.extra.conf │ │ ├── tmux.fish │ │ ├── tmux.only.conf │ │ └── tmux_abbrs.fish │ ├── config.fish │ ├── fish_plugins │ ├── fish_variables │ └── functions │ │ ├── fisher.fish │ │ ├── grep.fish │ │ ├── ls.fish │ │ ├── open.fish │ │ └── pls.fish ├── hypr │ ├── env_var.conf │ ├── env_var_nvidia.conf │ ├── hyprland.conf │ ├── hyprlock.conf │ ├── hyprpaper.conf │ ├── media-binds.conf │ ├── rog-g15-strix-2021-binds.conf │ ├── store │ │ ├── dynamic_out.txt │ │ ├── latest_notif │ │ └── prev.txt │ └── xdg-portal-hyprland ├── kitty │ ├── kitty.conf │ └── themes │ │ ├── latte.conf │ │ ├── macchiato.conf │ │ └── mocha.conf ├── ncmpcpp │ ├── config │ └── error.log ├── neofetch │ ├── 2phuthon.png │ ├── config-backup.conf │ ├── config.conf │ ├── configBackup.conf │ ├── loli-god-requiem.jpg │ ├── macchiato_squircle.png │ ├── pngs │ │ ├── aisaka.png │ │ ├── arch.png │ │ ├── loli.png │ │ ├── made-with-arch-text-2.png │ │ ├── pochita.png │ │ ├── ryuzaki.png │ │ └── sakurafetch.png │ ├── pochita.png │ ├── rempng.png │ └── spy-family-anya-smirk-512x512.png ├── nvim │ ├── .stylua.toml │ ├── LICENSE │ ├── init.lua │ ├── lazy-lock.json │ └── lua │ │ ├── chadrc.lua │ │ ├── configs │ │ ├── conform.lua │ │ ├── lazy.lua │ │ └── lspconfig.lua │ │ ├── mappings.lua │ │ ├── options.lua │ │ └── plugins │ │ ├── custom.lua │ │ └── init.lua ├── nwg-dock-hyprland │ └── style.css ├── ohmyposh │ └── zen.toml ├── rofi │ ├── config.rasi │ ├── rofi-app-menu │ │ └── app-menu │ ├── rofi-music-menu │ │ └── musicMenu.sh │ ├── rofi-power-menu │ │ └── powermenu.sh │ └── rofi-wifi-menu │ │ └── rofi-wifi-menu.sh ├── silicon │ └── themes │ │ └── Material-Darker.tmTheme ├── starship.toml ├── tmux │ └── tmux.conf └── waybar │ ├── colors-waybar.css │ ├── config-backup-2.jsonc │ ├── config-backup.jsonc │ ├── config.jsonc │ ├── configBack.jsonc │ ├── latte.css │ ├── macchiato.css │ ├── mocha.css │ ├── style-backup-2.css │ ├── style-backup.css │ ├── style.css │ └── themes │ └── mocha.css ├── .gitignore ├── .stow-local-ignore └── README.md /.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bashrc 3 | # 4 | 5 | [[ $- == *i* ]] && source /usr/share/blesh/ble.sh --noattach 6 | 7 | # If not running interactively, don't do anything 8 | # [[ $- != *i* ]] && return 9 | 10 | # alias ls='ls --color=auto' 11 | alias grep='grep --color=auto' 12 | PS1='[\u@\h \W]\$ ' 13 | 14 | eval "$(starship init bash)" 15 | eval "$(thefuck --alias)" 16 | eval "$(zoxide init bash)" 17 | eval "$(fzf --bash)" 18 | 19 | export PATH="/home/pratik/.local/bin:~/.config/Scripts:$PATH" 20 | 21 | alias ls="eza --icons --no-quotes" 22 | alias cd="z" 23 | alias gpt="tgpt --model opengpts" 24 | alias pls="doas" 25 | alias open="imv" 26 | 27 | export TERMINAL="kitty" 28 | export EDITOR="nvim" 29 | export VISUAL="nvim" 30 | 31 | export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS' 32 | --height=60% 33 | --color=fg:-1,fg+:#fafafa,bg:-1,bg+:#1c1c1c 34 | --color=hl:#82aaff,hl+:#89ddff,info:#ffcb6b,marker:#c3e88d 35 | --color=prompt:#f07178,spinner:#c792ea,pointer:#c792ea,header:#89ddff 36 | --color=border:#4a4a4a,label:#eeffff,query:#eeffff 37 | --border="rounded" --border-label="" --preview-window="border-rounded" --padding="1" 38 | --prompt="> " --marker=">" --pointer="◆" --separator="─" 39 | --scrollbar="│"' 40 | 41 | # lf icons 42 | export LF_ICONS="\ 43 | tw=:\ 44 | st=:\ 45 | ow=:\ 46 | dt=:\ 47 | di=:\ 48 | fi=:\ 49 | ln=:\ 50 | or=:\ 51 | ex=:\ 52 | *.c=:\ 53 | *.cc=:\ 54 | *.clj=:\ 55 | *.coffee=:\ 56 | *.cpp=:\ 57 | *.css=:\ 58 | *.d=:\ 59 | *.dart=:\ 60 | *.erl=:\ 61 | *.exs=:\ 62 | *.fs=:\ 63 | *.go=:\ 64 | *.h=:\ 65 | *.hh=:\ 66 | *.hpp=:\ 67 | *.hs=:\ 68 | *.html=:\ 69 | *.java=:\ 70 | *.jl=:\ 71 | *.js=:\ 72 | *.json=:\ 73 | *.lua=:\ 74 | *.md=:\ 75 | *.php=:\ 76 | *.pl=:\ 77 | *.pro=:\ 78 | *.py=:\ 79 | *.rb=:\ 80 | *.rs=:\ 81 | *.scala=:\ 82 | *.ts=:\ 83 | *.vim=:\ 84 | *.cmd=:\ 85 | *.ps1=:\ 86 | *.sh=:\ 87 | *.bash=:\ 88 | *.zsh=:\ 89 | *.fish=:\ 90 | *.tar=:\ 91 | *.tgz=:\ 92 | *.arc=:\ 93 | *.arj=:\ 94 | *.taz=:\ 95 | *.lha=:\ 96 | *.lz4=:\ 97 | *.lzh=:\ 98 | *.lzma=:\ 99 | *.tlz=:\ 100 | *.txz=:\ 101 | *.tzo=:\ 102 | *.t7z=:\ 103 | *.zip=:\ 104 | *.z=:\ 105 | *.dz=:\ 106 | *.gz=:\ 107 | *.lrz=:\ 108 | *.lz=:\ 109 | *.lzo=:\ 110 | *.xz=:\ 111 | *.zst=:\ 112 | *.tzst=:\ 113 | *.bz2=:\ 114 | *.bz=:\ 115 | *.tbz=:\ 116 | *.tbz2=:\ 117 | *.tz=:\ 118 | *.deb=:\ 119 | *.rpm=:\ 120 | *.jar=:\ 121 | *.war=:\ 122 | *.ear=:\ 123 | *.sar=:\ 124 | *.rar=:\ 125 | *.alz=:\ 126 | *.ace=:\ 127 | *.zoo=:\ 128 | *.cpio=:\ 129 | *.7z=:\ 130 | *.rz=:\ 131 | *.cab=:\ 132 | *.wim=:\ 133 | *.swm=:\ 134 | *.dwm=:\ 135 | *.esd=:\ 136 | *.jpg=:\ 137 | *.jpeg=:\ 138 | *.mjpg=:\ 139 | *.mjpeg=:\ 140 | *.gif=:\ 141 | *.bmp=:\ 142 | *.pbm=:\ 143 | *.pgm=:\ 144 | *.ppm=:\ 145 | *.tga=:\ 146 | *.xbm=:\ 147 | *.xpm=:\ 148 | *.tif=:\ 149 | *.tiff=:\ 150 | *.png=:\ 151 | *.svg=:\ 152 | *.svgz=:\ 153 | *.mng=:\ 154 | *.pcx=:\ 155 | *.mov=:\ 156 | *.mpg=:\ 157 | *.mpeg=:\ 158 | *.m2v=:\ 159 | *.mkv=:\ 160 | *.webm=:\ 161 | *.ogm=:\ 162 | *.mp4=:\ 163 | *.m4v=:\ 164 | *.mp4v=:\ 165 | *.vob=:\ 166 | *.qt=:\ 167 | *.nuv=:\ 168 | *.wmv=:\ 169 | *.asf=:\ 170 | *.rm=:\ 171 | *.rmvb=:\ 172 | *.flc=:\ 173 | *.avi=:\ 174 | *.fli=:\ 175 | *.flv=:\ 176 | *.gl=:\ 177 | *.dl=:\ 178 | *.xcf=:\ 179 | *.xwd=:\ 180 | *.yuv=:\ 181 | *.cgm=:\ 182 | *.emf=:\ 183 | *.ogv=:\ 184 | *.ogx=:\ 185 | *.aac=:\ 186 | *.au=:\ 187 | *.flac=:\ 188 | *.m4a=:\ 189 | *.mid=:\ 190 | *.midi=:\ 191 | *.mka=:\ 192 | *.mp3=:\ 193 | *.mpc=:\ 194 | *.ogg=:\ 195 | *.ra=:\ 196 | *.wav=:\ 197 | *.oga=:\ 198 | *.opus=:\ 199 | *.spx=:\ 200 | *.xspf=:\ 201 | *.pdf=:\ 202 | *.nix=:\ 203 | " 204 | 205 | [[ ${BLE_VERSION-} ]] && ble-attach 206 | -------------------------------------------------------------------------------- /.config/Scripts/battery-notify: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export DISPLAY=:1 4 | 5 | # Battery percentage at which to notify 6 | WARNING_LEVEL=21 7 | 8 | emp_flag=0 9 | full_flag=0 10 | 11 | inotifywait -e ACCESS -m /sys/class/power_supply/BAT1/capacity | while read; do 12 | # check percentage and show notification 13 | 14 | BATTERY_DISCHARGING=$(cat /sys/class/power_supply/BAT1/status) 15 | BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT1/capacity) 16 | 17 | # Reset notifications if the computer is charging/discharging 18 | if [ "$BATTERY_DISCHARGING" == "Discharging" ] && [ $full_flag -eq 1 ]; then 19 | full_flag=0 20 | elif [ "$BATTERY_DISCHARGING" == "Charging" ] && [ $emp_flag -eq 1 ]; then 21 | emp_flag=0 22 | fi 23 | 24 | # If the battery is charging and is full 25 | if [ "$BATTERY_LEVEL" -gt 95 ] && [ "$BATTERY_DISCHARGING" == "Charging" ] && [ $full_flag -ne 1 ]; then 26 | notify-send "Battery Charged" "Battery is fully charged." -i ~/.config/dunst/icons/battery-full.png -r 9991 27 | full_flag=1 28 | # If the battery is low and is not charging 29 | elif [ "$BATTERY_LEVEL" -le "$WARNING_LEVEL" ] && [ "$BATTERY_DISCHARGING" == "Discharging" ] && [ $emp_flag -ne 1 ]; then 30 | notify-send "Low Battery" "${BATTERY_LEVEL}% of battery remaining." -u critical -i ~/.config/dunst/icons/battery-alert.png -r 9991 31 | # emp_flag=1 32 | fi 33 | sleep 0.5 34 | done 35 | -------------------------------------------------------------------------------- /.config/Scripts/battery-status: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # status="$(acpi -b | grep -ioh "\w*charging\w*")" 4 | # level="$(acpi -b | grep -o -P "[0-9]+(?=%)")" 5 | 6 | status="$(cat /sys/class/power_supply/BAT1/status)" 7 | level="$(cat /sys/class/power_supply/BAT1/capacity)" 8 | 9 | if [[ ("$status" == "Discharging") || ("$status" == "Full") ]]; then 10 | if [[ "$level" -eq "0" ]]; then 11 | printf " " 12 | elif [[ ("$level" -ge "0") && ("$level" -le "25") ]]; then 13 | printf " " 14 | elif [[ ("$level" -ge "25") && ("$level" -le "50") ]]; then 15 | printf " " 16 | elif [[ ("$level" -ge "50") && ("$level" -le "75") ]]; then 17 | printf " " 18 | elif [[ ("$level" -ge "75") && ("$level" -le "100") ]]; then 19 | printf " " 20 | fi 21 | elif [[ "$status" == "Charging" ]]; then 22 | printf " " 23 | fi 24 | -------------------------------------------------------------------------------- /.config/Scripts/brightness: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | iDIR="$HOME/.config/HyprV/mako/icons" 4 | 5 | # Get brightness 6 | get_backlight() { 7 | LIGHT=$(printf "%.0f\n" $(brightnessctl i)) 8 | echo "${LIGHT}%" 9 | } 10 | 11 | # Get icons 12 | get_icon() { 13 | backlight="$(brightnessctl g)" 14 | current="${backlight%%%}" 15 | if [[ ("$current" -ge "0") && ("$current" -le "52") ]]; then 16 | icon="$iDIR/brightness-20.png" 17 | elif [[ ("$current" -ge "52") && ("$current" -le "103") ]]; then 18 | icon="$iDIR/brightness-40.png" 19 | elif [[ ("$current" -ge "103") && ("$current" -le "155") ]]; then 20 | icon="$iDIR/brightness-60.png" 21 | elif [[ ("$current" -ge "155") && ("$current" -le "207") ]]; then 22 | icon="$iDIR/brightness-80.png" 23 | elif [[ ("$current" -ge "180") && ("$current" -le "255") ]]; then 24 | icon="$iDIR/brightness-100.png" 25 | fi 26 | } 27 | 28 | # Notify 29 | notify_user() { 30 | notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Brightness : $(brightnessctl g)" 31 | } 32 | 33 | # Increase brightness 34 | inc_backlight() { 35 | brightnessctl set 10%+ && get_icon && notify_user 36 | } 37 | 38 | # Decrease brightness 39 | dec_backlight() { 40 | brightnessctl set 10%- && get_icon && notify_user 41 | } 42 | 43 | # Execute accordingly 44 | if [[ "$1" == "--get" ]]; then 45 | brightnessctl g 46 | elif [[ "$1" == "--inc" ]]; then 47 | inc_backlight 48 | elif [[ "$1" == "--dec" ]]; then 49 | dec_backlight 50 | else 51 | get_backlight 52 | fi 53 | -------------------------------------------------------------------------------- /.config/Scripts/cache-update-count: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | updates=$(checkupdates | wc -l) 3 | printf "$updates" > /tmp/updatecount 4 | -------------------------------------------------------------------------------- /.config/Scripts/caps-lock-status: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sleep 0.2 4 | 5 | brightness="$(cat /sys/class/leds/input3::capslock/brightness)" 6 | 7 | status="false" 8 | if [[ "$brightness" == "1" ]]; then 9 | status="true" 10 | fi 11 | 12 | jq --unbuffered \ 13 | --compact-output \ 14 | --null-input \ 15 | --arg status "$status" \ 16 | '{text: "caps-lock-status", alt: $status}' 17 | -------------------------------------------------------------------------------- /.config/Scripts/charging-notify: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Send a notification displaying that the battery is charging or discharging 4 | # Pass 1 as an argument for charging, 0 for discharging 5 | # Example usage: chargingnotify 1 6 | 7 | # Check if argument is passed 8 | [ $# != 1 ] && printf '0 or 1 must be passed as an argument.\nUsage: %s 0|1\n' "$0" && exit 9 | 10 | export XAUTHORITY=~/.Xauthority 11 | export DISPLAY=:1 12 | # export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" 13 | 14 | BATTERY_CHARGING=$1 15 | BATTERY_LEVEL=$(acpi -b | grep "Battery 0" | grep -P -o '[0-9]+(?=%)') 16 | 17 | # Send notifications 18 | if [ "$BATTERY_CHARGING" -eq 1 ]; then 19 | notify-send "Charging" "${BATTERY_LEVEL}% of battery charged." -u low -i ~/.config/dunst/icons/battery-charging.png -t 5000 -r 9991 20 | elif [ "$BATTERY_CHARGING" -eq 0 ]; then 21 | notify-send "Discharging" "${BATTERY_LEVEL}% of battery remaining." -u low -i ~/.config/dunst/icons/battery.png -t 5000 -r 9991 22 | fi 23 | 24 | 25 | -------------------------------------------------------------------------------- /.config/Scripts/dnd-status: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sleep 0.2 4 | 5 | status="$(dunstctl is-paused)" 6 | 7 | jq --unbuffered \ 8 | --compact-output \ 9 | --null-input \ 10 | --arg status "$status" \ 11 | '{text: "dnd-status", alt: $status}' 12 | -------------------------------------------------------------------------------- /.config/Scripts/dnd-toggle: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | iDIR="$HOME/.config/dunst/icons/dnd" 4 | 5 | dnd="false" 6 | 7 | dnd=$(dunstctl is-paused) 8 | 9 | if [[ "$dnd" == "false" ]]; then 10 | notify-send "Do Not Disturb is On" "You will not recieve any notifications." -i ~/.config/dunst/icons/dnd/dnd-on.png -r 9991 11 | sleep 2 12 | dunstctl set-paused true 13 | else 14 | dunstctl set-paused false 15 | notify-send "Do Not Disturb is Off" "You will recieve regular notifications." -i ~/.config/dunst/icons/dnd/dnd-off.png -r 9991 16 | fi 17 | 18 | pkill -RTMIN+1 waybar & disown 19 | -------------------------------------------------------------------------------- /.config/Scripts/dock: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | killall nwg-dock-hyprland 3 | nwg-dock-hyprland -d -hd 100 -x -i 95 4 | -------------------------------------------------------------------------------- /.config/Scripts/dynamic: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | from pathlib import Path 5 | import json 6 | import pickle 7 | import time 8 | import threading 9 | 10 | OUT = f"/home/pratik/.config/hypr/store/dynamic_out.txt" 11 | # PREV_PATH = f"{Path.home()}/.config/hypr/store/prev.txt" 12 | prev = None 13 | 14 | def print(ar): 15 | with open(OUT,"w") as f: 16 | f.write(json.dumps(ar)) 17 | 18 | # with open(f"{Path.home()}/.config/hypr/im_here","w") as f: 19 | # f.write("") 20 | 21 | global PAUSE_MEDIA 22 | PAUSE_MEDIA = False 23 | 24 | def notif_watcher(): 25 | with open(f"/home/pratik/.config/hypr/store/latest_notif","rb") as f: 26 | global prev 27 | try: 28 | new = pickle.load(f) 29 | except: 30 | new = prev 31 | if new != prev: 32 | print(json.dumps({"class":"none","text":""})) 33 | global PAUSE_MEDIA 34 | PAUSE_MEDIA = True 35 | urgency = "low" 36 | if new["urgency"] == "CRITICAL": 37 | urgency = "critical" 38 | elif new["urgency"] == "NORMAL": 39 | urgency = "normal" 40 | doc = { 41 | "class":urgency, 42 | "text":f'[{new["app_name"]}] {new["summary"]}', 43 | "tooltip":"notification" 44 | } 45 | print(doc) 46 | time.sleep(5) 47 | print({"class":"none","text":""}) 48 | PAUSE_MEDIA = False 49 | prev = new 50 | 51 | 52 | def start_watcher(): 53 | while 1: 54 | notif_watcher() 55 | time.sleep(0.5) 56 | 57 | 58 | def debug(): 59 | while 1: 60 | print(PAUSE_MEDIA) 61 | time.sleep(0.5) 62 | t = threading.Thread(target=start_watcher) 63 | d = threading.Thread(target=debug) 64 | t.start() 65 | # d.start() 66 | 67 | 68 | 69 | with open("test.log", "wb") as f: 70 | process = subprocess.Popen( 71 | "waybar-mpris --position --autofocus".split(), 72 | stdout=subprocess.PIPE 73 | ) 74 | print(json.dumps({"class":"none","text":""})) 75 | for line in iter(lambda: process.stdout.readline().decode("utf-8"), b""): 76 | dat = json.loads(line) 77 | if not PAUSE_MEDIA: 78 | if "text" in dat: 79 | dat["text"] = dat["text"].replace(" ", "").replace("", "") 80 | print(dat) 81 | else: 82 | print({"class":"none","text":""}) 83 | 84 | t.join() 85 | # d.join() 86 | 87 | -------------------------------------------------------------------------------- /.config/Scripts/ewwbar-refresh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | eww kill 3 | eww open bar 4 | -------------------------------------------------------------------------------- /.config/Scripts/hyprland: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | [[ -z "$DBUS_SESSION_BUS_ADDRESS" ]] && eval $(dbus-launch --sh-syntax --exit-with-session) 3 | dbus-launch Hyprland 4 | killall -q polkit-gnome-authentication-agent-1 gnome-keyring-daemon playerctld mpd-mpris hyprpaper waybar nwg-dock-hyprland blueman-applet nm-applet wl-paste fusuma hyprlock battery-notify 5 | -------------------------------------------------------------------------------- /.config/Scripts/kb-brightness: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | iDIR="$HOME/.config/HyprV/mako/icons" 4 | 5 | # Get brightness 6 | get_backlight() { 7 | LIGHT=$(printf "%.0f\n" $(brightnessctl -d '*::kbd_backlight' i)) 8 | echo "${LIGHT}%" 9 | } 10 | 11 | # Get icons 12 | get_icon() { 13 | backlight="$(brightnessctl -d '*::kbd_backlight' g)" 14 | current="${backlight%%%}" 15 | if [[ ("$current" -ge "0") && ("$current" -le "1") ]]; then 16 | icon="$iDIR/brightness-20.png" 17 | elif [[ ("$current" -ge "1") && ("$current" -le "2") ]]; then 18 | icon="$iDIR/brightness-60.png" 19 | elif [[ ("$current" -ge "2") && ("$current" -le "3") ]]; then 20 | icon="$iDIR/brightness-100.png" 21 | fi 22 | } 23 | 24 | # Notify 25 | notify_user() { 26 | notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Keyboard Brightness : $(brightnessctl -d '*::kbd_backlight' g)" 27 | } 28 | 29 | # Increase brightness 30 | inc_backlight() { 31 | brightnessctl -d *::kbd_backlight set 33%+ && get_icon && notify_user 32 | } 33 | 34 | # Decrease brightness 35 | dec_backlight() { 36 | brightnessctl -d *::kbd_backlight set 33%- && get_icon && notify_user 37 | } 38 | 39 | # Execute accordingly 40 | if [[ "$1" == "--get" ]]; then 41 | brightnessctl -d '*::kbd_backlight' g 42 | elif [[ "$1" == "--inc" ]]; then 43 | inc_backlight 44 | elif [[ "$1" == "--dec" ]]; then 45 | dec_backlight 46 | else 47 | get_backlight 48 | fi -------------------------------------------------------------------------------- /.config/Scripts/killhypr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if pgrep -x Hyprland >/dev/null; then 4 | hyprctl dispatch exit 0 5 | sleep 2s 6 | if pgrep -x Hyprland >/dev/null; then 7 | killall -q Hyprland 8 | fi 9 | fi 10 | -------------------------------------------------------------------------------- /.config/Scripts/layout-status: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | layout="$(bat /etc/vconsole.conf | grep XKBLAYOUT | awk -F'=' '{print toupper($2)}')" 4 | printf "%s  " "$layout" 5 | -------------------------------------------------------------------------------- /.config/Scripts/mediaplayer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import gi 3 | gi.require_version("Playerctl", "2.0") 4 | from gi.repository import Playerctl, GLib 5 | from gi.repository.Playerctl import Player 6 | import argparse 7 | import logging 8 | import sys 9 | import signal 10 | import gi 11 | import json 12 | import os 13 | from typing import List 14 | 15 | logger = logging.getLogger(__name__) 16 | 17 | def signal_handler(sig, frame): 18 | logger.info("Received signal to stop, exiting") 19 | sys.stdout.write("\n") 20 | sys.stdout.flush() 21 | # loop.quit() 22 | sys.exit(0) 23 | 24 | 25 | class PlayerManager: 26 | def __init__(self, selected_player=None, excluded_player=[]): 27 | self.manager = Playerctl.PlayerManager() 28 | self.loop = GLib.MainLoop() 29 | self.manager.connect( 30 | "name-appeared", lambda *args: self.on_player_appeared(*args)) 31 | self.manager.connect( 32 | "player-vanished", lambda *args: self.on_player_vanished(*args)) 33 | 34 | signal.signal(signal.SIGINT, signal_handler) 35 | signal.signal(signal.SIGTERM, signal_handler) 36 | signal.signal(signal.SIGPIPE, signal.SIG_DFL) 37 | self.selected_player = selected_player 38 | self.excluded_player = excluded_player.split(',') if excluded_player else [] 39 | 40 | self.init_players() 41 | 42 | def init_players(self): 43 | for player in self.manager.props.player_names: 44 | if player.name in self.excluded_player: 45 | continue 46 | if self.selected_player is not None and self.selected_player != player.name: 47 | logger.debug(f"{player.name} is not the filtered player, skipping it") 48 | continue 49 | self.init_player(player) 50 | 51 | def run(self): 52 | logger.info("Starting main loop") 53 | self.loop.run() 54 | 55 | def init_player(self, player): 56 | logger.info(f"Initialize new player: {player.name}") 57 | player = Playerctl.Player.new_from_name(player) 58 | player.connect("playback-status", 59 | self.on_playback_status_changed, None) 60 | player.connect("metadata", self.on_metadata_changed, None) 61 | self.manager.manage_player(player) 62 | self.on_metadata_changed(player, player.props.metadata) 63 | 64 | def get_players(self) -> List[Player]: 65 | return self.manager.props.players 66 | 67 | def write_output(self, text, player): 68 | logger.debug(f"Writing output: {text}") 69 | 70 | output = {"text": text, 71 | "class": "custom-" + player.props.player_name, 72 | "alt": player.props.player_name} 73 | 74 | sys.stdout.write(json.dumps(output) + "\n") 75 | sys.stdout.flush() 76 | 77 | def clear_output(self): 78 | sys.stdout.write("\n") 79 | sys.stdout.flush() 80 | 81 | def on_playback_status_changed(self, player, status, _=None): 82 | logger.debug(f"Playback status changed for player {player.props.player_name}: {status}") 83 | self.on_metadata_changed(player, player.props.metadata) 84 | 85 | def get_first_playing_player(self): 86 | players = self.get_players() 87 | logger.debug(f"Getting first playing player from {len(players)} players") 88 | if len(players) > 0: 89 | # if any are playing, show the first one that is playing 90 | # reverse order, so that the most recently added ones are preferred 91 | for player in players[::-1]: 92 | if player.props.status == "Playing": 93 | return player 94 | # if none are playing, show the first one 95 | return players[0] 96 | else: 97 | logger.debug("No players found") 98 | return None 99 | 100 | def show_most_important_player(self): 101 | logger.debug("Showing most important player") 102 | # show the currently playing player 103 | # or else show the first paused player 104 | # or else show nothing 105 | current_player = self.get_first_playing_player() 106 | if current_player is not None: 107 | self.on_metadata_changed(current_player, current_player.props.metadata) 108 | else: 109 | self.clear_output() 110 | 111 | def on_metadata_changed(self, player, metadata, _=None): 112 | logger.debug(f"Metadata changed for player {player.props.player_name}") 113 | player_name = player.props.player_name 114 | artist = player.get_artist() 115 | title = player.get_title() 116 | 117 | track_info = "" 118 | if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]: 119 | track_info = "Advertisement" 120 | elif artist is not None and title is not None: 121 | track_info = f'{artist} - {title}' 122 | else: 123 | track_info = title 124 | 125 | if track_info: 126 | if player.props.status == "Playing": 127 | track_info = track_info 128 | else: 129 | track_info = " " + track_info 130 | # only print output if no other player is playing 131 | current_playing = self.get_first_playing_player() 132 | if current_playing is None or current_playing.props.player_name == player.props.player_name: 133 | self.write_output(track_info, player) 134 | else: 135 | logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping") 136 | 137 | def on_player_appeared(self, _, player): 138 | logger.info(f"Player has appeared: {player.name}") 139 | if player is not None and (self.selected_player is None or player.name == self.selected_player): 140 | self.init_player(player) 141 | else: 142 | logger.debug( 143 | "New player appeared, but it's not the selected player, skipping") 144 | 145 | def on_player_vanished(self, _, player): 146 | logger.info(f"Player {player.props.player_name} has vanished") 147 | self.show_most_important_player() 148 | 149 | def parse_arguments(): 150 | parser = argparse.ArgumentParser() 151 | 152 | # Increase verbosity with every occurrence of -v 153 | parser.add_argument("-v", "--verbose", action="count", default=0) 154 | 155 | parser.add_argument("-x", "--exclude", "- Comma-separated list of excluded player") 156 | 157 | # Define for which player we"re listening 158 | parser.add_argument("--player") 159 | 160 | parser.add_argument("--enable-logging", action="store_true") 161 | 162 | return parser.parse_args() 163 | 164 | 165 | def main(): 166 | arguments = parse_arguments() 167 | 168 | # Initialize logging 169 | if arguments.enable_logging: 170 | logfile = os.path.join(os.path.dirname( 171 | os.path.realpath(__file__)), "media-player.log") 172 | logging.basicConfig(filename=logfile, level=logging.DEBUG, 173 | format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s") 174 | 175 | # Logging is set by default to WARN and higher. 176 | # With every occurrence of -v it's lowered by one 177 | logger.setLevel(max((3 - arguments.verbose) * 10, 0)) 178 | 179 | logger.info("Creating player manager") 180 | if arguments.player: 181 | logger.info(f"Filtering for player: {arguments.player}") 182 | if arguments.exclude: 183 | logger.info(f"Exclude player {arguments.exclude}") 184 | 185 | player = PlayerManager(arguments.player, arguments.exclude) 186 | player.run() 187 | 188 | 189 | if __name__ == "__main__": 190 | main() 191 | 192 | -------------------------------------------------------------------------------- /.config/Scripts/mpd-mpris-albumart: -------------------------------------------------------------------------------- 1 | #!/bin/env python 2 | 3 | import dbus 4 | from dbus.mainloop.glib import DBusGMainLoop 5 | from gi.repository import GLib 6 | import subprocess 7 | from sys import exit 8 | import signal 9 | from os import get_terminal_size 10 | 11 | size = get_terminal_size() 12 | 13 | def clear(): 14 | subprocess.run(["kitty", "+kitten", "icat", "--clear"]) 15 | 16 | def draw(art_url): 17 | subprocess.run([ 18 | "kitty", "+kitten", "icat", 19 | "--place", f"{size.columns}x{size.lines}@0x0", 20 | "--scale-up", art_url 21 | ]) 22 | 23 | def on_msg(bus, msg): 24 | args = msg.get_args_list() 25 | try: 26 | if len(args) < 3: return 27 | if type(args[1]) != dbus.Dictionary: return 28 | 29 | if 'Metadata' not in args[1]: return 30 | metadata = args[1]['Metadata'] 31 | 32 | clear() 33 | 34 | if 'mpris:artUrl' not in metadata: return 35 | draw(metadata['mpris:artUrl']) 36 | 37 | except Exception as err: 38 | print("something went wrong!") 39 | print(err) 40 | 41 | if __name__ == "__main__": 42 | 43 | signal.signal(signal.SIGINT, lambda sig, frame: exit(0)) 44 | 45 | DBusGMainLoop(set_as_default=True) 46 | bus = dbus.SessionBus() 47 | 48 | proxy = bus.get_object("org.mpris.MediaPlayer2.mpd", "/org/mpris/MediaPlayer2") 49 | props_iface = dbus.Interface(proxy, "org.freedesktop.DBus.Properties") 50 | metadata = props_iface.Get("org.mpris.MediaPlayer2.Player", "Metadata") 51 | 52 | if 'mpris:artUrl' in metadata: 53 | draw(metadata['mpris:artUrl']) 54 | 55 | match_str = "sender=org.mpris.MediaPlayer2.mpd,path=/org/mpris/MediaPlayer2,member=PropertiesChanged" 56 | bus.add_match_string(match_str) 57 | bus.add_message_filter(on_msg) 58 | 59 | 60 | mainloop = GLib.MainLoop() 61 | mainloop.run() 62 | 63 | -------------------------------------------------------------------------------- /.config/Scripts/music-art: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | MUSIC_DIR="$HOME/Music" 3 | COVER="/tmp/mpd_mpris/artwork_*.jpeg" 4 | 5 | ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null 6 | sleep 2s 7 | notify-send -i /tmp/mpd_mpris/artwork_*.jpeg "$(mpc --format '%title% \n%artist% - %album%' current)" 8 | -------------------------------------------------------------------------------- /.config/Scripts/ncmpcpp-extended: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cols="$(tput cols)" 4 | lines="$(tput lines)" 5 | w_incr_self="$(( $cols / 4 ))" # ~25% of width 6 | h_incr_albumart="$(( $lines / 5 ))" # ~20% of height 7 | 8 | kitty @ set-window-title ncmpcpp 9 | 10 | kitty @ launch --title albumart bash -c "sleep 0.5 && mpd-mpris-albumart" 11 | kitty @ launch --match title:albumart --title cava cava 12 | 13 | kitty @ resize-window --axis reset 14 | kitty @ resize-window --self -i "$w_incr_self" 15 | kitty @ resize-window --match title:albumart --axis vertical -i "$h_incr_albumart" 16 | 17 | kitty @ focus-window --match title:ncmpcpp 18 | 19 | ncmpcpp 20 | 21 | -------------------------------------------------------------------------------- /.config/Scripts/network-status: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | status="$(nmcli general status | grep -oh "\w*connect\w*")" 4 | 5 | if [[ "$status" == "disconnected" ]]; then 6 | printf "󰤮 " 7 | elif [[ "$status" == "connecting" ]]; then 8 | printf "󱍸 " 9 | elif [[ "$status" == "connected" ]]; then 10 | # strength="$(nmcli -f IN-USE,SIGNAL device wifi | grep '*' | awk '{print $2}')" 11 | strength="$(python $HOME/.config/Scripts/wifi-conn-strength)" 12 | if [[ "$?" == "0" ]]; then 13 | if [[ "$strength" -eq "0" ]]; then 14 | printf "󰤯 " 15 | elif [[ ("$strength" -ge "0") && ("$strength" -le "25") ]]; then 16 | printf "󰤟 " 17 | elif [[ ("$strength" -ge "25") && ("$strength" -le "50") ]]; then 18 | printf "󰤢 " 19 | elif [[ ("$strength" -ge "50") && ("$strength" -le "75") ]]; then 20 | printf "󰤥 " 21 | elif [[ ("$strength" -ge "75") && ("$strength" -le "100") ]]; then 22 | printf "󰤨 " 23 | fi 24 | else 25 | printf "󰈀 " 26 | fi 27 | fi 28 | -------------------------------------------------------------------------------- /.config/Scripts/notif: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import pickle 3 | import os 4 | from pathlib import Path 5 | dat = { 6 | "app_name":os.getenv("DUNST_APP_NAME"), 7 | "summary":os.getenv("DUNST_SUMMARY"), 8 | "body":os.getenv("DUNST_BODY"), 9 | "icon":os.getenv("DUNST_ICON_path"), 10 | "urgency":os.getenv("DUNST_URGENCY"), 11 | "id":os.getenv("DUNST_ID"), 12 | "progress":os.getenv("DUNST_PROGRESS"), 13 | "category":os.getenv("DUNST_CATEGORY"), 14 | "stack_tag":os.getenv("DUNST_STACK_TAG"), 15 | "urls":os.getenv("DUNST_URLS"), 16 | "timeout":os.getenv("DUNST_TIMEOUT"), 17 | "timestamp":os.getenv("DUNST_TIMESTAMP"), 18 | "desktop-entry":os.getenv("DUNST_DESKTOP_ENTRY"), 19 | "stack-tag":os.getenv("DUNST_STACK_TAG"), 20 | } 21 | with open(f"/home/pratik/.config/hypr/store/latest_notif", "wb") as f: 22 | pickle.dump(dat, f) 23 | 24 | -------------------------------------------------------------------------------- /.config/Scripts/recording-status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pgrep wf-recorder >/dev/null 2>&1 4 | pgrep_exit_code="$?" 5 | 6 | recording="false" 7 | if [[ "$pgrep_exit_code" == "0" ]]; then 8 | recording="true" 9 | fi 10 | 11 | jq --unbuffered \ 12 | --compact-output \ 13 | --null-input \ 14 | --arg recording "$recording" \ 15 | '{ text: "recording-status", alt: $recording }' 16 | -------------------------------------------------------------------------------- /.config/Scripts/recording.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | pid="$(pgrep wf-recorder)" 4 | pgrep_exit_code="$?" 5 | 6 | VID="/home/pratik/Videos/Recordings/$(date +'recording_%Y-%m-%d_%H-%m-%s').mkv" 7 | 8 | if [ "$pgrep_exit_code" != "0" ]; then 9 | notify-send "Recording Started..." -i ~/.config/dunst/icons/recorder/recording.png -r 9991 10 | wf-recorder -a -o eDP-1 -f "$VID" & 11 | else 12 | notify-send "Recording saved" "Saved as file $VID" -i ~/.config/dunst/icons/recorder/save.png -r 9991 13 | pkill --signal SIGINT wf-recorder 14 | while pgrep wf-recorder; do 15 | sleep 0.1 16 | done 17 | fi 18 | 19 | pkill -RTMIN+2 waybar 20 | -------------------------------------------------------------------------------- /.config/Scripts/screenshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | data="$(hyprctl -j activewindow)" 4 | x=$( jq -r '.at[0]' <<< "${data}" ) 5 | y=$( jq -r '.at[1]' <<< "${data}" ) 6 | w=$( jq -r '.size[0]' <<< "${data}" ) 7 | h=$( jq -r '.size[1]' <<< "${data}" ) 8 | 9 | filename="$(date +'%s_grim.png')" 10 | 11 | option1="Selected window (delay 2 sec)" 12 | option2="Selected area" 13 | option3="Fullscreen (delay 3 sec)" 14 | 15 | options="$option1\n$option2\n$option3" 16 | 17 | choice=$(echo -e "$options" | rofi -dmenu -i -no-show-icons -l 4 -width 30 -p "Take Screenshot") 18 | 19 | case $choice in 20 | $option1) 21 | sleep 2 22 | grim -g "${x}, ${y} ${w}x${h}" ~/Pictures/Screenshots/${filename} 23 | wl-copy < ~/Pictures/Screenshots/${filename} 24 | notify-send "Screenshot created" "Mode: Selected window" 25 | ;; 26 | $option2) 27 | grim -g "$(slurp)" ~/Pictures/Screenshots/${filename} 28 | wl-copy < ~/Pictures/Screenshots/${filename} 29 | notify-send "Screenshot created" "Mode: Selected area" 30 | ;; 31 | $option3) 32 | sleep 3 33 | grim ~/Pictures/Screenshots/${filename} 34 | wl-copy < ~/Pictures/Screenshots/${filename} 35 | notify-send "Screenshot created" "Mode: Fullscreen" 36 | ;; 37 | esac 38 | 39 | -------------------------------------------------------------------------------- /.config/Scripts/song-status: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | player_name=$(playerctl metadata --format '{{playerName}}') 3 | player_status=$(playerctl status) 4 | 5 | if [[ "$player_status" == "Playing" ]]; then 6 | if [[ "$player_name" == "spotify" ]]; then 7 | song_info=$(playerctl metadata --format '{{title}} 󰓇 {{artist}}') 8 | elif [[ "$player_name" == "firefox" ]]; then 9 | song_info=$(playerctl metadata --format '{{title}} 󰈹 {{artist}}') 10 | elif [[ "$player_name" == "mpd" ]]; then 11 | song_info=$(playerctl metadata --format '{{title}} 󰎆 {{artist}}') 12 | elif [[ "$player_name" == "chromium" ]]; then 13 | song_info=$(playerctl metadata --format '{{title}} 󰊯 {{artist}}') 14 | fi 15 | fi 16 | 17 | echo "$song_info" 18 | -------------------------------------------------------------------------------- /.config/Scripts/spootify.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export PULSE_PROP="module-stream-restore.id=spotify" 4 | exec spotblock-rs & disown 5 | exec /usr/bin/spotify "$@" 6 | -------------------------------------------------------------------------------- /.config/Scripts/start-dyn: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | ~/.config/scrIpts/dynamic & 3 | while true 4 | do 5 | # echo "" 6 | out=$(cat /home/pratik/.config/hypr/store/dynamic_out.txt) 7 | echo "$out" | jq --unbuffered --compact-output 8 | # cat ~/.config/hypr/scripts/tools/dynamic_out.txt 9 | done 10 | -------------------------------------------------------------------------------- /.config/Scripts/updatewal-swww.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | wal -q -i ~/Wallpapers/ 3 | 4 | source "$HOME/.cache/wal/colors.sh" 5 | 6 | cp ~/.cache/wal/colors-waybar.css ~/.config/waybar/ 7 | cp $wallpaper ~/.cache/current_wallpaper.jpg 8 | newwall=$(echo $wallpaper | sed "s|$HOME/Wallpapers/||g") 9 | 10 | swww img $wallpaper --transition-step 20 --transition-fps=20 11 | ~/.config/scrIpts/waybar-launch.sh 12 | notify-send "Theme and Wallpaper updated" "With image $newwall" 13 | 14 | echo "DONE!" 15 | 16 | -------------------------------------------------------------------------------- /.config/Scripts/volume: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | iDIR="$HOME/.config/dunst/icons/vol" 4 | 5 | # Get Volume 6 | get_volume() { 7 | volume=$(pamixer --get-volume) 8 | echo "$volume" 9 | } 10 | 11 | # Get icons 12 | get_icon() { 13 | current=$(get_volume) 14 | if [[ "$current" -eq "0" ]]; then 15 | echo "$iDIR/vol-0.svg" 16 | elif [[ ("$current" -ge "0") && ("$current" -le "5") ]]; then 17 | echo "$iDIR/vol-5.svg" 18 | elif [[ ("$current" -ge "5") && ("$current" -le "10") ]]; then 19 | echo "$iDIR/vol-10.svg" 20 | elif [[ ("$current" -ge "10") && ("$current" -le "15") ]]; then 21 | echo "$iDIR/vol-15.svg" 22 | elif [[ ("$current" -ge "15") && ("$current" -le "20") ]]; then 23 | echo "$iDIR/vol-20.svg" 24 | elif [[ ("$current" -ge "20") && ("$current" -le "25") ]]; then 25 | echo "$iDIR/vol-25.svg" 26 | elif [[ ("$current" -ge "25") && ("$current" -le "30") ]]; then 27 | echo "$iDIR/vol-30.svg" 28 | elif [[ ("$current" -ge "30") && ("$current" -le "35") ]]; then 29 | echo "$iDIR/vol-35.svg" 30 | elif [[ ("$current" -ge "35") && ("$current" -le "40") ]]; then 31 | echo "$iDIR/vol-40.svg" 32 | elif [[ ("$current" -ge "40") && ("$current" -le "45") ]]; then 33 | echo "$iDIR/vol-45.svg" 34 | elif [[ ("$current" -ge "45") && ("$current" -le "50") ]]; then 35 | echo "$iDIR/vol-50.svg" 36 | elif [[ ("$current" -ge "50") && ("$current" -le "55") ]]; then 37 | echo "$iDIR/vol-55.svg" 38 | elif [[ ("$current" -ge "55") && ("$current" -le "60") ]]; then 39 | echo "$iDIR/vol-60.svg" 40 | elif [[ ("$current" -ge "60") && ("$current" -le "65") ]]; then 41 | echo "$iDIR/vol-65.svg" 42 | elif [[ ("$current" -ge "65") && ("$current" -le "70") ]]; then 43 | echo "$iDIR/vol-70.svg" 44 | elif [[ ("$current" -ge "70") && ("$current" -le "75") ]]; then 45 | echo "$iDIR/vol-75.svg" 46 | elif [[ ("$current" -ge "75") && ("$current" -le "80") ]]; then 47 | echo "$iDIR/vol-80.svg" 48 | elif [[ ("$current" -ge "80") && ("$current" -le "85") ]]; then 49 | echo "$iDIR/vol-85.svg" 50 | elif [[ ("$current" -ge "85") && ("$current" -le "90") ]]; then 51 | echo "$iDIR/vol-90.svg" 52 | elif [[ ("$current" -ge "90") && ("$current" -le "95") ]]; then 53 | echo "$iDIR/vol-95.svg" 54 | elif [[ ("$current" -ge "95") && ("$current" -le "100") ]]; then 55 | echo "$iDIR/vol-100.svg" 56 | fi 57 | } 58 | 59 | # Notify 60 | notify_user() { 61 | notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume: $(get_volume)%" 62 | } 63 | 64 | # Increase Volume 65 | inc_volume() { 66 | pamixer -i 5 && notify_user 67 | } 68 | 69 | # Decrease Volume 70 | dec_volume() { 71 | pamixer -d 5 && notify_user 72 | } 73 | 74 | # Toggle Mute 75 | toggle_mute() { 76 | if [ "$(pamixer --get-mute)" == "false" ]; then 77 | pamixer -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/muted-speaker.svg" "Volume Switched OFF" 78 | elif [ "$(pamixer --get-mute)" == "true" ]; then 79 | pamixer -u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/unmuted-speaker.svg" "Volume Switched ON" 80 | fi 81 | } 82 | 83 | # Toggle Mic 84 | toggle_mic() { 85 | if [ "$(pamixer --default-source --get-mute)" == "false" ]; then 86 | pamixer --default-source -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/muted-mic.svg" "Microphone Switched OFF" 87 | elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then 88 | pamixer -u --default-source u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/unmuted-mic.svg" "Microphone Switched ON" 89 | fi 90 | } 91 | # Get icons 92 | get_mic_icon() { 93 | current=$(pamixer --default-source --get-volume) 94 | if [[ "$current" -eq "0" ]]; then 95 | echo "$iDIR/microphone.png" 96 | elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then 97 | echo "$iDIR/microphone.png" 98 | elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then 99 | echo "$iDIR/microphone.png" 100 | elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then 101 | echo "$iDIR/microphone.png" 102 | fi 103 | } 104 | # Notify 105 | notify_mic_user() { 106 | notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_mic_icon)" "Mic-Level: $(pamixer --default-source --get-volume)%" 107 | } 108 | 109 | # Increase MIC Volume 110 | inc_mic_volume() { 111 | pamixer --default-source -i 5 && notify_mic_user 112 | } 113 | 114 | # Decrease MIC Volume 115 | dec_mic_volume() { 116 | pamixer --default-source -d 5 && notify_mic_user 117 | } 118 | 119 | # Execute accordingly 120 | if [[ "$1" == "--get" ]]; then 121 | get_volume 122 | elif [[ "$1" == "--inc" ]]; then 123 | inc_volume 124 | elif [[ "$1" == "--dec" ]]; then 125 | dec_volume 126 | elif [[ "$1" == "--toggle" ]]; then 127 | toggle_mute 128 | elif [[ "$1" == "--toggle-mic" ]]; then 129 | toggle_mic 130 | elif [[ "$1" == "--get-icon" ]]; then 131 | get_icon 132 | elif [[ "$1" == "--get-mic-icon" ]]; then 133 | get_mic_icon 134 | elif [[ "$1" == "--mic-inc" ]]; then 135 | inc_mic_volume 136 | elif [[ "$1" == "--mic-dec" ]]; then 137 | dec_mic_volume 138 | else 139 | get_volume 140 | fi 141 | -------------------------------------------------------------------------------- /.config/Scripts/wallpaper-changer-hyprpaper: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | killall hyprpaper 3 | hyprpaper & disown 4 | # wal -i ~/Pictures/Wallpaper/current_wallpaper.jpg 5 | -------------------------------------------------------------------------------- /.config/Scripts/waybar-launch.sh: -------------------------------------------------------------------------------- 1 | killall waybar && waybar & disown 2 | # pkill -RTMIN+1 waybar 3 | -------------------------------------------------------------------------------- /.config/Scripts/whatsappify-video: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # $1 -> file name 4 | 5 | file_name="$1" 6 | 7 | temp_file_path="$(mktemp -u --suffix '.mp4')" 8 | 9 | ffmpeg\ 10 | -i "$file_name"\ 11 | -c copy\ 12 | "$temp_file_path" 13 | 14 | ffmpeg\ 15 | -i "$temp_file_path"\ 16 | -pix_fmt yuv420p\ 17 | -crf 28\ 18 | "${file_name%.*}_yuv420p.mp4" 19 | 20 | rm "$temp_file_path" 21 | 22 | -------------------------------------------------------------------------------- /.config/Scripts/wifi-conn-strength: -------------------------------------------------------------------------------- 1 | #!/bin/env python3 2 | 3 | import dbus 4 | from sys import exit 5 | 6 | if __name__ == "__main__": 7 | 8 | bus = dbus.SystemBus() 9 | 10 | props_iface = "org.freedesktop.DBus.Properties" 11 | 12 | nm_bus = "org.freedesktop.NetworkManager" 13 | nm_obj = "/org/freedesktop/NetworkManager" 14 | nm_iface = "org.freedesktop.NetworkManager" 15 | 16 | nm = bus.get_object(nm_bus, nm_obj) 17 | 18 | nm_conn_type = nm.Get( 19 | nm_iface, 20 | "PrimaryConnectionType", 21 | dbus_interface = props_iface 22 | ) 23 | if nm_conn_type != "802-11-wireless": 24 | print("Primary connection is not Wi-Fi") 25 | exit(1) 26 | 27 | nm_conn_obj = nm.Get( 28 | nm_iface, 29 | "PrimaryConnection", 30 | dbus_interface = props_iface 31 | ) 32 | nm_conn = bus.get_object(nm_bus, nm_conn_obj) 33 | nm_conn_iface = "org.freedesktop.NetworkManager.Connection.Active" 34 | 35 | nm_ap_obj = nm_conn.Get( 36 | nm_conn_iface, 37 | "SpecificObject", 38 | dbus_interface = props_iface 39 | ) 40 | nm_ap_iface = "org.freedesktop.NetworkManager.AccessPoint" 41 | nm_ap = bus.get_object(nm_bus, nm_ap_obj) 42 | 43 | nm_ap_strength = nm_ap.Get(nm_ap_iface, "Strength", dbus_interface = props_iface) 44 | if nm_ap_strength == None: 45 | print("Failed to get connection strength") 46 | exit(2) 47 | 48 | print(int(nm_ap_strength)) 49 | -------------------------------------------------------------------------------- /.config/assets/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/banner.png -------------------------------------------------------------------------------- /.config/assets/hyprland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/hyprland.png -------------------------------------------------------------------------------- /.config/assets/hyprlock-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/hyprlock-1.png -------------------------------------------------------------------------------- /.config/assets/hyprlock-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/hyprlock-2.png -------------------------------------------------------------------------------- /.config/assets/kitty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/kitty.png -------------------------------------------------------------------------------- /.config/assets/made-with-arch-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/made-with-arch-text.png -------------------------------------------------------------------------------- /.config/assets/ncmpcpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/ncmpcpp.png -------------------------------------------------------------------------------- /.config/assets/neofetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/neofetch.png -------------------------------------------------------------------------------- /.config/assets/neovim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/neovim.png -------------------------------------------------------------------------------- /.config/assets/rofi-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/rofi-1.png -------------------------------------------------------------------------------- /.config/assets/rofi-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/rofi-2.png -------------------------------------------------------------------------------- /.config/assets/rofi-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/rofi-3.png -------------------------------------------------------------------------------- /.config/assets/spotify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/spotify.png -------------------------------------------------------------------------------- /.config/assets/waybar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/assets/waybar.png -------------------------------------------------------------------------------- /.config/bat/config: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="Material-Darker" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | #--italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | #--paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for Arduino .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /.config/cava/shaders/bar_spectrum.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 fragCoord; 4 | out vec4 fragColor; 5 | 6 | // bar values. defaults to left channels first (low to high), then right (high to low). 7 | uniform float bars[512]; 8 | 9 | uniform int bars_count; // number of bars (left + right) (configurable) 10 | uniform int bar_width; // bar width (configurable), not used here 11 | uniform int bar_spacing; // space bewteen bars (configurable) 12 | 13 | uniform vec3 u_resolution; // window resolution 14 | 15 | //colors, configurable in cava config file (r,g,b) (0.0 - 1.0) 16 | uniform vec3 bg_color; // background color 17 | uniform vec3 fg_color; // foreground color 18 | 19 | uniform int gradient_count; 20 | uniform vec3 gradient_colors[8]; // gradient colors 21 | 22 | vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) 23 | { 24 | //create color based on fraction of this color and next color 25 | float yr = (y - y_min) / (y_max - y_min); 26 | return col_1 * (1.0 - yr) + col_2 * yr; 27 | } 28 | 29 | void main() 30 | { 31 | // find which bar to use based on where we are on the x axis 32 | float x = u_resolution.x * fragCoord.x; 33 | int bar = int(bars_count * fragCoord.x); 34 | 35 | //calculate a bar size 36 | float bar_size = u_resolution.x / bars_count; 37 | 38 | //the y coordinate and bar values are the same 39 | float y = bars[bar]; 40 | 41 | // make sure there is a thin line at bottom 42 | if (y * u_resolution.y < 1.0) 43 | { 44 | y = 1.0 / u_resolution.y; 45 | } 46 | 47 | //draw the bar up to current height 48 | if (y > fragCoord.y) 49 | { 50 | //make some space between bars basen on settings 51 | if (x > (bar + 1) * (bar_size) - bar_spacing) 52 | { 53 | fragColor = vec4(bg_color,1.0); 54 | } 55 | else 56 | { 57 | if (gradient_count == 0) 58 | { 59 | fragColor = vec4(fg_color,1.0); 60 | } 61 | else 62 | { 63 | //find which color in the configured gradient we are at 64 | int color = int((gradient_count - 1) * fragCoord.y); 65 | 66 | //find where on y this and next color is supposed to be 67 | float y_min = color / (gradient_count - 1.0); 68 | float y_max = (color + 1.0) / (gradient_count - 1.0); 69 | 70 | //make color 71 | fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); 72 | } 73 | } 74 | } 75 | else 76 | { 77 | fragColor = vec4(bg_color,1.0); 78 | } 79 | } -------------------------------------------------------------------------------- /.config/cava/shaders/northern_lights.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 fragCoord; 4 | out vec4 fragColor; 5 | 6 | // bar values. defaults to left channels first (low to high), then right (high to low). 7 | uniform float bars[512]; 8 | 9 | uniform int bars_count; // number of bars (left + right) (configurable) 10 | 11 | uniform vec3 u_resolution; // window resolution, not used here 12 | 13 | //colors, configurable in cava config file 14 | uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here 15 | uniform vec3 fg_color; // foreground color, not used here 16 | 17 | void main() 18 | { 19 | // find which bar to use based on where we are on the x axis 20 | int bar = int(bars_count * fragCoord.x); 21 | 22 | float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; 23 | float y = (bars[bar]) * bar_y; 24 | 25 | float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; 26 | float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; 27 | 28 | bar_r = bar_r * bar_r * 2; 29 | 30 | // set color 31 | fragColor.r = fg_color.x * y * bar_r; 32 | fragColor.g = fg_color.y * y * bar_r; 33 | fragColor.b = fg_color.z * y * bar_r; 34 | } 35 | -------------------------------------------------------------------------------- /.config/cava/shaders/pass_through.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | 4 | // Input vertex data, different for all executions of this shader. 5 | layout(location = 0) in vec3 vertexPosition_modelspace; 6 | 7 | // Output data ; will be interpolated for each fragment. 8 | out vec2 fragCoord; 9 | 10 | void main() 11 | { 12 | gl_Position = vec4(vertexPosition_modelspace,1); 13 | fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; 14 | } 15 | -------------------------------------------------------------------------------- /.config/dunst/icons/battery-alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/battery-alert.png -------------------------------------------------------------------------------- /.config/dunst/icons/battery-charging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/battery-charging.png -------------------------------------------------------------------------------- /.config/dunst/icons/battery-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/battery-full.png -------------------------------------------------------------------------------- /.config/dunst/icons/battery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/battery.png -------------------------------------------------------------------------------- /.config/dunst/icons/critical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 19 | 37 | 42 | 47 | 48 | -------------------------------------------------------------------------------- /.config/dunst/icons/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/dark.png -------------------------------------------------------------------------------- /.config/dunst/icons/dnd/dnd-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/dnd/dnd-off.png -------------------------------------------------------------------------------- /.config/dunst/icons/dnd/dnd-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/dnd/dnd-on.png -------------------------------------------------------------------------------- /.config/dunst/icons/hyprdots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/hyprdots.png -------------------------------------------------------------------------------- /.config/dunst/icons/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 38 | 43 | 49 | 54 | 59 | 64 | 69 | 74 | 79 | 84 | 89 | 94 | 99 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /.config/dunst/icons/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/light.png -------------------------------------------------------------------------------- /.config/dunst/icons/recorder/recording.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/recorder/recording.png -------------------------------------------------------------------------------- /.config/dunst/icons/recorder/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/dunst/icons/recorder/save.png -------------------------------------------------------------------------------- /.config/dunst/icons/vol/muted-mic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/muted-speaker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/unmuted-mic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/unmuted-speaker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-0.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 61 | 62 | 82 | 83 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-100.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 61 | 62 | 82 | 83 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-15.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-20.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-25.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-30.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-35.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-40.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-45.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 84 | 85 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-50.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 84 | 85 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-55.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-60.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-65.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-70.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-75.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-80.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-85.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-90.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/dunst/icons/vol/vol-95.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 65 | 66 | 85 | 86 | -------------------------------------------------------------------------------- /.config/fish/completions/fisher.fish: -------------------------------------------------------------------------------- 1 | complete --command fisher --exclusive --long help --description "Print help" 2 | complete --command fisher --exclusive --long version --description "Print version" 3 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins" 4 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins" 5 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins" 6 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex" 7 | complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)" 8 | -------------------------------------------------------------------------------- /.config/fish/conf.d/tmux.extra.conf: -------------------------------------------------------------------------------- 1 | set -g default-terminal $fish_tmux_term 2 | source-file $fish_tmux_config 3 | -------------------------------------------------------------------------------- /.config/fish/conf.d/tmux.fish: -------------------------------------------------------------------------------- 1 | set -q fish_tmux_alter_path || set fish_tmux_alter_path true 2 | 3 | if test fish_tmux_alter_path = true 4 | switch (uname) 5 | case "Linux" 6 | if test -d /home/linuxbrew 7 | set -gx PATH "/home/linuxbrew/bin" "/home/linuxbrew/sbin" $PATH 8 | end 9 | case "Darwin" 10 | if test -d /opt/homebrew 11 | set -gx PATH "/opt/homebrew/bin" "/opt/homebrew/sbin" $PATH 12 | end 13 | # Not sure if this is needed though because on Linux /usr/local is in the PATH by default 14 | if test -d /usr/local 15 | set -gx PATH "/usr/local/bin" "/usr/local/sbin" $PATH 16 | end 17 | end 18 | end 19 | 20 | if not type -q tmux 21 | echo "fish tmux plugin: tmux not found. Please install tmux before using this plugin." >&2 22 | exit 1 23 | end 24 | 25 | set -q fish_tmux_autostart || set fish_tmux_autostart true 26 | set -q fish_tmux_autostart_once || set fish_tmux_autostart_once true 27 | set -q fish_tmux_autoconnect || set fish_tmux_autoconnect true 28 | set -q fish_tmux_autoquit || set fish_tmux_autoquit $fish_tmux_autostart 29 | set -q fish_tmux_fixterm || set fish_tmux_fixterm true 30 | set -q fish_tmux_iterm2 || set fish_tmux_iterm2 false 31 | set -q fish_tmux_fixterm_without_256color || set fish_tmux_fixterm_without_256color "screen" 32 | set -q fish_tmux_fixterm_with_256color || set fish_tmux_fixterm_with_256color "screen-256color" 33 | set -q fish_tmux_config || set -x fish_tmux_config "$HOME/.config/tmux/tmux.conf" 34 | set -q fish_tmux_unicode || set fish_tmux_unicode false 35 | 36 | if test (tput colors) = "256" 37 | set -x fish_tmux_term $fish_tmux_fixterm_with_256color 38 | else 39 | set -x fish_tmux_term $fish_tmux_fixterm_without_256color 40 | end 41 | 42 | set -l script_dir (realpath (dirname (status -f))) 43 | if test ! $fish_tmux_iterm2 = true && test -e $fish_tmux_config 44 | set -x _fish_tmux_fixed_config "$script_dir/tmux.extra.conf" 45 | else 46 | set -x _fish_tmux_fixed_config "$script_dir/tmux.only.conf" 47 | end 48 | 49 | function _fish_tmux_plugin_run 50 | if test (count $argv) -gt 0 51 | command tmux $argv 52 | return $status 53 | end 54 | 55 | set -l tmux_cmd tmux 56 | test $fish_tmux_iterm2 = true && set -a tmux_cmd -CC 57 | test $fish_tmux_unicode = true && set -a tmux_cmd -u 58 | 59 | if test $fish_tmux_autoconnect = true && tmux has-session 60 | exec $tmux_cmd attach 61 | else 62 | if test $fish_tmux_fixterm = true 63 | set -a tmux_cmd -f $_fish_tmux_fixed_config 64 | else if test -e $fish_tmux_config 65 | set -a tmux_cmd -f $fish_tmux_config 66 | end 67 | 68 | if set -q fish_tmux_default_session_name 69 | exec $tmux_cmd new-session -s $fish_tmux_default_session_name 70 | else 71 | exec $tmux_cmd new-session 72 | end 73 | end 74 | end 75 | 76 | alias tmux=_fish_tmux_plugin_run 77 | 78 | set -q fish_tmux_autostarted || set fish_tmux_autostarted false 79 | if status is-interactive && ! fish_is_root_user 80 | if test -z $TMUX && \ 81 | test $fish_tmux_autostart = true && \ 82 | test -z $INSIDE_EMACS && \ 83 | test -z $EMACS && \ 84 | test -z $VIM && \ 85 | test -z $VSCODE_RESOLVING_ENVIRONMENT && \ 86 | test "$TERM" != 'linux' && \ 87 | test "$TERM_PROGRAM" != 'vscode' && \ 88 | test "$TERMINAL_EMULATOR" != 'JetBrains-JediTerm' 89 | if test $fish_tmux_autostart_once = false || test ! $fish_tmux_autostarted = true 90 | set -x fish_tmux_autostarted true 91 | _fish_tmux_plugin_run 92 | end 93 | end 94 | end 95 | -------------------------------------------------------------------------------- /.config/fish/conf.d/tmux.only.conf: -------------------------------------------------------------------------------- 1 | set -g default-terminal $fish_tmux_term 2 | -------------------------------------------------------------------------------- /.config/fish/conf.d/tmux_abbrs.fish: -------------------------------------------------------------------------------- 1 | abbr -a ta 'tmux attach -t' 2 | abbr -a tad 'tmux attach -d -t' 3 | abbr -a ts 'tmux new-session -s' 4 | abbr -a tl 'tmux list-sessions' 5 | abbr -a tksv 'tmux kill-server' 6 | abbr -a tkss 'tmux kill-session -t' 7 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | if status is-interactive 2 | fzf --fish | source 3 | 4 | zoxide init --cmd cd fish | source 5 | 6 | thefuck --alias | source 7 | 8 | oh-my-posh init fish --config ~/.config/ohmyposh/zen.toml | source 9 | end 10 | -------------------------------------------------------------------------------- /.config/fish/fish_plugins: -------------------------------------------------------------------------------- 1 | jorgebucaran/fisher 2 | -------------------------------------------------------------------------------- /.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --export EDITOR:nvim 4 | SETUVAR --export FZF_DEFAULT_OPTS:\x2d\x2dheight\x3d60\x25\x20\x2d\x2dcolor\x3dfg\x3a\x2d1\x2cfg\x2b\x3a\x23fafafa\x2cbg\x3a\x2d1\x2cbg\x2b\x3a\x231c1c1c\x20\x2d\x2dcolor\x3dhl\x3a\x2382aaff\x2chl\x2b\x3a\x2389ddff\x2cinfo\x3a\x23ffcb6b\x2cmarker\x3a\x23c3e88d\x20\x2d\x2dcolor\x3dprompt\x3a\x23f07178\x2cspinner\x3a\x23c792ea\x2cpointer\x3a\x23c792ea\x2cheader\x3a\x2389ddff\x20\x2d\x2dcolor\x3dborder\x3a\x234a4a4a\x2clabel\x3a\x23eeffff\x2cquery\x3a\x23eeffff\x20\x2d\x2dborder\x3d\x22rounded\x22\x20\x2d\x2dborder\x2dlabel\x3d\x22\x22\x20\x2d\x2dpreview\x2dwindow\x3d\x22border\x2drounded\x22\x20\x2d\x2dpadding\x3d\x221\x22\x20\x2d\x2dprompt\x3d\x22\x3e\x20\x22\x20\x2d\x2dmarker\x3d\x22\x3e\x22\x20\x2d\x2dpointer\x3d\x22\u25c6\x22\x20\x2d\x2dseparator\x3d\x22\u2500\x22\x20\x2d\x2dscrollbar\x3d\x22\u2502\x22 5 | SETUVAR --export TERMINAL:kitty 6 | SETUVAR --export VISUAL:nvim 7 | SETUVAR __fish_initialized:3400 8 | SETUVAR _fisher_budimanjojo_2F_tmux_2E_fish_files:\x7e/\x2econfig/fish/conf\x2ed/tmux\x2eextra\x2econf\x1e\x7e/\x2econfig/fish/conf\x2ed/tmux\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/tmux\x2eonly\x2econf\x1e\x7e/\x2econfig/fish/conf\x2ed/tmux_abbrs\x2efish 9 | SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish 10 | SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ebudimanjojo/tmux\x2efish 11 | SETUVAR _fisher_upgraded_to_4_4:\x1d 12 | SETUVAR fish_color_autosuggestion:brblack 13 | SETUVAR fish_color_cancel:\x2dr 14 | SETUVAR fish_color_command:blue 15 | SETUVAR fish_color_comment:red 16 | SETUVAR fish_color_cwd:green 17 | SETUVAR fish_color_cwd_root:red 18 | SETUVAR fish_color_end:green 19 | SETUVAR fish_color_error:brred 20 | SETUVAR fish_color_escape:brcyan 21 | SETUVAR fish_color_history_current:\x2d\x2dbold 22 | SETUVAR fish_color_host:normal 23 | SETUVAR fish_color_host_remote:yellow 24 | SETUVAR fish_color_normal:normal 25 | SETUVAR fish_color_operator:brcyan 26 | SETUVAR fish_color_param:cyan 27 | SETUVAR fish_color_quote:yellow 28 | SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold 29 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 30 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 31 | SETUVAR fish_color_status:red 32 | SETUVAR fish_color_user:brgreen 33 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 34 | SETUVAR fish_greeting: 35 | SETUVAR fish_key_bindings:fish_default_key_bindings 36 | SETUVAR fish_pager_color_completion:normal 37 | SETUVAR fish_pager_color_description:yellow\x1e\x2di 38 | SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 39 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 40 | SETUVAR fish_pager_color_selected_background:\x2dr 41 | SETUVAR fish_user_paths:/home/pratik/go/bin\x1e/home/pratik/\x2econfig/Scripts\x1e/home/pratik/\x2elocal/bin 42 | -------------------------------------------------------------------------------- /.config/fish/functions/grep.fish: -------------------------------------------------------------------------------- 1 | function grep --description 'alias grep=grep --color=auto' 2 | command grep --color=auto $argv 3 | 4 | end 5 | -------------------------------------------------------------------------------- /.config/fish/functions/ls.fish: -------------------------------------------------------------------------------- 1 | function ls --wraps='eza --icons --no-quotes' --description 'alias ls=eza --icons --no-quotes' 2 | eza --icons --no-quotes $argv 3 | 4 | end 5 | -------------------------------------------------------------------------------- /.config/fish/functions/open.fish: -------------------------------------------------------------------------------- 1 | function open --wraps=imv --description 'alias open=imv' 2 | imv $argv 3 | 4 | end 5 | -------------------------------------------------------------------------------- /.config/fish/functions/pls.fish: -------------------------------------------------------------------------------- 1 | function pls --wraps=doas --description 'alias pls=doas' 2 | doas $argv 3 | 4 | end 5 | -------------------------------------------------------------------------------- /.config/hypr/env_var.conf: -------------------------------------------------------------------------------- 1 | # Environment Variables 2 | # see https://wiki.hyprland.org/Configuring/Environment-variables/ 3 | 4 | # Theming Related Variables 5 | # Set cursor size. See FAQ below for why you might want this variable set. 6 | # https://wiki.hyprland.org/FAQ/ 7 | env = XCURSOR_SIZE,24 8 | 9 | # Set a GTK theme manually, for those who want to avoid appearance tools such as lxappearance or nwg-look 10 | #env = GTK_THEME, 11 | 12 | # Set your cursor theme. The theme needs to be installed and readable by your user. 13 | #env = XCURSOR_THEME, 14 | 15 | # the line below may help with multiple monitors 16 | #env = WLR_EGL_NO_MODIFIERS,1 17 | 18 | #XDG Specifications 19 | env = XDG_CURRENT_DESKTOP,Hyprland 20 | env = XDG_SESSION_TYPE,wayland 21 | env = XDG_SESSION_DESKTOP,Hyprland 22 | 23 | # Toolkit Backend Variables 24 | 25 | # GTK: Use wayland if available, fall back to x11 if not. 26 | #env = GDK_BACKEND,wayland,x11 27 | 28 | # QT: Use wayland if available, fall back to x11 if not. 29 | #env = QT_QPA_PLATFORM,wayland,xcb 30 | 31 | # Run SDL2 applications on Wayland. Remove or set to x11 if games that 32 | # provide older versions of SDL cause compatibility issues 33 | #env = SDL_VIDEODRIVER,wayland 34 | 35 | # Clutter package already has wayland enabled, this variable 36 | #will force Clutter applications to try and use the Wayland backend 37 | #env = CLUTTER_BACKEND,wayland 38 | 39 | # QT Variables 40 | 41 | # (From the QT documentation) enables automatic scaling, based on the monitor’s pixel density 42 | # https://doc.qt.io/qt-5/highdpi.html 43 | #env = QT_AUTO_SCREEN_SCALE_FACTOR,1 44 | 45 | # Tell QT applications to use the Wayland backend, and fall back to x11 if Wayland is unavailable 46 | #env = QT_QPA_PLATFORM,wayland,xcb 47 | 48 | # Disables window decorations on QT applications 49 | #env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 50 | 51 | #Tells QT based applications to pick your theme from qt5ct, use with Kvantum. 52 | #env = QT_QPA_PLATFORMTHEME,qt5ct -------------------------------------------------------------------------------- /.config/hypr/env_var_nvidia.conf: -------------------------------------------------------------------------------- 1 | # Environment Variables NVIDIA Specific 2 | # See the wiki for more info as some work is required 3 | # https://wiki.hyprland.org/hyprland-wiki/pages/Nvidia/ 4 | env = WLR_NO_HARDWARE_CURSORS,1 5 | 6 | # Hardware acceleration on NVIDIA GPUs 7 | # See Archwiki Hardware Acecleration Page for details and necessary values before setting this variable. 8 | # https://wiki.archlinux.org/title/Hardware_video_acceleration 9 | env = LIBVA_DRIVER_NAME,nvidia 10 | 11 | # The lines below may cause issues, proceed at your own risk 12 | 13 | # To force GBM as a backend, set the following environment variables: 14 | # See Archwiki Wayland Page for more details on those variables. 15 | # https://wiki.archlinux.org/title/Wayland#Requirements 16 | #env = GBM_BACKEND,nvidia-drm 17 | #env = __GLX_VENDOR_LIBRARY_NAME,nvidia 18 | 19 | 20 | # Controls if G-Sync capable monitors should use Variable Refresh Rate (VRR) 21 | # See Nvidia Documentation for details. 22 | # https://download.nvidia.com/XFree86/Linux-32bit-ARM/375.26/README/openglenvvariables.html 23 | #env = __GL_GSYNC_ALLOWED, 24 | 25 | # Controls if Adaptive Sync should be used. Recommended to set as “0” to avoid having problems on some games. 26 | #env = __GL_VRR_ALLOWED, 27 | 28 | # use legacy DRM interface instead of atomic mode setting. Might fix flickering issues. 29 | #env = WLR_DRM_NO_ATOMIC,1 -------------------------------------------------------------------------------- /.config/hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | general { 2 | immediate_render = true 3 | } 4 | 5 | background { 6 | monitor = 7 | path = $HOME/Pictures/Wallpaper/current_wallpaper.png # only png supported for now 8 | color = rgba(25, 20, 20, 1.0) 9 | 10 | # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations 11 | blur_passes = 0 # 0 disables blurring 12 | blur_size = 2 13 | noise = 0 14 | contrast = 0 15 | brightness = 0 16 | vibrancy = 0 17 | vibrancy_darkness = 0.0 18 | } 19 | 20 | input-field { 21 | monitor = 22 | size = 300, 30 23 | outline_thickness = 0 24 | dots_size = 0.25 # Scale of input-field height, 0.2 - 0.8 25 | dots_spacing = 0.55 # Scale of dots' absolute size, 0.0 - 1.0 26 | dots_center = true 27 | dots_rounding = -1 28 | outer_color = rgba(242, 243, 244, 0) 29 | inner_color = rgba(242, 243, 244, 0) 30 | font_color = rgba(242, 243, 244, 0.75) 31 | fade_on_empty = false 32 | placeholder_text = # Text rendered in the input box when it's empty. 33 | hide_input = false 34 | check_color = rgba(204, 136, 34, 0) 35 | fail_color = rgba(204, 34, 34, 0) # if authentication failed, changes outer_color and fail message color 36 | fail_text = $FAIL ($ATTEMPTS) # can be set to empty 37 | fail_transition = 300 # transition time in ms between normal outer_color and fail_color 38 | capslock_color = -1 39 | numlock_color = -1 40 | bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) 41 | invert_numlock = false # change color if numlock is off 42 | swap_font_color = false # see below 43 | position = 0, -468 44 | halign = center 45 | valign = center 46 | } 47 | 48 | label { 49 | monitor = 50 | text = cmd[update:1000] echo "$(~/.config/Scripts/song-status)" 51 | color = rgba(242, 243, 244, 0.75) 52 | font_size = 14 53 | font_family = SF Pro Text 54 | position = 20, 512 55 | halign = left 56 | valign = center 57 | } 58 | 59 | label { 60 | monitor = 61 | text = cmd[update:1000] echo "$(~/.config/Scripts/network-status)‎" 62 | color = rgba(242, 243, 244, 0.75) 63 | font_size = 16 64 | font_family = SF Pro Text 65 | position = -35, 512 66 | halign = right 67 | valign = center 68 | } 69 | 70 | label { 71 | monitor = 72 | text = cmd[update:1000] echo "$(~/.config/Scripts/battery-status)‎" 73 | color = rgba(242, 243, 244, 0.75) 74 | font_size = 19 75 | font_family = SF Pro Text 76 | position = -93, 512 77 | halign = right 78 | valign = center 79 | } 80 | 81 | label { 82 | monitor = 83 | text = cmd[update:1000] echo "$(~/.config/Scripts/layout-status)‎" 84 | color = rgba(242, 243, 244, 0.75) 85 | font_size = 15 86 | font_family = SF Pro Text 87 | position = -150, 512 88 | halign = right 89 | valign = center 90 | } 91 | 92 | label { 93 | monitor = 94 | text = cmd[update:1000] echo "$(date +"%A, %B %d")" 95 | color = rgba(242, 243, 244, 0.75) 96 | font_size = 20 97 | font_family = SF Pro Display Bold 98 | position = 0, 405 99 | halign = center 100 | valign = center 101 | } 102 | 103 | label { 104 | monitor = 105 | text = cmd[update:1000] echo "$(date +"%k:%M")" 106 | color = rgba(242, 243, 244, 0.75) 107 | font_size = 93 108 | font_family = SF Pro Display Bold 109 | position = 0, 310 110 | halign = center 111 | valign = center 112 | } 113 | 114 | 115 | label { 116 | monitor = 117 | text = Pratik Gayen 118 | color = rgba(242, 243, 244, 0.75) 119 | font_size = 12 120 | font_family = SF Pro Display Bold 121 | position = 0, -407 122 | halign = center 123 | valign = center 124 | } 125 | 126 | label { 127 | monitor = 128 | text = Touch ID or Enter Password 129 | color = rgba(242, 243, 244, 0.75) 130 | font_size = 10 131 | font_family = SF Pro Display 132 | position = 0, -438 133 | halign = center 134 | valign = center 135 | } 136 | 137 | image { 138 | monitor = 139 | path = ~/Pictures/fullpfp.png 140 | border_color = 0xffdddddd 141 | border_size = 0 142 | size = 73 143 | rounding = -1 144 | rotate = 0 145 | reload_time = -1 146 | reload_cmd = 147 | position = 0, -353 148 | halign = center 149 | valign = center 150 | } 151 | -------------------------------------------------------------------------------- /.config/hypr/hyprpaper.conf: -------------------------------------------------------------------------------- 1 | preload = ~/Pictures/Wallpaper/current_wallpaper.png 2 | #if more than one preload is desired then continue to preload other backgrounds 3 | #preload = /path/to/next_image.png 4 | # .. more preloads 5 | 6 | #set the default wallpaper(s) seen on inital workspace(s) --depending on the number of monitors used 7 | wallpaper = eDP-1, ~/Pictures/Wallpaper/current_wallpaper.png 8 | #if more than one monitor in use, can load a 2nd image 9 | #wallpaper = monitor2,/path/to/next_image.png 10 | # .. more monitors 11 | splash = false 12 | -------------------------------------------------------------------------------- /.config/hypr/media-binds.conf: -------------------------------------------------------------------------------- 1 | $SCRIPT = ~/.config/Scripts/ 2 | 3 | bind = , xf86audioraisevolume, exec, $SCRIPT/volume --inc 4 | bind = , xf86audiolowervolume, exec, $SCRIPT/volume --dec 5 | bind = , xf86AudioMicMute, exec, $SCRIPT/volume --toggle-mic 6 | bind = , xf86audioMute, exec, $SCRIPT/volume --toggle 7 | bind = , xf86audioPause, exec, playerctl play-pause 8 | bind = , xf86audioPlay, exec, playerctl play-pause 9 | bind = , xf86audioNext, exec, playerctl next 10 | bind = , xf86audioPrev, exec, playerctl previous 11 | bind = , xf86audioStop, exec, playerctl stop 12 | 13 | bind = , xf86KbdBrightnessDown, exec, $SCRIPT/kb-brightness --dec 14 | bind = , xf86KbdBrightnessUp, exec, $SCRIPT/kb-brightness --inc 15 | 16 | bind = , xf86MonBrightnessDown, exec, $SCRIPT/brightness --dec 17 | bind = , xf86MonBrightnessUp, exec, $SCRIPT/brightness --inc 18 | -------------------------------------------------------------------------------- /.config/hypr/rog-g15-strix-2021-binds.conf: -------------------------------------------------------------------------------- 1 | # ROG G15 Strix (2021) Specific binds 2 | bind = ,156, exec, rog-control-center # ASUS Armory crate key 3 | bind = ,211, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar # Fan Profile key switch between power profiles 4 | bind = ,210, exec, asusctl led-mode -n # Switch keyboard RGB profile FN+F4 -------------------------------------------------------------------------------- /.config/hypr/store/dynamic_out.txt: -------------------------------------------------------------------------------- 1 | {"class": "none", "text": ""} -------------------------------------------------------------------------------- /.config/hypr/store/latest_notif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/hypr/store/latest_notif -------------------------------------------------------------------------------- /.config/hypr/store/prev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/hypr/store/prev.txt -------------------------------------------------------------------------------- /.config/hypr/xdg-portal-hyprland: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | killall xdg-desktop-portal-hyprland 4 | killall xdg-desktop-portal-wlr 5 | killall xdg-desktop-portal 6 | /usr/lib/xdg-desktop-portal-hyprland & 7 | sleep 2 8 | /usr/lib/xdg-desktop-portal & 9 | -------------------------------------------------------------------------------- /.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | font_family FiraCode Nerd Font 2 | font_size 20 3 | 4 | foreground #fafafa 5 | background #1c1c1c 6 | 7 | color0 #4a4a4a 8 | color1 #f07178 9 | color2 #c3e88d 10 | color3 #ffcb6b 11 | color4 #82aaff 12 | color5 #c792ea 13 | color6 #89ddff 14 | color7 #eeffff 15 | color8 #4a4a4a 16 | color9 #f07178 17 | color10 #c3e88d 18 | color11 #ffcb6b 19 | color12 #82aaff 20 | color13 #c792ea 21 | color14 #89ddff 22 | color15 #fafafa 23 | 24 | cursor_shape underline 25 | shell_integration no-cursor 26 | tab_bar_style separator 27 | tab_powerline_style slanted 28 | tab_bar_edge top 29 | tab_title_max_length 25 30 | tab_title_template " {title} " 31 | tab_separator " " 32 | 33 | allow_remote_control yes 34 | enabled_layouts splits 35 | 36 | window_border_width 0 37 | 38 | active_tab_foreground #fafafa 39 | active_tab_background #262626 40 | inactive_tab_foreground #cccccc 41 | inactive_tab_background #1c1c1c 42 | active_tab_font_style normal 43 | tab_bar_background #1c1c1c 44 | tab_bar_margin_color #1c1c1c 45 | 46 | selection_background #333333 47 | selection_foreground none 48 | 49 | window_padding_width 10 50 | 51 | remember_window_size no 52 | initial_window_width 75c 53 | initial_window_height 20c 54 | 55 | # map ctrl+shift+d launch --type=background --cwd=current sh -c "thunar \"$(pwd)\"" 56 | 57 | # close_on_child_death yes 58 | 59 | map ctrl+shift+t new_tab_with_cwd 60 | map ctrl+shift+n new_os_window_with_cwd 61 | # map ctrl+shift+e launch --type=background --cwd=current sh -c "/usr/bin/neovide --no-vsync --no-idle" 62 | 63 | enabled_layouts tall:bias=50;full_size=1;mirrored=false 64 | 65 | enable_audio_bell false 66 | 67 | confirm_os_window_close 0 68 | -------------------------------------------------------------------------------- /.config/kitty/themes/latte.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Latte 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/latte.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #4C4F69 13 | background #EFF1F5 14 | selection_foreground #EFF1F5 15 | selection_background #DC8A78 16 | 17 | # Cursor colors 18 | cursor #DC8A78 19 | cursor_text_color #EFF1F5 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #DC8A78 23 | 24 | # Kitty window border colors 25 | active_border_color #7287FD 26 | inactive_border_color #9CA0B0 27 | bell_border_color #DF8E1D 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color #EFF1F5 31 | macos_titlebar_color #EFF1F5 32 | 33 | # Tab bar colors 34 | active_tab_foreground #EFF1F5 35 | active_tab_background #8839EF 36 | inactive_tab_foreground #4C4F69 37 | inactive_tab_background #9CA0B0 38 | tab_bar_background #BCC0CC 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #EFF1F5 42 | mark1_background #7287fD 43 | mark2_foreground #EFF1F5 44 | mark2_background #8839EF 45 | mark3_foreground #EFF1F5 46 | mark3_background #209FB5 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #5C5F77 52 | color8 #6C6F85 53 | 54 | # red 55 | color1 #D20F39 56 | color9 #D20F39 57 | 58 | # green 59 | color2 #40A02B 60 | color10 #40A02B 61 | 62 | # yellow 63 | color3 #DF8E1D 64 | color11 #DF8E1D 65 | 66 | # blue 67 | color4 #1E66F5 68 | color12 #1E66F5 69 | 70 | # magenta 71 | color5 #EA76CB 72 | color13 #EA76CB 73 | 74 | # cyan 75 | color6 #179299 76 | color14 #179299 77 | 78 | # white 79 | color7 #ACB0BE 80 | color15 #BCC0CC 81 | -------------------------------------------------------------------------------- /.config/kitty/themes/macchiato.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Macchiato 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/macchiato.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #CAD3F5 13 | background #24273A 14 | selection_foreground #24273A 15 | selection_background #F4DBD6 16 | 17 | # Cursor colors 18 | cursor #F4DBD6 19 | cursor_text_color #24273A 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F4DBD6 23 | 24 | # Kitty window border colors 25 | active_border_color #B7BDF8 26 | inactive_border_color #6E738D 27 | bell_border_color #EED49F 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #181926 35 | active_tab_background #C6A0F6 36 | inactive_tab_foreground #CAD3F5 37 | inactive_tab_background #1E2030 38 | tab_bar_background #181926 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #24273A 42 | mark1_background #B7BDF8 43 | mark2_foreground #24273A 44 | mark2_background #C6A0F6 45 | mark3_foreground #24273A 46 | mark3_background #7DC4E4 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #494D64 52 | color8 #5B6078 53 | 54 | # red 55 | color1 #ED8796 56 | color9 #ED8796 57 | 58 | # green 59 | color2 #A6DA95 60 | color10 #A6DA95 61 | 62 | # yellow 63 | color3 #EED49F 64 | color11 #EED49F 65 | 66 | # blue 67 | color4 #8AADF4 68 | color12 #8AADF4 69 | 70 | # magenta 71 | color5 #F5BDE6 72 | color13 #F5BDE6 73 | 74 | # cyan 75 | color6 #8BD5CA 76 | color14 #8BD5CA 77 | 78 | # white 79 | color7 #B8C0E0 80 | color15 #A5ADCB 81 | 82 | -------------------------------------------------------------------------------- /.config/kitty/themes/mocha.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Mocha 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #CDD6F4 13 | background #1E1E2E 14 | selection_foreground #1E1E2E 15 | selection_background #F5E0DC 16 | 17 | # Cursor colors 18 | cursor #F5E0DC 19 | cursor_text_color #1E1E2E 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F5E0DC 23 | 24 | # Kitty window border colors 25 | active_border_color #B4BEFE 26 | inactive_border_color #6C7086 27 | bell_border_color #F9E2AF 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color #1E1E2E 31 | macos_titlebar_color #1E1E2E 32 | 33 | # Tab bar colors 34 | active_tab_foreground #11111B 35 | active_tab_background #CBA6F7 36 | inactive_tab_foreground #CDD6F4 37 | inactive_tab_background #181825 38 | tab_bar_background #11111B 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #1E1E2E 42 | mark1_background #B4BEFE 43 | mark2_foreground #1E1E2E 44 | mark2_background #CBA6F7 45 | mark3_foreground #1E1E2E 46 | mark3_background #74C7EC 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #45475A 52 | color8 #585B70 53 | 54 | # red 55 | color1 #F38BA8 56 | color9 #F38BA8 57 | 58 | # green 59 | color2 #A6E3A1 60 | color10 #A6E3A1 61 | 62 | # yellow 63 | color3 #F9E2AF 64 | color11 #F9E2AF 65 | 66 | # blue 67 | color4 #89B4FA 68 | color12 #89B4FA 69 | 70 | # magenta 71 | color5 #F5C2E7 72 | color13 #F5C2E7 73 | 74 | # cyan 75 | color6 #94E2D5 76 | color14 #94E2D5 77 | 78 | # white 79 | color7 #BAC2DE 80 | color15 #A6ADC8 81 | -------------------------------------------------------------------------------- /.config/ncmpcpp/error.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/ncmpcpp/error.log -------------------------------------------------------------------------------- /.config/neofetch/2phuthon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/2phuthon.png -------------------------------------------------------------------------------- /.config/neofetch/loli-god-requiem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/loli-god-requiem.jpg -------------------------------------------------------------------------------- /.config/neofetch/macchiato_squircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/macchiato_squircle.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/aisaka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/aisaka.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/arch.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/loli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/loli.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/made-with-arch-text-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/made-with-arch-text-2.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/pochita.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/pochita.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/ryuzaki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/ryuzaki.png -------------------------------------------------------------------------------- /.config/neofetch/pngs/sakurafetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pngs/sakurafetch.png -------------------------------------------------------------------------------- /.config/neofetch/pochita.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/pochita.png -------------------------------------------------------------------------------- /.config/neofetch/rempng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/rempng.png -------------------------------------------------------------------------------- /.config/neofetch/spy-family-anya-smirk-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FireDrop6000/hyprland-mydots/99b7417ad009816c592626ec01dfdde8b1f21ab6/.config/neofetch/spy-family-anya-smirk-512x512.png -------------------------------------------------------------------------------- /.config/nvim/.stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 120 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 2 5 | quote_style = "AutoPreferDouble" 6 | call_parentheses = "None" 7 | -------------------------------------------------------------------------------- /.config/nvim/LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" 2 | vim.g.mapleader = " " 3 | 4 | -- bootstrap lazy and all plugins 5 | local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" 6 | 7 | if not vim.loop.fs_stat(lazypath) then 8 | local repo = "https://github.com/folke/lazy.nvim.git" 9 | vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } 10 | end 11 | 12 | vim.opt.rtp:prepend(lazypath) 13 | 14 | local lazy_config = require "configs.lazy" 15 | 16 | -- load plugins 17 | require("lazy").setup({ 18 | { 19 | "NvChad/NvChad", 20 | lazy = false, 21 | branch = "v2.5", 22 | import = "nvchad.plugins", 23 | config = function() 24 | require "options" 25 | end, 26 | }, 27 | 28 | { import = "plugins" }, 29 | }, lazy_config) 30 | 31 | -- load theme 32 | dofile(vim.g.base46_cache .. "defaults") 33 | dofile(vim.g.base46_cache .. "statusline") 34 | 35 | require "nvchad.autocmds" 36 | 37 | vim.schedule(function() 38 | require "mappings" 39 | end) 40 | -------------------------------------------------------------------------------- /.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "LuaSnip": { "branch": "master", "commit": "7ad2eaeaca56d6ed63acacbfc114b99f1f67b982" }, 3 | "NvChad": { "branch": "v2.5", "commit": "5189f3e32c87478632bb471817db1df13f8b16d1" }, 4 | "TrueZen.nvim": { "branch": "main", "commit": "2b9e210e0d1a735e1fa85ec22190115dffd963aa" }, 5 | "base46": { "branch": "v2.5", "commit": "ce47400d51707c0370f32b6e0e889f69e642aed4" }, 6 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 7 | "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, 8 | "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, 9 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 10 | "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, 11 | "conform.nvim": { "branch": "master", "commit": "62eba813b7501b39612146cbf29cd07f1d4ac29c" }, 12 | "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, 13 | "gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" }, 14 | "indent-blankline.nvim": { "branch": "master", "commit": "db926997af951da38e5004ec7b9fbdc480b48f5d" }, 15 | "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, 16 | "lsp_signature.nvim": { "branch": "master", "commit": "a38da0a61c172bb59e34befc12efe48359884793" }, 17 | "lua-async-await": { "branch": "main", "commit": "652d94df34e97abe2d4a689edbc4270e7ead1a98" }, 18 | "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, 19 | "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, 20 | "mini.icons": { "branch": "main", "commit": "12e7b5d47bfc1b4c5ba4278fb49ec9100138df14" }, 21 | "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" }, 22 | "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, 23 | "nvim-autopairs": { "branch": "master", "commit": "19606af7c039271d5aa96bceff101e7523af3136" }, 24 | "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, 25 | "nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" }, 26 | "nvim-dap": { "branch": "master", "commit": "281a2e4cd1e7a17cea7ecb1745d84a8ab1249925" }, 27 | "nvim-java": { "branch": "main", "commit": "b3174e41ab51867123d8663eced53b33f1548522" }, 28 | "nvim-java-core": { "branch": "main", "commit": "5b03dca22fee76524a89e1c2dc1d73a9f0b1a3bb" }, 29 | "nvim-java-dap": { "branch": "main", "commit": "55f239532f7a3789d21ea68d1e795abc77484974" }, 30 | "nvim-java-refactor": { "branch": "main", "commit": "ea1420fed5463c9cc976c2b4175f434b3646f0f7" }, 31 | "nvim-java-test": { "branch": "main", "commit": "7f0f40e9c5b7eab5096d8bec6ac04251c6e81468" }, 32 | "nvim-lspconfig": { "branch": "master", "commit": "a7f0f9c18baa70a3970ea18f9984e03b6f6c2e8a" }, 33 | "nvim-silicon": { "branch": "main", "commit": "feb882f04c992b797daa118101a239fb3bedfc04" }, 34 | "nvim-tree.lua": { "branch": "master", "commit": "ad0b95dee55955817af635fa121f6e2486b10583" }, 35 | "nvim-treesitter": { "branch": "master", "commit": "8724e7d028ba11604dde94dc4be63f70cccf16e0" }, 36 | "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, 37 | "nvterm": { "branch": "main", "commit": "9d7ba3b6e368243175d38e1ec956e0476fd86ed9" }, 38 | "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" }, 39 | "spring-boot.nvim": { "branch": "main", "commit": "218c0c26c14d99feca778e4d13f5ec3e8b1b60f0" }, 40 | "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" }, 41 | "ui": { "branch": "v2.5", "commit": "23a5a720d1a7389175eca2b2bdd9d5d17b45071e" }, 42 | "vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" }, 43 | "which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }, 44 | "yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" } 45 | } 46 | -------------------------------------------------------------------------------- /.config/nvim/lua/chadrc.lua: -------------------------------------------------------------------------------- 1 | -- This file needs to have same structure as nvconfig.lua 2 | -- https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua 3 | 4 | ---@type ChadrcConfig 5 | local M = {} 6 | 7 | M.ui = { 8 | theme = "onedark", 9 | 10 | tabufline = { 11 | enabled = true, 12 | lazyload = false, 13 | order = { "treeOffset", "buffers", "tabs", "btns" }, 14 | modules = nil, 15 | }, 16 | 17 | nvdash = { 18 | load_on_startup = false, 19 | header = { 20 | " ▄ ▄ ", 21 | " ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ ", 22 | " █ ▄ █▄█ ▄▄▄ █ █▄█ █ █ ", 23 | " ▄▄ █▄█▄▄▄█ █▄█▄█▄▄█▄▄█ █ ", 24 | " ▄ █▄▄█ ▄ ▄▄ ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ", 25 | " █▄▄▄▄ ▄▄▄ █ ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ █ ▄", 26 | "▄ █ █▄█ █▄█ █ █ █▄█ █ █▄█ ▄▄▄ █ █", 27 | "█▄█ ▄ █▄▄█▄▄█ █ ▄▄█ █ ▄ █ █▄█▄█ █", 28 | " █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄█▄▄▄█ ", 29 | }, 30 | 31 | buttons = { 32 | { " Find File", "Spc f f", "Telescope find_files" }, 33 | { "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" }, 34 | { " Bookmarks", "Spc m a", "Telescope marks" }, 35 | { " Themes", "Spc t h", "Telescope themes" }, 36 | { " Mappings", "Spc c h", "NvCheatsheet" }, 37 | }, 38 | }, 39 | 40 | statusline = { 41 | theme = "vscode_colored", -- default/vscode/vscode_colored/minimal 42 | -- default/round/block/arrow separators work only for default statusline theme 43 | -- round and block will work for minimal theme only 44 | separator_style = "default", 45 | order = nil, 46 | modules = nil, 47 | }, 48 | -- hl_override = { 49 | -- Comment = { italic = true }, 50 | -- ["@comment"] = { italic = true }, 51 | -- }, 52 | } 53 | 54 | return M 55 | -------------------------------------------------------------------------------- /.config/nvim/lua/configs/conform.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | formatters_by_ft = { 3 | lua = { "stylua" }, 4 | css = { "prettier" }, 5 | html = { "prettier" }, 6 | javascript = { "prettier" }, 7 | typescript = { "prettier" }, 8 | javascriptreact = { "prettier" }, 9 | typescriptreact = { "prettier" }, 10 | svelte = { "prettier" }, 11 | json = { "prettier" }, 12 | jsonc = { "prettier" }, 13 | yaml = { "prettier" }, 14 | markdown = { "prettier" }, 15 | graphql = { "prettier" }, 16 | go = { "gofumpt", "golines", "goimports-reviser" } 17 | }, 18 | 19 | format_on_save = { 20 | -- These options will be passed to conform.format() 21 | timeout_ms = 500, 22 | lsp_fallback = true, 23 | }, 24 | } 25 | 26 | require("conform").setup(options) 27 | -------------------------------------------------------------------------------- /.config/nvim/lua/configs/lazy.lua: -------------------------------------------------------------------------------- 1 | return { 2 | defaults = { lazy = true }, 3 | install = { colorscheme = { "nvchad" } }, 4 | 5 | ui = { 6 | icons = { 7 | ft = "", 8 | lazy = "󰂠 ", 9 | loaded = "", 10 | not_loaded = "", 11 | }, 12 | }, 13 | 14 | performance = { 15 | rtp = { 16 | disabled_plugins = { 17 | "2html_plugin", 18 | "tohtml", 19 | "getscript", 20 | "getscriptPlugin", 21 | "gzip", 22 | "logipat", 23 | "netrw", 24 | "netrwPlugin", 25 | "netrwSettings", 26 | "netrwFileHandlers", 27 | "matchit", 28 | "tar", 29 | "tarPlugin", 30 | "rrhelper", 31 | "spellfile_plugin", 32 | "vimball", 33 | "vimballPlugin", 34 | "zip", 35 | "zipPlugin", 36 | "tutor", 37 | "rplugin", 38 | "syntax", 39 | "synmenu", 40 | "optwin", 41 | "compiler", 42 | "bugreport", 43 | "ftplugin", 44 | }, 45 | }, 46 | }, 47 | } 48 | -------------------------------------------------------------------------------- /.config/nvim/lua/configs/lspconfig.lua: -------------------------------------------------------------------------------- 1 | require("java").setup() 2 | require("lspconfig").jdtls.setup {} 3 | -- EXAMPLE 4 | local M = {} 5 | 6 | local lspconfig = require "lspconfig" 7 | 8 | M.on_attach = function(_, bufnr) 9 | vim.diagnostic.config { 10 | virtual_text = true, 11 | signs = { 12 | text = { 13 | [vim.diagnostic.severity.ERROR] = " ", 14 | [vim.diagnostic.severity.WARN] = " ", 15 | [vim.diagnostic.severity.INFO] = " ", 16 | [vim.diagnostic.severity.HINT] = " 󰌵", 17 | }, 18 | }, 19 | float = { 20 | focusable = false, 21 | border = "rounded", 22 | }, 23 | } 24 | 25 | require("lsp_signature").on_attach({ 26 | bind = true, 27 | hi_parameter = "LspSignatureActiveParameter", 28 | handler_opts = { 29 | border = "rounded", 30 | }, 31 | }, bufnr) 32 | end 33 | 34 | M.capabilities = require("cmp_nvim_lsp").default_capabilities() 35 | 36 | local servers = { "html", "cssls" } 37 | local util = require "lspconfig/util" 38 | -- lsps with default config 39 | for _, lsp in ipairs(servers) do 40 | lspconfig[lsp].setup { 41 | on_attach = M.on_attach, 42 | capabilities = M.capabilities, 43 | } 44 | end 45 | 46 | -- typescript 47 | lspconfig.tsserver.setup { 48 | on_attach = M.on_attach, 49 | capabilities = M.capabilities, 50 | } 51 | 52 | lspconfig.gopls.setup { 53 | on_attach = M.on_attach, 54 | capabilities = M.capabilities, 55 | cmd = { "gopls" }, 56 | filetypes = { "go", "gomod", "gowork", "gotmpl" }, 57 | root_dir = util.root_pattern("go.work", "go.mod", ".git"), 58 | settings = { 59 | gopls = { 60 | completeUnimported = true, 61 | usePlaceholders = true, 62 | analyses = { 63 | unusedparams = true, 64 | }, 65 | }, 66 | }, 67 | } 68 | -------------------------------------------------------------------------------- /.config/nvim/lua/mappings.lua: -------------------------------------------------------------------------------- 1 | require "nvchad.mappings" 2 | 3 | -- add yours here 4 | 5 | local map = vim.keymap.set 6 | 7 | map("n", ";", ":", { desc = "CMD enter command mode" }) 8 | map("i", "jk", "") 9 | 10 | map('n', 'fm', function() 11 | require('conform').format { 12 | async = true, 13 | } 14 | end) 15 | 16 | map('t', 'w', ' wincmd k ') 17 | 18 | map('v', 'sc', ":Silicon") 19 | -------------------------------------------------------------------------------- /.config/nvim/lua/options.lua: -------------------------------------------------------------------------------- 1 | require "nvchad.options" 2 | 3 | -- add yours here! 4 | 5 | -- local o = vim.o 6 | -- o.cursorlineopt ='both' -- to enable cursorline! 7 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/custom.lua: -------------------------------------------------------------------------------- 1 | local plugins = { 2 | 3 | { "elkowar/yuck.vim", lazy = true }, -- load a plugin at startup 4 | 5 | { 6 | "Pocco81/TrueZen.nvim", 7 | cmd = { "TZAtaraxis", "TZMinimalist" }, 8 | config = function() 9 | require "custom.configs.truezen" -- just an example path 10 | end, 11 | }, 12 | 13 | { 14 | "nvim-treesitter/nvim-treesitter", 15 | opts = { 16 | ensure_installed = { "html", "css", "bash" }, 17 | }, 18 | }, 19 | 20 | { 21 | "folke/which-key.nvim", 22 | enabled = true, 23 | }, 24 | 25 | { 26 | "folke/noice.nvim", 27 | event = "VeryLazy", 28 | 29 | config = function() 30 | require("noice").setup { 31 | lsp = { 32 | signature = { 33 | enabled = false, 34 | }, 35 | }, 36 | } 37 | end, 38 | 39 | opts = {}, 40 | dependencies = { 41 | "MunifTanjim/nui.nvim", 42 | -- "rcarriga/nvim-notify", 43 | }, 44 | }, 45 | -- 46 | { 47 | "nvim-java/nvim-java", 48 | dependencies = { 49 | "nvim-java/lua-async-await", 50 | "nvim-java/nvim-java-refactor", 51 | "nvim-java/nvim-java-core", 52 | "nvim-java/nvim-java-test", 53 | "nvim-java/nvim-java-dap", 54 | "MunifTanjim/nui.nvim", 55 | "neovim/nvim-lspconfig", 56 | "mfussenegger/nvim-dap", 57 | { 58 | "williamboman/mason.nvim", 59 | opts = { 60 | registries = { 61 | "github:nvim-java/mason-registry", 62 | "github:mason-org/mason-registry", 63 | }, 64 | }, 65 | }, 66 | }, 67 | }, 68 | 69 | { 70 | "iamcco/markdown-preview.nvim", 71 | cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, 72 | ft = { "markdown" }, 73 | build = function() 74 | vim.fn["mkdp#util#install"]() 75 | end, 76 | }, 77 | 78 | { 79 | "NvChad/nvterm", 80 | config = function() 81 | require("nvterm").setup() 82 | end, 83 | }, 84 | 85 | { 86 | "michaelrommel/nvim-silicon", 87 | lazy = true, 88 | cmd = "Silicon", 89 | config = function() 90 | require("nvim-silicon").setup { 91 | font = "FiraCode Nerd Font=34;Noto Color Emoji=34", 92 | theme = "Material-Darker", 93 | background = "#FAFAFA", 94 | window_title = function() 95 | return vim.fn.fnamemodify(vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf()), ":t") 96 | end, 97 | to_clipboard = true, 98 | output = "~/Pictures/Screenshots/code.png", 99 | shadow_blur_radius = 20, 100 | shadow_color = "#2A343980", 101 | shadow_offset_x = 0, 102 | shadow_offset_y = 0, 103 | line_offset = function(args) 104 | return args.line1 105 | end, 106 | } 107 | end, 108 | }, 109 | 110 | { "echasnovski/mini.icons", version = false }, 111 | 112 | { 113 | "christoomey/vim-tmux-navigator", 114 | lazy = false, 115 | cmd = { 116 | "TmuxNavigateLeft", 117 | "TmuxNavigateDown", 118 | "TmuxNavigateUp", 119 | "TmuxNavigateRight", 120 | "TmuxNavigatePrevious", 121 | }, 122 | keys = { 123 | { "", "TmuxNavigateLeft" }, 124 | { "", "TmuxNavigateDown" }, 125 | { "", "TmuxNavigateUp" }, 126 | { "", "TmuxNavigateRight" }, 127 | }, 128 | }, 129 | } 130 | return plugins 131 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "stevearc/conform.nvim", 4 | event = "BufWritePre", -- uncomment for format on save 5 | config = function() 6 | require "configs.conform" 7 | end, 8 | }, 9 | 10 | -- These are some examples, uncomment them if you want to see them work! 11 | { 12 | "neovim/nvim-lspconfig", 13 | dependencies = { 14 | "ray-x/lsp_signature.nvim", 15 | }, 16 | config = function() 17 | require "configs.lspconfig" 18 | end, 19 | }, 20 | -- 21 | { 22 | "williamboman/mason.nvim", 23 | opts = { 24 | ensure_installed = { 25 | "gopls", 26 | "lua-language-server", 27 | "stylua", 28 | "html-lsp", 29 | "css-lsp", 30 | "prettier", 31 | }, 32 | }, 33 | }, 34 | -- 35 | -- { 36 | -- "nvim-treesitter/nvim-treesitter", 37 | -- opts = { 38 | -- ensure_installed = { 39 | -- "vim", "lua", "vimdoc", 40 | -- "html", "css" 41 | -- }, 42 | -- }, 43 | -- }, 44 | } 45 | -------------------------------------------------------------------------------- /.config/nwg-dock-hyprland/style.css: -------------------------------------------------------------------------------- 1 | window { 2 | /*background: rgba(255, 255, 255, 0.35);*/ 3 | background: transparent; 4 | border-radius: 20px; 5 | border-style: none; 6 | border-width: 0px; 7 | border-color: rgba(156, 142, 122, 0.7); 8 | } 9 | 10 | #box { 11 | /* Define attributes of the box surrounding icons here */ 12 | margin: 2px 30px 7px 30px; 13 | background: rgba(255, 255, 255, 0.35); 14 | padding: 0px 4.5px 5px 4.5px; 15 | /*box-shadow: rgba(0, 0, 0, 1) 0px 0px 10px -5px;*/ 16 | border-radius: 20px; 17 | } 18 | 19 | #active { 20 | /* This is to underline the button representing the currently active window */ 21 | /*border-bottom: solid 1px;*/ 22 | /*border-color: rgba(255, 255, 255, 0.3)*/ 23 | } 24 | 25 | button, image { 26 | background: none; 27 | border-style: none; 28 | box-shadow: none; 29 | color: #999 30 | } 31 | 32 | button { 33 | padding: 0px 0px 0px 0px; 34 | margin: 5px 3.5px 5px 3.5px; 35 | transition-property: margin; 36 | transition-duration: 0.13s; 37 | transition-timing-function: ease; 38 | /*color: #eee;*/ 39 | /*font-size: 40px;*/ 40 | } 41 | 42 | button:hover { 43 | background-color: rgba(255, 255, 255, 0.15); 44 | margin: 0px 3px 4px 3px; 45 | border-radius: 15px; 46 | } 47 | 48 | button:focus { 49 | box-shadow: none 50 | } 51 | -------------------------------------------------------------------------------- /.config/ohmyposh/zen.toml: -------------------------------------------------------------------------------- 1 | version = 2 2 | final_space = true 3 | console_title_template = '{{ .Shell }} in {{ .Folder }}' 4 | 5 | [[blocks]] 6 | type = 'prompt' 7 | alignment = 'left' 8 | newline = true 9 | 10 | [[blocks.segments]] 11 | type = 'path' 12 | style = 'plain' 13 | background = 'transparent' 14 | foreground = 'blue' 15 | template = '{{ .Path }}' 16 | 17 | [blocks.segments.properties] 18 | style = 'full' 19 | 20 | [[blocks.segments]] 21 | type = 'git' 22 | style = 'plain' 23 | foreground = '#4a4a4a' 24 | background = 'transparent' 25 | template = ' {{ .HEAD }}{{ if or (.Working.Changed) (.Staging.Changed) }}*{{ end }} {{ if gt .Behind 0 }}⇣{{ end }}{{ if gt .Ahead 0 }}⇡{{ end }}' 26 | 27 | [blocks.segments.properties] 28 | branch_icon = '' 29 | commit_icon = '@' 30 | fetch_status = true 31 | 32 | [[blocks]] 33 | type = 'rprompt' 34 | overflow = 'hidden' 35 | 36 | [[blocks.segments]] 37 | type = 'executiontime' 38 | style = 'plain' 39 | foreground = 'yellow' 40 | background = 'transparent' 41 | template = '{{ .FormattedMs }}' 42 | 43 | [blocks.segments.properties] 44 | threshold = 5000 45 | 46 | [[blocks]] 47 | type = 'prompt' 48 | alignment = 'left' 49 | newline = true 50 | 51 | [[blocks.segments]] 52 | type = 'text' 53 | style = 'plain' 54 | foreground_templates = [ 55 | "{{if gt .Code 0}}red{{end}}", 56 | "{{if eq .Code 0}}magenta{{end}}", 57 | ] 58 | background = 'transparent' 59 | template = '❯' 60 | 61 | [transient_prompt] 62 | foreground_templates = [ 63 | "{{if gt .Code 0}}red{{end}}", 64 | "{{if eq .Code 0}}magenta{{end}}", 65 | ] 66 | background = 'transparent' 67 | template = '❯ ' 68 | 69 | [secondary_prompt] 70 | foreground = 'magenta' 71 | background = 'transparent' 72 | template = '❯❯ ' 73 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | display-drun: "Applications:"; 3 | display-window: "Windows:"; 4 | drun-display-format: "{icon} {name}"; 5 | font: "SF Pro Text Medium 9"; 6 | modi: "window,run,drun"; 7 | show-icons: true; 8 | icon-theme: "Tela"; 9 | } 10 | 11 | @theme "/dev/null" 12 | 13 | * { 14 | bg: #f2f3f4; 15 | bg-alt: #0070ee; 16 | bg-selected: #0070ee; 17 | 18 | fg: #f2f3f4; 19 | fg-alt: #111111; 20 | 21 | 22 | border: 0; 23 | margin: 0; 24 | padding: 0; 25 | spacing: 0; 26 | } 27 | 28 | window { 29 | width: 23%; 30 | background-color: @bg; 31 | location: north; 32 | anchor: center; 33 | y-offset: 13px; 34 | border-radius: 15px; 35 | opacity: 1; 36 | } 37 | 38 | element { 39 | padding: 8 12; 40 | background-color: transparent; 41 | text-color: @fg-alt; 42 | } 43 | 44 | element selected { 45 | text-color: @fg; 46 | background-color: @bg-selected; 47 | } 48 | 49 | element-text { 50 | background-color: transparent; 51 | text-color: inherit; 52 | vertical-align: 0.5; 53 | } 54 | 55 | element-icon { 56 | size: 14; 57 | padding: 0 10 0 0; 58 | background-color: transparent; 59 | } 60 | 61 | entry { 62 | padding: 12; 63 | background-color: @bg-alt; 64 | text-color: @fg; 65 | } 66 | 67 | inputbar { 68 | children: [prompt, entry]; 69 | background-color: @bg; 70 | } 71 | 72 | listview { 73 | background-color: @bg; 74 | columns: 1; 75 | lines: 8; 76 | } 77 | 78 | mainbox { 79 | children: [inputbar, listview]; 80 | background-color: @bg; 81 | } 82 | 83 | prompt { 84 | enabled: true; 85 | padding: 12 0 0 12; 86 | background-color: @bg-alt; 87 | text-color: @fg; 88 | } 89 | 90 | /* vim: ft=sass 91 | 92 | -------------------------------------------------------------------------------- /.config/rofi/rofi-app-menu/app-menu: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | function entry() { 4 | n_left=$(wc -c <<< "$1") 5 | if [[ -z $2 ]]; then 6 | printf "%s" "$1" 7 | return 8 | fi 9 | pad=$(( $3 - $n_left )) 10 | printf "%s%${pad}s" "$1" "$2" 11 | } 12 | 13 | updates=0 14 | 15 | if [[ -f /tmp/updatecount ]]; then 16 | updates="$(cat /tmp/updatecount)" 17 | fi 18 | 19 | choice1=" About this PC" 20 | if [[ "$updates" == "0" ]]; then 21 | choice2="$(entry " System/App Updates...")" 22 | else 23 | numlen="$(wc -c <<< "$updates")" 24 | case "$numlen" in 25 | 2) width=62 ;; 26 | 3) width=60 ;; 27 | 4) width=60 ;; 28 | esac 29 | choice2="$(entry " System/App Updates..." "$updates Updates" $width)" 30 | fi 31 | 32 | choice3="$(entry " Sleep" "")" 33 | choice4="$(entry " Restart...")" 34 | choice5="$(entry " Shut Down...")" 35 | choice6="$(entry " Lock Screen" " + L" 75)" 36 | choice7="$(entry " Log Out $USER ..." " + X" 74)" 37 | 38 | 39 | 40 | USER=$(whoami) 41 | chosen=$(printf "$choice1\n$choice2\n$choice3\n$choice4\n$choice5\n$choice6\n$choice7\n" | rofi -dmenu -i -no-show-icons -l 7 -width 30 -p " Welcome to Apple Menu!") 42 | 43 | case "$chosen" in 44 | "$choice1") kitty --title neofetch bash -i -c 'neofetch && sleep infinity' ;; 45 | "$choice2") kitty bash -i -c 'yay -Syu' ;; 46 | "$choice3") systemctl suspend-then-hibernate ;; 47 | "$choice4") reboot ;; 48 | "$choice5") poweroff ;; 49 | "$choice6") hyprlock -l ;; 50 | "$choice7") killhypr ;; 51 | esac 52 | -------------------------------------------------------------------------------- /.config/rofi/rofi-music-menu/musicMenu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | option1="󰌳 ncmpcpp" 4 | option2="󰓇 Spotify" 5 | option3=" YouTube Music" 6 | 7 | options="$option1\n$option2\n$option3" 8 | 9 | choice=$(echo -e "$options" | rofi -dmenu -i -no-show-icons -l 4 -width 30 -p "Choose Music Player") 10 | 11 | case $choice in 12 | $option1) 13 | kitty --title ncmpcpp bash -i -c 'ncmpcpp-extended' 14 | ;; 15 | $option2) 16 | LD_PRELOAD=/usr/lib/spotify-adblock.so spotify & disown 17 | ;; 18 | $option3) 19 | youtube-music & disown 20 | ;; 21 | esac 22 | 23 | -------------------------------------------------------------------------------- /.config/rofi/rofi-power-menu/powermenu.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | uptime="`uptime -p | sed -e 's/up //g'`" 3 | 4 | choice0=" Uptime: $uptime" 5 | choice1="  Power Off" 6 | choice2="  Restart" 7 | choice3="  Suspend" 8 | choice4="  Hibernate" 9 | choice5="  Log Out" 10 | choice6="  Lock" 11 | 12 | chosen=$(printf "$choice0\n$choice1\n$choice2\n$choice3\n$choice4\n$choice5\n$choice6\n" | rofi -dmenu -i -no-show-icons -l 7 -width 30 -p " Goodbye ${USER}") 13 | 14 | 15 | case "$chosen" in 16 | "$choice0") ;; 17 | "$choice1") poweroff ;; 18 | "$choice2") reboot ;; 19 | "$choice3") systemctl suspend-then-hibernate ;; 20 | "$choice4") systemctl hibernate ;; 21 | "$choice5") killhypr ;; 22 | "$choice6") hyprlock -l ;; 23 | esac 24 | 25 | -------------------------------------------------------------------------------- /.config/rofi/rofi-wifi-menu/rofi-wifi-menu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | notify-send "Getting list of available Wi-Fi networks..." 4 | # Get a list of available wifi connections and morph it into a nice-looking list 5 | wifi_list=$(nmcli --fields "SECURITY,SSID" device wifi list | sed 1d | sed 's/ */ /g' | sed -E "s/WPA*.?\S/ /g" | sed "s/^--/ /g" | sed "s/ //g" | sed "/--/d") 6 | 7 | connected=$(nmcli -fields WIFI g) 8 | if [[ "$connected" =~ "enabled" ]]; then 9 | toggle="󰖪 Disable Wi-Fi" 10 | elif [[ "$connected" =~ "disabled" ]]; then 11 | toggle="󰖩 Enable Wi-Fi" 12 | fi 13 | 14 | # Use rofi to select wifi network 15 | chosen_network=$(echo -e "$toggle\n$wifi_list" | uniq -u | rofi -dmenu -i -selected-row 1 -p "Wi-Fi SSID: " ) 16 | # Get name of connection 17 | chosen_id=$(echo "${chosen_network:3}" | xargs) 18 | 19 | if [ "$chosen_network" = "" ]; then 20 | exit 21 | elif [ "$chosen_network" = "󰖩 Enable Wi-Fi" ]; then 22 | nmcli radio wifi on 23 | elif [ "$chosen_network" = "󰖪 Disable Wi-Fi" ]; then 24 | nmcli radio wifi off 25 | else 26 | # Message to show when connection is activated successfully 27 | success_message="You are now connected to the Wi-Fi network \"$chosen_id\"." 28 | # Get saved connections 29 | saved_connections=$(nmcli -g NAME connection) 30 | if [[ $(echo "$saved_connections" | grep -w "$chosen_id") = "$chosen_id" ]]; then 31 | nmcli connection up id "$chosen_id" | grep "successfully" && notify-send "Connection Established" "$success_message" 32 | else 33 | if [[ "$chosen_network" =~ "" ]]; then 34 | wifi_password=$(rofi -dmenu -p "Password: " ) 35 | fi 36 | nmcli device wifi connect "$chosen_id" password "$wifi_password" | grep "successfully" && notify-send "Connection Established" "$success_message" 37 | fi 38 | fi 39 | -------------------------------------------------------------------------------- /.config/starship.toml: -------------------------------------------------------------------------------- 1 | command_timeout = 30000 2 | 3 | [aws] 4 | symbol = " " 5 | 6 | [buf] 7 | symbol = " " 8 | 9 | [c] 10 | symbol = " " 11 | 12 | [conda] 13 | symbol = " " 14 | 15 | [crystal] 16 | symbol = " " 17 | 18 | [dart] 19 | symbol = " " 20 | 21 | [directory] 22 | read_only = " 󰌾" 23 | 24 | [docker_context] 25 | symbol = " " 26 | 27 | [elixir] 28 | symbol = " " 29 | 30 | [elm] 31 | symbol = " " 32 | 33 | [fennel] 34 | symbol = " " 35 | 36 | [fossil_branch] 37 | symbol = " " 38 | 39 | [git_branch] 40 | symbol = " " 41 | 42 | [golang] 43 | symbol = " " 44 | 45 | [guix_shell] 46 | symbol = " " 47 | 48 | [haskell] 49 | symbol = " " 50 | 51 | [haxe] 52 | symbol = " " 53 | 54 | [hg_branch] 55 | symbol = " " 56 | 57 | [hostname] 58 | ssh_symbol = " " 59 | 60 | [java] 61 | symbol = " " 62 | 63 | [julia] 64 | symbol = " " 65 | 66 | [kotlin] 67 | symbol = " " 68 | 69 | [lua] 70 | symbol = " " 71 | 72 | [memory_usage] 73 | symbol = "󰍛 " 74 | 75 | [meson] 76 | symbol = "󰔷 " 77 | 78 | [nim] 79 | symbol = "󰆥 " 80 | 81 | [nix_shell] 82 | symbol = " " 83 | 84 | [nodejs] 85 | symbol = " " 86 | 87 | [ocaml] 88 | symbol = " " 89 | 90 | [os.symbols] 91 | Alpaquita = " " 92 | Alpine = " " 93 | AlmaLinux = " " 94 | Amazon = " " 95 | Android = " " 96 | Arch = " " 97 | Artix = " " 98 | CentOS = " " 99 | Debian = " " 100 | DragonFly = " " 101 | Emscripten = " " 102 | EndeavourOS = " " 103 | Fedora = " " 104 | FreeBSD = " " 105 | Garuda = "󰛓 " 106 | Gentoo = " " 107 | HardenedBSD = "󰞌 " 108 | Illumos = "󰈸 " 109 | Kali = " " 110 | Linux = " " 111 | Mabox = " " 112 | Macos = " " 113 | Manjaro = " " 114 | Mariner = " " 115 | MidnightBSD = " " 116 | Mint = " " 117 | NetBSD = " " 118 | NixOS = " " 119 | OpenBSD = "󰈺 " 120 | openSUSE = " " 121 | OracleLinux = "󰌷 " 122 | Pop = " " 123 | Raspbian = " " 124 | Redhat = " " 125 | RedHatEnterprise = " " 126 | RockyLinux = " " 127 | Redox = "󰀘 " 128 | Solus = "󰠳 " 129 | SUSE = " " 130 | Ubuntu = " " 131 | Unknown = " " 132 | Void = " " 133 | Windows = "󰍲 " 134 | 135 | [package] 136 | symbol = "󰏗 " 137 | 138 | [perl] 139 | symbol = " " 140 | 141 | [php] 142 | symbol = " " 143 | 144 | [pijul_channel] 145 | symbol = " " 146 | 147 | [python] 148 | symbol = " " 149 | 150 | [rlang] 151 | symbol = "󰟔 " 152 | 153 | [ruby] 154 | symbol = " " 155 | 156 | [rust] 157 | symbol = " " 158 | 159 | [scala] 160 | symbol = " " 161 | 162 | [swift] 163 | symbol = " " 164 | 165 | [zig] 166 | symbol = " " 167 | 168 | -------------------------------------------------------------------------------- /.config/tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | # Set true color 2 | set-option -sa terminal-overrides ",xterm*:Tc" 3 | set -g mouse on 4 | 5 | # Start windows and panes at 1, not 0 6 | set -g base-index 1 7 | set -g pane-base-index 1 8 | set-window-option -g pane-base-index 1 9 | set-option -g renumber-windows on 10 | 11 | # Set prefix 12 | unbind C-b 13 | set -g prefix C-a 14 | bind C-a send-prefix 15 | 16 | # rename session 17 | bind s command-prompt "rename-session '%%'" 18 | unbind $ 19 | 20 | # rename window 21 | bind R command-prompt "rename-window '%%'" 22 | unbind , 23 | 24 | # kill window Keybind 25 | bind k kill-window 26 | unbind & 27 | 28 | # kill pane without confirmation 29 | bind x kill-pane 30 | 31 | # switch panes using Alt-arrow without prefix 32 | bind -n M-Left select-pane -L 33 | bind -n M-Right select-pane -R 34 | bind -n M-Up select-pane -U 35 | bind -n M-Down select-pane -D 36 | 37 | # Alt p and n keys to switch windows 38 | bind -n M-, previous-window 39 | bind -n M-. next-window 40 | 41 | # Switch sessions with Alt-[ & ] keys 42 | bind -n M-[ switch-client -p 43 | bind -n M-] switch-client -n 44 | 45 | set -g @tokyo-night-tmux_show_datetime 0 46 | set -g @tokyo-night-tmux_show_path 1 47 | set -g @tokyo-night-tmux_path_format relative 48 | set -g @tokyo-night-tmux_window_id_style dsquare 49 | set -g @tokyo-night-tmux_window_id_style dsquare 50 | set -g @tokyo-night-tmux_show_git 0 51 | set -g @tokyo-night-tmux_show_path 0 52 | set -g status-style 'bg=black' 53 | 54 | set -g @plugin 'tmux-plugins/tpm' 55 | set -g @plugin 'tmux-plugins/tmux-sensible' 56 | set -g @plugin 'christoomey/vim-tmux-navigator' 57 | set -g @plugin 'tmux-plugins/tmux-yank' 58 | set -g @plugin "janoamaral/tokyo-night-tmux" 59 | 60 | # Set vi mode 61 | set-window-option -g mode-keys vi 62 | # Keybindings 63 | bind-key -T copy-mode-vi v send-keys -X begin-selection 64 | bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle 65 | bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel 66 | 67 | # reload config file 68 | bind r source-file ~/.config/tmux/tmux.conf 69 | 70 | # split windows using h and v 71 | bind v split-window -v -c "#{pane_current_path}" 72 | bind h split-window -h -c "#{pane_current_path}" 73 | unbind '"' 74 | unbind % 75 | 76 | # don't rename windows automatically 77 | set-option -g allow-rename off 78 | 79 | run '~/.tmux/plugins/tpm/tpm' 80 | -------------------------------------------------------------------------------- /.config/waybar/colors-waybar.css: -------------------------------------------------------------------------------- 1 | @define-color foreground #9fbfba; 2 | @define-color background #021C37; 3 | @define-color cursor #9fbfba; 4 | 5 | @define-color color0 #021C37; 6 | @define-color color1 #4E646F; 7 | @define-color color2 #1C5587; 8 | @define-color color3 #196595; 9 | @define-color color4 #26628E; 10 | @define-color color5 #2C6991; 11 | @define-color color6 #467497; 12 | @define-color color7 #9fbfba; 13 | @define-color color8 #6f8582; 14 | @define-color color9 #4E646F; 15 | @define-color color10 #1C5587; 16 | @define-color color11 #196595; 17 | @define-color color12 #26628E; 18 | @define-color color13 #2C6991; 19 | @define-color color14 #467497; 20 | @define-color color15 #9fbfba; 21 | -------------------------------------------------------------------------------- /.config/waybar/config.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "layer": "top", 3 | "position": "top", 4 | "mod": "dock", 5 | "exclusive": true, 6 | "passthrough": false, 7 | "gtk-layer-shell": true, 8 | "height": 35, 9 | 10 | "modules-left": [ "custom/app-menu", "hyprland/window", "custom/files", "custom/browser", "custom/chats", "custom/terminal", "custom/clipboard", "custom/configuration" ], 11 | "modules-center": [], 12 | "modules-right": [ "custom/media", "battery", "custom/recording", "tray", "custom/chatgpt", "custom/all-apps", "custom/do-not-disturb", "clock" ], 13 | 14 | "custom/app-menu": { 15 | "format": " ", 16 | "on-click": "~/.config/rofi/rofi-app-menu/app-menu", 17 | "tooltip": false 18 | }, 19 | 20 | "hyprland/window": { 21 | "format": "{initialTitle}", 22 | "rewrite": { 23 | "": "Home", 24 | "kitty": "Terminal", 25 | "Mozilla Firefox": "Firefox", 26 | "chat.openai.com_/": "ChatGPT 3.5", 27 | "web.whatsapp.com_/": "Whatsapp Web", 28 | "neofetch": "About PC", 29 | "Enter name of file to save to…": "Save File", 30 | "Beeper (.*)": "Beeper", 31 | "(.*) Thorium": "Thorium", 32 | "Spotify Free": "Spotify", 33 | "notion-calendar-electron": "Notion Calendar" 34 | }, 35 | "tooltip": false 36 | }, 37 | 38 | "custom/files": { 39 | "format": "Files", 40 | "on-click": "thunar", 41 | "tooltip": false 42 | }, 43 | 44 | "custom/browser": { 45 | "format": "Browser", 46 | "on-click": "firefox", 47 | "tooltip": false 48 | }, 49 | 50 | "custom/chats": { 51 | "format": "Chats", 52 | "on-click": "beeper --disable-gpu", 53 | "tooltip": false 54 | }, 55 | 56 | "custom/terminal": { 57 | "format": "Terminal", 58 | "on-click": "kitty", 59 | "tooltip": false 60 | }, 61 | 62 | "custom/clipboard": { 63 | "format": "Clipboard", 64 | "on-click": "cliphist list | rofi -dmenu | cliphist decode | wl-copy", 65 | "tooltip": false 66 | }, 67 | 68 | "custom/configuration": { 69 | "format": "Configuration", 70 | "on-click": "kitty bash -i -c 'lf ~/.config'", 71 | "tooltip": false 72 | }, 73 | 74 | "custom/media": { 75 | "format": "{}", 76 | "escape": true, 77 | "return-type": "json", 78 | "max-length": 40, 79 | "exec": "$HOME/.config/Scripts/mediaplayer.py 2> /dev/null", 80 | "tooltip": false 81 | }, 82 | 83 | "battery": { 84 | "bat": "BAT1", 85 | "interval": 60, 86 | "states": { 87 | "critical": 21 88 | }, 89 | "format": "{icon}", 90 | "format-icons": [" ", " ", " ", " ", " "], 91 | "format-charging": " {capacity}%", 92 | "format-critical": " {capacity}%", 93 | "tooltip": false 94 | }, 95 | 96 | "tray": { 97 | "icon-size": 23, 98 | "spacing": 9, 99 | "tooltip": false 100 | }, 101 | 102 | "custom/chatgpt": { 103 | "format": " ", 104 | "on-click": "thorium-browser --app=https://chat.openai.com --disable-gpu", 105 | "tooltip": false 106 | }, 107 | 108 | "custom/all-apps": { 109 | "format": " ", 110 | "on-click": "rofi -show drun", 111 | "tooltip": false 112 | }, 113 | 114 | "custom/recording": { 115 | "exec": "~/.config/Scripts/recording-status.sh", 116 | "return-type": "json", 117 | "format": "{icon}", 118 | "format-icons": { 119 | "true": " ", 120 | "false": "" 121 | }, 122 | "interval": "once", 123 | "signal": 2 124 | }, 125 | 126 | "custom/do-not-disturb": { 127 | "exec": "~/.config/Scripts/dnd-status", 128 | "return-type": "json", 129 | "format": "{icon}", 130 | "format-icons": { 131 | "true": " ", 132 | "false": "" 133 | }, 134 | "interval": "once", 135 | "signal": 1 136 | }, 137 | 138 | "clock": { 139 | "interval": 60, 140 | "format": "{:%a %b %d %I:%M %p}", 141 | "tooltip": false 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /.config/waybar/latte.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Latte palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #eff1f5; 9 | @define-color mantle #e6e9ef; 10 | @define-color crust #dce0e8; 11 | 12 | @define-color text #4c4f69; 13 | @define-color subtext0 #6c6f85; 14 | @define-color subtext1 #5c5f77; 15 | 16 | @define-color surface0 #ccd0da; 17 | @define-color surface1 #bcc0cc; 18 | @define-color surface2 #acb0be; 19 | 20 | @define-color overlay0 #9ca0b0; 21 | @define-color overlay1 #8c8fa1; 22 | @define-color overlay2 #7c7f93; 23 | 24 | @define-color blue #1e66f5; 25 | @define-color lavender #7287fd; 26 | @define-color sapphire #209fb5; 27 | @define-color sky #04a5e5; 28 | @define-color teal #179299; 29 | @define-color green #40a02b; 30 | @define-color yellow #df8e1d; 31 | @define-color peach #fe640b; 32 | @define-color maroon #e64553; 33 | @define-color red #d20f39; 34 | @define-color mauve #8839ef; 35 | @define-color pink #ea76cb; 36 | @define-color flamingo #dd7878; 37 | @define-color rosewater #dc8a78; 38 | -------------------------------------------------------------------------------- /.config/waybar/macchiato.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Macchiato palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #24273a; 9 | @define-color mantle #1e2030; 10 | @define-color crust #181926; 11 | 12 | @define-color text #cad3f5; 13 | @define-color subtext0 #a5adcb; 14 | @define-color subtext1 #b8c0e0; 15 | 16 | @define-color surface0 #363a4f; 17 | @define-color surface1 #494d64; 18 | @define-color surface2 #5b6078; 19 | 20 | @define-color overlay0 #6e738d; 21 | @define-color overlay1 #8087a2; 22 | @define-color overlay2 #939ab7; 23 | 24 | @define-color blue #8aadf4; 25 | @define-color lavender #b7bdf8; 26 | @define-color sapphire #7dc4e4; 27 | @define-color sky #91d7e3; 28 | @define-color teal #8bd5ca; 29 | @define-color green #a6da95; 30 | @define-color yellow #eed49f; 31 | @define-color peach #f5a97f; 32 | @define-color maroon #ee99a0; 33 | @define-color red #ed8796; 34 | @define-color mauve #c6a0f6; 35 | @define-color pink #f5bde6; 36 | @define-color flamingo #f0c6c6; 37 | @define-color rosewater #f4dbd6; 38 | 39 | -------------------------------------------------------------------------------- /.config/waybar/mocha.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Mocha palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #1e1e2e; 9 | @define-color mantle #181825; 10 | @define-color crust #11111b; 11 | 12 | @define-color text #cdd6f4; 13 | @define-color subtext0 #a6adc8; 14 | @define-color subtext1 #bac2de; 15 | 16 | @define-color surface0 #313244; 17 | @define-color surface1 #45475a; 18 | @define-color surface2 #585b70; 19 | 20 | @define-color overlay0 #6c7086; 21 | @define-color overlay1 #7f849c; 22 | @define-color overlay2 #9399b2; 23 | 24 | @define-color blue #89b4fa; 25 | @define-color lavender #b4befe; 26 | @define-color sapphire #74c7ec; 27 | @define-color sky #89dceb; 28 | @define-color teal #94e2d5; 29 | @define-color green #a6e3a1; 30 | @define-color yellow #f9e2af; 31 | @define-color peach #fab387; 32 | @define-color maroon #eba0ac; 33 | @define-color red #f38ba8; 34 | @define-color mauve #cba6f7; 35 | @define-color pink #f5c2e7; 36 | @define-color flamingo #f2cdcd; 37 | @define-color rosewater #f5e0dc; 38 | -------------------------------------------------------------------------------- /.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: SF Pro Display; 3 | font-size: 11.5; 4 | } 5 | 6 | window#waybar { 7 | background-color: rgba(242, 243, 244, 0.45); 8 | /*background-color: rgba(27, 27, 27, 0.4);*/ 9 | } 10 | 11 | #custom-app-menu, 12 | #window, 13 | #custom-files, 14 | #custom-browser, 15 | #custom-chats, 16 | #custom-terminal, 17 | #custom-clipboard, 18 | #custom-configuration, 19 | #custom-media, 20 | #battery, 21 | #tray, 22 | #custom-chatgpt, 23 | #custom-all-apps, 24 | #custom-recording, 25 | #custom-do-not-disturb, 26 | #clock { 27 | /*color: #f2f3f4;*/ 28 | color: #1b1b1b; 29 | padding: 2px 0px 2px 0px; 30 | font-weight: 500; 31 | } 32 | 33 | #custom-app-menu { 34 | font-size: 15; 35 | margin-left: 14px; 36 | padding: 1px 0px 3px 0px; 37 | } 38 | 39 | #window { 40 | font-weight: bold; 41 | margin-left: 15px; 42 | } 43 | 44 | #custom-files { 45 | margin-left: 18px; 46 | } 47 | 48 | #custom-browser { 49 | margin-left: 18px; 50 | } 51 | 52 | #custom-chats { 53 | margin-left: 18px; 54 | } 55 | 56 | #custom-terminal { 57 | margin-left: 18px; 58 | } 59 | 60 | #custom-clipboard { 61 | margin-left: 18px; 62 | } 63 | 64 | #custom-configuration { 65 | margin-left: 18px; 66 | } 67 | 68 | #custom-media { 69 | font-size: 11; 70 | margin-right: 27px; 71 | } 72 | 73 | #battery { 74 | font-size: 17; 75 | margin-right: 17px; 76 | } 77 | 78 | #battery.charging { 79 | font-size: 11; 80 | } 81 | 82 | #battery.critical { 83 | font-size: 11; 84 | } 85 | 86 | #custom-chatgpt { 87 | font-size: 13; 88 | margin-left: 13px; 89 | } 90 | 91 | #custom-all-apps { 92 | font-size: 13; 93 | margin-left: 17px; 94 | } 95 | 96 | #custom-recording { 97 | font-size: 12; 98 | margin-right: 15px; 99 | } 100 | 101 | #custom-do-not-disturb { 102 | margin-left: 17px; 103 | /*padding: 3px 0px 1px 0px;*/ 104 | } 105 | 106 | #clock { 107 | margin-left: 15px; 108 | margin-right: 14px; 109 | } 110 | -------------------------------------------------------------------------------- /.config/waybar/themes/mocha.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Mocha palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #1e1e2e; 9 | @define-color mantle #181825; 10 | @define-color crust #11111b; 11 | 12 | @define-color text #cdd6f4; 13 | @define-color subtext0 #a6adc8; 14 | @define-color subtext1 #bac2de; 15 | 16 | @define-color surface0 #313244; 17 | @define-color surface1 #45475a; 18 | @define-color surface2 #585b70; 19 | 20 | @define-color overlay0 #6c7086; 21 | @define-color overlay1 #7f849c; 22 | @define-color overlay2 #9399b2; 23 | 24 | @define-color blue #89b4fa; 25 | @define-color lavender #b4befe; 26 | @define-color sapphire #74c7ec; 27 | @define-color sky #89dceb; 28 | @define-color teal #94e2d5; 29 | @define-color green #a6e3a1; 30 | @define-color yellow #f9e2af; 31 | @define-color peach #fab387; 32 | @define-color maroon #eba0ac; 33 | @define-color red #f38ba8; 34 | @define-color mauve #cba6f7; 35 | @define-color pink #f5c2e7; 36 | @define-color flamingo #f2cdcd; 37 | @define-color rosewater #f5e0dc; 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ./.config/tmux/plugins/ 2 | -------------------------------------------------------------------------------- /.stow-local-ignore: -------------------------------------------------------------------------------- 1 | README.md 2 | .git 3 | .gitignore 4 | --------------------------------------------------------------------------------