My dotfiles - use them and contribute your personal changes/suggestions.
The specifically target Arch-alike distributions. For instance, the instructions here should also work for Manjaro, which builds upon Arch.
Most importantly, it's require to install a package manager, which makes use of the AUR. yay is by far the best one I've ever seen and can simply be installed like so.
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -siThen, you'd want to install all relevant packages from the General packages, Fonts and AUR sections.
Dotfiles are managed by chezmoi. Run
chezmoi init rtucek in order to download all dotfiles, followed by chezmoi cd for jumping directly to the git repo of the dotfiles.
A couple of template variables have to be set for proper configuration.
Use the sample config file from dot_config/chezmoi/chezmoi.toml.sample and
copy it to ~/.config/chezmoi/chezmoi.toml, then set the value accordingly and
run chezmoi apply for having the actual dotfiles being put a their right
place.
Refer to chezmoi's docs for further details.
Pull requests are welcome!
The dotfiles are optimized for the following setup.
- alsa-utils
- arch-audit
- arch-wiki-docs
- bash-completion
- bat [1]
- bc
- bluetui
- bluez
- bluez-utils
- bolt [4]
- brightnessctl
- chezmoi
- ctags
- diff-so-fancy
- dmidecode
- docker [2]
- docker-compose
- dog
- dunst
- fastfetch
- firefox
- fwupd
- fzf
- gimp
- git-delta [1]
- glab
- globalprotect-openconnect
- gnome-keyring
- gnu-netcat
- go
- gparted
- gufw
- gzip
- helm
- helvum
- httpie
- imagemagick
- inxi
- ipcalc
- jless
- jq
- k9s
- kubectl
- less
- libreoffice-fresh
- libvirt
- lsb-release
- lshw
- lsof
- man-db
- mkcert
- msr-tools
- mtr
- mysql-workbench
- neovim
- network-manager-applet
- networkmanager-openconnect
- nitrogen
- nvm
- nwg-displays
- openconnect
- openssh
- osquery
- pcmanfm
- percona-server-clients
- percona-toolkit
- perl-image-exiftool
- pgcli
- pigz
- pipewire [7]
- pipewire-pulse
- pipewire-libcamera
- playerctl
- postgresql-client
- pwgen
- python-pip
- python-pipx
- python-pynvim
- qemu-full
- ranger
- rofi
- rsync
- ruby-erb
- seahorse
- sound-theme-freedesktop
- speedtest-cli
- stern
- strongswan
- tcpdump
- tela-circle-icon-theme-manjaro
- testssl.sh
- the_silver_searcher
- thunderbird
- tmux [3]
- torbrowser-launcher
- tree
- tree-sitter-cli
- udiskie
- udisks2
- ufw
- unzip
- usbutils
- veracrypt
- vi
- virt-manager
- virt-viewer
- whois
- wireplumber
- wl-clipboard
- yubikey-manager
- bcachefs-tools
- btrfs-progs
- btrfs-tools
- cryptsetup
- dosfstools
- exfatprogs
- hfsprogrs
- hfsutils
- lvm2
- mtools
- ntfs-3g
- ntfs-progrs
- xfsprogs
- noto-fonts
- noto-fonts-cjk
- noto-fonts-emoji
- otf-font-awesome
- ttf-dejavu
- ttf-input-nerd
- ttf-jetbrains-mono-nerd
- ttf-joypixels
- woff2-font-awesome
- 1password
- 1password-cli
- auto-cpufreq [9]
- certigo
- csvtools-git
- devspace-bin
- google-chrome
- kind-bin
- lastpass-cli
- litecli
- mycli
- postman-bin
- ptcpdump
- pw-volume
- snapd
- tmuxinator
- unimatrix-git
- yay
- yubioath-desktop
n/a
composer global require consolidation/cgrMost important commands are:
nvm install --lts # Installing most recent LTS version
nvm alias default "lts/*" # Alias most recent lts node version as default
nvm use default # Use most recent version
nvm install-latest-npm # Upgrade npm to the latest versionThe following npm packages are considered as standard.
Install them via npm install --global [packages]:
- @vue/cli
- create-react-app
- neovim
Install yarn via npm. Let yarn manage itself by re-installing yarn globally and removing it afterwards via npm again.
npm -g install yarn
yarn global add yarn
npm -g remove yarn
pipx install python-language-server # (coc-python)- composer (
cgr require bamarni/symfony-console-autocomplete) - tmux (https://github.com/imomaliev/tmux-bash-completion/blob/master/completions/tmux)
- yarn (https://github.com/dsifford/yarn-completion/blob/master/yarn-completion.bash)
As a special case, in order to have syntax highlighting for PHP work with
bat in combination with delta diffs, refer to these
instructions.
It's necessary to perform this step, whenever bat gets updated.
After tmux has been installed, run the following commands in order to install
and setup tmux plugin manager (TPM) for
the first time. The following commands below will clone TPM's source code and
install it at the right location, then type; Ctrl + SPACE + I in order to
actually install tmux plugins.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmGiven the following symptoms:
Devices, connected via Thunderbolt don't work if "hot plugged in" (that is, after the OS has booted). However, if the device is connected at cold boot time, the device works mystically. In particular, to a Dock connected devices like keyboards and mouses don't assume to have any powered state (e.g. the laser pointer of a mouse remains switched off).
This is due to the OS' security
settings.
The OS - by default - protects against DMA
attacks such as
Thunderstrike, by setting the security mode
to user or secure. So the in some form or another, we have to "approve" the
connected device.
One way to simply get away with it, is to add a udev rule to
/etc/udev/rules.d/99-removable.rules, which just authorizes essentially every
hot-plugged Thunderbolt device:
ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"
The rule will become effective after the next reboot, however you can also avoid a reboot by live-reloading udev rules:
sudo udevadm control --reload-rules
sudo udevadm triggerHowever, a much simpler approach would be actually authorizing the device via
bolt.
Sources:
My GPG keys are generally distributed via the following public keyservers:
- keys.openpgp.org
- keyserver.ubuntu.com
- pgp.mit.edu
For some Tuxedo Laptops, the Laptop wakes up automatically within a couple of seconds. This is due to a bug in the BIOS, which can be seen in the syslog, based on these log entries:
[...]
xxx xx xx:xx:xx archlinux kernel: ACPI BIOS Error (bug): Could not resolve symbol [\_SB.ACDC.RTAC], AE_NOT_FOUND (20230628/psargs-332)
xxx xx xx:xx:xx archlinux kernel: ACPI Error: Aborting method \_SB.PEP._DSM due to previous error (AE_NOT_FOUND) (20230628/psparse-529)
[...]
For mitigation, the kernel parameter acpi.ec_no_wakeup=1 must be set in
/etc/default/grub:
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi.ec_no_wakeup=1"Don't forget to run
sudo update-grubin order re-build and deploy the grub config, so that it becomes effective from the next system boot onwards..
For testing purpose, the acpi.ec_no_wakeup=1 parameter can also be set at
post-boot with the sysfs interface:
# Read current state of acpi.ec_no_wakeup via ...
cat /sys/module/acpi/parameters/ec_no_wakeup
# ... Y -> 1 (on); N -> 0 (off)
# Set the value by writing 1 or 0 to the file: e.g.
echo "1" | sudo tee /sys/module/acpi/parameters/ec_no_wakeupIt's worth pointing out, that even with setting the parameter, the error will still be logged to syslog, however the automatic wake ups are prevented this way.
Links:
- Tuxedo FAQ / Device Immediately Wakes Up After Suspend
- Arch Wiki / /sys/module/acpi/parameters/ec_no_wakeup
By default, systemd may use any available console-based editor.
However, the SYSTEMD_EDITOR ENV allows configuring any editor of preference.
In order to have sudo based commands inheriting this ENV, add the following
line to the sudoers file manually via visudo.
##
## Preserve editor environment variables for visudo.
## To preserve these for all commands, remove the "!visudo" qualifier.
Defaults!/usr/bin/visudo env_keep += "SUDO_EDITOR EDITOR VISUAL"
+Defaults env_keep += "SYSTEMD_EDITOR"
##
## Use a hard-coded PATH instead of the user's to find commands.Many modules may not work out of the box. Inspect
~/.config/polybar/config.ini, which might require a few parameters to be
properly templated via chezmoi.
For having support for changing the backlight via scrolling, do the following:
- Add your user to the
videogroup.
sudo usermod -aG video $USER
newgrp video- Add the following udev rule
/etc/udev/rules.d/99-backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video $sys$devpath/brightness", RUN+="/bin/chmod g+w $sys$devpath/brightness"
Reload udev via:
sudo udevadm control --reload-rules
sudo udevadm triggerIn case it does not work, try rebooting the system.
pipewire is used as the audio
router and processor. For audio session management,
wireplumber is used.
Additionally, the pipewire-pulse package is installed for mimicking
pulseaudio for some
applications. In order to have both services working reliably, make sure systemd
is running them upon startup.
helvum may be used as
patchbay GUI for pipewire.
systemctl enable --user --now pipewire.service
systemctl enable --user --now pipewire-pulse.serviceFor having Bluetooth working, the
bluetoothd daemon must run in the background.
Run the following systemd command in order to run bluetoothd from the beginning.
sudo systemctl enable --now bluetooth.serviceTools like bluetui and
bluetoothctl may be used for frontends for interacting.
Yubikey builds upon the smartcard interface, whose service may not be running. You may enable the service to become available via systemd activation:
sudo systemctl enable --now pcscd.service