This repository contains an extract from my personal configuration framework from which I have removed some sensitive information. This extraction being a manual operation, it will not always be up to date to my last tweakings, but you can get the general idea.
Sharing this here is a way to spread some ideas, some good aliases and other various customisations I use for my everyday comfort. Enjoy! :)
Nixcommon- configuration shared between hosts.home-manager– common home configuration, to be imported in host-specific home configurations.modules– NixOS orhome-managermodules that are not ready enough or too much specific to beconfkitor proposed in NixOS orhome-manager.nixos– personal NixOS configuration framework. This importsconfkit,home-manager, and provides extentions toconfkit.overlays–nixpkgsoverlays.pkgs– packages.res– resource files for the configuration.users– common user definitions.
containers– configuration for containers (mostly redacted, some left for reference).helios– configuration for my home NAS.mercure– configuration for my work PC.neptune– configuration for my server.philae– configuration for my “lander”, used to transform any rescue system into NixOS.pluton– configuration for my work VM.saturne– configuration for my personal PC.
desktop– some desktop environment related configuration. Some more configuration (bspwn, …) can be found underNix/.spacemacs– Spacemacs configuration.vscode– VSCode settings, keybindings and snippets.
Note: This is not up to date. I may update it in a future commit.
I started to use Zsh back in 2013 when another student introduced me to it. Then, I started to use vim, tmux and other console tools. I was sharing by hand any modifications between my personal computer and my server. There were only few modifications and it did not evolve quickly at the time.
In April 2017 I started my end-of-studies internship. Keeping configuration
files up-to-date between machines started to become quite difficult, so I went
for Git. The framework started then, as I broke up my ~/.zshrc to a few
modular files. Following this way, I started to use this Git repository for all
my configuration files, be it for tmux, vim, GnuPG and even Atom—and now VSCode.
In July 2018 I started using Nix and home-manager to manage my user
environment. The current state of this framework reflects this: on my Mac and
Linux computers, my user environemnt is fully handled by it. Currently, Zsh
submodules are still linked in ~/.zsh and my main ~/.zshrc imports them. It
may change in the future to Nix building a ~/.zshrc concatenating these files.
I will however always keep pure Zsh files as source to maintain the
compatibility with my FreeBSD server environment.
In December 2018 I extracted many files in a public configuration framework I
have named confkit. It is refered as a submodule here and you can use it
yourself if you want: while I am using the develop branch of it, I publish
tagged versions with a changelog. Some features that are currently only in this
repository may be extracted to confkit at some point.