Compare commits

...

245 commits

Author SHA1 Message Date
2e5899b22e WIP
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-07 20:56:13 +00:00
c68574b745 home: add wget
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This is mostly so that I can add the XDG-compliant configuration.
2024-02-07 20:17:49 +00:00
7a03ce2012 home: xdg: add python configuration
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It looks like 3.13 finally brought a way to change the history location
through `PYTHON_HISTORY`.
2024-02-07 20:01:28 +00:00
0650c1f159 home: xdg: fix sort order 2024-02-07 19:44:51 +00:00
9b2963cb8c overlays: add gruvbox-nvim-treesitter-fix
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The version in nixpkgs is not up-to-date with regards to the
nvim-treesitter breaking changes that were recently introduced.
2024-02-07 13:10:25 +00:00
091424cb14 overlays: gruvbox-nvim-better-diff: simplify 2024-02-07 11:53:56 +00:00
1a7223a5e5 overlays: remove 'tandoor-recipes-failing-test'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This is now redundant, the nixpkgs bump provided an updated package
which builds successfully.

This reverts commit 473be47b29.
2024-02-06 17:25:03 +01:00
c8b5b1586c flake: bump inputs
And remove the now-redundant overlay to fix a flaky `tandoor-recipes`
test.
2024-02-06 17:24:11 +01:00
a5aaf57e63 home: mail: accounts: remove himalaya backends
Their definition is redundant with the logic of the himalaya module,
which does the right thing by default.
2024-02-06 17:16:47 +01:00
7948dc284b nixos: hardware: rename 'trackball'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Since I do intend on configuring every trackball I own to use this
scheme, not just the MX Ergo.
2024-02-06 15:08:19 +00:00
183f3b48c8 hosts: nixos: aramis: hardware: enable graphics 2024-02-06 15:04:40 +00:00
f54cee8f70 nixos: hardware: add graphics
I did not add an Nvidia knob to this module, as I do not foresee *ever*
using one of their graphics card.
2024-02-06 15:04:40 +00:00
5ecef0d789 hosts: nixos: porthos: services: enable pyload
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-04 14:56:59 +01:00
df44786c9c hosts: nixos: porthos: secrets: add pyload creds 2024-02-04 14:56:59 +01:00
03dac604e9 nixos: services: add pyload 2024-02-04 14:56:59 +01:00
b41f0890b8 flake: bump inputs 2024-02-04 00:01:10 +01:00
473be47b29 overlays: add 'tandoor-recipes-failing-test'
Since it's currently broken on the unstable channel, I am pre-emptively
fixing it so that I can bump my flake inputs.
2024-02-04 00:01:10 +01:00
05cf04a11f home: mpv: add mpv-cheatsheet
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-31 22:07:03 +00:00
e227ad76b2 hosts: nixos: aramis: home: use 'pinentry-gtk2'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Now that it's available again, let's use it.

This reverts commit 39eba647ac.
2024-01-31 21:41:40 +00:00
3f13b3f03f flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-31 11:56:09 +00:00
16f98f144e hosts: nixos: porthos: secrets: add aria RPC token
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-30 15:51:48 +01:00
cc029f7933 nixos: services: add aria 2024-01-30 15:51:48 +01:00
02412f2578 nixos: services: nextcloud: fix renamed option 2024-01-30 15:51:48 +01:00
1655afcedf flake: bump inputs 2024-01-30 15:51:48 +01:00
e2ec4d3032 nixos: services: paperless: fix classifier hangs
This is an experimental fix to try and get around an issue with the
default BLAS/LAPACK implementation. See [1] for more details.

[1]: https://github.com/NixOS/nixpkgs/issues/240591
2024-01-30 15:51:48 +01:00
58b22b7354 home: firefox: tridactyl: remove 'Nitter' rule
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out it's very annoying when the Nitter instance has been rate
limited.

This reverts commit e514389a3d.
2024-01-27 15:33:40 +00:00
e2091e9e2e nixos: services: nextcloud: use HTTPS
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should fix my issue with the sliding sync server.
2024-01-26 23:36:05 +01:00
5cb67cf040 hosts: nixos: porthos: secrets: rekey secrets
Some of the secrets were using an invalid format due to (probably?)
being encrypted with a beta version of `age`.

I didn't need to rekey *all* the secrets, but I might as well
2024-01-26 23:27:58 +01:00
b33938e825 nixos: services: paperless: rename settings option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-22 16:57:18 +00:00
309c344a34 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-22 16:55:57 +00:00
13f20a28eb home: vim: add gn ftplugin 2024-01-22 16:55:57 +00:00
dca6a9018b home: vim: ftdetect: add gn 2024-01-22 16:55:57 +00:00
629ec539c9 nixos: services: nextcloud: fix typo 2024-01-22 16:55:57 +00:00
a5c57333cf hosts: homes: bazin: fix typo 2024-01-22 16:55:57 +00:00
136bd342ff nixos: services: matrix: fix deprecated option 2024-01-22 16:55:57 +00:00
10a3055136 nixos: services: nextcloud: fix deprecated option 2024-01-05 19:19:00 +01:00
e4f8214cb2 modules: services: nextcloud: bump to 28 2024-01-05 19:19:00 +01:00
b8b64bed8e home: vim: ftdetect: add glsl
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-05 10:59:58 +00:00
9546c00124 home: vim: ftdetect: fix obsolete comment 2024-01-05 10:59:45 +00:00
bddcab110d pkgs: matrix-notifier: 0.3.0 -> 0.4.0
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-03 15:58:34 +00:00
e02da7ec69 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-01-03 14:25:20 +00:00
a93dc2935b flake: add explicit 'systems' input 2024-01-03 14:25:20 +00:00
39eba647ac hosts: nixos: aramis: home: use 'pinentry-qt'
The GTK2 variant has been removed [1].

I may revise this in the future if [2] is merged (I'd like to try
`pinentry-rofi` [3]).

[1]: https://github.com/NixOS/nixpkgs/pull/270266
[2]: https://github.com/NixOS/nixpkgs/pull/277221
[3]: https://github.com/plattfot/pinentry-rofi
2024-01-03 14:25:20 +00:00
932717b754 nixos: services: jellyfin: loosen umask
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I just noticed that all the metadata files Jellyfin stores have very
restrictive ACLs.

The whole point of the `media` group is to make my HTPC eco-system work
together. In particular this should allow Sonarr and friends to delete
folders without manual intervention.
2023-12-26 15:17:05 +01:00
71ee178510 nixos: services: nginx: fix SSO subdomain
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-25 20:23:55 +01:00
6948424b81 nixos: services: remove redundant subdomains
See previous commit for the defaults.
2023-12-25 20:23:55 +01:00
b7a4bc063f nixos: services: nginx: add default subdomain
In almost all cases, the subdomain should be the same as the attribute
name...
2023-12-25 20:23:55 +01:00
faa87743e5 nixos: services: nginx: use attrset for vhosts
Attribute sets compose better than lists, it was a mistake to use a list
in the first place...
2023-12-25 20:23:55 +01:00
26950332c7 home: keyboard: extract from X module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This deserves to be its own standalone module, as I would want to use it
in both X and Wayland, etc...
2023-12-23 14:56:55 +01:00
13d85c30f9 pkgs: remove 'wifi-qr'
Some checks are pending
ci/woodpecker/push/check Pipeline is pending
Now that I added it to upstream, I can get rid of it.
2023-12-19 19:08:25 +01:00
a657a7742e home: wm: i3bar: fix 'net' block when disconnected
Some checks are pending
ci/woodpecker/push/check Pipeline is pending
I still sometimes get the error message about not being able to format
the block, this should fix it.
2023-12-18 09:41:35 +00:00
066a33587d home: mpv: add uosc script
Some checks are pending
ci/woodpecker/push/check Pipeline is pending
2023-12-16 20:24:38 +00:00
864e0a5ae6 home: firefox: tridactyl: fix Google mapping
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-16 16:23:18 +00:00
4aca698ac6 pkgs: remove 'unified-hosts-lists'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Instead make use of the upstream packaged host list.
2023-12-16 14:31:16 +00:00
7ccb8ea8b5 pkgs: unbound-zones-adblock: use upstream package
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This is a slight regression, as the current version of
`stevenblack-blocklist` is 3.13.10 and the version I packaged is
3.14.37.

However I am lazy and want to avoid having to bump the version
manually...
2023-12-16 14:28:46 +00:00
49f695bf68 pkgs: remove 'drone-scp'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I added it to upstream nixpkgs.
2023-12-16 12:51:12 +00:00
49742deb18 pkgs: unified-hosts-lists: 3.12.15 -> 3.14.37
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-14 20:08:01 +00:00
ad40c1b1d2 treewide: update to nix-direnv 3.0.0
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-14 14:26:18 +00:00
c28959fe02 pkgs: remove 'vimix-cursors'
Now that I've (finally) packaged it upstream.
2023-12-14 14:26:18 +00:00
104bc05871 home: wm: use upstream 'vimix-cursors' 2023-12-14 14:26:18 +00:00
1d50844fa4 pkgs: remove 'ff2mpv-go'
I've (finally) packaged it upstream.
2023-12-14 14:26:18 +00:00
e97f295470 home: firefox: use upstream 'ff2mpv-go' 2023-12-14 14:26:18 +00:00
373545ee38 nixos: system: printing: migrate deprecated option
It's recommended to only enable the IPv4 option, as most mDNS responders
only register IPv4 addresses (therefore enabling IPv6 would lead to long
timeouts when checking for those addresses first).
2023-12-14 14:26:18 +00:00
401972cb42 flake: bump inputs 2023-12-14 14:26:18 +00:00
90aed6b2ca pkgs: lohr: 0.4.2. -> 0.4.5 2023-12-14 14:26:18 +00:00
3a2f02f001 home: wm: i3bar: add VPN blocks 2023-12-14 14:25:48 +00:00
33b94a7f9d home: wm: i3bar: add 'flatten' call
This makes it easier to declare multiple blocks at once, as will be done
in the next commit.
2023-12-14 11:41:27 +00:00
1faa8d9acf nixos: services: wireguard: add 'simpleManagement'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This makes it easier to manage the VPN services, as they don't require a
password prompt to be brought up/down.
2023-12-14 11:23:28 +00:00
9ddd59eac8 nixos: system: add polkit
One nice thing is that it enables the prompts when using `systemctl`,
instead of requiring `sudo`.
2023-12-14 11:23:28 +00:00
f23e6251ce nixos: services: wireguard: add VPN conflicts
It's now easier to do the right thing when starting a VPN service,
whether the other one is running or not.
2023-12-14 11:23:28 +00:00
16fade92b4 home: packages: add 'allowAliases', 'allowUnfree'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
With [1], this should now be taken into account properly.

[1]: https://github.com/nix-community/home-manager/pull/4304
2023-12-08 11:50:44 +00:00
22fa05ca0c home: packages: refactor config format 2023-12-08 11:49:52 +00:00
3ed2fac3db flake: nixos: use module-provided 'lib'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I can't use `self.lib` to define options, that would result in infinite
recursion.
2023-12-07 22:00:14 +00:00
bdc3e63fff flake: home-manager: refactor 'hosts' -> 'homes'
This makes more sense as a name.
2023-12-07 20:30:35 +00:00
20ab679542 hosts: homes: bazin: migrate 'git.package'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-07 14:41:29 +00:00
3a7f4d126d hosts: homes: mousqueton: migrate 'git.package' 2023-12-07 14:40:15 +00:00
afda437f49 home: git: allow overriding default package 2023-12-07 14:39:38 +00:00
792d997dc9 hosts: homes: bazin: disable 'mosh' package 2023-12-07 14:39:38 +00:00
0164d12087 home: ssh: move 'mosh' configuration 2023-12-07 14:39:38 +00:00
0b9c2309da home: ssh: use 'mkMerge'
This will make it easier to add new options (e.g: for `mosh`).
2023-12-07 14:39:38 +00:00
8398c4350a hosts: homes: add work laptop 2023-12-07 14:39:38 +00:00
093d7a3cb8 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-12-06 22:19:03 +01:00
e41bacc2fc home: wm: i3: make 'rofi-bluetooth' ignore case
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The options given to the script are piped straight to `rofi -dmenu`,
which apparently needs the `-i` switch to be case insensitive.
2023-12-04 13:44:06 +00:00
55362b1db8 home: vim: add remove deprecated option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The plug-in now configures itself automatically.

