My own nixpkgs (for nix + home-manager). Used for nix on my current Ubuntu Setup. Lives inside ~/.config/nixpkgs
Go to file
Daniel Siepmann 628f9acae9
Adjust cmus preferences
Do not follow currently played track. Keep view as manually set.
Do not enable repeat by default.
2022-03-14 13:02:26 +01:00
flakes/projects/web Add composer v2 2022-02-14 15:12:02 +01:00
home Adjust cmus preferences 2022-03-14 13:02:26 +01:00
overlays Improve customer-project tmux starter script 2022-03-09 13:28:16 +01:00
.gitignore Configure registry for customer projects 2022-02-11 10:03:01 +01:00
home.nix Migrate neovim setup 2022-03-12 11:26:32 +01:00
readme.md Migrate neovim setup 2022-03-12 11:26:32 +01:00

nixpkgs / nix home-manager

I currently use Ubuntu and installed nix alongside. This repository contains my personal ~/.config/nixpkgs folder, for sharing, inspiration and retrieving feedback.

This includes home.nix to maintain home-manager, see: https://nix-community.github.io/home-manager/index.html

Disclaimer

This is my personal setup for my local laptop running Ubuntu. I share this for free so everyone can have a look and inspiration or provide feedback to me.

This is not intended to be used by anyone else just by copy and pasting or cloning.

Installation

Install (clone) into ~/.config/nixpkgs.

Install home-manager see: https://nix-community.github.io/home-manager/index.html Execute home-manager switch

Usage

Add packages to home.nix and run home-manager switch.

Folder structure

The folder overlays contains overlays for nix itself. E.g. alter packages like patching.

The folder home is related to extras for home-manager. It has the following sub folder:

home/files Holds configuration files. home-manager doesn't provide modules for all programs. Those files can be added via xdg.configFile.

home/modules Holds nix modules. Not all programs provide modules out of the box. I add my own here, which I might create PRs for in future.

home/programs Holds home-manager programs. entries. Each file corresponds to a single program. Each file is loaded within home.nix.

home/services Holds home-manager services. entries. Each file corresponds to a single service. Each file is loaded within home.nix.

flakes/ Holds structure with specific flakes. Those should provide libraries and template.

Update

Update can be done via custom-update-system package which is available within the overlay.

Manual changes

List of manual needed changes for various reasons.

  • .desktop files seem not to be supported by home-manager yet. They need to manually be linked, e.g.:

    cd ~/.local/share/applications && ln -s ~/.nix-profile/share/applications/* .
    

    Or link whole folder:

    cd ~/.local/share && ln -s ~/.nix-profile/share/applications
    

Todos

  • Migrate ssh config (I don't really like to expose customer server names and configs to outer world, how to handle?)

  • Migrate PGP?

    • Right now I've installed gnupg2, gnupg, gpg on ubuntu
  • Migrate home manager to use flake for better rollback support if update breaks something.

  • Maybe PR upstream: ./home/modules/programs/languagetool.nix.

  • Migrate other system configurations like keyboard?!

  • Begin migrating further configuration, e.g. php fpm pools and apache config (Again I don't like customer internals in public repo, how to handle?) Does that work? I guess nix (home-manager) shouldn't write outside of user home. Maybe within vm as preparation of switch to nix os?

  • Migrate desktop environment (is that possible? I select it within ubuntu login screen, guess it needs to be installed or registered somwhere in ubuntu) i3-wm, i3, i3lock-color

Ideas

  • Maybe I can have a private channel which provides more sensitive info like customer related things and is referenced from here? I then can make that repo private but keep this one here public?

Resources

Some resources I found useful (in no particular order):