Skip to content

lomarco/dotfiles

Repository files navigation

Lomarco's Dotfiles

Lomarco's Dotfiles preview

Contents

Toolchain

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

Gallery

Image 1
Image 2

Repository Structure

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.

Home

Scripts

Install Guide

Init and update submodules:

git submodule update --init --recursive

Update to latest changes:

git submodule update --remote

Install and select configs (home config for example. See make help for information):

make home

list packages from file

pacman -S $(xargs -a base-packages)
# or
pacstrap -k /mnt $(xargs -a base-packages)

Instalation Nixos guide

Become an root:

sudo -i

Launch wpa_supplicant:

systemctl start wpa_supplicant
wpa_cli

In 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 update

Create partitions on disk:

nix run --extra-experimental-features "flakes nix-command" github:nix-community/disko -- --mode disko ./disko.nix

Mount root:

mount /dev/disk/by-label/nixos-root /mnt

Install system:

nixos-install --flake .#hostname
reboot

Sway Hotkeys

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

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.

Included Plugins and Modules

  • 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

Basic Keybindings

<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

License

Lomarco's Dotfiles is licensed under the Unlicense. See the license for details.