I could also set `vim.g.skip_ts_context_commentstring_module = true`,
but that should be removed soon enough anyway, and I would forget to
remove it...
2023-12-01 19:20:52 +00:00
2d532f35a9 flake: bump inputs 2023-12-01 19:20:52 +00:00
15ca07bc64 home: wm: i3bar: remove redundant buttons
Turns out they're not needed, or at least not anymore?
2023-12-01 19:20:52 +00:00
f4cc63c711 home: direnv: remove 'ANDROID_SDK_HOME'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out this is supposed to be used for configuration, and it makes
some tools error out due to a sanity check...

I'm not pleased about this, but whatever.
2023-11-29 10:56:16 +00:00
ec79be2a45 home: xdg: set 'ANDROID_USER_HOME' 2023-11-29 10:56:16 +00:00
97f5bf504c hosts: homes: mousqueton: remove 'LD_PRELOAD'
It looks like this isn't needed anymore.
2023-11-29 10:56:16 +00:00
302cb907ef home: wm: i3: make blueman device manager floating
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-11-28 20:28:12 +00:00
3fb8734c56 home: direnv: fix 'use_android'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Don't rely on `ANDROID_SDK_HOME` if it hasn't yet been defined.
2023-11-27 11:18:29 +00:00
b48d81451d nixos: services: migrate to 'ensureDBOwnership'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
`ensurePermissions` is deprecated, and doesn't work on PostgreSQL 15.
2023-11-21 00:22:44 +01:00
60d941b40b flake: bump inputs
My tandoor-recipes fix was merged upstream, so remove the overlay.

And because of the recent postgres bump for 23.11, `ensureDBOwnership`
is the new way of dealing with DB permissions [1]. This means I had to
fix manually migrate my `gitea` DB and make it match the DB user.

[1]: https://github.com/NixOS/nixpkgs/pull/266270
2023-11-21 00:20:28 +01:00
c466fd25b4 templates: fix deprecated CI syntax
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-11-18 20:17:18 +00:00
e04be2d130 ci: remove deprecated syntax
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-11-18 20:11:56 +00:00
00ee4629fc hosts: homes: mousqueton: update 'LD_PRELOAD'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I was getting dynamic linker errors with the previous value.
2023-11-17 16:25:47 +00:00
11c8d4623c home: direnv: add 'android' library file
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-11-17 16:21:28 +00:00
570349e80f nixos: profiles: move from top-level
All checks were successful
ci/woodpecker/push/check Pipeline was successful
My profiles are actually just "special" NixOS modules in that they
orchestrate settings that usually span the NixOS/home-manager boundary,
or otherwise set up configurations from multiple modules at once.
2023-11-11 18:12:05 +00:00
65a8f7c481 home: create 'modules/home' folder
Consolidating all modules under the same path, to clear out the
top-level directory.
2023-11-11 18:12:05 +00:00
c856933803 nixos: create 'modules/nixos' folder
Let's consolidate all modules under one path, so that NixOS,
home-manager, and nix-darwin (if I ever end up using it down the line)
would go under the same folder.
2023-11-11 18:11:52 +00:00
b52e56ed08 modules: home: use 'self'-relative import 2023-11-11 18:07:31 +00:00
27564cad42 modules: system: printing: move from 'profiles'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This isn't really a cross-cutting module, it should be a module rather
than a profile.
2023-11-11 17:59:49 +00:00
32ec402ad0 pkgs: remove volantes-cursors
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It has been packaged upstream.
2023-11-07 16:52:13 +00:00
cc331b73c7 treewide: fix postgres service dependencies
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Some were missing a `requires` even though they had `after`, and
woodpecker was missing it entirely.
2023-11-06 20:55:53 +00:00
830e7bb865 modules: services: woodpecker: fix interpolation 2023-11-06 20:54:42 +00:00
7f857ab661 hosts: homes: mousqueton: fix formatting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-10-31 14:56:21 +00:00
8ad02dd74d hosts: nixos: porthos: system: disable cache
All checks were successful
ci/woodpecker/push/check Pipeline was successful
We're never going to get a cache hit, since this is the host for that
cache.
2023-10-31 14:00:47 +00:00
249ee14d39 overlays: add 'tandoor-recipes-bump-allauth'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should only be temporary until they release a new version which
_does_ support the middleware (see [1]).

[1]: https://github.com/TandoorRecipes/recipes/pull/2706
2023-10-31 12:20:47 +00:00
9b71708e3a flake: bump inputs 2023-10-31 11:56:39 +00:00
ca4fac3c54 hosts: nixos: porthos: fix tmux 24-bit color
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Well at least this fixes it for the usual client (my laptop).
2023-10-30 13:33:27 +00:00
6a8f93df1f modules: services: nginx: fix obsolete doc
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's annoying to keep it in sync when adding a new incompatible option.
2023-10-28 12:14:45 +01:00
42ab12179e hosts: homes: mousqueton: use 'trueColorTerminals'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Ah, much better with an actual option for this :-).
2023-10-26 19:39:44 +01:00
3a1ccea142 home: tmux: add 'trueColorTerminals'
This uses the recommended way of enabling true-color [1].

[1]: https://github.com/tmux/tmux/wiki/FAQ#how-do-i-use-rgb-colour
2023-10-26 19:37:04 +01:00
c01f657e8d lib: lists: add 'nullableToList' 2023-10-26 19:36:32 +01:00
bd69e28143 home: firefox: migrate deprecated option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-10-26 15:19:55 +00:00
516df86b3f home: vim: migrate to 'none-ls-nvim'
This is the community-maintained fork of the plug-in.
2023-10-26 15:19:55 +00:00
28187c3b8f overlays: add 'gruvbox-nvim-better-diff'
I dislike the new style of diff [1].

After somebody wrote a patch [2] I finally started experimenting with
what looked best to me.

This is using the old vibrant colours, which I like better. And avoids
using `reverse = true` to not break high-lighting during visual
selection.

This is using an overlay as it is _much_ easier to refer to the internal
colours in a `dark`/`light` agnostic way that way instead of the
intended "use the palette way" (due to breaking changes in [3] which,
incidentally, is the MR which changed diff high-lighting).

[1]: https://github.com/ellisonleao/gruvbox.nvim/issues/290
[2]: https://github.com/ellisonleao/gruvbox.nvim/pull/291
[3]: https://github.com/ellisonleao/gruvbox.nvim/pull/280
2023-10-26 15:19:50 +00:00
0795a3d29b flake: bump inputs
And fix a removed nextcloud option.
2023-10-26 13:44:43 +00:00
5248eb59f8 hosts: homes: mousqueton: fix tmux 24-bit color
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This is based on this answer [1] from Stack Overflow.

I'll have to look into what the proper fix would be in general, this is
just a band-aid to get it working correctly while SSH-ing from my
laptop.

[1]: https://stackoverflow.com/a/41786092
2023-10-26 12:27:33 +00:00
b4c2cc581b modules: services: matrix: add sliding sync 2023-10-26 12:27:00 +00:00
b4b9b54f75 modules: services: matrix: register dummy vhosts
This is simply to make use of my infrastructure for port collision
detection.
2023-10-26 12:27:00 +00:00
52413dcaf7 hosts: nixos: porthos: secrets: add matrix sync 2023-10-26 12:27:00 +00:00
1425c42489 modules: services: matrix: refactor vhost 2023-10-26 12:27:00 +00:00
085c563d75 hosts: homes: mousqueton: disable gpg-agent
It doesn't work well in this environment anyway.
2023-10-26 12:27:00 +00:00
fcdb5ba593 modules: services: woodpecker: remove DNS hack
Some checks are pending
ci/woodpecker/push/check Pipeline is running
I'm not sure what changed, but it looks like I don't need it anymore.

Initially I wanted to apply the same DNS fix as [1].

[1]: https://blog.kotatsu.dev/posts/2023-04-21-woodpecker-nix-caching/
2023-10-18 21:38:22 +02:00
f8a0eef4dd hosts: nixos: porthos: services: disable lidarr 2023-10-18 21:38:22 +02:00
3b3e7093be modules: services: pirate: make more fine-grained 2023-10-18 21:38:22 +02:00
dae1a434d5 modules: services: transmission: bump to 4
Not sure why exactly this isn't the default, I'll have to watch out for
when upstream catches up.
2023-10-18 21:38:22 +02:00
2d36ffd96d pkgs: comma: rename 'COMMA_{,NIX}PKGS_FLAKE'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This aligns with the rust implementation of this tool [1].

[1]: 17a4f33849
2023-10-12 15:21:06 +00:00
a5febc40e4 home: comma: remove 'COMMA_PKGS_FLAKE' definition
Now that my configurations also set `nixpkgs` in `NIX_PATH`, there's
isn't a need for this to be defined anymore.
2023-10-12 15:21:06 +00:00
ce19887f77 treewide: update 'nix-direnv' bootstrapping 2023-10-12 15:17:26 +00:00
aca743dea7 templates: simplify direnv configurations
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This was mostly a copy-paste error (the `watch_file` calls).

As for the shell hooks, it looks like `nix-direnv` takes care of that
automatically.
2023-10-12 13:47:43 +00:00
e09899d59c direnv: fix 'watch_file' directives
I should use `nix_direnv_watch_file` and call it _before_ `use_flake`.
2023-10-12 13:45:49 +00:00
fd09346526 direnv: remove explicit 'shellHooks' evaluation
I _think_ nix-direnv does it automatically, so no need to do it myself.
2023-10-12 13:40:22 +00:00
f9541cbc33 hosts: homes: mousqueton: disable 'git' package
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I had some troubles with `git` once again...

This reverts commit 13769429f6.
2023-10-12 12:56:41 +00:00
6ef0abd596 home: xdg: set 'REPO_CONFIG_DIR'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Unfortunately, it will create a `.repoconfig` inside that directory. But
that's still better than littering my $HOME.
2023-10-10 15:36:14 +00:00
24d41e829e modules: system: users: fix deprecated option name
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-28 15:57:14 +00:00
03a1f704aa flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-27 19:22:04 +02:00
e81de7faad pkgs: rbw-pass: fix program name in usage string
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-26 16:51:46 +00:00
61fe480e6b home: calibre: remove obsolete NOTE 2023-09-26 16:38:27 +00:00
7b56c342ad modules: services: paperless: beef-up workers
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should parallelize the number of documents ingested at once
(workers), as well as the speed of the ingestion per document (threads).
2023-09-18 13:43:37 +00:00
f2f4b9f91e home: vim: lua: lsp: fix comments
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-14 11:14:04 +00:00
3f7a062376 home: vim: lua: util: fix comments 2023-09-14 11:13:27 +00:00
550436eee5 home: vim: remove 'cmp-path'
Now that I'm using the async variant.
2023-09-14 11:00:10 +00:00
f0b590c29e hosts: homes: mousqueton: use new name
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I renamed my cloudtop to follow the usual schema (and because `cloudtop`
was not available...) :-).
2023-09-13 14:05:45 +00:00
e979589174 modules: services: woodpecker: use 'path' option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
One less thing to modify in the systemd service.
2023-09-13 12:40:19 +00:00
f3f8c8fc3f flake: bump inputs 2023-09-13 12:39:39 +00:00
f0e387b943 home: direnv: allow broken 'use pkgs'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-05 16:20:27 +00:00
96a2c62e94 home: direnv: allow insecure 'use pkgs' 2023-09-05 16:20:20 +00:00
d060978b65 home: direnv: allow unfree 'use pkgs' 2023-09-05 16:20:03 +00:00
5926cd356d home: direnv: allow impure 'use pkgs'
This makes it easier to use non-free or insecure packages.
2023-09-05 16:11:11 +00:00
ac93cb0ac8 home: direnv: refactor option handling
This will make it easier to add more options.
2023-09-05 16:11:11 +00:00
6ba7a63b25 modules: services: fail2ban: fix comment
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-03 12:53:24 +02:00
fc8ccb8b99 modules: services: pirate: add fail2ban jails
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-09-03 12:43:46 +02:00
14bf03e5fd modules: services: pirate: refactor
This will make adding fail2ban jails easier.
2023-09-03 12:42:29 +02:00
adc4ce9d8a modules: services: indexers: add prowlarr fail2ban 2023-09-03 12:21:35 +02:00
ce46f3571b home: vim: restore python configuration
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This is a partial revert of 260f5cd66a,
which erroneously removed this config.
2023-08-31 11:16:35 +00:00
8bcf56fdec treewide: fix shellcheck issues
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-31 10:42:45 +00:00
861136c475 treewide: add 'shellcheck shell' directives
I used 'bash' for zsh files, since that's the closest and `shell=zsh` is
not supported [1].

