Go to file
Pierre Neidhardt f979d0e627 sxiv: Display only first frame resolution 2017-02-09 10:23:59 +01:00
.asy Replace TikZ samples for Asymptote samples 2015-01-08 12:07:57 +01:00
.cmus cmus: Add disc number to playlist display 2016-01-27 18:55:01 +11:00
.config sxiv: Display only first frame resolution 2017-02-09 10:23:59 +01:00
.emacs.d Emacs: Format markdown headers 2017-01-28 11:29:33 +01:00
.gnupg gnupg: Add newline at EOF 2016-10-13 16:56:44 +05:30
.local/share/applications dwb: Remove forgotten leftover 2015-11-02 20:55:34 +01:00
.mpv mpv: Use xv by default 2016-04-07 12:11:05 +07:00
.mutt Mutt: Update account-example to 1.7 2016-10-13 18:30:31 +05:30
.pkglists pkglists: Remove surf, xf86-input-joystick 2017-01-31 15:39:29 +01:00
.scripts Do not create .launchers and .hackpool symlinks 2017-01-26 14:56:18 +01:00
.xkb xkb: Add ø|Ø symbols 2015-11-07 09:58:58 +01:00
.Xresources terminals: Tweak xterm, remove TERM setting 2017-01-11 13:08:07 +01:00
.bashrc terminals: Tweak xterm, remove TERM setting 2017-01-11 13:08:07 +01:00
.dircolorsdb dircolors: Re-add mis-deleted db, color other-writable dirs in bold-purple 2016-12-29 11:12:17 +01:00
.gitconfig Remove 'tig' config 2016-06-09 14:50:26 +02:00
.gitignore zsh: Remove all 2016-10-16 17:34:35 +05:30
.gprc gprc: PARI/GP init file. 2013-06-17 17:29:04 +02:00
.profile fzf: Sort history 2017-02-03 10:10:36 +01:00
.uncrustify.cfg Uncrustify: Remove blank lines before/after '}'/'{' respectively 2016-06-11 16:40:21 +02:00
.xinitrc scripts: Move myip and webcam functions to separate scripts. Remove sx. 2016-10-13 16:56:44 +05:30
.xprofile terminals: Tweak xterm, remove TERM setting 2017-01-11 13:08:07 +01:00
README.md README: Remove ranger sync 2017-02-03 10:12:25 +01:00

README.md

Unix Home Configuration

Author: P. Neidhardt

Overview

This repository contains scripts and configuration files for various Unix programs. I tried hard to maintain universality: it should work anywhere (Arch Linux, FreeBSD...), with whichever version of the programs. In the worst case, only few modifications will be necessary.

Most interesting parts include advanced configuration for Awesome, Emacs, fish, Mutt, ranger, and some scripts.


Description

Awesome

  • Extra deps: Vicious (Linux only)

Configuration is very close to the default one with some features removed (bindings, mouse control, context menu). The main new feature is the status bar: dynamic network speed (it checks for different interfaces), CPU speed, a battery indicator that will not show up if no battery is detected, and sound volume. The implementation is straightforward since I am using the Vicious plugin.

This configuration is very version-sensitive, so make sure to use the latest build.

Emacs

See my Emacs pro-tips.

fish & fzf

fish's default configuration satisfies most of my need. I make intense use of fzf with custom functions and bindings, such as fzf-select and fzf-complete.

A few wrappers:

  • man: color and justify to window width.

  • cd: keeps a bigger history and suppress duplicates. fish starts at last visited location.

I also have a fzf-cdhist-widget to go back to any location in just blink.

fzf can display a preview. I use a preview wrapper script over ranger's scope.sh. Extra deps: antiword, atool, highlight, img2txt, mediainfo, odt2txt, pdftotext, unrtf, w3m.

Mutt

  • Compile options: IMAP and SMTP support, sidebar.
  • Extra deps: antiword, ccrypt, fortune, sxiv, w3m.

Support for multiple accounts with encrypted passwords. (Mutt will prompt for the master password only once.) I use ccrypt for password management because it is much simpler than gnupg.

I use embedded IMAP and SMTP services which need appropriate compilation options. Embedded IMAP does not need to store e-mails locally. To speed-up e-mail queries, I cache them on disk. When the disk usage limit is reached, the older cached e-mails are erased until the cache shrinks below the limit again.

Some customization: custom index view, good Emacs integration (see .emacs.d), custom theme (matches Emacs colors), various tweaks.

For universal terminal support, the colorset.sh script will check terminal capabilities and load colors appropriately.

URxvt has an URL support that works also from Mutt. For other terminals, you might consider using the urlview plugin for Mutt.

Scripts

Probably the most interesting part here.

  • asciify: convert many non-ASCII characters to their nearest ASCII counterpart.

  • bsdman: read *BSD man pages.

  • crun: quick way to execute C files.

  • dataindex: create index of hierarchies. Useful to keep track of folder content and structure.

  • ediff: diff with Emacs.

  • einfo: info viewer with Emacs.

  • elisp: Emacs Lisp interpreter using Emacs.

  • git-*: some git helper functions for sync and so on.

  • homeinit: initialize a new home configuration, i.e. get needed files, create symlinks, etc.

  • imagemount: a CDEmu/fuseiso wrapper that creates/deletes virtual drives automatically.

  • mover: move and merge folder into destination.

  • pac*: pacman helper functions.

  • pdfctl: PDF manipulation, e.g. extract pages, compress, resize to A4.

  • pkglister: generate lists of installed with pacman, FreeBSD's pkg and tlmgr (TeX Live manager).

  • tc-video-*: batch conversion of any kind of videos. Using FFmpeg.


Versioning

Git makes it possible to use your home folder as a git repo, thus versioning all files directly.

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 lists in the .pkg/ folder to know what programs I am using.