mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 06:39:14 +00:00
Reviewed-on: https://codeberg.org/leana8959/.files/pulls/20 Co-authored-by: Léana 江 <leana.jiang+git@icloud.com> Co-committed-by: Léana 江 <leana.jiang+git@icloud.com>
117 lines
4.1 KiB
Markdown
117 lines
4.1 KiB
Markdown
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`
|
|
- `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 <number> ssid "<ssid>"
|
|
set_network <number> psk "<your password>"
|
|
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#<hostname>
|
|
# profit
|
|
```
|
|
|
|
## Installation for Raspberry Pi
|
|
Raspberry Pi uses the same configuration as the installer.
|
|
The `(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")` allows this.
|
|
|
|
- Build the image `nixosConfigurations.<name>.config.system.build.sdImage`.
|
|
Disable stuff like Lix to build this.
|
|
You might want to use raw password once so you don't have agenix decryption
|
|
problem while trying to have wpa_supplicant have the right passwords.
|
|
|
|
- Burn the image to the sd card.
|
|
```bash
|
|
zstdcat result/sd-image/nixos-image-sd-card-<hash>-aarch64-linux.img.zst |
|
|
doas dd of=/dev/sdb status=progress
|
|
```
|
|
|
|
- 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.
|
|
|
|
<!--
|
|
vim:textwidth=80
|
|
-->
|