[1]: https://github.com/koalaman/shellcheck/issues/809
2023-08-31 10:41:17 +00:00
13769429f6 hosts: homes: cloudtop: enable 'git' package
Some checks failed
ci/woodpecker/push/check Pipeline failed
Turns out that the latest version fixes the issue, but I haven't looked
into why exactly.

This reverts commit 6100a092af.
2023-08-31 10:22:56 +00:00
71a1bbd78d home: vim: set line length in commit messages
Some checks failed
ci/woodpecker/push/check Pipeline failed
I'm already getting the correct wrapping behaviour from vim-fugitive,
but the displayed width is wrong.
2023-08-29 14:06:19 +00:00
5b59a9cf82 hosts: homes: cloudtop: enable tmux passthrough
Some checks failed
ci/woodpecker/push/check Pipeline failed
Mostly used for my `osc52` and `osc777` scripts.
2023-08-21 13:20:25 +00:00
ca1d439e7a hosts: nixos: porthos: services: disable drone
Some checks failed
ci/woodpecker/push/check Pipeline failed
I have now completely migrated to Woodpecker, so no need for it anymore.
2023-08-20 14:19:40 +01:00
e4541d4ecc flake: bump inputs
Some checks failed
ci/woodpecker/push/check Pipeline failed
2023-08-19 14:41:10 +02:00
6d9d835e1c modules: services: nix-cache: use harmonia 2023-08-19 14:41:10 +02:00
19d2916e1c hosts: nixos: porthos: secrets: rename 'nix-cache'
To go with the module rename.
2023-08-19 14:41:10 +02:00
ab59054518 modules: services: rename 'nix-cache'
I'm about to modify the module to use a different cache implementation,
so this name is more appropriate.
2023-08-19 14:41:10 +02:00
4571a39c25 home: gdb: fix 'mkMerge' invocation
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The `rr` configuration should be enabled only if `gdb` is.
2023-08-13 16:18:22 +01:00
a87429b067 pkgs: add 'zsh-done'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-13 15:33:02 +01:00
254eb0cb2d flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-12 23:56:58 +02:00
330402d335 hosts: nixos: porthos: services: enable vikunja
Trying it out again.

This reverts commit 1807b8b88c.
2023-08-12 23:14:53 +02:00
bcdbe45558 pkgs: add osc777
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-11 13:13:21 +00:00
5f42e7cc90 home: tmux: fix option name typo
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-11 13:12:05 +00:00
7ace62da72 home: vim: use async path completion
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This makes the editor more responsive when completing in directories
that are network mounted or have a large amount of entries.
2023-08-07 15:38:28 +00:00
7529d2b7f9 flake: bump inputs 2023-08-07 15:38:28 +00:00
3ef71cc165 home: wm: i3bar: add 'quarks' bluetooth block
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-08-06 20:13:08 +02:00
424bb2e7b9 modules: services: woodpecker: simplify path
I'm not sure why it was written that way to begin with.
2023-08-06 20:13:08 +02:00
405965dc72 pkgs: add explicit 'meta.mainProgram'
Since upstream has decided to deprecate the implied value when using
`lib.getExe` (see [1]), we should set it explicitly.

[1]: https://github.com/NixOS/nixpkgs/pull/246386
2023-08-06 20:13:08 +02:00
761393205c pkgs: re-order 'meta'
This is (mostly) alphetically sorted.
2023-08-06 20:13:08 +02:00
1b960c7449 ci: use 'backend' tag 2023-08-06 20:13:08 +02:00
0cf6cfe39b pkgs: remove woodpecker
Now that v1.0.0 is on nixpkgs, no need for my custom packages.
2023-08-06 20:13:08 +02:00
7b6779f2b5 modules: services: woodpecker: default packages
Now that v1.0.0 is on nixpkgs, no need for my custom packages.
2023-08-06 20:13:08 +02:00
68118e8f93 flake: bump inputs 2023-08-06 20:13:08 +02:00
45c3b82606 modules: services: nginx-sso: use writeShellScript 2023-08-06 20:13:08 +02:00
58a94bdf1b pkgs: remove woodpecker-plugin-git
I have now upstreamed the package, so let's remove it.
2023-08-06 20:13:08 +02:00
868a9aa212 home: mail: accounts: use 'rbw-pass'
It should be more robust than the one based on bitwarden-cli.
2023-08-06 20:13:08 +02:00
9f7472222c treewide: use 'lib.getExe' when possible
Don't use it in wireguard to keep it consistent, as only half the
commands could use it.
2023-08-06 20:13:08 +02:00
8f818b8611 pkgs: add rbw-pass
This is honestly almost overkill, as the script doesn't really have any
logic in it, but it's good to have a common base with the bitwarden-cli
one.
2023-08-06 20:13:08 +02:00
2dfc788ed4 home: wm: i3: add 'rofi-rbw' mapping 2023-08-06 20:13:08 +02:00
4a9a46547e machine: aramis: home: set 'bitwarden.pinentry' 2023-08-06 20:13:08 +02:00
36c0590ae5 home: add bitwarden 2023-08-06 20:13:08 +02:00
e5a1105c59 home: wm: i3: remove 'pamixer'
This was left-over from the first version of my volume mappings.
2023-08-06 20:13:08 +02:00
850b9f792f flake: bump inputs 2023-08-06 20:13:08 +02:00
f363ae71a5 hosts: nixos: porthos: boot: use '/dev/disk/by-id'
Somehow `/dev/sda` and `/dev/sdb` switched around, so use a more stable
path.
2023-08-06 20:13:08 +02:00
ae8d8d75fd flake: bump inputs
Update `fail2ban` to accomodate for RFC-42 migration.
2023-08-06 20:13:08 +02:00
65de9c5a0e home: zsh: add fallback for all mappings
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I don't actually think any of these are _necessary_, but you never know.
2023-07-21 10:20:08 +00:00
fc6b221ba1 overlays: make overlay import automatic
Some checks failed
ci/woodpecker/push/check Pipeline failed
Don't rely on nixpkgs' lib to make it easier to just `import` the
directory.
2023-07-20 22:17:16 +01:00
47533f119e modules: services: monitoring: add 'secretKeyFile'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-07-17 10:59:58 +00:00
ae13ab0c86 nixos: porthos: secrets: add grafana secret-key
The secret will be used in the next commit.
2023-07-17 10:59:58 +00:00
caa8357db8 home: nixpkgs: define 'GITHUB_API_TOKEN'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out the nixpkgs scripts are not consistent in which environment
variable they expect to be defined...
2023-07-17 09:57:24 +00:00
493636decb hosts: nixos: porthos: services: add tandoor
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-07-17 09:55:33 +00:00
5ff0b62af8 hosts: nixos: porthos: secrets: add tandoor 2023-07-17 11:53:49 +02:00
4bb1387376 modules: services: add tandoor-recipes
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-07-15 15:46:04 +02:00
5741421604 modules: services: nextcloud: enable 'notify_push' 2023-07-15 15:46:04 +02:00
c037d3844a modules: services: nextcloud: configure redis
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I keep having some file-locking issues, and heard that using redis might
help alleviate those errant locks.

It's also necessary to use the `notify_push` app.
2023-07-15 14:01:14 +01:00
758e88e620 overlays: remove 'calibre-dedrm'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out I didn't need it.

This reverts commit 89168324e7.
2023-07-05 20:14:52 +01:00
6100a092af hosts: homes: cloudtop: disable 'git' package
All checks were successful
ci/woodpecker/push/check Pipeline was successful
A recent update modified `ssh_config`, and nixpkgs' version of OpenSSH
does not know how to deal with those options.

The `git` package does not make use of the system-provided SSH client,
and errors-out.

Given that those patches are never going to be upstreamed, just override
the `git` package, and use the system-provided one instead...
2023-07-05 16:56:57 +00:00
737e9df202 home: tmux: make status left longer
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-07-04 14:58:03 +00:00
f73be2fc4e flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-30 22:44:25 +02:00
cbbe371ace hosts: nixos: aramis: home: remove 'quasselclient'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-28 21:41:52 +01:00
b8f8c7cfa7 home: wm: i3bar: fix 'battery' block on empty
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-27 20:14:23 +01:00
950940e3c7 hosts: nixos: aramis: home: enable calibre
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-24 17:02:01 +01:00
ac725bd5e4 home: add calibre
Ideally I will extend this module to handle the plugin (and
dependencies) natively.
2023-06-24 17:02:01 +01:00
89168324e7 overlays: add 'calibre-dedrm' 2023-06-24 17:02:01 +01:00
3e5fbfeb7a modules: services: nextcloud: bump to 27
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-23 12:03:13 +02:00
b6ccc7a18d overlays: remove 'nix-serve-ng-initLibStore'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-23 09:11:15 +00:00
0bc31619c8 flake: bump inputs 2023-06-23 09:10:24 +00:00
cecb7d9bb4 home: vim: lspconfig: configure diagnostics once
All checks were successful
ci/woodpecker/push/check Pipeline was successful
There's no need to configure it on each LSP attach, this is wasted work
and could change options that have since been changed.
2023-06-22 15:35:32 +00:00
2f03d92dd9 modules: services: woodpecker: use docker module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-11 16:25:23 +01:00
e44dd4c6ea modules: services: drone: use docker module 2023-06-11 16:25:23 +01:00
df9b060947 modules: system: podman: check for docker conflict 2023-06-11 16:23:31 +01:00
73fdd4622b modules: system: add docker 2023-06-11 16:17:42 +01:00
8fcb7f42a6 home: wm: i3: assert name of 'i3status-rs' bar
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-11 16:13:42 +01:00
e5c27d7aa8 home: firefox: fix settings sort
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-10 22:57:19 +01:00
a846d19b1a flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-10 20:47:20 +01:00
1807b8b88c hosts: nixos: porthos: services: disable vikunja
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I don't use it.
2023-06-10 13:35:02 +01:00
5aa136f796 modules: system: podman: fix removed option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-08 15:43:46 +00:00
18c9458cfa modules: system: users: add 'docker' group 2023-06-08 15:43:46 +00:00
c0995929c4 modules: system: podman: add weekly purge 2023-06-08 15:43:46 +00:00
d69dbf8d62 home: wm: i3bar: fix 'net' block on non-wireless
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-06 20:01:07 +01:00
5d570dbf1e modules: programs: steam: use writeShellScriptBin
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-06-03 13:40:44 +01:00
4f6f483851 modules: programs: steam: simplify wrapper 2023-06-03 13:40:44 +01:00
39a512bc0a home: vim: unset 'splitkeep'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out I do _not_ like this behaviour when it messes with the cursor
position.

If they had an option that kept my cursor correctly positioned, and only
then tried to move the buffer to keep it steady, I'd try it.

