Config files for my personal Arch Linux configuration. I’m currently using both Xfce and i3-wm desktop environments. However, the configuration files for each are so small that their impact on storage space is negligible. In the final step of Installation you’ll find packages for both environments. If you prefer to use only one, feel free to review the file(s) and select the relevant packages. 🐧🔧
sudo pacman -S chezmoi
chezmoi init --apply --ssh wdebie
sudo pacman -S --needed - < ~/.pkg_list/cleanpkglist_noforeign ;
yay -S - < ~/.pkg_list/foreignpkglist
Work with chezmoi: read the docs and check out #automation.
Just so you don't sign commits with my email and username (even though it doesn't matter because I sign all of my commits), let's change them:
git config --global user.name user1
git config --global user.email user1@example.com
Note that the 'signingkey' in .gitconfig
will be wrong when you import these dotfiles because that's my personal key that I use to sign my commits.
To change this to your own GPG key ID, run the following command:
git config --global user.signingkey <key_id>
To remove it entirely, run:
git config --global --unset user.signingkey
To set wallpapers on i3 startup, install nitrogen and uncomment the following line in ~/.config/i3/config
:
#exec --no-startup-id nitrogen --set-zoom-fill /path/to/image.png.svg.jpg
This will override the nitrogen wallpaper that is currently used in the config file. By uncommenting this line instead of editing the original command it will always go back to the default wallpaper when running into problems. For the sake of testing, use exec_always
* instead of exec
to view changes on i3 restart.
* #_automatically_starting_applications_on_i3_startup
Uncomment the following line in ~/.config/i3/config
to show the sup-mail scratchpad window, if any exist.
#bindsym mod4+s [title="^Sup ::"] scratchpad show
The default keys to change focus or move windows in i3 are j
, k
, l
and ;
. I disabled these in my config since arrow keys are more convenient for me. To re-bind these take a look at the default i3 config file at /etc/i3/config
and copy the required lines to ~/.config/i3/config
.
This is obviously not required, but I use this theme for my GRUB installation. Also look at the grub-customizer package to install this easily.
Files that start with "etc_" in this repository can be savely moved to /etc/
, they're simple configurations that I wanted to add to the dotfiles. Look them through, they're unrelated to the other config files and thus optional.
To add a selection from ~/Scripts
to /usr/local/bin
, I recommend using my "create-symlinks" script. Make sure to run it from the same user that you've initialized chezmoi with.
sudo sh /home/$USER/Scripts/create-symlinks.sh
The XDG MIME Applications specification builds upon the shared MIME database and desktop entries to provide default applications. (source)
While it is possible to configure default applications by directly editing mimeapps.list, I recommend using a GUI tool to simplify this process.
To make my desktop experience better, I try to work exclusively with Qt-based applications whenever I need a GUI tool. Read the wiki. Additionally, to do proper styling for all Qt applications, read qt#Configuration_of_Qt_5_applications_under_environments_other_than_KDE_Plasma
Check out RANDOM_LIGHTDM_BG.md.
Keybind | Action | Keybind | Action |
---|---|---|---|
$mod + Enter | kitty (terminal-emulator) | $mod + a | focus parent |
$mod + Shift + q | kill window | $mod + s | stacked layout |
$mod + d | rofi dmenu | $mod + $number | workspace number $number |
$mod + prt sc | flameshot gui | $mod + Shift + $number | move container to workspace $number |
$mod + left arrow | focus left | $mod + v | open greenclipaur |
$mod + down arrow | focus down | $mod + Shift + minus | make scratchpad of current window |
$mod + up arrow | focus up | $mod + minus | scratchpad toggle |
$mod + right arrow | focus right | $mod + Shift + c | reload config file |
$mod + f | fullscreen toggle | $mod + Shift + e | exit i3 |
$mod + w | layout tabbed layout | $mod + Shift + r | restart i3 |
$mod + e | layout toggle split | $mod + h | split horizontally |
$mod + Shift + Space | floating toggle | $mod + b | split vertically |
$mod + Space | focus mode_toggle | $mod + Shift + arrows | move window around |
* My personal $mod is Mod4 (Super).
This is a simple script I wrote to automate chezmoi edits:
~/.config/chezmoi/automation.sh
#!/bin/bash
if [[ $EUID -eq 0 ]]; then
echo "This script cannot be run as root."
exit 1
fi
cd ~/.local/share/chezmoi
chezmoi re-add
read -p "Commit message: " MESSAGE
git commit -a -S -m "$MESSAGE"
git push --set-upstream origin main
All you have to do is change a dotfile (e.g. ~/.config/polybar/config
) and when you're done run this script. This script does not handle new files, only edits to files you've already added to chezmoi. This script cannot be run as root. If you don't want to sign your commits, remove -S
from the commit command.
There's a fork of this in ~/Scripts
with some extra lines added to keep a list of installed pacman packages for this dotfiles repository, it's there if you need it but in most cases it is redundant. More details: Pacman/Tips_and_tricks#List_of_installed_packages.
I didn't include my greenclip configuration in the dotfiles because I have some sensitive information stored as static history. However, if you want a similar outlook, here's the config that I use:
~/.config/greenclip.toml
[greenclip]
blacklisted_applications = []
enable_image_support = true
history_file = "/home/[USER]/.cache/greenclip.history"
image_cache_directory = "/tmp/greenclip"
max_history_length = 10
max_selection_size_bytes = 0
static_history = [" ", "--'~/.config/greenclip.toml'--", "[PERMANENTLY STORED INFO HERE]"]
trim_space_from_selection = true
use_primary_selection_as_input = false
- Credit to @Eydou for the
.bashrc
PS1 prompt.