I managed my setup manually.
This commit ports the existing setup to home-manager.
The program module is used to install neovim together with plugins.
Custom plugins are now maintained at Gitea / GitHub and loaded via nix as well.
Place ctags configuration in expected location.
It wasn't loaded due to wrong location.
Do not add typescript as I'm not using typescript anymore on a
professional level.
Do not install package which won't work anyway.
Get out of the way for existing apt installed version.
Symlink whole applications folder to not update after each run.
Create dedicated xdg desktopEntries to start web apps.
Use chromium where necessary, e.g. due to audio / video experiences.
Start web apps with dedicated Firefox profiles.
Configure those profiles to hide any UI to have an actual app feeling.
Do not add whitespace before exports. Let them be saved to zsh history.
This allows to search them and execute them in other splits more easily.
Remove dead unused code, e.g. testing database, which I didn't use for a
while.
In order to use from actual path, prevent issues with broken versions.
The script was linked against an 2021 version of home-manager which was
incompatible with current unstable nixpkgs.
That prevented updates.
There is now no concrete version, but it will use the once from current
PATH.
This allows to use the latest "current" version as defined by system.
I created a private repository within `registries/customer-projects`.
This holds flakes.
The folder is registered as registry.
That allows to run the following from within a customer project:
nix run cp\#reuter-phpstan
In order to execute the customer specific application from flake.
More or less in order to have a show case and working example.
There is no huge benefit in that case.
But it demonstrates that a default.nix could call callPackage and
benefit from 1:1 copy of nixpkgs package definition.
Also eases debugging of the derivation / package.
The phps used via flake for local development of legacy projects
distributed pre build packages via cachix.
Install cachix and add configuration to allow fetching of pre compiled
packages.
The flake is very basic and encapsulates frontend compilation via node
for customer projects.
The flake is intended to be used by other flake.nix within the projects,
which will use the defined packages to build apps outputs.
They should use the packages like `writeShellApplication` itself,
call it with necessary argument set in order to receive a
out of the box working solution.
A template is also provided which can be used like:
nix flake init -t <path to this flake>
`defaultTemplate` is defined in output and will be used.
My host does no longer provide any node or npm or yarn.
Project are partially migrated to shell.nix already.
I still need to migrate all projects. But I'm not working to much on
frontend and don't need to re compile assets to often, so no worries.
Some stuff will not work anymore, e.g. coc within neovim needs nodejs.
That's broken for now, but I don't care to much, not sure whether I used
it at all.
That will be part of neovim migration to home-manager / nix.
I prefer restructured text, but Gitea has no out of the box support.
So switch to markdown as there is more or less no difference anyway,
for such a simple file.
One big downside: There is no definition list.