This reverts commit 4feee73b8e.
2023-06-01 11:34:09 +00:00
5de4ee93d5 home: vim: use smarter diagnostics float display
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-31 14:00:32 +00:00
7c4e0e31bc hosts: nixos: porthos: boot: remove 'grub.version'
Some checks failed
ci/woodpecker/push/check Pipeline failed
2023-05-28 14:49:40 +02:00
908c2e39b3 flake: bump inputs
Some checks failed
ci/woodpecker/push/check Pipeline failed
2023-05-28 14:44:18 +02:00
0321889d50 home: wm: i3bar: add 'muon' bluetooth block
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-27 09:24:09 +01:00
e26672494c flake: dev-shells: use 'mkShellNoCC'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
We don't need compilers.
2023-05-25 09:31:41 +00:00
b80053d786 home: add nixpkgs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-22 15:53:59 +00:00
b570cf227c home: secrets: add github
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-17 11:13:26 +00:00
c0a80c2503 home: secrets: fix public keys list 2023-05-17 11:12:18 +00:00
e68ae26609 hosts: nixos: porthos: services: enable vikunja
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-13 21:18:57 +02:00
30d01972b2 hosts: nixos: porthos: secrets: add vikunja 2023-05-13 21:18:57 +02:00
175a8acde2 modules: services: add vikunja 2023-05-13 21:18:57 +02:00
685c571018 modules: services: nginx: add 'socket' option 2023-05-13 21:18:57 +02:00
314 changed files with 2322 additions and 4533 deletions

8
.envrc
View file

@ -1,10 +1,8 @@
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
if ! has nix_direnv_version || ! nix_direnv_version 3.0.0; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.0/direnvrc" "sha256-21TMnI2xWX7HkSTjFFri2UaohXVj854mgvWapWrxRXg="
fi
use flake
watch_file ./flake/checks.nix
watch_file ./flake/dev-shells.nix
eval "$shellHooks"
use flake

View file

@ -1,7 +1,7 @@
labels:
type: exec
backend: local
pipeline:
steps:
- name: nix flake check
image: bash
commands:

View file

@ -1,5 +1,6 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bitwarden-cli git gnupg jq nix
# shellcheck shell=bash
# Command failure is script failure
set -e
@ -10,7 +11,6 @@ BOLD_GREEN="\e[0;1;32m"
RESET="\e[0m"
DEST="$HOME/.config/nixpkgs"
BW_SESSION=""
warn() {

71
flake.lock generated
View file

@ -8,14 +8,17 @@
],
"nixpkgs": [
"nixpkgs"
],
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1683866323,
"narHash": "sha256-M2bEuh2jr0Ec13GnP5f8unD8q0AcPt2fHSUynOZJ8No=",
"lastModified": 1703433843,
"narHash": "sha256-nmtA4KqFboWxxoOAA6Y1okHbZh+HsXaMPFkYHsoDRDw=",
"owner": "ryantm",
"repo": "agenix",
"rev": "92197270a1eedd142a4aff853e4cc6d1e838c22f",
"rev": "417caa847f9383e111d1397039c9d4337d024bf0",
"type": "github"
},
"original": {
@ -33,11 +36,11 @@
]
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
@ -50,11 +53,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
@ -70,11 +73,11 @@
]
},
"locked": {
"lastModified": 1683560683,
"narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=",
"lastModified": 1706830856,
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "006c75898cf814ef9497252b022e91c946ba8e17",
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
"type": "github"
},
"original": {
@ -86,14 +89,16 @@
},
"futils": {
"inputs": {
"systems": "systems"
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
@ -111,11 +116,11 @@
]
},
"locked": {
"lastModified": 1660459072,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
"lastModified": 1703887061,
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
"type": "github"
},
"original": {
@ -131,11 +136,11 @@
]
},
"locked": {
"lastModified": 1683883222,
"narHash": "sha256-Tow+8GKwNNk2NvXoBwS/VBP8lpOdqIeeJ46ZU2fw5QU=",
"lastModified": 1707175763,
"narHash": "sha256-0MKHC6tQ4KEuM5rui6DjKZ/VNiSANB4E+DJ/+wPS1PU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a835096fd2bcc369f57b76b9b17cc00348f595f5",
"rev": "f99eace7c167b8a6a0871849493b1c613d0f1b80",
"type": "github"
},
"original": {
@ -147,11 +152,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1683408522,
"narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=",
"lastModified": 1707092692,
"narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7",
"rev": "faf912b086576fd1a15fca610166c98d47bc667e",
"type": "github"
},
"original": {
@ -163,11 +168,11 @@
},
"nur": {
"locked": {
"lastModified": 1683884754,
"narHash": "sha256-o3JF2SZJIwnz2YXwS0tb+CZqfXTABZDTdCjOG6fahIA=",
"lastModified": 1707234300,
"narHash": "sha256-D+LdA8g0Tq+KE9EmJMmn8EGRO5jZ2nLe/W0Fr5EIsdg=",
"owner": "nix-community",
"repo": "NUR",
"rev": "ee3497fa69c9c48ec7e4c0ffc1610ea543497633",
"rev": "59fceae769455455ef44c1dfb63bbae1ecddc41d",
"type": "github"
},
"original": {
@ -192,11 +197,11 @@
]
},
"locked": {
"lastModified": 1682596858,
"narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=",
"lastModified": 1706424699,
"narHash": "sha256-Q3RBuOpZNH2eFA1e+IHgZLAOqDD9SKhJ/sszrL8bQD4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "fb58866e20af98779017134319b5663b8215d912",
"rev": "7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf",
"type": "github"
},
"original": {
@ -214,7 +219,8 @@
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nur": "nur",
"pre-commit-hooks": "pre-commit-hooks"
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems"
}
},
"systems": {
@ -228,6 +234,7 @@
},
"original": {
"owner": "nix-systems",
"ref": "main",
"repo": "default",
"type": "github"
}

View file

@ -9,6 +9,7 @@
inputs = {
home-manager.follows = "home-manager";
nixpkgs.follows = "nixpkgs";
systems.follows = "systems";
};
};
@ -27,6 +28,9 @@
owner = "numtide";
repo = "flake-utils";
ref = "main";
inputs = {
systems.follows = "systems";
};
};
home-manager = {
@ -64,6 +68,13 @@
nixpkgs-stable.follows = "nixpkgs";
};
};
systems = {
type = "github";
owner = "nix-systems";
repo = "default";
ref = "main";
};
};
# Can't eta-reduce a flake outputs...

View file

