I've reorganized all my configs to be managed by rcm. The new consolidated repo is located at: https://github.com/beloglazov/dotfiles
Previously, I kept my whole configuration in this repo, however, it wasn't scalable, as I couldn't for example easily use my Vim or shell configuration in Arch and on a Mac. I've decided to split the configuration into multiple repos to make it more reusable. In particular, have a look at the following repos:
- https://github.com/beloglazov/arch-config
- https://github.com/beloglazov/xmonad-config
- https://github.com/beloglazov/fish-config
- https://github.com/beloglazov/vimrc
- https://github.com/beloglazov/mac-config
This repository contains my configuration of Arch Linux with Xmonad, Zsh, Vim, and other tools. In addition to the configuration files themselves, the repository includes scripts for installing software, which I use in my day-to-day work, and for symlinking the configuration files to the right locations. The scripts can be used to completely configure a clean installation of Arch Linux. In summary, the following software and tools are installed and configured:
- Xmonad: a tiling window manager
- Zsh + oh-my-zsh: a Shell
- Yaourt: a package installer, which handles both the core repositories and AUR
- Vim: a text editor, which I mainly use these days
- Emacs: a text editor, which I used for 1.5 years before switching to Vim
- Git: a version control system
- Freetype2 infinality + a set of fonts (e.g., Terminus): font configuration
- Tex, Python libs, and may other useful applications
The scripts included in this repo assume that you have Arch Linux installed, which can be done by following the installation procedure described in the Arch wiki:
- https://wiki.archlinux.org/index.php/Installation_Guide
- https://wiki.archlinux.org/index.php/Beginners_Guide
Once you have Arch Linux installed, you need to follow the following basic steps
as root
to be able to use the scripts from this repo:
- By default, the dhcp daemon is disabled, you need to turn it on:
systemctl enable dhcpcd
systemctl start dhcpcd
- Next, it's a good idea to rank the repo mirrors to use the fastest available:
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup
rankmirrors -n 6 /etc/pacman.d/mirrorlist-backup > /etc/pacman.d/mirrorlist
- Update the system, and install
sudo
,openssh
, andgit
:
pacman -Syu
pacman -S sudo openssh git
- Modify the sudo configuration to allow users from the
wheel
group to usesudo
:
visudo
# Uncomment the following line, and save the file with :wq
# %wheel ALL=(ALL) ALL
- Create a user
<username>
, add the user towheel
, and set the password:
useradd -m <username>
usermod -G wheel -a <username>
passwd <username>
- Added a Haskell repository as described here (it will be used to install Xmonad): https://wiki.archlinux.org/index.php/Haskell_Package_Guidelines
Now, you are ready to clone the current repository and start running the
configuration scripts. This needs to be done under <username>
. The following
commands switch to the <username>
user, create a repos
directory, and clone
this repository there:
su - <username>
mkdir repos
cd repos
git clone git://github.com/beloglazov/arch-xmonad-zsh.git
cd arch-xmonad-zsh
Everything is now ready to start running the installation scripts in the order of their numbers:
./install-00-init-submodules.sh
: initialize Git submodules, which include Emacs modes and Vim plugins../install-01-yaourt.sh
: install Yaourt../install-02-zsh.sh
: install Zsh and make it the default Shell../install-04-xmonad.sh
: install Xmonad, its dependencies, and the following related useful apps:rxvt-unicode
: a highly customizable terminaldmenu
: a great customizable tool for running applications and other tasksxxkb
: remember window-specific keyboard layoutsslock
: an awesome screen locker
./install-05-apps.sh
: install a number of useful and essential applications:gvim
: the text editor, comes with extra functionality compared with the default Vimemacs
: the text editor editor :)chromium
: an open source version of Google Chromeranger
: an amazing file managerack
: a tool for searching in filesfasd
: an indispensable directory and file jumping programhtop
: system and resource utilization information at a glancecolordiff
: add some colors to your diffsfeh
: a very fast image viewerncdu
: a tool for finding things that consume disk space and deleting themmpd
+ncmpcpp
: a great audio player and curses front-end to itpydf
: disk usage in colordzen2
: a tool for displaying information in an overlayzathura
: an awesome PDF viewer with Vim-like key bindingsdtrx
: an intelligent archive extractor- and other useful tools
./install-06-configs.sh
: create symlinks to all the configs, clone.oh-my-zsh
for both<username>
androot
../install-07-fonts.sh
: install freetype2-infinality and a set of fonts:- Terminus
- DejaVu
- TeX Gyre
- Mac fonts
- MS fonts
./install-08-libreoffice.sh
: you need an office in this life, let it be LibreOffice../install-09-tex.sh
: Latex tools: texlive, auctex, texmaker../install-10-python.sh
: Python tools and libs:pip2
: a Python package manageripython2
: a powerful Python Shellbpython2
: another Python Shell with fancy auto-completion- and other tools: ropemacs, pyflakes, pep8
./install-11-pandoc.sh
: a great Haskell library and tool for converting various text file format.
Once the steps are completed, reboot, login, type startx
, and enjoy! :)
This section is still to be written :) Meanwhile, have a look at
~/.xmonad/xmonad.hs
, ~/.zshrc
, ~/.gitconfig
, and ~/.vimrc
.
The source code is released under the Apache 2.0 license.
Copyright (C) 2013 Anton Beloglazov