dotfiles
My configuration files for various programs
Table of Contents
- 📰 Overview
- ⭐ App configurations
- 💻 Programming languages and shell configurations
- 🖥 System configurations
- 👀 See also
- 📝 Licence
📰 Overview
Here I maintain configuration files of programs that I use or have used in my Arch Linux system.
Some programs' configurations that I think deserve their own repositories are not here, like:
| App | Repository | Description |
|---|---|---|
| AwesomeWM | awesomewm-config | Awesome window manager |
| Bash | bash-config | Bash command-line shell |
| Neovim | neovim-config | Neovim text editor |
| Lf | lf-config | Lf terminal file manager |
| Mpv | mpv-config | Mpv video/audio player |
| Dash | dash-config | Dash shell and POSIX functions |
| many | root-dotfiles | Config files from / |
Note: If you'd like to know how I easily maintain all of them separately, I use vcsh, and yadm for my root dotfiles
Also, my scripts are not included here, but in this repo
⭐ App configurations
| App | Files | Short description |
|---|---|---|
| sxhkd | sxhkdrc |
Desktop keymaps (keyboard shortcuts) |
| alacritty | alacritty.yml |
Terminal keymaps, appearance |
| rofi | config.rasitest_arc_dark.rasi |
Launcher modes, keymaps Launcher appearance |
| vimiv | keys.confvimivrcvimiv.conf |
Image viewer keymaps and options |
| htop | htoprc |
Process manager appearance |
| zathura | zathurarc |
PDF reader keymaps, appearance |
| less | lesskey |
Pager keymaps, appearance |
| byobu (tmux) | .tmux.conf |
Multiplexer keymaps, appearance |
| picom | picom.conf |
Compositor opacity, shadows, effects |
| git | configgitalias.txt |
Git config Many git aliases and short scripts |
| vcsh | vcsh/hooks*sparse-checkout |
Git hooks for vcsh repos Sparse/Hidden files allowed in vcsh repos root dirs |
| yadm | bootstrap |
Sparse/Hidden files allowed in yadm repo root dir |
| calcurse | confkeys |
Calendar keymaps, appearance |
| konsole | konsolerc*.colorscheme |
Terminal keymaps, appearance Terminal color schemes |
| kitty | kitty.conf |
Terminal keymaps, appearance |
| terminator | terminator/config |
Terminal keymaps, appearance |
| newsboat | newsboat/config |
RSS reader keymaps, appearance |
| urxvt | Xresources/urxvt |
Terminal keymaps, appearance |
| gitk | git/gitk |
Git repo browser appearance |
| git-cliff | cliff.toml |
Git changelog template appearance |
| ytfzf | conf.sh |
Youtube scraping options |
| starship | starship.toml |
Prompt appearance, widgets |
| nano | nanorc |
Text editor keymaps, appearance |
| flameshot | flameshot.ini |
Screenshoter contrast, saving |
| inxi | inxi.conf |
System information appearance |
| readline | inputrc |
Completion options |
| screenkey | screenkey.json |
Key shower appearance |
| xournalpp | settings.xml |
Notetaker tool defaults, appearance |
| redshift | redshift.conf |
Color temperature |
| libreoffice | *.xcu |
Office programs color scheme |
| lsd | config.yamlicons.yaml |
Lsd default options Icons for filetypes and extensions |
| ripgrep | ripgreprc |
Ripgrep default options |
| bat | bat/config |
File syntax highlighter |
| neofetch | config.conf |
System information appearance |
💻 Programming languages and shell configurations
| Language/App | Files | Short description |
|---|---|---|
| Python | pythonrc.py |
Runcom. Run on every REPL, lazy imports |
| R | RprofileRenviron |
Runcom, lazy imports Environment variables |
| Julia | startup.jl |
Runcom |
| Fish | config.fishfish_variables |
Runcom Environment variables |
| Ion | initrc |
Runcom |
| MySQL | myclirc |
REPL client appearance |
| Jupyter | jupyter_server_config.jsonthemes.jupyterlab-settings |
JupyterLab appearance |
| Gnuplot | gnuplotrc |
Graphics appearance |
| Matplotlib | matplotlibrc |
Graphics appearance |
* Some languages may have system configs, check my root dotfiles repo.
🖥 System configurations
✨ Default applications
I also maintain desktop entries for my default applications in .local/share/applications/*.desktop.
These are to be used by a resource opener
to associate with a file mime type, extension, etc. to open a specific file.
These are the descriptive:
FILE_MANAGER.desktopBROWSER.desktopEDITOR.desktopIMAGE_EDITOR.desktopAUDIO_PLAYER.desktopVIDEO_PLAYER.desktopREADER.desktopEMAIL_CLIENT.desktopTORRENT_CLIENT.desktop
The reason I do this is to manage them more easily. Now if, for example, I want to
change my default email client, I just change the command in the EMAIL_CLIENT.desktop
and don't have to change anything in my resource opener, whatever this may be.
On that note, I maintain these opening associations:
| Resource opener | Files |
|---|---|
xdg-open |
mimeapps.list |
Also these names may be used as environment variables so that a file manager could be fined-tuned to use a different default app in a specific case.
You may also be interested in my opener script and my xdg-mime-env script
🖼 X server
I maintain some files that modify the X server initialization or configuration,
mostly located in .config/X11/*. These are:
| File | Short description |
|---|---|
xmodmap |
Keyboard layout |
xcompose |
Keybord configurations |
Xresources |
Configuration parameters for X apps |
xsettingsd.conf |
Daemon configurations for Xorg apps, when not running one |
shelldm |
Shell "display manager" script |
xserverrc |
Shell script that starts X |
xinitrc |
Shell script running when X starts |
user-dirs.dirs |
XDG user directories (in your ~) |
I don't use a display manager to start my X server, instead I use
the xinit program. But
instead of running startx from my tty on login, I made
a tiny shell script shelldm that shows a menu selection for
the available desktops/window managers, and then startx it.
To set this up, you have to run this script from your system
shell's system runcom. So for example for me, my system shell
is dash and I put a line like this:
case "$(tty)" in
"/dev/tty1")
exec "${HOME}/.config/X11/shelldm"
esac
at the end of the /etc/profile file.
You can check my root dotfiles for details.
👀 See also
📝 Licence
GPLv3-or-later (to the extend that mostly config files are copyrightable)