@ -2,7 +2,7 @@
{
perSystem = { config, pkgs, ... }: {
devShells = {
default = pkgs.mkShell {
default = pkgs.mkShellNoCC {
name = "NixOS-config";
nativeBuildInputs = with pkgs; [

View file

@ -2,7 +2,7 @@
let
defaultModules = [
# Include generic settings
"${self}/home"
"${self}/modules/home"
{
# Basic user information defaults
home.username = lib.mkDefault "ambroisie";
@ -39,8 +39,9 @@ let
};
};
hosts = {
"ambroisie@ambroisie" = "x86_64-linux"; # Unfortunate naming here...
homes = {
"ambroisie@bazin" = "x86_64-linux";
"ambroisie@mousqueton" = "x86_64-linux";
};
in
{
@ -49,13 +50,13 @@ in
legacyPackages = {
homeConfigurations =
let
filteredHosts = lib.filterAttrs (_: v: v == system) hosts;
allHosts = filteredHosts // {
filteredHomes = lib.filterAttrs (_: v: v == system) homes;
allHomes = filteredHomes // {
# Default configuration
ambroisie = system;
};
in
lib.mapAttrs mkHome allHosts;
lib.mapAttrs mkHome allHomes;
};
};
}

View file

@ -1,7 +1,5 @@
{ self, inputs, ... }:
{ self, inputs, lib, ... }:
let
inherit (self) lib;
defaultModules = [
{
# Let 'nixos-version --json' know about the Git revision
@ -13,9 +11,7 @@ let
];
}
# Include generic settings
"${self}/modules"
# Include bundles of settings
"${self}/profiles"
"${self}/modules/nixos"
];
buildHost = name: system: lib.nixosSystem {
@ -25,7 +21,7 @@ let
];
specialArgs = {
# Use my extended lib in NixOS configuration
inherit lib;
inherit (self) lib;
# Inject inputs to use them in global registry
inherit inputs;
};

View file

@ -1,29 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.home.comma;
in
{
options.my.home.comma = with lib; {
enable = my.mkDisableOption "comma configuration";
pkgsFlake = mkOption {
type = types.str;
default = "pkgs";
example = "nixpkgs";
description = ''
Which flake from the registry should be used with
<command>nix shell</command>.
'';
};
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
ambroisie.comma
];
home.sessionVariables = {
COMMA_PKGS_FLAKE = cfg.pkgsFlake;
};
};
}

View file

@ -1,53 +0,0 @@
{ ... }:
{
imports = [
./aliases
./atuin
./bat
./bluetooth
./comma
./dircolors
./direnv
./discord
./documentation
./feh
./firefox
./flameshot
./fzf
./gammastep
./gdb
./git
./gpg
./gtk
./htop
./jq
./mail
./mpv
./nix
./nix-index
./nm-applet
./packages
./pager
./power-alert
./secrets
./ssh
./terminal
./tmux
./udiskie
./vim
./wm
./x
./xdg
./zathura
./zsh
];
# First sane reproducible version
home.stateVersion = "20.09";
# Who am I?
home.username = "ambroisie";
# Start services automatically
systemd.user.startServices = "sd-switch";
}

View file

@ -1,32 +0,0 @@
#shellcheck shell=bash
use_pkgs() {
if ! has nix; then
# shellcheck disable=2016
log_error 'use_pkgs: `nix` is not in PATH'
return 1
fi
# Use user-provided default value, or fallback to nixpkgs
local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"
# Allow changing the default flake through a command line switch
if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then
DEFAULT_FLAKE="$2"
shift 2
fi
# Allow specifying a full installable, or just a package name and use the default flake
local packages=()
for pkg; do
if [[ $pkg =~ .*#.* ]]; then
packages+=("$pkg")
else
packages+=("$DEFAULT_FLAKE#$pkg")
fi
done
# shellcheck disable=2154
direnv_load nix shell "${packages[@]}" --command "$direnv" dump
}

View file

@ -1,10 +0,0 @@
# Common secrets
let
keys = import ../../keys;
# deadnix: skip
all = keys.users;
in
{
# Add secrets here
}

View file

@ -1,54 +0,0 @@
{ config, lib, ... }:
let
cfg = config.my.home.ssh;
in
{
options.my.home.ssh = with lib; {
enable = my.mkDisableOption "ssh configuration";
};
config.programs.ssh = lib.mkIf cfg.enable {
enable = true;
includes = [
# Local configuration, not-versioned
"config.local"
];
matchBlocks = {
"github.com" = {
hostname = "github.com";
identityFile = "~/.ssh/shared_rsa";
user = "git";
};
"gitlab.com" = {
hostname = "gitlab.com";
identityFile = "~/.ssh/shared_rsa";
user = "git";
};
"git.sr.ht" = {
hostname = "git.sr.ht";
identityFile = "~/.ssh/shared_rsa";
user = "git";
};
"git.belanyi.fr" = {
hostname = "git.belanyi.fr";
identityFile = "~/.ssh/shared_rsa";
user = "git";
};
porthos = {
hostname = "91.121.177.163";
identityFile = "~/.ssh/shared_rsa";
user = "ambroisie";
};
};
extraConfig = ''
AddKeysToAgent yes
'';
};
}

View file

@ -1,15 +0,0 @@
# Google Cloudtop configuration
{ ... }:
{
# Google specific configuration
home.homeDirectory = "/usr/local/google/home/ambroisie";
# Some tooling (e.g: SSH) need to use this library
home.sessionVariables = {
LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD";
};
systemd.user.sessionVariables = {
LD_PRELOAD = "/lib/x86_64-linux-gnu/libnss_cache.so.2\${LD_PRELOAD:+:}$LD_PRELOAD";
};
}

View file

@ -0,0 +1,25 @@
# Google Laptop configuration
{ lib, pkgs, ... }:
{
services.gpg-agent.enable = lib.mkForce false;
my.home = {
git = {
package = pkgs.emptyDirectory;
};
tmux = {
# I use scripts that use the passthrough sequence often on this host
enablePassthrough = true;
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
trueColorTerminals = [ "xterm-256color" ];
};
ssh = {
mosh = {
package = pkgs.emptyDirectory;
};
};
};
}

View file

@ -0,0 +1,22 @@
# Google Cloudtop configuration
{ lib, pkgs, ... }:
{
# Google specific configuration
home.homeDirectory = "/usr/local/google/home/ambroisie";
services.gpg-agent.enable = lib.mkForce false;
my.home = {
git = {
package = pkgs.emptyDirectory;
};
tmux = {
# I use scripts that use the passthrough sequence often on this host
enablePassthrough = true;
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
trueColorTerminals = [ "xterm-256color" ];
};
};
}

View file

@ -15,6 +15,7 @@
./secrets
./services.nix
./sound.nix
./system.nix
];
# Set your time zone.

View file

@ -26,6 +26,12 @@
firmware = {
cpuFlavor = "intel";
};
graphics = {
enable = true;
gpuFlavor = "intel";
};
};
hardware = {

View file

@ -1,6 +1,10 @@
{ pkgs, ... }:
{
my.home = {
# Use graphical pinentry
bitwarden.pinentry = "gtk2";
# Ebook library
calibre.enable = true;
# Some amount of social life
discord.enable = true;
# Image viewver
@ -16,7 +20,6 @@
element-desktop # Matrix client
jellyfin-media-player # Wraps the webui and mpv together
pavucontrol # Audio mixer GUI
quasselClient # IRC client
transgui # Transmission remote
];
# Minimal video player

View file

@ -9,8 +9,6 @@
gtk.enable = true;
# Laptop specific configuration
laptop.enable = true;
# Printers are hell, but so is the unability to print
printing.enable = true;
# i3 configuration
wm.windowManager = "i3";
# X configuration

View file

@ -0,0 +1,10 @@
# Core system configuration
{ ... }:
{
my.system = {
# Printers are hell, but so is the unability to print
printing = {
enable = true;
};
};
}

View file

@ -6,9 +6,8 @@
# Use the GRUB 2 boot loader.
loader.grub = {
enable = true;
version = 2;
# Define on which hard drive you want to install Grub.
device = "/dev/sda";
device = "/dev/disk/by-id/ata-HGST_HUS724020ALA640_PN2181P6J58M1P";
};
initrd = {

View file

@ -9,6 +9,7 @@
./networking.nix
./secrets
./services.nix
./system.nix
./users.nix
];

View file

@ -1,6 +1,12 @@
{ ... }:
{
my.home = {
# Allow using 24bit color when SSH-ing from various clients
tmux.trueColorTerminals = [
# My usual terminal, e.g: on laptop
"alacritty"
];
# Always start a tmux session when opening a shell session
zsh.launchTmux = true;
};

View file

@ -30,6 +30,7 @@ swapon /dev/sda2
apt install sudo
useradd -m -G sudo setupuser
# shellcheck disable=2117
su setupuser
cat << EOF
@ -37,7 +38,7 @@ cat << EOF
curl -L https://nixos.org/nix/install | sh
. $HOME/.nix-profile/etc/profile.d/nix.sh
nix-channel --add https://nixos.org/channels/nixos-20.09 nixpkgs
sudo `which nixos-generate-config` --root /mnt
sudo "$(which nixos-generate-config)" --root /mnt
# Change uuids to labels
vim /mnt/etc/nixos/hardware-configuration.nix

View file

@ -1,10 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg 0bz3W8QcGaulxy+kDmM717jTthQpFOCwV9HkenFJEyo
NKeh1/JkX4WAWbOjUeKLMbsyCevnDf3a70FfYUav26c
-> ssh-ed25519 jPowng Q59ybJMMteOSB6hZ5m6UPP0N2p8jrDSu5vBYwPgGcRw
j420on2jSsfMsv4MDtiOTMIFjaXV7sIsrS+g4iab+68
-> z}.q-grease s2W<qM_Z t
n1Yfs/gmNsl/n9HtuKBIIT8iwIjYca2yxlh7Q1XAT1B+RZ8oGjW8yCPj1unbDGZL
e5BfLO3zgkEZnQ
--- FSgNKEdDeeTjCx9jN9UtOFl58mC/Lbu1PAYRGK0CZW4
U€¿+æ©jïÝ{gø`GŽ›ÆàˆQk]šóïdÐ6å˜úy5T²$Äñs~Ùh‰Ä£òÔ<C3B2>Fº¢ç%°vöÌm<C38C>
-> ssh-ed25519 cKojmg bQFr9oAnbo1rI/MpUV8wQz/Xj7iZY4ZU+Swf0nSIQFw
zama2XJ0gdvUlD2GHMhmZqHSxHe+dKSfXnHoWDcSw7Y
-> ssh-ed25519 jPowng gitUwSKTNKWLSxnwa185O7x/u0ul93g8wPESdZaKRk8
uvBIfAUkZp5sg6rfeEGvL5ZDV8m2uSEotW02kjPN3Hw
--- SZxe5f/CUZBvPQa2Sz/UBY3L68rMkIGGRuZPk7YE+Vg
¾r ú&…¥‹{~v?¨}=Ä
}+ ¿SQM[²]Œ±k MÒAàtŒÃmMë/£µLsü|Þ…m©CÀñiYC}ƒŽ‡çxŽ€

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg fpiyZo1AR5hCfk/KtbgWCTzz+05/VOUnnaHhWgXQRwc
d2w9IX/kq/T6OwQ1zImsCmzIX2yfFD8hQDbs0IW3ZIA
-> ssh-ed25519 jPowng E9R7p9NCubUQrymjnrNfEjSNIIAXrBQLogNkWsOx8xc
MrWEE5LNtOqAjnwA6byfSa1udnbUtqBy4FhdxipuA+g
--- fKgerjgGs+brvNKnrWdpmOadl34LipMT6Msqse2g3E0
Œ¡E9³ï¬KYRL-‡„°¡Ç·\EŸK{ÃÜ7âço»ïò²XÂGx<0E>ÍT’Î)Ëœôä<C3B4>6°%ˆ­LO€Tðÿ*‰™*8\£É@G

View file

@ -1,8 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg dgS4bezgtDi44R1A8am+J6zh80kUVYTo1heaxJCtzX4
F3w/62xwtqYa40NU7OvF9pnZzYz/5hACAGJfMA4e2zw
-> ssh-ed25519 jPowng lx81CK3yeNp9RjHCUFJeKYZlRzxBmXuADVBvRc13zCI
P7e75t8xU+ZkYmeQ8mmMfyZZsRdG1J8yrvSUkiWzkFQ
-> *z4/`-grease S/)a{e sFd";=
--- 15FVhqRTkoPFEeETRRyFQhsv4Fn19Ozlax0u8Zy9mNA
õ#+¥àÎvøSÈ4èá}<7D>§Rì%ίF4fnDœ˜J¹¤Z¸A¥Û™,_
-> ssh-ed25519 cKojmg O3DMSSPQP9/ehXmzs0xcCGllu7VSzhd6b4Pii8t2vWQ
Ys1nMv2384elWWGW9C8HabvwUeWu52VsQpxx9L/4/dM
-> ssh-ed25519 jPowng ft/9SX5fpG7+7gHMubaFtb+50/gfNgmaofOVq5UjRUE
xMwdFjFdkH0Li+PikaFt0WAZbFUu5daHgkfN8aQQumo
--- 7DVINvXIXdE1MRwIkeajonYsy1cp4HugCxfTeub5SXU
<¥ö¡Ãñ<ýØ{VÇ?ñfk/¤áI®"<22>ï×/5K"Џ(ì¢ùiÃÔôìñ

View file

@ -1,9 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg 1+cLlzctgcM0FnVDwMPOAqBkvMcDBRg8SvCw4djI93Y
oV2XI4f1AvM9P591kZZ6NgJXa+SDtqGzCSgc4psOmxM
-> ssh-ed25519 jPowng Ufjfh1p350XxRPg95+/DHdmnl4lC0bbzUUlaxd1Bmxc
/RHwFDSn2ov+60r1uHUigrsn99+GmmKmlk4h4T2gbA0
-> *Lc$@-grease
pzVJAHy1qRq3jUrnFV0DDO7/hwV1US4Ogf0RsrVfX0xzbr73uJ003YjieVB25LqN
--- ME7/iVevyiguyhXugbkVFGzJV0yDccyKNlWbEZa/FmY
YžŠXjb2uþnd;i0íýX]…§é0þL„PÔT~óú ƒÙ^kc”$D×ÚÛr¹úu³¶fr€e¸¸þ<C2B8>+p•¨<E280A2><C2A8>&ãw®öϨ
-> ssh-ed25519 cKojmg 0J8FMcVRf78LYG+dTOFzu3luXwhOjdOg0sx4Jxdccj4
tdrCcfcYbTZYhL18RG3goiqtyhu3NTn+fJhdIAnU5uA
-> ssh-ed25519 jPowng qlF8nkSEg5fZgai0VP5eTSlZOHyj5IcalTf+QNWITVo
O5aiZX0AJD76ixsu6i9xnnFBQANdsu3h6XzdTQ6KtKU
--- ByMQt9bnbzd8YO0Y93FIYF/lmdbYcOydkYdKxpRQujM
+堍6JNm裶遁[ Eb1p)vD究侖PL9捦€z逡<7A>煸!縺贿噮'嘥閍顖卷赿5: [控d肯峈撟M抪庱zj<7A>

View file

@ -1,9 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 jPowng BkIjie2KrwDLaZYYIguCs7TPA/wQy+YPguikuhfye0M
7viTA/EGYB/jRKQm6fFd86DMd4j+Jxsaw/xQ1T8ZKNo
-> ssh-ed25519 cKojmg t1Y8bZvPccNAX8vWQLTfCyOJIBXN515vyfFrEI2EVww
bJEjpIWrKeQrA/JfY7FRdB6hpHwR/aG4Vya1ChFNBKs
-> jK/-grease Oz.R ?;)G ],
AuHk9TcC9kl0dg8/L6UfHIk3e9fgGwSTJAJpVgInhok
--- 47z9lol5MtpX0IsO/0ggLDMcNVfl4lNNvoHUSwOU/18
)gЪeuÞ! œš- ÞTì¥YAðM+ˆãGbMe@­|A,è&ãÆE!܆p=P²=û9¹ÙP¹!ÜöQ|Ðä r
-> ssh-ed25519 cKojmg 46BI3ItrXRWMivmd/K8bmkKlrYFSr8cbehAkmwCskig
gTjYquH1hDEZ2zWD5P7gN/ejTCH8JJb8bC/VLZ3koeg
-> ssh-ed25519 jPowng 5MqfJlasDbbqlI0dX98NZzHxmYmnnpveyBxa4z48V0o
r7Yiv4+SZiDncD0Xzp5eFSP4f2yjGBOILKxEO1iT3Os
--- l43+JtT28i1YDhNX3hE3Qb7swskOBc5ghDqiyh3rU2s
Ž+)´”¯ÛPô¢nåWT,.<2E>²eÚNW€Îñ YƱkçÿF4Ê#=˜)üîò™6Ö±ÛmȵîJ<4A>ª#

View file

@ -1,9 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg lmu3MinmydRHD0A/YVRRtopermfoBC8M8cTHfVanY1s
ygrtpZZJ7aeQTblNazpoP7DdifmDxHsE3DFJsIrWX5M
-> ssh-ed25519 jPowng X0cihOc+fBtmtrkEivIHQngdYIobezXEF1x+pHqNzAw
/+sw9x1NWY0anZhDMpAywBPrR0F4XCHaF9e8j/Yo/kI
-> 32;%1s-grease
JafjuSZty6a4NSO/y4y5wHWL8Mw
--- dwCl66vdpsL0MR5NWWvg3JUnQ2QZQBeW0Dj0l5tvOKY
oi,`ÓÜ#uÄwW%PoubÚ­cy8<79>ó ƒÃÉ><¿F‰Ååq…ÂKÃÇk0Çk/<2F>hÀ¥Ÿ5势ÝF+ýu‡ •e<06>¾Ÿ²óôbãè>1QŠ2®ñwn˜WbÖB˜âî<C3A2>iŸ^xurâ†- /llùÒÀÀ-ã=°7;jã0»I×%Fi¼<69>í€ø™A;Y†ìUd]KÅI0(½ ”øAg£Ðóž^†uG:äpkJŸ:q<>¢šWSaLw¯¿Ô!ïM³4ã L/ùZŇ®¢D¶-XéUb»vÊbPó0ÇÅfÂ9êú<08> †âJ`ÃX°ôÐOÅ!s{ÙÄQAšc€c;ÏÃÑ4öMíچݹ lxH&ïéöé{é}ÁäÛzZ¦œ9ûÊXžÜ“g‰]Vϱ•0gt¡¿…žw·
-> ssh-ed25519 cKojmg u+5VWUy7eFq4boAIOhuKXZYD4mhczaUAcjz4+coVggA
QlBHHgz7uY3TVgex59yZA0XgsIeHi2WN2S+UleC7bMg
-> ssh-ed25519 jPowng IyeI6WUjF8wxe92xD3xY++4ZqXtY8divB39eLWfAtm8
eGj8w5X2ydS1LJvNSmo56xzRVoUB0iAKKs2NHX968Yc
--- hsYH9lUl3wIErJmBKzlWV+gIR5v6vgPIcNDgd0hiRGc
¹Ã@Úl<C39A>ôQûsÈ„ÿ×£©Dƒ}^{ºžá¾X)¸nYóJhXhg8wƒž´ ­ “ú°˜Ó¨ÇÇw‡y(œ¸ìê.0>|ÚPSlOÃ|ÈÊE‰õÂÙé°€¡<E282AC>BWó_ˆ³ÜÌ)|x4©„šºë\_F¶
ZÒo0=dts j<E28093>[ùŽõ0O+ÑÕRž8±‡ÕiüËçŽÜ»ˆõŒæÆdÀ«ß8j»â©ê
g¹©$x Œÿò¥Æbâ÷í<C3B7>­˜äX·¢gÂ^¼íùG¼Êô¤Ž$UÏûB*ö°é²¡£ÈÔ)[t¶ÃHa•vŸ7<>ÌÑj£âD.z¸+¬[~–õ ÁÃé9Ùý<C399>àz¼øô`sé¶,_!^YÓïʯ2H¹øS¿¼©øÅ<C3B8>øý*âñó@êjZ^ˆôæÎv~غ¶@ò<>

View file

@ -0,0 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg xRtF3XVc7yPicAV/E4U7mn0itvD0h1BWBTjwunuoe2E
OkB9sjGB3ulH4Feuyj3Ed0DBG4+mghW/Qpum9oXL/8c
-> ssh-ed25519 jPowng 1r8drqhz1yZdTq0Kvqya+ArU1C2fkN7Gg9LiWWfeUFg
cjbxntVwHvqLaJpiKs/Y8ojeb6e3/cLFcsoeuoobfFg
--- B1qA2PylJBrdZxZtCzlU2kRPvxLM+IrXTvR+ERxVtTY
"W9<57>Äbg¸©~Ì/áÕb4ãÕ†ú³ÜÔIÊ
Û}ð §ËÅË-³²ªNó±”ÑC7vWœbºØ?¦8=œÉwÆB ÃUpJClï²OÈ™³œnOÁ\

View file

@ -1,10 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg OdLtFHbHbc28rUn47vgsVvXxFNg9nF+9y9R6XOK390Y
yQQYUPQGjN2+xrSqqBYa7/zS618KrVjX5Amw2MFuSLg
-> ssh-ed25519 jPowng NwUjiLtiXVi6XFmht5l1CxEs3gm0oN4vHYwDZyda7Q4
di6znVjNRO6QdqteVNkeot5Ko2NwWLe6v+zVR3f+o10
-> 4Vx%\(-grease ^^Z>EC91 R 2BJ d48Wip*s
yPiBgChRF31XgxccQFLO3MzRL7+5s29sfRoF3W1yUX6Bu59MpxD4D+n/jhLcxSH/
CxW7KaiOctNmPm5tWh6qjmgQ+V4bcAji5vo4FKs40l56cfyueEJj+Q
--- WUGF28zqK9E1AlOeeCtSHxFg6ikRy85gOoLtBd4m0y0
.|…rr>©†ðìì1ÅÆ2SÉž.×hw<12>w qºš%i˜øé *U^­)Öè'qžµO2ÓœümòQÝ7˜¯m`
-> ssh-ed25519 cKojmg l5lOlGnbvQ4D2kaSj1dd8Xr+btlNbTkT0SxSz02Vr1E
Cjy73yKL1N8LnjRXXLpxX+wIOFCa8wrG44VjXUND1lI
-> ssh-ed25519 jPowng nYHfkP9dRkxu4Fqh8MgrbdZAc8gk+VGDyxIV6RsSeEM
rKKi1NDoKMMzQ+kUs5ZX4zMqRBI0QwGY7q6K/L9+dLI
--- Umv3UCtXlApug7uuqmwbQN38i8Lx9/b0uhLgbc3OdZM
äBLsś ?ÖsÓ“s<E2809C>2Îy
R!<fü9txB7dň<13>™ÚŠň^©ô É‡LJ&ńW €<©e]
ţ/$$

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg uz/Zf2uv+q7f3CVEoDuThHdqKE12lgHMDaORjZR/R2M
HqsqZouRxocuHOic08c2oURw2I95BM9CzgEv7FPsWwM
-> ssh-ed25519 jPowng N0HG0fB19MUa2fOIdpKxOZOWjdUgEmKOjIP4hkx1JFo
MAgTWh9d5d75iuzfA2eQ5P8ltSXZJ42dAT82YLGy0hs
--- g9KaXbUtmB05NWkGDSyWxEzo9woQaHHb+TtpvXfcpM4
cÓX× ȧ˜5 b2¡•¬-€‹Ñ"RSÒI¦&ÌÍQøtÒ[ QZ¨F¦kô.POè ?Lü¤StãÖ-Kj

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg 8hV+BAKLsq8H/cxsklzuK2Q0/CqwjW6q8xMMJ0EaMDI
LUjA2/qZAAeYjW6TtvmifBUo/WGigKwed6p7RnGjRyA
-> ssh-ed25519 jPowng wrJBGPfY2a8HLoqO12/YIzCB40tZmbAlFTVrDrxrCnE
9ARASO4ZPEyQoBIrs/u8FovkzugQ4fIrZObUVBZ+UAs
--- WKMVJ4dhRAUelxXc7bJ6+UNOSrHxI4LhPo3i0RaHk7A
ˆÌ˯®9QŸ5 J‡i£¾)¦TS<54>¶8õ+ú®3ñŽ |“&ç"qFF+…í¬ WjÏËäÂMOßV×'¾\«àvK$„52˜î¥Ú¾í,lû,̹O§gßÚ¬L78!îQðR$«iöćͰ8>°ñBФbÑ„•ÌÃfDc/qWDÅ'g9

View file

@ -1,10 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg zhpo89xef68JoeOFWzhdFshrj2BXXUCFPMLVJzv6EyE
fmJxJi5rmyai9qGwDo7iHg4BrObGre96KCpl+g91O6I
-> ssh-ed25519 jPowng INA6EZdy4J1p3QY5mfVOQXiLdOjIDaZR+CZMP+GfkXM
8Nf5soaxY5SEzeJca5kaJkx7ByOvc4NkJVetB7wpEmo
-> xjK'w-grease
f5v0cvlt4JbHlAwDOob86qOInWdlN/oohTg
--- NTGv4rr+MhJ/YeZhVHOjoS1V+zCHFf2itJYfK36R+wE
š×—®JÚ dő oŞę'YFUź@
r7”ă“_N$‰˙Ź–č‡>‚ˇę]hq»-¨F۰qX˙?Î| Ę
-> ssh-ed25519 cKojmg 1hbRAuAGrTy6nmkAq+UWua8weywphZsTIGF68YQEOlQ
92Q7uIKv1EiO73wMh53jrTuEkzP6ziBmX9SWXCl4d3w
-> ssh-ed25519 jPowng aPb9v/S/mLW95Qom+swvasqY878RxpxxOkMJA2wb6nY
qu/dzcqciqKzNc28HqFMHA1XnrJy+/wWgbfM1+BrlkE
--- 8PXOozvZzNZQD2OT4a+0XuIQauzUGSvovdfDugmp+bc
x²Žê Ã>ùý²ç¦©ðóÁÇ_ÏC9d™T5ŸûKzЄqØcZ©°É¾pŒš¾¡ ใºv
)Œ³õ²¥

