Go to file
foo-dogsquared b90dba8a08 Revise the zsh and xorg config
The zsh prompt has been updated to fix the lack of line wrapping in the zsh shell. The proposed solution at https://github.com/ohmyzsh/ohmyzsh/issues/2314 [which is delimiting the color codes] worked and now the prompt properly wraps lines.
2019-12-27 12:09:25 +08:00
alacritty Update alacritty, xorg, and zsh config 2019-12-23 11:45:41 +08:00
bin Update some scripts 2019-12-25 11:48:55 +08:00
bspwm Create config for bspwm, sxhkd, and polybar 2019-12-23 11:44:56 +08:00
docs Update documentation 2019-12-23 11:48:40 +08:00
dunst Create config for dunst 2019-08-18 08:29:48 +08:00
gtk2 Include GTK config 2019-08-15 23:15:26 +08:00
gtk3 Update compton, GTK3, rofi, vim, and UltiSnips snippets (from Vim) 2019-09-14 20:58:12 +08:00
i3 Update the i3 config 2019-10-27 23:26:05 +08:00
i3status Improve config of i3 and ranger 2019-08-11 17:07:25 +08:00
pacman Delete unnecessary pacman hooks 2019-12-23 11:45:59 +08:00
picom Update picom, sxhkd, and zsh 2019-12-25 15:22:52 +08:00
polybar Create config for bspwm, sxhkd, and polybar 2019-12-23 11:44:56 +08:00
ranger Update config for i3, ranger, and Xorg 2019-08-18 08:30:14 +08:00
rofi Update the Rofi config and themes 2019-12-22 21:24:14 +08:00
sxhkd Update picom, sxhkd, and zsh 2019-12-25 15:22:52 +08:00
vim Add a UltiSnips snippet for groff 2019-12-26 12:40:56 +08:00
xorg Revise the zsh and xorg config 2019-12-27 12:09:25 +08:00
zsh Revise the zsh and xorg config 2019-12-27 12:09:25 +08:00
.editorconfig Create an EditorConfig file for snippets 2019-09-30 09:27:18 +08:00
aur-packages.txt Update package lists as of 2019-12-23 2019-12-23 02:23:19 +08:00
LICENSE Initial commit 2019-08-08 17:31:28 +08:00
packages.txt Update package lists as of 2019-12-23 2019-12-23 02:23:19 +08:00
README.adoc Update documentation 2019-12-23 11:48:40 +08:00

My dotfiles for my Linux-based system setup. The structure of this repo is designed to be managed with GNU Stow, a symlinks farm manager.

I dont know what Im doing most of the time in creating this setup so if youre brave (or suicidal) enough to take a look at my stuff (that may or may not be an escaped entry from the SCP Foundation), go ahead.

Caution
Dont blindly apply these dotfiles unless you know what youre doing. Review the code first, change the setting accordingly, and apply it.

Inspirations

Screenshots

My setup was made by the FOSS gang.

bspwm setup with no windows
Figure 1. bspwm setup with no windows
The terminals
Figure 2. bspwm with the terminals
rofi and VS Code setup
Figure 3. rofi and VS Code setup
vim and zathura (and LaTeX) setup
Figure 4. vim and zathura (and LaTeX) setup
A dropdown terminal
Figure 5. A dropdown terminal (because why not)

Specifications

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

Terminal color scheme was generated with pywal. The picture is used to generate the color pallete is this one. Its also the wallpaper used in the screenshots.

Wallpapers

Heres a list of the wallpapers Ive used throughout my ricing journey.

Credits goes to the original creators for these cool wallpapers. :)

Tour of my setup

There are a few things to know on this setup.

  • packages.txt is mainly for archiving my native package list from the official Arch Linux repos installed in my current Arch Linux setup.

  • aur-packages.txt contains the installed packages from AUR along with their versions.

Both of the above files are going to be committed at the start of every month.

My own scripts is in bin/.

Currently, I have them linked in $HOME/bin. Ideally, the linked path should be included as part of the $PATH environment variable.

This is mostly used with hotkey bindings (e.g., sxhkd).

Heres the list of primary scripts:

  • Screenshot capture. Includes the option of delaying and region selection mode.

  • Screen recording. An option of excluding and/or following the mouse cursor is included.

  • Quick command prompts. The script is based from Luke Smiths prompt script.

  • Switching on/off programs. Useful for situations where only one instance of the program is running.

Aside from the scripts, there are also some details and files that are not committed to this setup for privacy and security reasons. A few examples of which is my cron setups where it is tasked with updating and committing the package lists to the Git repo, updating the packages, cleaning the cache, and so much more.

