Initial commit

master
lanxu 2015-04-25 19:16:45 +03:00
commit 9dbea6d960
10 changed files with 2016 additions and 0 deletions

8
README Normal file
View File

@ -0,0 +1,8 @@
lanxu's Scripts for general enjoyment
Featuring:
* lightsOn by iye https://github.com/iye/lightsOn
Other:
* encodeVP9
*

1389
dropbox.py Executable file

File diff suppressed because one or more lines are too long

5
dropboxGetPublicURL.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
s=`~/Scripts/dropbox.py puburl "$1"`
zenity --info --text="$s" && echo "$s" | xclip -selection c

93
encodeVP9.py Executable file
View File

@ -0,0 +1,93 @@
#!/usr/bin/python
import os
import re
import sys
import getopt
from subprocess import call
__author__ = 'lanxu <jukka.lankinen@gmail.com>'
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
def run_command(command):
try:
return_value = call(command)
except (RuntimeError, TypeError, NameError, OSError) as error:
raise
return return_value
def main(argv):
ffmpeg_available = is_exe("/usr/bin/ffmpeg")
inputFile = ''
outputFile = ''
loglevel = 'error'
try:
opts, args = getopt.getopt(argv,"hi:o:v",["ifile=","ofile="])
except getopt.GetoptError:
print('test.py -i <inputfile> -o <outputfile>')
sys.exit(1)
for opt, arg in opts:
if opt == '-h':
print('encodeVP9.py -i <inputfile> -o <outputfile> [-v]')
sys.exit()
elif opt in ("-v", "--verbose"):
loglevel = 'verbose'
elif opt in ("-i", "--ifile"):
inputFile = arg
elif opt in ("-o", "--ofile"):
outputFile = arg
if ffmpeg_available:
"""
Settings from:
http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide
`VOD Recommended Settings`
"""
# Disable colors
os.environ['AV_LOG_FORCE_NOCOLOR'] = '1'
# Define commands
command_pass1 = ['ffmpeg', '-i', inputFile, '-loglevel',loglevel,'-c:v', 'libvpx-vp9', '-pass', '1', '-b:v', '1000K', '-threads', '8', '-speed', '4', '-tile-columns', '6', '-frame-parallel', '1', '-auto-alt-ref', '1', '-lag-in-frames', '25', '-an', '-f', 'webm', '-y', '/dev/null']
command_pass2 = ['ffmpeg', '-i', inputFile, '-loglevel',loglevel,'-c:v', 'libvpx-vp9', '-pass', '2', '-b:v', '1000K', '-threads', '8', '-speed', '1', '-tile-columns', '6', '-frame-parallel', '1', '-auto-alt-ref', '1', '-lag-in-frames', '25', '-c:a', 'libopus', '-b:a', '64k', '-f', 'webm', outputFile]
# Run commands
print('Input file is "'+inputFile+'"')
print('Output file is "'+outputFile+'"')
print('Running pass 1...')
try:
val = run_command(command_pass1)
# ffmpeg returns 0 if success
if val > 0:
print('Encoding failed')
sys.exit(2)
except:
# TODO Remove temp files here
print('Encoding failed!')
sys.exit(2)
print('Running pass 2..')
try:
run_command(command_pass2)
# ffmpeg returns 0 if success
if val > 0:
print('Encoding failed')
sys.exit(2)
except:
# TODO Remove temp files here (or backup pass 1 files for next run)
print('Encoding failed!')
sys.exit(2)
print('Done.')
if __name__ == "__main__":
main(sys.argv[1:])

28
getGPUTemp.py Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/python
import os
import re
from subprocess import check_output
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
aticonfig_available = is_exe("/usr/bin/aticonfig")
sensors_available = is_exe("/usr/bin/sensors")
if sensors_available:
command = "sensors radeon-pci-* | grep temp1"
if aticonfig_available:
command = "aticonfig --odgt"
# Run command
return_value = check_output(command, shell=True)
# Default return value
if sensors_available:
m = re.search(r'\+(.*)°C ',return_value.decode("utf-8"))
print(m.group(1))
elif aticonfig_available:
m = re.search(r'- (.*) C',return_value.decode("utf-8"))
print(m.group(1))
else:
print("?")

