################################################################################ # Unix Home Configuration # # Author: P. Neidhardt # # Date: 2013-02-06 # ################################################################################ Synopsis ******** This repository contains configuration files for various Unix-programs. Target distributions are 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 video. 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. * Awesome widgets: nice functions, like dynamic network speed (it checks for different interfaces), dynamic battery that will not show up if no battery is detected, CPU speed. * 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 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 file clean function, PDF compression. 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. xclip to clipboard or primary does not work. 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 help2man 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 tig trash-cli tree udiskie unrtf upx valgrind vim vlock w3m weechat wipe wireshark wmfs wv x264 xclip yasm zathura zsh