No description
Find a file
Cola bbd17806df
All checks were successful
Forgejo Actions smoke test / smoke (push) Successful in 1s
fix: update Niri, Solaar, and Zen Browser integration
2026-09-21 19:43:16 +07:00
.agents docs: translate AGENTS.md and README.md to English 2026-08-01 20:02:42 +07:00
.forgejo/workflows ci: add Forgejo Actions smoke test 2026-08-13 21:23:28 +07:00
docs docs: add Yazi user guide 2026-08-11 20:33:36 +07:00
modules fix: update Niri, Solaar, and Zen Browser integration 2026-09-21 19:43:16 +07:00
.gitignore chore: add .gitignore for build results 2026-08-05 12:54:38 +07:00
flake.lock feat: add Proton VPN and update Zen Browser 2026-09-12 18:28:10 +07:00
flake.nix feat: add antigravity nix module and update niri configuration for vicinae integration 2026-08-02 16:38:11 +07:00
README.md fix: update Niri, Solaar, and Zen Browser integration 2026-09-21 19:43:16 +07:00
result feat: add antigravity nix module and update niri configuration for vicinae integration 2026-08-02 16:38:11 +07:00

myNixOS

Personal NixOS configuration using flake-parts + import-tree with a modular structure.

Stack

Component Program
OS NixOS (unstable)
Compositor Niri (scrollable tiling Wayland)
Bar / Shell Noctalia
Terminal Kitty
Terminal Multiplexer tmux
Browser Firefox
File Manager Yazi
Audio PipeWire + WirePlumber
Display Manager Ly

Directory Structure

myNixOS/
├── flake.nix                          # Flake entry point
├── flake.lock                         # Dependency lock file
├── .agents/
│   └── AGENTS.md                      # Rules for AI agents
└── modules/
    ├── parts.nix                      # flake-parts configuration (systems)
    ├── hosts/
    │   ├── my-machine/                # Intel machine
    │   │   ├── default.nix            # nixosConfigurations.myMachine
    │   │   ├── hardware.nix           # Machine-specific hardware (Intel)
    │   │   └── configuration.nix      # Imports + machine-specific settings
    │   └── amd-machine/               # AMD machine
    │       ├── default.nix            # nixosConfigurations.amdMachine
    │       ├── hardware.nix           # Machine-specific hardware (AMD)
    │       └── configuration.nix      # Imports + machine-specific settings
    └── features/
        ├── packages.nix               # ✅ Shared packages (all machines)
        ├── niri.nix                   # Compositor + keybinds
        ├── tmux.nix                   # Terminal multiplexer + pane keybinds
        ├── audio.nix                  # PipeWire audio stack
        ├── bluetooth.nix              # Bluetooth + Blueman
        ├── noctalia.nix               # Bar/shell Noctalia
        └── noctalia.json              # Noctalia configuration

Hosts

Host CPU Konfigurasi Rebuild Command
my-machine Intel nixosConfigurations.myMachine sudo nixos-rebuild switch --flake /home/cola/myNixOS#myMachine
amd-machine AMD nixosConfigurations.amdMachine sudo nixos-rebuild switch --flake /home/cola/myNixOS#amdMachine

Semua paket dan fitur aplikasi dibagi bersama melalui modules/features/. Hanya hardware.nix yang berbeda antar mesin.


How to Rebuild

Intel machine:

sudo nixos-rebuild switch --flake /home/cola/myNixOS#myMachine

AMD machine:

sudo nixos-rebuild switch --flake /home/cola/myNixOS#amdMachine

Installed Packages

System

Package Purpose
vim Text editor
git Version control
wget File downloader
firefox Browser
procps System process tools

Desktop

Package Purpose
kitty Terminal emulator
yazi Terminal file manager (panduan)

Wayland Utilities

Package Purpose
wl-clipboard Copy-paste (wl-copy / wl-paste)
grim Screenshot tool
slurp Select screenshot area
brightnessctl Screen brightness control
playerctl Media player control

Services (via feature modules)

Feature Details
PipeWire Audio server + WirePlumber session manager
Bluetooth BlueZ + Blueman GUI
Niri Scrollable tiling Wayland compositor
Noctalia Bar, launcher, control center
tmux Terminal sessions and split panes