239
lightsOn.sh Executable file
View File

@ -0,0 +1,239 @@
#!/bin/bash
# lightsOn.sh
# Copyright (c) 2013 iye.cba at gmail com
# url: https://github.com/iye/lightsOn
# This script is licensed under GNU GPL version 2.0 or above
# Description: Bash script that prevents the screensaver and display power
# management (DPMS) to be activated when you are watching Flash Videos
# fullscreen on Firefox and Chromium.
# Can detect mplayer, minitube, and VLC when they are fullscreen too.
# Also, screensaver can be prevented when certain specified programs are running.
# lightsOn.sh needs xscreensaver or kscreensaver to work.
# HOW TO USE: Start the script with the number of seconds you want the checks
# for fullscreen to be done. Example:
# "./lightsOn.sh 120 &" will Check every 120 seconds if Mplayer, Minitube
# VLC, Firefox or Chromium are fullscreen and delay screensaver and Power Management if so.
# You want the number of seconds to be ~10 seconds less than the time it takes
# your screensaver or Power Management to activate.
# If you don't pass an argument, the checks are done every 50 seconds.
#
# An optional array variable exists here to add the names of programs that will delay the screensaver if they're running.
# This can be useful if you want to maintain a view of the program from a distance, like a music playlist for DJing,
# or if the screensaver eats up CPU that chops into any background processes you have running,
# such as realtime music programs like Ardour in MIDI keyboard mode.
# If you use this feature, make sure you use the name of the binary of the program (which may exist, for instance, in /usr/bin).
# Modify these variables if you want this script to detect if Mplayer,
# VLC, Minitube, or Firefox or Chromium Flash Video are Fullscreen and disable
# xscreensaver/kscreensaver and PowerManagement.
mplayer_detection=1
vlc_detection=1
firefox_flash_detection=1
chromium_flash_detection=1
minitube_detection=1
# Names of programs which, when running, you wish to delay the screensaver.
delay_progs=() # For example ('ardour2' 'gmpc')
# YOU SHOULD NOT NEED TO MODIFY ANYTHING BELOW THIS LINE
# enumerate all the attached screens
displays=""
while read id
do
displays="$displays $id"
done < <(xvinfo | sed -n 's/^screen #\([0-9]\+\)$/\1/p')
# Detect screensaver been used (xscreensaver, kscreensaver or none)
screensaver=`pgrep -l xscreensaver | grep -wc xscreensaver`
if [ $screensaver -ge 1 ]; then
screensaver=xscreensaver
else
screensaver=`pgrep -l kscreensaver | grep -wc kscreensaver`
if [ $screensaver -ge 1 ]; then
screensaver=kscreensaver
else
screensaver=None
echo "No screensaver detected"
fi
fi
checkDelayProgs()
{
for prog in "${delay_progs[@]}"; do
if [ `pgrep -lfc "$prog"` -ge 1 ]; then
echo "Delaying the screensaver because a program on the delay list, \"$prog\", is running..."
delayScreensaver
break
fi
done
}
checkFullscreen()
{
# loop through every display looking for a fullscreen window
for display in $displays
do
#get id of active window and clean output
activ_win_id=`DISPLAY=:0.${display} xprop -root _NET_ACTIVE_WINDOW`
#activ_win_id=${activ_win_id#*# } #gives error if xprop returns extra ", 0x0" (happens on some distros)
activ_win_id=${activ_win_id:40:9}
# Skip invalid window ids (commented as I could not reproduce a case
# where invalid id was returned, plus if id invalid
# isActivWinFullscreen will fail anyway.)
#if [ "$activ_win_id" = "0x0" ]; then
# continue
#fi
# Check if Active Window (the foremost window) is in fullscreen state
isActivWinFullscreen=`DISPLAY=:0.${display} xprop -id $activ_win_id | grep _NET_WM_STATE_FULLSCREEN`
if [[ "$isActivWinFullscreen" = *NET_WM_STATE_FULLSCREEN* ]];then
isAppRunning
var=$?
if [[ $var -eq 1 ]];then
delayScreensaver
fi
fi
done
}
# check if active windows is mplayer, vlc or firefox
#TODO only window name in the variable activ_win_id, not whole line.
#Then change IFs to detect more specifically the apps "<vlc>" and if process name exist
isAppRunning()
{
#Get title of active window
activ_win_title=`xprop -id $activ_win_id | grep "WM_CLASS(STRING)"` # I used WM_NAME(STRING) before, WM_CLASS more accurate.
# Check if user want to detect Video fullscreen on Firefox, modify variable firefox_flash_detection if you dont want Firefox detection
if [ $firefox_flash_detection == 1 ];then
if [[ "$activ_win_title" = *unknown* || "$activ_win_title" = *plugin-container* ]];then
# Check if plugin-container process is running
flash_process=`pgrep -l plugin-containe | grep -wc plugin-containe`
#(why was I using this line avobe? delete if pgrep -lc works ok)
#flash_process=`pgrep -lc plugin-containe`
if [[ $flash_process -ge 1 ]];then
return 1
fi
fi
fi
# Check if user want to detect Video fullscreen on Chromium, modify variable chromium_flash_detection if you dont want Chromium detection
if [ $chromium_flash_detection == 1 ];then
if [[ "$activ_win_title" = *exe* ]];then
# Check if Chromium/Chrome Flash process is running
flash_process=`pgrep -lfc ".*((c|C)hrome|chromium).*flashp.*"`
if [[ $flash_process -ge 1 ]];then
return 1
fi
fi
fi
#check if user want to detect mplayer fullscreen, modify variable mplayer_detection
if [ $mplayer_detection == 1 ];then
if [[ "$activ_win_title" = *mplayer* || "$activ_win_title" = *MPlayer* ]];then
#check if mplayer is running.
#mplayer_process=`pgrep -l mplayer | grep -wc mplayer`
mplayer_process=`pgrep -lc mplayer`
if [ $mplayer_process -ge 1 ]; then
return 1
fi
fi
fi
# Check if user want to detect vlc fullscreen, modify variable vlc_detection
if [ $vlc_detection == 1 ];then
if [[ "$activ_win_title" = *vlc* ]];then
#check if vlc is running.
#vlc_process=`pgrep -l vlc | grep -wc vlc`
vlc_process=`pgrep -lc vlc`
if [ $vlc_process -ge 1 ]; then
return 1
fi
fi
fi
# Check if user want to detect minitube fullscreen, modify variable minitube_detection
if [ $minitube_detection == 1 ];then
if [[ "$activ_win_title" = *minitube* ]];then
#check if minitube is running.
#minitube_process=`pgrep -l minitube | grep -wc minitube`
minitube_process=`pgrep -lc minitube`
if [ $minitube_process -ge 1 ]; then
return 1
fi
fi
fi
return 0
}
delayScreensaver()
{
# reset inactivity time counter so screensaver is not started
if [ "$screensaver" == "xscreensaver" ]; then
xscreensaver-command -deactivate > /dev/null
elif [ "$screensaver" == "kscreensaver" ]; then
qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity > /dev/null
fi
#Check if DPMS is on. If it is, deactivate and reactivate again. If it is not, do nothing.
dpmsStatus=`xset -q | grep -ce 'DPMS is Enabled'`
if [ $dpmsStatus == 1 ];then
xset -dpms
xset dpms
fi
}
delay=$1
# If argument empty, use 50 seconds as default.
if [ -z "$1" ];then
delay=50
fi
# If argument is not integer quit.
if [[ $1 = *[^0-9]* ]]; then
echo "The Argument \"$1\" is not valid, not an integer"
echo "Please use the time in seconds you want the checks to repeat."
echo "You want it to be ~10 seconds less than the time it takes your screensaver or DPMS to activate"
exit 1
fi
while true
do
checkDelayProgs
checkFullscreen
sleep $delay
done
exit 0

