# dotfiles
This repository contains all of my configuration files for my current Arch Linux installation and an install script so I can quickly replicate my setup.

While the configurations are based on my preferences and made my dotfiles public so others can see how I solved specific problems or are looking for some inspiration.

![Screenshot](./screenshot.png)

## Installation
The installation is pretty straightforward using a couple of installation scripts.

1. Clone the repository
2. Run `./install`
3. Reboot the system
4. Run `./post-install`

## Keybindings
| Keybinding                                       | Description                      |
| ------------------------------------------------ | -------------------------------- |
| <kbd>Super</kbd>+<kbd>1-9</kbd>                  | Switching workspace              |
| <kbd>Super</kbd>+<kbd>Shift</kbd>+<kbd>1-9</kbd> | Move focused window to workspace |
| <kbd>Super</kbd>+<kbd>G</kbd>                    | Open game menu                   |

## Contents
The list of my used arch packages are found inside  `packages/packages.list`.

The main content of this repository can be found in the `system` folder. It
contains all configurations files, directories and scripts that mostly get symlinked
by my install script.

### `etc/udev`
This folder contains my custom udev rules. They are moved to
`/etc/udev/rules.d/` by the installation script.

### `etc/sudoers.d`
This folder contains my custom sudoers configuration. They are moved to
`/etc/sudoers.d` by the installation script.

### `.config/autokey`
This folder contains my phrases and scripts for
[AutoKey](https://github.com/autokey/autokey).

### `.config/bat`
This folder contains my configuration for [bat](https://github.com/sharkdp/bat) a replacement for cat.

### `.config/cmus`
This folder contains my [cmus](https://cmus.github.io/)
configuration.

### `.config/compton`
This folder contains my [compton](https://github.com/yshui/compton/releases) configuration.

### `.config/cron`
This folder contains my crontab file.

### `.config/custom`
This folder contains my configuration files that don't fit in any other
directory like `dircolors` and `keyleds`.

### `.config/dconf`
This folder contains my configurations that are stored in dconf by applications. These are getting loaded on boot in `.bash_profile`.

### `.config/dunst`
This folder contains my configuration for the [dunst](https://dunst-project.org) notification daemon.

### `.config/git`
This folder contains my git configuration.

### `.config/gtk-2.0`
This folder contains my GTK 2.0 configuration. I don't edit this configuration
directly but use
[LXAppearance](https://www.archlinux.org/packages/community/x86_64/lxappearance/)
for configuring.

### `.config/gtk-3.0`
This folder contains my GTK 3.0 configuration. I don't edit this configuration directly but use [LXAppearance](https://www.archlinux.org/packages/community/x86_64/lxappearance/) for configuring.

### `.config/httpie`
This folder contains my configuration for [httpie](https://github.com/jakubroztocil/httpie).

### `.config/i3`
This folder contains the configuration for my preferred window manager
[i3](https://i3wm.org/). Instead of the normal i3 I use the
[i3-gaps](https://www.archlinux.org/packages/community/x86_64/i3-gaps/) fork.

### `.config/mpv`
This folder contains my configuration for mpv.

### `.config/polybar`
This folder contains my bar configuration and launch script for
[Polybar](https://polybar.github.io/).

### `.config/redshift`
This folder contains my [Redshift](http://jonls.dk/redshift/) configuration. Redshift adjusts the color
temperature of my screens depending on the time of day.

### `.config/streamlink`
This folder contains my [Streamlink](https://streamlink.github.io/) configuration. I use it to directly watch Twitch livestreams in a local video player.

### `.config/termite`
This folder contains my configuration for my terminal emulator
[Termite](https://github.com/thestinger/termite).

### `.config/vim`
This folder contains my [Vim](https://www.vim.org/) configuration.

### `.config/vue`
This folder contains my configuration for
[vue-cli](https://github.com/vuejs/vue-cli).

### `.config/wget`
This folder contains my configuration for
[wget](https://www.gnu.org/software/wget/).

### `.config/X11`
This folder contains my configuration for the X-Server.

### `.config/zsh`
This folder contains my configuration for Zsh.

### `.config/Trolltech.conf`
This file contains my QT4 configuration.

### `.local/bin`
This folder contains a bunch of scripts that I use. Some of them are used by
Polybar or i3 and others are used directly and some like `utils` contain
functions that I use in other scripts.