My own nixpkgs (for nix + home-manager). Used for nix on my current Ubuntu Setup. Lives inside ~/.config/nixpkgs
Go to file
Daniel Siepmann f7b70d1265
Turn on smart case for search in tig
Allows me to use lower case to ignore case, and respect case as soon as
an upper case letter is searched.
2024-03-14 07:22:58 +01:00
.git-crypt Add 1 git-crypt collaborator 2022-05-24 11:54:54 +02:00
assets Add arch linux wiki as search to firefox 2024-02-06 09:42:53 +01:00
gpg/publickeys Migrate GPG to ni / home-manager 2022-05-30 19:17:10 +02:00
home Turn on smart case for search in tig 2024-03-14 07:22:58 +01:00
overlays Remove yt-dlp forward patch 2024-01-02 17:09:00 +01:00
projects Update customer and project specifics 2024-02-28 08:38:04 +01:00
systems/hikari Remove general allowUnfree and use specific allowUnfreePredicate 2024-03-07 10:39:13 +01:00
.gitattributes Add reuter VPN 2023-10-11 09:24:43 +02:00
.gitignore Configure registry for customer projects 2022-02-11 10:03:01 +01:00
config.nix Remove no longer secure nodejs version 2023-08-31 08:00:31 +02:00
home.nix Improve qutebrowser setup for different setups 2023-07-11 09:02:11 +02:00
readme.rst Migrate different project related folders into one 2023-07-19 07:53:46 +02: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.

Create ~/.config/home-manager and create a symlink from ~/.config/nixpkgs/home.nix to ~/.config/home-manager/home.nix.

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

Folder structure

assets/

contains assets used within nix. E.g. images used for search engines configured for Firefox.

gpg/

contains everything related to gpg, like public keys.

home/

is related to extras for home-manager.

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.

projects/

Holds shells and compose.yaml files 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.

systems/

Holds nix os configuration for different systems. Each system has its own subfolder.

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

Additions:

Resources

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