mirror of
https://github.com/foo-dogsquared/dotfiles.git
synced 2025-01-31 04:57:57 +00:00
f7d09f9484
See https://forum.kicad.info/t/warning-avoid-all-links-to-kicad-pcb-org-use-kicad-org/31521
648 lines
33 KiB
Plaintext
Executable File
648 lines
33 KiB
Plaintext
Executable File
= dotfiles
|
|
:toc:
|
|
|
|
My dotfiles for my Linux-based system setup.
|
|
The structure of this repo is designed to be managed with https://www.gnu.org/software/stow/[GNU Stow], a symlinks farm manager.
|
|
|
|
I don't know what I'm doing most of the time in creating this setup so if you're brave (or suicidal) enough to take a look at my stuff, go ahead.
|
|
|
|
CAUTION: As they always say: "Don't blindly apply these dotfiles unless you know what you're doing."
|
|
Review the code first, change the setting accordingly, and apply it on your own if you want.
|
|
|
|
|
|
|
|
|
|
== Screenshots
|
|
|
|
Want to see how my setup look first?
|
|
Alright.
|
|
|
|
.bspwm setup with no windows
|
|
image::docs/bspwm-empty.png[bspwm setup with no windows]
|
|
|
|
.Editors, lots of editors footnote:[For this who are curious for the editors, it's Neovim, Doom Emacs, and Visual Studio Code.]
|
|
image::docs/editors-ahoy.png[Editors, lots of editors]
|
|
|
|
.bspwm with some terminal applications
|
|
image::docs/terminals.png[The terminals]
|
|
|
|
.rofi, dunst, and lf
|
|
image::docs/rofi-dunst-and-lf.png[rofi, dunst, and lf]
|
|
|
|
.vim and zathura (and LaTeX) setup
|
|
image::docs/vim-and-zathura.png[vim and zathura (and LaTeX) setup]
|
|
|
|
.A dropdown terminal (because why not)
|
|
image::docs/dropdown-term.png[A dropdown terminal]
|
|
|
|
|
|
|
|
|
|
== Specifications
|
|
|
|
Here are the main specifications of my machine currently running this (as of 2020-09-11):
|
|
|
|
* **Operating system**: https://nixos.org/[NixOS]-based distros (e.g., NixOS, GuixSD)
|
|
* **Display server**: X Window System using https://www.x.org/wiki/[Xorg]
|
|
* **Window manager**: https://github.com/baskerville/bspwm[bspwm]
|
|
* **Terminal emulator**: https://github.com/jwilm/alacritty/[Alacritty]
|
|
* **Shell**: http://www.zsh.org/[Zsh]
|
|
* **Terminal emulator font**: https://github.com/be5invis/iosevka[Iosevka]
|
|
* **GTK theme**: https://github.com/horst3180/Arc-theme[Arc theme] (Arc Darker variant)
|
|
|
|
|
|
|
|
|
|
== Tour of my setup
|
|
|
|
Here's what the setup should look like (aside from the Stow packages which will be discussed later):
|
|
|
|
[source]
|
|
----
|
|
dotfiles
|
|
├── .vtsm/
|
|
├── docs/
|
|
├── LICENSE
|
|
├── makefile
|
|
├── README.adoc
|
|
└── vtsm
|
|
----
|
|
|
|
The big picture for my dotfiles setup have big goals and those are (according to priority):
|
|
|
|
* Easy to transfer and/or reproduce.
|
|
* Modularity, https://github.com/holman/dotfiles[@holman]-style.
|
|
* Looking cool (but not too cool or else my potato will weep).
|
|
|
|
|
|
=== How I maintain my dotfiles
|
|
|
|
The dotfiles are mostly intended to be used with GNU Stow.
|
|
If you're not familiar with it, you can read http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html[this sweet short article] to get you started.
|
|
|
|
However, with Python 3 (specifically 3.8) installed, you have another option.
|
|
Behold, the link:./vtsm["Very Tiny Stow Manager"] (VTSM for short)!
|
|
The best way to describe VTSM is basically GNU Stow with a generic shell runner.
|
|
VTSM takes inspiration from GNU Stow (obviously) and https://github.com/holman/dotfiles[how Zach Holman's dotfiles are set].
|
|
When managing your dotfiles, VTSM is going to be your friend/workmate.
|
|
|
|
All VTSM needs is a directory containing a package list stored in a JSON file with the name of the packages and their target path.
|
|
By default, it searches for a file named `locations.json` but you can specify what JSON file to use with the `-m`/`--manifest` option.
|
|
|
|
.An example of what a manifest could contain
|
|
[source, json]
|
|
----
|
|
{
|
|
"alacritty": "$HOME/.config/alacritty/",
|
|
"bin": "$HOME/bin/",
|
|
"bspwm": "$HOME/.config/bspwm/",
|
|
"dunst": "$HOME/.config/dunst/",
|
|
"emacs": "$HOME/.config/doom",
|
|
"lf": "$HOME/.config/lf",
|
|
"nvim": "$HOME/.config/nvim/",
|
|
"picom": "$HOME/.config/picom",
|
|
"polybar": "$HOME/.config/polybar",
|
|
"rofi": "$HOME/.config/rofi/",
|
|
"sxiv": "$HOME/.config/sxiv",
|
|
"sxhkd": "$HOME/.config/sxhkd/",
|
|
"wal": "$HOME/.config/wal",
|
|
"xorg": "$HOME",
|
|
"zsh": "$HOME"
|
|
}
|
|
----
|
|
|
|
With the tiny manager and the package list, we can then execute commands with all of the packages and its target path with one go.
|
|
Here are some examples of running commands with VTSM.
|
|
|
|
[source, shell]
|
|
----
|
|
# Take the setup as the filesystem structure.
|
|
# See the JSON files at .vtsm to see what packages to be installed and where to install them.
|
|
|
|
# Running the program without any arguments for a test run.
|
|
# There should be a bunch of `echo` commands being ran for all of the listed packages.
|
|
./vtsm
|
|
|
|
# Create the directories of the target path and install them with GNU Stow.
|
|
# Bada-bing, bada-boom, you have installed your setup or something.
|
|
./vtsm --manifest .vtsm/arch.json --commands "mkdir -p {location} && stow {package} --target {location}"
|
|
|
|
# Run commands only to Rofi and Emacs config files.
|
|
./vtsm --manifest .vtsm/arch.json --only "rofi" "emacs" --commands "stow --restow {package} --target {location}"
|
|
----
|
|
|
|
For the command string, it is a https://docs.python.org/3/library/string.html#string.Template[Python template] with `package` and `location` as the available objects.
|
|
|
|
|
|
=== Custom scripts
|
|
|
|
Next are more custom scripts!
|
|
They're located in link:bin/[`bin/`] and ideally should be linked in `$HOME/.local/bin`.
|
|
footnote:[This is a part of the package list but I think it's appropriate to create a dedicated subsection for this.]
|
|
|
|
Here's a list of the top most useful scripts (at least for me):
|
|
|
|
* link:./bin/rofi-screenshot-menu[A Rofi menu for all of my screenshoting and screencasting needs].
|
|
The script is also a fork of https://github.com/ceuk/rofi-screenshot[`ceuk's` rofi-screenshot].
|
|
Big thanks to them for the idea!
|
|
|
|
* link:./bin/ocr[An image selection-to-text script using OCR].
|
|
Capture a region, process it through an OCR engine, and the content are then copied into the clipboard.
|
|
Useful for capturing links in images or videos usually found in lecture videos.
|
|
|
|
* link:./bin/user-prompt[Quick command prompts].
|
|
The script is based from https://github.com/LukeSmithxyz/voidrice/blob/master/.local/bin/prompt[Luke Smith's prompt script].
|
|
|
|
* link:./bin/toggle-process[Switching on/off programs].
|
|
Useful for situations where only one instance of the program is desirable.
|
|
|
|
* link:./bin/choose-emoji-menu[A universal emoji list] for easy copy-pasting and clear communication with those who speak Emojian.
|
|
|
|
|
|
|
|
|
|
== Configured programs
|
|
|
|
Here's a list of the programs with details on the config found in this repo.
|
|
Each of the listed directory is designed to be used/managed with https://www.gnu.org/software/stow/[GNU Stow] at the indicated target path.
|
|
|
|
Each of my configuration also tries to be visually consistent but it is only a secondary priority.
|
|
For a color scheme, my main preference is https://www.nordtheme.com/[Nord].
|
|
|
|
|
|
=== https://github.com/jwilm/alacritty/[Alacritty]
|
|
|
|
Similar to https://sw.kovidgoyal.net/kitty[Kitty] , it's a GPU-based terminal emulator.
|
|
It's documentation for the configuration can be viewed at the config file itself being filled with comments.
|
|
|
|
* Config located at link:alacritty/[`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.
|
|
|
|
|
|
=== https://github.com/baskerville/bspwm[bspwm]
|
|
|
|
A minimalist window manager.
|
|
Only provides a window manager and nothing else.
|
|
|
|
* Config located at link:bspwm/[`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.
|
|
However, the "true" version is stored as a https://github.com/dylanaraps/pywal/wiki/User-Template-Files[template file] for pywal (located at link:wal/templates/bspwmrc[`wal/templates/bspwmrc`]).
|
|
* This allows for a modular setup.
|
|
For using keybindings, it uses `sxhkd` (Simple X Hotkey Daemon).
|
|
For something similar to i3-bar, https://github.com/polybar/polybar[polybar] serves as the replacement.
|
|
|
|
To control the window manager, you should use `bspc`.
|
|
|
|
|
|
=== https://dunst-project.org/[Dunst]
|
|
|
|
It's a notification daemon used to display notifications sent by notifiers (programs that send messages/notifications).
|
|
|
|
* Config location is at link:dunst/[`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.
|
|
Though, the "true" version of the config is located at link:wal/templates/dunstrc[`wal/templates/dunstrc`].
|
|
|
|
Look out for the related manual entry (i.e., `man dunst`) and the https://wiki.archlinux.org/index.php/Dunst[Arch Wiki entry].
|
|
|
|
|
|
=== https://www.gnu.org/software/emacs/[GNU Emacs]
|
|
|
|
Another text editor, of course.
|
|
I finally bit the bullet with this one with the native support for https://orgmode.org/[Org Mode] as the biggest reason.
|
|
(Is this going to be start of something sinister?)
|
|
|
|
* This package is really a https://github.com/hlissner/doom-emacs[Doom Emacs]-based configuration more than the vanilla config so you need to install it first before touching the config with your grubby hands.
|
|
Just run the following command `git clone https://github.com/hlissner/doom-emacs ~/.emacs.d && ~/.emacs.d/bin/doom install` and it should take care of the rest.
|
|
* Config located at link:emacs/[`emacs/`].
|
|
* The ideal target path for a user is at `$HOME/.config/doom`.
|
|
* Minium version (from `emacs --version`):
|
|
** `GNU Emacs 26.3`
|
|
** For Doom Emacs, it's not particularly important since it's in rolling release but for future references, it is from the `develop` branch at commit https://github.com/hlissner/doom-emacs/commit/efa599f076c3a140c6b4006c352fdba3361abebd[`efa599f076c3a140c6b4006c352fdba3361abebd`] accessed at 2020-04-24.
|
|
* The Doom configs are just the default config and some snippets (in `snippets/`) so there's not much to go through here.
|
|
* Regarding theming Doom Emacs, I've found mainly two ways.
|
|
** First is simply using https://gitlab.com/jjzmajic/ewal[ewal] but the resulting colors are not pretty IMO and I haven't found a way to customize it aside from forking and modifying the package itself.
|
|
** Second is simply generating the Doom Emacs theme file myself;
|
|
I have a https://gitlab.com/foo-dogsquared/doom-theme-generator[small script] that is generates one from the Pywal color scheme.
|
|
** Or simply don't and use https://gitlab.com/protesilaos/modus-themes[modus-themes] instead for that light customization options.
|
|
|
|
|
|
=== https://github.com/gokcehan/lf[lf]
|
|
|
|
A http://ranger.github.io/[ranger]-inspired terminal file manager.
|
|
https://godoc.org/github.com/gokcehan/lf[Here's the documentation for it.]
|
|
|
|
* Config located at link:lf/[`lf/`] directory.
|
|
* The usual target path for a user is at `$HOME/.config/lf/`.
|
|
* Minimum version (from `lf --version`):
|
|
** `r14`
|
|
* All of the config files are basically default config files except with a few personal changes.
|
|
|
|
|
|
=== https://neovim.io/[Neovim]
|
|
|
|
A modern version of https://www.vim.org/[Vim], a modal text editor.
|
|
footnote:[Migrated after I've seen https://lukesmith.xyz/[Luke-senpai] used it in his recent videos.
|
|
Seriously though, I find nvim to be way better for configuration.]
|
|
|
|
* Config located at link:nvim/[`nvim/`] directory.
|
|
* The usual target path for a user is at `$HOME/.config/nvim`.
|
|
* Minimum version (from `nvim --version`):
|
|
** `NVIM v0.4.3`
|
|
* Uses https://github.com/junegunn/vim-plug[`vim-plug`] as the plugin manager.
|
|
* Contains my plugin list and editor configurations in `init.vim`.
|
|
* There are also some https://github.com/sirver/UltiSnips[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 https://github.com/gillescastel/latex-snippets/[_Gilles Castel_'s UltiSnips LaTeX snippets].
|
|
|
|
|
|
=== https://github.com/yshui/picom[picom]
|
|
|
|
A window compositor forked from https://github.com/chjj/compton[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 link:picom/[`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.
|
|
|
|
For documentation, check out the manual entry (i.e., `man picom`) and the https://wiki.archlinux.org/index.php/Picom[related Arch Wiki entry].
|
|
The default configuration (located at `/etc/xdg/picom.conf` assuming at Arch Linux) can be helpful as well as it is filled with comments.
|
|
|
|
|
|
=== https://github.com/polybar/polybar[polybar]
|
|
|
|
A tool for creating status bars.
|
|
|
|
This is the replacement bar from my previous i3-based setup.
|
|
|
|
* Config located at link:polybar[`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 https://wiki.archlinux.org/index.php/Polybar[related Arch Wiki entry].
|
|
The theme is dynamically used with the Xresources file (by using `xrdb`).
|
|
|
|
For documentation, check out the https://wiki.archlinux.org/index.php/Polybar[already linked Arch Wiki entry] and the https://github.com/polybar/polybar/wiki[official documentation from GitHub].
|
|
|
|
|
|
=== 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/`].
|
|
* 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 https://wiki.archlinux.org/index.php/Rofi[Arch Wiki entry].
|
|
|
|
|
|
=== https://github.com/naelstrof/slop[slop]
|
|
|
|
A select operator for X-based systems with all the fanciful bell and whistles.
|
|
|
|
* Config located at link:slop[`slop`].
|
|
* The usual target path is at `$HOME/.config/slop`.
|
|
* Minimum version (from `slop --version`):
|
|
** v7.5
|
|
* It only contains customized selection shaders and whatnot that may be used for my custom scripts.
|
|
|
|
|
|
=== https://github.com/baskerville/sxhkd[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 link:sxhkd/[`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`.
|
|
|
|
|
|
=== https://github.com/muennich/sxiv[sxiv]
|
|
|
|
A simple developer-oriented X image viewer with a lot of options for customization.
|
|
|
|
* Config located at link:sxiv/[`sxiv/`] directory.
|
|
* The usual target path is at `$HOME/.config/sxiv`.
|
|
* Minimum version (from `sxiv -v`):
|
|
** `sxiv 26`
|
|
* Contains custom keybindings (with `exec/key-handler`) and a configuration for the status bar (with `exec/image-info`).
|
|
|
|
sxiv has a manual (i.e., `man sxiv`) so that's convenient.
|
|
I also recommend https://www.youtube.com/watch?v=GYW9i_u5PYs[Luke Smith's video] introducing it.
|
|
That's where I also heard of it.
|
|
|
|
|
|
=== https://www.zsh.org/[Zsh]
|
|
|
|
A Unix shell and an alternative to the Bash.
|
|
Mostly chosen due to its wide options for customization compared to GNU Bash.
|
|
|
|
* Config found at link:zsh/[`zsh/`] directory.
|
|
* The usual target path for a user is at `$HOME/.config/zsh`.
|
|
You do have to set `ZDOTDIR=$XDG_CONFIG_HOME/zsh` at `/etc/zsh/zshenv` (requires root privilege) though.
|
|
* 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.
|
|
* Previously relied on https://github.com/robbyrussell/oh-my-zsh/[oh-my-zsh].
|
|
Eventually, the config became independent and can work without it.
|
|
|
|
For the documentation, check out the manual entry for `zsh` to gain an overview of the shell.
|
|
The documentation itself is massive and comprehensive.
|
|
The main manual explains some things such as the startup/shutdown files and compatibility with other shells.
|
|
It also lays out the sections of the manual which you can check it out.
|
|
|
|
Since the manual has been split into multiple sections, it can be daunting to navigate.
|
|
The most referred sections by far are `zshmisc` where it gives details on the miscellanea of zsh such as the prompt and special variables you might want to know.
|
|
The other section is `zshbuiltins` where it explains built-in commands of zsh.
|
|
|
|
For coding with Zsh, look into the http://zsh.sourceforge.net/Doc/Release/index.html[Zsh Manual].
|
|
|
|
|
|
|
|
|
|
== Additional programs used
|
|
|
|
As much as possible, I use free and open source software (FOSS) for all of my needs.
|
|
Not all of the items listed are FOSS, though.
|
|
footnote:[You can also view the package lists at the project root for a detailed list.]
|
|
|
|
|
|
=== Browser extensions
|
|
|
|
* https://bitwarden.com/[Bitwarden] - An open source password manager.
|
|
Comes with a browser extension or a desktop version of the app.
|
|
* Internet Archive Web Extension (https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak[Chrome] and https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/[Firefox] version) - A browser extension for tracking down the saved versions of a page.
|
|
Very useful extension for tracking old resources that has been moved or deleted.
|
|
* https://github.com/gorhill/uBlock[uBlock Origin] - A security tool for blocking known trackers.
|
|
* https://www.one-tab.com/[OneTab extension] - An extension to enable grouping of tabs into one tab.
|
|
Convenient for preventing a lot of tabs opened at one time.
|
|
* https://www.eff.org/privacybadger[Privacy Badger] - A security tool for blocking trackers.
|
|
Unlike the other blockers like uBlock Origin, Privacy Badger learns with more usage.
|
|
|
|
|
|
=== Command line tools
|
|
|
|
I still use https://www.gnu.org/software/coreutils/[GNU coreutils] and common Unix tools (e.g., https://curl.haxx.se/[cURL]) but it could be good to find some alternatives.
|
|
If you want to look for some alternatives or just feeling adventurous yourself, I recommend starting with https://github.com/agarrharr/awesome-cli-apps[this awesome list] and https://github.com/alebcay/awesome-shell[this one, too].
|
|
|
|
* https://github.com/sharkdp/bat[bat] - Basically `cat(1)` with wings.
|
|
* https://github.com/jarun/Buku[Buku] - A developer-oriented (i.e., easy to integrate with your own programs) browser-independent bookmark manager for the command line.
|
|
* https://github.com/cookiecutter/cookiecutter[Cookiecutter] - A project template generator for your... projects. :)
|
|
* https://github.com/ogham/exa[exa] - A user-friendly replacement for `ls(1)`.
|
|
* https://github.com/sharkdp/fd[fd] - A user-friendly alternative to `find(1)` from https://www.gnu.org/software/findutils/[GNU `findutils`].
|
|
* https://feh.finalrewind.org/[feh] - A minimal image viewer.
|
|
* https://github.com/junegunn/fzf[fzf] - A fuzzy command line finder.
|
|
* https://github.com/sharkdp/hexyl[hexyl] - A hex viewer on the command line.
|
|
* https://github.com/gokcehan/lf[lf] - A terminal file manager mainly inspired by http://ranger.github.io/[Ranger].
|
|
* https://github.com/naelstrof/maim[maim] - A simple screenshot utility.
|
|
* https://github.com/dylanaraps/neofetch/[neofetch] - A program for getting information for your hardware and software setup.
|
|
footnote:[You can also take a look at https://github.com/dylanaraps/pfetch[pfetch] (created by the same author) which can be an excellent reference for getting system information between Unix-based systems.
|
|
Seriously though, it's insane;
|
|
the guy's a wizard.]
|
|
* https://neovim.io/[Neovim] - A modern fork of https://www.vim.org/[Vim].
|
|
* https://github.com/BurntSushi/ripgrep[ripgrep] - A fast alternative to https://www.gnu.org/software/grep/[GNU `grep`].
|
|
* https://weechat.org/[Weechat] - An IRC client on the command line.
|
|
* https://github.com/ytdl-org/youtube-dl[youtube-dl] - A utility for downloading YouTube videos (and also others).
|
|
|
|
|
|
=== Design
|
|
|
|
* https://blender.org/[Blender] - A top-notch 3D modelling program.
|
|
* https://draw.io/[draw.io] - A drawing board for your flowcharts and other charts, maybe.
|
|
* https://www.freecadweb.org/[FreeCAD] - A general purpose 3D computer-aided design program.
|
|
* https://inkscape.org/[Inkscape] - A vector illustration/editing program. Alternative to Adobe Illustrator.
|
|
* https://www.kicad.org/[KiCad] - An electronic design automation suite.
|
|
* https://krita.org/en/[Krita] - A painting/illustration program.
|
|
|
|
|
|
=== Desktop user experience
|
|
|
|
* https://github.com/tmux/tmux/[tmux] - A terminal multiplexer useful for managing multiple sessions.
|
|
* https://github.com/noctuid/tdrop[tdrop] - A modular dropdown creator.
|
|
* https://github.com/dylanaraps/pywal[pywal] - An automation tool for generating color schemes from images and applying them to your programs.
|
|
|
|
|
|
=== Device drivers and servers
|
|
|
|
* https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture[ALSA] - A Linux sound driver.
|
|
* https://wiki.archlinux.org/index.php/NetworkManager[GNOME NetworkManager]
|
|
* https://www.nvidia.com/Download/index.aspx?lang=en-us[NVIDIA Driver] - Since I have an NVIDIA-based GPU (NVIDIA GeForce GT 630), I have to use that.
|
|
|
|
|
|
=== Documents
|
|
|
|
* https://asciidoctor.org/[Asciidoctor] - A text formatting language suitable for creating books, documentations, and writings.
|
|
Highlights a heavier feature set compared to Markdown.
|
|
* https://github.com/gohugoio/hugo[Hugo] - A static site generator for creating websites and personal wikis.
|
|
* https://jupyter.org/[Jupyter] - Similar to R Markdown except with a stronger emphasis for https://en.wikipedia.org/wiki/Literate_programming[literate programming].
|
|
This is closely associated with the https://anaconda.com/[Anaconda distribution].
|
|
Useful for a variety of document formats to be converted into a website especially with the (bare) support for https://pandoc.org/[Pandoc] converter.
|
|
* https://www.libreoffice.org/[LibreOffice] - An office productivity suite and serves as a free alternative to Microsoft Office suite.
|
|
* http://luatex.org/[LuaTeX] - The TeX engine I primarily use for my LaTeX documents.
|
|
* https://orgmode.org/[Org-mode] - A lightweight text formatting language that offers a variety of export options, literate programming, and reproducible of stuff similar to Jupyter Notebooks.
|
|
* https://pandoc.org/[Pandoc] - A universal document converter that supports a wide variety of document formats.
|
|
Primarily used for converting Markdown documents into Asciidoctor text.
|
|
* https://rmarkdown.rstudio.com/[R Markdown] - A text formatting language that comes with executing programs with live output in the notebook.
|
|
* https://www.tug.org/texlive/[TeX Live] - A cross-platform LaTeX distribution for compiling LaTeX files.
|
|
|
|
|
|
=== Fonts
|
|
|
|
* https://github.com/belluzj/fantasque-sans[Fantasque Sans Mono] - A serif-style monospace font for fancy occasions.
|
|
* https://github.com/tonsky/FiraCode[Fira Code] - A programmer-oriented font that supports ligatures.
|
|
* https://fontawesome.com/[Font Awesome] - A set of icons for your user interface and stuff.
|
|
* https://github.com/be5invis/iosevka[Iosevka] - A monospace text that features ligatures and provides a wide variety of symbols.
|
|
It is currently my terminal font.
|
|
* https://www.jetbrains.com/lp/mono/[Jetbrains Mono] - A free and open source font featuring ligatures by Jetbrains.
|
|
* http://www.gust.org.pl/projects/e-foundry/lm-math[Latin Modern Math] - A serif font specifically for mathematical and scientific work.
|
|
It is based from Computer Modern Math (the default typeface for LaTeX documents).
|
|
It is also my go-to font for mathematical fonts.
|
|
* https://github.com/ryanoasis/nerd-fonts[Nerd Fonts] - A suite of font tools.
|
|
Also offers 40+ patched fonts of the popular fonts such as Iosevka, Fira Code, and many others.
|
|
* https://github.com/googlefonts/noto-fonts[Noto Fonts] - A font family provided by Google.
|
|
Features a wide support for a variety of languages and styles.
|
|
* https://www.ibm.com/plex/[Plex] - The font family of IBM.
|
|
Offers a wide variety of styles from the serif, sans, and monospace.
|
|
footnote:[There is a plan to extend the fonts to include mathematical symbols but as of 2020-03-27, it's not yet complete.]
|
|
* https://github.com/adobe-fonts/source-serif-pro[Source Serif Pro] - A free and open source serif font by Frank Grießhammer for Adobe.
|
|
Part of the Adobe's Source Pro open source font family.
|
|
It is also my go-to serif font for my documents (e.g., LaTeX documents).
|
|
* https://github.com/adobe-fonts/source-sans-pro[Source Sans Pro] - Another one of the Adobe's Source Pro open source font family.
|
|
I use it when paired with Source Serif Pro.
|
|
The go-to sans font for my go-to serif font.
|
|
* https://github.com/stipub/stixfonts[STIX] - A mathematical font based from the Times New Roman font.
|
|
This is my second math font of choice.
|
|
|
|
|
|
=== Graphical programs
|
|
|
|
* https://discordapp.com/[Discord] - A certain police PSA said Discord users are hackers and I want to be one so I joined.
|
|
* https://www.mozilla.org/en-US/firefox/new/[Firefox] - One of the major web browser second to Chrome.
|
|
* https://docs.xfce.org/xfce/thunar/start[Thunar] - A file manager and a part of the https://xfce.org/[XFCE] package.
|
|
footnote:[I'm mainly using https://github.com/gokcehan/lf[lf], don't fret.]
|
|
* https://www.thunderbird.net/[Thunderbird] - An email client.
|
|
footnote:[I'm sorry I'm not using a based command line tool like https://github.com/neomutt/neomutt[Neomutt] yet.
|
|
Please don't crucify me, I'm on my way to be cool, I swear.]
|
|
* https://www.qbittorrent.org/[Qbittorrent] - A torrent manager for sailing the web (or the seven seas).
|
|
|
|
|
|
=== Icon sets
|
|
|
|
* https://fontawesome.com/[Font Awesome] - An extensive collection of general icons with various styles.
|
|
* https://github.com/Templarian/MaterialDesign[Material Design] - A community-led icon set derived from Google's own Material icons.
|
|
* https://github.com/powerline/fonts[Powerline fonts] - A font specifically made for them powerline status bars.
|
|
* https://github.com/simple-icons/simple-icons/[Simple Icons] - A collection of popular brand icons.
|
|
|
|
|
|
=== Mathematical tools
|
|
|
|
* https://www.anaconda.com/[Anaconda] - A mathematical environment distribution.
|
|
* https://www.gnu.org/software/octave/[Octave] - A mathematical computational environment similar to Matlab.
|
|
* https://www.r-project.org/[R] - Similar to Octave.
|
|
|
|
|
|
=== Multimedia-related tools
|
|
|
|
* https://audacious-media-player.org/[Audacious] - An audio player with various listening options.
|
|
footnote:[Don't worry, I'm trying to be cool by considering https://rybczak.net/ncmpcpp/[`ncmpcpp`].]
|
|
* https://ffmpeg.org/[ffmpeg] - A multimedia codec including for MP4, FLV, and more.
|
|
Also can be used as a recorder.
|
|
* https://www.imagemagick.org/[ImageMagick] - A software suite for graphics.
|
|
* https://obsproject.com/[OBS Studio] - A facility for streaming and recording videos.
|
|
* https://www.shotcut.org/[Shotcut] - A video editor built with the https://www.mltframework.org/[MLT Framework].
|
|
* https://github.com/muennich/sxiv[sxiv] - Self-explaining-ly named "Simple X Image Viewer".
|
|
* https://www.videolan.org/vlc/[VLC Media Player] - A multimedia player.
|
|
|
|
|
|
=== Music production
|
|
|
|
You can find my crappy soundtracks primarily in my https://www.youtube.com/channel/UCuMiU9bzATu5oTp-vhOlL2Q[YouTube channel] (may consider a SoundCloud account or similar).
|
|
|
|
* https://kx.studio/Applications:Cadence[Cadence] - A set of audio tools.
|
|
* https://kx.studio/Applications:Carla[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.
|
|
* https://lmms.io/[LMMS] - A digital audio workstation for beat production.
|
|
* https://musescore.org/[Musescore] - A music composition and notation software.
|
|
* https://supercollider.github.io/[SuperCollider] - A platform for audio synthesis and algorithmic composition.
|
|
|
|
|
|
=== Software development
|
|
|
|
* https://docker.com/[Docker] - An application for virtualizing your environments with containers.
|
|
* https://bitbucket.org/eradman/entr[entr] - A utility for running commands for certain filesystem events.
|
|
Useful for not fiddling with `inotify`.
|
|
* https://gcc.gnu.org/[GCC] - A set of compilers from GNU; I mainly use it for developing and compiling C and C++ languages.
|
|
* https://git-scm.com/[Git] - My one and only version control system.
|
|
* https://godotengine.org/[Godot Engine] - A game engine with its own interface.
|
|
* https://llvm.org/[LLVM] - A set of compilers similar to GCC; mainly used it for testing other C/C++ stuff.
|
|
* https://www.gnu.org/software/make/[Make] - A build automation system.
|
|
* https://www.vagrantup.com/[Vagrant] - A virtual machine manager with a focus for developer environments.
|
|
* https://code.visualstudio.com/[Visual Studio Code] - A text editor that comes with lightweight IDE features.
|
|
* Whatever runtimes/toolchains for programming languages I have (e.g., Oracle Java, Rust, Go, LLVM).
|
|
|
|
|
|
=== System administration
|
|
|
|
TIP: I recommend to start at this list especially if you're starting with a bare minimum of a Linux installation.
|
|
|
|
* https://hisham.hm/htop/[htop] - A process viewer and manager.
|
|
* https://github.com/lxde/lxsession[lxsession] - A session manager and an authentication agent for Polkit; very useful if you're usually using with a user-level account.
|
|
* https://www.freedesktop.org/wiki/Software/polkit/[Polkit] - A program for bridging unprivileged processes to privileged access.
|
|
* https://wiki.archlinux.org/index.php/Systemd-boot[systemd-boot] - The UEFI boot manager.
|
|
* https://www.freedesktop.org/wiki/Software/udisks/[udisks] - A manager for mounting filesystems.
|
|
* https://github.com/coldfix/udiskie[udiskie] - An automounter for removable media.
|
|
|
|
|
|
|
|
|
|
== Inspirations
|
|
|
|
* https://github.com/addy-dclxvi/almighty-dotfiles/
|
|
* https://github.com/LukeSmithxyz/voidrice
|
|
* https://github.com/adi1090x
|
|
* https://github.com/jethrokuan/dots/ for his Emacs and Org Mode writing setup.
|
|
He also has a dedicated series on his https://blog.jethro.dev/[blog site] if you want the juicy details.
|
|
* https://www.reddit.com/r/unixporn/ obviously.
|
|
* Specifically for https://www.reddit.com/r/unixporn/comments/8ezsq7/bspwm_terminal_tabs_in_polybar_dark_and_dull_exam/[the tabbed terminals idea] and the https://github.com/Nikzt/dotfiles[linked dotfiles repo]) (not yet implemented, still cleaning up my stuff)
|
|
* https://www.reddit.com/r/unixporn/comments/edmb8b/awesome_gnawesome/[Just] https://github.com/ilovecookieee/Glorious-Dotfiles[saving] https://github.com/PapyElGringo/material-awesome[these] for an **awesome** future, hehehe.
|
|
|
|
|
|
|
|
|
|
== Wallpapers
|
|
|
|
Here's a list of some of the best wallpapers I've used throughout my ricing journey.
|
|
I've also tried to get the creators to show appreciation for their work.
|
|
|
|
* https://www.deviantart.com/rmradev/art/Alien-Moon-743912901[`alien-moon.jpg`]
|
|
** Creator: https://www.deviantart.com/rmradev[rmRadev]
|
|
|
|
* https://dribbble.com/shots/3713646-Small-Memory[`forest-bright.jpg`]
|
|
** Creator: https://dribbble.com/MikaelGustafsson[Mikael Gustafsson]
|
|
|
|
* https://dropr.com/mbdsgns/254740/hotline_miami_iv/+?p=1388845[`hotline-miami-alt-cover.png`]
|
|
** Creator: https://dropr.com/mbdsgns[Mbdsgns]
|
|
|
|
* https://www.artstation.com/artwork/wn8ng[`long-walk-home.jpg`]
|
|
** Creator: https://www.artstation.com/beaulamb[Beau Lamb]
|
|
|
|
* https://www.reddit.com/r/wallpapers/comments/g6tgst/night_landscape_mountain_and_milky_way_galaxy[`mountain-with-galaxy.jpg`]
|
|
** I was not able to track down the photographer of this one.
|
|
|
|
* https://www.reddit.com/r/wallpapers/comments/cckpj0/i_made_this_simple_and_clean_drawing_over_the/[`nebula.jpg`]
|
|
** Creator: https://www.reddit.com/user/datGryphon/[datGryphon]
|
|
|
|
* https://www.artstation.com/artwork/XOQdR[`the-core.jpg`]
|
|
** Creator: https://www.artstation.com/beaulamb[Beau Lamb]
|
|
|
|
* https://www.reddit.com/r/wallpapers/comments/ebvk0q/rocket_launch_1920x1080/[`rocket-launch.jpg`]
|
|
|
|
* https://www.artstation.com/artwork/XBlZbY[`scarecrow-field.jpg`]
|
|
** Creator: https://www.artstation.com/joejazz[Josef Bartoň]
|
|
|
|
|
|
=== Sources
|
|
|
|
My personal recommendations for looking out for more cool-looking photos.
|
|
|
|
* https://images.nasa.gov/[Images from NASA].
|
|
They also have a small collection of them in their https://unsplash.com/@nasa[Unsplash account].
|
|
* https://imgur.com/gallery/4BKvq[Firewatch] (or any style similar to Firewatch) wallpapers are top-notch ricing material.
|
|
* https://mantissa.artstation.com/[Midge "Mantissa" Sinnaeve]
|
|
* https://www.artstation.com/beaulamb[Beau Lamb]
|
|
* http://louie.co.nz/[Louis Coyle] and https://dribbble.com/louiscoyle[his illustrations].
|
|
* https://www.deviantart.com/rmradev[rmRadev]
|
|
* https://www.reddit.com/r/wallpapers/[/r/wallpapers]
|
|
* https://unsplash.com/s/photos/galaxy-landscape[Any image that features a landscape with stars, lel.]
|
|
* https://www.pexels.com/[Pexels]
|
|
* https://www.pixabay.com/[Pixabay]
|
|
* https://unsplash.com/[Unsplash]
|
|
|