update to .dot-files-laptop

This commit is contained in:
Simon Belmont 2025-04-16 21:03:05 -04:00
parent ae9a611ea6
commit 3bae03e47a
46 changed files with 3332 additions and 0 deletions

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,2 @@
#!/bin/sh
stat / | grep "Birth" | sed 's/Birth: //g' | cut -b 2-11

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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;
}

View file

@ -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
}

View file

@ -0,0 +1,2 @@
#!/bin/sh
kitty --session ~/.config/kitty/session --listen-on=unix:@mykitty

View file

@ -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;
}

View file

@ -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

View file

@ -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

View file

@ -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;
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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;
}

View file

@ -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
}

View file

@ -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;
}

View file

@ -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
}

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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;
}

View file

@ -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\"}"

View file

@ -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

View file

@ -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
}

View file

@ -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

View file

@ -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 "<span>$(date +"%I:%M")</span>"
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 = <span foreground="##F8F8F2">󰌾 <i>Enter Password</i></span>
fail_text =  <i>Login failed! Attempt(s): <b>$ATTEMPTS</b></i>
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
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,270 @@
[{
"output": "DP-1",
"layer": "top",
"modules-left": ["hyprland/workspaces", "hyprland/mode"],
"modules-center": ["hyprland/window"],
"modules-right": ["mpris"],
"mpris": {
"format": "<span color=\"#bd93f9\">{player_icon}</span> <span color=\"#f8f8f2\">{dynamic}</span>",
"format-paused": "<span color=\"#bd93f9\">{status_icon}</span> <span color=\"#f8f8f2\">{dynamic}</span>",
"tooltip-format": "󰠃 {artist}:  {title} (󰀥 {album})",
"interval": 1,
"album-len": 0,
"player-icons": {
"default": "",
"mpv": ""
},
"status-icons": {
"paused": ""
},
// "ignored-players": ["firefox"]
},
"hyprland/window": {
"format": "<span color=\"#f8f8f2\">{title}</span> ",
"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": "<span color=\"#8BE9FD\">󰣇 </span>{}",
"tooltip": false,
"interval": 60,
"exec": "checkupdates | wc -l",
"exec-if": "exit 0",
"signal": 8
},
"backlight": {
"device": "intel_backlight",
"format": "<span color=\"#f8f8f2\">{icon}</span> {percent}%",
"format-icons": ["", "󰃟", "󰃠"]
},
"battery": {
"bat": "BAT1",
"weighted-average": true,
"interval": 60,
"full-at": 84,
"states": {
"warning": 30,
"critical": 15
},
"format": "<span color=\"#bd93f9\">{icon}</span> {capacity}%",
"format-icons": ["", "", "", "", ""],
"max-length": 25
},
"battery#2": {
"bat": "BAT0",
"weighted-average": true,
"interval": 60,
"full-at": 84,
"states": {
"warning": 30,
"critical": 15
},
"format": "<span color=\"#bd93f9\">{icon}</span> {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": "<span color=\"#50fa7b\"> </span>{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": "<span color=\"#50fa7b\"> </span>{essid} ({signalStrength}%) ",
"format-disconnected": "<span color=\"#F2F8F8\">󰖪</span>",
"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": "<span color=\"#8694c0\"></span>",
"deactivated": "<span color=\"#8694c0\"></span>"
},
"on-click": "toggleRemote"
},
"tray": {
"icon-size": 20,
"spacing": 6
},
"clock": {
"format": "<span color=\"#FF92DF\">󱑏</span> {:%I:%M:%OS}",
"interval": 1,
"tooltip-format": "<big> {:%d/%m/%y}</big>",
// "format-alt": "{:%Y-%m-%d}"
"on-click": "gsimplecal"
},
"cpu": {
"interval": 10,
"format": "<span color=\"#cf7cac\">{icon}</span> {usage}%",
"format-icons": [""]
},
"memory": {
"format": "<span color=\"#8BE9FD\">{icon}</span> {percentage}%",
"format-icons": [""]
},
"temperature": {
// "thermal-zone": 2,
"hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
// "critical-threshold": 80,
// "format-critical": "<span color=\"#ff5555\"></span> {temperatureC}°C",
"format": "<span color=\"#f1fa8c\"></span> {temperatureC}°C",
"tooltip": false,
},
"disk": {
"interval": 30,
"format": "<span color=\"#8694c0\"></span><span color=\"#ffb86c\">󰋊 </span>/: {percentage_used}%",
"path": "/"
},
"disk#disk2": {
"interval": 30,
"format": "<span color=\"#ba89ff\">󰋊 </span>~: {percentage_used}%",
"path": "/home/peter"
},
"disk#disk3": {
"interval": 30,
"format": "<span color=\"#ff79c6\">󰋊 </span>SSD: {percentage_used}%",
"path": "/mnt/SSD"
},
"disk#disk4": {
"interval": 30,
"format": "<span color=\"#3ac55d\">󰋊 </span>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": "<span color=\"#6272a4\"></span> {status}",
"format-connected": "<span color=\"#6272a4\"></span> connected",
"format-connected-battery": "<span color=\"#6272a4\"></span> 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": "<span color=\"#ff5555\"></span> 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": "<span color=\"#8694c0\"></span><span color=\"#bd93f9\">󰍹 </span>{}%",
"return-type": "",
"interval": 1,
"tooltip": false
},
}]

View file

@ -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'<span size="xx-large">{temp}C 🇩🇴</span>',
f"<big>{icon}</big>",
f"<big>{status}</big>",
f"<small>{temp_feel_text}</small>",
f"<big>{temp_min_max}</big>",
f"{wind_text}\t{humidity_text}",
f"{visbility_text}\tAQI {air_quality_index}",
f"<i>{prediction}</i>",
)
# print waybar module data
out_data = {
"text": f"{icon} {temp}",
"alt": status,
"tooltip": tooltip_text,
"class": status_code,
}
print(json.dumps(out_data))

View file

@ -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;
}

View file

@ -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 "
}

View file

@ -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"

View file

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

300
.dot-files-laptop/.zshrc Normal file
View file

@ -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