In this section I'm gonna illustrate how to duplicate my system.
Download and flash ArchLinux ISO and run archinstall
to perform the guided
installation. The configuration should look like something like this:
- Bootloader: Grub
- Unified kernel images: False
- Swap: True
- Hostname: hidan0pc
- Profile: Minimal
- Audio: Pipewire
- Kernels: linux-lts
- Network configuration: Use NetworkManager
To install yay
, just follow the steps inside the GitHub page.
hyprland
is my the tiling WM of choice, along with the packages that make up the main
ecosystem hypridle hyprlock hyprpaper xdg-desktop-portal-hyprland
. The other must
have aspects of a DE are provided by waybar wofi mako polkit-kde-agent wl-clipboard
.
QT waylandy support is provided by qt5-wayland qt6-wayland
, while the screenshots
utility is obtained from the combination of the following packages plus a script:
swappy slurp grim
.
- Application launcher:
wofi
- Automatically mount disks with
udiskie
- Applet for NetworkManager
nm-applet
- Bluetooth settings:
blueberry
- Audio settings:
pavucontrol
yay -S hyprland hypridle hyprlock xdg-desktop-portal-hyprland waybar \
hyprpaper swappy slurp grim qt5-wayland qt6-wayland wl-clipboard \
wofi mako polkit-kde-agent udiskie network-manager-applet blueberry \
pavucontrol thunar
In my terminal setup, I've got alacritty
for speed, zsh
with zinit
for extra
features as plugins, and oh-my-posh
for a stylish prompt.
To set zsh
as the default shell run:
$ chsh -s /full/path/to/shell
Some commands like ls
are being replaced by some new programs, just run /scripts/install-modern-tool.sh
.
In my editor setup, I rely on Neovim for its versatility. To enhance it, I've integrated external software. This ensures a smooth and efficient development experience and support for plugins.
For workspace management, I've set up tmux
paired with tmp
(Tmux Plugin Manager) for
plugin management. To session handling, I rely on Tmux-Sessionizer.
To install tmp
just follow the GitHub page.
To install tms
run cargo install tmux-sessionizer
(you need rust and cargo).
Reload tmux
and press prefix
+ I
to fetch and install plugins:
# to reload
tmux source ~/.tmux.conf
yay -S alacritty zsh oh-my-posh neovim yarn npm wget luarocks ripgrep fd \
tmux pfetch zk libqalculate
yay -S nvidia-lts nvidia-utils linux-headers
You need linux-headers
first.
In /etc/mkinitcpio.conf
add nvidia nvidia_modeset nvidia_uvm nvidia_drm
to your
MODULES
.
Run # mkinitcpio -P
to generate the required files.
Add a new line to /etc/modprobe.d/nvidia.conf
(make it if it does not exist) and add
the line options nvidia-drm modeset=1
.
Just install bluez bluez-utils
and enable/start bluetooth.service
.
yay -S bluez bluez-utils
Use nwg-look
to set themes and GTK related stuff.
The theme I use is gruvbox material.
- Icon theme
gruvbox-material-icon-theme-git
- GTK theme:
gruvbox-material-gtk-theme-git
- Fonts:
nerd-fonts-git
(install it later, it takes some time)
yay -S nwg-look gruvbox-material-gtk-theme-git gruvbox-material-icon-theme-git \
nerd-fonts-git noto-fonts-emoji
For noise suppression, I've integrated noise-suppression-for-voice
plugin (git).
Link the pipewire
dir and make a symbolic link of *.service
file into .config/systemd/user
.
Reload systemd user unit files:
$ systemctl --user daemon-reload
Enable the created systemd service:
$ systemctl --user enable pipewire-input-filter-chain.service
Reference: https://medium.com/@gamunu/linux-noise-cancellation-b9f997f6764d
yay -S noise-suppression-for-voice
yay -S okular webcord spotify-launcher telegram-desktop ranger
Must have extensions:
- Sidebery
- Privacy Badger
- PopUpOFF
- uBlock Origin
- DuckDuckGo Privacy Essentials
The minimal look is based on this morrolinux guide.
Go to about:config
and set all of the following to true
:
toolkit.legacyUserProfileCustomizations.stylesheets
layers.acceleration.force-enabled
gfx.webrender.all
gfx.webrender.enabled
layout.css.backdrop-filter.enabled
svg.context-properties.content.enabled
# WORKAROUND FOR BAR HIDING ON DRAG EVENT
widget.gtk.ignore-bogus-leave-notify = 1
- Find your Firefox profile folder (
about:support
--> "Profile Directory") - Create a folder named
chrome
inside it - Create a file named
userChrome.css
inside thechrome
folder you just created - Copy the content of
config/sidebery/userChrome.css
or link it - Restart Firefox