My own nixpkgs (for nix + home-manager). Used for nix on my current Ubuntu Setup. Lives inside ~/.config/nixpkgs
Go to file
Daniel Siepmann 1be9c42770
Stick to 5.15 kernel in order to keep compatibility for mba6x_bl
2023-03-08 08:33:59 +01:00
.git-crypt Add 1 git-crypt collaborator 2022-05-24 11:54:54 +02:00
assets Add packagist to firefox search engines 2022-12-14 08:27:48 +01:00
gpg/publickeys Migrate GPG to ni / home-manager 2022-05-30 19:17:10 +02:00
home Reduce keyboard brightness 2023-03-07 19:08:22 +01:00
overlays Fix broken key mapping for mycli 2023-02-14 14:27:06 +01:00
shells Improve shells 2023-03-01 16:50:13 +01:00
systems/hikari Stick to 5.15 kernel in order to keep compatibility for mba6x_bl 2023-03-08 08:33:59 +01:00
.gitattributes Add VPNs 2023-03-01 08:54:11 +01:00
.gitignore Configure registry for customer projects 2022-02-11 10:03:01 +01:00
home.nix Allow to use TYPO3 documentation rendering on both systems 2023-02-08 12:55:05 +01:00
readme.rst Remove askpass for ssh, use cli instead 2022-11-04 11:17:43 +01:00

readme.rst

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/packages.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.

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/packages

Holds custom nix packages. Not all programs are available. Foreign programs are added here. Custom programs / scripts are added within subfolder custom.

home/programs

Holds home-manager programs. entries. Each file corresponds to a single program.

home/services

Holds home-manager services. entries. Each file corresponds to a single service.

home/*.nix

Holds files for most home.* modules. I don't like to clutter a single file with to many entries. Instead home.nix loads files from within here. Each file name should correspond to the home sub option / module.

overlays

Holds overlays for existing packages. E.g. in order to patch them.

shells/

Holds shells for customer projects. The customers are not aware of Nix and I don't want to stress them. I use this folder to have them in version control and symlink them into the project.

Update

Update can be done via custom-update-system package which is a custom package.

Manual changes

List of manual needed changes for various reasons.

  • Use xdm as display manager, or: Allow gdm3 to use xsessions as login. Add the following content as `/usr/share/xsessions/xsession.desktop`:

    [Desktop Entry]
    Name=XSession
    Comment=This session uses the custom xsession file
    Exec=/etc/X11/Xsession
    Type=Application
    X-DesktopNames=GNOME-Flashback;GNOME;
    X-Ubuntu-Gettext-Domain=gnome-flashback

    This is used by gdm3 (installed via ubuntu host) to allow logging in via xsession which will pick up all the settings generated by home-manager.

    Do not forget to call sudo desktop-file-install xsession.desktop to make system aware of the file.

Todos

MacBook:

  • Provide script to update system

Migration:

  • Check vpnc which is currently installed via ubuntu.
  • Install i3lock (Right now installed via ubuntu)
  • Migrate home manager to use flake for better rollback support if update breaks something.
  • Maybe create upstream PRs for
    • home/modules/programs/*.nix

Additions:

Resources

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