i3lock is probably broken as not whole X system is managed by home-manager yet. It was removed and todo moved to "end". languagetool was migrated to module. No PR was created yet
140 lines
3.8 KiB
ReStructuredText
140 lines
3.8 KiB
ReStructuredText
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
|
|
|
|
.. contents:: Table of Contents
|
|
|
|
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 loaded via ``biuiltins.readFile``
|
|
or linked via ``home.file.``.
|
|
|
|
``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``.
|
|
|
|
``home/systemd``
|
|
Holds custom definitions for systemd services.
|
|
Each file corresponds to a single service.
|
|
Each file is loaded within ``home.nix``.
|
|
|
|
Update
|
|
------
|
|
|
|
The following will update the whole system and clean things up::
|
|
|
|
nix-channel --update \
|
|
&& home-manager switch \
|
|
&& home-manager expire-generations '-30 days' \
|
|
&& nix-env --delete-generations +5 \
|
|
&& nix-store --gc
|
|
|
|
This will update the channel (fetch state of nixpkgs).
|
|
It then will update system.
|
|
Delete old generations.
|
|
And run garbage collection.
|
|
|
|
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/* .
|
|
|
|
Todos
|
|
-----
|
|
|
|
No particular order:
|
|
|
|
* Migrate other local configurations (inspect ``~/.config`` folder)
|
|
All other dotfiles in home dir are already migrated :yay:
|
|
|
|
* Migrate mailhog (manually installed right now)
|
|
|
|
* Migrate zsh
|
|
|
|
* Migrate ssh config (I don't really like to expose customer server names and configs to outer world, how to handle?)
|
|
|
|
* Migrate PGP?
|
|
|
|
* Migrate other tools from local system (which are not part of above migrations)
|
|
|
|
* Migrate other systemd services.
|
|
|
|
* Migrate other system configurations like keyboard?!
|
|
|
|
* Migrate desktop environment (is that possible? I select it within ubuntu login screen, guess it needs to be installed or registered somwhere in ubuntu)
|
|
|
|
* 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?)
|
|
|
|
* Switch to stable channels
|
|
|
|
* Fix broken lock screen (i3lock-color)
|
|
|
|
* Maybe PR upstream: ``./home/modules/programs/languagetool.nix``.
|
|
|
|
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):
|
|
|
|
* https://www.youtube.com/playlist?list=PLRGI9KQ3_HP_OFRG6R-p4iFgMSK1t5BHs
|
|
|
|
* https://nixos.org/learn.html
|
|
|
|
* https://nix-community.github.io/home-manager/index.html
|
|
|
|
* https://nixcloud.io/main/en/
|