Contents
| Window Manager | Sway |
| Status Bar | Swaybar & I3status-Rust |
| Terminal | Foot |
| Shell | Zsh & Rac |
| Editor | NeoVim |
| Multiplexer | Tmux |
| Password Manager | Pass |
| WiFi Manager | Network Manager |
| Notification Manager | Fnott |
| File Manager | Yazi |
| Pdf Reader | Zathura |
| Notes Manager | Noca |
| Bootloader | EFI Stub |
base-packages - List of base packages.
base-aur-packages - List of base aur packages.
extra-packages - List of extra packages.
extra-aur-packages - List of extra aur packages.
arch - /etc/ directory for arch.
nixos - /etc/nixos/ directory for nixos.
Init and update submodules:
git submodule update --init --recursiveUpdate to latest changes:
git submodule update --remoteInstall and select configs (home config for example. See make help for information):
make homelist packages from file
pacman -S $(xargs -a base-packages)
# or
pacstrap -k /mnt $(xargs -a base-packages)Become an root:
sudo -iLaunch wpa_supplicant:
systemctl start wpa_supplicant
wpa_cliIn wpa_cli:
add_network
set_network 0 ssid "YOUR_SSID_NETWORK"
set_network 0 psk "YOUR_PASSWORD"
enable_network 0
quit
Clone dotfiles repo:
git clone --depth 1 --recursive https://github.com/lomarco/dotfiles.git /mnt/nixos-config
cd /mnt/nixos-config/nixos
nix --extra-experimental-features "flakes nix-command" flake updateCreate partitions on disk:
nix run --extra-experimental-features "flakes nix-command" github:nix-community/disko -- --mode disko ./disko.nixMount root:
mount /dev/disk/by-label/nixos-root /mntInstall system:
nixos-install --flake .#hostname
reboot| Action | Shortcut |
|---|---|
| Open terminal | Super + Return |
| Launch browser | Super + Shift + B |
| Launch launcher | Super + D |
| Launch zathura | Super + Shift + Z |
| Launch telegram | Super + Shift + T |
| Open color picker | Super + P |
| Zoom/control app | Super + O |
| Take full-screen shot | PrintScreen |
| Take a part of screen | Super + C |
| Kill window | Super + Shift + Q |
| Exit sway | Super + Shift + E |
| Reload sway config | Super + Shift + C |
| Switch workspace | Super + {1..0} |
| Move container to WS | Super + Shift + {1..0} |
| Focus window | Super + {H, J, K, L} |
| Move window | Super + Shift + {H, J, K, L} |
| Fullscreen window | Super + F |
| Split horizontally | Super + B |
| Split vertically | Super + V |
| Stacking layout | Super + S |
| Tabbed layout | Super + W |
| Toggle split layout | Super + E |
| Toggle floating | Super + Shift + Space |
| Toggle focus mode | Super + Space |
| Focus parent | Super + A |
| Resize mode | Super + R |
| Move to scratchpad | Super + Shift + - |
| Show scratchpad | Super + - |
| Clipboard history | Super + N |
| Start/stop recorder | Super + Y |
| Audio mute | XF86AudioMute |
| Volume down | XF86AudioLowerVolume |
| Volume up | XF86AudioRaiseVolume |
| Mic mute | XF86AudioMicMute |
| Brightness down | XF86MonBrightnessDown |
| Brightness up | XF86MonBrightnessUp |
Other hotkeys are available in the sway config.
Neovim config — a minimal single-file configuration for development (C, C++, Rust, Go, Haskell, ASM), Git workflows, and Markdown note-taking; includes sensible defaults and essential plugins for a smooth coding workflow.
- lazy.nvim — plugin manager (installed in stdpath("data")/lazy)
- telescope.nvim — fuzzy finder (files, buffers, live grep, help tags, recent files)
- nvim-treesitter — syntax highlighting and indentation (c, cpp, bash, lua, asm, rust)
- nvim-lspconfig — LSP integration and common keymaps (clangd, pyright, lua_ls, rust_analyzer, hls, gopls)
- mason.nvim and mason-lspconfig.nvim — LSP installer/manager (automatic installation, ensure_installed)
- nvim-cmp + cmp-nvim-lsp, cmp-buffer, cmp-path, cmp_luasnip, LuaSnip, friendly-snippets — completion framework (manual autocomplete, source priorities)
- gitsigns.nvim — git signs and hunk operations
- vim-fugitive — git commands and quick push for current branch
- Comment.nvim — easy code commenting
- mini.tabline — tabline for buffers
- autoclose.nvim — automatic closing of brackets and quotes
- oil.nvim + oil-git-status.nvim — file explorer with git status
- zk-nvim — Zettelkasten/Markdown notes integration (zk LSP)
- rafi/awesome-vim-colorschemes — color schemes; default set to "purify" with transparent background
Additional config features:
- UniMake — universal build & run command per filetype (c/cpp/go/rust/haskell)
- ToggleTerminal — terminal in a bottom split with preserved terminal buffer; use in terminal to return to normal mode
- Display settings: number, relativenumber, colorcolumn=80, listchars (trail/nbsp/tab)
- Keymaps: leader = Space, jk to exit insert, buffer navigation (gn/gp/gw/ge), Telescope and LSP mappings
<leader> — leader (space)
General
jk (insert mode) — exit insert mode
<leader>q — close current window
<leader>u — toggle Undotree
<leader>d (normal) — toggle integrated terminal (opens bottom split; in terminal use <Esc> to return to normal mode)
<Esc> (terminal mode) — switch from terminal to normal mode (<C-\><C-n>)
Buffers
gn — next buffer (:bnext)
gp — previous buffer (:bprevious)
gw — close buffer (:bdelete)
ge — new empty buffer (:enew)
Telescope (requires plugin)
<leader>ff — Find Files
<leader>fg — Live Grep
<leader>fb — Find Buffers
<leader>fh — Help Tags
<leader>fr — Recent Files
Editor display / misc
<leader>h (in config) — runs UniMake (build+run for filetype; mapped to c/cpp/go/rust/haskell rules)
colorcolumn — 80
listchars — shows trailing/nbsp/tab markers
Completion (nvim-cmp)
completion is manual (no auto), navigate suggestions with standard cmp mappings (Tab / Shift-Tab enabled by cmp mappings)
LSP (when LSP attached)
gd — go to definition
gr — references
gi — go to implementation
gt — type definition
K — show hover
<leader>ca — code actions
<leader>r — rename symbol
<leader>f — format file
<leader>g — open diagnostics list
<leader>e — open diagnostics float
[d / ]d — previous / next diagnostic
Lomarco's Dotfiles is licensed under the Unlicense. See the license for details.


