1
0
Fork 0
mirror of https://github.com/notwa/rc synced 2024-11-05 04:39:03 -08:00
rc/README.md

9.3 KiB

obligatory personal dotfiles repository

(plus some little shell scripts)

there's probably a lot of subtle things gone uncredited, but oh well.

stuff defined in RC files

such as .bashrc and .zshrc but mostly -shrc and .streamcrap

reload

exec's the current shell. if it's zsh, it'll recompile .zshrc so everything actually reloads.

ADDPATH

adds a directory to $PATH if it isn't already there.

ify

pipes a command through another command, so you can pass arguments at the end as usual.

this is mainly useful for aliases. 99% of the time you'll use this with less.

$ alias ll="ify less ls -ACX --group-directories-first --color=force"
$ ll /etc

has

prints the result of which if the program is found, or shuts up and returns 1.

export CC="$(has clang || has clang-3.8 || has gcc)"

revend

reverses the 4-byte endianness of a file. this is an in-place operation!

exts

prints and sorts the most used file extensions in the CWD.

freq

prints the most frequently used commands found in ~/.histfile. arguments are passed to head.

$ freq
    507 ls
    349 sudo
    308 git
    268 less
    259 e
    208 luajit
    188 :
    185 twitch
    138 th
    131 z

that : is probably something i should fix.

nocom

strips lines that begin with a # character.

jrep

extracts ascii and japanese unicode characters.

bomb

adds a Byte Order Mark to a file.

cleanse

extracts readable ascii characters.

rot13

rot13 with rotated numbers as well.

unwrap

unwraps text that was wrapped using double-newlines as spacing, e.g. this readme file.

double

prints every line twice. prints every line twice.

picky + unused

attempts to print non-standard packages that were installed on an arch linux box, so you can reinstall them later on a fresh installation.

unused will print unused packages instead.

makepkgf + rakef

make the freakin' package!

trash

given a number of bytes, outputs binary garbage from /dev/random.

yt

watches a youtube video through mpv with a bunch of audio filtering crap.

can be given a full URL or just a video ID. remaining arguments are passed to mpv.

twitch + hitbox

watches twitch/hitbox streams through mpv with a bunch of audio filtering crap.

give it a username. remaining arguments are passed to mpv.

shell scripts

most (but not all) stuff that's written for bash will work in zsh too. if it just says (sh) then it'll probably work on any shell, but might depend on GNU awk.

arith + hex

(zsh) does arithmetic using the shell.

$ noglob arith 10**(6/20.)
1.9952623149688795
$ hex 0x221EA8-0x212020
0000FE88

aur

(bash) downloads, edits, makes, and installs packages from the AUR.

it's a little broken.

$ aur -eyoI cmdpack-uips applyppf

cdbusiest + dbusiest

(zsh) cd to the directory with the most files in it (recursive). dbusiest just outputs file counts without changing the directory.

useful for finding the biggest stinkers when archiving.

$ cd
$ cdbusiest
197195 src
$ pwd
/home/notwa/src

colors

(bash) print out all the foreground and background terminal color combinations. a 76-character script!

compandy

(zsh) a dumb thing to generate compand arguments for ffmpeg audio filters.

confirm

(bash/zsh) displays a simple yes/no prompt and returns 0 or 1 respectively.

$ confirm && echo yay || echo nay
Continue? [y/N] y
yay
$ confirm && echo yay || echo nay
Continue? [y/N] n
nay

days

(bash) compute days since a date.

$ days 'January 1 1970'
17229

dfu

(sh) pretty df output in GiB.

$ dfu
Filesystem              Used     Max    Misc
/                       6.90   13.75    0.75
/dev                    0.00    0.45    0.00
/boot                   0.02    0.10    0.00
/media/2tb           1528.48 1740.49   93.17

e

(zsh) wraps around $EDITOR to run as root if necessary. still needs some work to detect root-owned directories.

$ e /etc/sudoers
[sudo] password for notwa: 

is_empty

(bash) returns 0 if the directory given by $1 is empty.

isup

(zsh) returns 0 if a website returns a 2xx HTTP code.

$ isup google.com && echo yay || echo nay
yay
$ isup fdhafdslkjgfjs.com && echo yay || echo nay
nay

logs

(bash/zsh) just wraps around journalctl. i don't remember how it works exactly.

