Skip to content
This repository has been archived by the owner. It is now read-only.
🐸 home configuration files
Emacs Lisp Nix Shell CSS YASnippet C Other
Branch: master
Clone or download

README.org

Home configuration files

This repository is deprecated and won’t be updated anymore. It now lives on the ~home~ repository (on Gitlab)

What is home

This repository is my dotfiles, using home-manager, nix, some shell script and maybe sometimes ansible — especially on non-NixOS system.

The goal of is repository is to be able to have a way to setup dotfiles and packages in one go, sharing those configuration between multiple computers. The documentation part is using (or will) org-mode following principles of “literate programming”: a combination of ordinary language and inline code blocks.

This means it could become the monorepo of my configuration, slowly migrating other repositories into this one (like ~emacs-config~). This repository should be the source of truth of all my configuration.

On idea is also to try to do something like ”Leveraging disposability for exploration”, aka “how to play around without leaving a mess”. I’ll try my best to make everything reproducible and easily testable without making a mess. Nix/NixOS should help with that…

This will be a all-time work-in-progress, so please beware that things might change dramatically or even not working anymore 😛.

Installation

You should be able to run the bootstrap.sh script as is. And if you feel adventurous, you can use curl for this.

curl https://raw.githubusercontent.com/vdemeester/home/master/bootstrap.sh | sh

Otherwise, clone this repository somewhere, read the bootstrap.sh file and execute it if you feel safe

home-manager only

If you don’t have nix installed, run curl https://nixos.org/nix/install | sh to install it.

  • clone this repository in $HOME/.config/nixpkgs
  • create a `home.nix` file with the content you want. Some machines files already exists that you can use :
    { pkgs, ... }:
    
    {
      imports = [
        ./machines/hokkaido.nix
      ];
    }
        
  • run nix-shell https://github.com/rycee/home-manager/archive/master.tar.gz -A install (maybe twice :D)
  • run home-manager switch;

nixos only

TBD: migrate nixos-configuration here.

Organization of the repository

This is probably gonna be a moving target, but this is how it looks (or should look soon-ish 👼):

  • assets: ignored folder where my automation puts some secrets. Most of the make commands will try to populate this ahead of time. The assumption is : have a sync folder where the assets are. Note: how to bootstrap (as syncthing will not be there, and the ~sync~ folder either)
  • docs: holds documentation about this code, literate configuration, see literate configuration. make publish will publish the README.org and the docs folder to my website.
  • lib: shared code used during configuration (mostly nix code).
  • machines: configuration per machines
  • modules: holds nix modules (services, programs, hardware, profiles, …)
  • overlays: holds nix overlays
  • pkgs: holds nix packages (those should migrate under overlays or on nur-packages)
  • tmp: things to… organize (e.g. where I import my other legacy configuration)

<<literate configuration>>As I’m slowly, but surely, going to have org-mode files for literate configuration files in this repository, I have to think of how to organize files in order to end up with one huge file. The goal of having those org-mode files, is mainly to document my configuration and publish it, most likely on sbr.pm.

References

Repositories

COPYING

Copyright (c) 2018-2020 Vincent Demeester <vincent@sbr.pm>

This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this file. If not, see http://www.gnu.org/licenses/.

You can’t perform that action at this time.