View file

@ -1,10 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg tZwn2usN6K62oS4vBa6boh9zEp/+cS4chP8boXG6SH4
Fr3kV8gUDoiDqMxPYWsHyww8umYhQEKhqbVBiVw5NeI
-> ssh-ed25519 jPowng wRbJl4G85obH/GluQBBsXE7MOvooEui65eqHfurvuQs
KqVZMBSyHhkayEdwI6ocmA4qhHY9zYJvg1CEKM1SOa0
-> 2E"/OFW-grease o Qp3HFe^
bGhCNicPqt7txqxUiEWXCFs1OuQLqOqHmjHSqYQv919dqYep/xBXzi/aRf3dsdvh
TCJCTvZG31Qxvikp
--- xKJGbdVp+Z5h0vCBleSF2zYYYd2S5i0y4szNqjRwrDY
Tª /N¯<4E>¨¹i7m4#³MhiñP¹šÒÞ›Á¥-ÏgI÷ñ±%@E†(iÿ7·ý©ýYg¦k±´"+㸠Àª(þ]o¨¸ý†ð<E280A0>@báÊÞ§+Ï[Y"ÿÌBóóCR[ >-Ë.4d…¤b9v
-> ssh-ed25519 cKojmg r3ZUTfSNcHc1TS2fVtk99Y2xJMMunkwkcR0dQIdiCi4
LICSnzAaooGy6x4wt0vNM6YtQ4S17QohZNt7lfVrD6Q
-> ssh-ed25519 jPowng KLU68ws4lemr0wWHxm8H8pf1SQAoUZTN4QSPzk2PyHk
6pjH1pI956oaf9ZIHPPq8p3g/mZC5GxWhWkT54Wohf0
--- cAQbniTwwtTftfXU/dGtA69yF/hh8iB97vHxvkIZMMo
°c#Ž=^Ì~?5ú-w—NT†Ì¡<C38C>¨+¶¨Ä!z¥<7A> " Zö"2ºëðù×M!pž5×V¬ÈÛjçΡѡŽâ¥âL¹ÁÌyóÐŹúš› n÷ÄŠ8zQö°+¨ËÁØ©9WSµ§<C2B5>Æ0¨u}YÚ

View file