lol-twitter

(zsh) checks if usernames (from stdin) are available on twitter.

seems to return a 403 code these days, but you could probably fix that.

lsarchive + unarchive

(zsh) guess what these do. written by Sorin Ionescu. includes autocomplete files.

lsz

(zsh) a needlessly fancy alternative to ls.

based on lsf or something, which might be a gist somewhere. you can find similar, more mature projects on github.

minutemaid

(zsh) returns 0 if the current minute is divisible by a number.

note that a minute is relative to the seconds since the epoch, not the minute of the hour.

# crontab usage:
* * * * * minutemaid 9 cd repo && git pull # runs every nine minutes

mkgist

(bash) makes a (mostly) empty gist and pulls it so you never have to visit the site. i think this is broken.

monitor

(zsh) literally just watch as a shell script. kinda nice though.

mw + mw-cyg

(zsh) manages a ton of environment variables for cross-compiling programs. you'll want to tweak this if you use it yourself.

now

(bash) returns the local date-time in a sortable format. will take a date or a file as an argument too.

$ now
2016-06-27_19551873
$ now ./now
2016-03-12_25288645
$ now '@1234567890'
2009-02-13_55890000

pacbm

(zsh) lists installed pacman packages by their filesize, and the sum, ascending. requires expac.

$ pacbm | head -n -1 | tail -2
  191.30M ocaml
  193.40M clang

pacman-list-disowned

(zsh?) lists disowned pacman files. this might take a while. written by Benjamin Boudreau and Sorin Ionescu.

pause

(bash/zsh) pause; the companion script of confirm.

$ pause
Press any key to continue
$ 

pre

(bash/zsh) dumps all the #defines that $CC $CFLAGS $LDFLAGS would result in.

$ pre | shuf | head -10
#define __NO_MATH_INLINES 1
#define __FLT_MIN_10_EXP__ (-37)
#define __INT_LEAST32_TYPE__ int
#define __FLT_MIN_EXP__ (-125)
#define __LDBL_MIN_EXP__ (-16381)
#define __UINT8_C_SUFFIX__ 
#define __WINT_UNSIGNED__ 1
#define __INT_LEAST16_FMTd__ "hd"
#define __UINT_FAST32_MAX__ 4294967295U
#define __SSE__ 1

psbm

(sh) lists processes by their memory usage, and the sum, ascending.

$ psbm | head -n -1 | tail -2
  185.08M    1163 chromium
  199.95M    1060 chromium

randir

(sh) outputs a random directory in the working directory.

$ randir
./sh

sc

(bash) uploads given files to a webserver and returns a direct link for sharing. you'll want to tweak this if you use it yourself.

has some extra logic for screenshots created by scropt.

scramble

(bash) scrambles text in a predictable way using regex.

(bhas) sacbremls ttex in a pdrceailtbe way unsig reegx.

screeny + unscreen

(zsh) sets up and detaches a screen for running daemons as other users, etc.

will close any existing screens of the same name using its companion script, unscreen.

e.g. run znc as user znc in a screen called znc: screeny znc znc znc -f. znc!

scropt

(bash) runs scrot through optipng and saves to ~/play/$(now).png.

$ ~/sh/sc $(~/sh/scropt -s -d0.5)

similar

(sh) sorts stdin and highlights similarities between adjacent lines. kinda broken.

slit

(zsh) views specific columns of text. via pretzo.

$ df | slit 1 5
Filesystem Use%
dev 0%
run 1%
/dev/sda6 30%
tmpfs 3%
tmpfs 0%
tmpfs 1%
tmpfs 1%

sram

(zsh) converts between a couple saveram formats for N64 emulators.

sv

(bash) collects the lastmost value of every key. takes the field separator as an argument.

echo "this=that\nthem=those\nthis=cat" | sv =
this=cat
them=those

trunc

(bash) truncates text to fit within your terminal using the unicode character .

$ echo $COLUMNS
64
$ unwrap /usr/share/licenses/common/GPL3/license.txt | trunc | head
                    GNU GENERAL PUBLIC LICENSE                 …

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.…

                            Preamble 

  The GNU General Public License is a free, copyleft license fo…

  The licenses for most software and other practical works are …

submodules

probably horribly outdated

meow.sh

scrapes and downloads nyaa torrents.

z

cd to the most "frecently" used directory matching a regex.