= dotfiles

My dotfiles for my Linux-based system setup.

== Screenshots

image:docs/i3-multiple-windows.png[My i3 setup with multiple windows]

image:docs/i3-single-window.png[My i3 setup with single window]

image:docs/i3-no-window.png[My i3 setup with no window]

image:docs/i3-rofi.png[My i3 setup with rofi]

== Specifications
Here are the main specifications of my machine currently running this
(as of 2019-08-09):

* **Operating system**: https://www.archlinux.org/[Arch Linux]
* **Display server**: X Window System using https://www.x.org/wiki/[Xorg]
* **Window manager**: https://i3wm.org/[i3] (specifically https://github.com/Airblader/i3[i3-gaps])
* **Terminal emulator**: https://github.com/jwilm/alacritty/[Alacritty]
* **Shell**: https://www.gnu.org/software/bash/[Bash]
* **Terminal emulator font**: https://github.com/be5invis/iosevka[Iosevka]

Terminal color scheme was generated with https://github.com/dylanaraps/pywal[pywal]. 
The picture is used to generate the color pallete is  
https://www.reddit.com/r/wallpapers/comments/cckpj0/i_made_this_simple_and_clean_drawing_over_the/[this one]. 
It's also the wallpaper used in the screenshots.

== Configured programs
Here's a list of the programs with details on the config found in this repo:

=== https://www.x.org/wiki/[Xorg]
A display server implementing X window system.

* Config found at link:xorg/[`xorg/`] directory.
* Minimum version (from `Xorg -version`):
** `X.Org X Server 1.20.5`
** `X Protocol Version 11, Revision 0`
* The configuration is found at `.Xresources` containing the colors (0 to 15, 
foreground, and the background)

=== https://www.vim.org/[Vim]
A modal text editor.

* Config located at link:vim/[`vim/`] directory.
* Minimum version (from `vim --version`): 
** `8.1 (2018 May 18, compiled Jul 29 2019 20:38:53)`
* Contains my plugin list and editor configurations at `.vimrc`
* Eventually my https://github.com/sirver/UltiSnips[UltiSnips] snippets
will also be added

=== https://ranger.github.io/[Ranger]
A Vim-based file browser. 
https://github.com/ranger/ranger/wiki[Here's their config documentation for it.]

* Config located at link:ranger/[`ranger/`] directory.
* Minimum version (from `ranger --version`):
** `ranger version: ranger 1.9.2`
** `Python version: 3.7.4 (default, Jul 16 2019, 07:12:58) [GCC 9.1.0]`
* All of the config files are basically default config files except with a 
few changes.
* Contains keybinding in `rc.conf`. Additional keybindings include the `O` 
keybinding and their variants for opening my go-to programs such as 
https://code.visualstudio.com/[Visual Studio Code].
* `rifle.conf` contains configuration for opening a list of programs. 

=== https://github.com/jwilm/alacritty/[Alacritty]
Similar to https://sw.kovidgoyal.net/kitty[Kitty] , it's a GPU-based terminal 
emulator.

* Config located at link:alacritty/[`alacritty/`] directory.
* Minimum version (from `alacritty --version`):
** `alacritty 0.3.3`
* Contains a single `alacritty.yaml` as the config file. Not much has changed except 
for the color scheme and the font being used.

=== https://github.com/Airblader/i3[i3-gaps] 
A fork of i3 window manager. 
https://i3wm.org/docs[Here's the documentation page of the program.]

* If it's any of importance, the configuration is prone to be moved for the 
https://github.com/i3/i3/[original version of i3] since 
https://github.com/i3/i3/issues/3724[there's consideration for merging of gaps into i3].
* Config located at link:i3/[`i3/`] directory.
* Minimum version (from `i3 --version`):
** `i3 version 4.17 (04.08.2019) © 2009 Michael Stapelberg and contributors`
* Uses https://github.com/davatorium/rofi[`rofi`] as the application launcher and 
serves as a replacement for https://tools.suckless.org/dmenu/[`dmenu`].
* The containing config (`config`) is simply the default config with my personal 
config added into it. Not much to say here except I use `i3bar` (the default bar) and 
https://github.com/i3/i3status[`i3status`] (the default status bar config) to fill in.
* The config for `i3status` is located in a different directory at link:i3status[`i3status/`]
containing a single `config` file (for now).

=== https://github.com/davatorium/rofi[Rofi]
The application switcher and launcher. Also serves as a replacement 
for https://tools.suckless.org/dmenu/[dmenu].

* Config located at link:rofi/[`rofi/`].
* Minimum version (from `rofi -version`):
** `Version: 1.5.4`
* Main config is `config.rasi`.
* My i3 setup uses Rofi with my custom theme (`fds-sidebar`) with 
`$mod+D` (see image above). Every variation of my sidebar theme should 
import the common file (`fds-sidebar-common.rasi`) and only declare 
the colors. See `fds-sidebar-dark.rasi` for an example. 

=== https://www.gtk.org/[GTK]
A library for creating programs with graphical user interface (GUI).

There are often two versions when configuring GTK: version 2 and 3.

* GTK3 config located at link:gtk3/[`gtk3/`].
* Version depends on the program itself.
* Simply contains a `settings.ini` file that contains common configuration 
that'll be applied for most GTK3 apps (Thunar, Inkscape, etc.).
* GTK color and icon theme is https://github.com/NicoHood/arc-theme[Arc theme] 
and uses the light dark variation (`arc-darker`).

== Additional programs used
As much as possible, I use free and open source software for all of my needs. 

=== General purpose programs
* https://audacious-media-player.org/[Audacious] - audio player
* https://feh.finalrewind.org/[feh] - image viewer
* https://www.mozilla.org/en-US/firefox/new/[Firefox] - web browser
* https://github.com/naelstrof/maim[maim] - screenshot utility
* https://obsproject.com/[OBS Studio] - streaming and recording utility
* https://www.openshot.org/[OpenShot] - video editor
* https://docs.xfce.org/xfce/thunar/start[Thunar] - file manager
* https://www.videolan.org/vlc/[VLC Media Player] - multimedia player

=== Device drivers and servers
* https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture[ALSA] - Linux sound driver
* https://ffmpeg.org/[ffmpeg] - multimedia codec including for MP4, FLV, and more
* https://wiki.archlinux.org/index.php/NetworkManager[GNOME NetworkManager]

=== Design
* https://blender.org/[Blender] - 3D modelling program
* https://www.freecadweb.org/[FreeCAD] - a general purpose 3D computer-aided design program
* https://inkscape.org/[Inkscape] - a vector illustration/editing program

=== Fonts
* https://github.com/tonsky/FiraCode[Fira Code] - a programmer-oriented font that supports ligatures
* https://github.com/be5invis/iosevka[Iosevka]
* https://github.com/googlefonts/noto-fonts[Noto Fonts]

=== Documents
* https://www.libreoffice.org/[LibreOffice] - a office productivity suite and serves as a free alternative 
to Microsoft Office suite
* https://www.tug.org/texlive/[TeX Live] - a LaTeX distribution for compiling LaTeX files

=== Development programs
* https://www.anaconda.com/[Anaconda] - a mathematical environment distribution
* https://www.gnu.org/software/octave/[Octave] - mathematical computational environment similar to Matlab
* https://code.visualstudio.com/[Visual Studio Code] - a text editor that comes with lightweight IDE features
