linux-desktop icon indicating copy to clipboard operation
linux-desktop copied to clipboard

My system configuration.

#+html:

** Info

This is root repository to my linux system configuration, managed by nix flake.

I've primarily used [[https://github.com/nix-community/home-manager][home-manager]] with [[https://github.com/snowfallorg/lib/tree/feat/home-manager][snowfall-lib]] for installation & configuration of most packages. For native stuffs (display drivers / virtualization that requires dkms kernel integrations / service management) I've used [[https://github.com/Animeshz/linux-desktop/blob/nix/modules/home/puppet/default.nix#L17-L37][Puppet RAL]].

So in most cases this config should be applicable to fit wide variety of distros, including various service managers (systemd/runit/openrc/etc).

*** Applying config

Justfile has following recipes set up.

#+begin_src sh :results output :exports both just --list --unsorted #+end_src

#+RESULTS: : Available recipes: : build : dry-run : switch : list-generations : treeview arg='.' # Shows treeview of given folder (also used in generation of README) : nvfetcher # Update all dependencies in nvfetcher.toml : bundix # Update all gems in packages/**

** Repository Structure

Autogenerated by running =C-c C-v b= in emacs. Be sure to load the [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-shell.html][shell module]] if you haven't.

*** Home configs

#+begin_src sh :results output :exports results just treeview homes #+end_src

#+RESULTS: : homes : └── x86_64-linux : └── animesh@framework : └── default.nix

My primary config is at [[homes/x86_64-linux/animesh@framework/default.nix]].

*** Modules

#+begin_src sh :results output :exports results just treeview modules #+end_src

#+RESULTS: #+begin_example modules └── home ├── apps │   └── brave │   └── default.nix ├── cli │   ├── bat │   │   └── default.nix │   ├── fish │   │   ├── default.nix │   │   └── functions.nix │   ├── git │   │   └── default.nix │   ├── inxi │   │   └── default.nix │   ├── just │   │   └── default.nix │   ├── kitty │   │   └── default.nix │   ├── nix │   │   ├── default.nix │   │   ├── pin-inputs.nix │   │   └── setup-comma.nix │   ├── ranger │   │   └── default.nix │   └── starship │   └── default.nix ├── desktop │   ├── eww │   │   └── default.nix │   ├── fonts │   │   └── default.nix │   ├── gtk │   │   └── default.nix │   ├── herbstluftwm │   │   └── default.nix │   └── xorg │   └── default.nix ├── editors │   ├── emacs │   │   └── default.nix │   └── nvim │   └── default.nix ├── languages │   ├── android │   │   └── default.nix │   ├── go │   │   └── default.nix │   └── ruby │   └── default.nix ├── modules │   └── puppet │   ├── default.nix │   └── etc.nix └── system ├── acpi-handler │   └── default.nix ├── auto-cpufreq │   └── default.nix ├── fstrim │   └── default.nix └── sysctl └── default.nix #+end_example

*** Bundled packages

#+begin_src sh :results output :exports results just treeview packages #+end_src

#+RESULTS: #+begin_example packages ├── emacs-chdir │   └── default.nix ├── emacs-pcre │   └── default.nix ├── phosphor-icons │   └── default.nix └── puppet ├── default.nix └── gemset.nix #+end_example

*** Overlays

#+begin_src sh :results output :exports results just treeview overlays #+end_src

#+RESULTS: : overlays : └── nvfetcher : └── default.nix

** Notes

To cleanup older generations:

#+begin_src sh :noeval pushd ~/.local/state/nix/profiles && ls | awk "!/$(readlink home-manager)/ && /home-manager-/" | xargs rm && popd nix-collect-garbage --delete-old nix store gc --debug #+end_src

Sometimes mmap files prevent gc, reboot + same thing may clear even more!

** UNLICENSE

#+begin_src md :noeval Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

For more information, please refer to http://unlicense.org/ #+end_src