About • Key Features • System Details • Roadmap • License
The whole idea of customizing your own system always is appealing to a lot of people, however, most people don't dive too much into, just change some basic configuration, but, like some other people, I wanted to customize it more and give it my identity. Still, to get all things to work properly is a unending process, and track all your changes on the system is kinda impossible if you don't know how to ngl.
Nix and NixOS solves some of these problems, you can create reproducible builds and also revert changes that you did on the system, there is a lot of other tools too. I recommend you to give it a try too.
Currently I'm learning more about the Nix language and NixOS, it's a steep learning curve since it has so many things to grasp and is so different from the traditional linux distro (like the filesystem, nix store, etc). So right now, most of the code is not so complicated and rather simple, but I guess everyone starts somewhere ¯\_(ツ)_/¯
.
This repo contains all dotfiles to create an identical system to which I'm using (including programs and its configurations), feel free to test it on a machine or virtual machine.
Don't expect these dotfiles to work since there are a lot of factors to include, but instead, try to adapt it to your machine. Also, if someone is interest I would love to chat about this topic since I have so much to learn.
- Multiple host configurations (laptop, bootable ssd and WSL2)
- Configured x11 and wayland desktop environments (Xmonad, Hyprland and Sway)
- Commonly used modules for configuring system.
- Home manager configuration as a NixOS system module (allows to rebuild the system once instead of twice)
- Each user has it's own Home manager configuration file labeled as the user name.
- Home manager modules for configuring each application in user space.
- Secrets management using GPG.
- Flex5i (Ideapad laptop)
- SSD (240GB External SSD)
- WSL2 NixOS (Main Desktop)
Partition Label | Description |
---|---|
NIXOS-BOOT | EFI partition contains basic files to load the Operating System. |
NIXOS-ROOT | Root partition, where linux operating system and its files is stored. |
NIXOS-SWAP | Assistant and overflow space for RAM. |
- Install Lunacy through flatpak using declarative-nix-flatpak
- Move to xmonad due to better compatibility provided X11.
- Proper GTK and QT theming based on the nix-colors base16 colorscheme.
- Config public SSH keys on hosts.
- Simplify this README.
- Refactor all this codebase and minify overall complexity
- Config properly zsh.
- Try out Hyprland.
- Migrate old module style to proper configurable NixOS modules.
- Setup NixOS WSL2 properly
- Use Disko for formatting disks with nix expressions.
- Understand better overlays and new nix flake commands.
- Proper flake config for Raspberry Pi 400 (as a server) and WSL (as dev env).
- Create some useful eww widgets.
- Decrease the number of installed packages and RAM consumption
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the project
- Clone it open the repository in command line
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a pull request from your feature branch from your repository into this repository main branch, and provide a description of your changes
MIT.
These sources helped me to accomplish this project.
- https://linktr.ee/nixos
- https://nixos.wiki/wiki/Sway
- https://wiki.archlinux.org/title/Sway
- https://nixos.org/learn
- https://github.com/swaywm/sway/wiki/
- https://github.com/nix-community/home-manager/blob/master/modules/services/window-managers/i3-sway/sway.nix
- https://specific.solutions.limited/blog/wayland-sway-window-manager
- https://rycee.gitlab.io/home-manager/options.html#opt-wayland.windowManager.sway.enable
- https://www.reddit.com/r/swaywm/comments/hmtdr9/how_do_you_guys_change_settings_in_sway/
- https://www.youtube.com/channel/UCSW5DqTyfOI9sUvnFoCjBlQ/videos
- https://youtu.be/AGVXJ-TIv3Y
- https://gvolpe.com/blog/xmonad-polybar-nixos/#rofi
- https://gist.github.com/kodeFant/f08ffd89eab932028fe84a92aa90974f
- https://wiki.haskell.org/Xmonad/Config_archive
- https://www.youtube.com/playlist?list=PL5--8gKSku144jIsizdhdxq_fKTmBBGBA
- https://www.youtube.com/watch?v=T0i65NXP5P4
- https://github.com/gvolpe/nix-config
- https://nixos.wiki/wiki/XMonad
- https://github.com/hlissner/dotfiles
- https://github.com/KubqoA/dotfiles
- https://github.com/alternateved/nixos-config
- https://github.com/darch7/swaywm
- https://github.com/MatthiasBenaets/nixos-config
- https://github.com/wiltaylor/dotfiles
- https://github.com/Misterio77/nix-colors
- https://github.com/Misterio77/nix-config
- https://github.com/shaunsingh/nix-darwin-dotfiles
- https://github.com/kclejeune/system
- https://github.com/sebastiant/dotfiles
- https://github.com/MatthewCroughan/nixcfg
- https://github.com/iguoliveira/nix-config
hidek.xyz · GitHub @abehidek · Twitter @guilhermehabe