1
lightsOn/README Normal file
View File

@ -0,0 +1 @@
Read lightsOn.sh. How to use and license there.

239
lightsOn/lightsOn.sh Executable file
View File

@ -0,0 +1,239 @@
#!/bin/bash
# lightsOn.sh
# Copyright (c) 2013 iye.cba at gmail com
# url: https://github.com/iye/lightsOn
# This script is licensed under GNU GPL version 2.0 or above
# Description: Bash script that prevents the screensaver and display power
# management (DPMS) to be activated when you are watching Flash Videos
# fullscreen on Firefox and Chromium.
# Can detect mplayer, minitube, and VLC when they are fullscreen too.
# Also, screensaver can be prevented when certain specified programs are running.
# lightsOn.sh needs xscreensaver or kscreensaver to work.
# HOW TO USE: Start the script with the number of seconds you want the checks
# for fullscreen to be done. Example:
# "./lightsOn.sh 120 &" will Check every 120 seconds if Mplayer, Minitube
# VLC, Firefox or Chromium are fullscreen and delay screensaver and Power Management if so.
# You want the number of seconds to be ~10 seconds less than the time it takes
# your screensaver or Power Management to activate.
# If you don't pass an argument, the checks are done every 50 seconds.
#
# An optional array variable exists here to add the names of programs that will delay the screensaver if they're running.
# This can be useful if you want to maintain a view of the program from a distance, like a music playlist for DJing,
# or if the screensaver eats up CPU that chops into any background processes you have running,
# such as realtime music programs like Ardour in MIDI keyboard mode.
# If you use this feature, make sure you use the name of the binary of the program (which may exist, for instance, in /usr/bin).
# Modify these variables if you want this script to detect if Mplayer,
# VLC, Minitube, or Firefox or Chromium Flash Video are Fullscreen and disable
# xscreensaver/kscreensaver and PowerManagement.
mplayer_detection=1
vlc_detection=1
firefox_flash_detection=1
chromium_flash_detection=1
minitube_detection=1
# Names of programs which, when running, you wish to delay the screensaver.
delay_progs=() # For example ('ardour2' 'gmpc')
# YOU SHOULD NOT NEED TO MODIFY ANYTHING BELOW THIS LINE
# enumerate all the attached screens
displays=""
while read id
do
displays="$displays $id"
done < <(xvinfo | sed -n 's/^screen #\([0-9]\+\)$/\1/p')
# Detect screensaver been used (xscreensaver, kscreensaver or none)
screensaver=`pgrep -l xscreensaver | grep -wc xscreensaver`
if [ $screensaver -ge 1 ]; then
screensaver=xscreensaver
else
screensaver=`pgrep -l kscreensaver | grep -wc kscreensaver`
if [ $screensaver -ge 1 ]; then
screensaver=kscreensaver
else
screensaver=None
echo "No screensaver detected"
fi
fi
checkDelayProgs()
{
for prog in "${delay_progs[@]}"; do
if [ `pgrep -lfc "$prog"` -ge 1 ]; then
echo "Delaying the screensaver because a program on the delay list, \"$prog\", is running..."
delayScreensaver
break
fi
done
}
checkFullscreen()
{
# loop through every display looking for a fullscreen window
for display in $displays
do
#get id of active window and clean output
activ_win_id=`DISPLAY=:0.${display} xprop -root _NET_ACTIVE_WINDOW`
#activ_win_id=${activ_win_id#*# } #gives error if xprop returns extra ", 0x0" (happens on some distros)
activ_win_id=${activ_win_id:40:9}
# Skip invalid window ids (commented as I could not reproduce a case
# where invalid id was returned, plus if id invalid
# isActivWinFullscreen will fail anyway.)
#if [ "$activ_win_id" = "0x0" ]; then
# continue
#fi
# Check if Active Window (the foremost window) is in fullscreen state
isActivWinFullscreen=`DISPLAY=:0.${display} xprop -id $activ_win_id | grep _NET_WM_STATE_FULLSCREEN`
if [[ "$isActivWinFullscreen" = *NET_WM_STATE_FULLSCREEN* ]];then
isAppRunning
var=$?
if [[ $var -eq 1 ]];then
delayScreensaver
fi
fi
done
}
# check if active windows is mplayer, vlc or firefox
#TODO only window name in the variable activ_win_id, not whole line.
#Then change IFs to detect more specifically the apps "<vlc>" and if process name exist
isAppRunning()
{
#Get title of active window
activ_win_title=`xprop -id $activ_win_id | grep "WM_CLASS(STRING)"` # I used WM_NAME(STRING) before, WM_CLASS more accurate.
# Check if user want to detect Video fullscreen on Firefox, modify variable firefox_flash_detection if you dont want Firefox detection
if [ $firefox_flash_detection == 1 ];then
if [[ "$activ_win_title" = *unknown* || "$activ_win_title" = *plugin-container* ]];then
# Check if plugin-container process is running
flash_process=`pgrep -l plugin-containe | grep -wc plugin-containe`
#(why was I using this line avobe? delete if pgrep -lc works ok)
#flash_process=`pgrep -lc plugin-containe`
if [[ $flash_process -ge 1 ]];then
return 1
fi
fi
fi
# Check if user want to detect Video fullscreen on Chromium, modify variable chromium_flash_detection if you dont want Chromium detection
if [ $chromium_flash_detection == 1 ];then
if [[ "$activ_win_title" = *exe* ]];then
# Check if Chromium/Chrome Flash process is running
flash_process=`pgrep -lfc ".*((c|C)hrome|chromium).*flashp.*"`
if [[ $flash_process -ge 1 ]];then
return 1
fi
fi
fi
#check if user want to detect mplayer fullscreen, modify variable mplayer_detection
if [ $mplayer_detection == 1 ];then
if [[ "$activ_win_title" = *mplayer* || "$activ_win_title" = *MPlayer* ]];then
#check if mplayer is running.
#mplayer_process=`pgrep -l mplayer | grep -wc mplayer`
mplayer_process=`pgrep -lc mplayer`
if [ $mplayer_process -ge 1 ]; then
return 1
fi
fi
fi
# Check if user want to detect vlc fullscreen, modify variable vlc_detection
if [ $vlc_detection == 1 ];then
if [[ "$activ_win_title" = *vlc* ]];then
#check if vlc is running.
#vlc_process=`pgrep -l vlc | grep -wc vlc`
vlc_process=`pgrep -lc vlc`
if [ $vlc_process -ge 1 ]; then
return 1
fi
fi
fi
# Check if user want to detect minitube fullscreen, modify variable minitube_detection
if [ $minitube_detection == 1 ];then
if [[ "$activ_win_title" = *minitube* ]];then
#check if minitube is running.
#minitube_process=`pgrep -l minitube | grep -wc minitube`
minitube_process=`pgrep -lc minitube`
if [ $minitube_process -ge 1 ]; then
return 1
fi
fi
fi
return 0
}
delayScreensaver()
{
# reset inactivity time counter so screensaver is not started
if [ "$screensaver" == "xscreensaver" ]; then
xscreensaver-command -deactivate > /dev/null
elif [ "$screensaver" == "kscreensaver" ]; then
qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity > /dev/null
fi
#Check if DPMS is on. If it is, deactivate and reactivate again. If it is not, do nothing.
dpmsStatus=`xset -q | grep -ce 'DPMS is Enabled'`
if [ $dpmsStatus == 1 ];then
xset -dpms
xset dpms
fi
}
delay=$1
# If argument empty, use 50 seconds as default.
if [ -z "$1" ];then
delay=50
fi
# If argument is not integer quit.
if [[ $1 = *[^0-9]* ]]; then
echo "The Argument \"$1\" is not valid, not an integer"
echo "Please use the time in seconds you want the checks to repeat."
echo "You want it to be ~10 seconds less than the time it takes your screensaver or DPMS to activate"
exit 1
fi
while true
do
checkDelayProgs
checkFullscreen
sleep $delay
done
exit 0

8
run-once Executable file
View File

@ -0,0 +1,8 @@
#! /bin/bash
# Run program unless it's already running.
if [ -z "`ps -Af | grep -o -w ".*$1" | grep -v grep | grep -v run-once`" ]; then
$@
fi

6
sortPackagesBySize.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
( echo "PACKAGE SIZE(K)";
for A in /var/lib/pacman/local/*/desc; do
egrep -A1 '%(NAME|SIZE)' $A \
| gawk '/^[a-z]/ { printf "%s ", $1 }; /^[0-9]/ { printf "%.0f\n", $1/1024 }'
done | sort -nrk2 ) | column -t