mirror of https://github.com/Flinner/dots.git
				
				
				
			feat: lots of changes :(
This commit is contained in:
		
							parent
							
								
									7be77d8555
								
							
						
					
					
						commit
						cfbfc36a4a
					
				|  | @ -74,7 +74,7 @@ foreground = "#ebdbb2" | ||||||
| TERM = "xterm-256color" | TERM = "xterm-256color" | ||||||
| 
 | 
 | ||||||
| [font] | [font] | ||||||
| size = 6.0 | size = 9.0 | ||||||
| 
 | 
 | ||||||
| [font.bold] | [font.bold] | ||||||
| style = "Bold" | style = "Bold" | ||||||
|  |  | ||||||
|  | @ -1,7 +1,8 @@ | ||||||
| # ~/.bashrc: executed by bash(1) for non-login shells. | # ~/.bashrc: executed by bash(1) for non-login shells. | ||||||
| # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | ||||||
| # for examples | # for examples | ||||||
| TERM=xterm | export TERM=xterm-256color | ||||||
|  | exec zsh | ||||||
| # If not running interactively, don't do anything | # If not running interactively, don't do anything | ||||||
| case $- in | case $- in | ||||||
|     *i*) ;; |     *i*) ;; | ||||||
|  | @ -72,3 +73,5 @@ if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases ; fi | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | ||||||
|  | 
 | ||||||
|  | [ -f "/home/lambda/.ghcup/env" ] && . "/home/lambda/.ghcup/env" # ghcup-env | ||||||
|  | @ -55,3 +55,5 @@ fi | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | ||||||
|  | 
 | ||||||
|  | [ -f "/home/lambda/.ghcup/env" ] && . "/home/lambda/.ghcup/env" # ghcup-env | ||||||
|  | @ -3,8 +3,7 @@ | ||||||
| # FOR openGL from arch wiki | # FOR openGL from arch wiki | ||||||
| export LD_PRELOAD=/usr/lib/libstdc++.so | export LD_PRELOAD=/usr/lib/libstdc++.so | ||||||
| export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/ | export LD_LIBRARY_PATH=/usr/lib/xorg/modules/dri/ | ||||||
| #export _JAVA_AWT_WM_NONREPARENTING=1 | export _JAVA_AWT_WM_NONREPARENTING=1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ~/Programs/MATLAB/R2024a/bin/matlab "$@" | ~/Programs/Matlab/bin/matlab "$@" | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -1,18 +1,18 @@ | ||||||
| #!/bin/bash | #!/usr/bin/env bash | ||||||
| 
 | 
 | ||||||
