Terminal Centric and Reliable: The terminal is the heart of this environment, providing CLI/TUI tools and utilities for efficient workflow tailored to personal preference. Even if the Display Server (central point of failure) fails, navigate comfortability in TTY interface without feeling homesick.
Lightweight, Optimized, and Battery Efficient: Perfectly engineered to be light on system resources, ensuring smooth performance. Every aspect is optimized for maximum efficiency, extending battery life and also have many features at disposal.
Cohesive Universal Interface with Vim Keybindings: Keyboard-centric approach, with standardized Vim-style keybindings deeply integrated into every tools, apps and utilities. This allows to navigate and interact with speed, precision and comfortability without even thinking about keybindings.
⚗️ Experimental Features
-
Computers and tools should adapt to Humans and not vice versa.
-
Computers and tools should understand context and intent.
-
Environment should support cognitive flow, not disrupt or redirect it.
Reduction of Cognitive Load by Intent based computing for context switching, Ambient notification system like Calm technology, Active Assistance and Automation.
Run: Automating project initialization and environment setup. Helps to maintain cognitive context of task without distracting yourself from manual setup.
Expression: Expressing a non-intrusive ambient notification of life events and schedules. Know time schedule without knowing the time. Useful for humans with low interoception who works on computers all day.
Intention: State your intent and let your computer change itself to adapt to your intention. Abstracts away Operating Systems to use it as specialized environment for a specific intent.
Click the links below for a detailed documentation.
Name | Description | Preview |
---|---|---|
Keyboard Layout/Mapping |
||
File Manager |
||
TUI Code Editor |
||
Web Browser |
||
Shell |
||
Terminal Multiplexer |
||
PDF Frontend |
||
Music Visualizer |
||
Image Viewer |
||
App Launcher |
||
Wayland Compositor |
||
Terminal Emulator |
||
TUI Git Frontend |
||
Video Player |
||
Scripts |
||
Shell Prompt Engine |
||
GUI Code Editor |
||
Status Bar |
||
Logout Menu |
🔴 |
Required Dependency |
🟡 |
Optional Dependency |
flowchart LR
subgraph XOSCRP Layer
intention(<a href='https://github.com/MidHunterX/Intention'>Intention</a>)
linux(Linux OS)
windows(Windows OS)
grub{GRUB Bootloader}
keyd{{<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/keyd/'>KeyD</a>}}
end
intention --> grub --> linux & windows
linux & windows --> intention
keyd --> linux
subgraph Orchestration Layer
hypr(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/hypr'>Hyprland</a>)
run(<a href='https://github.com/MidHunterX/Project-Launcher'>Project Launcher</a>)
expression(<a href='https://github.com/MidHunterX/Expression'>Expression</a>)
swww{{🔴 swww}}
end
linux ==> hypr
vifm(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/vifm'>VIFM</a>)
ls{{🟡 lsd / ls}}
cat{{🟡 bat / cat}}
find{{🟡 fd / find}}
grep{{🟡 ripgrep / grep}}
exif{{🟡 exiv2}}
tmux{{🔴 tmux}}
syntax{{🔴 highlight}}
nvim(<a href='https://github.com/MidHunterX/HunterX-PDE'>NeoVim</a>)
kitty(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/kitty/'>Kitty</a>)
fish(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/fish/'>Fish Shell</a>)
vos(VOS)
cd{{🟡 zoxide / cd}}
volume{{🔴 pamixer}}
brs(BRS)
brillo{{🔴 brillo}}
waybar(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/waybar/'>Waybar</a>)
nf(Nerd Font)
fzf{{🔴 fzf}}
git{{🟡 git / lazygit}}
prompt(<a href='https://github.com/MidHunterX/Hunter-OS/tree/master/.config/starship/'>Starship Prompt</a>)
hypr --> kitty & expression
expression --> swww
hypr <--> swww & waybar
run --> tmux & nvim
kitty --> nvim & fish
fish --> ls & vifm & nvim & cd & git & vos & brs & cat & find & prompt
cd --> ls --> nf
prompt & fish --> subshell[[VIFM_MODE]] --> vifm
vifm --> ls & exif & syntax & nf & fzf & find
nvim <--> vifm
nvim --> nf & find & git & grep & kitty
waybar --> volume & brillo & nf
vos --> volume
brs --> brillo
Click the following categories to toggle the list of packages in that category.
🐧 Linux System
Package Name | Description | Src |
---|---|---|
base |
Base Arch Installation |
pacman |
base-devel |
Basic tools to build Arch Linux packages |
pacman |
linux |
The Linux kernel and modules |
pacman |
linux-firmware |
Firmware files for Linux |
pacman |
linux-headers |
Headers and scripts for building modules |
pacman |
pacman-contrib |
Scripts and tools for pacman systems (paccache) |
pacman |
👢 Boot
Package Name | Description | Src |
---|---|---|
dosfstools |
DOS Filesystem Utilities |
pacman |
efibootmgr |
Utility to modify the EFI Boot Manager |
pacman |
grub |
GNU GRand Unified Bootloader |
pacman |
ntfs-3g |
NTFS filesystem driver and utilities |
pacman |
os-prober |
Utility to detect other OSes |
pacman |
plymouth |
Graphical boot splash screen |
pacman |
cantarell-fonts |
Humanist sans serif font (for plymouth) |
pacman |
💾 Hardware
Package Name | Description | Src |
---|---|---|
acpi |
Client for battery, power and thermal readings |
pacman |
acpi_call |
Kernel module call ACPI (/proc/acpi/call) |
pacman |
acpid |
Daemon for ACPI power management events |
pacman |
amd-ucode |
Microcode update image for AMD CPUs |
pacman |
amdvlk |
AMD’s standalone Vulkan driver |
pacman |
mesa-utils |
Essential Utilities for Open-source OpenGL |
pacman |
📦 Development
Package Name | Description | Src |
---|---|---|
git |
Version control system |
pacman |
lazygit |
TUI for Git |
pacman |
git-delta |
Git Syntax Highlighted Pager |
pacman |
meson |
Nice build system |
pacman |
nodejs |
Node Java Script Runtime Env |
pacman |
npm |
Node JS package manager |
pacman |
python |
Python Interpreter |
pacman |
sqlitebrowser |
DB Browser for SQLite |
pacman |
⚙️ Utilities
Package Name | Description | Src |
---|---|---|
sudo |
Run commands as root |
pacman |
bat |
cat with syntax highlighting |
pacman |
zoxide |
Better alternative to cd command |
pacman |
dust |
Disk usage analyzer (static) |
pacman |
ncdu |
Disk space cleaner (interactive) |
pacman |
exiv2 |
Image EXIF Manipulation Tool |
pacman |
fd |
Faster alternative to find command |
pacman |
ffmpegthumbnailer |
Video Thumbnailer |
pacman |
fzf |
Fuzzy Finder Utility |
pacman |
highlight |
Syntax Highlighter |
pacman |
jq |
CLI JSON Processor |
pacman |
libqalculate |
CLI NLP Calculator |
pacman |
lsd |
ls with Nerd Font support |
pacman |
man-db |
Utility for reading man pages |
pacman |
poppler |
PDF Rendering Engine |
pacman |
ripgrep |
Text Search Tool |
pacman |
speech-dispatcher |
Speech Synthesis (spd-say) |
pacman |
xsv |
CLI CSV Processor |
pacman |
fastfetch |
Fetch System Information |
pacman |
onefetch |
Fetch Git Project Information |
aur |
brillo |
Brightness based on human perception |
aur |
tgpt |
CLI AI Chat without API keys |
aur |
wl-kbptr |
Cursor Modal Keyboard Driven Pointer |
aur |
wlrctl |
Cursor Control Utility |
aur |
📷 Audio, Video and Image
Package Name | Description | Src |
---|---|---|
pamixer |
CLI Volume Control Tool |
pacman |
pavucontrol |
GUI Volume Control Tool |
pacman |
pipewire |
Audio and Video streaming server |
pacman |
pipewire-pulse |
A/V router & processor - PulseAudio replacement |
pacman |
wireplumber |
PipeWire session/policy manager - wpctl |
pacman |
easyeffects |
Loudness Equalization |
pacman |
lsp-plugins-lv2 |
easyeffects: equalizer, compressor, loudness |
pacman |
calf |
easyeffects: limiter, exciter, bass enhancer |
pacman |
cava |
Cross Platform Audio Visualizer |
aur |
Package Name | Description | Src |
---|---|---|
ffmpeg |
Super advanced library for handling Audio / Video |
pacman |
handbrake |
GUI Video Transcoder |
pacman |
mpv |
Video Player - Minimal and integrates well with WM |
pacman |
yt-dlp |
Video Downloader |
pacman |
Package Name | Description | Src |
---|---|---|
feh |
Image Viewer - Super light weight |
pacman |
nomacs |
Image Viewer - Touch screen friendly |
aur |
🌐 Network and Security
Package Name | Description | Src |
---|---|---|
android-file-transfer |
Mount Android Device |
pacman |
blueman |
GUI Bluetooth Manager |
pacman |
bluez |
Bluetooth Protocol Daemon |
pacman |
bluez-utils |
Bluetooth Utilities - bluetoothctl |
pacman |
curlftpfs |
FUSE mount ftp sites |
pacman |
termscp |
TUI client for SCP, FTP, Kube, S3 |
pacman |
dhcpcd |
DHCP Client Daemon |
pacman |
firefox-developer-edition |
Internet Browser |
pacman |
keepassxc |
Password Manager |
pacman |
networkmanager |
CLI Network Manager - nmcli, nmtui |
pacman |
openssh |
SSH protocol implementation |
pacman |
torbrowser-launcher |
Anonnymous Onion Browser |
pacman |
transmission-gtk |
GUI Torrent Client |
pacman |
wpa_supplicant |
WLAN Daemon |
pacman |
When using curlftpfs
to FUSE mount and copy files over FTP, there’s a common issue with not being able to copy over file names/paths containing spaces because of how the FTP protocol and the FUSE layer handle escaping (files should be URL-encoded). As a workaround you can:
* Just rename the file before copying
* Use termscp
but you’ll have to use their TUI interface instead of direct filesystem access.
🌲 Desktop
Package Name | Description | Src |
---|---|---|
libnotify |
Notification library |
pacman |
dunst |
Notification Daemon |
pacman |
fuzzel |
Wayland App Launcher |
pacman |
hyprland |
Wayland compositor |
pacman |
xdg-desktop-portal-hyprland |
Desktop Integration Portal |
pacman |
swayidle |
Wayland Idle Manager |
pacman |
waybar |
Wayland Status Bar |
pacman |
wl-clipboard |
wl-copy + wl-paste |
pacman |
wtype |
Wayland Keystrokes Emulation |
pacman |
wf-recorder |
Wayland Screen Recorder |
aur |
keyd |
Key Remapping Daemon |
aur |
swww |
Wayland Wallpaper Daemon |
aur |
wlogout |
Logout Screen |
aur |
ℹ️
|
wl-screenrec might be optimized, fast, efficient and Lightweight but it doesn’t work in battery saver mode unlike wf-recorder. |
|
xdg-desktop-portal-hyprland enables features like screen sharing. There is a bug when the display is rotated, screen sharing shows it as default landscape mode. This is because SPA_META_VideoTransform is not present in the buffer metadata for PipeWire streams. This is what many apps, including browsers use to determine if and how the captured image needs to be rotated and Browser WebRTC doesn’t support the SPA_META_VideoTransform metadata as well. This issue can be tracked here: issue 292 and in WebRTC: issue 42226058. Have to wait until WebRTC fixes it.
|
💻 2-in-1 Laptop Specific
Package Name | Description | Src |
---|---|---|
iio-sensor-proxy |
Accelerometer Sensor Driver |
pacman |
tlp |
Laptop Power Optimization |
pacman |
auto-cpufreq |
Dynamic CPU Clock Cycle Frequency |
aur |
detect-tablet-mode-git |
Tablet mode scripts - watch_tablet |
aur |
iio-hyprland-git |
Set Hyprland Orientation automatically |
aur |
yoga-usage-mode-dkms-git |
ACPI driver for Tablet mode detection |
aur |
📄 Document viewers and editors
Package Name | Description | Src |
---|---|---|
neovim |
Text Editor |
pacman |
code |
Open Source build of VSCode |
pacman |
obsidian |
MarkDown Note taker |
pacman |
pdfarranger |
PDF Page Arranger |
pacman |
xournalpp |
PDF Annotation / Drawing |
pacman |
zathura |
PDF Graphical Viewer |
pacman |
zathura-pdf-poppler |
Zathura Poppler Backend |
pacman |
📁 Archivers and File Manager
📊 System Monitors and Managers
🖥️ Terminal
🖋️ Fonts
Package Name | Description | Src |
---|---|---|
fontconfig |
Font Configuration |
pacman |
noto-fonts |
Google Font for Unicode Support |
pacman |
noto-fonts-cjk |
Google Font for Unicode Support |
pacman |
ttf-jetbrains-mono-nerd |
Nerd Font Icons patch |
pacman |
With no emoji fonts installed, all of the emojis should look like boxes. Install any one of the following to use systemwide:
Package Name | Description | Src |
---|---|---|
noto-fonts-emoji |
Emoji by Google |
pacman |
ttf-joypixels |
High quality emojis |
pacman |
ttf-twemoji |
Emoji by Twitter |
yay |
-
noto-fonts-emoji emojis are easily distinguishable from each other when font size is small; like on terminals. Uses COLRv1.
-
ttf-twemoji is perfect for bigger font size. Perfect for Web Browsers.
-
ttf-joypixels has that premium feel. Search it up.
My Recommendation: Install ttf-joypixels
and noto-fonts-emoji
-
On every GUI apps, high quality ttf-joypixels is used.
-
On Kitty terminal, it will fallback to using noto-fonts-emoji.
sudo ln -s /usr/share/fontconfig/conf.avail/75-twemoji.conf /etc/fonts/conf.d/
🥃 Screenshot
Service | Description |
---|---|
NetworkManager.service |
Network connection manager |
dhcpcd.service |
DHCP/ IPv4LL/ IPv6RA/ DHCPv6 client |
A key remapping daemon for linux |
sudo cp -R ~/.config/GRUB/CyberEXS /boot/grub/themes
sudoedit /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
GRUB_THEME=/boot/grub/themes/CyberEXS/theme.txt
GRUB_TIMEOUT=1
# Setting "splash" for boot splash screen with plymouth
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash"
# Read other EFI with os-prober
GRUB_DISABLE_OS_PROBER=false
sudo cp -R ~/.config/PLYMOUTH/cuts_alt /usr/share/plymouth/themes
sudo plymouth-set-default-theme -R cuts_alt
ℹ️
|
The splash screen included here is one from the 80+ plymouth splash screens from adi1090x/plymouth-themes. |
List all available groups that you can assign:
cat /etc/group
sudo usermod -G wheel,audio,video,power,input,storage midhunter
Group | Purpose |
---|---|
wheel |
Grants sudo privileges |
audio |
Access to audio devices |
video |
Access to GPU and hardware acceleration. |
power |
Control power states (suspend, reboot, etc.) |
input |
Access to input devices |
storage |
Raw access to storage devices |
Verify currently active groups:
groups midhunter
sudo ln -s ~/.config/keyd/default.conf /etc/keyd/default.conf
systemctl enable keyd.service
systemctl start keyd.service
sudoedit /etc/sudoers
# Sudo Stuff
Defaults timestamp_type=global # Activate Sudo across terminals
Defaults timestamp_timeout = 10 # Activate Sudo for 10 minutes
Defaults passwd_timeout = 5 # Sudo prompt timeout after 5 minutes
# Login Stuff
Defaults insults # Incorrect Password Easteregg
Defaults pwfeedback # Visible Password Feedback
sudo mkdir -p /etc/systemd/system/[email protected]/
sudo touch /etc/systemd/system/[email protected]/skip-username.conf
sudoedit /etc/systemd/system/[email protected]/skip-username.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- midhunter' --noclear --skip-login - $TERM
or use this line if you want to auto login to a specific user on TTY1
[Service]
ExecStart=
ExecStart=-/sbin/agetty --noissue --autologin 'midhunter' - $TERM
Partition | Recommended Size | Max Used |
---|---|---|
/ |
> 50G |
45G |
/boot |
= 256M |
230M |
/tmp (swap) |
= 4G |
200M |
/home |
> 128G |
40G |
Create separate SSH keys for separate stuff.
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 # Personal Key
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_company # Work Key
Host github.com
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Host github-company
IdentityFile ~/.ssh/id_ed25519_company
IdentitiesOnly yes
[url "git@github-company:"]
insteadOf = [email protected]:
insteadOf = https://github.com/
[includeIf "gitdir:~/projects/work/"]
path = ~/.gitconfig-company
-
~/projects/personal/
→ personal account -
~/projects/work/
→ work account
Now you just clone normally. Git and SSH handle the rest. No more manual switching, no more mistakes.