PreReqs
- Basic Terminal Navigation (Required)
- Simple vim motions (Recommended)
System Component Summaries
This section gives a brief description of the installed components and can be referenced as you explore
DWM (Dynamic Window Manager)
- A tiling window manager by Suckless
- Manages all graphical program windows running within your X Window System (Desktop Mode)
- This version has been patched to allow communication with Polybar
- DWM is configured in ~/git/suckless/dwm/config.h
- Reinstall changes with sudo make clean install
ST (Simple/Suckless Terminal)
- A no-nonsense terminal, lightweight and fast
- Manually patched to include extra features
- Mapped to spawn via Super+Space
- ST is configured in ~/git/suckless/st/config.h
- Super+Space spawn command is mapped in ~/git/suckless/dwm/config.h
- Reinstall changes with sudo make clean install
TMUX (Terminal Multiplexor)
- A terminal multiplexor. Launched by default with ST via ~/.zshrc. Grants ability to spawn more terminals within your terminal, in splits and/or tabs.
- Provides extra features like copying text from the terminal to the system clipboard
- Tmux is configured in ~/.tmux.conf
- Config can be reloaded via CONTROL + j then r
- Runs by default (disabled via zshrc)
SARA (Special Application Ranging Area)
- An application launcher for the terminal with accreting features
- Launches programs via commandkeys, configurable menus, or by searching $PATH. Default Replicant config keymaps are listed below in HOTKEYS
- SARA is configured in ~/git/sara/config.h
- Recompile your updates to config.h with make, or within SARA itself by pressing 'm' while in ~/git/sara/
- A previous SARA can reload changes to sara/config.h by pressing ':'
- Runs by default (disabled via zshrc)
RANGER (Terminal File Explorer)
- A vim-like terminal file explorer/navigator
- Ranger is configured in ~/.config/ranger
- Ranger reads these configs when launched
DMENU (Dynamic Menu)
- An application launcher and dynamic menu generator
- Launch applications and scripts via super+backspace
- Dmenu is configured in ~/git/suckless/dmenu
- The Dmenu launch hotkey is configured in ~/git/suckless/dwm
- Reinstalled config changes with sudo make clean install
POLYBAR (Configurable Status Bar)
- A lightweight and highly-configurable status bar, resting at the top of the screen
- Polybar is configured in ~/git/suckless/polybar
- The rocket icon applies a random theme based on wallpapers in ~/pix/walls
DUNST (Notification Daemon)
- A simple, configurable notification daemon
- Notifications can be lauched with commands like notify-send "Hi it's me" "a notification"
- Configured in ~/.config/dunst/dunstrc
Oh-My-ZSH (ZSH extras)
- Extra ease-of-life addons for zsh
- Configured in ~/.oh-my-zsh
- Sourced when a new terminal opens via ~/.zshrc
First Steps
Default Hotkeys
Note: The SUPER key is the Windows/Command key. In the suckless configs, it's referred to as Mod4Mask. Mod1Mask is ALT.
DWM (Dynamic Window Manager)
Configured in ~/git/suckless/dwm/config.h
| SUPER + [NUM] | Visit screen [NUM] |
|---|---|
| SUPER + SHIFT + [NUM] | Move focused window to screen [NUM] |
| SUPER + SHIFT + CONTROL + [NUM] | Tag/untag focused window to screen [NUM] |
| SUPER + h | Focus window left |
| SUPER + h | Focus window right |
| SUPER + w | Set layout style: tiled |
| SUPER + e | Set layout style: floating |
| SUPER + r | Set layout style: monocle |
| SUPER + ENTER | Set layout to previous layout |
| SUPER + space | Spawn ST |
| SUPER + backspace | Spawn DMENU |
| SUPER + a | Increment number of windows on left side |
| SUPER + s | Increment number of windows on right side |
| SUPER + j | Nudge screen slit leftword |
| SUPER + k | Nudge screen slit rightword |
| SUPER + TAB | Visit previously visited window |
| SUPER + SHIFT + F | Toggle floating window |
| SUPER + + | Increase window gaps |
| SUPER + - | Decrease window gaps |
| SUPER + = | Reset window gaps |
| SUPER + b | Toggle polybar gap |
| SUPER + q | Kill focused window |
ST (Terminal)
Configured in ~/git/suckless/st/config.h
| ALT + SHIFT + J | Increase terminal font size |
|---|---|
| ALT + SHIFT + K | Decrease terminal font size |
| ALT + x | Increase opacity of ST |
| ALT + z | Decrease opacity of ST |
| ALT + SHIFT + C | clipboard copy (use TMUX to copy if tmux is running) |
| ALT + v | clipboard paste |
| SUPER + c | ttysend "sara\r" |
| SUPER + d | ttysend "reskin " |
| control + d | Exit |
TMUX (Terminal Multiplexor)
Configured in ~/.tmux.conf
| ALT + \ | Vertical Split |
|---|---|
| ALT + - | Horizontal Split |
| ALT + ENTER | Toggle pane zoom |
| CONTROL + j, E | Space panes evenly |
| CONTROL + j, c | New tmux window |
| ALT + [NUM] | Visit tmux window [NUM] |
| CONTROL + j, r | Reload ~/.tmux.conf |
| CONTROL + j, R | Reorder tmux windows |
| control + j, ! | Break current pane to new window |
| control + d | Exit |
| ALT + [ | Enter COPY MODE |
|---|
| [vim nav motions] | Move/scroll about the terminal window |
|---|---|
| SPACE | Start selection |
| ESCAPE | Deselect |
| ENTER | Make selection and exit COPY MODE |
SARA (Special Application Ranging Area)
Configured in ~/git/sara/config.h
| q | Quit SARA |
|---|---|
| p | Launch quick nav window (edit in ~/.config/sara/pshd) |
| r | Launches ranger |
| y | Launches yay |
| M | Music Player (rmpc) |
| n | Applies random theme |
| N | Fastfetch |
| v | NeoVim |
| F | Launches Firefox |
| D | System info menu |
| Q | Kills SARA along with current tmux pane |
| X | Kill ST window (and associated tmux server) |
| S | Shutdown menu |
Zen Browser
A Firefox fork in Beta. My current recommended browser after giving up on Qute. Install uBlock and Vimium extensions to perform mouse-less keyboard-only browsing (majoritively), extending the overall keyboard-centric theme of the Replicant build.
I recommend unmapping the default Vimium keybinds and starting with mine, allowing you to still use common base firefox hotkeys as well.
Gamers
Setting up the system for Steam was suprisingly simple. If I recall correctly, the steps were
- Enable the multilib repository
- Download the steam package appropriate for the system (Vulkan for the cyberdeck)
- Install a game from Steam
- That's pretty much it. Have played through Cyberpunk, Elden Ring, Witcher 3, Silksong and Sekiro with meager issues (except for the quirks that exist between games and all window managers, such as not being able to leave the game window and reliably return to the game, which is.. unfortunate)
Ricers
Give ~/skps/reskin a quick study. reskin can be invoked via reskin [png|jpg|jpeg], leveraging wal to generate and dump a dynamic color palette directly into ~/.cache/wal for sourcing by other programs, after first searching for a custom tailored theme in ~/skps/themes for priority application instead.
To create and edit a new theme based your wallpaper of choice:
- drop it into ~/pix/walls/[your_wallpaper]
- execute reskin [your_wallpaper]
- navigate to ~/skps/themes
- run ./get_current.sh [your_wallpaper.json]
- The colors you define in the new .json file will be applied the next time your run reskin [your_wallpaper], so long as the names match, where [your_wallpaper] will be paired with [your_wallpaper].json
reskin -s will reapply the same theme, resourcing your edited json file if available
reskin -r applies a random theme
reskin, without args, will apply your hardcoded SAVE OPTION directly from the reskin script. Comment the line wall=blah to always run with a random theme.
Several examples are already made available, go nuts
Software Developers
If you have a terminal-based workflow I recommend experimenting with SARA, otherwise, you do you.