# -*- org -*-
#+BEGIN_COMMENT
# This README.org is actually a script itself.
# When it's run with "sh README.org" it will autogenerate
# the documentation from the scripts that have set comments
# between delimiting "#---" comments.
cd "$(dirname "$0")"
{
sed -n '1,/^# BEGIN_DESCRIPTIONS/p' "$0"
for script in *
do
[ -x "$script" -a -f "$script" ] || continue
grep -q '^#--' $script || continue
echo "*** $script"
sed -n '/^#--*/,/^#--*/ s/^#-*//p' $script
done
sed -n '/^# END_DESCRIPTIONS/,/!$/p' "$0"
} > "${0}~" && mv "${0}~" "$0"
exit
#+END_COMMENT
* Collection of scripts
These are just some scripts I use in my machines.
** Descriptions
# BEGIN_DESCRIPTIONS
*** Xlaunch
Launches an X.org server in another display with the given program
If no program is given as argument, choose on dmenu (if available)
*** alarm
A simple alarm script, it plays a file with mplayer.
It forces you to enter "alarm off" in the terminal for setting the
alarm off. The typing should make your brain react and wake you
up... well.. in theory
I use cron to set up the time(s) when the script will be triggered.
you can also use the "at" command to set temporal alarms.
*** apt-clean.sh
Script for APT package manager based systems, for cleaning it up of
installed packages, and clearing cache files.
*** arch_reinstall.sh
Dirty script I use for doing some rutine setup tasks when
installing and configuring a new archlinux install.
Note: I still didn't use it much, probably needs some love
*** arch_updatemirrors.sh
Script to download the full list of arch mirrors,
test them and select the fastest ones.
*** autoscroll.sh
Slowly scrolls down with the mouse automatically, so you can read a webpage,
a book, or whatever you want to read on your PC.
Useful when you have your hands busy when eating or doing something.
You can activate/deactivate it by binding a key shortcut to..
: pkill autoscroll.sh || autoscroll.sh
You need xmacro installed.
*** browser
This script is set as my default handler for opening webpages.
It's just a wrapper around my browser... I just wanted to keep it synced,
and it allows me to check for multiple browsers, so I can keep the same
configuration in different systems with different browsers.
*** camplay
A simple script for displaying the webcam
(good to use when on lack of a mirror :P)
Requires mplayer
*** camrecord
A simple script for recording videos with the webcam
Requires mencoder
*** checklight.sh
Captures from the camera and changes the brightness of the
screen backlight according to the brightness level of the
image captured by the cam.
Uses ffmpeg, imagemagick, xbacklight and acpi
*** colortable.sh
Just a simple typical display of colors supported by the terminal
*** commit.sh
Commit script for SVN.
It automatically adds/removes new/missing files (use svn:ignore for
files you don't want to include).
Commits also changes done to the repositories designed as externals.
Reuses svn-commit.tmp files left from uncommitted messages.
*** cplay
Script for controlling cmus music player
+ If no cmus is running, it will open it on a terminal
+ If run without arguments, it will toggle playback
+ If run with a playlist as argument, it will be loaded
+ If run with other files as argument, they will be added to current playlist
Other arguments:
--load-pl Show an Interactive dmenu to load a playlist
from the directory set in the CPLAYDIR variable.
--save-pl Asks for a name and saves the playlist in the
playlist directory.
*** crypt.sh
Wrapper around gpg to encrypt/decrypt a file or directory
it will also (de)compress them
*** dmenu_run
Modified dmenu_run from suckless, that uses an history file to store
the most recent commands introduced and display them the first ones
on the list.
Requires dmenu (and stest, which is in the same package)
*** dtach_run
Convenience script to use with the [[https://github.com/bogner/dtach][dtach tool]].
It will run in a detached session whatever arguments are given,
assigning automatically a pertinent socket.
If it's called from a symlink starting with "d", it will use
the name of the symlink as the command to call (for example,
symlink "dbash" will start a detached bash session).
Also, for non-US keyboard friendliness, it will use Control+Q
as default escape shortcut to dettach the session (overriden by
DTACH_ESCAPE)
*** dtsh
Wrapper around the 'dtach' utility to manage multiple sessions
stored in the same directory, creating/switching to them easily.
*** dwm.sh
Wrapper script around my dwm window manager
*** dxmms2
Script to manage xmms2 playlist and collections
by means of dmenu.
*** e
Not really very useful anymore, since emacs already improved
emacsclient invocation, but this was my wrapper around emacs.
*** ffscreencast.sh
Script to record a screencast
*** findsrc
Searches recursivelly the directory for files matching a specific regex
*** flvget.sh
Quick and dirty script to find flv videos from my chromium browser cache.
*** flvplay.sh
Plays and offers to save the most recent flash video that is currently loaded
*** idlescript.sh
Keeps waiting until there's a lapse of time with prolonged
inactivity from user and system, and sets the computer to suspend
status.
I wrote this script because most other suspend-on-idle methods don't
take HD activity into account, which is required when you let the
computer alone working on some operation, and want it to
automatically suspend when the operation is finished.
If you want the computer to wake up automatically at some given time
you can use the command: rtcwake -t <time>
Requires pm-utils and xprintidle
*** jsonpipe
PHP implementation of jsonpipe.
Original implementation (in python) here: https://github.com/zacharyvoase/jsonpipe
*** lna
Wrapper for "ln" so that it's straightforward to
create symbolic links using absolute paths.
*** makegrubusb.sh
Script to make bootable usb sticks
*** mount.iso
I don't want to remember the arguments for mounting an iso image, so
I made this script to use it instead.
*** noise
Generates background whitenoise
Requires sox
*** pls
Tool for listing the top CPU-consuming running processes
it accepts a regexp argument to be specific.
*** pomodoro
Script to show notifications on pomodoro timeout, useful to follow the
pomodoro technique book about improving productivity, or as a
multi-purpose timer (the coundown minutes can be set as arguments).
[[Pomodoro Technique][ http://www.pomodorotechnique.com/ ]]
*** powersave.sh
Activates some options for reducing the power consumption.
*** ptop
Uses pgrep regular expressions to open top
with the processes that match them
*** rename.sh
Port of the perl 'rename' tool (also called prename) that is shipped in Debian,
this one only uses sh and sed for portability, so it also runs on cygwin.
It will also preview the list of mv commands to perform and ask for verification
before calling them.
*** retry
Repeats the execution of the given command until it returns a zero exit code.
*** setwallpaper
Sets a random wallpaper from my collection of wallpapers
*** statck
This script checks for temperature and battery and displays a notification
(using notify-send) if the limits are too high.
It can either execute a single time, or be run as a daemon (statck -d) that
will re-run the check each minute.
It has also an option to show the status as a single line (statck -1) which
can be used for displaying it at applications status line.
*** subsync.sh
Script for synchronization of SRT subtitle files
*** t
Wrapper to execute the default terminal
(defined by XTERM variable, which I set in my ~/.profile).
Also, any args received will be executed in a subshell in the
terminal, pausing when the exit code is not standard (error).
*** thumb-extract
Extracts the image thumbnails stored in the "thumb.db" files left out by
windows installations.
*** trash
Move files to the (XDG) Trash
Without arguments, ask for Trash to be emptied
*** turboclick.sh
Performs a lot of clicks pretty fast in an endless loop. It can drive you crazy
if you execute it unprepared. I just made it for fun, and beating those silly flash
games about "how fast can you click?"
You can activate/deactivate it by binding a key shortcut to..
: pkill turboclick.sh || turboclick.sh
You need xmacro installed.
*** vol.sh
Increases/decreases/(un)mutes the volume (uses pulseaudio)
*** wakeat
Sets the computer in suspension (to memory)
and sets it to automatically wake up at the given time.
*** xinit.sh
This script is called from my .xinitrc at the start of my X.org session,
before launching the WM.
# END_DESCRIPTIONS
* WTFPL License (appliable to every script)
Copyright (C) 2012 Fernando Carmona Varo
These scripts are free software. They come without any warranty, to the extent permitted by applicable law. You can redistribute and/or modify any of them under the terms of the Do What The Fuck You Want To Public License, Version 2. See http://www.wtfpl.net/ for more details.