╱╱╭━━━┳━━┳╮╱╱╭━━━┳━━━╮
╱╱┃╭━━┻┫┣┫┃╱╱┃╭━━┫╭━╮┃
╱╱┃╰━━╮┃┃┃┃╱╱┃╰━━┫╰━━╮
╱╱┃╭━━╯┃┃┃┃╱╭┫╭━━┻━━╮┃
╭╮┃┃╱╱╭┫┣┫╰━╯┃╰━━┫╰━╯┃
╰╯╰╯╱╱╰━━┻━━━┻━━━┻━━━╯
I use Ansible for it's flexibility. The primary Ansible tasks can be found in roles/dotfiles/tasks.
Install ansible and required collections:
sudo pacman -S python-pip python-packaging ansible
ansible-galaxy install -r requirements.ymlCopy .env.sample to .env and configure environment variables. Then run the playbook:
./install.shYou can pass ansible-playbook arguments to install.sh:
./install.sh --tags gnome
./install.sh --skip-tags fontsThe list of available tags is in roles/dotfiles/tasks/main.yml.
After installing, do not move dotfiles repository. If you did that, install once again.
Below are some manual configurations that are either hard to automate or were not automated by choice.
To fix the black screen issue during screen sharing/recording in Wayland, read this guide.
For a multi-monitor setup with different DPIs:
- Use Wayland.
- Enable Wayland's experimental fractional scaling feature:
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"- Navigate to
Settings -> Displaysand adjust the Scale for each monitor as needed.
Execute the following commands:
sudo pacman -S cups
sudo systemctl enable --now cups
sudo pacman -S hplip
sudo hp-setup -iReferences:
My Xiaomi laptop's keyboard has a button for using Xiao AI in Windows,
but it was unusable in Linux. To use this button,
I found its scancode (0x72) and mapped it to a linux keycode.
To find the scancode, press the key and look for logs like this in dmesg output:
[ 8474.796476] atkbd serio0: Unknown key pressed (translated set 2, code 0x72 on isa0060/serio0).
[ 8474.796481] atkbd serio0: Use 'setkeycodes 72 <keycode>' to make it known.
Open list of linux keycodes and pick a keycode (e.g. 88: F12):
cat /usr/include/linux/input-event-codes.h | grep KEY_sudo setkeycodes 72 88Create a systemd service and run the same command at startup.
If you experience an issue where directories open in VSCode instead of the default file manager after installing VSCode, this will reassigns the default application for handling directories back to the GNOME Nautilus file manager, effectively resolving the problem.
xdg-mime default org.gnome.Nautilus.desktop inode/directoryThis repository is a fork of mjnaderi/dotfiles. My initial setup was inspired by his work.