Skip to content

idlip/d-nix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

❄️ Nix station with 🧬 Emacs at its Core

NixOrgMacs

  • Management of NixOS and Emacs configs in literate org file - d-setup.org.
  • Files are tangled to gdk/ directory, thus making the repo look clean and minimal.
  • .dir-locals.el - Helps to set local variable in emacs session for org-mode buffer.
  • .envrc - For direnv, shell environment based on flake or bash.

🌟 Utilities that are Best!


ClassName
🌸 Window ManagerHyprland
πŸ’œ Text EditorEmacs
🎨 Gtk ThemeAdw-gtk3
ο€± FontRecursive font
πŸ“” Pdf ReaderSioyek (ditch zathura)
🎬 Media PlayerMPV! (its MVP too)
πŸ–ΌοΈ Image ViewerImv
πŸ“° RSS ReaderElfeed (Again, Emacs)
🎢 Music PlayerNcmpcpp or Mingus in Emacs
ο„  TerminalFoot via footclient
πŸš€ Menu/LauncherRofi
πŸ›ŽοΈ NotificationDunst
πŸ”° ShellZshell
πŸ₯ Status BarWaybar
🫰 Favorite Color-SchemesHaki + Modus-Vivendi

Rest all other stuffs I do in Emacs, tbh I could do everything in Emacs lol.

Literate config

Back to literate config. I initially started nixos and emacs config in literate org config, but later on moved to modular split config, cause that is what world demands to have file tree hierarchy. After several months of maintaining it, I wanted to come back to literate org config. The reasons are simple:

  • The config has to focus on learning, and literate programming is the way.
  • File tree model is dynamic, over time my brain can change and I don’t want to burden by thinking where to put or organize them.
  • Maintaining in single org file is easy, yes, it might primarily depend on Emacs only or searching capabilities, but that’s fine.
  • One host, one user, one system; why not one file?
  • I can make use of TODO, Fixes, notes, additional resources to refer.
  • Learning is the key, forgetting is natural phenomena, so why should I bother about where things are, better off be at one place.
  • This really turns out useful when the time of forgetting comes into play.
  • One con for maintaining nix config would be that you can repeat an attribute again. (e.g., home.packages)
  • Other cons like multi host maintenance can be over come by using elisp or org-mode features, or simply with nix conditional statement if/else.
  • I mean if you are still not getting convinced, think again, why ArchWiki is supreme, why google, apple ecosystem are preferred. It is simple, they provide everything at one stop.
  • Same applies here, things are at one well organized place, I don’t have to navigate over the dynamic file hierarchy model.
  • So analogy goes like this, ArchWiki is like literate org-config and nix documentation is like modular config, nix has scattered resources and no proper place to learn them all. (hope that suffices)
  • You can ask me anything by opening an issue, I’d be glad to share or help you with literate org config.

πŸš” Speculation

CPU13th Gen Intel i5-13500H (16) @ 2.600GHz
RAM (startup)600MiB / 16GiB
Swap50% (8GB) zram
Pkgs1767
Nix current-system17 GB

πŸ“š Nix Learning

This repo has bunch of links for learning nix in every possible way.

πŸŽ–οΈ Credits

These configs were the inspiration and helped to build this way.

I thank them sincerely.

  • rasendubi - Initiating the idea for literate org config
  • Sioodmy - For simplifying the modular config
  • fufexan - For advanced nix codes.

If you have reached here, I think you’d like to read more. I have made a static website, you can catch on some stuffs here ==> https://idlip.github.io