Prefiero maximizar el control sobre mi sistema siempre que sea posible. Las principales prioridades para mi escritorio de Linux incluyen accesibilidad, facilidad de uso, reproducibilidad y estabilidad.
Y hablando de control, me he dado cuenta de que debería comenzar a documentar mis procesos. Quiero decir, quién sabe, mi sabiduría podría ir seis pies debajo conmigo, y tengo un montón de conocimientos escondidos en este cerebro mío. Además, usted sabe lo que dicen sobre el externalismo activo: se trata de asegurarse de que su conocimiento no termine con usted.
He experimentado con diferentes herramientas a lo largo del tiempo que van desde scripts de shell, makefiles, Ansible/Puppet/Chef (consulte las etiquetas GIT) para hacer cumplir y sincronizar la configuración. Pero a medida que el sistema evoluciona, las cosas tienden a deteriorarse y todo se convierte en un desastre gigante.
Nix parece abordar estos problemas, aunque de manera extrema, menos conveniente y sensata, pero bastante efectiva, priorizando la corrección sobre la flexibilidad. Lo más importante es que la reproducibilidad de los guarentes, lo que significa que puedo sentarme y relajarme; Si algo funcionó, seguirá funcionando a menos que se cambie.
Antes de nada, puede ver mi configuración en:
Además, describí a Nix ampliamente en mis notas aquí.
Este es un repositorio raíz para la configuración de mi sistema Linux, administrado por Nix Flake.
Principalmente he utilizado Home-Manager con Snowfall-5 para la instalación y configuración de la mayoría de los paquetes. Para cosas nativas (controladores de visualización / virtualización que requiere DKMS Kernel Integrations / Service Management) He usado Puppet RAL.
Por lo tanto, en la mayoría de los casos, esta configuración debe ser aplicable para adaptarse a una amplia variedad de distribuciones, incluidos varios administradores de servicios (Systemd/Runit/OpenRC/etc.).
JustFile tiene las siguientes recetas configuradas.
just --list --unsorted Recetas disponibles:
construir
corrido por secado
cambiar
generaciones de listas
TreeView arg = '.' # Muestra la vista de árbol de la carpeta dada (también utilizada en la generación de lectura)
nvfetcher # actualizar todas las dependencias en nvfetcher.toml
Bundix # Actualizar todas las gemas en paquetes/**
El comando principal que debe recordar es,
just switch && stow -t $HOME stow/ TODO: Documento de carpeta stow
Autogenados ejecutando Cc Cv b en emacs. Asegúrese de cargar el módulo de shell si no lo ha hecho.
casas
└── x86_64-linux
└── animesh@framework
└── Default.nix
Mi configuración principal es en Homes/X86_64-Linux/animesh@framework/default.nix.
módulos
└── Inicio
Aplicaciones
│ └── Valiente
│ └── default.nix
├── CLI
│ ├── Bat
│ │ └── default.nix
│ ├── Pescado
│ │ ├── default.nix
│ │ └ └── Funciones.nix
│ ├── Git
│ │ └── default.nix
│ ├── inxi
│ │ └── default.nix
│ ├── solo
│ │ └── default.nix
│ ├── Kitty
│ │ └── default.nix
│ ├── Nix
│ │ ├── default.nix
│ │ ├ ├── Inputs.nix
│ │ └── setup-commá.nix
│ ├── Ranger
│ │ └── default.nix
│ └── Starship
│ └── default.nix
├── Escritorio
│ ├── EWW
│ │ └── default.nix
│ ├── Fonts
│ │ └── default.nix
│ ├── GTK
│ │ └── default.nix
│ ├── Herbstluftwm
│ │ └── default.nix
│ └── Xorg
│ └── default.nix
├── Editores
│ ├── emacs
│ │ └── default.nix
│ └── nvim
│ └── default.nix
Idiomas
│ ├── Android
│ │ └── default.nix
│ ├── vete
│ │ └── default.nix
│ └── Ruby
│ └── default.nix
Módulos ├── módulos
│ └── Puppeta
│ ├── default.nix
│ └── etc.nix
Sistema
├── ACPI-Handler
│ └── default.nix
├── Auto-Cpufreq
│ └── default.nix
├── FSTRIM
│ └── default.nix
└── sysctl
└── Default.nix
paquetes
├── emacs-chdir
│ └── default.nix
├── emacs-pcre
│ └── default.nix
├── Fósforo-íconos
│ └── default.nix
└── Puppeta
├── Default.nix
└── Gemset.nix
superposición
└── nvfetcher
└── Default.nix
Para limpiar las generaciones mayores:
pushd ~ /.local/state/nix/profiles && ls | awk " !/ $( readlink home-manager ) / && /home-manager-/ " | xargs rm && popd
nix-collect-garbage --delete-old
nix store gc --debugA veces, los archivos MMAP evitan GC, el reinicio + lo mismo puede borrar aún más.
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/ >Un agradecimiento especial a estos, ya que mi configuración se ha inspirado extremadamente.