diff --git a/dot-files-laptop/.bin/sh/aur.sh b/dot-files-laptop/.bin/sh/aur.sh new file mode 100755 index 0000000..adb2e76 --- /dev/null +++ b/dot-files-laptop/.bin/sh/aur.sh @@ -0,0 +1,2 @@ +#!/bin/sh +auracle search --quiet --searchby=name $1 | fzf --color="border:magenta,info:green,header:green,info:yellow,hl:blue,label:magenta" --multi --preview "auracle info {1}" --preview-window=up | xargs -ro auracle clone -C ~/Downloads/AUR diff --git a/dot-files-laptop/.bin/sh/batterymode.sh b/dot-files-laptop/.bin/sh/batterymode.sh new file mode 100755 index 0000000..36be0bd --- /dev/null +++ b/dot-files-laptop/.bin/sh/batterymode.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh +HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==2{print $2}') +if [ "$HYPRGAMEMODE" = 1 ] ; then + hyprctl --batch "\ + keyword decoration:drop_shadow 0;\ + keyword decoration:blur:enabled 0" + exit +fi +hyprctl reload diff --git a/dot-files-laptop/.bin/sh/bd.sh b/dot-files-laptop/.bin/sh/bd.sh new file mode 100755 index 0000000..163cad8 --- /dev/null +++ b/dot-files-laptop/.bin/sh/bd.sh @@ -0,0 +1,2 @@ +#!/bin/sh +stat / | grep "Birth" | sed 's/Birth: //g' | cut -b 2-11 diff --git a/dot-files-laptop/.bin/sh/build.sh b/dot-files-laptop/.bin/sh/build.sh new file mode 100755 index 0000000..49f7bac --- /dev/null +++ b/dot-files-laptop/.bin/sh/build.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Build package and prompt for cleaning + +{ +makepkg -si; +read -p "Clean leftover files? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + git clean -dxfi +fi +} diff --git a/dot-files-laptop/.bin/sh/buildgames.sh b/dot-files-laptop/.bin/sh/buildgames.sh new file mode 100755 index 0000000..78a55ee --- /dev/null +++ b/dot-files-laptop/.bin/sh/buildgames.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +# Ask for confirmation to build nblood + +{ +read -p "Build nblood? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/nblood-compile.sh +fi +} + +# Ask for confirmation to build rednukem + +{ +read -p "Build rednukem? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/rednukem-compile.sh +fi +} + + +# Ask for confirmation to build voidsw + +{ +read -p "Build voidsw? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/voidsw-compile.sh +fi +} + +# Ask for confirmation to build eduke32 + +{ +read -p "Build eduke32? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/ionfury-compile.sh +fi +} + +# Ask for confirmation to build vkquake + +{ +read -p "Build Quakespasm-spiked? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/quakespasm-compile.sh +fi +} + +# Ask for confirmation to build crispy-doom + +{ +read -p "Build crispy-doom? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/crispy-doom-compile.sh +fi +} diff --git a/dot-files-laptop/.bin/sh/checkupdates.sh b/dot-files-laptop/.bin/sh/checkupdates.sh new file mode 100755 index 0000000..7c6abe7 --- /dev/null +++ b/dot-files-laptop/.bin/sh/checkupdates.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +# Check for system updates + +{ +echo -e "\e[94mChecking Official packages updates... +\e[39m------------------------------------- +" +checkupdates +echo -e "\e[91m +Checking AUR packages updates... +\e[39m-------------------------------- +" +auracle outdated +} + +# Perform system check + +{ +read -p "Check for errors and failed services? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + systemctl --failed && journalctl -p 3 -b +fi +} + +# Perform update + +{ +read -p "Perform system update? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/update.sh +fi +} diff --git a/dot-files-laptop/.bin/sh/crispy-doom-compile.sh b/dot-files-laptop/.bin/sh/crispy-doom-compile.sh new file mode 100755 index 0000000..5632791 --- /dev/null +++ b/dot-files-laptop/.bin/sh/crispy-doom-compile.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://github.com/fabiangreffrath/crispy-doom.git; +} + +# Build binary + +{ +cd crispy-doom; +autoreconf -fiv; +./configure; +make; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/crispy-doom; +mv /home/peter/.bin/crispy-doom/crispy-doom /home/peter/.bin/crispy-doom/old; +mv /home/peter/.bin/crispy-doom/crispy-doom-setup /home/peter/.bin/crispy-doom/old; +cd /home/peter/Downloads/git/crispy-doom; +cp /home/peter/Downloads/git/crispy-doom/src/crispy-doom /home/peter/.bin/crispy-doom; +cp /home/peter/Downloads/git/crispy-doom/src/crispy-doom-setup /home/peter/.bin/crispy-doom; +chmod 755 /home/peter/.bin/crispy-doom/crispy-doom; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/crispy-doom; +} diff --git a/dot-files-laptop/.bin/sh/debianbox.sh b/dot-files-laptop/.bin/sh/debianbox.sh new file mode 100755 index 0000000..bca505c --- /dev/null +++ b/dot-files-laptop/.bin/sh/debianbox.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Ask to connect to server via SSH + +{ +read -p "Connect to server via SSH? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ssh kitty +kitten ssh debianbox +fi +} + diff --git a/dot-files-laptop/.bin/sh/imageview.sh b/dot-files-laptop/.bin/sh/imageview.sh new file mode 100755 index 0000000..a3e0e8c --- /dev/null +++ b/dot-files-laptop/.bin/sh/imageview.sh @@ -0,0 +1,2 @@ +#!/bin/sh +kitty --session ~/.config/kitty/session --listen-on=unix:@mykitty diff --git a/dot-files-laptop/.bin/sh/ionfury-compile.sh b/dot-files-laptop/.bin/sh/ionfury-compile.sh new file mode 100755 index 0000000..c00d178 --- /dev/null +++ b/dot-files-laptop/.bin/sh/ionfury-compile.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://voidpoint.io/terminx/eduke32.git; +} + +# Build binary + +{ +cd eduke32; +make; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/eduke32; +mv /home/peter/.bin/eduke32/eduke32 /home/peter/.bin/eduke32/old; +mv /home/peter/.bin/eduke32/mapster32 /home/peter/.bin/eduke32/old; +cd /home/peter/Downloads/git/eduke32; +cp /home/peter/Downloads/git/eduke32/eduke32 /home/peter/.bin/eduke32; +cp /home/peter/Downloads/git/eduke32/mapster32 /home/peter/.bin/eduke32; +chmod 755 /home/peter/.bin/eduke32/eduke32; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/eduke32; +} diff --git a/dot-files-laptop/.bin/sh/kap.sh b/dot-files-laptop/.bin/sh/kap.sh new file mode 100755 index 0000000..f77e386 --- /dev/null +++ b/dot-files-laptop/.bin/sh/kap.sh @@ -0,0 +1,2 @@ +#!/bin/sh +pacman -Qq | fzf --color="border:magenta,info:green,header:green,info:yellow,hl:blue,label:magenta" --multi --preview "pacman -Qi {1}" --preview-window=up | xargs -ro sudo pacman -R diff --git a/dot-files-laptop/.bin/sh/lap.sh b/dot-files-laptop/.bin/sh/lap.sh new file mode 100755 index 0000000..48508de --- /dev/null +++ b/dot-files-laptop/.bin/sh/lap.sh @@ -0,0 +1,2 @@ +#!/bin/sh +pacman -Slq | fzf --color="border:magenta,info:green,header:green,info:yellow,hl:blue,label:magenta" --multi --preview "pacman -Si {1}" --preview-window=up | xargs -ro sudo pacman -S diff --git a/dot-files-laptop/.bin/sh/nblood-compile.sh b/dot-files-laptop/.bin/sh/nblood-compile.sh new file mode 100755 index 0000000..536e5f2 --- /dev/null +++ b/dot-files-laptop/.bin/sh/nblood-compile.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://github.com/nukeykt/NBlood.git; +} + +# Build binary + +{ +cd NBlood; +make blood; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/NBlood; +mv /home/peter/.bin/NBlood/nblood /home/peter/.bin/NBlood/old; +mv /home/peter/.bin/NBlood/nblood.pk3 /home/peter/.bin/NBlood/old; +cd /home/peter/Downloads/git/NBlood; +cp /home/peter/Downloads/git/NBlood/nblood /home/peter/.bin/NBlood; +cp /home/peter/Downloads/git/NBlood/nblood.pk3 /home/peter/.bin/NBlood; +chmod 755 /home/peter/.bin/NBlood/nblood; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/NBlood; +} diff --git a/dot-files-laptop/.bin/sh/orphans.sh b/dot-files-laptop/.bin/sh/orphans.sh new file mode 100755 index 0000000..237e0d4 --- /dev/null +++ b/dot-files-laptop/.bin/sh/orphans.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Check for orphans then asks for removal + +{ +while [[ $(pacman -Qtdq) ]]; + do + pacman -Qtdq; + read -p "Remove orphaned packages? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + sudo pacman -R $(pacman -Qtdq) +elif [[ -n $(pacman -Qtdq) ]]; + then + exit +fi +done +} + diff --git a/dot-files-laptop/.bin/sh/pkgb.sh b/dot-files-laptop/.bin/sh/pkgb.sh new file mode 100755 index 0000000..afc6774 --- /dev/null +++ b/dot-files-laptop/.bin/sh/pkgb.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +#Check PKGBUILD file + +{ +less PKGBUILD; +read -p "Build package? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/build.sh +fi +} diff --git a/dot-files-laptop/.bin/sh/quakespasm-compile.sh b/dot-files-laptop/.bin/sh/quakespasm-compile.sh new file mode 100755 index 0000000..b038a18 --- /dev/null +++ b/dot-files-laptop/.bin/sh/quakespasm-compile.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://github.com/Shpoike/Quakespasm.git; +} + +# Build binary + +{ +cd /home/peter/Downloads/git/Quakespasm/Quake; +make; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/Quakespasm; +mv /home/peter/.bin/Quakespasm/quakespasm /home/peter/.bin/Quakespasm/old; +mv /home/peter/.bin/Quakespasm/quakespasm.pak /home/peter/.bin/Quakespasm/old; +cd /home/peter/Downloads/git/Quakespasm/Quake; +cp /home/peter/Downloads/git/Quakespasm/Quake/quakespasm /home/peter/.bin/Quakespasm; +cp /home/peter/Downloads/git/Quakespasm/Quake/quakespasm.pak /home/peter/.bin/Quakespasm; +chmod 755 /home/peter/.bin/Quakespasm; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/Quakespasm; +} diff --git a/dot-files-laptop/.bin/sh/reboot.sh b/dot-files-laptop/.bin/sh/reboot.sh new file mode 100755 index 0000000..4d40b4d --- /dev/null +++ b/dot-files-laptop/.bin/sh/reboot.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# Prompt Reboot + +{ +read -p "Reboot now? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + command shutdown -r now +fi +} diff --git a/dot-files-laptop/.bin/sh/rednukem-compile.sh b/dot-files-laptop/.bin/sh/rednukem-compile.sh new file mode 100755 index 0000000..3f22e32 --- /dev/null +++ b/dot-files-laptop/.bin/sh/rednukem-compile.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://github.com/nukeykt/NBlood.git; +} + +# Build binary + +{ +cd NBlood; +make rednukem; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/Rednukem; +mv /home/peter/.bin/Rednukem/rednukem /home/peter/.bin/Rednukem/old; +mv /home/peter/.bin/Rednukem/dn64widescreen.pk3 /home/peter/.bin/Rednukem/old; +cd /home/peter/Downloads/git/NBlood; +cp /home/peter/Downloads/git/NBlood/rednukem /home/peter/.bin/Rednukem; +cp /home/peter/Downloads/git/NBlood/dn64widescreen.pk3 /home/peter/.bin/Rednukem; +chmod 755 /home/peter/.bin/Rednukem/rednukem; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/NBlood; +} diff --git a/dot-files-laptop/.bin/sh/shutdown.sh b/dot-files-laptop/.bin/sh/shutdown.sh new file mode 100755 index 0000000..97548e9 --- /dev/null +++ b/dot-files-laptop/.bin/sh/shutdown.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# Prompt Reboot + +{ +read -p "Shutdown now? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + command shutdown -h now +fi +} diff --git a/dot-files-laptop/.bin/sh/steamskin.sh b/dot-files-laptop/.bin/sh/steamskin.sh new file mode 100755 index 0000000..186f82d --- /dev/null +++ b/dot-files-laptop/.bin/sh/steamskin.sh @@ -0,0 +1,10 @@ +#!/bin/sh +#https://wiki.archlinux.org/title/steam#Changing_the_Steam_notification_position +mkdir -p ~/.steam/root/skins +cd ~/.steam/root/skins +mkdir -p StopAnimations/resource +cp -r ~/.steam/root/resource/styles StopAnimations/resource +sed -i '/Notifications.SlideDirection/ s/"[A-Za-z]*"/"None"/' StopAnimations/resource/styles/* #no animation sliding +sed -i '/Notifications.FadeInTime/ s/"0.[0-9+]*"/"0.0"/' StopAnimations/resource/styles/* #no fade in time for notifications +sed -i '/Notifications.FadeOutTime/ s/"0.[0-9+]*"/"0.0"/' StopAnimations/resource/styles/* #no fade out time for notifications +sed -i '/Notifications.StackSize/ s/"[0-9]*"/"5"/' StopAnimations/resource/styles/* #show max 5 notifications instead of max 3 at the same time diff --git a/dot-files-laptop/.bin/sh/swaylock.sh b/dot-files-laptop/.bin/sh/swaylock.sh new file mode 100755 index 0000000..447cb1b --- /dev/null +++ b/dot-files-laptop/.bin/sh/swaylock.sh @@ -0,0 +1,2 @@ +#!/bin/sh +swaylock -f -i eDP-1:~/.wallpapers/castlevania.png --inside-color "#44475a" --inside-clear-color "#50fa7b" --ring-color "#ff79c6" --text-caps-lock-color "#f8f8f2" --ring-caps-lock-color "#f8f8f2" --key-hl-color "#50fa7b" diff --git a/dot-files-laptop/.bin/sh/tv_rename.sh b/dot-files-laptop/.bin/sh/tv_rename.sh new file mode 100755 index 0000000..3419928 --- /dev/null +++ b/dot-files-laptop/.bin/sh/tv_rename.sh @@ -0,0 +1,166 @@ +#!/bin/env bash +# +# Written by Anthony Lobianco, 01/23/2014 +# +# A simple script to batch rename television files +# +# USAGE +# ----- +# chmod a+x tv_rename.sh +# ./tv_rename.sh -d /path/to/show/S01 +# +# CHANGELOG +# --------- +# +# 1.0.0 +# ----- +# initial commit +# +# 1.0.1 +# ----- +# check to make sure input directory exists +# +# 1.0.2 +# ----- +# handle file types other than .mkv +# make sure new format has same extension as old file +# make sure new format includes the SXXEYY placeholder +# +# 1.0.3 +# ----- +# if SXXEYY pattern is not present, automatically determine it from filename +# + +VRS=1.0.3 + +bold=`tput bold` # bold characters in echo +normal=`tput sgr0` # normal characters in echo + +echo " " +echo "BATCH RENAME SCRIPT v$VRS" +echo -n "server: " +echo $SSH_CONNECTION | awk '{print $3}' +echo " " + +DIR="" + +while getopts ":d:" OPTION +do + case $OPTION in + d) + if [ "$OPTARG" = "." ]; then + DIR=`pwd` + else + DIR="$OPTARG" + fi + ;; + esac +done + +if [ "$DIR" = "" ]; then + echo "no directory specified (use -d /path/to/directory/)" + echo "EXIT" + exit 1 +elif [ ! -d "$DIR" ]; then + echo "$DIR does not exist" + echo "EXIT" + exit 1 +fi + +echo -e "renaming files in:\t ${bold}${DIR}${normal}" + +LAST_FILE=`ls -l "$DIR" | tail -1 | awk '{print $NF}'` +FILE_TYPE=`basename $LAST_FILE | awk -F . '{print $NF}'` + +echo -e "last file looks like:\t ${bold}${LAST_FILE}${normal}\n" + +rename_files() { + local format=$1 + local dry_run=$2 + + # find SXXEYY pattern + REGEX="([sS]([0-9]{2,}|[X]{2,})[eE]([0-9]{2,}|[Y]{2,}))" + if [[ ! $format =~ $REGEX ]]; then + echo "could not find SXXEYY pattern in new format" + echo " " + continue + else + MATCH="${BASH_REMATCH[1]}" + fi + + # needed if directory name has whitespace (e.g. /media/Family Guy/) + SAVEIFS=$IFS + IFS=$(echo -en "\n\b") + + SEASON=`basename "$DIR"` + EPISODE=1 + for ITEM in $(find "$DIR" -type f -name "*.${FILE_TYPE}" | sort); do + if (( $EPISODE < 10 )); then + SE="${SEASON}E0${EPISODE}" + else + SE="${SEASON}E${EPISODE}" + fi + + if [[ $MATCH != $SE ]]; then + FILE="${format/$MATCH/$SE}" + else + FILE=$format + fi + + # list the files during dry run, rename them otherwise + if $dry_run; then + echo -e " mv `basename $ITEM` \n -> $FILE" + else + if [[ `basename $ITEM` == $FILE ]]; then + echo "rename not needed for `basename $ITEM`" + else + echo -e "renaming $ITEM \n to -> \t $DIR/$FILE" + mv $ITEM "$DIR/$FILE" + fi + fi + + echo " " + + EPISODE=$((EPISODE + 1)) + done + + IFS=$SAVEIFS +} + +echo "what format do you want to use to rename files?" +echo -e "(ex: Breaking.Bad.SXXEYY.1080p.BluRay.DTS.x264-rovers.mkv)\n" + +while read -ep "[format]: " FORMAT +do + echo " " + + # do some error checks + if [[ $FORMAT != *.${FILE_TYPE} ]]; then + echo "make sure new format has same file type extension (.${FILE_TYPE})" + echo " " + continue + fi + + rename_files $FORMAT true + + echo " " + + while read -ep "[continue? y/n]: " CONTINUE + do + if [[ $CONTINUE = y ]]; then + break + else + continue 2 + fi + done + + echo " " + + rename_files $FORMAT false + + break +done + +echo " " +echo "DONE" +exit 0 diff --git a/dot-files-laptop/.bin/sh/update.sh b/dot-files-laptop/.bin/sh/update.sh new file mode 100755 index 0000000..3fa8730 --- /dev/null +++ b/dot-files-laptop/.bin/sh/update.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# Perform update + +sudo pacman -Syu + +# Check pacdiff + +{ +read -p "Execute pacdiff? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + pacdiff -s +fi +} +# Check for orphans +{ +read -p "Check for orphan packages? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + sudo bash /home/peter/.bin/sh/orphans.sh +fi +} + +# Prompt reboot + +~/.bin/sh/reboot.sh diff --git a/dot-files-laptop/.bin/sh/updatenew.sh b/dot-files-laptop/.bin/sh/updatenew.sh new file mode 100755 index 0000000..079f112 --- /dev/null +++ b/dot-files-laptop/.bin/sh/updatenew.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +# Check for updates + +{ +read -p "Check for updates? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + ~/.bin/sh/checkupdates.sh +fi +} + +# Perform system check + +{ +read -p "Check for errors and failed services? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + systemctl --failed && journalctl -p 3 -b +fi +} + +# Perform update + +{ +read -p "Perform system update? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + sudo pacman -Syu; +fi +} + +# Check pacdiff + +{ +read -p "Execute pacdiff? [y/n]:" -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]] +then + sudo pacdiff +fi +} + +# Prompt reboot + +~/.bin/sh/reboot.sh diff --git a/dot-files-laptop/.bin/sh/voidsw-compile.sh b/dot-files-laptop/.bin/sh/voidsw-compile.sh new file mode 100755 index 0000000..89797ef --- /dev/null +++ b/dot-files-laptop/.bin/sh/voidsw-compile.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# Switch to git directory and clone source +{ +cd /home/peter/Downloads/git; +git clone https://voidpoint.io/terminx/eduke32.git; +} + +# Build binary + +{ +cd eduke32; +make voidsw; +} + +# Install executable @ ~/.bin + +{ +cd /home/peter/.bin/voidsw; +mv /home/peter/.bin/voidsw/voidsw /home/peter/.bin/voidsw/old; +cd /home/peter/Downloads/git/eduke32; +cp /home/peter/Downloads/git/eduke32/voidsw /home/peter/.bin/voidsw; +chmod 755 /home/peter/.bin/voidsw/voidsw; +} + +# Cleanup + +{ +rm -rf /home/peter/Downloads/git/eduke32; +} diff --git a/dot-files-laptop/.bin/sh/weather.sh b/dot-files-laptop/.bin/sh/weather.sh new file mode 100755 index 0000000..47c5d19 --- /dev/null +++ b/dot-files-laptop/.bin/sh/weather.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# weather.sh +for i in {1..5} +do + text=$(curl -s "https://v2.wttr.in/$1?format=1&m") + if [[ $? == 0 ]] + then + text=$(echo "$text" | sed -E "s/\s+/ /g") + tooltip=$(echo -ne "Santo Domingo, Dominican Republic:";curl -s "https://wttr.in/$1?format=2&m") + if [[ $? == 0 ]] + then + tooltip=$(echo "$tooltip" | sed -E "s/\s+/ /g") + echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}" + exit + fi + fi + sleep 2 +done +echo "{\"text\":\"error\", \"tooltip\":\"error\"}" diff --git a/dot-files-laptop/.config/hypr/.zshrc.conf b/dot-files-laptop/.config/hypr/.zshrc.conf new file mode 100644 index 0000000..8aa94e3 --- /dev/null +++ b/dot-files-laptop/.config/hypr/.zshrc.conf @@ -0,0 +1,388 @@ +# ┌───────────────────────────────────────────────────┐ +# │ ██████╗ ███████╗████████╗███████╗██████╗ ███████╗ │ +# │ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ │ +# │ ██████╔╝█████╗ ██║ █████╗ ██████╔╝███████╗ │ +# │ ██╔═══╝ ██╔══╝ ██║ ██╔══╝ ██╔══██╗╚════██║ │ +# │ ██║ ███████╗ ██║ ███████╗██║ ██║███████║ │ +# │ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ │ +# ├───────────────────────────────────────────────────┤ +# │ depressing and totally messy hyprland config or │ +# ├───────────────────────────────────────────────────┤ +# │ How windows are the only well │ +# │ managed aspect of my life. │ +# │---------------------------------------------------│ +# │ https://gitlab.com/putridpete/dot-files │ +# └───────────────────────────────────────────────────┘ +# +# + +# Programs + +$terminal = kitty +$menu = rofi -show drun + +# Some default env vars + +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that + +# Outputs + +monitor=eDP-1,1920x1080@60,0x0,1 + +# trigger when the switch is toggled + +bindl=,switch:Lid Switch,exec,swaylock -f + +# Screen brightness + +bind = , XF86MonBrightnessUp, exec, brightnessctl s +10% +bind = , XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Input devices + +input { + kb_layout = us(altgr-intl) + kb_variant = ,nodeadkeys + kb_options = caps:escape + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +device { + name = tpps/2-ibm-trackpoint + sensitivity = 0.7 +} + +device { + name = synaptics-tm3276-022 + sensitivity = 0.3 +} + +# Executables + +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = udiskie -t & +exec-once = /usr/lib/polkit-kde-authentication-agent-1 +exec-once = sleep 1; blueman-applet +exec-once = waybar +exec-once = swaync +exec-once = hyprpaper +exec-once = hypridle +exec-once = hyprctl setcursor Dracula-cursors 24 +exec-once = [workspace 1 silent] firefox +exec-once = jellyfinmediaplayer +exec-once = libreoffice --writer --norestore +exec-once = gimp +exec-once = [workspace 2 silent] kitty btop +exec-once = [workspace 2 silent] sleep 1; kitty +exec-once = [workspace 2 silent] sleep 1;kitty --session ~/.config/kitty/session --listen-on=unix:@mykitty +exec-once = [workspace special:password silent] keepassxc +exec-once = [workspace special:scratchpad silent] signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations +exec-once = nextcloud +exec-once = killall nextcloud +exec-once = [workspace special:music silent] sleep 1; feishin --enable-features=UseOzonePlatform --ozone-platform=wayland +exec-once = gammastep -m wayland -O 6500K -g 1.1.0 +exec-once = [workspace special:email silent] sleep 1; tutanota-desktop --ozone-platform-hint=auto +exec-once = discord --enable-features=UseOzonePlatform --ozone-platform=wayland --start-minimized + +# Variables + +general { + gaps_in = 5 + gaps_out = 10 + border_size = 2 + layout = master + allow_tearing = false +} + +decoration { + + rounding = 8 + + blur { + enabled = false + size = 3 + passes = 1 + new_optimizations = true + noise = 0.06 + special = true + contrast = 0.8 + popups = true + } + +} + +# Animations + +animations { + enabled = yes + + bezier = myBezier, 0, 0.55, 0.45, 1 + + animation = windows, 1, 4, myBezier + animation = windowsIn, 1, 7, default, popin 80% + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 20, default + animation = borderangle, 1, 20, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default, slide +} + +# Layout + +master { + new_status = slave +} + +# Cursor + +cursor { + hide_on_key_press = true +} + +# Miscellaneous + +misc { + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers + vfr = true +} + +# Window rules + +windowrulev2 = workspace 3 silent,class:com.github.iwalton3.jellyfin-media-player +windowrulev2 = workspace 4 silent,class:libreoffice-writer +windowrulev2 = workspace 5 silent,class:gimp +windowrulev2 = float,class:nmnet +windowrulev2 = size 860 540,class:nmnet +windowrulev2 = float,class:com.nextcloud.desktopclient.nextcloud +windowrulev2 = move 1450 38,class:com.nextcloud.desktopclient.nextcloud +windowrulev2 = float,class:openrgb +windowrulev2 = size 1600 900,class:openrgb +windowrulev2 = center,class:openrgb +windowrulev2 = float,class:org.pulseaudio.pavucontrol +windowrulev2 = move 1310 40,class:org.pulseaudio.pavucontrol +windowrulev2 = float,title:foot +windowrulev2 = float,title:Open Files +windowrulev2 = size 1000 600,title:Open Files +windowrulev2 = float,title:Signal +windowrulev2 = center,title:Signal +windowrulev2 = size 1280 720,title:Signal +windowrulev2 = float,class:feishin +windowrulev2 = center,class:feishin +windowrulev2 = float,class:org.keepassxc.KeePassXC +windowrulev2 = size 800 600,class:org.keepassxc.KeePassXC +windowrulev2 = center,class:org.keepassxc.KeePassXC +windowrulev2 = float,class:mpv +windowrulev2 = monitor DP-1,class:mpv +windowrulev2 = size 600 400,class:mpv +windowrulev2 = move 1310 670,class:mpv +windowrulev2 = center,class:discord +windowrulev2 = float,class:discord +windowrulev2 = size 1600 900, class:discord +windowrulev2 = float,class:org.kde.polkit-kde-authentication-agent-1 +windowrulev2 = float,class:alacarte +windowrulev2 = float,class:nwg-look +windowrulev2 = float,class:zenity +windowrulev2 = float,class:galculator +windowrulev2 = move 1580 730,class:galculator +windowrulev2 = float,class:qsynth +windowrulev2 = float,class:qt5ct +windowrulev2 = float,class:kvantummanager +windowrulev2 = float,class:nm-connection-editor +windowrulev2 = float,class:udiskie +windowrulev2 = float,class:gsimplecal +windowrulev2 = move 800 43,class:gsimplecal +windowrulev2 = float,class:imv +windowrulev2 = center,class:imv +windowrulev2 = float,class:org.pwmt.zathura +windowrulev2 = center,class:org.pwmt.zathura +windowrulev2 = idleinhibit fullscreen, fullscreen:1 +windowrulev2 = float,class:tutanota-desktop +windowrulev2 = center,class:tutanota-desktop +windowrulev2 = size 1705 909,class:tutanota-desktop +windowrulev2 = float,class:xdg-desktop-portal-gtk +windowrulev2 = float,class:blueman-manager +windowrulev2 = center,class:blueman-manager +windowrulev2 = move 1310 38,class:blueman-manager +windowrulev2 = size 600 900,class:blueman-manager + +# Keywords + +$mainMod = SUPER + +# Bindings + +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, E, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, exec, $menu +bind = $mainMod, F, fullscreen +bind = $mainMod, C, exec, galculator +bind = $mainMod, n, exec, exec swaync-client -t -sw +bind = $mainMod CTRL, S, exec, [workspace special:scratchpad silent] signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations +bind = $mainMod CTRL, P, exec, [workspace special:password silent] keepassxc +bind = $mainMod CTRL, M, exec, [workspace special:music silent] sleep 1; feishin --enable-features=UseOzonePlatform --ozone-platform=wayland + +# Resize windows main keybind +bind=ALT,R,submap,resize + +# Start a submap resize +submap=resize + +# Set repeatable binds for resizing the active window +binde=,right,resizeactive,10 0 +binde=,left,resizeactive,-10 0 +binde=,up,resizeactive,0 -10 +binde=,down,resizeactive,0 10 +binde=,l,resizeactive,10 0 +binde=,h,resizeactive,-10 0 +binde=,k,resizeactive,0 -10 +binde=,j,resizeactive,0 10 + +# Use reset to go back to the global submap +bind=,escape,submap,reset + +# Reset the submap +submap=reset + +# Switch between floating and tiled windows + +bind = ALT, TAB, cyclenext, floating +bind = ALT, SPACE, focuscurrentorlast + +# Media keys + +bind = ,XF86AudioPlay,exec,playerctl play-pause +bind = ,XF86AudioPause,exec,playerctl pause +bind = ,XF86AudioStop,exec,playerctl stop +bind = ,XF86AudioNext,exec,playerctl next +bind = ,XF86AudioPrev,exec,playerctl previous +bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bind = ,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle + +# Move focus with Mod + arrow keys + +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Move windows with Mod + arrow keys + +bind = $mainMod CTRL, left, movewindow, l +bind = $mainMod CTRL, right, movewindow, r +bind = $mainMod CTRL, up, movewindow, u +bind = $mainMod CTRL, down, movewindow, d + +# VI keybindings like God intended + +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Move windows with Mod + vi keys + +bind = $mainMod CTRL, h, movewindow, l +bind = $mainMod CTRL, l, movewindow, r +bind = $mainMod CTRL, k, movewindow, u +bind = $mainMod CTRL, j, movewindow, d + +# Switch workspaces with Mod + [0-8] + +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 + +# Move active window to a workspace with Mod + CTRL + [0-8] + +bind = $mainMod CTRL, 1, movetoworkspace, 1 +bind = $mainMod CTRL, 2, movetoworkspace, 2 +bind = $mainMod CTRL, 3, movetoworkspace, 3 +bind = $mainMod CTRL, 4, movetoworkspace, 4 +bind = $mainMod CTRL, 5, movetoworkspace, 5 +bind = $mainMod CTRL, 6, movetoworkspace, 6 +bind = $mainMod CTRL, 7, movetoworkspace, 7 +bind = $mainMod CTRL, 8, movetoworkspace, 8 + +# Workspace monitor assignment + +workspace = 1, monitor:eDP-1, default:true +workspace = 2, monitor:eDP-1 +workspace = 3, monitor:eDP-1 +workspace = 4, monitor:eDP-1 +workspace = 5, monitor:eDP-1 +workspace = 6, monitor:eDP-1 +workspace = 7, monitor:eDP-1, default:true +workspace = 8, monitor:eDP-1 + +# Special workspaces + +bind = $mainMod, U, togglespecialworkspace, scratchpad +bind = $mainMod SHIFT, S, movetoworkspace, special:scratchpad + +bind = $mainMod, M, togglespecialworkspace, music +bind = $mainMod, O, togglespecialworkspace, password +bind = $mainMod, I, togglespecialworkspace, email + +# Scroll through existing workspaces with Mod + scroll + +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Scroll through existing workspaces with Mod + vi keys + +bind = $mainMod ALT, l, workspace, e+1 +bind = $mainMod ALT, h, workspace, e-1 + +# Scroll through existing workspaces with Mod + arrow keys + +bind = $mainMod ALT, right, workspace, e+1 +bind = $mainMod ALT, left, workspace, e-1 + +# Move/resize windows with Mod + LMB/RMB and dragging + +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screenshot + +bind = ,Print,exec,grim -g "$(slurp)" - | swappy -f - + +# Dracula theme + +general { + col.active_border = rgb(6272A4) rgb(bd93f9) 90deg + col.inactive_border = rgba(44475aaa) + col.nogroup_border = rgba(282a36dd) + col.nogroup_border_active = rgb(bd93f9) rgb(44475a) 90deg + no_border_on_floating = false + border_size = 2 + +} +decoration:shadow { + color = rgba(1E202966) + enabled = true + range = 60 + offset = 1 2 + render_power = 3 + scale = 0.97 +} + +group { + groupbar { + col.active = rgb(bd93f9) rgb(44475a) 90deg + col.inactive = rgba(282a36dd) + } +} +windowrulev2 = bordercolor rgb(ff5555),xwayland:1 # check if window is xwayland diff --git a/dot-files-laptop/.config/hypr/hypridle.conf b/dot-files-laptop/.config/hypr/hypridle.conf new file mode 100644 index 0000000..d344d54 --- /dev/null +++ b/dot-files-laptop/.config/hypr/hypridle.conf @@ -0,0 +1,29 @@ +general { + lock_cmd = pidof hyprlock || hyprlock + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch dpms on +} + +listener { + timeout = 150 + on-timeout = brightnessctl -s set 10 + on-resume = brightnessctl -r +} + +# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. +listener { + timeout = 150 + on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 + on-resume = brightnessctl -rd rgb:kbd_backlight +} + +listener { + timeout = 600 + on-timeout = loginctl lock-session +} + +listener { + timeout = 605 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} diff --git a/dot-files-laptop/.config/hypr/hyprland.conf b/dot-files-laptop/.config/hypr/hyprland.conf new file mode 100644 index 0000000..d0a7345 --- /dev/null +++ b/dot-files-laptop/.config/hypr/hyprland.conf @@ -0,0 +1,390 @@ +# ┌───────────────────────────────────────────────────┐ +# │ ██████╗ ███████╗████████╗███████╗██████╗ ███████╗ │ +# │ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ │ +# │ ██████╔╝█████╗ ██║ █████╗ ██████╔╝███████╗ │ +# │ ██╔═══╝ ██╔══╝ ██║ ██╔══╝ ██╔══██╗╚════██║ │ +# │ ██║ ███████╗ ██║ ███████╗██║ ██║███████║ │ +# │ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ │ +# ├───────────────────────────────────────────────────┤ +# │ depressing and totally messy hyprland config or │ +# ├───────────────────────────────────────────────────┤ +# │ How windows are the only well │ +# │ managed aspect of my life. │ +# │---------------------------------------------------│ +# │ https://gitlab.com/putridpete/dot-files │ +# └───────────────────────────────────────────────────┘ +# +# + +# Programs + +$terminal = kitty +$menu = rofi -show drun + +# Some default env vars + +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that + +# Outputs + +monitor=eDP-1,1920x1080@60,0x0,1 + +# trigger when the switch is toggled + +bindl=,switch:Lid Switch,exec,swaylock -f + +# Screen brightness + +bind = , XF86MonBrightnessUp, exec, brightnessctl s +10% +bind = , XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Input devices + +input { + kb_layout = us(altgr-intl) + kb_variant = ,nodeadkeys + kb_options = caps:escape + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +device { + name = tpps/2-ibm-trackpoint + sensitivity = 0.7 +} + +device { + name = synaptics-tm3276-022 + sensitivity = 0.3 +} + +# Executables + +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = udiskie -t & +exec-once = /usr/lib/polkit-kde-authentication-agent-1 +exec-once = sleep 1; blueman-applet +exec-once = waybar +exec-once = swaync +exec-once = hyprpaper +exec-once = hypridle +exec-once = hyprctl setcursor Dracula-cursors 24 +exec-once = [workspace 1 silent] firefox +exec-once = libreoffice --writer --norestore +exec-once = gimp +exec-once = [workspace 2 silent] kitty btop +exec-once = [workspace 2 silent] sleep 1; kitty +exec-once = [workspace 2 silent] sleep 1;kitty --session ~/.config/kitty/session --listen-on=unix:@mykitty +exec-once = [workspace special:password silent] keepassxc +exec-once = [workspace special:scratchpad silent] signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations +exec-once = nextcloud +exec-once = killall nextcloud +exec-once = [workspace special:music silent] sleep 1; feishin --enable-features=UseOzonePlatform --ozone-platform=wayland +exec-once = gammastep -m wayland -O 6500K -g 1.1.0 +exec-once = [workspace special:email silent] sleep 1; tutanota-desktop --ozone-platform-hint=auto +exec-once = discord --enable-features=UseOzonePlatform --ozone-platform=wayland --start-minimized +exec-once = jellyfin-mpv-shim + +# Variables + +general { + gaps_in = 5 + gaps_out = 10 + border_size = 2 + layout = master + allow_tearing = false +} + +decoration { + + rounding = 8 + + blur { + enabled = false + size = 3 + passes = 1 + new_optimizations = true + noise = 0.06 + special = true + contrast = 0.8 + popups = true + } + +} + +# Animations + +animations { + enabled = yes + + bezier = myBezier, 0, 0.55, 0.45, 1 + + animation = windows, 1, 4, myBezier + animation = windowsIn, 1, 7, default, popin 80% + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 20, default + animation = borderangle, 1, 20, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default, slide +} + +# Layout + +master { + new_status = slave +} + +# Cursor + +cursor { + hide_on_key_press = true +} + +# Miscellaneous + +misc { + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers + vfr = true +} + +# Window rules + +windowrulev2 = workspace 3 silent,class:libreoffice-writer +windowrulev2 = workspace 4 silent,class:gimp +windowrulev2 = workspace special:email silent,class:tutanota-desktop +windowrulev2 = float,class:nmnet +windowrulev2 = size 860 540,class:nmnet +windowrulev2 = float,class:com.nextcloud.desktopclient.nextcloud +windowrulev2 = move 1450 38,class:com.nextcloud.desktopclient.nextcloud +windowrulev2 = float,class:openrgb +windowrulev2 = size 1600 900,class:openrgb +windowrulev2 = center,class:openrgb +windowrulev2 = float,class:org.pulseaudio.pavucontrol +windowrulev2 = move 1310 40,class:org.pulseaudio.pavucontrol +windowrulev2 = float,title:foot +windowrulev2 = float,title:Save Files* +windowrulev2 = size 1000 600,title:Save Files* +windowrulev2 = float,title:Open Files +windowrulev2 = size 1000 600,title:Open Files +windowrulev2 = float,title:Signal +windowrulev2 = center,title:Signal +windowrulev2 = size 1280 720,title:Signal +windowrulev2 = float,class:feishin +windowrulev2 = center,class:feishin +windowrulev2 = float,class:org.keepassxc.KeePassXC +windowrulev2 = size 800 600,class:org.keepassxc.KeePassXC +windowrulev2 = center,class:org.keepassxc.KeePassXC +windowrulev2 = float,class:mpv +windowrulev2 = monitor DP-1,class:mpv +windowrulev2 = size 600 400,class:mpv +windowrulev2 = move 1310 670,class:mpv +windowrulev2 = center,class:discord +windowrulev2 = float,class:discord +windowrulev2 = size 1600 900, class:discord +windowrulev2 = float,class:org.kde.polkit-kde-authentication-agent-1 +windowrulev2 = float,class:alacarte +windowrulev2 = float,class:nwg-look +windowrulev2 = float,class:zenity +windowrulev2 = float,class:galculator +windowrulev2 = move 1580 730,class:galculator +windowrulev2 = float,class:qsynth +windowrulev2 = float,class:qt5ct +windowrulev2 = float,class:kvantummanager +windowrulev2 = float,class:nm-connection-editor +windowrulev2 = float,class:udiskie +windowrulev2 = float,class:gsimplecal +windowrulev2 = move 800 43,class:gsimplecal +windowrulev2 = float,class:imv +windowrulev2 = center,class:imv +windowrulev2 = float,class:org.pwmt.zathura +windowrulev2 = center,class:org.pwmt.zathura +windowrulev2 = idleinhibit fullscreen, fullscreen:1 +windowrulev2 = float,class:tutanota-desktop +windowrulev2 = center,class:tutanota-desktop +windowrulev2 = size 1705 909,class:tutanota-desktop +windowrulev2 = float,class:xdg-desktop-portal-gtk +windowrulev2 = float,class:blueman-manager +windowrulev2 = center,class:blueman-manager +windowrulev2 = move 1310 38,class:blueman-manager +windowrulev2 = size 600 900,class:blueman-manager + +# Keywords + +$mainMod = SUPER + +# Bindings + +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, E, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, P, exec, $menu +bind = $mainMod, F, fullscreen +bind = $mainMod, C, exec, galculator +bind = $mainMod, n, exec, exec swaync-client -t -sw +bind = $mainMod CTRL, S, exec, [workspace special:scratchpad silent] signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations +bind = $mainMod CTRL, P, exec, [workspace special:password silent] keepassxc +bind = $mainMod CTRL, M, exec, [workspace special:music silent] sleep 1; feishin --enable-features=UseOzonePlatform --ozone-platform=wayland + +# Resize windows main keybind +bind=ALT,R,submap,resize + +# Start a submap resize +submap=resize + +# Set repeatable binds for resizing the active window +binde=,right,resizeactive,10 0 +binde=,left,resizeactive,-10 0 +binde=,up,resizeactive,0 -10 +binde=,down,resizeactive,0 10 +binde=,l,resizeactive,10 0 +binde=,h,resizeactive,-10 0 +binde=,k,resizeactive,0 -10 +binde=,j,resizeactive,0 10 + +# Use reset to go back to the global submap +bind=,escape,submap,reset + +# Reset the submap +submap=reset + +# Switch between floating and tiled windows + +bind = ALT, TAB, cyclenext, floating +bind = ALT, SPACE, focuscurrentorlast + +# Media keys + +bind = ,XF86AudioPlay,exec,playerctl play-pause +bind = ,XF86AudioPause,exec,playerctl pause +bind = ,XF86AudioStop,exec,playerctl stop +bind = ,XF86AudioNext,exec,playerctl next +bind = ,XF86AudioPrev,exec,playerctl previous +bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bind = ,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle + +# Move focus with Mod + arrow keys + +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Move windows with Mod + arrow keys + +bind = $mainMod CTRL, left, movewindow, l +bind = $mainMod CTRL, right, movewindow, r +bind = $mainMod CTRL, up, movewindow, u +bind = $mainMod CTRL, down, movewindow, d + +# VI keybindings like God intended + +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Move windows with Mod + vi keys + +bind = $mainMod CTRL, h, movewindow, l +bind = $mainMod CTRL, l, movewindow, r +bind = $mainMod CTRL, k, movewindow, u +bind = $mainMod CTRL, j, movewindow, d + +# Switch workspaces with Mod + [0-8] + +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 + +# Move active window to a workspace with Mod + CTRL + [0-8] + +bind = $mainMod CTRL, 1, movetoworkspace, 1 +bind = $mainMod CTRL, 2, movetoworkspace, 2 +bind = $mainMod CTRL, 3, movetoworkspace, 3 +bind = $mainMod CTRL, 4, movetoworkspace, 4 +bind = $mainMod CTRL, 5, movetoworkspace, 5 +bind = $mainMod CTRL, 6, movetoworkspace, 6 +bind = $mainMod CTRL, 7, movetoworkspace, 7 +bind = $mainMod CTRL, 8, movetoworkspace, 8 + +# Workspace monitor assignment + +workspace = 1, monitor:eDP-1, default:true +workspace = 2, monitor:eDP-1 +workspace = 3, monitor:eDP-1 +workspace = 4, monitor:eDP-1 +workspace = 5, monitor:eDP-1 +workspace = 6, monitor:eDP-1 +workspace = 7, monitor:eDP-1, default:true +workspace = 8, monitor:eDP-1 + +# Special workspaces + +bind = $mainMod, U, togglespecialworkspace, scratchpad +bind = $mainMod SHIFT, S, movetoworkspace, special:scratchpad + +bind = $mainMod, M, togglespecialworkspace, music +bind = $mainMod, O, togglespecialworkspace, password +bind = $mainMod, I, togglespecialworkspace, email + +# Scroll through existing workspaces with Mod + scroll + +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Scroll through existing workspaces with Mod + vi keys + +bind = $mainMod ALT, l, workspace, e+1 +bind = $mainMod ALT, h, workspace, e-1 + +# Scroll through existing workspaces with Mod + arrow keys + +bind = $mainMod ALT, right, workspace, e+1 +bind = $mainMod ALT, left, workspace, e-1 + +# Move/resize windows with Mod + LMB/RMB and dragging + +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screenshot + +bind = ,Print,exec,grim -g "$(slurp)" - | swappy -f - + +# Dracula theme + +general { + col.active_border = rgb(6272A4) rgb(bd93f9) 90deg + col.inactive_border = rgba(44475aaa) + col.nogroup_border = rgba(282a36dd) + col.nogroup_border_active = rgb(bd93f9) rgb(44475a) 90deg + no_border_on_floating = false + border_size = 2 + +} +decoration:shadow { + color = rgba(1E202966) + enabled = true + range = 60 + offset = 1 2 + render_power = 3 + scale = 0.97 +} + +group { + groupbar { + col.active = rgb(bd93f9) rgb(44475a) 90deg + col.inactive = rgba(282a36dd) + } +} +windowrulev2 = bordercolor rgb(ff5555),xwayland:1 # check if window is xwayland diff --git a/dot-files-laptop/.config/hypr/hyprlock.conf b/dot-files-laptop/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..3922780 --- /dev/null +++ b/dot-files-laptop/.config/hypr/hyprlock.conf @@ -0,0 +1,107 @@ +# BACKGROUND +background { + monitor = + path = ~/.wallpapers/castlevania.png + blur_size = 3 + blur_passes = 2 + noise = 0.06 + contrast = 0.8 + brightness = 0.5 + vibrancy = 0.2 + vibrancy_darkness = 0.2 +} + +# GENERAL +general { + no_fade_in = false + grace = 0 + disable_loading_bar = false +} + +# Profie-Photo +image { + monitor = + path = ~/.face + border_size = 2 + border_color = rgba(248, 248, 242, 0.8) + size = 200 + rounding = -1 + rotate = 0 + reload_time = -1 + reload_cmd = + position = 0, 20 + halign = center + valign = center + shadow_passes = 2 + shadow_size = 4 +} + +# Day-Month-Date +label { + monitor = + text = cmd[update:1000] echo -e "$(date +"%A, %B %d")" + color = rgba(255, 121, 198, 0.70) + font_size = 25 + font_family = Droid Sans Font, Font Awesome, Roboto, FreeSans, FreeSerif + position = 0, 350 + halign = center + valign = center +} + +# Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%I:%M")" + color = rgba(139, 233, 253, 0.70) + font_size = 120 + font_family = Droid Sans Font, Font Awesome, Roboto, FreeSans, FreeSerif + position = 0, 250 + halign = center + valign = center +} + +# USER +label { + monitor = + text =  Peter Domínguez + color = rgba(248, 248, 242, 0.80) + font_size = 20 + font_family = Droid Sans Font, Font Awesome, Roboto, FreeSans, FreeSerif + position = 0, -130 + halign = center + valign = center +} + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(40, 42, 54, 0.5) + font_color = rgb(68,71,90) + check_color = rgba(255, 184, 108, 0.6) + fail_color = rgba(255, 85, 85, 0.6) + fade_on_empty = false + placeholder_text = 󰌾 Enter Password + fail_text =  Login failed! Attempt(s): $ATTEMPTS + hide_input = false + position = 0, -210 + halign = center + valign = center +} + +# CURRENT SONG +label { + monitor = + text = cmd[update:1000] echo "$(~/.bin/sh/songdetail.sh)" + color = rgba(189, 147, 249, 0.8) + font_size = 18 + font_family = Droid Sans Font, Font Awesome, Roboto, FreeSans, FreeSerif + position = 0, 50 + halign = center + valign = bottom +} diff --git a/dot-files-laptop/.config/hypr/hyprpaper.conf b/dot-files-laptop/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..6e5b801 --- /dev/null +++ b/dot-files-laptop/.config/hypr/hyprpaper.conf @@ -0,0 +1,5 @@ +preload = /home/peter/.wallpapers/castlevania.png +wallpaper = eDP-1,/home/peter/.wallpapers/castlevania.png +splash = false +#fully disable ipc +# ipc = off diff --git a/dot-files-laptop/.config/kitty/diff.conf b/dot-files-laptop/.config/kitty/diff.conf new file mode 100644 index 0000000..5fec447 --- /dev/null +++ b/dot-files-laptop/.config/kitty/diff.conf @@ -0,0 +1,19 @@ +foreground #f8f8f2 +background #282a36 +title_fg #f8f8f2 +title_bg #282a36 +margin_bg #6272a4 +margin_fg #44475a +removed_bg #ff5555 +highlight_removed_bg #ff5555 +removed_margin_bg #ff5555 +added_bg #50fa7b +highlight_added_bg #50fa7b +added_margin_bg #50fa7b +filler_bg #44475a +hunk_margin_bg #44475a +hunk_bg #bd93f9 +search_bg #8be9fd +search_fg #282a36 +select_bg #f1fa8c +select_fg #282a36 diff --git a/dot-files-laptop/.config/kitty/dracula.conf b/dot-files-laptop/.config/kitty/dracula.conf new file mode 100644 index 0000000..9f7a61d --- /dev/null +++ b/dot-files-laptop/.config/kitty/dracula.conf @@ -0,0 +1,67 @@ +# https://draculatheme.com/kitty +# +# Installation instructions: +# +# cp dracula.conf ~/.config/kitty/ +# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf +# +# Then reload kitty for the config to take affect. +# Alternatively copy paste below directly into kitty.conf + +foreground #f8f8f2 +background #282a36 +background_opacity 0.5 +selection_foreground #ffffff +selection_background #44475a + +url_color #8be9fd + +# black +color0 #21222c +color8 #6272a4 + +# red +color1 #ff5555 +color9 #ff6e6e + +# green +color2 #50fa7b +color10 #69ff94 + +# yellow +color3 #f1fa8c +color11 #ffffa5 + +# blue +color4 #bd93f9 +color12 #d6acff + +# magenta +color5 #ff79c6 +color13 #ff92df + +# cyan +color6 #8be9fd +color14 #a4ffff + +# white +color7 #f8f8f2 +color15 #ffffff + +# Cursor colors +cursor #f8f8f2 +cursor_text_color background + +# Tab bar colors +active_tab_foreground #282a36 +active_tab_background #f8f8f2 +inactive_tab_foreground #282a36 +inactive_tab_background #6272a4 + +# Marks +mark1_foreground #282a36 +mark1_background #ff5555 + +# Splits/Windows +active_border_color #f8f8f2 +inactive_border_color #6272a4 diff --git a/dot-files-laptop/.config/kitty/kitty.conf b/dot-files-laptop/.config/kitty/kitty.conf new file mode 100644 index 0000000..da6ed2b --- /dev/null +++ b/dot-files-laptop/.config/kitty/kitty.conf @@ -0,0 +1,126 @@ +# ┌───────────────────────────────────────────────────┐ +# │ ██████╗ ███████╗████████╗███████╗██████╗ ███████╗ │ +# │ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ │ +# │ ██████╔╝█████╗ ██║ █████╗ ██████╔╝███████╗ │ +# │ ██╔═══╝ ██╔══╝ ██║ ██╔══╝ ██╔══██╗╚════██║ │ +# │ ██║ ███████╗ ██║ ███████╗██║ ██║███████║ │ +# │ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ │ +# ├───────────────────────────────────────────────────┤ +# │ only small, mediocre thing: his kitty.conf file │ +# ├───────────────────────────────────────────────────┤ +# │Shorter than a default config, yet twice the autism│ +# │---------------------------------------------------│ +# │ https://gitlab.com/putridpete/dot-files │ +# └───────────────────────────────────────────────────┘ + +# 1. Color Scheme +# ======================== + +include dracula.conf + +# 2. Font +# ======================== + +font_family Droid Sans Font +bold_font auto +italic_font auto +bold_italic_font auto +font_size 12.5 + +# 3. Cursor +# ======================== + +cursor #d67fa2 +cursor_shape underline +cursor_beam_thickness 9.0 +shell_integration no-cursor + +# 4. Mouse +# ======================== + +copy_on_select yes +url_style dotted +url_color #7fd67f +focus_follows_mouse yes + +# 5. Terminal bell +# ======================== + +enable_audio_bell no +bell_on_tab "󰂞 " + +# 6. Window layout +# ======================== + +window_border_width 1.2pt +enabled_layouts tall,fat,horizontal,splits,vertical,grid +active_border_color #6272a4 +inactive_border_color #262733 + +# 7. Tab bar +# ======================== + +tab_bar_edge top +tab_bar_style powerline +tab_bar_background #343850 +active_tab_background #ff79c6 +active_tab_foreground #262733 +inactive_tab_background #44475a +inactive_tab_foreground #f8f8f2 + +# 8. Advanced +# ======================== + +# startup_session ~/.config/kitty/session +allow_remote_control yes +repaint_delay 1 +sync_to_monitor yes + +# 9. OS specific tweaks +# ======================== + +linux_display_server wayland + +# 10. Keyboard shortcuts +# ======================== +map alt+h previous_tab +map alt+l next_tab +map alt+n new_tab +map alt+b set_tab_title +map alt+x close_tab +map ctrl+shift+k scroll_line_up +map ctrl+shift+j scroll_line_down +map alt+enter new_window +map alt+\ close_window +map ctrl+h previous_window +map ctrl+l next_window +map ctrl+[ layout_action decrease_num_full_size_windows +map ctrl+] layout_action increase_num_full_size_windows +map ctrl+/ layout_action mirror toggle +map ctrl+y layout_action mirror true +map ctrl+n layout_action mirror false +map ctrl+alt+t goto_layout tall +map ctrl+alt+f goto_layout fat +map ctrl+alt+h goto_layout horizontal +map ctrl+alt+s goto_layout splits +map ctrl+alt+v goto_layout vertical +map ctrl+alt+g goto_layout grid +map ctrl+alt+. move_tab_forward +map ctrl+alt+, move_tab_backward +map ctrl+f1 launch zsh -c "source ~/.zshrc;nnn -deUxH" +map ctrl+f2 launch newsboat +map ctrl+f3 launch kitty +kitten ssh debianbox +map ctrl+f4 launch kitty +kitten ssh debian11 +map ctrl+f5 launch vim ~/.config/waybar/style.css +map ctrl+f6 launch vim ~/.config/waybar/config +map ctrl+f7 launch vim ~/.config/hypr/hyprland.conf +map ctrl+f8 launch vim ~/.zshrc +map ctrl+f9 launch vim ~/.config/kitty/session +map ctrl+f10 launch vim ~/.config/kitty/kitty.conf +map shift+alt+left resize_window narrower +map shift+alt+right resize_window wider +map shift+alt+up resize_window taller +map shift+alt+down resize_window shorter 3 +map ctrl+alt+] next_window +map ctrl+alt+[ previous_window + diff --git a/dot-files-laptop/.config/kitty/session b/dot-files-laptop/.config/kitty/session new file mode 100644 index 0000000..719abf5 --- /dev/null +++ b/dot-files-laptop/.config/kitty/session @@ -0,0 +1,15 @@ +new_tab  +cd ~ +launch zsh -c "source ~/.zshrc;nnn -deUxH" +new_tab 󱀂 +launch newsboat +new_tab 󱞁 +launch --env EDITOR=vim glow -s dracula /mnt/M2/Nextcloud/Notes +new_tab  +launch ttyper +new_tab 1󰇅 +launch kitty +kitten ssh debianbox +new_tab 2󰇅 +launch kitty +kitten ssh debbie +new_tab 3󰇅 +launch kitty +kitten ssh debian11 diff --git a/dot-files-laptop/.config/sway/config b/dot-files-laptop/.config/sway/config new file mode 100644 index 0000000..295689d --- /dev/null +++ b/dot-files-laptop/.config/sway/config @@ -0,0 +1,361 @@ +# ┌───────────────────────────────────────────────────┐ +# │ ██████╗ ███████╗████████╗███████╗██████╗ ███████╗ │ +# │ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ │ +# │ ██████╔╝█████╗ ██║ █████╗ ██████╔╝███████╗ │ +# │ ██╔═══╝ ██╔══╝ ██║ ██╔══╝ ██╔══██╗╚════██║ │ +# │ ██║ ███████╗ ██║ ███████╗██║ ██║███████║ │ +# │ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ │ +# ├───────────────────────────────────────────────────┤ +# │ depressing and totally messy sway config or │ +# ├───────────────────────────────────────────────────┤ +# │ How windows are the only well │ +# │ managed aspect of my life. │ +# │---------------------------------------------------│ +# │ https://gitlab.com/putridpete/dot-files │ +# └───────────────────────────────────────────────────┘ +# +# Logo key. Use Mod1 for Alt. + +set $mod Mod4 + +# Home row direction keys, like vim + +set $left h +set $down j +set $up k +set $right l + +# Terminal emulator + +set $term kitty + +# Application launcher + +set $menu exec wofi -I +set $nmtui exec foot -a launcher -e nmtui +set $htop exec foot -a launcher -e htop +set $nvtop exec foot -a launcher -e nvtop + +# Output configuration + +output eDP-1 { + #options + mode 1920x1080@60.020Hz scale 1.07777777 + position 0,0 + bg ~/.wallpapers/castlevania.png fill +} + +# Brightness control + +bindsym --locked XF86MonBrightnessUp exec brightnessctl s 10%+ +bindsym --locked XF86MonBrightnessDown exec brightnessctl s 10%- + +# Volume control + +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +10% +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -10% +bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle + + +# Input + +input "type:keyboard" { + #options + xkb_layout us(altgr-intl) + xkb_variant ,nodeadkeys + xkb_options caps:escape +} + +input "type:touchpad" { + dwt enabled + tap enabled + middle_emulation enabled +} + +# Key Bindings | Note: You can get the names of your inputs by running: swaymsg -t get_inputs + + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+q kill + # Screenshot + bindsym Print exec grim -g "$(slurp)" - | swappy -f - + # Toggle control center + bindsym $mod+Shift+n exec swaync-client -t -sw + # Start launcher + #bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'monospace-10' -p 'dmenu'" + bindsym $mod+p exec $menu + bindsym $mod+Alt+n exec $nmtui + bindsym $mod+Alt+j exec $nvtop + bindsym $mod+m exec feishin --enable-features=UseOzonePlatform --ozone-platform=wayland + bindsym $mod+g exec galculator + bindsym $mod+c exec gsimplecal + bindsym $mod+Ctrl+p exec swaylock -f + bindsym $mod+Alt+v for_window [app_id="mpv"] floating enable, move absolute position 1270 710 + + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+r reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' + +# Moving around: + + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with $mod+Ctrl + bindsym $mod+Ctrl+$left move left + bindsym $mod+Ctrl+$down move down + bindsym $mod+Ctrl+$up move up + bindsym $mod+Ctrl+$right move right + # Ditto, with arrow keys + bindsym $mod+Ctrl+Left move left + bindsym $mod+Ctrl+Down move down + bindsym $mod+Ctrl+Up move up + bindsym $mod+Ctrl+Right move right + +# Workspaces: + + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + bindsym $mod+minus workspace number 11 + bindsym $mod+equal workspace number 12 + + # Move focused container to workspace + bindsym $mod+Ctrl+1 move container to workspace number 1 + bindsym $mod+Ctrl+2 move container to workspace number 2 + bindsym $mod+Ctrl+3 move container to workspace number 3 + bindsym $mod+Ctrl+4 move container to workspace number 4 + bindsym $mod+Ctrl+5 move container to workspace number 5 + bindsym $mod+Ctrl+6 move container to workspace number 6 + bindsym $mod+Ctrl+7 move container to workspace number 7 + bindsym $mod+Ctrl+8 move container to workspace number 8 + bindsym $mod+Ctrl+9 move container to workspace number 9 + bindsym $mod+Ctrl+0 move container to workspace number 10 + bindsym $mod+Ctrl+minus move container to workspace number 11 + bindsym $mod+Ctrl+equal move container to workspace number 12 + +# Switch to prev/next workspace on all outputs + bindsym $mod+Alt+Right workspace next + bindsym $mod+Alt+Left workspace prev + bindsym $mod+Alt+l workspace next + bindsym $mod+Alt+h workspace prev + + + +# Layout stuff: + + + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Ctrl+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent + +# Scratchpad: + + # Move the currently focused window to the scratchpad + bindsym $mod+grave move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + + bindsym $mod+tab scratchpad show + +# Resizing containers: + +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# GTK theme + +set $gnome-schema org.gnome.desktop.interface + +# Status Bar: + +bar { + #position top + mode invisible + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + #status_command while date +'%A, %d-%m-%Y %H:%M %j'; do sleep 1; done + # + status_command waybar + workspace_buttons yes + + colors { + background #282A36 + statusline #F8F8F2 + separator #44475A + + focused_workspace #44475A #44475A #F8F8F2 + active_workspace #282A36 #44475A #F8F8F2 + inactive_workspace #282A36 #282A36 #BFBFBF + urgent_workspace #FF5555 #FF5555 #F8F8F2 + binding_mode #FF5555 #FF5555 #F8F8F2 + } +} + +include /etc/sway/config.d/* + +# class border bground text indicator child_border +client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4 +client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A +client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36 +client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555 +client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36 + +client.background #F8F8F2 + +gaps inner 10 +default_border pixel 2 +default_floating_border pixel 2 + +# Workspaces + +workspace 1 output eDP-1 +workspace 2 output eDP-1 +workspace 3 output eDP-1 +workspace 4 output eDP-1 +workspace 5 output eDP-1 +workspace 6 output eDP-1 +workspace 7 output eDP-1 +workspace 8 output eDP-1 +workspace 9 output eDP-1 +workspace 10 output eDP-1 +workspace 11 output eDP-1 +workspace 12 output eDP-1 + +# Auto exec + +### Variables +exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec --no-startup-id dbus-update-activation-environment --all + +### Polkit Agent +exec /usr/lib/polkit-kde-authentication-agent-1 + +### Autotiling +exec autotiling-rs + +### Notification Daemon +exec swaync + +### Idle configuration +exec swayidle -w timeout 1800 'swaylock -f' timeout 1805 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' + +# Cursor +seat seat0 xcursor_theme Dracula-cursors + +# Lock screen after closing lid + +set $lock 'swaylock -f' +bindswitch --reload --locked lid:on exec $lock + +### Dracula theme +exec_always { + gsettings set $gnome-schema gtk-theme 'Dracula' + gsettings set $gnome-schema icon-theme 'Papirus-Dark' + gsettings set $gnome-schema cursor-theme 'Dracula-cursors' +} + +### General +exec nextcloud +exec openrgb --startminimized +exec swaymsg "workspace 1; exec firefox" +exec steam-runtime +exec jellyfinmediaplayer +exec virt-manager +exec kdenlive +exec gimp +exec keepassxc +exec feishin --enable-features=UseOzonePlatform --ozone-platform=wayland +exec heroic --ozone-platform=wayland +exec libreoffice --writer --norestore +exec signal-desktop --ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations +exec swaymsg "workspace 2; exec kitty --session ~/.config/kitty/session --listen-on=unix:@mykitty" + +# Window managment + +focus_on_window_activation urgent +focus_follows_mouse yes +xwayland disable + +assign [app_id="mpv"] output eDP-1 +assign [app_id="org.jellyfin.jellyfinmediaplayer"] workspace number 3 +assign [app_id="gimp"] workspace number 5 +assign [app_id="libreoffice-writer"] workspace number 4 +#assign [class="Signal"] workspace number 7 +for_window [app_id="signal"] floating enable, resize set 1280 px 768 px, move scratchpad +for_window [app_id="nextcloud"] floating enable, resize set 600 px 800 px, move absolute position 1320 40 +for_window [app_id="nm-connection-editor"] floating enable, move absolute position 670 40 +for_window [app_id="gsimplecal"] floating enable, move absolute position 830 40 +for_window [app_id="org.keepassxc.KeePassXC"] floating enable, floating enable, move scratchpad, scratchpad show +for_window [app_id="pavucontrol"] floating enable, move absolute position 1320 40, resize set 600 px 800 px +for_window [app_id="galculator"] floating enable, move scratchpad, scratchpad show +for_window [app_id="org.kde.polkit-kde-authentication-agent-1"] floating enable +#for_window [app_id="org.rncbc.qsynth"] floating enable, resize 1280 ppt 768 ppt +#for_window [app_id="signal"] resize set 633 px, move left, urgent deny +#for_window [class="Signal"] resize set 633 px, move left, urgent deny +for_window [app_id="feishin"] floating enable, resize set 1600 px 900 px, move scratchpad +for_window [class="steam"] floating enable +for_window [title="Steam"] floating disable +for_window [app_id="mpv"] floating enable, resize set 640 px 320 px, move absolute position 1270 710, move scratchpad, scratchpad show +for_window [app_id="xdg-desktop-portal-gtk"] floating enable, resize set 800 px 600px +for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 46 ppt 60 ppt, border pixel 5 diff --git a/dot-files-laptop/.config/swaylock/config b/dot-files-laptop/.config/swaylock/config new file mode 100644 index 0000000..41b0c78 --- /dev/null +++ b/dot-files-laptop/.config/swaylock/config @@ -0,0 +1,29 @@ +image=~/.wallpapers/castlevania2.png +color=282a36 +inside-color=1F202A +line-color=1F202A +ring-color=bd93f9 +text-color=f8f8f2 + +layout-bg-color=1F202A +layout-text-color=f8f8f2 + +inside-clear-color=6272a4 +line-clear-color=1F202A +ring-clear-color=6272a4 +text-clear-color=1F202A + +inside-ver-color=bd93f9 +line-ver-color=1F202A +ring-ver-color=bd93f9 +text-ver-color=1F202A + +inside-wrong-color=ff5555 +line-wrong-color=1F202A +ring-wrong-color=ff5555 +text-wrong-color=1F202A + +bs-hl-color=ff5555 +key-hl-color=50fa7b + +text-caps-lock-color=f8f8f2 diff --git a/dot-files-laptop/.config/waybar/config b/dot-files-laptop/.config/waybar/config new file mode 100644 index 0000000..efc1095 --- /dev/null +++ b/dot-files-laptop/.config/waybar/config @@ -0,0 +1,270 @@ +[{ + "output": "DP-1", + "layer": "top", + "modules-left": ["hyprland/workspaces", "hyprland/mode"], + "modules-center": ["hyprland/window"], + "modules-right": ["mpris"], + + "mpris": { + "format": "{player_icon} {dynamic}", + "format-paused": "{status_icon} {dynamic}", + "tooltip-format": "󰠃 {artist}:  {title} (󰀥 {album})", + "interval": 1, + "album-len": 0, + "player-icons": { + "default": "", + "mpv": "" + }, + "status-icons": { + "paused": "" + }, +// "ignored-players": ["firefox"] + }, + "hyprland/window": { + "format": "{title} ", + "max-length": 60, + "icon": true, + "icon-size": 20, + "all-outputs" : true, + }, + // "hyprland/workspaces": { + // "format": "{icon}", + // "on-click": "activate", + // "format-icons": { + // "1": "󰈹", + // "2": "󰼂", + // "3": "󰷈", + // "4": "󱇤", + // "5": "󱜀", + // "6": "", + // }, + // "sort-by-number": true + //}, + }, { + "output": "eDP-1", + "layer": "top", + "modules-left": ["hyprland/workspaces", "hyprland/mode"], + "modules-center": ["custom/gpu-usage", "cpu", "memory", "temperature", "network#wifi", "network#lan", "custom/vpn", "clock", "custom/weather", "idle_inhibitor", "custom/pacman", "battery", "battery#2", "bluetooth", "backlight", "disk", "disk#disk2", "disk#disk3", "disk#disk4"], + /* "modules-right": ["tray", "pulseaudio",], */ + "modules-right": ["tray", "pulseaudio", "group/group-power"], + + "hyprland/mode": { + "format": " 󰹶 {}" + }, + "hyprland/workspaces": { + "format": "{icon}", + "on-click": "activate", + "format-icons": { + "1": "󰈹", + "2": "", + "3": "󰷈", + "4": "󱇤", + "5": "󰙵", + "6": "󰙵", + "7": "󰙵", + "8": "󰙵", + }, + "sort-by-number": true + }, + "custom/pacman": { + "format": "󰣇 {}", + "tooltip": false, + "interval": 60, + "exec": "checkupdates | wc -l", + "exec-if": "exit 0", + "signal": 8 + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon} {percent}%", + "format-icons": ["", "󰃟", "󰃠"] + }, + "battery": { + "bat": "BAT1", + "weighted-average": true, + "interval": 60, + "full-at": 84, + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""], + "max-length": 25 + }, + "battery#2": { + "bat": "BAT0", + "weighted-average": true, + "interval": 60, + "full-at": 84, + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-icons": ["", "", "", "", ""], + "max-length": 25 + }, + + "group/group-power": { + "orientation": "inherit", + "drawer": { + "transition-duration": 500, + "children-class": "not-power", + "transition-left-to-right": false, + }, + "modules": [ + "custom/power", + "custom/lock", + "custom/reboot", + ] + }, + "custom/lock": { + "format": " 󰍁 ", + "tooltip": false, + "on-click": "hyprlock" + }, + "custom/reboot": { + "format": " 󰜉 ", + "tooltip": false, + "on-click": "shutdown -r now" + }, + "custom/power": { + "format": "  ", + "tooltip": false, + "on-click": "shutdown -h now" + }, + "network#lan": { + "interface": "enp0s31f6", + "format": "", + "interval": 1, + "format-ethernet": "{ifname}", + "format-disconnected": "", + "max-length": 50, + "tooltip-format": "speed:  {bandwidthDownBytes} /  {bandwidthUpBytes}", + "on-click": "kitty --class nmnet --single-instance -e nmtui", + "on-click-right": "nm-connection-editor" + + }, + "network#wifi": { + "interface": "wlp3s0", + "format": "", + "interval": 1, + "format-wifi": "{essid} ({signalStrength}%) ", + "format-disconnected": "󰖪", + "max-length": 50, + "tooltip-format": "speed:  {bandwidthDownBytes} /  {bandwidthUpBytes}", + "on-click": "kitty --class nmnet --single-instance -e nmtui", + "on-click-right": "nm-connection-editor" + + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + "on-click": "toggleRemote" + }, + "tray": { + "icon-size": 20, + "spacing": 6 + }, + "clock": { + "format": "󱑏 {:%I:%M:%OS}", + "interval": 1, + "tooltip-format": " {:%d/%m/%y}", + // "format-alt": "{:%Y-%m-%d}" + "on-click": "gsimplecal" + }, + "cpu": { + "interval": 10, + "format": "{icon} {usage}%", + "format-icons": [""] + }, + "memory": { + "format": "{icon} {percentage}%", + "format-icons": [""] + }, + "temperature": { + // "thermal-zone": 2, + "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input", + // "critical-threshold": 80, + // "format-critical": " {temperatureC}°C", + "format": " {temperatureC}°C", + "tooltip": false, + }, + "disk": { + "interval": 30, + "format": "󰋊 /: {percentage_used}%", + "path": "/" + }, + "disk#disk2": { + "interval": 30, + "format": "󰋊 ~: {percentage_used}%", + "path": "/home/peter" + }, + "disk#disk3": { + "interval": 30, + "format": "󰋊 SSD: {percentage_used}%", + "path": "/mnt/SSD" + }, + "disk#disk4": { + "interval": 30, + "format": "󰋊 Backups: {percentage_used}%", + "path": "/mnt/Backups" + }, + "pulseaudio": { + "format": "{volume}% {icon}", + "format-bluetooth": "{volume}% {icon}  {format_source}", + "format-bluetooth-muted": " {icon}  {format_source}", + "format-muted": "0% {icon}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "󰖀", "󰕾", ""] + }, + "on-click": "pavucontrol" + }, + "bluetooth": { + "format": " {status}", + "format-connected": " connected", + "format-connected-battery": " Connected {device_battery_percentage}%", + "on-click": "blueman-manager", + // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device + "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", + "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", + "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%" + }, +"custom/vpn": { + "format": " VPN", + "tooltip": false, + "exec": "echo '{\"class\": \"connected\"}'", + "exec-if": "test -d /proc/sys/net/ipv4/conf/tun0", + "return-type": "json", + "on-click": "kitty --class nmnet --single-instance -e nmtui", + "interval": 5 +}, + "custom/weather": { + "exec": "python ~/.config/waybar/scripts/weather.py", + "restart-interval": 300, + "format": "{}", + "return-type": "json", + "on-click": "xdg-open https://weather.com/en-IN/weather/today/l/e42bb25a58c2e689ec85e632d82e69d7e46c82defb9ad7a5551b6c3a70fbc282" + // "format-alt": "{alt}", +}, + "custom/gpu-usage": { + "exec": "cat /sys/class/hwmon/hwmon1/device/gpu_busy_percent", + "format": "󰍹 {}%", + "return-type": "", + "interval": 1, + "tooltip": false + }, +}] diff --git a/dot-files-laptop/.config/waybar/scripts/weather.py b/dot-files-laptop/.config/waybar/scripts/weather.py new file mode 100755 index 0000000..41a532d --- /dev/null +++ b/dot-files-laptop/.config/waybar/scripts/weather.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python + +import subprocess +from pyquery import PyQuery # install using `pip install pyquery` +import json + +# weather icons +weather_icons = { + "sunnyDay": "󰖨", + "clearNight": "󰖔", + "cloudyFoggyDay": "󰖕", + "cloudyFoggyNight": "", + "rainyDay": "󰼳", + "rainyNight": "", + "snowyIcyDay": "󰼴", + "snowyIcyNight": "󰖘", + "severe": "󰢘", + "default": "", +} + +# get location_id +# to get your own location_id, go to https://weather.com & search your location. +# once you choose your location, you can see the location_id in the URL(64 chars long hex string) +# like this: https://weather.com/en-IN/weather/today/l/c3e96d6cc4965fc54f88296b54449571c4107c73b9638c16aafc83575b4ddf2e +location_id = "e42bb25a58c2e689ec85e632d82e69d7e46c82defb9ad7a5551b6c3a70fbc282" # TODO +# location_id = "8139363e05edb302e2d8be35101e400084eadcecdfce5507e77d832ac0fa57ae" + +# priv_env_cmd = 'cat $PRIV_ENV_FILE | grep weather_location | cut -d "=" -f 2' +# location_id = subprocess.run( +# priv_env_cmd, shell=True, capture_output=True).stdout.decode('utf8').strip() + +# get html page +url_fetch = "https://weather.com/en-IN/weather/today/l/" + location_id +html_data = PyQuery(url=url_fetch) + +# current temperature +temp = html_data("span[data-testid='TemperatureValue']").eq(0).text() +# print(temp) + +# current status phrase +status = html_data("div[data-testid='wxPhrase']").text() +status = f"{status[:16]}.." if len(status) > 17 else status +# print(status) + +# status code +status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2] +# print(status_code) + +# status icon +icon = ( + weather_icons[status_code] + if status_code in weather_icons + else weather_icons["default"] +) +# print(icon) + +# temperature feels like +temp_feel = html_data( + "div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']" +).text() +temp_feel_text = f"Feels like {temp_feel}C" +# print(temp_feel_text) + +# min-max temperature +temp_min = ( + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") + .eq(0) + .text() +) +temp_max = ( + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") + .eq(1) + .text() +) +temp_min_max = f" {temp_min}\t\t {temp_max}" +# print(temp_min_max) + +# wind speed +wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1] +wind_text = f" {wind_speed}" +# print(wind_text) + +# humidity +humidity = html_data("span[data-testid='PercentageValue']").text() +humidity_text = f" {humidity}" +# print(humidity_text) + +# visibility +visbility = html_data("span[data-testid='VisibilityValue']").text() +visbility_text = f" {visbility}" +# print(visbility_text) + +# air quality index +air_quality_index = html_data("text[data-testid='DonutChartValue']").text() +# print(air_quality_index) + +# hourly rain prediction +prediction = html_data("section[aria-label='Hourly Forecast']")( + "div[data-testid='SegmentPrecipPercentage'] > span" +).text() +prediction = prediction.replace("Chance of Rain", "") +prediction = f"\n\n  (hourly) {prediction}" if len(prediction) > 0 else prediction +# print(prediction) + +# tooltip text +tooltip_text = str.format( + "\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}", + f'{temp}C 🇩🇴', + f"{icon}", + f"{status}", + f"{temp_feel_text}", + f"{temp_min_max}", + f"{wind_text}\t{humidity_text}", + f"{visbility_text}\tAQI {air_quality_index}", + f"{prediction}", +) + +# print waybar module data +out_data = { + "text": f"{icon} {temp}", + "alt": status, + "tooltip": tooltip_text, + "class": status_code, +} +print(json.dumps(out_data)) diff --git a/dot-files-laptop/.config/waybar/style.css b/dot-files-laptop/.config/waybar/style.css new file mode 100644 index 0000000..2a0fa39 --- /dev/null +++ b/dot-files-laptop/.config/waybar/style.css @@ -0,0 +1,348 @@ +* { + border: none; + border-radius: 10; + font-family: "Droid Sans Font, Font Awesome, Roboto, FreeSans, FreeSerif" ; + font-size: 16px; + min-height: 10px; +} + +window#waybar { + background: transparent; +} + +window#waybar.hidden { + opacity: 0.2; +} + +#window { + margin-top: 6px; + padding-left: 10px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: transparent; + background: transparent; +} + +#mode { + color: #ff5555; +} + +#workspaces button { + margin-top: 6px; + margin-left: 8px; + padding-left: 8px; + padding-right: 8px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + background-color: transparent; +} +#workspaces button:hover { + box-shadow: inherit; + background-color: #282a36; +} + +#workspaces button.active { + background-color: #ff79c6; + color: #282a36; +} + + +#network { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#pulseaudio { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #282a36; + background: #50fa7b; +} + +#bluetooth { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#battery { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#battery.charging, #battery.plugged { + color: #f8f8f2; + background-color: #282a36; +} + +#battery.critical:not(.charging) { + background-color: #282a36; + color: #f8f8f2; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +@keyframes blink { + to { + background-color: #282a36; + color: #f8f8f2; + } +} + +#backlight { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} +#clock { + margin-top: 6px; + margin-left: 6px; + padding-left: 8px; + padding-right: 3px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: transparent; + /*background: #1A1826;*/ +} + +#memory { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + margin-bottom: 0px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} +#cpu { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + margin-bottom: 0px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#tray { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + margin-bottom: 0px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #5d4185; +} + +#disk { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#temperature { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#idle_inhibitor { + margin-top: 6px; + margin-left: 1px; + padding-left: 1px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; +} + +#idle_inhibitor.activated { + color: #50fa7b; +} + +#custom-vpn { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} + +#custom-weather { + margin-top: 6px; + margin-left: 3px; + padding-left: 3px; + padding-right: 8px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: transparent; +} + +#custom-weather.severe { + color: #ff5555; +} + +#custom-weather.sunnyDay { + color: #f1fa8c; +} + +#custom-weather.clearNight { + color: #bd93f9; +} + +#custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight { + color: #9599b4; +} + +#custom-weather.rainyDay, #custom-weather.rainyNight { + color: #8be9fd; +} + +#custom-weather.showyIcyDay, #custom-weather.snowyIcyNight { + color: #8be9fd; +} + +#custom-weather.default { + color: #f8f8f2; +} + +#custom-gpu-usage { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #282a36; +} +#mpris { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 6px; + margin-right: 6px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #bd93f9; + background: #282a36; +} +#custom-scratchpad-indicator { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f8f2; + background: #6272a4; +} +#custom-power { + margin-top: 6px; + margin-left: 8px; + padding-left: 7px; + padding-right: 7px; + margin-bottom: 0px; + margin-right: 6px; + border-radius: 10px; + transition: none; + color: #282A36; + background: #FF5555; +} +#custom-lock { + margin-top: 6px; + margin-left: 8px; + padding-left: 7px; + padding-right: 7px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #282A36; + background: #FFB86C; +} +#custom-reboot { + margin-top: 6px; + margin-left: 8px; + padding-left: 7px; + padding-right: 7px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #282A36; + background: #8BE9FD; +} +#custom-pacman { + margin-top: 6px; + margin-left: 8px; + padding-left: 7px; + padding-right: 7px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #f8f2f2; + background: #282a36; +} diff --git a/dot-files-laptop/.config/ytfzf/conf.sh b/dot-files-laptop/.config/ytfzf/conf.sh new file mode 100755 index 0000000..6de9d26 --- /dev/null +++ b/dot-files-laptop/.config/ytfzf/conf.sh @@ -0,0 +1,14 @@ +#!/bin/bash +YTFZF_ENABLE_FZF_DEFAULT_OPTS=1 +FZF_DEFAULT_OPTS="--color=border:magenta,info:green,header:green,info:yellow,hl:blue,label:magenta" +show_thumbnails=1 +load_thumbnail_viewer kitty +thumbnail_video_info_text () { + printf "\n${c_cyan}%s" "$title" + printf "\n " + printf "\n${c_blue}Channel ${c_green}%s" "$channel" + printf "\n${c_blue}Duration ${c_yellow}%s" "$duration" + printf "\n${c_blue}Views ${c_magenta}%s" "$views" + printf "\n${c_blue}Date ${c_cyan}%s" "$date" + printf "\n " +} diff --git a/dot-files-laptop/.config/ytfzf/extensions/comments b/dot-files-laptop/.config/ytfzf/extensions/comments new file mode 100644 index 0000000..e2f9155 --- /dev/null +++ b/dot-files-laptop/.config/ytfzf/extensions/comments @@ -0,0 +1,30 @@ +#!/bin/sh + +get_search_from_EXT_comments (){ + _search="${selected_url}" +} + +set +f +instances=$(printf "%s\n" "${YTFZF_TEMP_DIR}"/*) +set -f + +instance_count=$(echo "$instances" | wc -l) + +if [ "$instance_count" -gt 1 ]; then + printf "%s\n" "More than 1 ytfzf instance is running, please select one" + echo "$instances" | sed 's/.*\///' | nl + read -r num + + instance="$(echo "$instances" | sed -n "${num}p")" +else + instance="$instances" +fi + +read -r selected_url < "${instance}/ids" + +[ -z "$selected_url" ] && { + printf "%s\n" "This instance is not playing a video" +} + +scrape="comments" +search_source="EXT_comments" diff --git a/dot-files-laptop/.config/ytfzf/subscriptions b/dot-files-laptop/.config/ytfzf/subscriptions new file mode 100644 index 0000000..99fef6c --- /dev/null +++ b/dot-files-laptop/.config/ytfzf/subscriptions @@ -0,0 +1,35 @@ +https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA # Mental Outlaw +https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg # DT +https://www.youtube.com/channel/UCbQ4fbi0fy3d6Hb7q2FIATw # itsagundam +https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA # Brodie +https://www.youtube.com/channel/UC5KDiSAFxrDWhmysBcNqtMA # Eric Murphy +https://www.youtube.com/channel/UCjSEJkpGbcZhvo0lr-44X_w # TechHut +https://www.youtube.com/channel/UCiP_FwGyJQ_6P8k5ON5mncQ # Matt McMuscles +https://www.youtube.com/channel/UC3ltptWa0xfrDweghW94Acg # Karl Jobst +https://www.youtube.com/channel/UCdJdEguB1F1CiYe7OEi3SBg # jontron +https://www.youtube.com/channel/UChIs72whgZI9w6d6FhwGGHA # Gamers Nexus +https://www.youtube.com/channel/UC0M0rxSz3IF0CsSour1iWmw # Cinemassacre +https://www.youtube.com/channel/UCmpaIXvID-FsN5xsUNolYAw # GTV Japan +https://www.youtube.com/channel/UCNeU-ameY0dcKiltExqvhIw # GOG +https://www.youtube.com/channel/UCGIY_O-8vW4rfX98KlMkvRg # Nintendo +https://www.youtube.com/channel/UCjBp_7RuDBUYbd1LegWEJ8g # Xbox +https://www.youtube.com/channel/UCWfXR0-F7MI-TbqikgEdJcQ # Sega +https://www.youtube.com/channel/UCvZHe-SP3xC7DdOk4Ri8QBw # Bethesda +https://www.youtube.com/channel/UC_ntXHv-XdKCD7CPynVvnQw # Bandai +https://www.youtube.com/channel/UCW7h-1mymnJ96akzjrmiIgA # Capcom +https://www.youtube.com/channel/UCnSp56qlKGr2lrPqyxtWGhw # 3D Realms +https://www.youtube.com/channel/UCFctpiB_Hnlk3ejWfHqSm6Q # Pokémon +https://www.youtube.com/channel/UCLx053rWZxCiYWsBETgdKrQ # LGR +https://www.youtube.com/channel/UChbPPu6LmY3VJzW4XTgvwgA # OhNoItsAlexx +https://www.youtube.com/channel/UCSE_JyJeiJQvg3RCnSD272Q # SmugAlana +https://www.youtube.com/channel/UCCAfRoTJrKPbSrh_Eg3i4vg # TomDark +https://www.youtube.com/channel/UCXoKg7Uvy4E7G3oW-Id5k1A # Acheeto +https://www.youtube.com/channel/UCtMVHI3AJD4Qk4hcbZnI9ZQ # SomeOrdinaryGamers +https://www.youtube.com/channel/UC3jSNmKWYA04R47fDcc1ImA # InfinitelyGalactic +https://www.youtube.com/channel/UC1s1OsWNYDFgbROPV-q5arg # Michael Horn +https://www.youtube.com/channel/UCl2mFZoRqjw_ELax4Yisf6w # Louis Rossmann +https://www.youtube.com/channel/UCSuHzQ3GrHSzoBbwrIq3LLA # Naomi Brockwell TV +https://www.youtube.com/channel/UCsVIQ2ipmCbua6s8ThFLo5A # Shrouded Hand +https://www.youtube.com/channel/UC3yaWWA9FF9OBog5U9ml68A # SavvyNik +https://www.youtube.com/channel/UCCzK4LJkDl73MQMbr8Lrcww # joeybtoonz +https://www.youtube.com/channel/UCQeRaTukNYft1_6AZPACnog # Asmongold TV diff --git a/dot-files-laptop/.wallpapers/castlevania.png b/dot-files-laptop/.wallpapers/castlevania.png new file mode 100644 index 0000000..5834b72 Binary files /dev/null and b/dot-files-laptop/.wallpapers/castlevania.png differ diff --git a/dot-files-laptop/.wallpapers/castlevania2.png b/dot-files-laptop/.wallpapers/castlevania2.png new file mode 100755 index 0000000..099537b Binary files /dev/null and b/dot-files-laptop/.wallpapers/castlevania2.png differ diff --git a/dot-files-laptop/.zshrc b/dot-files-laptop/.zshrc new file mode 100644 index 0000000..d498f9c --- /dev/null +++ b/dot-files-laptop/.zshrc @@ -0,0 +1,300 @@ +# ┌───────────────────────────────────────────────────┐ +# │ ██████╗ ███████╗████████╗███████╗██████╗ ███████╗ │ +# │ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔══██╗██╔════╝ │ +# │ ██████╔╝█████╗ ██║ █████╗ ██████╔╝███████╗ │ +# │ ██╔═══╝ ██╔══╝ ██║ ██╔══╝ ██╔══██╗╚════██║ │ +# │ ██║ ███████╗ ██║ ███████╗██║ ██║███████║ │ +# │ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ │ +# ├───────────────────────────────────────────────────┤ +# │ no good, total trash and possibly broken ~/.zshrc │ +# ├───────────────────────────────────────────────────┤ +# │ Anime traps and dank memes, one command away! │ +# │---------------------------------------------------│ +# │ https://gitlab.com/putridpete/dot-files │ +# └───────────────────────────────────────────────────┘ + +# 1. Autoload + +autoload -Uz compinit history-substring-search-up history-substring-search-down bracketed-paste-url-magic && compinit +zstyle ':completion:*' menu select # Auto completion +zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' +zle -N bracketed-paste bracketed-paste-url-magic # autoquote urls + +# 2. Auto correction + +setopt CORRECT + +# 3. History search + +zle -N history-substring-search-up +zle -N history-substring-search-down + +# 4. History settings + +export HISTFILE="$HOME/.zsh_history" +export HISTSIZE=10000 +export SAVEHIST=10000 +setopt EXTENDED_HISTORY +setopt INC_APPEND_HISTORY + +HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND=true + +# 5. Git repository + +alias config='/usr/bin/git --git-dir=$HOME/dot-files/.git/ --work-tree=$HOME' + +# 6. Starship + +eval "$(starship init zsh)" + +# 7. nnn variables + +BLK="04" CHR="04" DIR="04" EXE="00" REG="00" HARDLINK="00" SYMLINK="06" MISSING="00" ORPHAN="01" FIFO="0F" SOCK="0F" OTHER="02" +export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$OTHER" NNN_COLORS="2345" +export NNN_TRASH=1 +export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$" +export NNN_PLUG='p:preview-tui;c:x2sel' +export SPLIT='h' +export NNN_FIFO='/tmp/nnn.fifo' +export NNN_BMS='d:~/Downloads/;u:~/;n:~/Nextcloud;w:~/Nextcloud/Notes;c:~/.config;r:/run/media;a:~/Downloads/AUR;!:~/.bin/sh;t:~/.local/share/Trash/files;y:/media/NFS' +export VISUAL='vim' + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +# 8. Aliases +# 8.1 zsh aliases + +alias ls='nnn -deUxH' +alias aurdir='cd ~/Downloads/AUR' +alias gitdir='cd ~/Downloads/git' +alias notesdir='cd ~/Nextcloud/Notes' +alias mv='mv -i' +alias cp='cp -i' +alias rm='rm -i' +alias ..='cd ..' +alias ...='cd ../..' +alias visudo='sudo EDITOR=vim visudo' +export EDITOR=vim + +# 8.2 Sway aliases + +alias lock='~/.bin/sh/swaylock.sh' +alias logoff='swaymsg exit' +alias gettree='swaymsg -pt get_tree' +alias getoutputs='hyprctl monitors all' + +# 8.3 System commands aliases + +alias amdman='echo "manual" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level' +alias amdhigh='echo "high" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level' +alias gpumode='cat /sys/class/drm/card0/device/pp_power_profile_mode' +alias systemcheck='systemctl --failed && journalctl -p 3 -b;' +alias mountkf='sudo cryptsetup open /dev/disk/by-uuid/dd18906b-821e-46cc-9580-60b70ce33737 peter && sudo mount --mkdir -t ext4 /dev/mapper/peter /run/media/peter' +alias umountkf='sudo umount /run/media/peter && sudo cryptsetup close peter' +alias findfat='find ~ -xdev -type f -size +100M' + +# 8.4 Kitty aliases + +alias icat="kitty +kitten icat" +alias tssh="kitty +kitten ssh" + +# 8.5 Misc Programs aliases + +alias send='ffsend' +alias grim1='grim -t png -l 0 -o DP-1' +alias grim2='grim -t png -l 0 -o DP-2' +alias grimc='slurp | grim -g - - | wl-copy' + +# 8.5 git aliases + +alias gitclean='git clean -dxfi' +alias homesync='~/.bin/sh/synchomepage.sh' + +# 8.6 Pacman & Auracle aliases + +alias get='sudo pacman -S' +alias yap='pacman -Qq | fzf --color="border:magenta,info:green,header:green,info:yellow,hl:blue,label:magenta" --multi --preview "pacman -Qi {1}" --preview-window=up | xargs -ro sudo pacman -Rns' +alias yeet='sudo pacman -Rns' +alias kick='sudo pacman -R' +alias search='pacman -Ss' +alias spot='pacman -Qs' +alias searchaur='auracle search' +alias getaur='auracle clone' +alias listaur='pacman -Qm' +alias buildorder='auracle buildorder' +alias updateaur='auracle update && cd ~/Downloads/AUR' +alias check='pacman -Si' +alias checkaur='auracle info' +alias clear='clear && fastfetch' +alias pkgstatus='comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)' + +# 8.7 Script Aliases + +alias checkupdates='~/.bin/sh/checkupdates.sh' +alias update='~/.bin/sh/update.sh' +alias reboot='~/.bin/sh/reboot.sh' +alias shutdown='~/.bin/sh/shutdown.sh' +alias pkgb='~/.bin/sh/pkgb.sh' +alias build='~/.bin/sh/build.sh' +alias buildgames='~/.bin/sh/buildgames.sh' +alias deloldbins='rm -rf ~/.bin/*/old/*' +alias orphans='~/.bin/sh/orphans.sh' +alias bday='/home/peter/.bin/sh/bd.sh' +alias kap='~/.bin/sh/kap.sh' +alias lap='~/.bin/sh/lap.sh' +alias aurfzf='~/.bin/sh/aur.sh' + +# 8.8 Meme aliases + +alias get-waifus='mpv "https://www.youtube.com/watch?v=sr078vS8l_4"' +alias bullyme='mpv "https://www.youtube.com/watch?v=9jrO58mg-Qg"' +alias archbtw='fastfetch' + +# 8.9 Newsboat aliases + +alias news='~/.bin/sh/news.sh' + + +# 8.10 Offline Arch Wiki + +alias archwiki='lynx https://wiki.archlinux.org/' +alias offlinewiki='lynx /usr/share/doc/arch-wiki/html/en' + +# 9. Android tools +export PATH=${PATH}:~/platform-tools + +# 10. Arch BTW + +fastfetch + +# 11. Dracula TTY theme + +if [ "$TERM" = "linux" ]; then + printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg' + printf %b '\e[37m' '\e[8]' # set default foreground to color 7 'dracula-fg' + printf %b '\e]P0282a36' # redefine 'black' as 'dracula-bg' + printf %b '\e]P86272a4' # redefine 'bright-black' as 'dracula-comment' + printf %b '\e]P1ff5555' # redefine 'red' as 'dracula-red' + printf %b '\e]P9ff7777' # redefine 'bright-red' as '#ff7777' + printf %b '\e]P250fa7b' # redefine 'green' as 'dracula-green' + printf %b '\e]PA70fa9b' # redefine 'bright-green' as '#70fa9b' + printf %b '\e]P3f1fa8c' # redefine 'brown' as 'dracula-yellow' + printf %b '\e]PBffb86c' # redefine 'bright-brown' as 'dracula-orange' + printf %b '\e]P4bd93f9' # redefine 'blue' as 'dracula-purple' + printf %b '\e]PCcfa9ff' # redefine 'bright-blue' as '#cfa9ff' + printf %b '\e]P5ff79c6' # redefine 'magenta' as 'dracula-pink' + printf %b '\e]PDff88e8' # redefine 'bright-magenta' as '#ff88e8' + printf %b '\e]P68be9fd' # redefine 'cyan' as 'dracula-cyan' + printf %b '\e]PE97e2ff' # redefine 'bright-cyan' as '#97e2ff' + printf %b '\e]P7f8f8f2' # redefine 'white' as 'dracula-fg' + printf %b '\e]PFffffff' # redefine 'bright-white' as '#ffffff' + clear +fi + +# 12. FZF dracula theme + +export FZF_DEFAULT_OPTS='--color=fg:#f8f8f2,bg:#282a36,hl:#bd93f9 --color=fg+:#f8f8f2,bg+:#44475a,hl+:#bd93f9 --color=info:#ffb86c,prompt:#50fa7b,pointer:#ff79c6 --color=marker:#ff79c6,spinner:#ffb86c,header:#6272a4' + +# 13. Dracula Theme for zsh-syntax-highlighting + +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main cursor) +typeset -gA ZSH_HIGHLIGHT_STYLES + +## 13.1 General +### 13.2 Diffs +### 13.3 Markup +## 13.4 Classes + +## 13.5 Comments + +ZSH_HIGHLIGHT_STYLES[comment]='fg=#6272A4' + +## 13.6 Constants +## 13.7 Entitites + +## 13.8 Functions/methods + +ZSH_HIGHLIGHT_STYLES[alias]='fg=#50FA7B' +ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#50FA7B' +ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#50FA7B' +ZSH_HIGHLIGHT_STYLES[function]='fg=#50FA7B' +ZSH_HIGHLIGHT_STYLES[command]='fg=#50FA7B' +ZSH_HIGHLIGHT_STYLES[precommand]='fg=#50FA7B,italic' +ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#FFB86C,italic' +ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#FFB86C' +ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#FFB86C' +ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#BD93F9' +## 13.9 Keywords + +## 13.10 Built ins + +ZSH_HIGHLIGHT_STYLES[builtin]='fg=#8BE9FD' +ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#8BE9FD' +ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#8BE9FD' + +## 13.11 Punctuation + +ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#FF79C6' +ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-unquoted]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]='fg=#FF79C6' +ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=#FF79C6' +ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=#FF79C6' + +## 13.12 Serializable / Configuration Languages +## 13.14 Storage + +## 13.15 Strings + +ZSH_HIGHLIGHT_STYLES[command-substitution-quoted]='fg=#F1FA8C' +ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-quoted]='fg=#F1FA8C' +ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#F1FA8C' +ZSH_HIGHLIGHT_STYLES[single-quoted-argument-unclosed]='fg=#FF5555' +ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#F1FA8C' +ZSH_HIGHLIGHT_STYLES[double-quoted-argument-unclosed]='fg=#FF5555' +ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=#F1FA8C' + +## 13.16 Variables + +ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument-unclosed]='fg=#FF5555' +ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[assign]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#F8F8F2' + +## 13.17 No category relevant in spec + +ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#FF5555' +ZSH_HIGHLIGHT_STYLES[path]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#FF79C6' +ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#FF79C6' +ZSH_HIGHLIGHT_STYLES[globbing]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#BD93F9' +#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?' +#ZSH_HIGHLIGHT_STYLES[command-substitution-unquoted]='fg=?' +#ZSH_HIGHLIGHT_STYLES[process-substitution]='fg=?' +#ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]='fg=?' +ZSH_HIGHLIGHT_STYLES[back-quoted-argument-unclosed]='fg=#FF5555' +ZSH_HIGHLIGHT_STYLES[redirection]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[arg0]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[default]='fg=#F8F8F2' +ZSH_HIGHLIGHT_STYLES[cursor]='standout' + +# 14. Source plugins + +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh + +# 15. Keybinds + +bindkey -v '^?' backward-delete-char # Vi keybindings like God intended +bindkey "\e[3~" delete-char +bindkey '^[[A' history-substring-search-up +bindkey '^[[B' history-substring-search-down +bindkey -M vicmd 'k' history-substring-search-up +bindkey -M vicmd 'j' history-substring-search-down