-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add Arch Linux customization guide documentation
- Loading branch information
Showing
12 changed files
with
797 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<div align="center"> | ||
<h1>Arch Linux Dotfiles</h1> | ||
<img | ||
src="https://img.shields.io/github/directory-file-count/SetupGuides/ArchLinux/dotfiles?color=%23cba6f7&label=Dotfiles&style=for-the-badge" | ||
alt="Dotfiles" | ||
/> | ||
<img | ||
src="https://img.shields.io/github/directory-file-count/SetupGuides/ArchLinux/scripts?color=%23b4befe&label=Scripts&style=for-the-badge" | ||
alt="Scripts" | ||
/> | ||
<img | ||
src="https://img.shields.io/github/issues-raw/SetupGuides/ArchLinux?color=%23f38ba8&style=for-the-badge" | ||
alt="Issues" | ||
/> | ||
<img | ||
src="https://img.shields.io/github/last-commit/SetupGuides/ArchLinux?color=%23f9e2af&style=for-the-badge" | ||
alt="Last Commit" | ||
/> | ||
</div> | ||
|
||
--- | ||
|
||
## Description | ||
|
||
This repository contains most of my dotfiles and notes that are used in my Arch Linux installation. You can use the [auto-install script](Contents/Automatic%20Customization.md)] to automatically install Arch Linux and the dotfiles in your system. | ||
However, I don't guarantee that the installer covers all your needs. In such cases (or you probably do not want to start from scratch), this guide assumes that... | ||
|
||
- You've successfully installed Arch Linux by following their | ||
[installation guide](https://wiki.archlinux.org/title/Installation_guide) | ||
which can be found in their [wiki](https://wiki.archlinux.org/). Otherwise, follow the [system installation guide](Contents/System%20Installation.md) before proceeding. | ||
- You have made a [non-root user](./Contents/System%20Installation.md#add-a-non-root-user-account) in your system and is currently active. | ||
- You are currently connected to the internet. | ||
|
||
Some, if not all of the dotfiles, can also be used in other operating systems/distributions, but it's up to you on how you will do it since I haven't tested it on other systems yet. | ||
|
||
> [!NOTE] | ||
> | ||
> This guide is currently under active development. Documentation might be outdated because the dotfiles/scripts are updated frequently. | ||
## Table of Contents | ||
|
||
- Introduction (you are here!) | ||
- [Environment](Contents/Environment.md) | ||
- [System Installation](Contents/System%20Installation.md) | ||
- [Automatic Customization](Contents/Automatic%20Customization.md) | ||
- [Manual Customization](Contents/Manual%20Customization.md) | ||
- [Installing and Setting Up The Desktop](Contents/Installing%20and%20Setting%20Up%20The%20Desktop.md) | ||
- [Setting Up Hyprland](Contents/Setting%20Up%20Hyprland.md) | ||
- [Setting Up Kitty](Contents/Setting%20Up%20Kitty.md) | ||
- [Setting Up SDDM](Contents/Setting%20Up%20SDDM.md) | ||
- [Setting Up dunst](Contents/Setting%20Up%20dunst.md) | ||
- [Setting Up Waybar](Contents/Setting%20Up%20Waybar.md) |
8 changes: 8 additions & 0 deletions
8
Operating Systems/Arch Linux/Contents/Automatic Customization.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Automatic Installation | ||
|
||
This installation method is still under development. <!-- TODO --> | ||
|
||
--- | ||
|
||
- Previous: [System Installation](System%20Installation.md) | ||
- Next: [Manual Customization](Manual%20Customization.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
# Environment | ||
|
||
## Hardware | ||
|
||
I am using Arch Linux on my laptop because it gives me a functional system while having low resource usage. I am using an old Lenovo G50-70 laptop with an Intel Core i3-4030U, 4GB RAM, and 500GB HDD storage. | ||
|
||
## Software | ||
|
||
### Disk Partitions | ||
|
||
During the installation I've configured my machine to have the following | ||
disk partitions: | ||
|
||
| Device | Size | Mountpoint | Filesystem | Label | Description | | ||
| ----------- | ----------------------- | ----------- | ---------- | ----- | ----------------- | | ||
| `/dev/sda1` | 300M | `/mnt/boot` | FAT32 | EFI | EFI Partition | | ||
| `/dev/sda2` | 8G | SWAP | SWAP | SWAP | Swap Partition | | ||
| `/dev/sda3` | 60G | `/mnt` | BTRFS | ROOT | `/` Partition | | ||
| `/dev/sda4` | Remaining of the Device | `/mnt/home` | EXT4 | HOME | `/home` Partition | | ||
|
||
### Programs Used | ||
|
||
This Arch Linux configuration is using the following programs: | ||
|
||
<div align="center"> | ||
<table> | ||
<tbody> | ||
<tr> | ||
<td rowspan="9">Desktop</td> | ||
<td>Compositor</td> | ||
<td><a href="https://hyprland.org/">Hyprland</a></td> | ||
</tr> | ||
<tr> | ||
<td>Bar</td> | ||
<td><a href="https://github.com/Alexays/Waybar">Waybar</a></td> | ||
</tr> | ||
<tr> | ||
<td>Widgets</td> | ||
<td> | ||
<a href="https://github.com/elkowar/eww">ElKowars wacky widgets</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Launcher</td> | ||
<td><a href="https://github.com/lbonn/rofi">Rofi</a></td> | ||
</tr> | ||
<tr> | ||
<td>Notification Manager</td> | ||
<td><a href="https://github.com/dunst-project/dunst">Dunst</a></td> | ||
</tr> | ||
<tr> | ||
<td>Wallpaper Utility</td> | ||
<td><a href="https://github.com/hyprwm/hyprpaper">Hyprpaper</a></td> | ||
</tr> | ||
<tr> | ||
<td>Lockscreen</td> | ||
<td> | ||
<a href="https://github.com/jirutka/swaylock-effects">Swaylock</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Display Manager</td> | ||
<td><a href="https://github.com/sddm/sddm">SDDM</a></td> | ||
</tr> | ||
<tr> | ||
<td>Logout Menu</td> | ||
<td><a href="https://github.com/ArtsyMacaw/wlogout">WLogout</a></td> | ||
</tr> | ||
<tr> | ||
<td rowspan="5">Desktop Applications</td> | ||
<td>Terminal</td> | ||
<td><a href="https://sw.kovidgoyal.net/kitty/">Kitty</a></td> | ||
</tr> | ||
<tr> | ||
<td>Browser</td> | ||
<td><a href="https://firefox.com/">Firefox</a></td> | ||
</tr> | ||
<tr> | ||
<td>File Manager (GUI)</td> | ||
<td> | ||
<a href="https://docs.xfce.org/xfce/thunar/start">Thunar</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Audio Effects</td> | ||
<td> | ||
<a href="https://github.com/wwmm/easyeffects">Easy Effects</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Document Viewer</td> | ||
<td><a href="https://pwmt.org/projects/zathura">Zathura</a></td> | ||
</tr> | ||
<tr> | ||
<td rowspan="5">Terminal Applications</td> | ||
<td>Shell</td> | ||
<td><a href="https://www.zsh.org/">ZSH</a></td> | ||
</tr> | ||
<tr> | ||
<td>AUR Helper</td> | ||
<td><a href="https://github.com/Morganamilo/paru">Paru</a></td> | ||
</tr> | ||
<tr> | ||
<td>File Manager (TUI)</td> | ||
<td><a href="https://midnight-commander.org/">mc</a></td> | ||
</tr> | ||
<tr> | ||
<td>Process Viewer</td> | ||
<td><a href="https://github.com/aristocratos/btop">btop</a></td> | ||
</tr> | ||
<tr> | ||
<td>Audio Visualizer</td> | ||
<td><a href="https://github.com/karlstav/cava">cava</a></td> | ||
</tr> | ||
<tr> | ||
<td rowspan="7">Back-End/Utilities</td> | ||
<td>Administration</td> | ||
<td><a href="https://www.sudo.ws/sudo/">sudo</a></td> | ||
</tr> | ||
<tr> | ||
<td>Authentication Agent</td> | ||
<td> | ||
<a href="https://gitlab.gnome.org/Archive/policykit-gnome" | ||
>GNOME Polkit Authentication Agent</a | ||
> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Secrets/Password Manager</td> | ||
<td><a href="https://keepassxc.org/">KeePassXC</a></td> | ||
</tr> | ||
<tr> | ||
<td>Network Manager</td> | ||
<td><a href="https://networkmanager.dev/">NetworkManager</a></td> | ||
</tr> | ||
<tr> | ||
<td>Bluetooth Manager</td> | ||
<td> | ||
<a href="https://github.com/blueman-project/blueman">Blueman</a> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td>Audio/Video Processor</td> | ||
<td><a href="https://pipewire.org">Pipewire</a></td> | ||
</tr> | ||
<tr> | ||
<td>Input Method</td> | ||
<td><a href="https://github.com/fcitx/fcitx5">Fcitx5</a></td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
|
||
- Fonts used: [JetBrains Mono (Nerd Fonts)](https://github.com/ryanoasis/nerd-fonts) & [Font Awesome](https://fontawesome.com/) | ||
- Colorscheme: [Catppuccin Mocha](https://github.com/catppuccin/catppuccin) | ||
|
||
--- | ||
|
||
- Previous: [Introduction](../Arch%20Linux.md) | ||
- Next: [System Installation](System%20Installation.md) |
79 changes: 79 additions & 0 deletions
79
Operating Systems/Arch Linux/Contents/Installing and Setting Up The Desktop.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# Installing and Setting Up The Desktop | ||
|
||
In this part of the customization process, we will install | ||
the following programs and their dependencies: | ||
|
||
- [brightnessctl](https://github.com/Hummer12007/brightnessctl) brightness control tool | ||
- [btop](https://github.com/aristocratos/btop) system resources monitor | ||
- [dunst](https://dunst-project.org/) notification daemon | ||
- [libnotify](https://gitlab.gnome.org/GNOME/libnotify) desktop notification library | ||
- [fcitx5](https://github.com/fcitx/fcitx5) input method | ||
- [Firefox](https://www.mozilla.org/en-US/firefox/new/) browser | ||
- [grim](https://git.sr.ht/~emersion/grim) screenshot utility | ||
- [slurp](https://github.com/emersion/slurp) Wayland region selection tool | ||
- [swappy](https://github.com/jtheoof/swappy) snapshot editing tool | ||
- [Hyprland](https://hyprland.org/) tiling compositor | ||
- [catppuccin-cursors-mocha](https://github.com/catppuccin/cursors) cursors | ||
- [catppuccin-gtk-theme-mocha](https://github.com/catppuccin/gtk) GTK theme | ||
- [Hyprpaper](https://github.com/hyprwm/hyprpaper) wallpaper utility | ||
- [GNOME PolicyKit Agent](https://gitlab.gnome.org/Archive/policykit-gnome) | ||
- [KeePassXC](https://keepassxc.org/) password manager | ||
- [Kitty](https://sw.kovidgoyal.net/kitty/) terminal emulator | ||
- [PipeWire](https://pipewire.org) audio/video router and processor | ||
- [EasyEffects](https://github.com/wwmm/easyeffects) audio effects for PipeWire | ||
- [playerctl](https://github.com/altdesktop/playerctl) mpris media player controller | ||
- [WirePlumber](https://pipewire.pages.freedesktop.org/wireplumber/) PipeWire session/policy manager | ||
- [rofi](https://github.com/lbonn/rofi) window switcher, run dialog, and dmenu replacement | ||
- [rofimoji](https://github.com/fdw/rofimoji) character picker for rofi | ||
- [SDDM](https://github.com/sddm/sddm/) display manager | ||
- [Catppuccin for SDDM](https://github.com/khaneliman/catppuccin-sddm-corners) | ||
- [socat](http://www.dest-unreach.org/socat/) | ||
- [swaylock-effects](https://github.com/jirutka/swaylock-effects) screen locker | ||
- [Thunar](https://docs.xfce.org/xfce/thunar/start) file manager | ||
- [Gnome Virtual File System](https://wiki.gnome.org/Projects/gvfs) | ||
- [Thunar Archive Plugin](https://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin) | ||
- [file-roller](https://wiki.gnome.org/Apps/FileRoller) | ||
- [Thunar Media Tags Plugin](https://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin) | ||
- [Thunar Volume Manager](https://goodies.xfce.org/projects/thunar-plugins/thunar-volman) | ||
- [Tumbler](https://gitlab.xfce.org/xfce/tumbler) thumbnail generator | ||
- [ffmpegthumbnailer](https://github.com/dirkvdb/ffmpegthumbnailer) video thumbnailer | ||
- [Folder thumbnailer](https://github.com/j-james/thunar-folder-thumbnails) | ||
- [RAW thumbnailer](https://code.google.com/archive/p/raw-thumbnailer/) | ||
- [Waybar](https://github.com/Alexays/Waybar) Wayland bar | ||
- [wl-clipboard](https://github.com/bugaevc/wl-clipboard) copy/paste utility | ||
- [cliphist](https://github.com/sentriz/cliphist) clipboard manager | ||
|
||
```bash | ||
paru -S \ | ||
brightnessctl \ | ||
btop \ | ||
dunst libnotify \ | ||
fcitx5 \ | ||
firefox \ | ||
grim slurp swappy \ | ||
hyprland hyprpaper polkit-gnome \ | ||
catppuccin-cursors-mocha catppuccin-gtk-theme-mocha \ | ||
keepassxc \ | ||
kitty \ | ||
pipewire pipewire-audio pipewire-pulse lib32-pipewire \ | ||
easyeffects playerctl wireplumber \ | ||
rofi-lbonn-wayland-git rofimoji \ | ||
sddm-git sddm-catppuccin-git \ | ||
qt5-graphicaleffects qt5-svg qt5-quickcontrols2 \ | ||
socat \ | ||
swaylock-effects-git \ | ||
thunar gvfs \ | ||
thunar-archive-plugin file-roller \ | ||
thunar-media-tags-plugin thunar-volman \ | ||
tumbler tumbler-extra-thumbnailers raw-thumbnailer \ | ||
ffmpegthumbnailer \ | ||
waybar-hyprland-git \ | ||
wl-clipboard cliphist \ | ||
``` | ||
|
||
You may want to read the installation instructions of each programs in case your hardware/software configuration needs extra installation steps. | ||
|
||
--- | ||
|
||
- Previous: [Manual Customization](Manual%20Customization.md) | ||
- Next: [Setting Up Hyprland](Setting%20Up%20Hyprland.md) |
87 changes: 87 additions & 0 deletions
87
Operating Systems/Arch Linux/Contents/Manual Customization.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Customization | ||
|
||
Now that you have a new Arch Linux system, we will now start performing customizations in it. | ||
|
||
## Installing An AUR Helper | ||
|
||
[Install Paru](https://github.com/Morganamilo/paru). This is the AUR helper that we will use. | ||
|
||
```bash | ||
sudo pacman -S --needed base-devel # If it is not yet installed | ||
|
||
# Clone the repo in a temp directory. | ||
export PARU_TMP_DIR=$(mktemp -d) | ||
git clone https://aur.archlinux.org/paru.git "${PARU_TMP_DIR}/paru" | ||
|
||
# build and install paru. | ||
cd "${PARU_TMP_DIR}/paru" | ||
makepkg -si | ||
|
||
# Go back home and remove the created temp directory. | ||
cd ~ | ||
rm -rf $PARU_TMP_DIR | ||
unset $PARU_TMP_DIR | ||
``` | ||
|
||
## Downloading the Dotfiles | ||
|
||
Install `git` and `git-lfs`, and clone this repository. | ||
|
||
```bash | ||
paru -S git git-lfs | ||
git clone https://github.com/SetupGuides/ArchLinux.git ~/ArchLinuxDotfiles | ||
cd ~/ArchLinuxDotfiles | ||
``` | ||
|
||
> [!NOTE] From now on, this guide will assume that you are in `~/ArchLinuxDotfiles` directory unless specified. | ||
## Custom Fonts and Icons | ||
|
||
We are going to use the following fonts and icons, so it's best to install it now. | ||
|
||
```bash | ||
paru -Syu otf-font-awesome ttf-jetbrains-mono-nerd ttf-noto-nerd \ | ||
papirus-icon-theme papirus-folders-catppuccin-git | ||
``` | ||
|
||
## Useful Packages | ||
|
||
It is recommended to install and enable the following packages. | ||
|
||
```bash | ||
paru -S acpid avahi | ||
systemctl enable acpid.service avahi-daemon.service | ||
``` | ||
|
||
### Enable Bluetooth support | ||
|
||
```bash | ||
paru -S bluez bluez-utils blueman | ||
systemctl enable bluetooth.service | ||
systemctl start bluetooth.service | ||
``` | ||
|
||
### Enable Printer Support | ||
|
||
```bash | ||
paru -S system-config-printer sane \ | ||
foomatic-db foomatic-db-engine \ | ||
gutenprint gsfonts \ | ||
cups cups-pdf cups-filters | ||
systemctl enable cups.service saned.socket | ||
``` | ||
|
||
### Enable TRIM for SSDs | ||
|
||
```bash | ||
systemctl enable fstrim.timer | ||
``` | ||
|
||
## Next Steps | ||
|
||
- [Installing and Setting Up The Desktop](Installing%20and%20Setting%20Up%20The%20Desktop.md) | ||
|
||
--- | ||
|
||
- Previous: [Automatic Customization](Automatic%20Customization.md) | ||
- Next: [Installing and Setting Up The Desktop](Installing%20and%20Setting%20Up%20The%20Desktop.md) |
Oops, something went wrong.