_ _ _ _ ____
| \ | | _ __ ___ _ _ __ __ | || | |___ \
| \| || '_ ` _ \ | | | |\ \/ / | || |_ __) |
| |\ || | | | | || |_| | > < |__ _| / __/
|_| \_||_| |_| |_| \__,_|/_/\_\ |_| |_____|
A professional, high-performance development environment for 42 School, Arch Linux, and macOS. One-command setup for Nmux42, an isolated Neovim + Tmux environment.
git clone https://github.com/Rouboufy/Nmux42.git
cd Nmux42
bash setup.shMake sure ~/.local/bin is in your PATH. Then run:
nmux| Action | Command |
|---|---|
| Install | bash setup.sh |
| Run | nmux |
| Run Neovim directly | nmux --no-tmux |
| Update | bash update.sh or press u on the Neovim dashboard |
| Uninstall | bash uninstall.sh |
Nmux42 installs as an isolated standalone app that won't modify your existing Neovim or shell configurations.
- Arch Linux native — detects Arch and uses
pacmanwithsudofor high-performance native binaries - 100% Sudo-free — bypasses root requirements for Homebrew and NPM installs, works on 42 clusters
- SSL proxy fix — automatically applies
strict-ssl falsefor the 42 network proxy - Node auto-upgrade — upgrades Node.js to LTS via
nvmif the system version is too old - Auto PATH management — handles
~/.local/bin,~/.cargo/bin, and Homebrew paths automatically - Cleanup routine — removes temp files and build caches (NPM/Brew) after install to save disk space
| Tool | Description |
|---|---|
| Neovim | Custom plugin manager, Neo-tree explorer, interactive dashboard, Japonette TUI, live theme selector, LSP support |
| Tmux | Ctrl-a prefix, pane navigation shortcuts, automatic color sync with the active Neovim colorscheme |
| Zsh / Bash | Completely untouched. The isolated app runs via the nmux command without modifying your shell rc files. |
| JetBrainsMono Nerd Font | Auto-installed to ~/.local/share/fonts/ (no sudo) — required for icons |
Always installed:
gcc · clang · python3 · go · ripgrep · fd-find · pyright
Optional (prompted during setup):
zig · node.js · typescript · javascript · japonette
Leader key is
Space.
| Shortcut | Action |
|---|---|
<leader>e |
Toggle file explorer (Neo-tree) |
<leader>ff |
Find files (Telescope) |
<leader>fg |
Live grep (Telescope) |
<leader>a |
Add file to Harpoon |
Ctrl+e |
Toggle Harpoon menu |
<leader>th |
Select colorscheme — live preview + Tmux sync |
<leader>db |
Return to welcome dashboard |
<leader>ft |
Toggle floating terminal (Flterm) |
<leader>hk |
Custom keybinds quick-help popup |
<leader>hp |
Plugin manager / list popup |
<leader>vb / <leader>? |
Vim bindings reference |
| Shortcut | Action |
|---|---|
<leader>gg |
Open Git TUI (LazyGit with smart fallback) |
<leader>gl |
Open Git log |
<leader>gd |
Open Git diff |
<leader>gf |
LazyGit file log / filter |
<leader>gc |
LazyGit current file history |
<leader>gs |
Stage hunk under cursor |
<leader>gr |
Reset hunk under cursor |
<leader>gS |
Stage entire buffer |
<leader>gu |
Undo last staged hunk |
<leader>gp |
Preview hunk inline |
<leader>gb |
Toggle inline git blame |
]h / [h |
Jump to next / previous hunk |
ih |
Text object: select hunk (operator/visual mode) |
| Key | Action |
|---|---|
<leader>Ja |
Open Japonette — Active Campus tab |
<leader>Jf |
Open Japonette — Friends Watchlist tab |
<leader>Jm |
Open Japonette — Cluster Map tab |
Tab |
Toggle between tabs |
1 / 2 / 3 |
Switch to Campus / Friends / Cluster tab directly |
r |
Reload from 42 Intra API |
a / d |
Add / remove friend from watchlist |
Enter / o |
Inspect user details in popup |
m |
View user location on Cluster Map |
L |
Search for a specific user's location |
c |
Set default campus slug |
C |
Show a specific cluster map by name |
q / Esc |
Close Japonette window |
| Shortcut | Action |
|---|---|
Ctrl+a |
Prefix key (replaces default Ctrl+b) |
Ctrl+a | |
Split pane vertically |
Ctrl+a - |
Split pane horizontally |
Alt+h/j/k/l |
Navigate panes — no prefix needed |
Press <Space>th to open the live theme selector. Selecting a theme automatically updates Tmux colors to match.
Catppuccin · TokyoNight · Cyberdream · Rose Pine · Gruvbox · Nord · Kanagawa · Nightfox · Matte Black · Aether
We welcome contributions! Please see our Contributing Guidelines for instructions on how to get started.
Uninstall Nmux42 and clean up all configuration, data, cache, and state files:
bash uninstall.shDuring a full uninstall, the script prompts before removing NVM or Homebrew.
- Ensure
~/.local/binis in yourPATH. - Launch the environment by running:
nmux
- Neovim will automatically download all plugins on first launch.
- Set your terminal emulator font to JetBrainsMono Nerd Font (or
JetBrainsMono NF). Already installed at~/.local/share/fonts/. - Run
:Masoninside Neovim to manage additional LSPs and formatters.