Keybindings

Mod = Super / Windows key

Programs

Shortcut Action
Mod + Return Open terminal (Kitty)
Mod + E Open file manager (Yazi di Kitty)
Mod + B Open browser (Firefox)
Mod + S Toggle launcher (Noctalia)

Kitty Clipboard

Shortcut Action
Ctrl + V Paste teks dari clipboard melalui Kitty
Ctrl + Shift + V Kirim Ctrl+V ke aplikasi terminal, misalnya paste gambar di Codex

Window Management

Shortcut Action
Mod + Q Close window
Mod + F Toggle fullscreen
Mod + Shift + F Toggle floating

Focus Navigation

Shortcut Action
Mod + H Focus left
Mod + L Focus right
Mod + J Focus down
Mod + K Focus up

Move Window

Shortcut Action
Mod + Shift + H Move window left
Mod + Shift + L Move window right
Mod + Shift + J Move window down
Mod + Shift + K Move window up

Workspace

Shortcut Action
Mod + 1-5 Switch to workspace
Mod + Shift + 1-5 Move window to workspace

Screenshot

Shortcut Action
Print / Mod + Ctrl + S Fullscreen screenshot → disimpan ke ~/Pictures/ & clipboard
Mod + Print / Mod + Shift + S Select area pada layar yang dibekukan → disimpan ke ~/Pictures/ & clipboard

Hardware Keys

Shortcut Action
Brightness Up/Down Adjust screen brightness (±5%)
Audio Play Play / Pause media
Audio Next Next track
Audio Prev Previous track
Audio Stop Stop media

System

Shortcut Action
Mod + Shift + E Exit Niri

Using tmux

Jalankan tmux dari Fish di dalam Kitty:

tmux

Semua keybind tmux diawali dengan prefix Ctrl+b. Tekan Ctrl+b, lepaskan, lalu tekan tombol perintah berikutnya.

Pane keybindings

Shortcut Action
Ctrl+b, lalu ` `
Ctrl+b, lalu - Split pane atas/bawah
Ctrl+b, lalu h Fokus ke pane kiri
Ctrl+b, lalu j Fokus ke pane bawah
Ctrl+b, lalu k Fokus ke pane atas
Ctrl+b, lalu l Fokus ke pane kanan
Ctrl+b, lalu x Tutup pane aktif (dengan konfirmasi)

Pane baru otomatis menggunakan working directory dari pane yang sedang aktif. Mouse juga dapat digunakan untuk memilih pane dan mengubah ukurannya.

Session management

# Membuat named session
tmux new -s kerja

# Menampilkan session yang tersedia
tmux ls

# Masuk kembali ke session
tmux attach -t kerja

# Menutup named session dari luar tmux
tmux kill-session -t kerja

Gunakan Ctrl+b, lalu d untuk detach tanpa menghentikan program di dalam tmux. Untuk keluar dan menutup pane, jalankan exit; session akan berakhir saat seluruh pane sudah ditutup.


How to Add a New Feature

  1. Create a file at modules/features/<name>.nix:
{ self, inputs, ... }: {
  flake.nixosModules.<featureName> = { pkgs, lib, ... }: {
    # configuration here
  };
}
  1. Import it di semua configuration.nix yang ingin menggunakannya:
imports = [
  # ...
  self.nixosModules.<featureName>
];

Tip: Untuk menambahkan paket yang berlaku di semua mesin, cukup edit modules/features/packages.nix saja.

  1. Must git add the new file before rebuilding:
git add modules/features/<name>.nix
git commit -m "feat: add <name>"
# Intel:
sudo nixos-rebuild switch --flake /home/cola/myNixOS#myMachine
# AMD:
sudo nixos-rebuild switch --flake /home/cola/myNixOS#amdMachine

Git Workflow

# After making changes
git add .
git commit -m "feat/fix/refactor: description"

# Rebuild sesuai mesin yang sedang digunakan:
sudo nixos-rebuild switch --flake /home/cola/myNixOS#myMachine    # Intel
sudo nixos-rebuild switch --flake /home/cola/myNixOS#amdMachine   # AMD

⚠️ New .nix files must be git added before rebuilding, because Nix flakes only read files that are already tracked by git.