nixpkgs/readme.md

141 lines
3.8 KiB
Markdown
Raw Normal View History

nixpkgs / nix home-manager
==========================
2022-02-01 18:31:35 +01:00
I currently use Ubuntu and installed nix alongside.
This repository contains my personal `~/.config/nixpkgs` folder,
2022-02-01 18:31:35 +01:00
for sharing, inspiration and retrieving feedback.
This includes `home.nix` to maintain `home-manager`,
see: https://nix-community.github.io/home-manager/index.html
2022-02-01 18:31:35 +01:00
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`.
`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
------
2022-02-14 08:05:09 +01:00
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.
* 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
-----
2022-03-30 08:01:08 +02:00
Migration:
* Migrate PGP?
* Right now I've installed gnupg2, gnupg, gpg on ubuntu
2022-02-08 18:47:15 +01:00
* Thunderbird configuration to nix. Seems like no module exists, but is same as
for firefox.
* Migrate home manager to use flake for better rollback support if update breaks something.
* Maybe PR upstream: `./home/modules/programs/languagetool.nix`.
2022-02-09 09:34:22 +01:00
* i3lock-color
2022-05-18 19:52:26 +02:00
Additions:
* https://github.com/altdesktop/playerctl#selecting-the-most-recent-player in
order to not worry about current media player, control whatever was last
* https://github.com/darrenburns/dunk diff alternative
* Integrate https://github.com/Wilfred/difftastic for diffing source code
https://github.com/nix-community/home-manager/pull/2850
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/