356 lines
8.3 KiB
Plaintext
356 lines
8.3 KiB
Plaintext
################################################################################
|
|
# Unix Home Configuration #
|
|
# Author: P. Neidhardt #
|
|
# Date: 2013-03-02 #
|
|
################################################################################
|
|
|
|
Synopsis
|
|
********
|
|
|
|
This repository contains scripts configuration files for various Unix
|
|
programs. It targets Arch Linux and FreeBSD (might work for most
|
|
Unices as well).
|
|
|
|
################################################################################
|
|
|
|
Highlights
|
|
**********
|
|
|
|
* Smart audio transcoding: implemented as shell functions. It will convert, tag
|
|
and move the input tracks in a dynamic, yet customizable manner. It features a
|
|
smart title case AWK function that will print almost any audio tag the proper
|
|
way. It will copy cover files when found. You can preview the changes without
|
|
writing data. Using FFmpeg.
|
|
|
|
* Video transcoding: batch conversion of any kind of videos. Using FFmpeg.
|
|
|
|
* Plain TeX: partial unicode support (borrowed from LaTeX).
|
|
|
|
* Emacs LaTeX home-made environment, dynamic compilation, custom variable
|
|
support, SyncTeX working with Zathura, PDF compression, and much more.
|
|
|
|
* Mutt Sidebar with multiple account on non-local IMAP (using Mutt's IMAP
|
|
client).
|
|
|
|
* Awesome widgets: nice functions, like dynamic network speed (it checks for
|
|
different interfaces), CPU speed, dynamic battery that will not show up if no battery is
|
|
detected, and sound volume.
|
|
|
|
* Pacman functions: a lot of handy functions for the pacman package manager,
|
|
like sorting by size, dependency listing, etc.
|
|
|
|
################################################################################
|
|
|
|
Generic Comments
|
|
****************
|
|
|
|
The only purpose is to be a source of inspiration. Examples are always a good
|
|
technical support. (Especially for applications that do not provide examples in
|
|
their documentation.) There is no use in blind-copying the content of any file
|
|
into your personal home folder. At best it might break things.
|
|
|
|
In case you still want to copy some files -- for quick and dirty testing purpose
|
|
-- do not forget that most of the files are in hidden folders. Also note that
|
|
in some shells, the '*' joker will NOT match hidden files, that is
|
|
|
|
cp -r source-dir/* dest-dir/
|
|
|
|
will copy non-hidden folders only. To match all folders, use the following
|
|
joker instead:
|
|
|
|
cp -r source-dir/{.*,*} dest-dir/ # zsh
|
|
cp -r source-dir/{.??*,*} dest-dir/ # bash
|
|
|
|
Still, the solution for bash is not perfect as it affects 3 characters files
|
|
only. A more convenient solution:
|
|
|
|
# bash only.
|
|
shopt -s dotglob
|
|
cp -r source-dir/* dest-dir/
|
|
|
|
Git makes it possible to use your home folder as a git repo, thus versioning
|
|
all files directly. To fetch source from Git repo:
|
|
|
|
cd
|
|
git init
|
|
git remote add origin <repo>
|
|
git fetch
|
|
git branch master origin/master
|
|
git checkout master
|
|
|
|
Some applications will need extra dependencies other than the default ones. You
|
|
might have a look at the .pkg-* files to see what software I've been using.
|
|
|
|
Final word: do not forget to read the manpages!
|
|
|
|
################################################################################
|
|
|
|
Awesome
|
|
*******
|
|
Extra deps: Vicious (Linux only)
|
|
|
|
Configuration is very close to the default one, which mostly fits my needs.
|
|
Most of the work I've done is for the status bar, but since I'm using the
|
|
Vicious plugin, it is quite straightforward.
|
|
|
|
dwb
|
|
***
|
|
Some custom options, download location, search engines, etc.
|
|
|
|
Emacs
|
|
*****
|
|
Extra deps: emacs-lua-mode, emacs-mediawiki, emacs-yasnippet.
|
|
|
|
Emacs daemon is integrated flawlessly thanks to a small script. See homeinit.
|
|
|
|
Configuration for C programming. Bindings to compile either from makefile or
|
|
from a custom command if no makefile is found.
|
|
|
|
TeX and LaTeX full-featured home made environment: no AucTeX required, snippets,
|
|
dynamic compilation with various engines, dynamic configuration, proper PDF
|
|
view, temp files clean function, PDF compression, SyncTeX support.
|
|
|
|
Custom color theme with 256 colors.
|
|
|
|
Extended file support (shell files, Mutt mails, Arch Linux PKGBUILDs).
|
|
|
|
Some customization: columns, kill whole line, etc.
|
|
|
|
Some custom functions: duplicate line, unfill-paragraph, etc.
|
|
|
|
A lot of code snippets, especially for LaTeX. Contains document template, plot
|
|
generation, pie chart generation, and others.
|
|
|
|
Mutt
|
|
****
|
|
Compile options: IMAP and SMTP support.
|
|
Extra deps: antiword, ccrypt, fortune, sxiv, w3m.
|
|
|
|
This one is not easy to get into it. I managed to get multiple accounts with
|
|
encrypted passwords working, which means there is no plain password stored on
|
|
the disk. As a result, I just get prompted for a main password on Mutt startup,
|
|
then everything works out of the box. I use ccrypt for password management
|
|
because it is much more simple than gnupg.
|
|
|
|
I'm using embedded IMAP and SMTP services which need appropriate compilation
|
|
options.
|
|
|
|
Some customization: custom index view, good Emacs integration (see .emacs),
|
|
custom theme (matches Emacs colors), various tweaks.
|
|
|
|
Thanks to the colorset.sh script, Mutt will check terminal color support and
|
|
load colors appropriately. Therefore this configuration should work on any
|
|
terminal, should it have 256-colors support or not.
|
|
|
|
URxvt has an URL support that works also for Mutt. For other terminals, you
|
|
might consider using the 'urlview' plugin for Mutt.
|
|
|
|
Ranger
|
|
******
|
|
Extra deps: antiword, atool, highlight, img2txt, mediainfo, odt2txt, pdftotext,
|
|
unrtf, w3m.
|
|
|
|
Custom bindings, file association, tweaked a few options.
|
|
|
|
Scripts
|
|
*******
|
|
|
|
homeinit: initialize a new home configuration, i.e. get needed files, create
|
|
symlinks, etc.
|
|
|
|
netinit: network setup. Works with wpa_supplicant. May replace any network
|
|
manager.
|
|
|
|
pkggen: generates lists of installed with pacman, FreeBSD's pkg and tlmgr (TeX
|
|
Live manager).
|
|
|
|
Shell
|
|
*****
|
|
Target: zsh, bash
|
|
|
|
Probably the most interesting part here. A lot of stuff: aliases, functions,
|
|
shell options, etc.
|
|
|
|
Please note that this config is mainly intended -- and tested -- for zsh. It
|
|
should be mostly compatible with Bourne shell though. When incompabilities have
|
|
been encountered, it has been reported into the configuration files. Hence the
|
|
shared folder .shell.d/, whose files get sourced by both bash and zsh.
|
|
Bash-specific and zsh-specific options are in dedicated files ending with the
|
|
appropriate shell name.
|
|
|
|
TeX
|
|
***
|
|
|
|
plainTeX macros, most importantly a partial UTF-8 support (taken from LaTeX).
|
|
|
|
A lot of LaTeX macros. Among others: pie charts, dynamic plots with
|
|
input file and trend.
|
|
|
|
plainTeX macros are in the '.texmf' folder. LaTeX macros are all bundled into
|
|
Emacs snippets so that .tex documents do not rely on any external file.
|
|
|
|
URxvt
|
|
*****
|
|
Extra deps: Muennich's perl extensions (keyboard-select, clipboard, url-matcher)
|
|
|
|
Custom font and colors, no scroll bar, url-matcher, clipboard, and
|
|
keyboard-select.
|
|
|
|
Vim
|
|
***
|
|
I've only been a casual Vim user, so do not expect too much from it.
|
|
|
|
################################################################################
|
|
Known issues
|
|
************
|
|
|
|
Emacs: some colors do not work as intended. MediaWiki fails to upload pages
|
|
after some idle time.
|
|
|
|
URxvt: using the paste function from Muennich's clipboard on the same terminal
|
|
where text was copied will make xsel crash.
|
|
|
|
################################################################################
|
|
Noteworthy apps
|
|
***************
|
|
|
|
aalib
|
|
aircrack-ng
|
|
antiword
|
|
apvlv
|
|
asciidoc
|
|
astyle
|
|
atool
|
|
awesome
|
|
awk
|
|
bashmount
|
|
bc
|
|
cal
|
|
calc
|
|
catdvi
|
|
ccrypt
|
|
cdrtools
|
|
centerim
|
|
chrpath
|
|
cmus
|
|
column
|
|
comm
|
|
cppcheck
|
|
cut
|
|
dash
|
|
diff
|
|
doxygen
|
|
dropbox
|
|
dtach
|
|
dvtm
|
|
dwb
|
|
emacs
|
|
fbpdf
|
|
fbv
|
|
fdisk
|
|
feh
|
|
ffmpeg
|
|
file
|
|
finch
|
|
fmt
|
|
fortune
|
|
gaupol
|
|
gcolor2
|
|
gdb
|
|
gimp
|
|
gnumeric
|
|
gnuplot
|
|
gparted
|
|
graphicsmagick
|
|
grep
|
|
groff
|
|
hdparm
|
|
highlight
|
|
htop
|
|
id3v2
|
|
imagemagick
|
|
indent
|
|
inkscape
|
|
iotop
|
|
irssi
|
|
latex2html
|
|
latex2rtf
|
|
lrzip
|
|
lshw
|
|
ltrace
|
|
luakit
|
|
lynx
|
|
mediainfo
|
|
mercurial
|
|
mkfs
|
|
mkvtoolnix
|
|
movgrab
|
|
mplayer2
|
|
mutt
|
|
nasm
|
|
ncdu
|
|
nethogs
|
|
ngrep
|
|
nmap
|
|
numlockx
|
|
octave
|
|
od
|
|
odt2txt
|
|
okular
|
|
openshot
|
|
openssh
|
|
oss
|
|
p7zip
|
|
pari
|
|
parted
|
|
patch
|
|
poppler
|
|
pstotext
|
|
pwgen
|
|
qpdf
|
|
ranger
|
|
re2c
|
|
rsync
|
|
rtorrent
|
|
rxvt-unicode
|
|
scrot
|
|
sdparm
|
|
sed
|
|
shred
|
|
slock
|
|
sort
|
|
splint
|
|
strace
|
|
subdl
|
|
submarine
|
|
sudo
|
|
sxiv
|
|
syslinux
|
|
task
|
|
tcc
|
|
tcpdump
|
|
texi2html
|
|
texinfo
|
|
texlive
|
|
textadept
|
|
tig
|
|
trash-cli
|
|
tree
|
|
udiskie
|
|
unrtf
|
|
upx
|
|
valgrind
|
|
vim
|
|
vlock
|
|
w3m
|
|
weechat
|
|
wipe
|
|
wireshark
|
|
wmfs
|
|
wv
|
|
x264
|
|
xclip
|
|
yasm
|
|
zathura
|
|
zsh
|