Configuration files for BASH and other apps

Timothy Keith 8061778cd1 > 1 min is kinda unreasonable to wait when you want to shutddown NOW 3 months ago
.readme-assets 3ff720172b .assets -> .readme-assets 1 year ago
attic e77a824f8c nginx configs merged and moved to attic 8 months ago
bash f3c79617bd moved files out of host folders 8 months ago
cgit 09e1031e0d added web_server and git_server target 8 months ago
emby bab1cbb9d4 renamed ufw target to emby 8 months ago
git fd42914ad6 pushall command 3 months ago
lighttpd d0adcf89db module called twice 6 months ago
mpv f3c79617bd moved files out of host folders 8 months ago
nano f3c79617bd moved files out of host folders 8 months ago
php 09e1031e0d added web_server and git_server target 8 months ago
quirk-apt-block-pkgs 6a5db43bff modesetting is better 3 months ago
quirk-apt-no-recommend cc96206aee add quirks for laptop 6 months ago
quirk-no-ipv6 cc96206aee add quirks for laptop 6 months ago
quirk-no-lid-suspend 72ff825b39 standardized quirk names 8 months ago
quirk-oom-killer-reboot 49c86c4706 sysctl.conf -> sysctl.d/ dir 6 months ago
quirk-systemd-wait-time 8061778cd1 > 1 min is kinda unreasonable to wait when you want to shutddown NOW 3 months ago
smplayer f3c79617bd moved files out of host folders 8 months ago
ssh cdeee98144 use ip instead of dns due to cloudflare setup 3 months ago
sshd f3c79617bd moved files out of host folders 8 months ago
wget f3c79617bd moved files out of host folders 8 months ago
xdg-user-dirs f3c79617bd moved files out of host folders 8 months ago
youtube-dl f3c79617bd moved files out of host folders 8 months ago
zsh fbc87bbcc9 make dir already exists as oh-my-zsh plugin, added whatismyip 3 months ago
.gitignore a689f383df home-server config for tinc 11 months ago
LICENSE 65bbeab49e it's a new year 1 year ago
Makefile 9403d90e9f symlink lighttpd sites for server 6 months ago
README.md 7150d7bea8 added badges 6 months ago

README.md

dotfiles [Codacy Badge Say Thanks!

Markdown Screenshot

Being a Linux user is sort of like living in a house inhabited by a large family of carpenters and architects. Every morning when you wake up, the house is a little different. Maybe there is a new turret, or some walls have moved. Or perhaps someone has temporarily removed the floor under your bed."

— Unix for Dummies, 2nd Edition

These are various config files I use for my Linux environment and related programs.

Table of Contents

Mad Madam Mim as a Dragon

Obligatory Warning
You should first fork this repository, review the code, and remove things you don't want or need. Don't blindly use my settings unless you know what that entails. Here be dragons!


Overview

Here's a high level overview if you just want to see what I use:

Category Program
Distro: Debian
Browser: Chromium
Shell: Zsh
Shell Plugins: Antigen & Oh-My-Zsh
Shell Theme: Sunrise (modified)
Editor: nano
IDE: Kate
Media player: SMPlayer (mpv backend)

Applications

This is a list of all the applications managed in this repo. Each link to the respective project's homepage. The superscript letters have special meaning, h and r are the most important.

  • bash ah: classic Bourne shell
  • cgit vr: a fast web interface for git repos
  • git ah: distributed version control
  • lighttpd svr: a lightweight webserver that's easy to configure
  • nano a: an easy to use CLI editor
  • mpv dh: a media player on par with VLC's extensive codecs
  • php svr: a scripting language for interactive websites
  • quirk-no-lid-suspend sr: don't suspend when the laptop lid is closed
  • quirk-oom-killer-reboot svr: reboot when out of memory instead of killing processes
  • smplayer dh: A frontend for mpv
  • ssh ah: secure remote shell
  • sshd svr: secure shell server
  • ufw ar: a frontend to simplify iptables
  • wget ah: console download manager
  • youtube-dl dh: download videos from almost any site
  • xdg-user-dirs dh: control the location of default directories like ~/Desktop and ~/Downloads
  • zsh ah: a shell that's slightly easier to configure
  • attic/
    • Previously used applications and experiments. Your mileage may vary, but some may find them useful.

Superscript Legend

The superscript letters after application names shows which machines each configuration is used on and if you need to tell stow to place the configuration in the root directory.

Machines: a d s v

  • a (all): bash, git, zsh, wget, ssh, nano
  • d (desktop): smplayer, mpv, xdg-user-dirs, youtube-dl
  • s (home server): quick-no-lid-suspend, quirk-oom-killer-reboot, sshd
  • v (VPS): quirk-oom-killer-reboot, sshd

Targets: h r

  • h (home): a typical dotfile meant for $HOME, run stow as usual (e.g. stow bash)
  • r (root): system configuration, such as those found in /etc. Use the target flag for the root directory (e.g. stow -t / sshd)

Installation / Managing

These dotfiles are managed with stow, which allows you to group dotfiles based on the programs they configure. Thus, you can pick and choose which dotfiles you want to install.

For instance, to install all the related bash dotfiles:

$ cd ~  
$ git clone https://github.com/keithieopia/dotfiles.git  
$ cd ~/dotfiles  
$ stow bash

System config files are marked with r in the above application list. You will need to tell stow to put it in the root directory, by passing the -t / flag, like so:

$ sudo stow -t / sshd

This seems to be a pain... how do you really manage it?

With a Makefile, believe it or not. It has targets for all my machines by hostname, which auto installs all of the relevant stow targets. It sounds more complicated than it is, but makes installation a breeze. All I end up running is:

$ cd ~/dotfiles && make

...and I'm all setup! For new hosts not in the Makefile, I have some default targets, like "desktop" or "servers" that I can use. If you have several hosts with different stow targets, I recommend you tryout using make instead of overthinking the problem.

Feedback

I would love your feedback! If you found any of these config files useful, please drop me an email. For the privacy conscious, feel free to encrypt any messages using my PGP key:

46E6 9F69 90C1 DE8C 9791 88EE 94A4 E2D4 6B32 AA11

To import it into your keyring:

$ curl https://gist.githubusercontent.com/keithieopia/434f3575ec1f020d6589a4c01dc0847e/raw/2e0749f2966ff501ee28797a926229c081f7e652/timothykeith.pub.asc | gpg --import -

NOTE: SKS Public Key Servers (such as pgp.mit.edu) don't support Curve25519 keys yet. In the meantime, consider using Keybase.io; my username is timothykeith.

Bug Reports

Submit bug reports via GitHub's Issue Tracker

Author

Copyright © 2016 - 2017 Timothy Keith

Licensed under the MIT license.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.