The laptop that I currently use is an ASUS TUF Gaming A16 AMD Advantage Edition, with a Ryzen 9-7940HS processor, an AMD Radeon RX7600S GPU and a screen resolution of 2560x1600, model number FA617X-S. It has 16GB of RAM and a 1TB SSD. I am currently using Arch Linux and running Niri as my window manager and Wayland compositor.
I installed Arch Linux by manually following the tutorial from Dreams of Autonomy. There is also a written guide if you prefer to read instead of watching a video.
If you are using btrfs,
which you would be if you are following the guide above,
you should also install btrfs-progs
so that the mkinitcpio
hook to create the initramfs
for the kernel
doesn't throw an error due to fsck
not being available.
The system will still work fine even without installing
btrfs-progs,
but the error gets annoying as it appears every time you update the kernel,
and it might trick you into thinking there is actually an error in the
mkinitcpio
build hook for the kernel when there actually isn't.
I am making use of Chezmoi (pronounced shay-mwa) to manage my configuration files. To use my configuration files, install Chezmoi, and Git, then run the command below to deploy the configuration files:
ROOTMOI=t chezmoi init hankertrix/dotfiles --source ~/.dotfiles --apply
If you don't want to deploy the system level configuration files,
remove the ROOTMOI=t
at the front of the command to
only deploy the user level configuration files, like this:
chezmoi init hankertrix/dotfiles --source ~/.dotfiles --apply
You can also choose another directory to store the source directory,
but take note that references to the ~/.dotfiles
directory in the
Emacs configuration
need to be changed to point to the correct source directory
instead of ~/.dotfiles
. The reason for not templating
the reference to ~/.dotfiles
in the Emacs configuration
is due to Emacs not having an easy way to set the file type,
or to ignore the .tmpl
file extension.
The configuration files are all stored in either tilde
,
which refers to user-specific configuration found under ~/
,
or slash
, which are the global configuration options
that apply to all users, which can be found under the /
folder.
Browser extensions folder
There is a README.md
file
inside the browser-extensions
folder that explains the configuration.
Custom packages folder
This folder stores all the packages that are custom-built for me. It currently only contains the PKGBUILD for building all 3 Nerd Font variants for Maple Mono, with the font features I want frozen so that they work in Emacs. Maple Mono only provides the default Nerd Font variant, but I need all 3 variants as I use the Propo variant in GUI applications like Waybar and Rofi to ensure the icons don't have funky spacing. The Mono variant is used in the browser by Firenvim so that the icons are not cut off. The default variant is used in the terminals I use.
Package lists folder
This folder stores the package lists for my system. The main package list contains all the packages installed through a repository using Pacman, while the AUR package list contains all the packages installed through the AUR, as well as custom packages.
The slash
folder contains all the system level configuration,
such as configuration files for the package manager, the display manager
and the bootloader.
boot
folder
The boot
folder contains the configuration for
the bootloader I use, rEFInd.
The rEFInd configuration
is just the standard boot options that are provided by default
when running refind-install
. However, the amdgpu.dcdebugmask
option
is added so that the AMD driver doesn't crash or lock up.
There is a really helpful
tutorial here.
The theme I use is a modified version of the Gruvbox theme from rEFInd minimal themes. The selection icons were taken from dm, which itself is a modified version of the Dream Machine theme.
The background image was taken from Pexels.
etc
folder
The etc
folder contains the configuration for
system level configuration files.
The ly
configuration is just
the default configuration file but with the animation changed
to use the matrix animation.
The Network manager configuration
The .chezmoiignore
file ignores the files that do not need to be
deployed to the system, like READMEs and licences,
but also ignores the boot/efi
directory
so that rootmoi
can apply the changes to the /boot/efi
directory
separately from the /
directory.
tilde
folder
The .chezmoiscripts
folder is just to store
the scripts that run with Chezmoi. It currently only contains
a script to run rootmoi
after the Chezmoi configuration is applied.
.config
folder
The .config
folder is where the configuration
for the applications I use on Linux are located.
There is a README.md
file inside that
briefly explains the configuration for the various applications inside.
.librewolf
folder
The .librewolf
folder is just to store my
overrides for the Librewolf browser.
All the overrides are exactly the same as my overrides for the
Arkenfox user.js.
.mozilla
folder
The .mozilla
folder is just to store my overrides
for the Arkenfox user.js.
.local
folder
The bin
folder in the
.local
folder is just to store some useful scripts
I made that can also be run as a standalone script,
like a script to easily select the wallpapers based on
the current system theme, a screen recording script,
and rootmoi, which runs Chezmoi as root to manage
system configuration.
The share
folder inside is to store
the scripts to run when darkman
changes from light to dark mode, which handles switching the wallpapers
and dynamically theming everything.
.zen
folder
The .zen
folder is just to store my overrides for the
Arkenfox user.js, as well as
some configuration options specific to the Zen browser.
It also contains the keyboard shortcuts and the Zen mods that
I have installed and configured for the Zen browser.
The .chezmoi.toml
is just to configure
the source directory for Chezmoi
and use Neovim as the merge tool.
The .chezmoidata.toml
file is just to store
additional variables that are used in the Chezmoi templates.
They are mostly just fonts, icon theme, cursor theme and cursor size.
The .chezmoiexternal.toml
file is just to
automatically download all the different variations of the cursor theme
I use and put them in the right place.
The .chezmoiignore
file is just to ignore the files that do not need to be
deployed to the system, like READMEs, licences,
and formatter configuration files.
The .bash_profile
configuration is just to
load the .profile
file
when starting bash.
This is needed thanks to the Arch Linux LightDM package
changing the script to source the files.
This change may or may not be relevant since I am now using ly, instead of LightDM, but things are working fine, so I'm not going to change it.
The .inputrc
file is just to set the key binds
for arrow up and arrow down to search the history for completions
instead of just giving the last used command.
The .xinitrc
file is just to merge the
configuration inside .Xresources
into xrdb
so that the changes will apply.
This file is no longer relevant since I am no longer on X11, but I am keeping it here just in case.
The .Xresources
configuration is just to make sure
the display works properly with my high DPI screen.
I also turned on antialiasing.
This file is no longer relevant since I am no longer on X11, but I am keeping it here just in case.
The .bashrc
file is quite minimal,
just setting some useful settings like vi
mode and the prompt.
It also has some useful aliases that are provided by
Arch Linux by default, mostly just colouring
the output of grep
and ls
and useful aliases for ls
.
It also adds the local binaries to the shell path and
has a few if statement added in so that I can change the shell's directory
when using lf
and
yazi
.
This file is just to set the default applications for various tasks.
The default terminal is set to
Ghostty,
the default editor is set to
Neovim,
the default browser is set to
Firefox and
the default pager is set to
less
.
This folder just contains all the wallpapers I use, sourced from various places, separated into two subfolders, one containing wallpapers to use for the light system theme, and another for the dark system theme.
This repository is licensed under the MIT Licence.
You can view the full text in the LICENCE.txt
file.