Initial commit bis : more files from /home/$USER/bin
This commit is contained in:
parent
51366fefc8
commit
20f08193d2
37
factorimods
Normal file
37
factorimods
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Dependencies : you'll need a dmenu-like to run this script.
|
||||||
|
#On debian and debian-like distros (ubuntu, mint...), simply run:
|
||||||
|
# sudo apt install dmenu
|
||||||
|
|
||||||
|
#Edit this line to meet your installation
|
||||||
|
factorio_dir="/DATA/Games/factorio"
|
||||||
|
|
||||||
|
cd $factorio_dir/saves
|
||||||
|
|
||||||
|
#Ask the user to select a save
|
||||||
|
save=$(ls -t *.zip | grep -v autosave | rev | cut -d "." -f 2- | rev | dmenu)
|
||||||
|
|
||||||
|
test $? -ne 0 && echo "No save selected" && exit 1
|
||||||
|
|
||||||
|
#Check if a modlist exists for that save
|
||||||
|
if test -s mod-list.json_$save ; then
|
||||||
|
modlist=$save
|
||||||
|
else
|
||||||
|
#Otherwise, prompt to load another modlist
|
||||||
|
modlist=$(ls -t mod-list.json_* | cut -d "_" -f 2- | dmenu -p "No mod list found for savegame $save. Select mod list from available: ")
|
||||||
|
|
||||||
|
test $? -ne 0 && echo "No modlist selected" && exit 1
|
||||||
|
|
||||||
|
#And prompt to save it for later
|
||||||
|
echo -e "yes\nno" | dmenu -p "Save selected modlist for savegame $save ?" | grep "yes" && cp mod-list.json_$modlist mod-list.json_$save && modlist=$save
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Link that modlist to the file read by factorio
|
||||||
|
ln -fs ../saves/mod-list.json_$modlist ../mods/mod-list.json
|
||||||
|
|
||||||
|
|
||||||
|
#Launch the game and the requested save
|
||||||
|
cd ..
|
||||||
|
echo "$factorio_dir/bin/x64/factorio --load-game $factorio_dir/saves/$save.zip"
|
||||||
|
$factorio_dir/bin/x64/factorio --load-game $factorio_dir/saves/$save.zip
|
42
unduplicator.sh
Normal file
42
unduplicator.sh
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#/bin/bash
|
||||||
|
usage="\
|
||||||
|
$0 [-o OUTFILE] FILE1 [FILE2] [FILE3]...
|
||||||
|
Concatenate, sort and remove duplicate lines from a list of files.
|
||||||
|
If outfile isn't provided, will output to ./unduplicated.
|
||||||
|
"
|
||||||
|
|
||||||
|
test $# -eq 0 && echo -e "$usage\n\nError: At least one argument is needed" && exit 1
|
||||||
|
|
||||||
|
if test $1 = "-o" ; then
|
||||||
|
outfile="$2"
|
||||||
|
shift 2
|
||||||
|
else
|
||||||
|
outfile="./unduplicated"
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $# -eq 0 && echo -e "$usage\n\nError: At least one file is required" && exit 1
|
||||||
|
|
||||||
|
file="$@"
|
||||||
|
#echo $file
|
||||||
|
|
||||||
|
input=`mktemp`
|
||||||
|
output=`mktemp`
|
||||||
|
#echo -e "Unduplicator:\n\tinfiles: $file\n\tinput:\t$input\n\toutput: $output\n\t outfile: $outfile"
|
||||||
|
|
||||||
|
|
||||||
|
sort "$file" > "$input"
|
||||||
|
|
||||||
|
#ls -lh $input $output
|
||||||
|
#i=0
|
||||||
|
|
||||||
|
while read -r line ; do
|
||||||
|
#i=$((i+1))
|
||||||
|
# echo "$i: $line ($file)"
|
||||||
|
test "$line" != "$linee" && echo "$line" >> $output # || echo "duplicate found : $line"
|
||||||
|
linee="$line"
|
||||||
|
|
||||||
|
done < "$input"
|
||||||
|
|
||||||
|
cat $output > $outfile
|
||||||
|
rm $input $output
|
||||||
|
exit 0
|
61
volume.sh
Normal file
61
volume.sh
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#/bin/bash
|
||||||
|
usage="\
|
||||||
|
$0 on|off|toggle|set|up|down [VALUE]
|
||||||
|
Simple binder between amixer, hotkeys and herbe notifications
|
||||||
|
"
|
||||||
|
|
||||||
|
test $# -eq 0 -o $# -gt 2 && echo -e "$usage\nOne or two arguments expected" && exit 1 ;
|
||||||
|
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
"up")
|
||||||
|
vol="$(amixer set Master ${2:-3}%+ | tail -n 1 | cut -d ' ' -f 7 | tr -d '[]%')" ;;
|
||||||
|
"down")
|
||||||
|
vol="$(amixer set Master ${2:-3}%- | tail -n 1 | cut -d ' ' -f 7 | tr -d '[]%')" ;;
|
||||||
|
"on")
|
||||||
|
vol="$(amixer set Master on | tail -n 1 | cut -d ' ' -f 7 | tr -d '[]%')" ;;
|
||||||
|
"off")
|
||||||
|
vol="$(amixer set Master off | tail -n 1 | cut -d ' ' -f 7 | tr -d '[]%')" ;;
|
||||||
|
"toggle")
|
||||||
|
vol="$(amixer set Master toggle | tail -n 1 | cut -d ' ' -f 7 | tr -d '[]%')" ;;
|
||||||
|
"set")
|
||||||
|
vol=$2
|
||||||
|
amixer -q set Master "$vol%" > /dev/null ;;
|
||||||
|
*)
|
||||||
|
echo "$usage"
|
||||||
|
echo "Unrecognized argument: $1"
|
||||||
|
exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ls /tmp/dsblok.pid &> /dev/null && /home/karsaell/Downloads/dsblocks/sigdsblocks/sigdsblocks 1 $vol
|
||||||
|
|
||||||
|
#echo vol: $vol
|
||||||
|
|
||||||
|
for i in {1..100..3} ; do
|
||||||
|
if test $i -lt $vol ; then
|
||||||
|
herbe="$herbe|"
|
||||||
|
else
|
||||||
|
herbe="$herbe "
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
test -s /tmp/herbe_volume_pid && ( kill -s SIGUSR1 $(cat /tmp/herbe_volume_pid) ; rm /tmp/herbe_volume_pid )
|
||||||
|
|
||||||
|
amixer get Master | grep -q "%] \[on\]" && state=on || state=off
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
on)
|
||||||
|
herbe.norm " $herbe" &
|
||||||
|
pid=$!
|
||||||
|
echo $pid >> /tmp/herbe_volume_pid
|
||||||
|
;;
|
||||||
|
off)
|
||||||
|
herbe.low " $herbe" &
|
||||||
|
pid=$!
|
||||||
|
echo $pid >> /tmp/herbe_volume_pid
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
wait $pid
|
||||||
|
|
||||||
|
test -e /tmp/herbe_volume_pid && echo -n `cat /tmp/herbe_volume_pid | grep -v $pid` > /tmp/herbe_volume_pid
|
36
wico
Normal file
36
wico
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#wico.sh : choose a wifi signal in range and try to connect to it
|
||||||
|
|
||||||
|
verb=0
|
||||||
|
|
||||||
|
if ( nmcli radio wifi | grep disabled > /dev/null ) ; then
|
||||||
|
test $verb -gt 0 && echo "Turning wifi on"
|
||||||
|
nmcli radio wifi on
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
test $verb -gt 0 && echo "Scanning networks in range..."
|
||||||
|
nmcli device wifi rescan
|
||||||
|
|
||||||
|
ssid=$(nmcli -f IN-USE,SSID,BARS d wifi list | dmenu -l 8 | tr -s '*' ' ' | rev | cut -d ' ' -f 3- | rev | cut -d ' ' -f 2-)
|
||||||
|
|
||||||
|
test $verb -gt 0 && echo ssid: $ssid
|
||||||
|
|
||||||
|
test -z "$ssid" && echo "No ssid selected" && exit 1
|
||||||
|
|
||||||
|
if (nmcli d wifi connect "$ssid" | grep Error ) ; then
|
||||||
|
|
||||||
|
test $verb -gt 0 && echo "Password required"
|
||||||
|
|
||||||
|
herbe "Wifi "$ssid" : Password required" &
|
||||||
|
|
||||||
|
psk=$(echo Wifi: "$ssid" | dmenu -p "Please (re)type password")
|
||||||
|
|
||||||
|
test $verb -gt 0 && echo $psk
|
||||||
|
|
||||||
|
nmcli d wifi connect "$ssid" password "$psk"
|
||||||
|
fi
|
||||||
|
|
||||||
|
herbe "$(nmcli | grep wlp2s0:)"
|
||||||
|
|
||||||
|
exit $?
|
42
xpause
Normal file
42
xpause
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Usage
|
||||||
|
# xpause [resume]
|
||||||
|
# Click on a window to pause its process, or resume all such paused processes
|
||||||
|
|
||||||
|
#return status:
|
||||||
|
# 0 - Ok
|
||||||
|
# 1 - kill failed
|
||||||
|
# 2 - no pid found to resume
|
||||||
|
# 3 - failed to get pid from window
|
||||||
|
|
||||||
|
if test "$1" = "resume" ; then
|
||||||
|
if test -s /tmp/xpause ; then
|
||||||
|
kill -SIGCONT $(cat /tmp/xpause) || ( echo "xpause FAILED (kill)" ; exit 1 )
|
||||||
|
echo "xunpaused $(cat /tmp/xpause | wc -l)"
|
||||||
|
rm /tmp/xpause
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "xpause FAILED" "No process to resume"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
pid=$(xprop | grep PID | cut -d "=" -f 2)
|
||||||
|
test "$pid" -gt 0 || ( echo "xpause failed to get pid from window" ; exit 3 )
|
||||||
|
|
||||||
|
if test -s /tmp/xpause ; then
|
||||||
|
if grep "$pid" /tmp/xpause ; then
|
||||||
|
if kill -SIGCONT "$pid" ; then
|
||||||
|
echo "unpaused $pid"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "xpause FAILED (kill)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $pid >> /tmp/xpause
|
||||||
|
kill -s "SIGSTOP" $pid || ( echo "xpause FAILED (kill)" ; exit 1 )
|
||||||
|
echo "xpaused $pid"
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user