An open API service indexing awesome lists of open source software.

https://github.com/hmajid2301/nixicle

My dotfiles always changing ๐Ÿ™ˆ
https://github.com/hmajid2301/nixicle

dotfiles home-manager homelab hyprland nixos nixvim

Last synced: about 1 year ago
JSON representation

My dotfiles always changing ๐Ÿ™ˆ

Awesome Lists containing this project

README

          





Nixicle





Screenshot updated: 2024-07-15



:warning: This config repo is constantly changing,
Let me know if you see something that can be improved or done better :smile: .


## ๐Ÿ’ฝ Usage

Install

To install NixOS on any of my devices I now use [nixos-anywhere](https://github.com/nix-community/nixos-anywhere/blob/main/docs/howtos/no-os.md).
You will need to be able to SSH to the target machine from where this command will be run. Load nix installer ISO if
no OS on the device. You need to copy ssh keys onto the target machine
`mkdir -p ~/.ssh && curl https://github.com/hmajid2301.keys > ~/.ssh/authorized_keys` in my case I can copy them from GitHub.

```bash
git clone git@github.com:hmajid2301/nixicle.git ~/nixicle/
cd nixcile

nix develop

nixos-anywhere --flake '.#workstation' nixos@192.168.1.8 # Replace with your IP
```

After building it you can copy the ISO from the `result` folder to your USB.
Then run `nix_installer`, which will then ask you which host you would like to install.

### Building

To build my config for a specific host you can do something like:

```bash
git clone git@github.com:hmajid2301/nixicle.git ~/nixicle/
cd nixicle

nix develop

# To build system configuration (uses hostname to build flake)
nh os switch

# To build user configuration (uses hostname and username to build flake)
nh home switch

# Build ISO in result/ folder
nix build .#install-isoConfigurations.graphical

# Deploy my to remote server i.e. Home Lab (using SSH)
deploy .#ms01 --hostname ms01 --ssh-user nixos --skip-checks

# Build Home Lab diagram using nix-topology
nix build .#topology.config.output
```

## ๐Ÿš€ Features

Some features of my config:

- Structured to allow multiple **NixOS configurations**, including **desktop**, **laptop** and **homelab**
- **Custom** live ISO for installing NixOS
- **Styling** with stylix
- **Opt-in persistance** through impermanence + blank snapshot
- **Encrypted BTRFS partition**
- **sops-nix** for secrets management
- Different environments like **hyprland** and **gnome**
- Custom **Neovim** setup declaratively using **nixvim**
- Homelab all configured in nix.

## ๐Ÿ  Configurations

| Hostname | Board | CPU | RAM | Primary GPU | Role | OS | State |
| :---------: | :-------------------------: | :----------------------------: | :---: | :-------------------------: | :--: | :-: | :---: |
| `workstation` | X671E AORUS PRO X | AMD Ryzen 9 7950X | 64GB | AMD Spectral White 7900 XTX | ๐Ÿ–ฅ๏ธ | โ„๏ธ | โœ… |
| `framework` | Framework 13th Gen AMD | Intelยฎ Coreโ„ข i7-1370P | 32GB | Intel Iris Graphics | ๐Ÿ’ป๏ธ | โ„๏ธ | โœ… |
| `frandecpa63294006a` | Framework 13th Gen Intel | AMD Ryzenโ„ข 7 7840U | 32GB | Intel Iris Graphics | ๐Ÿ’ป๏ธ | ๐Ÿง | โœ… |
| `vm` | QEMU | - | - | VirGL | ๐Ÿ„ | โ„๏ธ | โœ… |
| `steamdeck` | - | Zen 2 | 16GB | 8 RDNA 2 CUs | ๐ŸŽฎ๏ธ | ๐Ÿง | โœ… |
| `um790` | UM790 | AMD Ryzen 9 7940HS | 64GB | AMD Radeonโ„ข 780M | โ˜๏ธ | โ„๏ธ | โœ… |
| `ms01` | MS-01 | i9-13900H | 64GB | Iris Xe Graphics | โ˜๏ธ | โ„๏ธ | โœ… |
| `s100` | S100 | N100 | 8GB | Iris Xe Graphics | โ˜๏ธ | โ„๏ธ | โœ… |
| `vps` | QEMU (Hetzner shared) | 2 VCPU | 2GB | VirGL | ๐Ÿ„ | โ„๏ธ | โœ… |

**Key**

- ๐Ÿ–ฅ๏ธ : Desktop
- ๐Ÿ’ป๏ธ : Laptop
- ๐ŸŽฎ๏ธ : Games Machine
- ๐Ÿ„ : Virtual Machine
- โ˜๏ธ : Server

## ๐Ÿ–ผ๏ธ Showcase

### Desktop

![terminal](images/terminal.png)
![swaync](images/swaync.png)
![wallpaper](images/wallpaper.png)
![monkeytype](images/monkeytype.png)

### Neovim

![Telescope](images/nvim/telescope.png)
![Editor](images/nvim/editor.png)
![Go Code](images/nvim/go-code.png)
![CMP](images/nvim/cmp.png)

## Appendix

- Dot icons created by Roundicons - Flaticon
- You can read more about my dotfiles and development workflows on my [blog here](https://haseebmajid.dev/series/my-development-workflow/) (#ShamelessPlug).
- [Wallpaper From Catppuccin Discord](https://discord.com/channels/907385605422448742/1199293891392852009)
- Galaxy: https://discord.com/channels/907385605422448742/1199293891392852009
- Old Catppuccin wallpaper: https://github.com/Gingeh/wallpapers
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342
- Catppuccino: https://discord.com/channels/907385605422448742/1130546126374838342

### Inspired By

- Snowfall config: https://github.com/jakehamilton/config?tab=readme-ov-file
- More snowfall config: https://github.dev/khaneliman/khanelinix/blob/f4f4149dd8a0fda1c01fa7b14894b2bcf5653572/flake.nix
- My original structure and nixlang code: https://github.com/Misterio77/nix-config
- Waybar & scripts: https://github.dev/yurihikari/garuda-sway-config
- Neovim UI: https://github.com/NvChad/nvchad
- README: https://github.com/notohh/snowflake/tree/master
- README table: https://github.com/wimpysworld/nix-config