Personal dotfiles and system configurations, just the way I like it.
These dotfiles are heavily based on CachyOS (not just Arch), specifically the various packages that Cachy ships with it's own base installation (fish, sddm, various KDE bloat etc.).
Ideally you should have installed CachyOS selecting for hyprland during the Calamares installation, or without any DE (in such case ๐ฅฎ will install Hyprland automatically).
Managed using chezmoi.
Warning
This is NOT a run-and-forget installation. The install script will prompt you at several points. Keep an eye on the terminal throughout the entire process.
- Tweak CachyOS via the CachyOS Hello app and apply your preferred baseline system tweaks, remember to enable cachy-update;
- Prepare your
~/.config/chezmoi/chezmoi.tomlconfiguration file with your specific variables
[data]
name = "nMaax"
email = "you@example.com"
tailscale_authkey = "tskey-auth-XXXXXXXXXXXXX" # Leave "" if you want to skip tailscale
nordvpn_token = "nvpnkey-auth-XXXXXXXXXXXXX" # Leave "" if you want to skip nordvpn
gaming = true- Install chezmoi and apply the dotfiles
pacman -S chezmoi
chezmoi init --apply nMaaxWarning
ddcutil will been installed, which may cause instability with certain monitors. You can remove it via sudo pacman -Rns ddcutil if you encounter any issue.
Warning
๐ฅฎ will default on a custom sddm them which should work out of the box, if you ever modify it remind to first run ./test.sh in /usr/share/sddm/themes/silent/ to ensure SDDM works before rebooting, and avoiding being locked out at login!
Note
During log-in in SDDM choose systemd-owned Hyprland instead of the plain one, to ensure autostart scripts function correctly (e.g. cachy-update tray icon).
If CachyHello won't accept your password on a Hyprland-only installation (i.e., no Plasma), the polkit-kde-agent is likely missing from your background processes. You must ensure this agent is running so CachyHello can trigger the authentication pop-up required to apply your changes.
To fix do the following:
- Open your hyprland.conf: vim ~/.config/hypr/hyprland.conf.
- Add this line to your "exec-once" section (or anywhere at the bottom):
exec-once = /usr/lib/polkit-kde-authentication-agent-1
- Save and restart Hyprland (Super + M or just log out).
- Now you should be able to tweak cachy as you like, then proceed with the installation as above.
Note
If you aren't using KDE, the path might be /usr/lib/lxpolkit or similar. Cachy usually defaults to the KDE agent even on Hyprland anyway, so this should be quite rare.
Both megacmd-bin and keepassxc are installed by the script as regular packages.
Set them up manually after installation:
-
Log into MEGA and configure your sync:
mega-login mkdir -p ~/MEGA mega-sync ~/MEGA/ /
-
Open KeePassXC and point it at your database once the MEGA sync completes. Remember to place the key-file as well!
KWallet presents some issues in non-Plasma environments, the install scripts tried to cleanly patch these issues out of the box, however some may still be present, especially with Electron apps that rely on safe-storage.
When you are prompted to create a wallet (i.e. the first time an application requests one), use exactly these settings:
- Name:
kdewallet(the default; any other name will not be unlocked automatically by PAM) - Encryption:
Blowfish(required forkwallet-pamauto-unlock; GnuPG encryption is incompatible) - Password: your current user login password (PAM unlocks the wallet by matching it against the login password)
Further information can be found at Arch Wiki: KDE Wallet and Electron Safe Storage Info.
The install script enables and starts both sshd and the user-level ssh-agent automatically. But you still need to create a key pair and distribute your public key wherever you want to authenticate. Here are some common procedures you may want to do:
ssh-keygen -t ed25519 -C "axew"Accept the default path (~/.ssh/id_ed25519) and choose a strong passphrase. The new key is picked up automatically by the running ssh-agent.
-
Copy your public key to the clipboard:
cat ~/.ssh/id_ed25519.pub | wl-copy
-
Go to GitHub โ Settings โ SSH and GPG keys โ New SSH key, paste it and save.
-
Test the connection:
ssh -T git@github.comYou should see:
Hi <username>! You've successfully authenticatedโฆ
Note
You could be prompted to either create a new wallet, or to unlock the current one, refer to the Keyring section for details.
-
Tell Git to use SSH for GitHub remotes (optional, but recommended):
git config --global url."git@github.com:".insteadOf "https://github.com/"
Copy your public key to the remote host (replace user@host with your target):
ssh-copy-id user@hostOr manually append ~/.ssh/id_ed25519.pub to ~/.ssh/authorized_keys on the remote.
Optionally, create or edit ~/.ssh/config to define shortcuts:
Host myserver
HostName 192.168.1.10
User myuser
IdentityFile ~/.ssh/id_ed25519
Then connect simply with ssh myserver.
Noctalia presents a standard approach to sync apps colorschemes with its own theme, each app requires its own procedure, part of it can be automated via code, and some other not. Further information at docs.noctalia.dev/theming.
You can retrieve the list of apps on which automatic theming is set on the Noctalia settings themselves. Note however that part of those may still require some in-app manual intervention, here below are some steps you shall take to complete the theming:
- qt5ct (
qt5ctcommand): Set Color scriptheme tonoctalia, General font toSF Pro, Fixed-width font toCaskaydiaCove Nerd Font Mono - qt6ct (
qt6ctcommand): Same as above.- Qt theming via
qt6ctwithQT_QPA_PLATFORMTHEMEhas been already set in Hyprland config files for environment variables (env.conf).
- Qt theming via
- GTK (
nwg-look): Set general font toSF Pro Regular, then ensure Preferences > .config/gtk-4.0 is disabled, eventually clear if you found it enabled.adw-gtk3+prefer-darkwas already applied viagsettingsduring the install script.
- GTK apps will automatically fetch the color scheme from the above, while Qt apps must be configured separately going inside app-settings and finding the colorscheme item.
- Zen Browser: Open
about:configโ settoolkit.legacyUserProfileCustomizations.stylesheetstotrue; then open Settings โ General โ set Website Appearance to Auto; finally Restart Zen Browser. - Discord: Open Equibop โ Settings โ Themes โ enable one of the two Noctalia themes.
- VSCode: Install the
NoctaliaThemeextension from the marketplace, then select it viaCtrl+Shift+Pโ Preferences: Color Theme. - Telegram: Open Settings โ Chat Settings โ scroll to the bottom and enable the custom color theme.
- Steam: Install Material-Theme and add it in Millenium Settings > Theme, then click the three dots > configure > style > colors > select Matugen in the theme color dropdown.
- All others apps should not require any intervention (e.g. neovim, btop etc.), hopefully.
Note
If some apps do not properly fetch the color scheme even after having followed the noctalia guidelines, try to disable and re-enable them, as well as changing color-scheme as a whole.\
Furthermore, you can install other themes for apps yourself, have a look at:
The stuff that I usually use during my browsing experience, these are completely optional and at your preference, do what you want with them:
- Extensions:
- uBlock Origin โ content & ad blocker
- ClearURLs โ strips tracking parameters from URLs
- Tridactyl โ Vim-style keyboard navigation (Firefox/Zen)
- MarkDownload โ download pages as Markdown
- DarkReader - automatic dark theming
- Zen Mods:
- Transparent Zen โ make zen look transparent, needed for ZenZero
Eventually consider also Volume Control, Web Archives, YouTube Improved, etc.
Furthermore, here is a list of some good misc websites for assets:
- Pinterest: for propics
- Wallhaven: for static backgrounds
- MotionBGs: for animated wallpapers
- Guide on how to convert WallpaperEngine backgrounds into video files: from WallapaperEngine itself, from Steam community
Other stuff I use on Spicetify, my advice is to use the marketplace as much as possible
- Spicy Lyrics (instead of Beautiful Lyrics, which seem to be deprecated!)
- Global Stats for songs, to fetch info on different songs.
- Lucid Theme (instead of the Confy default one, tho this one looks quite heavy, bloated and dirty, ngl.)
Warning
Disable Comfy theme via spicetify cli if you want to install a different one! Run the following:
spicetify config current_theme " "
spicetify applyOf course ๐ฅฎ is designed with gaming in mind too, ๐ฅฎ will apply some common installations and tweaks if cachyos gaming packages are detected. For more details, visit the CachyOS Gaming Wiki. Here are some handy notes at your disposal to complete your gaming experience:
- NVIDIA:
PROTON_ENABLE_WAYLAND=1 PROTON_DLSS_UPGRADE=1 PROTON_NVIDIA_LIBS_NO_32BIT=1 PROTON_USE_NTSYNC=1 PROTON_ENABLE_HDR=1 ENABLE_HDR_WSI=1 game-performance %command% - AMD:
PROTON_USE_NTSYNC=1 ENABLE_LAYER_MESA_ANTI_LAG=1 PROTON_FSR4_UPGRADE=1 game-performance %command%
- Compatibility: Set
proton-cachyos (slr)as your default Proton layer. - Pre-caching: If using Proton-CachyOS, navigate to Steam -> Settings -> Downloads and UNCHECK:
- "Enable Shader Pre-caching"
- "Allow background processing of Vulkan shaders"
- System Options: Enable "Disable Lutris Runtime" and "Prefer system libraries".
- Compatibility: Ensure the layer is set to
proton-cachyos (slr). Just as in Steam. - Launch Options: Mirror the launch options used in Steam, each launcher has its own way to do that, which usually do not differ much from Steam anyway, refer to documentation. (e.g. Heroic will provide some form entries for variables and values)
- Once everything is finished, add screenshots and videos in this README
- Enhance assets by introducing a github CI action that autogenerates README with gallery, like dharmx
- Prepare WALLHACK Wallpapers -> Make a release for dotfiles-assets if files are too large
- Try out noctalia Polkit Agent (you must uninstall kde polking agent, maybe this is not the right choice in cachy)
- Move to fish install script (tho it would be non-POSIX!)
- Buy Wallpaper enginge and try out linux-wallpaperengine, there is also a noctalia plugin for it
- Generalize for pure arch: track what Cachy installs, including fundamentals like bluetooth, networkmanager, fish, cachyos fish setup, gpu drivers etc.
- Fix ksshaskpass Qt::font empty error
- Fix OBS Browser install to automate substitution that requires the vlc plugin variant from lua to be changed in luajit