| # ----- Parameters ------ # | # ----- Parameters ------ # | ||||||
| # Coordinates: https://www.mapcoordinates.net/en | # Coordinates: https://www.mapcoordinates.net/en | ||||||
| # Set explicitly, or leave commented to get them automatically from ipinfo.io | # Set lat and long explicitly, or leave commented to get them automatically from ipinfo.io | ||||||
| # lat='100.00000' | lat='' | ||||||
| # long='100.00000' | long='' | ||||||
| # Calculation Method: https://api.aladhan.com/v1/methods | # Calculation Method: https://api.aladhan.com/v1/methods | ||||||
| method='4' | method='4' | ||||||
| # Print Text Language (en/ar) | # Print Text Language (en/ar) | ||||||
| print_lang="en" | print_lang='en' | ||||||
| # Notifcation Daemon | # Notifcation Daemon | ||||||
| notify="mako" | notify='mako' | ||||||
| # ----------------------- # | # ----------------------- # | ||||||
| prayers_json="$HOME/.local/share/prayers.json" | prayers_json="${HOME}/.local/share/prayers.json" | ||||||
| prayers=("Fajr" "Dhuhr" "Asr" "Maghrib" "Isha") | prayers=("Fajr" "Dhuhr" "Asr" "Maghrib" "Isha") | ||||||
| declare -A date | declare -A date | ||||||
| declare -A epochtimes | declare -A epochtimes | ||||||
|  | @ -33,43 +33,42 @@ date=( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| nameof() { | nameof() { | ||||||
|   if [[ "$print_lang" != "en" ]]; then |   if [[ "${print_lang}" != "en" ]]; then | ||||||
|     local array_name="prayers_$print_lang" |     local array_name="prayers_${print_lang}" | ||||||
|     eval "echo -n \${${array_name}[$1]}" |     eval "echo -n \${${array_name}[${1}]}" | ||||||
|   else |   else | ||||||
|     echo -n "$1" |     echo -n "${1}" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| check() { | check() { | ||||||
|   local available_month |   local available_month | ||||||
|   if [[ -r $prayers_json ]]; then |   local response | ||||||
|     available_month=$(jq -r ".data[0].date.gregorian.month.number" "$prayers_json") |   local location | ||||||
|  |   if [[ -r "${prayers_json}" ]]; then | ||||||
|  |     available_month=$(jq -r ".data[0].date.gregorian.month.number" "${prayers_json}") | ||||||
|   else |   else | ||||||
|     local fetch_prayers=1 |     local fetch_prayers=1 | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   if [[ "$fetch_prayers" || "$available_month" != "${date[month]}" ]]; then |   if ((fetch_prayers)) || [[ "${available_month}" != "${date[month]}" ]]; then | ||||||
|     # Fetch the geolocation data from ipinfo.io |     if [[ -z "${lat}" ]] || [[ -z "${long}" ]]; then | ||||||
|     response=$(curl -s https://ipinfo.io) |       echo "-- fetching latitude and longitude (from ipinfo.io)" | ||||||
| 
 |       response="$(curl -s https://ipinfo.io)" | ||||||
|     echo "-- fetching latitude and longitude" |       # parse city name | ||||||
|     # Parse the latitude and longitude |       city=$(echo "${response}" | jq -r '.city') | ||||||
|     location=$(echo $response | jq -r '.loc') |       echo "-- city: ${city}" | ||||||
| 
 |       # parse the latitude and longitude | ||||||
|     # Separate latitude and longitude |       mapfile -t location < <(echo "${response}" | jq -r ' (.loc | split(","))[] ') | ||||||
|     latitude=$(echo $location | cut -d',' -f1) |       # set `lat` to `latitude`, or default to the specified value above | ||||||
|     longitude=$(echo $location | cut -d',' -f2) |       lat=${location[0]:-${lat}} | ||||||
| 
 |       long=${location[1]:-${long}} | ||||||
|     # Set `lat` to `latitude`, or default to the specified value above |     fi | ||||||
|     lat=${latitude:lat} |  | ||||||
|     long=${longitude:long} |  | ||||||
| 
 | 
 | ||||||
|     echo "-- latitude: ${lat}, longitude: ${long}" |     echo "-- latitude: ${lat}, longitude: ${long}" | ||||||
| 
 |  | ||||||
|     echo "-- fetching current month prayer calendar (${date[month]}-${date[year]})" |     echo "-- fetching current month prayer calendar (${date[month]}-${date[year]})" | ||||||
|     # Documentation: https://aladhan.com/prayer-times-api#GetCalendar |     # Documentation: https://aladhan.com/prayer-times-api#GetCalendar | ||||||
|     curl -Lso "$prayers_json" "https://api.aladhan.com/v1/calendar/${date[year]}/${date[month]}?latitude=$lat&longitude=$long&method=$method" |     curl -Lso "${prayers_json}" "https://api.aladhan.com/v1/calendar/${date[year]}/${date[month]}?latitude=${lat}&longitude=${long}&method=${method}" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -78,49 +77,49 @@ add-jobs() { | ||||||
|   echo "-- removing all jobs in queue 'p'" |   echo "-- removing all jobs in queue 'p'" | ||||||
|   if [[ "$(at -q p -l | wc -l)" != "0" ]]; then |   if [[ "$(at -q p -l | wc -l)" != "0" ]]; then | ||||||
|     for i in $(at -q p -l | awk '{ print $1 }'); do |     for i in $(at -q p -l | awk '{ print $1 }'); do | ||||||
|       atrm "$i" |       atrm "${i}" | ||||||
|     done |     done | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   for prayer in "${prayers[@]}"; do |   for prayer in "${prayers[@]}"; do | ||||||
|     echo "-- creating at job for $prayer prayer" |     echo "-- creating at job for ${prayer} prayer" | ||||||
|     if [[ "$notify" == "mako" ]]; then |     if [[ "${notify}" == "mako" ]]; then | ||||||
|       printf 'notify-send -t 30000 --icon="clock-applet-symbolic" "Prayer Times" "It is time for %s prayer 🕌"' "$prayer" | at -q p "$(timeof "$prayer" '%H:%M %F')" |       printf 'notify-send -t 30000 --icon="clock-applet-symbolic" "Prayer Times" "It is time for %s prayer 🕌"' "${prayer}" | at -q p "$(timeof "${prayer}" '%H:%M %F')" | ||||||
|     else |     else | ||||||
|       printf '[ "$(dunstify --icon="clock-applet-symbolic" --action="Reply,reply" "Prayer Times" "Time for %s prayer 🕌" -t 30000)" = "2" ] && %s' "$prayer" "$HOME/.local/bin/toggle-athan" | at -q p "$(timeof "$prayer" '%H:%M %F')" |       printf '[ "$(dunstify --icon="clock-applet-symbolic" --action="Reply,reply" "Prayer Times" "Time for %s prayer 🕌" -t 30000)" = "2" ] && %s' "${prayer}" "${HOME}/.local/bin/toggle-athan" | at -q p "$(timeof "${prayer}" '%H:%M %F')" | ||||||
|     fi |     fi | ||||||
|   done |   done | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| timeof() { | timeof() { | ||||||
|   [[ "$#" -lt "1" ]] && echo "atleast 1 argument is needed" && return 1 |   [[ "${#}" -lt "1" ]] && echo "atleast 1 argument is needed" && return 1 | ||||||
|   echo -n "$(date -d "$(jq -r ".data[${date[day_idx]}].timings.$1" "$prayers_json")" "+${2:-%I:%M}")" |   echo -n "$(date -d "$(jq -r ".data[${date[day_idx]}].timings.${1}" "${prayers_json}")" "+${2:-%I:%M}")" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| hijri() { | hijri() { | ||||||
|   case "$1" in |   case "${1}" in | ||||||
|   weekday) |   weekday) | ||||||
|     if [[ "$print_lang" == "ar" ]]; then |     if [[ "${print_lang}" == "ar" ]]; then | ||||||
|       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.weekday.ar" "$prayers_json")" |       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.weekday.ar" "${prayers_json}")" | ||||||
|     else |     else | ||||||
|       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.weekday.en" "$prayers_json")" |       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.weekday.en" "${prayers_json}")" | ||||||
|     fi |     fi | ||||||
|     ;; |     ;; | ||||||
|   day) |   day) | ||||||
|     echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.day" "$prayers_json")" |     echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.day" "${prayers_json}")" | ||||||
|     ;; |     ;; | ||||||
|   month) |   month) | ||||||
|     if [[ "$print_lang" == "ar" ]]; then |     if [[ "${print_lang}" == "ar" ]]; then | ||||||
|       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.month.ar" "$prayers_json")" |       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.month.ar" "${prayers_json}")" | ||||||
|     else |     else | ||||||
|       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.month.en" "$prayers_json")" |       echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.month.en" "${prayers_json}")" | ||||||
|     fi |     fi | ||||||
|     ;; |     ;; | ||||||
|   year) |   year) | ||||||
|     echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.year" "$prayers_json")" |     echo -n "$(jq -r ".data[${date[day_idx]}].date.hijri.year" "${prayers_json}")" | ||||||
|     ;; |     ;; | ||||||
|   *) |   *) | ||||||
|     echo "unsupported argument: $1" && return 1 |     echo "unsupported argument: ${1}" && return 1 | ||||||
|     ;; |     ;; | ||||||
|   esac |   esac | ||||||
| } | } | ||||||
|  | @ -141,37 +140,37 @@ settimes() { | ||||||
|   local nxt_idx=0 |   local nxt_idx=0 | ||||||
|   local curr_idx=4 |   local curr_idx=4 | ||||||
|   for i in {4..0}; do |   for i in {4..0}; do | ||||||
|     local prayer_key="${prayers[$i],,}" |     local prayer_key="${prayers[${i}],,}" | ||||||
|     if [[ "${epochtimes[now]}" -ge "${epochtimes[$prayer_key]}" ]]; then |     if [[ "${epochtimes[now]}" -ge "${epochtimes[${prayer_key}]}" ]]; then | ||||||
|       [[ "$i" -lt "4" ]] && curr_idx=$i && nxt_idx=$((i + 1)) |       [[ "${i}" -lt "4" ]] && curr_idx=${i} && nxt_idx=$((i + 1)) | ||||||
|       break |       break | ||||||
|     fi |     fi | ||||||
|   done |   done | ||||||
| 
 | 
 | ||||||
|   local next_key="${prayers[$nxt_idx],,}" |   local next_key="${prayers[${nxt_idx}],,}" | ||||||
|   epochtimes[next]="${epochtimes[$next_key]}" |   epochtimes[next]="${epochtimes[${next_key}]}" | ||||||
|   currentprayer="${prayers[$curr_idx]}" |   currentprayer="${prayers[${curr_idx}]}" | ||||||
|   nextprayer="${prayers[$nxt_idx]}" |   nextprayer="${prayers[${nxt_idx}]}" | ||||||
|   if [[ "$nxt_idx" == "1" && "${date[weekday]}" == "Fri" ]]; then |   if [[ "${nxt_idx}" == "1" && "${date[weekday]}" == "Fri" ]]; then | ||||||
|     nextprayer="Jumuaa" |     nextprayer="Jumuaa" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| timeto() { | timeto() { | ||||||
|   [[ "$#" -lt "1" ]] && echo "atleast 1 argument are needed" && return 1 |   [[ "${#}" -lt "1" ]] && echo "atleast 1 argument are needed" && return 1 | ||||||
|   settimes |   settimes | ||||||
|   remain="$((epochtimes["${1,,}"] - epochtimes[now]))" |   remain="$((epochtimes["${1,,}"] - epochtimes[now]))" | ||||||
|   [[ "$remain" -lt "0" ]] && remain="$((remain + 86400))" |   [[ "${remain}" -lt "0" ]] && remain="$((remain + 86400))" | ||||||
|   date -u -d"@$remain" "+${2:-%H:%M}" |   date -u -d"@${remain}" "+${2:-%H:%M}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| print() { | print() { | ||||||
|   local format="📅 %s،%s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n" |   local format="📅 %s،%s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n%-12s%-10s\n" | ||||||
|   if [[ "$print_lang" == "ar" ]]; then |   if [[ "${print_lang}" == "ar" ]]; then | ||||||
|     format="📅 %s،%s\n%s%11s\n%s%10s\n%s%11s\n%s%11s\n%s%10s\n%s%10s\n" |     format="📅 %s،%s\n%s%11s\n%s%10s\n%s%11s\n%s%11s\n%s%10s\n%s%10s\n" | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   printf "$format" \ |   printf "${format}" \ | ||||||
|     "$(hijri weekday)" \ |     "$(hijri weekday)" \ | ||||||
|     "$(hijri day)-$(hijri month)-$(hijri year)" \ |     "$(hijri day)-$(hijri month)-$(hijri year)" \ | ||||||
|     "۞ $(nameof Fajr)" "$(timeof Fajr)" \ |     "۞ $(nameof Fajr)" "$(timeof Fajr)" \ | ||||||
|  | @ -190,9 +189,7 @@ yad-en() { | ||||||
|     "<span font-size='large'><b>📅 $(hijri weekday),$(hijri day)-$(hijri month)-$(hijri year)</b></span>" \ |     "<span font-size='large'><b>📅 $(hijri weekday),$(hijri day)-$(hijri month)-$(hijri year)</b></span>" \ | ||||||
|     --list \ |     --list \ | ||||||
|     --width=300 \ |     --width=300 \ | ||||||
|     --posx=550 \ |     --height=250 \ | ||||||
|     --posy=20 \ |  | ||||||
|     --height=270 \ |  | ||||||
|     --title="Prayers" \ |     --title="Prayers" \ | ||||||
|     --column="Prayer" \ |     --column="Prayer" \ | ||||||
|     --column="Time" \ |     --column="Time" \ | ||||||
|  | @ -217,9 +214,7 @@ yad-ar() { | ||||||
|     "<span font-size='large'><b>📅 $(hijri weekday),$(hijri day)-$(hijri month)-$(hijri year)</b></span>" \ |     "<span font-size='large'><b>📅 $(hijri weekday),$(hijri day)-$(hijri month)-$(hijri year)</b></span>" \ | ||||||
|     --list \ |     --list \ | ||||||
|     --width=250 \ |     --width=250 \ | ||||||
|     --posx=550 \ |     --height=240 \ | ||||||
|     --posy=20 \ |  | ||||||
|     --height=280 \ |  | ||||||
|     --title="Prayers" \ |     --title="Prayers" \ | ||||||
|     --column="الوقت" \ |     --column="الوقت" \ | ||||||
|     --column="الصلاة" \ |     --column="الصلاة" \ | ||||||
|  | @ -239,26 +234,26 @@ yad-toggle() { | ||||||
|   local yad_pid |   local yad_pid | ||||||
|   yad_pid=$(pgrep -f 'yad.*Prayers') |   yad_pid=$(pgrep -f 'yad.*Prayers') | ||||||
| 
 | 
 | ||||||
|   if [[ -z "$yad_pid" ]]; then |   if [[ -z "${yad_pid}" ]]; then | ||||||
|     if [[ "$print_lang" == "ar" ]]; then |     if [[ "${print_lang}" == "ar" ]]; then | ||||||
|       yad-ar |       yad-ar | ||||||
|     else |     else | ||||||
|       yad-en |       yad-en | ||||||
|     fi |     fi | ||||||
| 
 | 
 | ||||||
|   else |   else | ||||||
|     kill "$yad_pid" |     kill "${yad_pid}" | ||||||
|   fi |   fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| current() { | current() { | ||||||
|   settimes |   settimes | ||||||
|   echo "$currentprayer" |   echo "${currentprayer}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| next() { | next() { | ||||||
|   settimes |   settimes | ||||||
|   echo "$nextprayer" |   echo "${nextprayer}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| remaining() { | remaining() { | ||||||
|  | @ -270,18 +265,18 @@ status() { | ||||||
|   settimes |   settimes | ||||||
|   local remain |   local remain | ||||||
|   remain="$(timeto next)" |   remain="$(timeto next)" | ||||||
|   echo "$nextprayer in $remain" |   echo "${nextprayer} in ${remain}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| waybar-status() { | waybar-status() { | ||||||
|   settimes |   settimes | ||||||
|   local remain |   local remain | ||||||
|   remain="$(timeto next)" |   remain="$(timeto next)" | ||||||
|   local next_text="$nextprayer in $remain" |   local next_text="${nextprayer} in ${remain}" | ||||||
|   printf '{ "text": "%s", "class": "%s" }' "$next_text" "$nextprayer" |   printf '{ "text": "%s", "class": "%s" }' "${next_text}" "${nextprayer}" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| case "$1" in | case "${1}" in | ||||||
| check) | check) | ||||||
|   check |   check | ||||||
|   ;; |   ;; | ||||||
|  | @ -314,12 +309,12 @@ waybar) | ||||||
|   waybar-status |   waybar-status | ||||||
|   ;; |   ;; | ||||||
| timeto) | timeto) | ||||||
|   if [[ -n "$2" ]]; then |   if [[ -n "${2}" ]]; then | ||||||
|     if [[ "$2" == "next" ]]; then |     if [[ "${2}" == "next" ]]; then | ||||||
|       valid=1 |       valid=1 | ||||||
|     else |     else | ||||||
|       for p in "${prayers[@]}"; do |       for p in "${prayers[@]}"; do | ||||||
|         if [[ "${2^}" == "$p" ]]; then |         if [[ "${2^}" == "${p}" ]]; then | ||||||
|           valid=1 |           valid=1 | ||||||
|           break |           break | ||||||
|         fi |         fi | ||||||
|  | @ -327,16 +322,16 @@ timeto) | ||||||
|     fi |     fi | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   if [[ -z "$valid" ]]; then |   if [[ -z "${valid}" ]]; then | ||||||
|     IFS='|' |     IFS='|' | ||||||
|     echo "Usage: $(basename "$0") timeto (next|${prayers[*],,})" |     echo "Usage: $(basename "${0}") timeto (next|${prayers[*],,})" | ||||||
|     exit 1 |     exit 1 | ||||||
|   fi |   fi | ||||||
| 
 | 
 | ||||||
|   timeto "$2" |   timeto "${2}" | ||||||
|   ;; |   ;; | ||||||
| *) | *) | ||||||
|   echo "Usage: $(basename "$0") [command]" |   echo "Usage: $(basename "${0}") [command]" | ||||||
|   echo "Command:" |   echo "Command:" | ||||||
|   echo "  check      Check if prayer time data needs to be fetched" |   echo "  check      Check if prayer time data needs to be fetched" | ||||||
|   echo "  jobs       Add prayer time notifications as at jobs" |   echo "  jobs       Add prayer time notifications as at jobs" | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ pgrep ~/bin/wm/bspswallow || ~/bin/wm/bspswallow & | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # not sure if I can count using Roman Numerals :) | # not sure if I can count using Roman Numerals :) | ||||||
| bspc monitor eDP1 -d I II III IV V VI VII VIII IX X | bspc monitor -d I II III IV V VI VII VIII IX X | ||||||
| 
 | 
 | ||||||
| #bspc config ignore_ewmh_fullscreen all | #bspc config ignore_ewmh_fullscreen all | ||||||
| bspc config ignore_ewmh_focus true | bspc config ignore_ewmh_focus true | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ monitor = , preferred, auto, 1 | ||||||
| # See https://wiki.hyprland.org/Configuring/Keywords/ | # See https://wiki.hyprland.org/Configuring/Keywords/ | ||||||
| 
 | 
 | ||||||
| # Set programs that you use | # Set programs that you use | ||||||
| $terminal = kitty | $terminal = alacritty | ||||||
| $fileManager = dolphin | $fileManager = dolphin | ||||||
| $menu = rofi -show drun | $menu = rofi -show drun | ||||||
| 
 | 
 | ||||||
|  | @ -78,6 +78,7 @@ exec-once = swayidle -w | ||||||
| 
 | 
 | ||||||
| env = XCURSOR_SIZE,24 | env = XCURSOR_SIZE,24 | ||||||
| env = HYPRCURSOR_SIZE,24 | env = HYPRCURSOR_SIZE,24 | ||||||
|  | env = ELECTRON_OZONE_PLATFORM_HINT,auto | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ##################### | ##################### | ||||||
|  | @ -169,6 +170,7 @@ animations { | ||||||
|     animation = workspaces, 1, 1.94, almostLinear, fade |     animation = workspaces, 1, 1.94, almostLinear, fade | ||||||
|     animation = workspacesIn, 1, 1.21, almostLinear, fade |     animation = workspacesIn, 1, 1.21, almostLinear, fade | ||||||
|     animation = workspacesOut, 1, 1.94, almostLinear, fade |     animation = workspacesOut, 1, 1.94, almostLinear, fade | ||||||
|  |     #animation = workspaces, 1, 5, default, slide | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ | # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ | ||||||
|  | @ -212,10 +214,10 @@ misc { | ||||||
| 
 | 
 | ||||||
| # https://wiki.hyprland.org/Configuring/Variables/#input | # https://wiki.hyprland.org/Configuring/Variables/#input | ||||||
| input { | input { | ||||||
|     kb_layout = us |     kb_layout = us,ara | ||||||
|     kb_variant = |     kb_variant = | ||||||
|     kb_model = |     kb_model = | ||||||
|     kb_options = altwin:swap_lalt_lwin, ctrl:swapcaps |     kb_options = altwin:swap_lalt_lwin, ctrl:swapcaps, grp:shifts_toggle | ||||||
|     kb_rules = |     kb_rules = | ||||||
| 
 | 
 | ||||||
|     follow_mouse = 1 |     follow_mouse = 1 | ||||||
|  | @ -241,6 +243,10 @@ device { | ||||||
|     sensitivity = -0.5 |     sensitivity = -0.5 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # FIX: make hjkl not exit fullscreen ;) | ||||||
|  | binds { | ||||||
|  |     movefocus_cycles_fullscreen = 0 | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| ################### | ################### | ||||||
| ### KEYBINDINGS ### | ### KEYBINDINGS ### | ||||||
|  | @ -258,7 +264,9 @@ bind = $mainMod SHIFT, Q, killactive, | ||||||
| bind = $mainMod, E, exec, emacsclient -nc -alternate-editor="emacs" | bind = $mainMod, E, exec, emacsclient -nc -alternate-editor="emacs" | ||||||
| bind = $mainMod, R, exec, $menu | bind = $mainMod, R, exec, $menu | ||||||
| bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy | bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy | ||||||
| bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy | # bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy | ||||||
|  | bind = SHIFT, Print, exec, env XDG_CURRENT_DESKTOP=sway XDG_SESSION_DESKTOP=sway QT_QPA_PLATFORM=wayland flameshot gui | ||||||
|  | bind = , Print, exec, grim -g "$(slurp -o -r -c '##FF0000FF')" -t ppm - | satty --early-exit --initial-tool rectangle --copy-command wl-copy --annotation-size-factor 2 --fullscreen --filename - | ||||||
| 
 | 
 | ||||||
| # Lock | # Lock | ||||||
| bind = $mainMod, HOME, exec, hyprlock >> ~/hyprlock_logfile.txt | bind = $mainMod, HOME, exec, hyprlock >> ~/hyprlock_logfile.txt | ||||||
|  | @ -293,7 +301,7 @@ bind = $mainMod, 2, workspace, 2 | ||||||
| bind = $mainMod, 3, workspace, 3 | bind = $mainMod, 3, workspace, 3 | ||||||
| bind = $mainMod, 4, workspace, 4 | bind = $mainMod, 4, workspace, 4 | ||||||
| bind = $mainMod, 5, workspace, 5 | bind = $mainMod, 5, workspace, 5 | ||||||
| bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 | bind = $mainMod, 6, workspace, 6 | ||||||
| bind = $mainMod, 7, workspace, 7 | bind = $mainMod, 7, workspace, 7 | ||||||
| bind = $mainMod, 8, workspace, 8 | bind = $mainMod, 8, workspace, 8 | ||||||
| bind = $mainMod, 9, workspace, 9 | bind = $mainMod, 9, workspace, 9 | ||||||
|  | @ -442,6 +450,22 @@ windowrulev2 = nofocus, class: ^(MATLAB [\w\d]* - academic use)$, title: ^(Defau | ||||||
| windowrulev2 = float,class:(yad) | windowrulev2 = float,class:(yad) | ||||||
| windowrulev2 = move cursor -50% 25,title:(Prayers) | windowrulev2 = move cursor -50% 25,title:(Prayers) | ||||||
| 
 | 
 | ||||||
|  | # Flameshot | ||||||
|  | # noanim isn't necessary but animations with these rules might look bad. use at your own discretion. | ||||||
|  | windowrulev2 = noanim, class:^(flameshot)$ | ||||||
|  | windowrulev2 = fullscreenstate, class:(flameshot), title:(flameshot) | ||||||
|  | windowrulev2 = float, class:^(flameshot)$ | ||||||
|  | windowrulev2 = move 0 -395, class:^(flameshot)$ | ||||||
|  | windowrulev2 = pin, class:^(flameshot)$ | ||||||
|  | # set this to your leftmost monitor id, otherwise you have to move your cursor to the leftmost monitor | ||||||
|  | # before executing flameshot | ||||||
|  | windowrulev2 = monitor 1, class:^(flameshot)$ | ||||||
|  | 
 | ||||||
|  | # SATTY (for screenshots) | ||||||
|  | windowrulev2 = noanim, class:^(flameshot)$ | ||||||
|  | windowrulev2 = fullscreen, class:^(com.gabm.satty)$, title:^(satty)$ | ||||||
|  | windowrulev2 = float, class:^(com.gabm.satty)$, title:^(satty)$ | ||||||
|  | 
 | ||||||
| # bind workspaces | # bind workspaces | ||||||
| #workspace = [1-5], monitor: $mainMonitor | #workspace = [1-5], monitor: $mainMonitor | ||||||
| workspace=1, monitor:$mainMonitor | workspace=1, monitor:$mainMonitor | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | timeout 250 'notify-send --app-name=screenlockwarning "Screen will lock in 30 seconds"' | ||||||
| timeout 300 'hyprlock >> ~/hyprlock_logfile.txt' | timeout 300 'hyprlock >> ~/hyprlock_logfile.txt' | ||||||
| timeout 315 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' | timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' | ||||||
| before-sleep 'hyprlock' | before-sleep 'hyprlock' | ||||||
|  |  | ||||||
|  | @ -4,9 +4,11 @@ $ENV{max_print_line} = $log_wrap = 1000; | ||||||
| $out_dir = '/tmp/tex'; | $out_dir = '/tmp/tex'; | ||||||
| 
 | 
 | ||||||
| $pdf_mode = 1; | $pdf_mode = 1; | ||||||
| $pdflatex =    'pdflatex --shell-escape -interaction=nonstopmode -synctex=1 %O %S;'; | #$pdflatex =    'pdflatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S;'; | ||||||
| $pdflualatex = 'lualatex --shell-escape -interaction=nonstopmode -synctex=1 %O %S;'; | $pdflatex =    'lualatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S;'; | ||||||
|  | $pdflualatex = 'lualatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S;'; | ||||||
| 
 | 
 | ||||||
| # https://stackoverflow.com/questions/71868294/set-zathura-as-a-default-viewer-while-using-latexmk | # https://stackoverflow.com/questions/71868294/set-zathura-as-a-default-viewer-while-using-latexmk | ||||||
|  | # $pdf_previewer = 'Evince'; | ||||||
| $pdf_previewer = 'zathura'; | $pdf_previewer = 'zathura'; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ | ||||||
| ;; main colors | ;; main colors | ||||||
| background = #FFFFFF | background = #FFFFFF | ||||||
| foreground = #1F1F1F | foreground = #1F1F1F | ||||||
| primary = #ffb300 | primary = #00acc1 | ||||||
| red = #FF5250 | red = #FF5250 | ||||||
| green = #43a047 | green = #43a047 | ||||||
| yellow = #fdd835 | yellow = #fdd835 | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ include-file = ~/.config/polybar/hack/user_modules.ini | ||||||
| ; If unspecified, the application will pick the first one it finds. | ; If unspecified, the application will pick the first one it finds. | ||||||
| ; $ polybar -m | cut -d ':' -f 1 | ; $ polybar -m | cut -d ':' -f 1 | ||||||
| ; $ xrandr -q | grep " connected" | cut -d ' ' -f1 | ; $ xrandr -q | grep " connected" | cut -d ' ' -f1 | ||||||
| monitor = | monitor = ${env:MONITOR} | ||||||
| 
 | 
 | ||||||
| ; Use the specified monitor as a fallback if the main one is not found. | ; Use the specified monitor as a fallback if the main one is not found. | ||||||
| monitor-fallback = | monitor-fallback = | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| * { | * { | ||||||
|   al:    #00000000; |   al:    #00000000; | ||||||
|   bg:    #FFFFFFFF; |   bg:    #FFFFFFFF; | ||||||
|   ac:    #ffb300FF; |   ac:    #00acc1FF; | ||||||
|   se:    #ffb30026; |   se:    #00acc126; | ||||||
|   fg:    #1F1F1FFF; |   fg:    #1F1F1FFF; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -133,7 +133,7 @@ set unicode_ellipsis false | ||||||
| 
 | 
 | ||||||
| # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). | # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). | ||||||
| # Requires the python-bidi pip package | # Requires the python-bidi pip package | ||||||
| set bidi_support false | set bidi_support true | ||||||
| 
 | 
 | ||||||
| # Show dotfiles in the bookmark preview box? | # Show dotfiles in the bookmark preview box? | ||||||
| set show_hidden_bookmarks true | set show_hidden_bookmarks true | ||||||
|  |  | ||||||
|  | @ -2,3 +2,15 @@ unbind C-b | ||||||
| set -g prefix C-a | set -g prefix C-a | ||||||
| bind C-a send-prefix | bind C-a send-prefix | ||||||
| 
 | 
 | ||||||
|  | set -g prefix C-Space | ||||||
|  | bind C-Space send-prefix | ||||||
|  | 
 | ||||||
|  | setw -g mouse on | ||||||
|  | 
 | ||||||
|  | set -g mode-keys vi | ||||||
|  | 
 | ||||||
|  | bind h select-pane -L | ||||||
|  | bind j select-pane -D | ||||||
|  | bind k select-pane -U | ||||||
|  | bind l select-pane -R | ||||||
|  | 
 | ||||||
|  |  | ||||||
							
								
								
									
										21
									
								
								zsh/.zshrc
								
								
								
								
							
							
						
						
									
										21
									
								
								zsh/.zshrc
								
								
								
								
							|  | @ -1,3 +1,4 @@ | ||||||
|  | 
 | ||||||
|  ######## |  ######## | ||||||
|  # INIT # |  # INIT # | ||||||
|  ######## |  ######## | ||||||
|  | @ -35,6 +36,9 @@ autoload -Uz _zinit | ||||||
| ### End of Zinit's installer chunk | ### End of Zinit's installer chunk | ||||||
| #=============================================================================================== | #=============================================================================================== | ||||||
| 
 | 
 | ||||||
|  | # Get a random preset | ||||||
|  | fastfetch --config $(printf "%s\n" examples/{6,7,9,13,17,20,21,22} | shuf -n 1) | ||||||
|  | 
 | ||||||
| ########### | ########### | ||||||
| # PLUGINS # | # PLUGINS # | ||||||
| ########### | ########### | ||||||
|  | @ -61,9 +65,12 @@ zplugin light zsh-users/zsh-autosuggestions | ||||||
| zplugin ice wait'0' lucid | zplugin ice wait'0' lucid | ||||||
| zinit load agkozak/zsh-z | zinit load agkozak/zsh-z | ||||||
| 
 | 
 | ||||||
|  | zplugin ice wait'0' lucid | ||||||
|  | zinit load "MichaelAquilina/zsh-auto-notify" | ||||||
| 
 | 
 | ||||||
| zplugin ice wait'5' lucid | 
 | ||||||
| zplugin load chisui/zsh-nix-shell | #zplugin ice wait'5' lucid | ||||||
|  | #zplugin load chisui/zsh-nix-shell | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #zplugin ice wait'1' lucid | #zplugin ice wait'1' lucid | ||||||
|  | @ -191,7 +198,7 @@ alias sudo='sudo ' | ||||||
| 
 | 
 | ||||||
| alias fm='ranger' | alias fm='ranger' | ||||||
| alias fm.='. ranger' | alias fm.='. ranger' | ||||||
| alias books="fm ~/Nextcloud/Books" | alias books="fm ~/Documents/Books" | ||||||
| 
 | 
 | ||||||
| alias ll='ls -alF' | alias ll='ls -alF' | ||||||
| alias la='ls -A' | alias la='ls -A' | ||||||
|  | @ -232,7 +239,7 @@ export CARGO_HOME="$XDG_DATA_HOME"/cargo | ||||||
| export GOPATH="$XDG_DATA_HOME"/go | export GOPATH="$XDG_DATA_HOME"/go | ||||||
| export GOBIN="$XDG_DATA_HOME"/go | export GOBIN="$XDG_DATA_HOME"/go | ||||||
| export DOOM_PATH="$HOME/.emacs.d/bin" | export DOOM_PATH="$HOME/.emacs.d/bin" | ||||||
| #export YARN_PATH="$HOME/.yarn/bin" | export YARN_PATH="$HOME/.yarn/bin" | ||||||
| 
 | 
 | ||||||
| export PATH="$DOOM_PATH:$HOME/.local/bin:$HOME/bin:$CARGO_HOME/bin:$YARN_PATH:$GOPATH:$PATH" | export PATH="$DOOM_PATH:$HOME/.local/bin:$HOME/bin:$CARGO_HOME/bin:$YARN_PATH:$GOPATH:$PATH" | ||||||
| 
 | 
 | ||||||
|  | @ -271,6 +278,7 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| export TERMINAL="alacritty" | export TERMINAL="alacritty" | ||||||
|  | export TERM=xterm-256color | ||||||
| 
 | 
 | ||||||
| # man colors | # man colors | ||||||
| export LESS_TERMCAP_mb=$(printf '\e[01;31m') # enter blinking mode - red | export LESS_TERMCAP_mb=$(printf '\e[01;31m') # enter blinking mode - red | ||||||
|  | @ -295,6 +303,8 @@ WINIT_X11_SCALE_FACTOR=1 | ||||||
| # Load the pure theme, with zsh-async library that's bundled with it | # Load the pure theme, with zsh-async library that's bundled with it | ||||||
| PS1="> " | PS1="> " | ||||||
| RPS1=" " | RPS1=" " | ||||||
|  | # TODO: Check if starship binary exist, and choose to eval one of the next two | ||||||
|  | # lines of code | ||||||
| #zplugin ice wait'!0' lucid pick"async.zsh" src"pure.zsh"; zplugin light sindresorhus/pure | #zplugin ice wait'!0' lucid pick"async.zsh" src"pure.zsh"; zplugin light sindresorhus/pure | ||||||
| eval "$(starship init zsh)" | eval "$(starship init zsh)" | ||||||
| 
 | 
 | ||||||
|  | @ -304,3 +314,6 @@ eval "$(starship init zsh)" | ||||||
| 
 | 
 | ||||||
| export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | export QSYS_ROOTDIR="/home/lambda/Programs/intelQuartus/quartus/sopc_builder/bin" | ||||||
| export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab | export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab | ||||||
|  | 
 | ||||||
|  | #[ -f "/home/lambda/.ghcup/env" ] && . "/home/lambda/.ghcup/env" # ghcup-env | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue