linux-desktop
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