Configured programs

Heres a list of the programs with details on the config found in this repo. Each of the directory is designed to be used/managed with GNU Stow at the indicated target path.

bspwm

A minimalist window manager. Only provides a window manager and nothing else.

  • Config located at bspwm/ directory.

  • The usual target path for a user is at $HOME/.config/bspwm/.

  • Minimum version (from bspwm --version):

    • 0.9.7-10-g2ffd9c1

  • Simply contains bspwmrc which is an executable setting up bspwm-related settings and and starting up some applications.

  • This allows for a modular setup. For using keybindings, it uses sxhkd (Simple X Hotkey Daemon). For something similar to i3-bar, polybar serves as the replacement.

sxhkd

Stands for "Simple X Hotkey Daemon". It is a hotkey daemon detecting certain X events primarily from the keyboard and mouse.

It is also very useful since it enables modular setup. Can be used independent of the desktop environment (DE) or the window manager (WM).

  • Config located at sxhkd/ folder.

  • The usual target path is at $HOME/.config/sxhkd.

  • Minimum version (from sxhkd --version):

    • 0.6.0-3-g7124055

  • Contains a config file (sxhkdrc) for the keybindings. There are some keybindings specifically used for bspwm.

polybar

A tool for creating status bars.

This is the replacement bar from my previous i3-based setup.

  • Config located at polybar/.

  • The usual target path for a user is at $HOME/.config/polybar.

  • Minimum version (from polybar --version):

    • polybar 3.4.1

    • Features: +alsa +curl +i3 +mpd +network(libnl) +pulseaudio +xkeyboard

  • There is only the standalone config (might decide to make it modular) and the launch script which is copied from the related Arch Wiki entry.

For documentation, check out the already linked Arch Wiki entry and the official documentation from GitHub.

Rofi

The application switcher and launcher. Also serves as a replacement for dmenu.

  • Config located at rofi/.

  • The usual target path for a user is at $HOME/.config/rofi/.

  • Minimum version (from rofi -version):

    • Version: 1.5.4

  • Main config is config.rasi.

  • Contains the config and my custom Rofi themes.

To see the documentation, check out the manual entry for rofi. For creating or editing Rofi themes, read the manual entry of rofi-theme. Also, view the related Arch Wiki entry.

Zsh

A Unix shell and an alternative to the Bash.

  • Config found at zsh/ directory.

  • The usual target path for a user is at $HOME/.

  • Minimum version (from zsh --version):

    • zsh 5.7.1 (x86_64-pc-linux-gnu)

  • Contains .zprofile and .zshrc. The primary file to look for is the .profile to set environment variables independent of the shell setups.

Xorg

A display server implementing X window system.

  • Config found at xorg/ directory.

  • The usual target path for a user is at $HOME/.

  • 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).

picom

A window compositor forked from compton that adds off-screen buffers and additional effects and animations to the window. Can be used for adding style to your setup.

This is formerly the Compton configuration.

  • Config found at picom/ directory.

  • The usual target path for a user is at $HOME/.config/picom.

  • Minimum version (from picom --version):

    • v7.2

  • The config is copied from /etc/xorg/picom.conf and edited a few parameters.

Vim

A modal text editor.

  • Config located at vim/ directory.

  • The usual target path for a user is at $HOME/.

  • Minimum version (from vim --version):

    • 8.1 (2018 May 18, compiled Jul 29 2019 20:38:53)

  • Uses vim-plug as the plugin manager.

  • Contains my plugin list and editor configurations at .vimrc.

  • There are also some UltiSnips snippets stored in own-snippets folder (since snippets is a reserved folder name).

  • One of the largest snippet file is the snippets for LaTeX files. It is based on Gilles Castel's UltiSnips LaTeX snippets.

Ranger

  • Config located at ranger/ directory.

  • The usual target path for a user is at $HOME/.config/ranger/.

  • 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 Visual Studio Code.

  • rifle.conf contains configuration for opening a list of programs.

Alacritty

Similar to Kitty , its a GPU-based terminal emulator. Its documentation for the configuration can be viewed at the config file itself being filled with comments.

  • Config located at alacritty/ directory.

  • The usual target path for a user is at $HOME/.config/alacritty/.

  • 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.

GTK