@ -1,9 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg 8rcBI7fYHuA3jO6EzJNFaAj2niIApKDt1HQEv61AKTs
ANxkIX/CeI7t7Zqp6wmjt/D194Z+xpeiidb+qvYzoQU
-> ssh-ed25519 jPowng oruewwTM9X/HjjcmOPcQVdp02rQBlgJPdzvlAffs3T0
MrO0kaNhjgOkNHuz3NrIMWXNrXOHH9dT/Fk6hoQNKyY
-> COK%H7-grease
6yfI90QurOKlM+kgpW8KZ/iBzDYD9yhNmjG1LQ
--- uArz8eHg8sLO0sdlkM6cELFh+FHiI5BrM0+iXJxxiDo
¿vývû´ÊNÊbæ@Ÿ¡Â<C2A1>FÛMMíYËÆíÌ&‰’/%¤¹Ñm¨®ØtÁÖ“ªd†h„­|¡ðŒß©8¼Ž Ú½¨9®<11>Cã¯/Å
-> ssh-ed25519 cKojmg bICZUDqk/C2divEZu2lxUDsrtS1inSbDbS8hxJSJfHc
FsfueyP6WCesAu5EcXIxxtvbb8RX09qNTN9GvuhYuTw
-> ssh-ed25519 jPowng Uujsu6c+QTXqCNi6c+zxk5tf0UQcG+Qm/SZF4dzSKCY
RPVNNNauz73A8kWA0VSQiMWCerUkxPoXG2MUrFly3Bc
--- 8h4hGasOwZxk+i5aQfg6AzdA1G4wROhxz2rmM9u41b8
{R<>ラ=42<34> y<>咨ッ眺テj嚀廁<E59A80>WQ▽隯%畊ス宅 顕褜返<E8A49C>弁K<E5BC81>蘊マFョモ?埴膕K歯「

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg nJbOfp0/wmFOZLzcWjoGB7wEB8e56aO1NntSmn5KomU
/Vio4Z/t7IPJrdzdwUPidVH3wrouSkwRzNHP0T4z3x0
-> ssh-ed25519 jPowng QXg/xqs7/VfkYQg3X77w4i53q64bL9oYeTxqb9NVhiQ
sMHIXlmrIxtIr+s0X4lBqev/PPd3AKD5P7AP5K4NeJg
--- gzTn+6+aa4Ptic1lsvSt+r3IEBysHrvMMIyONogMDF0
<EFBFBD>ÏÂ<EFBFBD>Ë®UE_í</¯çQ·Ü+U“AГMÄÿ/kï×dAL/”úÕįÍoæ\XïEDÇÑfã\ièĽàpF„`#¬nx1î<31>ûÞèDëàÂË5CéЦ&fòB»q${Gg…Aqˆ³@üVu!Cc…R\ªÖ¨

View file

@ -12,6 +12,8 @@ in
{
"acme/dns-key.age".publicKeys = all;
"aria/rpc-token.age".publicKeys = all;
"backup/password.age".publicKeys = all;
"backup/credentials.age".publicKeys = all;
@ -35,6 +37,9 @@ in
owner = "matrix-synapse";
publicKeys = all;
};
"matrix/sliding-sync-secret.age" = {
publicKeys = all;
};
"miniflux/credentials.age".publicKeys = all;
@ -42,25 +47,35 @@ in
owner = "grafana";
publicKeys = all;
};
"monitoring/secret-key.age" = {
owner = "grafana";
publicKeys = all;
};
"nextcloud/password.age" = {
owner = "nextcloud";
publicKeys = all;
};
"nix-serve/cache-key.age".publicKeys = all;
"nix-cache/cache-key.age".publicKeys = all;
"paperless/password.age".publicKeys = all;
"paperless/secret-key.age".publicKeys = all;
"podgrab/password.age".publicKeys = all;
"pyload/credentials.age".publicKeys = all;
"sso/auth-key.age".publicKeys = all;
"sso/ambroisie/password-hash.age".publicKeys = all;
"sso/ambroisie/totp-secret.age".publicKeys = all;
"tandoor-recipes/secret-key.age".publicKeys = all;
"transmission/credentials.age".publicKeys = all;
"vikunja/mail.age".publicKeys = all;
"wireguard/private-key.age".publicKeys = all;
"woodpecker/gitea.age".publicKeys = all;

View file

@ -1,10 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg mP2H3PWJN6Pv3q6C2wci3KnXjtFAIiuGy0YH0sGIy2g
f43QqyUQfTYznszub47kgc2Mz95zVScTDkwnG3INi9U
-> ssh-ed25519 jPowng fENbu7+FZ1mnQQHQCLm1spLHmsQGlRoJResUJtGzYkY
hX+AqCkLCca6m/aKtGCThi7/mCCz/TZQNJNOlOmlqyA
-> J<-grease
n7+CPRr4oazWnE7yzpJN2ZAI4QrGsAerloP4wNeebjQDx8+IxJq1JE0g3Yi0RxzN
chDccuSPLYk45Ov+SD/qqqFZlQ
--- p81HYw3LFj+qz2kiZsDcevM4ZBfvN743P9Jdi7J9XkM
¢ìÛ±S·7 <EFBFBD>ý£÷ÜãV»»Bðßâø±³ˆ¶ïO‰lEt˜Á…šqý</Ç—Ø©9²ã(ØP†$Wƒ0h;÷‰±àJy¯feø >·_D,PºVFp\æ"AM}èg?<3F>ÿ<EFBFBD>Ý/\²Ä;ùy ¬Óš(<28>ÑSñKË
-> ssh-ed25519 cKojmg Froxrdh4H2Bsj4X2xicyBXHPRlbkRJAOztoTfzxItSM
FnsLS2QYm8mJUO+c152FieLCFkALxxwQLnY4PAj8zsU
-> ssh-ed25519 jPowng pKl4p02M+U5JsiOnM2wXL5bkPwsI3IHjlTutlvez3zM
NSuOFsyV8JqtTq97lNzacJnJ3YZgWp53XxU3mjUlcMQ
--- 2TK2ViFblmDheaYdat/GF0ze1wVsla1EPLaeRdMM4Gs
®àµÕ¨ENÜžämÂÛ2uÂ~Ju¼b´´t[Ý$Tñþ^2°<E28093>½jœÙÜi@xªÒ¸*İg[MÞH½½Xš!”‰6Áez¼…¥DW]ÓÕ<‰` XÛâêÁÜÄPóéý÷ÃÞ
¶¥q*Îo¼½ÃÑ$‚åÓ<²

View file

@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg o5UoCsI4rvzJ84AQsumbyEngllUcSQB0lZw9F0zK82A
xRcqV+QOqvpeMZiNCdWVhiRaEBayf3cv65xcrIKTfyI
-> ssh-ed25519 jPowng zFZTStqeaFy+HJGN3EV29+Qtf+oaXTKsZNnhetvlNz4
5dsAyBzbJ3If1KO9vvrO5UHvFfKq154xTvQbu50TFGc
--- /MjYRy6PXkzAcTMMqt84/+SkKFcuGbdFZ3BXHZ15yzY
/\œËÃQ'K0
¨5]QzO·\à®ÿÞ•L <06>úf“^—÷©<˜+ÌC<C38C>ø¼Þvƒ ì†)"6Ú·?ésoÀô§ÂÐH<C390>ŠÿÔûxÇ÷7}õ³Èv¸ûû1&Ð" ¨¦FËåÙ%Á%ÕÖ|îä'„õŽ#ÛdV<64>€žUî)?€þ÷ÿ—ýð¸pþÑÅ}¬odS×Á§|ø¹Tþ;É‹]fM˜® xä°>h3ÛÚÓ{·Wí.²1&ºLö)õß±=k0ÖSSbœ|ÊV™)Tìû©ïBý:ŽÅë𗯾».½lrI“fè8ø!~ËJe§<·3?;—òk$H¾šÈk +å6¼¤Â¯“ÿ`#V˜ÒO<C392>»tî0à
Ó

View file

@ -1,10 +1,8 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg +WwRpd2MzycutQFXyLsr2+GzSgF67Z6UuvyqYZaLd3w
sppt8HzaZP3yxnvnhzjl18Trnz8g3VyXJ6CaVBWd7jA
-> ssh-ed25519 jPowng wanoqGB7T8bim/WZ4IAYViFQoGzaIZSgeoTr3YKpeTY
ihDAdGa1XVW/qQz40V1v7a7iK7tu0EHMa7ayIogpcRw
-> l-grease |PIcZ NIr >0;*
4o8o0bevQZ6uDSx1WxxlDCURbFCM+yK1XPdrb9aztCSvG2a+ne78E42l5rBcoH7I
m51A8uWS4nSj36N/76v6K4kelxKzWUg
--- O6cGbTAVbDcdmPHf7UzfZiyiRtu1yfL4sBI+CkJA1qw
ýqýŐ$ň`żw'čS“X¸]Ąá÷ř®úî…?¤6Đ/ĆN(Bžň N«a” HŽ7żí•I<E280A2>ú÷Ŕoz‡/4:sK",7J
-> ssh-ed25519 cKojmg KslHl4v8yCsKZn5TduLgpTfpTi1uOInC9N2e8Ow83FI
NzcJJr8kw1ykAdWRZOeWdNhx0BTgE7FwTKcge+yLJ/w
-> ssh-ed25519 jPowng YGWcOai0A9l2HDZyV0GtD8kEbY/xTUssODFBcseWAkA
nJaHXkipFSHdyektoKV5y1jQrjkvnU7pwZwAymiQm7M
--- IgWkDulol1jRa+pcx7DbEy5pvC+2nrRJHsdQVPvPur0
Bb<ÅŒb!ÏëE?:ÇÓô=÷srJC<4A>œüKz5ø®Ô{Æ4`¾&N0€ÕÈö¹57ñüví©+´1
+(d§á¡{ ìQŠÙ

View file

@ -1,10 +1,7 @@
age-encryption.org/v1
-> ssh-ed25519 jPowng yz0I+AazPmamF7NOnwYNrPE/ArarU01jd2mVDJUPSTY
6Y/YQ7gb8cAZf3zT9SKOorvfUnU7kYff+gHh8fG2mY8
-> ssh-ed25519 cKojmg 0FZU9v8eHsVeE+EoX9Y4IgfIj/8+45waPaSnSDb961I
L6SzJoh5xqai45scoVAa6v9zslBGFYNnZY044d470uQ
-> I[G-grease p
AMRQY1alSzHi/PLL80kcvnM1Z9YNfoUo9u5alWXYMyzrRsg+vXjMuBvAXg3fmnzr
wdOowTYMRV+jEG8vzkcQTsv+f7JIyo4DvOOaPyGfWMl1
--- ih3IAFPcN1JP3FP1vcRGnPrfk91yrnIX0m/Szkbcf7Q
ÑmW„rµœ_\)Ͱ]QЦxMÃs/݃ÎݪäœóÍ6óº“k±äÅY§xïMy¶ J¿¸GßÃ)i2_'ÖœHF€þ.âg_Îe5³#uätñØÕ 7j„ŽPñ²'TÞ¥8´•\IàW«UùäK­°1Úº9½è
-> ssh-ed25519 cKojmg tAW2hbBSxsael6cdbN+vI4h1/PMNrWYct8cppCAasn0
cex/wBTviSIXc8clNm5PGltTYa1Q5PwqlX4BGsNHiyU
-> ssh-ed25519 jPowng YxfhtpytvuhIARQAaJ0w94aOZiGNUOBR0pF+Sp80D2k
nMon/VdYUQTs6LFccDGeIKWeNYib1wwtFmEYZkDZxg0
--- giL477X0+uZ2Ocvbixt5f5kNc1laj5P79oW8P9XsNP0
¨Ãd>ò±cE?nb¹vš_²'2ûûà³<1B>Õµ¥_6Pu:ÊusºE“8õ“ØÏ“xuڶ̪…Îxù̧ïžC[†®°ˆÁ .õêŽ6‰¯  qÌÀÍîJ°Ä5GäKÌ)N<ÊyYÉ¥tX=l7T´2­¨ùRÙ

View file

