Moved all .config-folders into the config folder for easier stow
This commit is contained in:
139
config/.scripts/i3lock.py
Executable file
139
config/.scripts/i3lock.py
Executable file
@@ -0,0 +1,139 @@
|
||||
import time
|
||||
import os
|
||||
|
||||
from PIL import Image
|
||||
|
||||
|
||||
def screenshot():
|
||||
ss_time = time.time()
|
||||
os.system('scrot /tmp/i3lock.png')
|
||||
print('Screenshot: {}'.format(time.time() - ss_time))
|
||||
|
||||
|
||||
def pixelate():
|
||||
pxl_time = time.time()
|
||||
pixelSize = 12
|
||||
|
||||
image = Image.open('/tmp/i3lock.png')
|
||||
|
||||
image_x, image_y = image.size
|
||||
|
||||
image = image.resize((int(image_x / pixelSize), int(image_y / pixelSize)), Image.NEAREST)
|
||||
image_x, image_y = image.size
|
||||
|
||||
image = image.resize((image_x * pixelSize, image_y * pixelSize),
|
||||
Image.NEAREST)
|
||||
|
||||
image.save('/tmp/i3lock.png')
|
||||
print('pixelate: {}'.format(time.time() - pxl_time))
|
||||
|
||||
|
||||
def getResolution():
|
||||
image = Image.open('/tmp/i3lock.png')
|
||||
return image.size
|
||||
|
||||
|
||||
def lock_config():
|
||||
'Generation of a customized lock command'
|
||||
lock_time = time.time()
|
||||
# constants
|
||||
lock_core = 'i3lock'
|
||||
default_fontsize = 32
|
||||
# resolution
|
||||
res = getResolution()
|
||||
# res_x = int(res[0])
|
||||
res_y = int(res[1])
|
||||
|
||||
# alignments
|
||||
left_margin = int(res[0] / 25)
|
||||
|
||||
# clock pos
|
||||
clock_x = left_margin
|
||||
clock_y = int(res_y * (83 / 100))
|
||||
|
||||
date_x = left_margin
|
||||
date_y = clock_y + default_fontsize
|
||||
|
||||
# clock config
|
||||
lock_clock_args = '-k'
|
||||
lock_clock_align = '--time-align 1 --date-align 1 --layout-align 1'
|
||||
clock = "{} {}".format(lock_clock_args, lock_clock_align)
|
||||
# time
|
||||
lock_time_pos = '--timepos="{}:{}"'.format(clock_x, clock_y)
|
||||
lock_time_size = '--timesize={}'.format(default_fontsize * 2)
|
||||
l_time = "{} {}".format(lock_time_pos, lock_time_size)
|
||||
# date
|
||||
lock_date_pos = '--datepos="{}:{}"'.format(date_x, date_y)
|
||||
lock_date_size = '--datesize={}'.format(default_fontsize)
|
||||
date = "{} {}".format(lock_date_pos, lock_date_size)
|
||||
# done
|
||||
datetime = "{} {}".format(l_time, date)
|
||||
|
||||
# Indicator config
|
||||
# Indicator inner
|
||||
# Color of the circle while resting/typing | Color: transparenet
|
||||
lock_rest_color = '--insidecolor 00000000 '
|
||||
# Color of the circle while "VERIFYING..." | Color: transparent
|
||||
lock_ver_color = '--insidevercolor 00000000 '
|
||||
# Color of the circle if wrong | Color: transparent
|
||||
lock_wrong_color = '--insidewrongcolor 00000000 '
|
||||
indicator_inner = "{} {} {}".format(lock_rest_color, lock_wrong_color,
|
||||
lock_ver_color)
|
||||
|
||||
# indicator_outer_ring
|
||||
# Default Color of the ring | Color: torquoise
|
||||
lock_ring = '--ringcolor 00CED1FF'
|
||||
# Color of ring when wrong pw | Color: red
|
||||
lock_ring_w = '--ringwrongcolor D10000FF'
|
||||
# Color of ring when verifying | color dark-torquoise
|
||||
lock_ring_v = '--ringvercolor 25B6B8FF'
|
||||
# Color on Keypresses | Color: green
|
||||
lock_press = '--keyhlcolor 00D103FF'
|
||||
# Color on Deletion | Color: orange
|
||||
lock_del = '--bshlcolor D13400FF'
|
||||
# Color of seperator | Color: dark-blue
|
||||
lock_sep_color = '--separatorcolor 0000D1FF'
|
||||
|
||||
indicator_outer_ring = "{} {} {} {} {} {}".format(lock_ring, lock_ring_w,
|
||||
lock_ring_v, lock_press,
|
||||
lock_del, lock_sep_color)
|
||||
# done
|
||||
indicator = "{} {}".format(indicator_inner, indicator_outer_ring)
|
||||
|
||||
# background
|
||||
lock_pic = '-i /tmp/i3lock.png'
|
||||
|
||||
print('pixelate: {}'.format(time.time() - lock_time))
|
||||
return "{} {} {} {} {}".format(lock_core, clock, datetime, indicator,
|
||||
lock_pic)
|
||||
|
||||
|
||||
def lock():
|
||||
'Locks the System'
|
||||
command = lock_config()
|
||||
|
||||
os.system(command)
|
||||
|
||||
|
||||
def log(start_time):
|
||||
write_mode = ''
|
||||
home = os.path.expanduser('~')
|
||||
log_file_path = "{}/{}".format(home, ".scripts/lock.log")
|
||||
|
||||
if (os.path.isfile(log_file_path)):
|
||||
write_mode = 'a'
|
||||
else:
|
||||
write_mode = 'w'
|
||||
|
||||
program_duration = time.time() - start_time
|
||||
with open(log_file_path, write_mode) as f:
|
||||
f.write("[{}] {} seconds runtime.\n".format(time.asctime(), program_duration))
|
||||
f.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
start_time = time.time()
|
||||
screenshot()
|
||||
pixelate()
|
||||
lock()
|
||||
log(start_time)
|
||||
136
config/.scripts/pipes.sh
Executable file
136
config/.scripts/pipes.sh
Executable file
@@ -0,0 +1,136 @@
|
||||
#!/usr/bin/env bash
|
||||
# pipes.sh: Animated pipes terminal screensaver.
|
||||
#
|
||||
# This modified version is maintained at:
|
||||
#
|
||||
# https://github.com/pipeseroni/pipes.sh
|
||||
|
||||
VERSION=1.2.0
|
||||
|
||||
M=32768
|
||||
p=1
|
||||
f=75 s=13 r=2000 t=0
|
||||
w=80 h=24
|
||||
|
||||
resize() {
|
||||
w=$(tput cols) h=$(tput lines)
|
||||
}
|
||||
|
||||
# ab -> idx = a*4 + b
|
||||
# 0: up, 1: right, 2: down, 3: left
|
||||
# 00 means going up , then going up -> ┃
|
||||
# 12 means going right, then going down -> ┓
|
||||
sets=(
|
||||
"┃┏ ┓┛━┓ ┗┃┛┗ ┏━"
|
||||
"│╭ ╮╯─╮ ╰│╯╰ ╭─"
|
||||
"│┌ ┐┘─┐ └│┘└ ┌─"
|
||||
"║╔ ╗╝═╗ ╚║╝╚ ╔═"
|
||||
"|+ ++-+ +|++ +-"
|
||||
"|/ \/-\ \|/\ /-"
|
||||
".. .... .... .."
|
||||
".o oo.o o.oo o."
|
||||
"-\ /\|/ /-\/ \|" # railway
|
||||
"╿┍ ┑┚╼┒ ┕╽┙┖ ┎╾" # knobby pipe
|
||||
)
|
||||
v=()
|
||||
RNDSTART=0
|
||||
BOLD=1
|
||||
NOCOLOR=0
|
||||
|
||||
OPTIND=1
|
||||
while getopts "p:t:f:s:r:RBChv" arg; do
|
||||
case $arg in
|
||||
p) ((p=(OPTARG>0)?OPTARG:p));;
|
||||
t)
|
||||
if [[ "$OPTARG" = c???????????????? ]]; then
|
||||
V+=(${#sets[@]})
|
||||
sets+=("${OPTARG:1}")
|
||||
else
|
||||
((OPTARG>=0 && OPTARG<${#sets[@]})) && V+=($OPTARG)
|
||||
fi
|
||||
;;
|
||||
f) ((f=(OPTARG>19 && OPTARG<101)?OPTARG:f));;
|
||||
s) ((s=(OPTARG>4 && OPTARG<16 )?OPTARG:s));;
|
||||
r) ((r=(OPTARG>=0)?OPTARG:r));;
|
||||
R) RNDSTART=1;;
|
||||
B) BOLD=0;;
|
||||
C) NOCOLOR=1;;
|
||||
h) echo -e "Usage: $(basename $0) [OPTION]..."
|
||||
echo -e "Animated pipes terminal screensaver.\n"
|
||||
echo -e " -p [1-]\tnumber of pipes (D=1)."
|
||||
echo -e " -t [0-$((${#sets[@]} - 1))]\ttype of pipes, can be used more than once (D=0)."
|
||||
echo -e " -t c[16 chars]\tcustom type of pipes."
|
||||
echo -e " -f [20-100]\tframerate (D=75)."
|
||||
echo -e " -s [5-15]\tprobability of a straight fitting (D=13)."
|
||||
echo -e " -r LIMIT\treset after x characters, 0 if no limit (D=2000)."
|
||||
echo -e " -R \t\trandom starting point."
|
||||
echo -e " -B \t\tno bold effect."
|
||||
echo -e " -C \t\tno color."
|
||||
echo -e " -h\t\thelp (this screen)."
|
||||
echo -e " -v\t\tprint version number.\n"
|
||||
exit 0;;
|
||||
v) echo "$(basename -- "$0") $VERSION"
|
||||
exit 0
|
||||
esac
|
||||
done
|
||||
|
||||
# set default values if not by options
|
||||
((${#V[@]})) || V=(0)
|
||||
|
||||
cleanup() {
|
||||
# clear up standard input
|
||||
read -t 0.001 && cat </dev/stdin>/dev/null
|
||||
|
||||
# terminal has no smcup and rmcup capabilities
|
||||
((FORCE_RESET)) && reset && exit 0
|
||||
|
||||
tput rmcup
|
||||
tput cnorm
|
||||
stty echo
|
||||
((NOCOLOR)) && echo -ne '\x1b[0m'
|
||||
exit 0
|
||||
}
|
||||
trap resize SIGWINCH
|
||||
trap cleanup HUP TERM
|
||||
trap 'break 2' INT
|
||||
|
||||
resize
|
||||
|
||||
for (( i=1; i<=p; i++ )); do
|
||||
c[i]=$((i%8)) n[i]=0 l[i]=0
|
||||
((x[i]=RNDSTART==1?RANDOM*w/32768:w/2))
|
||||
((y[i]=RNDSTART==1?RANDOM*h/32768:h/2))
|
||||
v[i]=${V[${#V[@]} * RANDOM / M]}
|
||||
done
|
||||
|
||||
stty -echo
|
||||
tput smcup || FORCE_RESET=1
|
||||
tput civis
|
||||
tput clear
|
||||
# any key press exits the loop and this script
|
||||
while REPLY=; read -t 0.0$((1000/f)) -n 1 2>/dev/null; [[ -z $REPLY ]] ; do
|
||||
for (( i=1; i<=p; i++ )); do
|
||||
# New position:
|
||||
((${l[i]}%2)) && ((x[i]+=-${l[i]}+2,1)) || ((y[i]+=${l[i]}-1))
|
||||
|
||||
# Loop on edges (change color on loop):
|
||||
((${x[i]}>=w||${x[i]}<0||${y[i]}>=h||${y[i]}<0)) && ((c[i]=RANDOM%8, v[i]=V[${#V[@]}*RANDOM/M]))
|
||||
((x[i]=(x[i]+w)%w))
|
||||
((y[i]=(y[i]+h)%h))
|
||||
|
||||
# New random direction:
|
||||
((n[i]=RANDOM%s-1))
|
||||
((n[i]=(${n[i]}>1||${n[i]}==0)?${l[i]}:${l[i]}+${n[i]}))
|
||||
((n[i]=(${n[i]}<0)?3:${n[i]}%4))
|
||||
|
||||
# Print:
|
||||
tput cup ${y[i]} ${x[i]}
|
||||
echo -ne "\x1b[${BOLD}m"
|
||||
[[ $NOCOLOR == 0 ]] && echo -ne "\x1b[3${c[i]}m"
|
||||
echo -n "${sets[v[i]]:l[i]*4+n[i]:1}"
|
||||
l[i]=${n[i]}
|
||||
done
|
||||
((r>0 && t*p>=r)) && tput reset && tput civis && t=0 || ((t++))
|
||||
done
|
||||
|
||||
cleanup
|
||||
1
config/.scripts/playstate
Normal file
1
config/.scripts/playstate
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
24
config/.scripts/spotify-play.py
Executable file
24
config/.scripts/spotify-play.py
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/python
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
def main():
|
||||
state = -1
|
||||
while 1:
|
||||
with open('/home/tuan/.scripts/playstate', 'r') as f:
|
||||
try:
|
||||
file_state = int(f.readline().strip('\n'))
|
||||
except ValueError:
|
||||
pass
|
||||
if state != file_state:
|
||||
state = file_state
|
||||
if state == 0:
|
||||
print("")
|
||||
subprocess.run(["playerctl","pause"])
|
||||
elif state == 1:
|
||||
print("")
|
||||
subprocess.run(["playerctl","play"])
|
||||
time.sleep(0.5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
4
config/.scripts/startup.sh
Executable file
4
config/.scripts/startup.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/zsh
|
||||
|
||||
xrandr --output "eDP1" --mode "1920x1080"
|
||||
setxkbmap us,de
|
||||
Reference in New Issue
Block a user