This repo is managed with Nix + GNU stow # Installation Guide (for myself & those who are interested) - Generate image & boot We do this because the default one doesn't have all the utilities we want (e.g. disko). - generate image `nom-build --attr nixosConfigurations.installer.config.system.build.isoImage` - wipe the disk's fs with `wipefs` - `dd` the image to a flash drive (remember to `sync`) - boot off that flash drive - Connect to the Internet - start `wpa_supplicant.service` - `wpa_cli` ```bash add_network # wil return a number set_network ssid "" set_network psk "" select_network 0 # profit ``` source: https://askubuntu.com/a/833894 - Format disk (DANGER) - modify the disko file to point to the disk to be formatted - Installation (iirc the disko auto install has some issues) ```bash # Are you sure the disko config has the right drive path? disko -m disko ./disko.nix # format the drive # optional for unknown hard ware nixos-generate-config --no-filesystems --root /mnt --dir . # disko will take care of the file system configuration # put the generated config in the right path and import it nixos-install --flake .dotfiles# # profit ``` # Pitfalls ## `users.mutableUsers` NEVER set this to true without declaratively setting the passwords. It would change the password to ! and you can't login. # Hosts - vanadium: Framework 13 (AMD 7040 Series) # Linux - Window Manager : XMonad, flipped master/slave[^1] layout, 8 workspaces - Status Bar : xmobar, minimal configuration with a clock - Compositor : picom, for rendering transparency - Input Method : fcitx, "Cangjie" input method with a [customized table](https://github.com/leana8959/fcitx5-table-extra) - Font : Customized iosevka (thicker regular[^2] and fun stuff) - Terminal : kitty + tmux + fish # Editors and Shell - `nvim` Mainly used for Haskell, Nix, Rust, Typst / Markdown. (in order of frequency of use) - `tmux` with scripts that make it fast to use - `fish` the friendly interactive shell - `starship` for the prompt # Wallpapers For the sake of not having a huge repo, the images are built and managed by nix using typst. The source can be found [here](https://git.confusedcompiler.org/leana8959/wallpapers). # Nix ## Packages This repository exports my custom packages under attribute `packages`. Because it's a monorepo and I have 0 reason to make things stable, pin it if you use any packages. ## Binary Cache You should use my binary cache if you're building my fonts, they take a while (20 minutes on my M1 Max MacBook Pro). ``` https://leana8959.cachix.org leana8959.cachix.org-1:CxQSAp8lcgMv8Me459of0jdXRW2tcyeYRKTiiUq8z0M= ``` # Theme I have made a theme (a fork of Atom's one-light) where all my tools are visually unified. It's neovim part can be found [here](https://github.com/leana8959/curry.nvim). # Notable shell scripts - `tmux-sessionizer`: a bash script inspired by [ThePrimeagen](https://github.com/ThePrimeagen/.dotfiles/blob/master/bin/.local/scripts/tmux-sessionizer), allows jumping between different tmux sessions using fzf - `tmux-last`: toggle the last tmux session - `c2r`: clone repository to `~/repo/owner/name`, where I can then attach to using sessionizer The sessionizer primitives starts with two underscores and are reused. They are packaged together. Have fun :) [^1]: I dislike this nomenclature, if you know a better one let me know. [^2]: I don't know how people live with the default weight, it's too thin.