@ -28,12 +28,6 @@ in
enable = true;
libraryPath = "/data/media/library";
};
drone = {
enable = true;
runners = [ "docker" "exec" ];
secretFile = secrets."drone/gitea".path;
sharedSecretFile = secrets."drone/secret".path;
};
# Auto-ban spammy bots and incorrect logins
fail2ban = {
enable = true;
@ -70,6 +64,9 @@ in
mailConfigFile = secrets."matrix/mail".path;
# Only necessary when doing the initial registration
secretFile = secrets."matrix/secret".path;
slidingSync = {
secretFile = secrets."matrix/sliding-sync-secret".path;
};
};
miniflux = {
enable = true;
@ -80,6 +77,7 @@ in
enable = true;
grafana = {
passwordFile = secrets."monitoring/password".path;
secretKeyFile = secrets."monitoring/secret-key".path;
};
};
# FLOSS music streaming server
@ -92,9 +90,9 @@ in
enable = true;
passwordFile = secrets."nextcloud/password".path;
};
nix-serve = {
nix-cache = {
enable = true;
secretKeyFile = secrets."nix-serve/cache-key".path;
secretKeyFile = secrets."nix-cache/cache-key".path;
};
nginx = {
enable = true;
@ -121,7 +119,13 @@ in
secretKeyFile = secrets."paperless/secret-key".path;
};
# The whole *arr software suite
pirate.enable = true;
pirate = {
enable = true;
# ... But not Lidarr because I don't care for music that much
lidarr = {
enable = false;
};
};
# Podcast automatic downloader
podgrab = {
enable = true;
@ -130,17 +134,34 @@ in
};
# Regular backups
postgresql-backup.enable = true;
pyload = {
enable = true;
credentialsFile = secrets."pyload/credentials".path;
};
# RSS provider for websites that do not provide any feeds
rss-bridge.enable = true;
# Usenet client
sabnzbd.enable = true;
# Because I stilll need to play sysadmin
ssh-server.enable = true;
# Recipe manager
tandoor-recipes = {
enable = true;
secretKeyFile = secrets."tandoor-recipes/secret-key".path;
};
# Torrent client and webui
transmission = {
enable = true;
credentialsFile = secrets."transmission/credentials".path;
};
# Self-hosted todo app
vikunja = {
enable = true;
mail = {
enable = true;
configFile = secrets."vikunja/mail".path;
};
};
# Simple, in-kernel VPN
wireguard = {
enable = true;

View file

@ -0,0 +1,12 @@
# Core system configuration
{ ... }:
{
my.system = {
nix = {
cache = {
# This server is the one serving the cache, don't try to query it
selfHosted = false;
};
};
};
}

View file

@ -24,4 +24,10 @@ in
# (any -> value)
# [ any ]
mapFilter = pred: f: attrs: filter pred (map f attrs);
# Transform a nullable value into a list of zero/one element.
#
# nullableToList ::
# (nullable a) -> [ a ]
nullableToList = x: if x != null then [ x ] else [ ];
}

View file

@ -0,0 +1,27 @@
{ config, lib, ... }:
let
cfg = config.my.home.bitwarden;
in
{
options.my.home.bitwarden = with lib; {
enable = my.mkDisableOption "bitwarden configuration";
pinentry = mkOption {
type = types.str;
default = "tty";
example = "gtk2";
description = "Which pinentry interface to use";
};
};
config = lib.mkIf cfg.enable {
programs.rbw = {
enable = true;
settings = {
email = lib.my.mkMailAddress "bruno" "belanyi.fr";
inherit (cfg) pinentry;
};
};
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.home.calibre;
in
{
options.my.home.calibre = with lib; {
enable = mkEnableOption "calibre configuration";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
calibre
];
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.home.comma;
in
{
options.my.home.comma = with lib; {
enable = my.mkDisableOption "comma configuration";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
ambroisie.comma
];
};
}

View file

@ -1,29 +1,58 @@
{ config, inputs, lib, ... }:
let
actualPath = [ "home-manager" "users" config.my.user.name "my" "home" ];
aliasPath = [ "my" "home" ];
cfg = config.my.user.home;
in
{ ... }:
{
imports = [
inputs.home-manager.nixosModules.home-manager # enable home-manager options
(lib.mkAliasOptionModule aliasPath actualPath) # simplify setting home options
./aliases
./atuin
./bat
./bitwarden
./bluetooth
./calibre
./comma
./dircolors
./direnv
./discord
./documentation
./feh
./firefox
./flameshot
./fzf
./gammastep
./gdb
./git
./gpg
./gtk
./htop
./jq
./keyboard
./mail
./mpv
./nix
./nix-index
./nixpkgs
./nm-applet
./packages
./pager
./power-alert
./secrets
./ssh
./terminal
./tmux
./udiskie
./vim
./wget
./wm
./x
./xdg
./zathura
./zsh
];
config = lib.mkIf cfg.enable {
home-manager = {
# Not a fan of out-of-directory imports, but this is a good exception
users.${config.my.user.name} = import ../../home;
# First sane reproducible version
home.stateVersion = "20.09";
# Nix Flakes compatibility
useGlobalPkgs = true;
useUserPackages = true;
# Who am I?
home.username = "ambroisie";
# Forward inputs to home-manager configuration
extraSpecialArgs = {
inherit inputs;
};
};
};
# Start services automatically
systemd.user.startServices = "sd-switch";
}

View file

@ -0,0 +1,57 @@
#shellcheck shell=bash
# shellcheck disable=2155
use_android() {
if [ -z "$ANDROID_HOME" ]; then
log_error "use_android: 'ANDROID_HOME' is not defined"
return 1
fi
_use_android_find_latest() {
local path="$1"
local version
version="$(semver_search "$path" "" "")"
if [ -z "$version" ]; then
log_error "use_android: did not find any version at '$path'"
return 1
fi
printf '%s' "$version"
}
# Default to the latest version found
local ndk_version="$(_use_android_find_latest "$ANDROID_HOME/ndk" || return 1)"
local build_tools_version="$(_use_android_find_latest "$ANDROID_HOME/build-tools" || return 1)"
unset -f _use_android_find_latest
# Allow changing the default version through a command line switch
while true; do
case "$1" in
-b|--build-tools)
build_tools_version="$2"
shift 2
;;
-n|--ndk)
ndk_version="$2"
shift 2
;;
--)
shift
break
;;
*)
break
;;
esac
done
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$ndk_version"
export ANDROID_ROOT="$ANDROID_HOME"
export ANDROID_SDK_ROOT="$ANDROID_HOME"
export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME"
PATH_add "$ANDROID_NDK_HOME"
PATH_add "$ANDROID_HOME/build-tools/$build_tools_version"
}

View file

@ -0,0 +1,69 @@
#shellcheck shell=bash
use_pkgs() {
if ! has nix; then
# shellcheck disable=2016
log_error 'use_pkgs: `nix` is not in PATH'
return 1
fi
# Use user-provided default value, or fallback to nixpkgs
local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"
# Additional args that should be forwarded to `nix`
local args=()
# Allow changing the default flake through a command line switch
while true; do
case "$1" in
-b|--broken)
args+=(--impure)
export NIXPKGS_ALLOW_BROKEN=1
shift
;;
-f|--flake)
DEFAULT_FLAKE="$2"
shift 2
;;
-i|--impure)
args+=(--impure)
shift
;;
-s|--insecure)
args+=(--impure)
export NIXPKGS_ALLOW_INSECURE=1
shift
;;
-u|--unfree)
args+=(--impure)
export NIXPKGS_ALLOW_UNFREE=1
shift
;;
--)
shift
break
;;
*)
break
;;
esac
done
# Allow specifying a full installable, or just a package name and use the default flake
local packages=()
for pkg; do
if [[ $pkg =~ .*#.* ]]; then
packages+=("$pkg")
else
packages+=("$DEFAULT_FLAKE#$pkg")
fi
done
# shellcheck disable=2154
direnv_load nix shell "${args[@]}" "${packages[@]}" --command "$direnv" dump
# Clean-up after ourselves (assumes the user does not set them before us)
unset NIXPKGS_ALLOW_BROKEN
unset NIXPKGS_ALLOW_INSECURE
unset NIXPKGS_ALLOW_UNFREE
}

View file

@ -33,13 +33,10 @@ in
enable = true;
package = pkgs.firefox.override {
cfg = {
enableTridactylNative = cfg.tridactyl.enable;
};
extraNativeMessagingHosts = with pkgs; ([ ]
nativeMessagingHosts = ([ ]
++ lib.optional cfg.tridactyl.enable pkgs.tridactyl-native
# Watch videos using mpv
++ lib.optional cfg.ff2mpv.enable ambroisie.ff2mpv-go
++ lib.optional cfg.ff2mpv.enable pkgs.ff2mpv-go
);
};
@ -57,8 +54,8 @@ in
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false; # Disable pocket
"extensions.pocket.enabled" = false; # Disable pocket
"media.eme.enabled" = true; # Enable DRM
"media.gmp-widevinecdm.visible" = true; # Enable DRM
"media.gmp-widevinecdm.enabled" = true; # Enable DRM
"media.gmp-widevinecdm.visible" = true; # Enable DRM
"signon.autofillForms" = false; # Disable built-in form-filling
"signon.rememberSignons" = false; # Disable built-in password manager
"ui.systemUsesDarkTheme" = true; # Dark mode

View file

@ -22,8 +22,8 @@ bind ;c hint -Jc [class*="expand"],[class*="togg"],[class="comment_folder"]
bindurl reddit.com gu urlparent 3
" Only hint search results on Google
bindurl www.google.com f hint -Jc #search div:not(.action-menu) > a
bindurl www.google.com F hint -Jbc #search div:not(.action-menu) > a
bindurl www.google.com f hint -Jc #search a
bindurl www.google.com F hint -Jbc #search a
" Only hint search results on DuckDuckGo
bindurl ^https://duckduckgo.com f hint -Jc [data-testid="result-title-a"]
@ -69,8 +69,6 @@ unbind <C-f>
" Redirections {{{
" Always redirect Reddit to the old site
autocmd DocStart ^http(s?)://www.reddit.com js tri.excmds.urlmodify("-t", "www", "old")
" Use a better Twitter front-end
autocmd DocStart ^http(s?)://twitter.com js tri.excmds.urlmodify("-t", "twitter.com", "nitter.net")
" }}}
" Disabled websites {{{

View file

@ -20,19 +20,19 @@ in
};
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
config = lib.mkIf cfg.enable (lib.mkMerge [
{
home.packages = with pkgs; [
gdb
];
xdg.configFile."gdb/gdbinit".source = ./gdbinit;
})
}
(lib.mkIf cfg.rr.enable {
home.packages = [
cfg.rr.package
];
})
];
]);
}

View file

@ -7,6 +7,9 @@ in
{
options.my.home.git = with lib; {
enable = my.mkDisableOption "git configuration";
# I want the full experience by default
package = mkPackageOption pkgs "git" { default = [ "gitFull" ]; };
};
config.home.packages = with pkgs; lib.mkIf cfg.enable [
@ -22,8 +25,7 @@ in
userEmail = mkMailAddress "bruno" "belanyi.fr";
userName = "Bruno BELANYI";
# I want the full experience
package = pkgs.gitFull;
inherit (cfg) package;
aliases = {
git = "!git";

View file

@ -1,8 +1,12 @@
{ config, lib, ... }:
let
cfg = config.my.home.x;
cfg = config.my.home.keyboard;
in
{
options.my.home.keyboard = with lib; {
enable = my.mkDisableOption "keyboard configuration";
};
config = lib.mkIf cfg.enable {
home.keyboard = {
layout = "fr";

View file

@ -8,7 +8,7 @@ let
realName = lib.mkDefault "Bruno BELANYI";
userName = lib.mkDefault (mkMailAddress address domain);
passwordCommand =
lib.mkDefault [ "${pkgs.ambroisie.bw-pass}/bin/bw-pass" "Mail" passName ];
lib.mkDefault [ (lib.getExe pkgs.ambroisie.rbw-pass) "Mail" passName ];
address = mkMailAddress address domain;
aliases = builtins.map (lib.flip mkMailAddress domain) aliases;
@ -18,8 +18,6 @@ let
himalaya = {
enable = cfg.himalaya.enable;
# FIXME: try to actually configure it at some point
backend = "imap";
sender = "smtp";
};
msmtp = {

View file

@ -9,7 +9,7 @@ in
settings = {
notify-cmd =
let
notify-send = "${pkgs.libnotify}/bin/notify-send";
notify-send = lib.getExe pkgs.libnotify;
in
pkgs.writeScript "mail-notifier" ''
SENDER="$1"

View file

@ -13,6 +13,8 @@ in
scripts = [
pkgs.mpvScripts.mpris # Allow controlling using media keys
pkgs.mpvScripts.mpv-cheatsheet # Show some simple mappings on '?'
pkgs.mpvScripts.uosc # Nicer UI
];
};
};

Some files were not shown because too many files have changed in this diff Show more