A library for creating programs with graphical user interface (GUI).

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

  • Version depends on the program itself since it is usually statically linked within the GUI program.

  • GTK3 config located at gtk3/.

  • The usual target path of GTK3 for a user is at $HOME/.config/gtk-3.0/.

  • Simply contains a settings.ini file that contains common configuration thatll be applied for most GTK3 apps (Thunar, Inkscape, etc.).

  • GTK2 config located at gkt2/.

  • The usual target path of GTK2 for a user is at $HOME/ because of the .gtkrc-2.0 file needs to at $HOME/.

  • GTK color and icon theme is Arc theme and uses the light dark variation (arc-darker).

Dunst

Its a notification daemon used to display notifications sent by notifiers (programs that send messages/notifications).

  • Config location is at dunst/.

  • The usual target path for a user is at $HOME/.config/dunst/.

  • Minimum version (from dunst --version):

    • Dunst - A customizable and lightweight notification-daemon 1.4.1 (2019-07-03)

  • Simply contains a dunstrc configuring appearance of the notifications.

Look out for the related manual entry (i.e., man dunst) and the Arch Wiki entry.

pacman

The default package manager for Arch Linux.

  • Config location is at pacman/

  • The usual target path is at /etc/pacman.d.

  • Minimum version (from pacman --version):

    • Pacman v5.1.3 - libalpm v11.0.3

  • Contains the configuration file, a mirrorlist file, and some pacman hooks.

  • For the mirrorlist, change it accordingly or generate another one. It is also monthly updated from a cron job.

  • The setup also uses yay as the AUR helper tool.

Additional programs used

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

System administration

Tip
I recommend to start at this list especially if youre starting with a bare minimum of a Linux installation.
  • htop - A process viewer and manager.

  • lxsession - A session manager and an authentication agent for Polkit; very useful if youre usually using with a user-level account.

  • Polkit - A program for bridging unprivileged processes to privileged access.

  • systemd-boot - The UEFI boot manager.

  • udisks - A manager for mounting filesystems.

  • udiskie - An automounter for removable media.

Desktop user experience

  • tmux - A terminal multiplexer useful for managing multiple sessions.

  • tdrop - A modular dropdown creator.

  • mantablockscreen - A lock screen.

  • pywal - An automation tool for generating color schemes from images and applying them to your programs.

  • neofetch - A program for getting information for your hardware and software setup.

General purpose programs

  • Audacious - An audio player with various listening options.

  • feh - A minimal image viewer.

  • Firefox - One of the major web browser second to Chrome.

  • maim - A simple screenshot utility.

  • OBS Studio - A facility for streaming and recording videos.

  • Shotcut - A video editor built with the MLT Framework.

  • Thunar - A file manager. A part of the Xfce desktop environment.

  • Thunderbird - A email client.

  • VLC Media Player - A multimedia player.

  • Weechat - An IRC client on the command line.

Device drivers and servers

Music production

  • Cadence - A set of audio tools. Part of the KX Studio project.

  • Carla - An audio plug-in host supporting various audio plug-in formats such as VST2/3, SF2, and SFZ. Part of the KX Studio project.

  • LMMS - A digital audio workstation for beat production.

  • Musescore - A music composition and notation software.

Design

  • Blender - A top-notch 3D modelling program.

  • FreeCAD - A general purpose 3D computer-aided design program.

  • Inkscape - A vector illustration/editing program. Alternative to Adobe Illustrator.

  • Krita - A painting/illustration program.

Fonts

Documents

  • Asciidoctor - A text formatting language suitable for creating books, documentations, and writings. Highlights a heavier feature set compared to Markdown.

  • Hugo - A static site generator for creating websites. Useful for a variety of document formats to be converted into a website especially with the (bare) support for Pandoc converter.

  • LibreOffice - An office productivity suite and serves as a free alternative to Microsoft Office suite.

  • Pandoc - A universal document converter that supports a wide variety of document formats. Primarily used for converting Markdown documents into Asciidoctor text.

  • TeX Live - A cross-platform LaTeX distribution for compiling LaTeX files.

  • LuaTeX - The TeX engine I primarily use for my LaTeX documents.

Mathematical tools

  • Anaconda - A mathematical environment distribution.

  • Octave - A mathematical computational environment similar to Matlab.

  • R - Similar to Octave.

Software development

  • CMake - A cross-platform build system that takes care of build configurations.

  • GCC - A set of compilers from GNU. I mainly use it for developing and compiling C and C++ languages.

  • Git - My one and only version control system.

  • Godot Engine - A game engine with its own interface.

  • Make - A build automation system.

  • Visual Studio Code - A text editor that comes with lightweight IDE features.

  • The programming language runtime for Python, Ruby, Java, Rust, and Go.

Browser extensions