diff --git a/factorimods b/factorimods new file mode 100644 index 0000000..378dd12 --- /dev/null +++ b/factorimods @@ -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 diff --git a/unduplicator.sh b/unduplicator.sh new file mode 100644 index 0000000..48e2ec8 --- /dev/null +++ b/unduplicator.sh @@ -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 diff --git a/volume.sh b/volume.sh new file mode 100644 index 0000000..0ce5525 --- /dev/null +++ b/volume.sh @@ -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 diff --git a/wico b/wico new file mode 100644 index 0000000..adc227f --- /dev/null +++ b/wico @@ -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 $? diff --git a/xpause b/xpause new file mode 100644 index 0000000..0cfae83 --- /dev/null +++ b/xpause @@ -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