Compare commits

...

1588 commits

Author SHA1 Message Date
2bf5ae32cf nixos: services: add thelounge
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-08-03 22:32:04 +02:00
6d9ed122b0 nixos: services: matrix: add Facebook bridge
I probably won't actually use it, after test-driving it quickly.

But now that the effort has been expanded, might as well keep it if only
as a future reference.
2025-08-03 22:32:04 +02:00
619010970b nixos: services: matrix: remove obsolete comment 2025-08-03 22:32:04 +02:00
0032beb7ec nixos: services: matrix: add admin interface 2025-08-03 22:32:04 +02:00
f907c97ccf nixos: services: matrix: fix proxy to synapse
I want to make use of the `/_synapse/matrix/` sub-path, so just proxy
the whole of `/_synapse/`.
2025-08-03 22:32:04 +02:00
25106bee3c nixos: services: matrix: simplify VHost 2025-08-03 22:32:04 +02:00
f3964b07a0 nixos: services: matrix: simplify listeners 2025-08-03 22:32:04 +02:00
dc3f5c28d8 nixos: services: matrix: fix element-web config 2025-08-03 22:32:04 +02:00
f2e263ff82 nixos: services: matrix: refactor well-knowns 2025-08-03 22:32:04 +02:00
7bef96197f hosts: nixos: porthos: secrets: update cross-seed 2025-08-03 22:32:04 +02:00
4b7c6c1f5e pkgs: comma: fix 'nix-locate' invocation
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-07-29 16:13:58 +00:00
2a515754a2 home: zsh: use absolute path to 'XDG_CONFIG_HOME'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The path handling has been fixed upstream, which makes this module more
readable.
2025-07-27 20:49:36 +01:00
add7967685 flake: bump inputs 2025-07-27 20:49:36 +01:00
13b61346f5 home: tmux: increase history scrollback
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Even *longer*.
2025-07-16 14:50:16 +00:00
979ae901c4 flake: bump inputs 2025-07-16 14:50:16 +00:00
2473bca167 home: vim: telescope: remove LSP handlers
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The plug-in was broken with the update to 0.11, and I would like to try
using the built-in quickfixlist-based handlers for a while.

This reverts commit 8d4a1e61b4.
2025-07-11 14:27:51 +00:00
b093faf00d nixos: services: tandoor-recipes: use automatic DB
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-07-08 10:42:13 +00:00
8d809e3ac3 flake: bump inputs 2025-07-08 10:40:08 +00:00
66ec807dc6 hosts: nixos: aramis: home: use 'trgui-ng'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It looks and works much better than the old one.

Unfortunately, it's a Tauri app.
2025-07-02 14:01:18 +02:00
5d87223970 nixos: services: transmission: use 'trgui-ng'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I like it much better than the built-in UI.
2025-07-02 13:26:22 +02:00
d618406516 nixos: services: use 'postgresql.target'
This is now the more correct dependency to use in service definitions,
to guarantee read-write access with users and permissions.
2025-07-02 13:24:19 +02:00
03bb627770 flake: bump inputs 2025-07-02 13:23:34 +02:00
112e340361 home: do not hard-code username
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The flake module already sets it with `mkDefault`, making it easier to
override it for a specific host.
2025-06-17 09:29:30 +00:00
1b275e1a8a flake: bump inputs 2025-06-17 09:29:30 +00:00
971f905813 nixos: services: mealie: remove DB settings
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Looks like I missed them in the original commit to migrate to
`database.createLocally`.
2025-06-09 13:52:32 +02:00
151570ccca flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-06-09 10:36:33 +00:00
98d39717e2 home: direnv: lib: don't erase pre-existing venv
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out `uv venv` isn't idempotent, it removes the existing virtual
environment by default.

Thankfully, there's a flag to fix it.
2025-05-31 22:39:25 +01:00
a67a54bda2 nixos: services: paperless: use structured setting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The module should stringify it to JSON automatically, so might as well
use the more readable option.
2025-05-31 22:56:30 +02:00
9751fdb888 hosts: homes: bazin: disable 'atuin' package
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Same as on `mousqueton`.
2025-05-27 11:39:15 +00:00
24407448d4 hosts: homes: mousqueton: disable 'atuin' package
The system-provided package is built without its sync functionality.

To ensure the module works as written, I can't use `pkgs.emptyDirectory`
for this unfortunately...
2025-05-27 11:38:09 +00:00
c1e2114c57 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-23 22:57:41 +01:00
97bcc5f34e hosts: nixos: porthos: secrets: update cross-seed
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-22 16:13:55 +02:00
f14f5c7f8a flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-14 18:51:12 +00:00
5b545a28f1 nixos: services: mealie: use automatic DB setup
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-09 00:02:07 +02:00
1dc65a37e7 nixos: services: paperless: set proxy settings
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-08 23:29:30 +02:00
a997d36964 nixos: services: paperless: fix formatting 2025-05-08 23:22:35 +02:00
0c5836bc56 nixos: services: paperless: use 'PAPERLESS_URL' 2025-05-08 23:22:11 +02:00
77839ab2ef flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-05-08 13:29:35 +00:00
8a8e4f93a5 flake: home-manager: remove obsolete comment
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-05-07 17:16:44 +00:00
07d8f5a03f flake: nixos: use 'nixpkgs.hostPlatform'
Some checks failed
ci/woodpecker/push/check Pipeline failed
This is the proper way to set `system` nowadays.
2025-05-07 17:46:01 +02:00
a9ba93f834 home: delta: assert git is enabled
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-05-07 11:27:12 +00:00
d2a8894eb2 home: wm: i3: make 'firefox' history float
Some checks failed
ci/woodpecker/manual/check Pipeline failed
2025-05-05 18:06:46 +01:00
22f97b4ac7 home: vim: lua: lsp: configure inlay hints 2025-05-03 13:56:12 +01:00
921d604ebe hosts: nixos: porthos: secrets: update cross-seed
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-05-02 22:35:33 +01:00
e3243ebe80 nixos: services: nextcloud: simplify DB handling
Some checks failed
ci/woodpecker/push/check Pipeline failed
I *think* the option didn't exist when I originally used this module.
2025-05-02 17:59:06 +01:00
4b6f62b25a home: gpg: fix deprecated config
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-04-30 21:39:39 +01:00
c5be292dfc nixos: profiles: wm: fix i3lock PAM service
This was announced as a breaking change, and would lock me out if not
set.

I wish the transition went a bit slower, by first introducing the
option for each PAM service, and *then* toggling it. Oh well.
2025-04-30 21:38:29 +01:00
bfda64288e nix: bump inputs 2025-04-30 21:05:22 +01:00
89bc60609f home: firefox: tridactyl: use 'replaceVars'
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-04-24 12:46:24 +02:00
2eb2a83dca flake: bump inputs
Some checks failed
ci/woodpecker/push/check Pipeline failed
2025-04-24 09:33:30 +00:00
946eab9ec0 home: git: extract 'delta' configuration
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I want to be able to re-use it between different source control systems
(e.g: `jj`).

As a first step, extract it to a proper module so that I can have it
live in a single space.
2025-04-22 13:53:35 +00:00
ec1c94676a home: vim: highlight over-extended commit subjects
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-22 13:15:04 +00:00
29b47d7f84 home: tmux: rename 'mkTerminalFeature'
This is a more accurate name to describe what the function is doing.
2025-04-22 13:04:36 +00:00
135cef2536 home: atuin: add daemon
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Enabled by default, I probably won't have a reason *not* to use it.
2025-04-16 16:05:14 +00:00
ee1139713c hosts: nixos: porthos: services: enable cross-seed
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-16 17:26:10 +02:00
058096079e hosts: nixos: porthos: secrets: add cross-seed 2025-04-16 17:26:10 +02:00
c40090d176 nixos: services: servarr: add cross-seed 2025-04-16 17:26:10 +02:00
1b6a48d6c2 flake: bump inputs 2025-04-16 17:07:38 +02:00
e4bc0444bf nixos: services: transmission: fix umask
I want downloads to be readable by the `media` group. The permissions
weren't correctly applied without `umask`.
2025-04-16 17:01:18 +02:00
c69aaa7adb nixos: services: servarr: autobrr: fix websockets
I found some logs complaining about websockets before enabling this.
2025-04-16 17:01:18 +02:00
26ee59ef6e home: atuin: use 'uk' dialect for dates
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should be for date *parsing*, from my looking at the code.

Unlikely to be relevant, but might as well set it to the saner of the
two options.
2025-04-14 13:54:57 +00:00
6f5ac4e55f home: vim: signtoggle: only show signs if 'number'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
If a buffer doesn't show a number column, I probably also don't want a
sign column to be toggled on/off in there.
2025-04-14 10:24:33 +00:00
67936af4c7 home: vim: signtoggle: remove 'TermOpen' event
It's now part of upstream's default setup.
2025-04-14 10:20:02 +00:00
e82ae4a219 home: vim: numbertoggle: remove 'TermOpen' event
It's now part of upstream's default setup.
2025-04-14 10:20:02 +00:00
a0473a5c6c nixos: services: servarr: autobrr: fix fail2ban
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The log line for authentication failures has been updated since the
original PR.

It also happens to be logged in JSON, and I'm a bit too lazy to match it
more properly than this.
2025-04-12 11:30:14 +02:00
a28295da27 nixos: services: servarr: autobrr: fix comment
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-11 19:01:08 +02:00
bd55ecc016 hosts: nixos: porthos: services: enable homebox
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-09 12:29:27 +02:00
1dd1dbb917 nixos: services: homebox: proxy websockets
Should avoid a bunch of error logs, and ensure that e.g: adding a label
does not require a refresh to show it in a list.
2025-04-09 12:29:27 +02:00
439a6bc930 nixos: services: homebox: use postgres 2025-04-09 12:29:27 +02:00
e5bf5a3ba1 flake: bump inputs 2025-04-09 12:29:27 +02:00
a1cab7f606 flake: home-manager: set overlays in module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I need to inherit `lib` to make sure it picks up my version, not the one
from `pkgs`.

I can't use `extraSpecialArgs` like NixOS, due to it missing from
upstream [1].

[1]: https://github.com/nix-community/home-manager/pull/3969
2025-04-07 16:16:41 +00:00
0152907536 flake: nixos: use 'self.dirtyRev' if available
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-07 10:19:30 +00:00
08f7c2bd79 nixos: services: nextcloud: bump to 31
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-05 20:24:21 +02:00
b8c649d5bf hosts: nixos: porthos: services: enable autobrr
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-05 20:22:27 +02:00
979814e9de hosts: nixos: porthos: secrets: add autobrr 2025-04-05 20:22:27 +02:00
215eb4c91a nixos: services: servarr: add autobrr 2025-04-05 20:22:27 +02:00
3510264186 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-04-05 20:11:43 +02:00
ec965800e4 nixos: services: servarr: nzbhydra: fix websockets
From what I could read, NZBHydra2 *might* require proxying websockets in
new versions (better safe than sorry).
2025-04-05 20:07:47 +02:00
b1ade72383 nixos: services: servarr: migrate nzbhydra 2025-04-05 20:07:47 +02:00
c823edf584 nixos: services: servarr: jackett: add 'port' 2025-04-05 20:07:47 +02:00
950cf4dd05 nixos: services: servarr: migrate jackett 2025-04-05 20:07:47 +02:00
f825d047b5 nixos: services: servarr: migrate prowlarr
The configuration doesn't have `group`, so it's a slightly different
configuration to the rest of the *arr services.

I also want to move the other two indexer modules under `servarr`, as
they are all closely related.
2025-04-05 20:07:47 +02:00
d783b5f5ee nixos: services: servarr: starr: add 'port'
Now that declarative configurations are supported for those
applications.
2025-04-05 20:07:47 +02:00
8e6be43817 nixox: services: servarr: refactor starr config
Makes it slightly DRY-er and more readable.
2025-04-05 20:07:47 +02:00
1f876d3e21 nixos: services: servarr: bazarr: add 'port' 2025-04-05 20:07:46 +02:00
860c13ab1f nixos: services: servarr: extract bazarr
It's not an actual *arr package, but closely related to them. Extract
its configuration to a sub-module.
2025-04-05 20:07:46 +02:00
7791ad0907 nixos: services: servarr: fix 'enableAll' logic
I renamed the option and refactored how it worked to make it more
explicit that it enables the entire suite by default, with explicit
opt-out of individual components (or fine-grained opt-in as an
alternative).
2025-04-05 20:07:46 +02:00
ca98b8367c templates: add python-uv 2025-04-05 19:00:10 +01:00
62ddec5c23 templates: remove unused 'follows' 2025-04-05 18:57:18 +01:00
418494004b templates: use 'pre-commit.enabledPackages' 2025-04-05 18:57:18 +01:00
53569f17a6 treewide: pre-commit-hooks.nix renaming 2025-04-05 18:33:37 +01:00
d48d5c45e0 home: vim: remove 'friendly-snippets'
I never use them...
2025-04-04 19:06:19 +01:00
36aa641ec0 home: vim: rely on built-in diagnostic jump config
This reduces the surface area of my configuration.
2025-04-03 22:04:44 +01:00
2583cc6c12 home: vim: lua: lsp: add count to diagnostic maps 2025-04-03 22:04:44 +01:00
262dc48425 home: vim: use default 'diffopt:linematch'
It's now been defaulted to `linematch:40` on v0.11.
2025-04-03 22:04:44 +01:00
c1efc4316d home: vim: lualine: add custom 'oil' extension
I don't like the built-in one.
2025-04-03 22:04:44 +01:00
4ef1b08f4e home: vim: lualine: use built-in 'branch'
It now supports worktrees correctly (or at least I can't figure out
which issue I used to have with it...).

As a bonus, it also supports showing the correct branch for an `oil`
buffer.

This reverts commit 481d5f6f53.
2025-04-03 22:04:44 +01:00
274d143031 home: vim: fix deprecated calls 2025-04-03 22:04:44 +01:00
dfb3c353ec home: vim: remove 'lsp_lines'
It's been upstreamed!
2025-04-03 22:04:44 +01:00
37e88c2707 flake: bump inputs
And fix the small `jq` breakage.
2025-04-03 22:04:44 +01:00
1841ff391d flake: dev-shells: remove redundant 'pre-commit'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's already being installed by the shell hook.
2025-04-02 20:42:40 +01:00
458ea144c4 home: vim: remove 'fastfold' configuration
I missed it in the original commit that removed the plug-in from my
configuration...
2025-04-02 20:42:40 +01:00
abec0dd226 home: git: remove 'ignoreRevsFile'
I remember why I didn't set it globally now, it's because `git blame`
complains and errors out, rather than silently ignoring the setting,
when the file doesn't exist in a repo...

This reverts commit 5ae2eacd49.
2025-04-02 20:42:40 +01:00
b2758839e8 home: vim: lspconfig: add 'harper'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Support for more languages is upcoming, I also need to check how to
handle custom words/dictionaries.
2025-03-24 16:51:52 +00:00
6fc81e45e9 home: zsh: migrate to 'initContent'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This also fixes a small ordering issue: my alias definitions used to be
defined at the very end of the file, they're now slotted _before_ the
`zshrc.local` import.
2025-03-24 11:58:59 +00:00
9156a8211d flake: bump inputs 2025-03-24 11:47:59 +00:00
5ae2eacd49 home: git: add 'ignoreRevsFile'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I'm surprised I hadn't configured it already.

`.git-blame-ignore-revs` is the usual name, as most forges automatically
detect and use it.
2025-03-19 11:45:07 +00:00
dc4221fc17 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
And remove the overlay for `lsp-format.nvim`, which has been fixed.

This reverts commit 92e5fbe7df.
2025-03-17 13:02:26 +00:00
ca618b53cc home: vim: oil: explicitly remove icons
All checks were successful
ci/woodpecker/push/check Pipeline was successful
They started appearing on the latest bump, it looks like my
configuration started including `nvim-web-devicons` (see [1]).

I'll probably remove this configuration on the next nixpkgs bump (it's a
good canary to check that I *never* include icons in the future).

[1]: https://github.com/NixOS/nixpkgs/pull/382668
2025-02-28 11:00:12 +00:00
88c00bb83d home: firefox: fix deprecated option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-02-27 12:44:10 +00:00
0dc8ac4433 flake: bump inputs 2025-02-27 12:36:10 +00:00
edeb67238b home: tmux: enable aggressive resize
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Generally useful, rarely gets in the way, I'd rather have it enabled by
default.
2025-02-26 14:28:10 +00:00
105bcbd53a hosts: home: mousqueton: enable 'tmux-resurrect' 2025-02-26 14:28:10 +00:00
84f1186b6c home: tmux: add 'enableResurrect'
To be used on the cloudtop with its frequent reboots.
2025-02-26 14:28:10 +00:00
e43570fe5b home: pager: allow quitting without screen clear
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-02-24 17:09:11 +00:00
852696409a home: pager: remove 'LESSKEY'
It should do the lookup in `$XDG_CONFIG_HOME/lesskey` automatically now.
2025-02-24 17:09:11 +00:00
d3a953247c home: packages: disable on 'useGlobalPkgs'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It doesn't do anything when `useGlobalPkgs` is set, and has started
warning about its upcoming deprecation.
2025-02-24 14:15:04 +00:00
337d7309c6 home: git: use 'mkAfter' for config includes
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should ensure that they will be included at the very end of the
configuration, even if other modules add more includes.

Notably, this ensures that the local configuration can override any
other setting.
2025-02-24 14:02:06 +00:00
1237ef4174 home: git: include local configuration properly
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Using `includes` ensures that the local configuration is included at the
end of the configuration file.
2025-02-21 16:22:44 +00:00
8f5be69a4e flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-02-17 15:33:53 +01:00
f474c033d5 nixos: services: nginx: remove zstd compression
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The zstd module is unmaintained and buggy, remove it preventively.

The option itself will probably be removed soon [1].

[1]: https://github.com/NixOS/nixpkgs/pull/381678
2025-02-13 22:55:25 +01:00
80b4c9ffcd home: mail: accounts: use 'migadu' flavor 2025-02-13 22:55:25 +01:00
374886a63f nixos: services: servarr: remove build work-around
It's been fixed upstream.

This partially reverts commit ad1cfbd6f0.
2025-02-13 22:55:25 +01:00
40a841031f flake: bump inputs 2025-02-13 22:55:25 +01:00
b6d58a274a pkgs: lohr: use 'useFetchCargoVendor'
The previous fetcher is in the process of being deprecated.
2025-02-13 22:55:25 +01:00
9c4d853037 home: secrets: github: update token 2025-02-13 22:55:25 +01:00
2cbcbb7b3a home: secrets: fix path to 'keys' 2025-02-13 22:55:25 +01:00
533e3b9a9f nixos: services: add homebox 2025-02-13 22:55:25 +01:00
1540483955 nixos: services: komga: fix deprecated option 2025-01-30 13:17:24 +01:00
f08787625b flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-01-28 12:34:20 +00:00
c99b5b2532 nixos: services: komga: use 'settings'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2025-01-15 20:42:52 +00:00
9f2ed2ae5a nixos: hardware: fix renamed 'pulseaudio' config 2025-01-15 20:42:52 +00:00
2cf14c92d3 flake: bump inputs 2025-01-15 20:42:52 +00:00
debf061dd2 treewide: add 'shell=bash' for '.envrc' files
Looks like the `shellcheck` pre-commit hook starting running on those
files as well.
2025-01-13 17:35:38 +00:00
9c50691ede nixos: services: nginx: sso: use upstream module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's finally been merged, so let's get rid of this module.
2024-12-28 13:28:03 -05:00
2996481327 flake: bump inputs 2024-12-28 13:24:21 -05:00
e65b3ed1fc home: vim: ftplugin: add query
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-12-23 22:42:42 -05:00
5cae5632d3 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-12-21 17:06:37 -05:00
b7b6705391 home: wm: i3: make 'arandr' float
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Another work-around due to a wrapper in nixpkgs.
2024-12-18 20:48:09 -05:00
ead8101b8d home: wm: i3: match 'blueman' float explicitly
This is more of a work-around due to the wrapper in nixpkgs' packaging
of that application, so might as well make that explicit and narrow.
2024-12-18 20:48:09 -05:00
c75a307c58 home: wm: i3: fix 'pavucontrol' float
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-12-18 20:39:15 -05:00
f4f1aad1c0 pkgs: fix shell formatting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Ran `shfmt --write --indent 4 --simplify --case-indent`, in accordance
with my editor settings.
2024-12-18 20:35:34 -05:00
322fbc970b home: vim: lsp: rely on 'bashls' formatting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I finally figured out why I was getting the wrong indentation, turns out
it was an issue in `lsp-format.nvim`. With that fixed/worked around, I
can now rely completely on `bash-language-server` for formatting.

I'll also rely on `shfmt` automatically detecting the type of file, as
(Neo)Vim cannot be made to reliably set `ft=bash` for Bash scripts and
`ft=sh` for POSIX shell.

Finally, I removed spaces after redirections, I've now come around to
liking the default (no spaces) better.
2024-12-18 20:20:28 -05:00
92e5fbe7df overlays: add 'lsp-format-nvim-indentation'
To fix the issue I reported upstream [1].

[1]: https://github.com/lukas-reineke/lsp-format.nvim/issues/94
2024-12-18 20:13:03 -05:00
747b344b76 pkgs: remove 'cgt-calc'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's been merged upstream.
2024-12-15 18:39:27 -05:00
dec5dabf02 modules: services: postgres: upgrade version
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-12-16 00:20:18 +01:00
b2d2ff1798 nixos: services: postgres: fix renamed option 2024-12-16 00:19:31 +01:00
c5a375d165 nixos: services: paperless: use automatic DB setup
That way I don't have to worry about the `postgresql.service` dependency
anymore :-).
2024-12-11 01:40:14 +01:00
cb5eb68d35 flake: bump inputs
And fix deprecated NUR overlay attribute.
2024-12-11 01:40:10 +01:00
19120bca29 nixos: hardware: graphics: use 'initrd' option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-12-08 16:08:48 -05:00
35c547a090 home: tmux: enable focus events
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Since `tmux-sensible` was disabled by default, we should enable this
explicitly now.
2024-12-08 10:44:26 -05:00
ad1cfbd6f0 flake: bump inputs
Allow-list the build inputs for `sonarr` until the package is fixed
upstream [1].

[1]: https://github.com/NixOS/nixpkgs/issues/360592
2024-12-08 10:44:26 -05:00
baa853477d nixos: hardware: sound: remove ALSA
`sound.enable` was removed from the latest release, and is unnecessary
with PulseAudio.
2024-12-08 10:44:26 -05:00
3ac85b8762 home: packages: add 'tree' 2024-12-08 10:44:26 -05:00
c74acda957 nixos: system: packages: remove 'wget' 2024-12-08 10:44:26 -05:00
98c90d77c5 home: tmux: add sloppy window switching bindings
Another set of bindings which were setup by `tmux-sensible`, that I want
to enable explicitly to avoid issues when it is disabled by default.
2024-12-08 10:44:26 -05:00
b38658405a home: tmux: add binding to refresh configuration
Don't rely on `tmux-sensible` to set it up.
2024-11-28 18:39:09 +00:00
da3c29bbaf home: xdg: add comment about 'tig'
To explain why I didn't modify it as part of my `$XDG_STATE_HOME`
migration in fbd3b70d61.
2024-11-28 12:07:52 +00:00
8b61af1ac3 home: xdg: remove 'gdb' directory
I have an actual module to configure `gdb`, and it uses
`$XDG_STATE_HOME` anyway...
2024-11-28 12:07:12 +00:00
e8a41187e7 home: xdg: create 'HISTFILE' parent directory
In fbd3b70d61, I forgot to modify the
`.keep` file to be created in `$XDG_STATE_HOME/bash/`.
2024-11-28 12:06:03 +00:00
83da7ba9c8 home: tmux: explicitly disable mouse support
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's disabled by default, but make it explicit :-).
2024-11-28 11:24:34 +00:00
f2168378fc home: direnv: lib: also watch '.python-version'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's used by `uv` as a kind of configuration file, so watch it as well.
2024-11-27 15:12:10 +00:00
e39fef275c nixos: services: paperless: use 'environmentFile'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
That way I don't have to configure all services to make use of it.

Someday I'll find the will to add the `postgresql.service` dependency
upstream, truly removing the need to configure any service at all.
2024-11-27 12:05:41 +00:00
fe49e47026 flake: bump inputs 2024-11-27 12:02:29 +00:00
6a5c4a627a nixos: services: pyload: add fail2ban jail
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-11-20 21:06:17 +01:00
7f0cd6612e nixos: services: paperless: remove MKL work-around
Instead, rely on the upstream service's work-around [1].

This will reduce the amount of package builds I need to do when updating
my server...

[1]: https://github.com/NixOS/nixpkgs/pull/299008

This reverts commit e2ec4d3032.
2024-11-20 21:06:17 +01:00
2ffbc13513 flake: bump inputs 2024-11-20 21:06:17 +01:00
60050113bc nixos: services: nginx: modify example
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Now that `websocketLocations` exists, it makes little sense to use
`proxyWebsockets` in an example, so use a different one.
2024-11-19 16:03:38 +00:00
6a1a35a384 nixos: services: migrate to 'websocketsLocations' 2024-11-19 16:03:38 +00:00
e9d96138d5 nixos: services: nginx: add 'websocketsLocations'
This accounts for the overwhelming majority of my usage of
`extraConfig`.
2024-11-19 16:03:38 +00:00
ae230b5df7 hosts: porthos: services: enable collabora
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-11-19 15:58:48 +01:00
138d4d2bd9 nixos: services: nextcloud: add collabora
This needs to be configured through the "Nextcloud Office" app,
specifically the WOPI setting is important for security (I put both the
external IP, as well as `::1` and `127.0.0.1`).
2024-11-19 15:58:48 +01:00
ab8a5daefe hosts: porthos: secrets: acme: use OVH API
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I switched registrar, as OVH was ~4x cheaper.

This needs a small change to the module to both refer to OVH instead of
Gandi in the documentation, and make use of the correct API.

I also needed to disable the propagation check, as it looks like OVH is
slower than Gandi, and leads to spurious errors...
2024-11-14 22:19:35 +01:00
7b42368e2f hosts: nixos: porthos: services: remove tandoor
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I fully transitioned to using Mealie instead.

This reverts commit 493636decb.
2024-11-11 11:45:11 +00:00
46bd23ff07 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-11-06 10:53:58 +00:00
62de2772a4 home: vim: do not italicize comments
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-11-05 15:54:18 +00:00
8475d92314 home: nix: configure GC
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-10-30 10:33:50 +00:00
07552f3070 nixos: system: nix: configure GC 2024-10-30 10:33:50 +00:00
5b66145be3 flake: bump inputs 2024-10-30 10:33:50 +00:00
67eb7bdd4b hosts: nixos: porthos: secrets: remove matrix sync
Remove the secret, as it not used anymore.

This reverts commit 52413dcaf7.
2024-10-30 10:33:50 +00:00
6d2ac0c473 modules: services: matrix: remove sliding sync
The functionality has been folded into `synapse` itself, and the module
has been removed from the unstable branch.

This reverts commit b4c2cc581b.
2024-10-28 10:47:49 +00:00
46df8b5b5b home: direnv: lib: fix shellcheck directive
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I like it better with a space in it.
2024-10-23 13:49:28 +00:00
cf1aeaf088 flake: bump inputs 2024-10-23 13:49:28 +00:00
a09cef76c5 nixos: services: nextcloud: bump to 30
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-10-17 15:26:17 +02:00
0547ebc33c home: wm: i3: remove 'FIXME'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Add a clearer message about why I don't use the `startup` section.
2024-10-16 10:43:52 +00:00
8e81d148bd home: direnv: warn on non-existent version
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-10-10 13:56:27 +00:00
b10d936c0a flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-10-08 11:35:11 +00:00
eec65dc6b3 hosts: nixos: porthos: services: remove podgrab
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Podgrab is unmaintained...

I'll rely on Audiobookshelf to both download and play podcasts.
2024-10-01 16:54:44 +02:00
09f763bc16 nixos: services: add komga
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-30 22:10:38 +02:00
79f08ea5a1 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-30 13:47:26 +00:00
38f3ac0ce5 home: vim: lspconfig: add 'typos-lsp'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-27 14:11:03 +00:00
898523d079 treewide: fix typos 2024-09-27 13:49:29 +00:00
cbba752b54 nixos: services: nginx: remove 'literalExample'
Those examples do not use functions or any other "difficult to render"
expression.
2024-09-27 13:44:40 +00:00
20db71996c pkgs: add 'cgt-calc'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-25 16:40:15 +00:00
b0029448c6 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-25 14:10:34 +00:00
3aab65d9ea nixos: services: tandoor-recipes: add fail2ban note
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-24 13:13:15 +00:00
b6279108e0 nixos: services: vikunja: add fail2ban note
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-24 10:44:42 +00:00
0f3c5d1d63 nixos: services: transmission: add fail2ban note 2024-09-24 10:44:42 +00:00
1f40ac4a9f nixos: services: grocy: add fail2ban note 2024-09-24 10:44:42 +00:00
2b64a00dc9 nixos: services: flood: add fail2ban note 2024-09-24 10:44:42 +00:00
1aa3385e13 nixos: services: navidrome: add fail2ban jail
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-22 02:12:48 +02:00
a059828a58 nixos: services: miniflux: add fail2ban jail
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-22 01:59:04 +02:00
96e1a54638 nixos: services: nextcloud: add fail2ban jail 2024-09-22 01:59:04 +02:00
f24cf2e16d nixos: services: audiobookshelf: add fail2ban jail 2024-09-22 01:37:34 +02:00
cedac6bbf4 nixos: services: mealie: add fail2ban jail 2024-09-22 01:37:34 +02:00
129d4b3a5a hosts: nixos: porthos: services: enable pdf-edit
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-20 22:05:21 +02:00
c1eab0edee nixos: services: jellyfin: add fail2ban jail
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The upstream documentation adds quotes around the IP, but I don't see
them in my logs. Let's split the difference by making them optional.
2024-09-20 14:39:53 +00:00
4a38757db9 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-19 11:58:55 +00:00
8d344b5d51 home: direnv: add 'layout_uv'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I haven't really played with it yet, but from my small experiments this
should be good enough for my (future) purposes.
2024-09-12 13:23:19 +00:00
8a6af0e5b7 home: direnv: only mention 'poetry init'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
`poetry new` creates a new directory, which isn't really what we're
interested in here.
2024-09-12 12:08:50 +00:00
4f73945e28 home: direnv: silence 'layout_poetry' 2024-09-12 12:07:22 +00:00
6529bea6bb home: nixpkgs: don't use 'escapeShellArg'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I don't know what I was thinking exactly when I wrote this, but I
clearly hadn't tested it. We can't use `escapeShellArg` as we need to
expand the `$XDG_RUNTIME_DIR` variable used in those paths...

This reverts commit 468eaa9ed4.
2024-09-11 10:28:32 +00:00
e67b055a7b home: vim: fix unimpaired mapping groups
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-09 21:40:54 +01:00
fbd3b70d61 home: use 'XDG_STATE_HOME' for history files
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's specified as the place to put them, so let's make use of it I
guess.
2024-09-06 20:52:30 +01:00
f91286d13b flake: bump inputs 2024-09-06 20:52:30 +01:00
90dcf3a164 hosts: nixos: porthos: secrets: add pdf-edit
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-05 18:10:00 +02:00
a713913eef nixos: services: add pdf-edit 2024-09-05 18:10:00 +02:00
9b7bab8e83 flake: bump inputs 2024-09-05 18:10:00 +02:00
0d2b9c9699 nixos: services: rename 'servarr'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-05 10:39:01 +00:00
6f00036b79 overlays: add 'downgrade-transmission'
The 4.0.6 release is buggy and widely blacklisted.
2024-09-05 10:36:31 +00:00
52197a4f96 nixos: services: pirate: add readarr 2024-09-05 10:36:31 +00:00
fb4047b2b3 nixos: services: nginx: sso: align with upstream
This aligns with the PR I opened on nixpkgs [1].

[1]: https://github.com/NixOS/nixpkgs/pull/325838
2024-09-05 10:36:31 +00:00
445cb43cb4 nixos: services: nix-cache: fix deprecated config
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-09-04 10:35:10 +00:00
10727f9eea flake: bump inputs
Some checks failed
ci/woodpecker/push/check Pipeline failed
2024-09-04 12:33:13 +02:00
44c11fc431 pkgs: lohr: 0.4.5 -> 0.4.6 2024-09-04 12:33:13 +02:00
e94bdef690 hosts: nixos: porthos: secrets: fix SSO owner
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-08-22 20:54:26 +02:00
483c5d23e0 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-08-14 12:50:20 +00:00
8ed69de4be hosts: nixos: aramis: home: remove 'pinentry-rofi'
Some checks failed
ci/woodpecker/push/check Pipeline failed
I'm not sure why, but it's messing with my `gpg-agent`... But I didn't
get any issues with `rbw`.

I'll try and figure out why.

This reverts commit 93dfe04114.
2024-08-10 12:13:09 +01:00
f240730c4f flake: bump inputs
Some checks failed
ci/woodpecker/push/check Pipeline failed
And remove the overlay for `none-ls`, which has been fixed.

This reverts commit ace266b02c.
2024-08-08 19:03:30 +01:00
93dfe04114 hosts: nixos: aramis: home: use 'pinentry-rofi'
Some checks failed
ci/woodpecker/push/check Pipeline failed
2024-08-04 11:37:33 +01:00
1e2872c5c7 home: vim: fix '+'/'-' highlighting in diffs
Some checks failed
ci/woodpecker/push/check Pipeline failed
I'm not a big fan of the new highlighting [1].

[1]: https://github.com/nvim-treesitter/nvim-treesitter/pull/6619
2024-07-27 15:09:52 +01:00
9ed2dcefde home: vim: which-key: use lua callbacks
Some checks failed
ci/woodpecker/push/check Pipeline failed
2024-07-26 11:54:11 +00:00
0d820cc2f4 home: vim: move 'nohls' to 'which-key' 2024-07-26 11:52:17 +00:00
ace266b02c overlays: add 'none-ls-root-bug'
Some checks failed
ci/woodpecker/push/check Pipeline failed
Will be removed when the plug-in gets its next bump.
2024-07-26 10:06:02 +00:00
6b7510cfd9 home: vim: show directories in blue
Some checks failed
ci/woodpecker/push/check Pipeline failed
Blue is much more readable when the night filter kicks in.
2024-07-25 20:32:15 +01:00
58760280be home: vim: update for 'which-key' v3
It complains quite loudly about the legacy mapping syntax.
2024-07-25 20:32:15 +01:00
4de7886950 nixos: system: packages: fix deprecated config 2024-07-25 20:32:15 +01:00
d04de7d213 flake: bump inputs
And fix renamed packages.
2024-07-25 20:32:15 +01:00
b5216a6a50 pkgs: unbound-zones-adblock: fix version 2024-07-25 20:29:00 +02:00
442eef0482 home: vim: git: fix deprecated functions
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-07-25 09:39:38 +00:00
997f208d30 home: vim: remove irrelevant filetype plugins
I don't make use of their non-upstreamed functionality.
2024-07-24 16:33:09 +00:00
326f9d039a home: vim: disable 'swapfile'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
As before, I still dislike this option and find its downsides worse than
its upsides.
2024-07-22 16:05:54 +00:00
abaa7119e7 home: vim: consistent 'unimpaired' mapping names
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-07-20 11:34:42 +01:00
c6735f3912 home: vime: tree-sitter: remove 'which-key'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
The plug-in now has support for setting mapping descriptions by itself.
2024-07-19 11:38:55 +00:00
3438290e32 home: vim: tree-sitter: move mappings from 'after' 2024-07-19 11:38:55 +00:00
82f49f1389 home: vim: telescope: move mappings from 'after' 2024-07-19 11:38:55 +00:00
5918a0b9e6 home: vim: signtoggle: use lua callbacks
Use `vim.opt` because this is a local option (i.e: similar to `set` it
defaults to setting it locally, `vim.opt_local` is not necessary).
2024-07-19 11:38:55 +00:00
a7c542784c home: vim: numbertoggle: use lua callbacks
Use `vim.opt` because those are local options (i.e: similar to `set` it
defaults to setting it locally, `vim.opt_local` is not necessary).
2024-07-19 11:38:55 +00:00
280829b54f home: vim: signtoggle: fix toggling
Don't know how I missed this for so long...
2024-07-19 11:38:55 +00:00
5ffe2653c0 home: vim: git: work around partial staging issue
See [1].

[1]: https://github.com/lewis6991/gitsigns.nvim/issues/929
2024-07-19 11:38:54 +00:00
5592a120a4 home: vim: git: use 'partial' 2024-07-19 11:38:54 +00:00
bcd9a31bb8 home: vim: lua: utils: add 'partial'
Love me some functional goodness.

This was taken from [1].

[1]: https://reddit.com/r/lua/comments/fh2go5
2024-07-19 11:36:26 +00:00
966934a8bc home: vim: git: use lua in hunk mappings 2024-07-19 11:36:26 +00:00
88e4d72366 home: vim: git: use lua in visual mappings
I thought the partial staging feature had broken, but it looks to be
unrelated [1].

[1]: https://github.com/lewis6991/gitsigns.nvim/issues/1088
2024-07-19 11:36:26 +00:00
16d68022eb home: vim: enable swap and undo files
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Trying it on for size, since NeoVim does use XDG directories for those.
2024-07-12 19:13:09 +01:00
0de9966127 home: vim: remove redundant 'nobackup'
It's already the default.
2024-07-12 19:13:09 +01:00
452399ee4c home: vim: oil: add detail view toggle mapping 2024-07-12 19:12:58 +01:00
6a6f3aed63 home: vim: migrate to 'oil.nvim' 2024-07-12 19:12:12 +01:00
04de570926 home: atuin: add 'package' option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-07-08 13:29:08 +00:00
1644e95243 home: discord: add 'package' option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-07-08 13:12:38 +00:00
abb78d63e2 home: calibre: add 'package' option 2024-07-08 13:12:38 +00:00
4943df69ef home: gdb: add 'package' option 2024-07-08 13:12:38 +00:00
f11cdb3675 home: gdb: use 'mkPackageOption' 2024-07-08 13:10:07 +00:00
dc90e14e60 home: vim: lspconfig: add 'starpls'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-07-01 09:59:41 +00:00
b895265537 nixos: hardware: graphics: fix renamed option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-28 18:10:59 +01:00
fc5cb1a47d flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-28 09:54:50 +00:00
a15f7ec270 templates: fix typo
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-22 17:29:21 +01:00
105e0fbfd0 ci: fix typo 2024-06-22 17:29:21 +01:00
b73f6af5e0 nixos: services: flood: use upstream module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-21 15:40:34 +00:00
c2362795d8 flake: bump inputs
Fixup `bash-language-server` which has been migrated out of `nodePackages`.
2024-06-21 15:40:34 +00:00
468eaa9ed4 home: nixpkgs: use 'escapeShellArg'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-18 13:13:42 +00:00
eb94fca939 home: nix: use 'nix.nixPath'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Freshly merged upstream, I've only been waiting ~1 year for it.
2024-06-18 09:21:42 +00:00
9ab49e06f9 nixos: hardware: graphics: add 32bit Intel drivers
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-17 10:17:15 +00:00
7c61d6dffc nixos: hardware: graphics: use AMDVLK options 2024-06-17 10:12:05 +00:00
64331981d0 flake: bump inputs 2024-06-17 10:11:50 +00:00
6a9ac77b0c nixos: hardware: bluetooth: remove pipewire conf
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Turns out the wireplumber configuration I was setting up is redundant
with the upstream default (which work better, becomes they use a quirks
database...).

It was also out-of-date due to the update to v0.5, which changed the
configuration format...
2024-06-14 21:19:07 +01:00
d37c767a2f nixos: services: forgejo: fix deprecated config
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-12 21:29:19 +02:00
10a7111f1c nixos: services: mealie: fix DB auth
Turns out the package update [1] was because someone couldn't make it
work on the previous version, and added a new setting to configure it
more easily :-).

[1]: https://github.com/NixOS/nixpkgs/pull/314294
2024-06-12 21:28:41 +02:00
7ea10f7823 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-12 10:06:31 +00:00
c08c8c79d3 home: firefox: tridactyl: fix DDG mapping
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-06-10 12:53:13 +00:00
82a0c65901 home: firefox: tridactyl: add LWN comment toggle
Ideally, I would instead be targeting the `::before` pseudo-element,
which is the _actual_ button, but it doesn't work...
2024-06-10 12:48:33 +00:00
5af0230c58 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
And undo the overlay for `gruvbox-nvim`.

This reverts commit ccab4d0952.
2024-05-29 11:15:34 +00:00
442d267ca2 home: vim: lsp: add missing type hint 2024-05-28 13:49:00 +00:00
b90da603b1 home: nix: fix typo
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-05-28 11:36:18 +00:00
e0b66e89f9 home: vim: ftplugin: remove bp
It's now part of the upstream runtime as of v0.10, so this file is
redundant and can be removed.
2024-05-24 14:39:55 +01:00
212f280d92 home: vim: remove commenting plug-ins
Rely on the new built-in support which was added upstream as part of
v0.10.

Crucially, upstream supports using tree-sitter aware comment strings by default.
2024-05-24 14:39:55 +01:00
cc82d7575f home: vim: do not set 'termguicolors' explicitly
Rely on the new behaviour from v0.10 which detects it more
intelligently.
2024-05-24 14:39:55 +01:00
a60287f8cf home: vim: remove 'nvim-osc52'
OSC52 supports has been added upstream, and is set up automatically when
`SSH_TTY` is set (and a few other conditions) in v0.10.
2024-05-24 14:39:55 +01:00
201fabbc14 home: vim: remove redundant ftdetect files
These have been added upstream and made redundant as part of the update
to v0.10.
2024-05-24 14:39:55 +01:00
89056e3d5d home: vim: lspconfig: migrate to 'ruff'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This replaces and enhances the experience from the old `ruff-lsp`
wrapper.
2024-05-23 22:38:55 +01:00
ccab4d0952 overlays: add 'gruvbox-nvim-delimiters'
To fix [1] and [2] until the plug-in gets bumped.

[1]: https://github.com/ellisonleao/gruvbox.nvim/issues/335
[2]: https://github.com/ellisonleao/gruvbox.nvim/issues/340
2024-05-23 22:38:55 +01:00
9e89b4dd36 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-05-19 22:32:54 +02:00
1cba7b609d home: vim: null-ls: remove 'clang-format'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I should be relying on `clangd` instead, which should always be
available whenever `clang-format` was.
2024-05-13 14:29:19 +00:00
811a9f44c5 home: vim: ftplugin: add json
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-05-10 09:36:09 +00:00
f6c476a07f nixos: services: postgres: add post-upgrade advice
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-05-07 11:40:11 +00:00
0745e450b9 nixos: services: postgres: remove unused container 2024-05-07 11:40:11 +00:00
48beb9f1fe nixos: services: postgres: simplify update script 2024-05-07 11:21:28 +00:00
6162f4f4d5 modules: services: nextcloud: bump to 29
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-05-04 22:51:11 +02:00
8d2cf7f2c0 nixos: profiles: laptop: fix renamed option 2024-05-04 16:06:57 +02:00
df79f36c87 flake: bump inputs 2024-05-04 16:06:14 +02:00
929c8ea9b0 hosts: nixos: porthos: services: audiobookshelf
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-04-22 21:00:00 +02:00
2dedb41a47 nixos: services: add audiobookshelf 2024-04-22 21:00:00 +02:00
7ebbb10568 hosts: nixos: porthos: migrate podgrab 'dataDir'
I want to share it with `audiobookshelf`, so putting it in `/data/media`
makes it easier.
2024-04-22 21:00:00 +02:00
5df0574f41 nixos: services: podgrab: add 'dataDir' 2024-04-22 21:00:00 +02:00
c18054cad7 nixos: services: podgrab: use 'media' group 2024-04-22 20:59:09 +02:00
f9db06a6d4 flake: bump inputs 2024-04-22 20:58:45 +02:00
b735eb4b98 home: direnv: set 'DIRENV_DEFAULT_FLAKE' as needed
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-04-19 11:22:15 +00:00
6a22a80d42 home: direnv: update default flake
Now that I (usually?) override `nixpkgs` in the registry, there's not
much use in defaulting to `pkgs`.
2024-04-19 11:22:15 +00:00
06b760e3ee pkgs: remove 'bt-migrate'
I have packaged it upstream.
2024-04-19 11:22:15 +00:00
e43cdbfa65 pkgs: remove 'sqlite_orm'
I have packaged it upstream.
2024-04-19 11:22:15 +00:00
7e0cb867de pkgs: remove 'digestpp'
I have packaged it upstream.
2024-04-19 11:22:15 +00:00
a4ede5f6f4 templates: add rust-cargo 2024-04-19 11:22:15 +00:00
95c688766f home: vim: ftplugin: add bp 2024-04-19 11:22:15 +00:00
3e6b9f7161 home: vim: ftdetect: add bp
Unfortunately, the `blueprint` filetype name is already taken...
2024-04-12 10:03:28 +00:00
6efe2c12ba nixos: services: woodpecker: exec: fix NodeJS
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I need it for Tree Sitter support...
2024-04-08 21:19:54 +02:00
6b51b4e2ab nixos: services: rss-bridge: fix deprecated option
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-04-07 13:30:40 +02:00
10a3e684c8 flake: bump inputs 2024-04-07 13:28:26 +02:00
8f120e2129 nixos: services: lohr: fix SSH key creation
All checks were successful
ci/woodpecker/push/check Pipeline was successful
In the migration to `tmpfiles.d(5)`, I used the wrong type of file.

Using `f` would write the path to the file as its content, rather than
copy it. Unfortunately `C` and `C+` do not overwrite an existing file,
so using a symlink it the correct solution here.

This means the SSH key file must have `lohr` as an owner... Perhaps I
should make it so the service can read the file itself, rather than
rely on the filesystem location, so that I don't have to contort myself
quite so much to make it work.
2024-04-02 12:25:34 +02:00
f729f6a098 hosts: nixos: porthos: secrets: add 'lohr' owner 2024-04-02 12:25:05 +02:00
8a4fdf6a56 templates: fix description typo
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-04-01 22:27:06 +01:00
d97da124ee templates: fix homepage links 2024-04-01 22:27:06 +01:00
96aa934bec pkgs: zsh-done: fix homepage link 2024-04-01 22:27:06 +01:00
4b5a19a8fa templates: fix deprecated CI syntax
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-04-01 22:26:21 +01:00
06c64c1a78 templates: fix 'matrix-notifier' CI step 2024-04-01 22:25:37 +01:00
15d0e6bb38 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-28 11:19:33 +00:00
607aa5351c nixos: services: tandoor-recipes: fix bulk upload
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-22 22:03:53 +01:00
61fa35093c nixos: services: mealie: fix bulk upload 2024-03-22 22:03:53 +01:00
4a01a50532 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
And fix the update `pinentry` options in home-manager.
2024-03-16 19:49:00 +01:00
41e1ad3265 overlays: remove 'gruvbox-nvim-better-diff'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Now that I have the explicit override for it, this overlay is not
necessary.

This reverts commit 9e0930aca4.
This reverts commit 28187c3b8f.
2024-03-14 10:58:09 +00:00
10b4e6ce2d home: vim: explicitly revert diff highlighting 2024-03-14 10:56:08 +00:00
c0ef5c9275 overlays: add gruvbox-nvin-expose-palette 2024-03-14 10:49:39 +00:00
0ff8366105 home: vim: fix path high-lighting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It was previously linked to `Underlined`, which just looks plain wrong
IMO.

This links it back to `GruvboxOrange`, as it used to be.
2024-03-13 13:08:57 +00:00
d365aba3c0 home: vim: lua: utils: remove 'dump'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It's now available as 'vim.print'.
2024-03-12 15:13:20 +00:00
b16b6a534b home: vim: lua: lsp: use 'vim.print' 2024-03-12 15:11:11 +00:00
070df03b7e home: vim: lua: utils: allow querying all clients
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-12 12:42:21 +00:00
0108b06a02 home: vim: lualine: use explicit buffer number
I want to tighten the API of this function a little bit, so let's be
more specific.
2024-03-12 12:40:49 +00:00
56e158f5c5 home: vim: lua: utils: fix deprecated function 2024-03-12 12:40:26 +00:00
4a8981c7b4 home: vim: lua: utils: fix documentation 2024-03-12 12:38:38 +00:00
07eca729f5 home: vim: null-ls: fix 'nixpkgs-fmt' condition
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I haven't configured `nil` to format anything.

And I don't really care to, this is good enough for me.
2024-03-12 11:31:20 +00:00
b24d299f70 home: xdg: move 'gdb' variables to their module
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-12 10:16:45 +00:00
f06e99d95b home: xdg: move 'less' variables to their module 2024-03-12 10:16:45 +00:00
3fb758028c home: vim: lspconfig: remove 'rnix-lsp'
It's been abandoned, `nil` is a better language server nowadays.
2024-03-12 10:16:45 +00:00
276cc7e5f2 home: xdg: add '_JAVA_OPTIONS' 2024-03-11 17:32:54 +01:00
b2dc051e6a flake: bump inputs
And fix the breaking changes in Vikunja (which actually make my
configuration simpler).
2024-03-11 17:32:54 +01:00
9749f0aa28 overlays: remove none-ls-shellcheck-nvim 2024-03-11 17:32:54 +01:00
dc27b59912 home: vim: lspconfig: migrate to 'bashls'
Since `none-ls` has removed their `shellcheck` built-in. This actually
makes the diagnostics more robust to POSIX/non-POSIX scripts (the LSP
server detects it at runtime, which is more robust than the `ftdetect`
scripts).

Nice bonus: the shellcheck code is shown in the diagnostics message
without any configuration!

I'm not sure if I can configure `avoid-nullary-conditions` -- though it
seems like this check is broken at the moment (I couldn't get it to
trigger during my tests).
2024-03-11 17:32:54 +01:00
7a3e64f814 home: vim: lspconfig: add 'hls'
If I ever end up actually learning it...
2024-03-11 17:32:54 +01:00
f13a6fb023 home: vim: lspconfig: add 'ruff-lsp'
Since everybody is moving towards using it instead of other linters...
2024-03-11 17:32:54 +01:00
30247ce3a0 home: vim: null-ls: fix deprecated builtins
`none-ls` deprecated a lot of unmaintained builtins, or ones that they
find has been replaced by a compete LSP server.

This removes those deprecated builtins, or uses a shim until I migrate
to the relevant LSP configuration (for `bash-language-server`).
2024-03-11 17:32:54 +01:00
08f4175412 overlays: add none-ls-shellcheck-nvim 2024-03-11 17:32:54 +01:00
6140e1c8f9 nixos: services: lohr: migrate to tmpfiles
This is better than a custom script.
2024-03-11 17:32:54 +01:00
5d3160fb0d hosts: nixos: porthos: migrate to new host
OVH/Kimsufi are deprecating my current server by the end of the year. So
let's migrate to a new host.

This was more painful than initially planned, OVH introduced a change to
their rescue system which messes with the NixOS installation [1].

In the end I used a kexec image [2] to run the installation.

[1]: https://github.com/NixOS/nix/issues/7790
[2]: https://github.com/nix-community/nixos-images
2024-03-11 17:32:54 +01:00
0f33dbd5c2 hosts: nixos: porthos: switch to forgejo
This required a quick rename to migrate from one to the other.
2024-03-11 17:32:54 +01:00
f3207468f9 nixos: services: woodpecker: configurable forge 2024-03-11 17:32:54 +01:00
b41fd9e48e hosts: nixos: porthos: secrets: add forgejo mail 2024-03-11 17:32:54 +01:00
c1ffe09631 nixos: services: add forgejo 2024-03-11 17:32:54 +01:00
8591fb8b35 home: tmux: expand history limit 2024-03-11 16:03:53 +00:00
22139bd69f home: tmux: add hyperlinks support
Somewhat unfortunate that those have to be enabled by force, but easy
enough to support.
2024-03-11 16:03:53 +00:00
742b4c39a2 home: tmux: migrate to 'terminalFeatures'
There are other terminal capabilities I want to override in tmux, so
let's make this type more extensible.
2024-03-11 16:03:53 +00:00
97cc08d199 flake: use explicit 'systems' input 2024-03-11 16:03:53 +00:00
a4e742bf55 nixos: services: blog: fix catch-all redirection
Don't use a hard-coded address...
2024-03-11 16:03:53 +00:00
84fea2f677 pkgs: add bt-migrate 2024-03-07 11:36:18 +00:00
ef882a5267 pkgs: add sqlite_orm 2024-03-05 21:17:04 +00:00
6a47703c08 pkgs: add digestpp 2024-03-05 21:17:04 +00:00
d423a03663 nixos: services: gitea: fix mail 'FROM' address
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-05 14:20:57 +00:00
40d1b39837 nixos: services: gitea: update mail configuration
Some checks failed
ci/woodpecker/push/check Pipeline failed
2024-03-05 14:17:30 +00:00
ed15e62e1d nixos: services: gitea: use 'git' group
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-03-05 12:53:32 +00:00
6bef924513 overlays: remove gruvbox-nvim-treesitter-fix
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Not needed anymore.

This reverts commit d6eceea08a.
2024-03-05 12:43:22 +00:00
7f0a889ccd hosts: nixos: porthos: services: enable mealie 2024-03-05 12:43:22 +00:00
380933e69b hosts: nixos: porthos: secrets: add mealie mail 2024-03-05 12:43:22 +00:00
a3afafd9e0 nixos: services: add mealie 2024-03-05 12:43:22 +00:00
4d25609b26 nixos: system: nix: expand trusted users 2024-03-05 12:43:22 +00:00
56c0c28b02 hosts: nixos: porthos: home: disable cache
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Same reason as the system-wide configuration...
2024-03-01 17:20:47 +00:00
b9b47fffd6 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Fix the pyLoad user/group option that I added upstream [1].

Fix an evaluation error due to Pipewire changes [2].

[1]: https://github.com/NixOS/nixpkgs/pull/287304
[2]: https://github.com/NixOS/nixpkgs/pull/282377
2024-02-29 12:20:53 +00:00
f9cdff8c13 hosts: homes: bazin: ignore interactive adb shells
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-23 13:28:48 +00:00
eb668525f8 home: zsh: ignore more commands for notification 2024-02-23 13:14:09 +00:00
6539471186 templates: use explicit 'pre-commit check' CI step
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-16 23:00:57 +00:00
5d38d94da6 templates: use 'backend' CI label 2024-02-16 22:59:59 +00:00
7e361aff9d templates: c++-cmake: fix formatting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-16 22:44:24 +00:00
c5e5bee206 home: git: enable 'rerere'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
How did I not already have it enabled?
2024-02-16 19:05:02 +00:00
b2a199c9a0 home: nix: fix cache configuration
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Copy-paste is bad kids, the home-manager module does *not* do the same
as NixOS.

I was rebuilding the world, since this was overriding the official Hydra
cache...
2024-02-15 17:09:56 +00:00
a0dde6f274 home: zsh: add notification exclusion list
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-15 16:33:46 +00:00
3c79a373e4 pkgs: zsh-done: 0.1.0 -> 0.1.1 2024-02-15 16:33:46 +00:00
08f31c088b home: atuin: explicitly set 'enter_accept'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-13 14:34:27 +00:00
8b07ff5bbe homes: bazin: enable zsh notifications
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-13 11:35:28 +00:00
d6c2948135 home: zsh: add 'zsh-done' 2024-02-13 11:32:44 +00:00
c89dec2a38 home: zsh: enforce order of 'initExtra{First,}'
In case I want to add more values to those options, I still want the
_main_ values to be ordered before/after.
2024-02-12 20:59:52 +00:00
521522e4e9 home: zsh: use 'mkMerge'
This will make adding modular configuration easier.
2024-02-12 20:59:52 +00:00
c9969775da nixos: services: backup: add essential files
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-12 14:21:17 +00:00
0bb2be6b87 home: nix: add 'cache.selfHosted'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Once again mirroring the NixOS module changes that I forgot to port
over.
2024-02-12 11:40:28 +00:00
7f17069998 home: nix: rename 'inputs' options
This mirrors the changes made to the NixOS module.
2024-02-12 11:40:28 +00:00
5e3bc5a8c9 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-11 12:38:30 +01:00
b0aee235cd home: xdg: add 'GRADLE_USER_HOME'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2024-02-11 11:26:05 +00:00
9d9dba2cc2 home: add wget
This is mostly so that I can add the XDG-compliant configuration.
2024-02-11 11:26:05 +00:00
cb97b0dbde home: xdg: add python configuration
It looks like 3.13 finally brought a way to change the history location
through `PYTHON_HISTORY`.
2024-02-11 11:26:05 +00:00
f4c4a485d6 home: xdg: fix sort order 2024-02-11 11:26:05 +00:00
d6eceea08a overlays: add gruvbox-nvim-treesitter-fix
The version in nixpkgs is not up-to-date with regards to the
nvim-treesitter breaking changes that were recently introduced.
2024-02-11 11:26:05 +00:00
9e0930aca4 overlays: gruvbox-nvim-better-diff: simplify 2024-02-11 11:26:05 +00:00
8c03bff1cf overlays: remove 'tandoor-recipes-failing-test'
This is now redundant, the nixpkgs bump provided an updated package
which builds successfully.

This reverts commit 473be47b29.
2024-02-11 11:26:05 +00:00
0b74332e9c flake: bump inputs 2024-02-11 11:26:05 +00: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
41df5c01ad home: vim: ftdetect: add kconfig
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-12 12:31:07 +00:00
153b6a43cc home: vim: ftdetect: add kbuild 2023-05-12 12:28:06 +00:00
527a85bf11 home: vim: ftdetect: switch to lua
It looks like `vim.filetype.add` is smarter about "local.am".

For some reason opening an *empty* Tiger file results in a backtrace...
2023-05-12 12:26:56 +00:00
f3e888dadc home: add secrets
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Now that my module has been merged upstream!

Not that I have anything to use it with for now...
2023-05-12 11:03:49 +00:00
d60e26c617 flake: bump inputs
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-12 10:10:33 +00:00
c8019f84bb pkgs: wifi-qr: fix icon handling
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-09 20:33:05 +01:00
01059616bf home: vim: don't use 'nixpkgs-fmt' with 'nil'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-09 20:25:15 +01:00
8a78ce8520 home: vim: null-ls: add 'buildifier' configuration 2023-05-09 20:23:07 +01:00
102dc4cc76 home: vim: null-ls: restrict POSIX to bare 'sh' 2023-05-09 20:22:12 +01:00
0b64c9caa7 hosts: nixos: porthos: services: disable grocy
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-08 19:01:11 +02:00
574634b64e modules: services: blog: use 302 redirection
All checks were successful
ci/woodpecker/push/check Pipeline was successful
That way the browser doesn't cache it, in case I do end up using that
domain after all.
2023-05-07 15:20:14 +01:00
b86d963a92 flake: checks: enable 'stylua'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-07 13:36:10 +01:00
78c524e19d project: add stylua configuration 2023-05-07 13:36:10 +01:00
1e9f6fe957 home: vim: fix lua formatting 2023-05-07 13:36:10 +01:00
c2d231d3f1 home: vim: use actual lua files
Since most of the settings are actually just lua in a VimL file.
2023-05-07 13:36:10 +01:00
9530864b10 home: vim: fastfold: use lua configuration 2023-05-07 13:36:10 +01:00
e599a97e45 home: vim: abbreviations: use lua
This makes it less repetitive.
2023-05-07 13:36:10 +01:00
39c2e5db8c home: vim: signtoggle: use lua autocommands
A nice next step would be to use actual lua callbacks instead of the
VimL command.
2023-05-07 13:36:10 +01:00
dba8836381 home: vim: numbertoggle: use lua autocommands
A nice next step would be to use actual lua callbacks instead of the
VimL command.
2023-05-07 13:36:10 +01:00
36b0c67832 home: vim: completion: use lua settings 2023-05-07 13:33:02 +01:00
68b9c3b9b1 home: vim: remove 'vim-pandoc'
The tree-sitter code-block high-lighting is built-in and works better,
and I don't use any of the other features.
2023-05-07 13:04:37 +01:00
d8896a66c8 hosts: home: cloudtop: systemd session variable
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-05 09:05:51 +00:00
a1dd0bb792 modules: services: matrix: remove 'with lib'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-04 12:19:31 +00:00
46d9e5c829 home: vim: lspconfig: add 'nil'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-04 09:27:19 +00:00
b9d6115994 pkgs: unbound-zones-adblock: remove unused 'rec' 2023-05-04 09:27:19 +00:00
beeafe5e33 home: nix: remove unused 'options' 2023-05-04 09:27:19 +00:00
c19baeb19d modules: system: podman: remove unused 'options' 2023-05-04 09:27:19 +00:00
62d9359eb7 modules: services: matrix: clean-up formatting 2023-05-04 09:27:19 +00:00
85e31e5d6c home: zsh: remove unused 'with pkgs' 2023-05-04 09:27:19 +00:00
185b1d5490 flake: remove unused 'lib' 2023-05-04 09:27:19 +00:00
9f3a8ac2bd home: zsh: extract aliases
All checks were successful
ci/woodpecker/push/check Pipeline was successful
It doesn't (yet?) support nushell, if I ever end up switching to it.
2023-05-03 20:20:07 +01:00
4feee73b8e home: vim: set 'splitkeep' 2023-05-03 20:02:34 +01:00
c117d1caed flake: checks: enable 'deadnix'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-05-03 15:22:52 +00:00
284b83b896 lib: ip: check range in 'nthInRange4' 2023-05-03 15:22:52 +00:00
dac80373a1 flake: nixos: use consistent module formatting 2023-05-03 15:15:31 +00:00
a868088cc9 treewide: rename unused overlay arguments
Now that `nix flake check` doesn't complain about it anymore, try to be
consistent about using that feature.
2023-05-03 15:15:31 +00:00
2f3989bba1 modules: services: wireguard: simplify 2023-05-03 15:15:31 +00:00
49b2cb9781 modules: secrets: remove unused 'options' 2023-05-03 15:15:31 +00:00
bd6b7ca9e2 flake: do not use explicit inputs
This ends up being more annoying than useful most of the time anyway...

Make a note that we can't just eta-reduce the outputs, due to a nix
limitation on flake outputs (see [1]).

[1]: https://github.com/NixOS/nix/issues/4384
2023-05-03 15:15:31 +00:00
debdadbd1a pkgs: woodpecker: do not name unused argument 2023-05-03 15:15:31 +00:00
6f3594b694 pkgs: woodpecker: remove unused inputs 2023-05-03 15:15:31 +00:00
0e7c0531f5 lib: string: remove unused 'let' block 2023-05-03 15:02:44 +00:00
7bd2e1504d home: vim: lua: lsp: customize diagnostics display 2023-05-03 15:02:44 +00:00
b0f054b1e6 home: vim: configure 'lsp_lines' 2023-05-03 15:02:44 +00:00
6cdbd6bb29 home: vim: lua: lsp: remove diagnostic on hover 2023-05-03 15:02:44 +00:00
29daa555a3 hosts: nixos: porthos: services: disable quassel
I don't use it anymore.
2023-05-03 15:02:44 +00:00
fadb8e96fc modules: system: nix: add 'cache.selfHosted' 2023-05-03 15:02:44 +00:00
20d19ed128 modules: system: nix: rename 'inputs' options 2023-05-03 15:02:44 +00:00
93bc5cbd01 nixos: porthos: services: enable nix-serve
Unfortunately, the priority cannot be changed and defaults to being
higher (by using a lower integer) than the NixOS cache...
2023-05-03 15:02:44 +00:00
f7df17686f nixos: porthos: secrets: add 'nix-serve/cache-key' 2023-05-03 15:02:44 +00:00
455a4e5431 modules: services: add nix-serve 2023-05-03 15:02:44 +00:00
872f045740 overlays: add 'nix-serve-ng-initLibStore' 2023-05-03 15:02:44 +00:00
fe8481292d flake: bump inputs 2023-05-03 15:02:44 +00:00
d9e115a876 modules: services: woodpecker: adapt gitea URL 2023-05-03 15:02:44 +00:00
e4e44dd8fa home: atuin: enable command line preview 2023-05-03 15:02:44 +00:00
f41fd5d42e home: atuin: use 'skim' engine 2023-05-03 15:02:44 +00:00
5a9e62d556 home: add atuin
I really like the `fzf` history widget, and this is not as good UI-wise.

However I like the fact that this uses a DB:

* It is more reliable when the history file gets messed up [1]
* It allows syncing between different hosts (not sure if I will use it)
* It adds more context to the search
    * The current directory
    * The shell _session_, I can *either* search all sessions or
      restrict to just the current one

I will be looking into whether or not I can hack something together to
get a better UI (by using `fzf` of course).
2023-05-03 15:02:44 +00:00
0ab56888bd home: extract dircolors configuration 2023-05-03 15:02:44 +00:00
1d7b9b99db home: extract fzf configuration 2023-05-03 15:02:44 +00:00
d8c841333b modules: services: gitea: migrate settings
Most of the settings are now RFC-42 compliant.
2023-05-03 15:02:44 +00:00
f47ac78370 flake: bump inputs 2023-05-03 15:02:44 +00:00
c82361f9e4 home: git: ignore neovim 'exrc' configuration 2023-05-03 15:02:44 +00:00
5c372cfa95 home: vim: use 'exrc'
Remove the home-grown "solution" that I had stolen from school (and
never used...) for project-local configuration.

Since [1], it is okay to use the built-in vim option for this, since it
only asks for user-input before trusting a file.

Since [2] they even support lua files!

[1]: https://github.com/neovim/neovim/pull/20956
[2]: https://github.com/neovim/neovim/pull/21436
2023-05-03 15:02:44 +00:00
0f385abf3c pkgs: fix 'nativeBuildInputs' usage 2023-05-03 15:02:44 +00:00
ce4e163193 pkgs: add wifi-qr 2023-05-03 15:02:44 +00:00
e9f07e67dc home: vim: add diff line matching
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This should bring more readable diffs. See [1].

[1]: https://github.com/neovim/neovim/pull/14537
2023-04-19 08:36:40 +00:00
2375f88e56 home: vim: use patience diff
This brings it in line with my `git` configuration.
2023-04-19 08:34:39 +00:00
d424aaa4a1 templates: c++-meson: add '.envrc'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
This was ignored when I added the initial commit.
2023-04-18 22:06:57 +01:00
638f4a7774 modules: system: boot: rename 'tmp' options
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-17 21:25:15 +02:00
f935126312 flake: bump inputs 2023-04-17 21:22:10 +02:00
af470f507b bootstrap: remove GPG setup step
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I don't use `git-crypt` anymore, this is no longer useful.
2023-04-17 09:28:23 +00:00
98c77cb258 bootstrap: rename agenix SSH key
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-17 08:18:27 +00:00
04d92a29e3 hosts: nixos: aramis: secrets: rename SSH key 2023-04-17 08:18:27 +00:00
7cebaa3751 modules: secrets: move wireguard keys
This is a bit special, as some of the keys do not belong to NixOS hosts,
so store those in the module itself, and into host-specific directories
for the keys that are NixOS hosts.
2023-04-17 08:18:27 +00:00
ed745602a1 modules: secrets: move non-existent key workaround
Since this configuration was only there to accommodate `aramis`, make it
be host-specific instead, and rely on the default value otherwise.
2023-04-16 19:44:02 +01:00
6079485b50 modules: secrets: move host-specific secrets 2023-04-16 19:44:02 +01:00
57008bcb7c hosts: nixos: add host-specific secrets module
This is the same logic as the common module, but for secrets that don't
need to be shared to different hosts.
2023-04-16 19:44:02 +01:00
34a3f9a0d6 modules: secrets: centralize agenix keys
If I intend on splitting the keys depending on which host needs to have
access to it, I should have a singular spot to manage the keys.
2023-04-16 19:44:02 +01:00
68bf36c45c modules: secrets: wireguard: remove unused file
The peer definitions have been inlined into the Wireguard module a long
time ago.
2023-04-13 17:05:52 +00:00
54e9303319 modules: secrets: use diff-friendly formatting
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-13 15:55:34 +00:00
04f23976ee modules: services: woodpecker: remove unused env
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-13 15:24:34 +00:00
94141d53b8 modules: services: woodpecker: remove 'TODO' 2023-04-13 15:17:16 +00:00
81f930168a flake: use 'defaultSystems'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
Instead of writing a list which amounts to the same thing.
2023-04-12 16:50:51 +00:00
520d799124 pkgs: remove 'pnpm-lock-export'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I don't need it now that it has been upstreamed.
2023-04-11 22:31:29 +01:00
0e5d40ef7f pkgs: woodpecker: add 'pnpm-lock-export' to update
Now that it has been upstreamed.
2023-04-11 22:31:28 +01:00
e8a31ddf8c flake: bump inputs 2023-04-11 22:31:28 +01:00
7b117d76de overlays: remove 'i3status-rust-main-program'
It is now included upstream.
2023-04-11 22:31:28 +01:00
b3e75b374a templates: add c++-meson 2023-04-11 22:31:28 +01:00
9822b034f7 templates: add c++-cmake 2023-04-11 16:26:56 +00:00
951770904f flake: add templates 2023-04-04 15:53:09 +00:00
9781ef06b0 home: wm: i3bar: better 'battery' formats
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-01 20:29:23 +01:00
72dd9ae834 home: wm: i3bar: fix 'battery' block icon 2023-04-01 20:29:23 +01:00
f15b3aa23d modules: services: woodpecker: allow setuid
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I need it to be able to use `ssh-agent`, for some of my workflows.
2023-04-01 21:06:50 +02:00
0da267664c ci: remove Drone CI
All checks were successful
ci/woodpecker/push/check Pipeline was successful
2023-04-01 17:14:13 +01:00
85f7a34d85 ci: add Woodpecker CI workflow
Some checks failed
continuous-integration/drone/push Build is failing
ci/woodpecker/push/check Pipeline was successful
2023-04-01 16:41:00 +01:00
29a1a48d19 pkgs: matrix-notifier: 0.2.0 -> 0.3.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-01 16:33:43 +01:00
ffd3fb06bd pkgs: refactor 'sha256' -> 'hash' 2023-04-01 16:33:26 +01:00
eb34d23e3d pkgs: lohr: 0.4.0 -> 0.4.2 2023-04-01 16:32:04 +01:00
8fa1b9952c pkgs: remove 'rofi-bluetooth'
Now that it is packaged upstream.
2023-04-01 16:22:08 +01:00
f9ddcff5ee home: wm: i3: use upstream 'rofi-bluetooth' 2023-04-01 16:20:55 +01:00
f6d648a87a pkgs: remove 'nolimips'
Now that the CRI packages it.
2023-04-01 16:20:29 +01:00
1221d5b6d6 pkgs: remove 'havm'
Now that the CRI packages it.
2023-04-01 16:20:05 +01:00
7a5842f03a modules: services: matrix: remove obsolete comment
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-01 15:56:48 +01:00
8d0f29bd33 hosts: nixos: porthos: services: set matrix secret 2023-04-01 15:56:48 +01:00
d20e921e33 modules: secrets: fix 'matrix/secret' 2023-04-01 15:56:48 +01:00
f306cc84bc hosts: nixos: porthos: services: enable woodpecker 2023-04-01 15:56:48 +01:00
7e06f75a5d modules: secrets: add woodpecker 2023-04-01 15:56:48 +01:00
020a32b9e8 modules: services: add woodpecker 2023-04-01 15:56:48 +01:00
c857e4cd2e pkgs: add woodpecker-plugin-git 2023-04-01 15:56:48 +01:00
ea57ad3eb8 pkgs: add woodpecker
This is just the same version as upstream, but following the `next`
version.
2023-04-01 15:56:48 +01:00
281d98b295 pkgs: add pnpm-lock-export 2023-04-01 13:05:47 +02:00
5d9524dbdf modules: services: blog: better blog redirection 2023-04-01 13:05:47 +02:00
9c36d65d80 home: ssh: use canonical gitea subdomain 2023-04-01 13:05:47 +02:00
b3b115ee1d home: ssh: use canonical gitea subdomain 2023-04-01 13:05:47 +02:00
84bed03367 home: ssh: remove old 'work' host
I don't work there anymore.
2023-04-01 13:05:47 +02:00
a22fe4e636 modules: services: nextcloud: bump to 26 2023-04-01 13:05:47 +02:00
04681f6ee4 flake: bump inputs 2023-04-01 13:05:47 +02:00
f0a93f878b home: nix: add 'NIX_PATH' handling
All checks were successful
continuous-integration/drone/push Build is passing
Still waiting for the actual home-manager module option to be added [1].

In the meantime, just do it by hand.

[1]: https://github.com/nix-community/home-manager/pull/2677
2023-03-30 09:58:46 +00:00
b909f43269 modules: services: nginx: sort settings
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-28 15:31:05 +00:00
cae174b0f7 modules: services: nginx: all recommended settings 2023-03-28 15:31:05 +00:00
838cdeb598 flake: bump inputs 2023-03-28 15:31:05 +00:00
642e58fc22 modules: hardware: bluetooth: use 'wireplumber'
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-28 15:31:05 +00:00
4183f7b963 hosts: homes: cloudtop: enable GPG
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-27 08:25:22 +00:00
76edeffdc7 home: pager: use XDG-compliant history location
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-27 08:23:58 +00:00
83268e7db6 home: xdg: force more XDG compliance
Thanks a to a nifty tool [1] I learnt about some more easy fixes.

[1]: https://github.com/b3nj5m1n/xdg-ninja
2023-03-27 08:23:58 +00:00
677a5a11e6 pkgs: unified-hosts-lists: 3.11.16 -> 3.12.15
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-24 20:46:48 +00:00
ddc296138c home: move gpg-specific alias to 'gpg'
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-24 11:18:08 +00:00
ad0c99c6f0 modules: services: paperless: fix postgres order
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-23 12:16:40 +00:00
1751704ab3 modules: system: podman: remove unused arguments
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-22 10:46:10 +00:00
e799318a36 modules: hardware: firmware: remove unused 'pkgs' 2023-03-22 10:45:13 +00:00
359456fbc1 home: terminal: alacritty: remove unused arguments 2023-03-22 10:45:13 +00:00
1ff03e35f8 flake: dev-shells: remove unused arguments 2023-03-22 10:45:13 +00:00
31601f58b4 flake: remove unused arguments 2023-03-22 10:45:13 +00:00
d8c19d45ad flake: checks: remove unused arguments 2023-03-22 10:45:13 +00:00
606cd8cf84 hosts: homes: add work cloudtop
All checks were successful
continuous-integration/drone/push Build is passing
The unfortunate host naming can't be fixed at the moment...
2023-03-20 09:52:05 +00:00
a046569743 flake: home-manager: use a more modular design
This means I can easily add new hosts now.
2023-03-20 09:52:05 +00:00
2fb3d0f9cf machines: rename to 'hosts/nixos'
This will be more consistent in the future if I want to introduce darwin
or home-manager configurations.
2023-03-20 09:52:05 +00:00
eac628963a flake: dev-shell: use exposed pre-commit script 2023-03-20 09:52:05 +00:00
8657774d06 flake: checks: use 'pre-commit-hooks' module 2023-03-20 09:52:05 +00:00
c82eb57070 flake: home-manager: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
59b1ab59dd flake: apps: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
ec036255ad flake: packages: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
2b969f7726 flake: dev-shells: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
e1e6c39bf1 flake: checks: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
730e4abf17 flake: nixos: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
b2f3bc955c flake: lib: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
a88c99b9d7 flake: overlays: convert to 'flake-parts' 2023-03-20 09:52:05 +00:00
922c6e75ca flake: use 'flake-parts' 2023-03-20 09:52:05 +00:00
92438d35f6 flake: add 'flake-parts' 2023-03-20 09:52:05 +00:00
84fc1601c5 home: vim: 'unimpaired' mappings for formatting
All checks were successful
continuous-integration/drone/push Build is passing
I'll migrate to calling the lua API directly if they stop expecting a
non-nil argument.
2023-03-20 09:52:05 +00:00
0241bfc781 home: vim: modify 'unimpaired' quickfix mappings 2023-03-20 09:52:05 +00:00
a166a5b18b overlays: remove 'i3status-rust_0_22'
All checks were successful
continuous-integration/drone/push Build is passing
We don't need it now that we updated to the latest version.

This reverts commit 704df6b826.
2023-03-19 22:28:45 +00:00
2e9704ed1d home: wm: i3: simplify status command
The v0.30.0 of `i3status-rs` automatically resolves a configuration name
inside its configuration directory, making this much simpler.
2023-03-19 22:28:27 +00:00
7cec58e215 home: wm: i3bar: update to v0.30.X
This should be equivalent to the previous version's configuration, since
v0.30.0 introduced a lot of breaking changes.
2023-03-19 22:28:27 +00:00
176ff5d6e3 flake: bump inputs
Since the v0.30.0 version of `i3status-rust` was a breaking change, pin
the package to v0.22.0 for now.
2023-03-19 22:26:25 +00:00
887428fddd home: wm: i3: use explicit path to bar config
The v0.30.0 is about to change how it resolves the configuration path,
so make it explicit to ease the transition and simplify later.
2023-03-19 22:25:53 +00:00
704df6b826 overlays: add 'i3status-rust_0_22'
The latest version introduced breaking changes, let's do that correctly.
2023-03-19 22:21:53 +00:00
c3c2a34606 overlays: add 'i3status-rust-main-program' 2023-03-19 21:34:15 +00:00
70e235dfcc modules: secrets: drone: modify gitea domain
Since I've changed the official subdomain for my forge, let's update it.
2023-03-16 21:40:06 +01:00
89256fa29b pkgs: use 'git.*' subdomain
Since I've changed the official subdomain for my forge, let's update it.
2023-03-16 21:40:06 +01:00
e50b259a70 modules: services: gitea: change domain to 'git.*'
Because cool URLs don't change [1], setup a re-directed for it.

[1]: https://www.w3.org/Provider/Style/URI.html
2023-03-16 21:33:22 +01:00
b3d90be8b1 modules: services: nginx: add 'redirect' option 2023-03-16 21:33:22 +01:00
05973b93ff home: tmux: add 'enabledPassthrough'
All checks were successful
continuous-integration/drone/push Build is passing
This is useful for cases where some programs expect to be able to use
the tmux passthrough escape sequences by using the tmux passthrough
sequence.

One such example is `osc52` script I packaged.

However I like the idea of tmux filtering all escape sequences by
default, so it's not enabled by default.
2023-03-16 16:42:55 +00:00
20341a3129 refactor: 'with lib.my' -> 'with lib' 2023-03-16 16:42:55 +00:00
464ed92b00 pkgs: diff-flake: re-order functions
All checks were successful
continuous-integration/drone/push Build is passing
This makes it more consistent across the entire file, and follows
alphabetical order (home -> host -> shell).
2023-03-16 11:49:26 +00:00
08740e846f pkgs: diff-flake: quote attribute names
Since we don't know if they contain `.` or other characters that might
need quoting.
2023-03-16 11:49:26 +00:00
66fc43f7ca pkgs: diff-flake: 0.3.1 -> 0.4.0
Add home-manager configurations.
2023-03-16 11:49:26 +00:00
a5da0abbc2 pkgs: diff-flake: 0.3.0 -> 0.3.1
Add all dev shells when run without any arguments.
2023-03-16 11:49:26 +00:00
b56674728f pkgs: diff-flake: 0.2.0 -> 0.3.0
Change how `devShells` is handled: always build for the current system
and instead query for the name of the shell that should be built.
2023-03-16 11:49:26 +00:00
5413bf7fbb flake: bump inputs
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-15 18:20:23 +00:00
1db162f272 home: zsh: add ctrl-{left,right} mapping 2023-03-15 18:20:23 +00:00
4f0a619921 home: zsh: add ctrl-delete mapping 2023-03-15 18:20:23 +00:00
69fbc438c1 home: zsh: add {home,end} mapping 2023-03-15 18:20:23 +00:00
c48f6261be home: zsh: add page{up,down} mapping 2023-03-15 18:20:23 +00:00
af8f3c814b home: zsh: ensure application mode with zle 2023-03-15 18:20:23 +00:00
2431f8f207 home: zsh: refactor 'terminfo' handling
This is more readable.

Largely inspired by oh-my-zsh.
2023-03-15 18:20:23 +00:00
bc5fa3f679 home: zsh: use terminfo for mappings 2023-03-15 17:40:05 +00:00
ca047bfe97 home: zsh: use more readable option names
All checks were successful
continuous-integration/drone/push Build is passing
Since they ignore underscores, this is more readable.
2023-03-15 15:20:14 +00:00
eb75fcfa3f home: zsh: enable slash squeezing 2023-03-15 15:20:14 +00:00
e8c52175b6 home: git: add 'root' alias
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-14 17:00:45 +00:00
623bb6c893 home: vim: git: attach to untracked buffers
All checks were successful
continuous-integration/drone/push Build is passing
Turns outs it looks way more discreet now. Whether that's due to an
update to the plug-in or my changing colorscheme, I don't know.
2023-03-13 15:49:07 +00:00
1e4d4650e2 home: zsh: disable shared history
All checks were successful
continuous-integration/drone/push Build is passing
I know I just activated it, but I can't get used to it...

I would like to have a mixture of it:
* Be able to search across *all* shell histories when using Ctrl-r.
* Only go up/down my session's shell history when using Ctrl-n/Ctrl-p.

Enabling shared history gets me the first one, but means I can't limit
my up/down history to just the one session.

Disabling shared history means that I can't search across all shell
histories, but keeps my up/down history tidier.

All-in-all I like the second one better.
2023-03-11 22:01:47 +00:00
fafbb93ea9 modules: home: use named 'nixosModules'
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-11 20:44:04 +00:00
2d2f729138 home: zsh: don't hard-code '$XDG_CONFIG_HOME'
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-08 14:42:54 +00:00
f1a7e9fd93 home: zsh: enable history sharing 2023-03-08 14:37:37 +00:00
7dd221cc93 home: zsh: expire duplicates first 2023-03-08 14:37:37 +00:00
ff66361f65 home: zsh: use extended history
I have `inc_append_history_time` set, so I should use extended
history...
2023-03-08 14:37:37 +00:00
4786552e8c home: zsh: verify history expansion
This helps when I absentmindedly run a command which contains
exclamation points.
2023-03-08 14:37:37 +00:00
9f6a9d2ff7 flake: move ouputs logic to 'flake/' 2023-03-08 14:37:37 +00:00
d14f96d584 flake: move 'nixosConfigurations' to 'flake/'
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-07 12:34:46 +00:00
40fff4b13a flake: move 'packages' to 'flake/' 2023-03-07 12:34:46 +00:00
1ae2bca445 flake: move 'devShells' to 'flake/' 2023-03-07 12:34:46 +00:00
fc02519c4f flake: move 'checks' to 'flake/' 2023-03-07 12:34:46 +00:00
90d1d81983 flake: move 'lib' to 'flake/' 2023-03-07 12:34:46 +00:00
819ce1a320 flake: move 'overlays' to 'flake/' 2023-03-07 12:34:46 +00:00
b9083244ed flake: add 'aarch64-darwin' again
I don't get an error during `nix flake check` anymore.

This reverts commit 8a556585af.
2023-03-07 12:34:46 +00:00
04734c8bd2 pkgs: ff2mpv-go: fix 'vendorHash' 2023-03-07 12:34:46 +00:00
8b7198d7e7 direnv: always use 'nix-direnv' 2023-03-07 11:51:04 +00:00
453e5a925a direnv: remove nix evaluation hack 2023-03-07 11:50:34 +00:00
3ed5e40285 flake: expose 'lib' attribute
This exposes `lib.my` which contains my custom library functions, as
well as the entirety of the nixpkgs library.
2023-03-07 11:05:07 +00:00
068faea1e2 home: zsh: extra-mappings: use single quotes
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-07 11:05:07 +00:00
41bd17e3ca home: vim: migrate to 'gruvbox-nvim'
I think this one will be more up-to-date with NeoVim evolutions, like
LSP semantic tokens.
2023-03-07 11:05:07 +00:00
a29deaa9bc home: vim: use 'lsp-formatting.nvim'
A few things that are different:
* Async by default.
* Takes care of the order of formatters, if I ever need to do that.
* Allows for easily disabling formatting (unfortunately this is global
  state, not buffer-local).
* Gets rid of the formatting pause when doing `:wq`.
2023-03-07 11:05:07 +00:00
3122db6536 home: vim: disable mouse integration 2023-03-07 11:05:07 +00:00
2a7e6197f5 flake: system-specific 'homeConfigurations' 2023-03-07 11:05:07 +00:00
4a6677b024 modules: system: nix: add 'linkInputs' option
All checks were successful
continuous-integration/drone/push Build is passing
Once again, mirroring the work done in the NixOS module.
2023-02-25 01:43:07 +00:00
ca1e2df1e9 home: nix: refactor module
This keeps it in line with the NixOS one.
2023-02-25 01:43:07 +00:00
58d03d5892 home: nix: add explanatory comment 2023-02-25 01:43:07 +00:00
8b9a01a0ef modules: system: nix: DRY inputs handling 2023-02-25 01:43:07 +00:00
3c6e8933a1 lib: attrs: add 'merge' 2023-02-25 01:43:07 +00:00
ae23f05a33 flake: bump inputs 2023-02-25 01:43:07 +00:00
54a6be70c8 modules: system: nix: simplify 'NIX_PATH'
Since we now have an explicit 'pkgs' link, we can just add the folder
with all linked inputs directly instead of adding them all manually.
2023-02-25 01:43:07 +00:00
a99954b12a modules: system: nix: add explicit 'pkgs' link 2023-02-25 01:43:07 +00:00
6eb87c21b7 modules: system: nix: use stable 'NIX_PATH'
All checks were successful
continuous-integration/drone/push Build is passing
Since the links are updated on system switch, NIX_PATH will
automatically point to the actual system version of the inputs at all
times
2023-02-23 21:03:22 +00:00
c1214547da modules: system: nix: add '/etc/nix/inputs' links 2023-02-23 20:58:05 +00:00
607d11bbad home: zsh: disable tmux auto-launch by default
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-22 16:12:30 +00:00
06989facc2 machines: porthos: home: enable tmux auto-launch
I'm about to flip the default to always disabled, so enable it
explicitly.
2023-02-22 16:12:07 +00:00
55b828cba9 machines: porthos: add home configuration 2023-02-22 16:12:07 +00:00
34c13b077f home: zsh: refactor tmux auto-launch configuration
Introduce an actual option for this behaviour.
2023-02-22 16:11:18 +00:00
0bbf522c03 home: tmux: change 'use lib.my' to 'use libs' 2023-02-22 16:00:26 +00:00
737747f8f5 flake: add 'homeConfigurations.ambroisie'
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-21 17:53:09 +00:00
ee6a735a2c home: add nix
This is basically the same thing as the NixOS module, except for
NIX_PATH handling [1].

[1]: https://github.com/nix-community/home-manager/pull/2677
2023-02-21 17:52:39 +00:00
3505b4d7f0 modules: services: sabnzbd: add fail2ban jail
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-20 23:01:50 +01:00
86aa156fc0 home: tmux: fix 'hasGui' logic
All checks were successful
continuous-integration/drone/push Build is passing
Take advantage of this fix to make the code more extensible.
2023-02-20 11:19:20 +00:00
54f335d984 home: tmux: always use tmux-yank
This plugin does have some useful binds.

Since it still sends the OSC52 escape sequence when copying, I don't
have a problem with remote hosts.
2023-02-20 11:19:13 +00:00
9965c3846f pkgs: add osc52
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-20 10:44:28 +00:00
2485a60d62 modules: services: calibre-web: add fail2ban jail
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-20 09:04:50 +00:00
b9f6c5d534 modules: services: gitea: add fail2ban jail 2023-02-20 09:04:50 +00:00
d647830911 modules: services: order imports 2023-02-20 09:04:50 +00:00
b2ce0530dc machines: porthos: services: enable fail2ban 2023-02-20 09:04:50 +00:00
13aa8abfaf modules: services: add fail2ban 2023-02-20 09:04:50 +00:00
4e59c0d551 home: firefox: tridactyl: fix DDG mapping
All checks were successful
continuous-integration/drone/push Build is passing
They broke, once again...
2023-02-19 14:16:13 +00:00
75396c4c4c home: firefox: tridactyl: use more private editor
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-19 14:12:09 +00:00
5d42f55fc6 home: firefox: tridactyl: fix 'editorcmd'
All checks were successful
continuous-integration/drone/push Build is passing
Turns out `alacritty` is smarter than `termit` with its handling of
command execution (i.e: actually expects multiple arguments to exec(2)).

So account for the difference in the module.
2023-02-19 14:02:57 +00:00
e667c042cb home: zsh: add colorful aliases
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-19 12:25:40 +00:00
225e8f236e home: vim: ftdetect: add direnv
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-17 15:53:55 +00:00
2ec9aae6b7 home: pager: remove colored man pages
All checks were successful
continuous-integration/drone/push Build is passing
It seems to have broken at some point, and I didn't notice.

Might as well remove it since I do not care for it.
2023-02-16 12:06:28 +00:00
a61a602bd2 home: ssh: include local-only config file
Useful for configuration options that should remain secret.
2023-02-15 15:02:15 +00:00
b4d050a5f8 machines: aramis: home: migrate to 'alacritty'
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-12 17:35:14 +00:00
e8a46ae248 home: firefox: tridactyl: use preferred terminal
Thankfully, alacritty and termite both use the same command line
arguments for this. If I ever want to use another one, I might have to
make the logic a bit more robust.
2023-02-12 17:33:45 +00:00
4f883b0198 home: terminal: remove DPI workaround
And instead change the font size to be *about* right.
2023-02-12 17:32:48 +00:00
f89e10fdca home: terminal: add alacritty 2023-02-12 16:57:54 +00:00
b6bbe5a01e home: firefox: tridactyl: move cursor in editor
This means that the cursor in vim will be in the same position as the
one in the input form.
2023-02-12 16:57:54 +00:00
d25922ef15 home: packages: remove 'termite.terminfo' 2023-02-12 16:46:18 +00:00
c1c3146311 home: zsh: always enable VTE integration 2023-02-12 16:43:55 +00:00
70f5e46860 home: tmux: fix OSC52 forwarding
All checks were successful
continuous-integration/drone/push Build is passing
I want neovim to be able to set my clipboard, and don't care for the
potential security issues of letting any program be able to do such a
thing.
2023-02-12 12:03:10 +00:00
2ffb8e6ee6 home: vim: add 'nvim-osc52'
All checks were successful
continuous-integration/drone/push Build is passing
I do get the message when copying into the clipboard while ssh-ing.

But trying to paste from my system clipboard shows that it did *not* get
copied. This seems to only happen inside tmux.

However tmux itself *does* copy to the clipboard correctly through OSC52.
2023-02-12 11:55:58 +00:00
fe73a304aa flake: bump inputs 2023-02-12 12:40:03 +01:00
e04fa74412 home: vim: lua: utils: add 'is_ssh'
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-11 22:17:22 +00:00
5bce2fafde modules: system: nix: override '<nixpkgs>'
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-11 11:04:10 +00:00
26bf4e3631 modules: system: nix: preprend to 'NIX_PATH'
Instead of appending to the default value.

This makes overriding some values that are defined as the default value easier.
2023-02-11 11:04:10 +00:00
8dcc59d481 flake: bump inputs
All checks were successful
continuous-integration/drone/push Build is passing
And migrate firefox extensions configuration to the profile-specific
format.
2023-02-08 22:02:40 +00:00
0a71548419 flake: bump inputs 2023-02-08 21:06:18 +00:00
2a26f65a51 flake: futils has renamed its branch to 'main' 2023-02-08 21:05:52 +00:00
699b6b8e33 home: zsh: include local-only config file
All checks were successful
continuous-integration/drone/push Build is passing
Useful for configuration options that should remain secret.
2023-02-08 14:44:23 +00:00
3a0fa3398d home: zsh: modify 'initExtra' inclusion style 2023-02-08 14:43:39 +00:00
938fb71f9c home: git: include local-only config file
Useful for configuration options that should remain secret.
2023-02-08 14:31:32 +00:00
5a07dda93b home: git: setup work identity
Now that I am at Google, gotta make sure I use the correct identity.
2023-02-08 14:24:05 +00:00
2b3fb4fa5a home: vim: use shorter tree-sitter alias 2023-02-08 14:03:23 +00:00
0e4a4df544 home: zsh: add usual aliases
I forgot to add them, since on NixOS they are defined at the system
level by default.
2023-02-08 10:36:10 +00:00
4971634115 home: vim: make it the default editor explicitly 2023-02-07 14:19:50 +00:00
6b4c01a242 modules: services: ssh-server: use 'settings' 2023-01-28 22:51:18 +01:00
0821334a0a flake: bump inputs 2023-01-28 22:51:18 +01:00
b4d745c50e home: vim: add 'cmp_luasnip'
I had forgotten to add it even though I configured it as a source...
2023-01-20 19:16:20 +00:00
19e42cdc26 home: vim: reorder snippet plugins 2023-01-20 19:15:31 +00:00
5f3299e383 home: vim: luasnip: use lazy-loading 2023-01-20 19:10:14 +00:00
c45b8c7618 machines: aramis: change timezone
I'm in London now :').
2023-01-17 01:11:53 +01:00
dc429b5491 machines: aramis: home: remove 'teams' 2023-01-14 20:12:51 +01:00
280593b9c0 flake: bump inputs 2023-01-14 20:11:10 +01:00
92e63eae25 home: firefox: remove 'https-everywhere'
It's been made redundant.
2023-01-14 20:10:56 +01:00
0ff4d2de01 flake: bump inputs 2023-01-04 12:39:30 +01:00
aeb3245327 modules: services: blog: GNU T.P. 2022-12-18 12:59:42 +01:00
c961bdbfc4 modules: services: transmission: remove MemoryHigh
The service does not actively try to reduce its memory usage, so to make
sure we do reach `MemoryMax` let's remove the `MemoryHigh`
configuration.
2022-12-16 21:43:49 +01:00
c6b3325269 profiles: printing: setup default paper size 2022-12-16 12:56:16 +01:00
0b7257cfb9 machines: aramis: use 'printing' profile 2022-12-16 12:56:16 +01:00
5f8ffe5af9 profiles: add printing 2022-12-16 12:56:16 +01:00
18f81a05eb home: mail: disable himalaya
I don't actually use it, should circle back to it in the future.
2022-12-16 12:56:16 +01:00
6913e0f896 flake: bump inputs
Some new options were needed for `himalaya`.
2022-12-16 12:55:01 +01:00
1e10c6630b modules: services: nginx: fix SSL renewal
See this issue [1].

[1]: https://github.com/go-acme/lego/issues/1772.
2022-11-29 17:19:24 +01:00
b85a98c377 modules: services: nextcloud: disable broken SSE
I don't use server-side encryption anyway.
2022-11-28 10:18:50 +01:00
072511a091 flake: bump inputs
And reduce the closure size of 'pre-commit-hooks.nix' by making it
follow my 'nixpkgs' input.
2022-11-28 10:17:37 +01:00
a73a05e0ac profiles: devices: enable gvfs 2022-11-23 11:23:54 +01:00
122eaf3a5c profiles: wm: enable 'udisks2' 2022-11-21 14:50:09 +01:00
1967c8ef79 modules: services: transmission: limit memory use 2022-11-20 13:15:58 +01:00
7ce0a4ad5c flake: bump inputs 2022-11-17 12:51:02 +01:00
16d4147321 home: vim: lspconfig: update deprecated call 2022-11-03 18:07:00 +01:00
236d48befb home: vim: lua: lsp: update for nvim 0.8
Two big changes:

* Making use of the lua API for creating autocmds.
* Using `client.supports_method`.
2022-11-03 18:07:00 +01:00
f6a00ec838 modules: services: paperless: require postgres 2022-11-03 18:06:36 +01:00
05be340b7e modules: services: nextcloud: bump to 25 2022-11-03 16:59:19 +01:00
30ce88f42f flake: bump inputs
And migrate to the new RFC42 grafana options.
2022-11-03 16:58:47 +01:00
3c3e56002f home: vim: add 'nix' ftplugin 2022-10-26 14:14:01 +02:00
e0b7103c8d home: wm: i3: add floating-related mappings 2022-10-04 11:40:44 +02:00
d0394bd149 flake: bump inputs 2022-09-30 08:59:27 +02:00
4c0c6a75b2 modules: system: packages: configure aliases
Disallow them by default, but make it configurable.
2022-09-30 08:59:27 +02:00
5e021e6436 all: remove package aliases 2022-09-30 08:59:27 +02:00
84217afd07 pkgs: remove 'psst'
It has been included in nixpkgs.
2022-09-30 08:59:27 +02:00
ad57052317 pkgs: unified-hosts-lists: 3.10.1 -> 3.11.16 2022-09-14 14:36:26 +02:00
aed2e8c581 flake: bump inputs 2022-09-14 13:41:07 +02:00
4216c654e7 home: vim: migrate to 'nvim-surround'
It's potentially more customizable, and integrates with tree-sitter. It
also allows for buffer/filetype specific pairs.
2022-09-02 09:56:20 +02:00
e1e5a7c900 flake: bump inputs 2022-09-02 09:49:35 +02:00
c05fafefe8 modules: services: gitea: migrate to 'settings' 2022-08-31 17:19:58 +02:00
6748b5b5e6 home: mail: accounts: use 'outlook' flavor 2022-08-31 17:16:44 +02:00
235ab4794e flake: bump inputs 2022-08-31 17:16:44 +02:00
3efba75169 home: gdb: fix auto-load safe path 2022-08-10 15:23:21 +02:00
48495851ba modules: services: grocy: fix SSL configuration 2022-07-28 18:29:10 +02:00
58971246e7 machines: porthos: services: enable grocy 2022-07-28 18:29:10 +02:00
2ba9c63f2e modules: services: add grocy 2022-07-28 18:29:10 +02:00
914b064f72 modules: services: paperless: fix DB dependency 2022-07-28 17:54:02 +02:00
cde010a5f2 flake: bump inputs 2022-07-12 13:48:25 +02:00
468fbdd69a home: xdg: do not set 'WGETRC'
I don't use it...
2022-07-11 14:11:43 +02:00
9f82981602 home: vim: add 'nvim-lspconfig'
For some reason I had not added it to my plug-in list, but it still
worked until I bumped my inputs.
2022-06-23 10:02:32 +02:00
3eb1dc086b lib: fix formatting 2022-06-22 16:06:58 +02:00
8a556585af flake: remove 'aarch64-darwin'
'pyopenssl' has been marked as broken on this sytem, so remove it from
my supported systems to avoid breaking 'nix flake check'.
2022-06-22 16:05:28 +02:00
c3706ff537 flake: bump inputs 2022-06-22 16:04:01 +02:00
7ab49dbeab pkgs: remove 'shellcheck' as a 'buildPhase'
I already verify those scripts with my pre-commit hook. And that way
avoid spurious build failures in case a (transitive) dependency is
broken.
2022-06-22 16:04:01 +02:00
9c80bc07b9 pkgs: add drone-rsync
A very simple wrapper script that I will migrate to, since 'drone-scp'
does not work for me anymore.
2022-06-20 14:34:37 +02:00
7e4e41a07f home: vim: add 'tiger' file-type configuration 2022-06-20 14:33:44 +02:00
a8093bd621 pkgs: drone-scp: 1.6.2 -> 1.6.3 2022-06-15 11:27:03 +02:00
530fb66e19 home: migrate 'cursor' module to new option
Make it part of 'home.wm' now, since that makes more sense.

Not sure about making it related to 'i3' being activated though, will
need to think about this in the future.
2022-06-15 11:27:03 +02:00
341450db5c home: vim: ftdetect: add tiger 2022-06-15 11:27:03 +02:00
37d272fcfb modules: services: lohr: add 'openssh'
The git binary is not wrapped to add it in PATH anymore.
2022-05-31 13:54:34 +02:00
9f2bbaeff9 machines: aramis: home: add 'element-desktop'
It's less buggy than the web version...
2022-05-31 13:50:27 +02:00
eb0f923b46 flake: bump inputs 2022-05-31 13:48:18 +02:00
7689df40a4 pkgs: diff-flake: 0.1.0 -> 0.2.0
Use the new flake attributes conventions.
2022-05-31 13:42:57 +02:00
e35a4a1bd3 flake: use new default app convention 2022-05-31 13:41:49 +02:00
e2098358ae overlays: remove 'sabnzbd-fix-missing-packages'
The upstream nixpkgs version has been fixed.
2022-05-31 11:07:32 +02:00
7fe49890be overlays: remove 'transgui-fix-duplicate-status'
It has been patched in upstream nixpkgs.
2022-05-31 11:06:58 +02:00
052d5a3df7 modules: services: nextcloud: bump to 24 2022-05-23 15:49:22 +02:00
641254614c flake: bump inputs 2022-05-23 15:46:07 +02:00
6fbacb8e59 pkgs: unified-hosts-lists: 3.9.11 -> 3.10.1 2022-05-23 11:07:05 +02:00
489b79f078 home: vim: completion: activate 'ghost_text'
I'm still thinking whether I would want to use one of those signature
helper windows to go with this/replace this feature.

Could be especially useful in C++.
2022-05-19 14:53:09 +02:00
50bf8b036b pkgs: dragger: fix meta information 2022-05-15 19:07:49 +02:00
80c5748122 home: packages: remove 'rr'
No need for this, now that I have a dedicated option for the package.
2022-05-10 13:51:49 +02:00
a625f5b741 home: wm: i3: simplify 'htop' rule
Turns out you can chain commands with `,` in a `for_window` statement.

Of course this is inconsistent with `bindsym` which uses `;`...
2022-05-03 10:01:42 +02:00
46affd5057 modules: hardware: bluetooth: remove wireplumber
This configuration file completely breaks my sound setup.

Will investigate more at a later time, in the mean time, since this is
basically the default options, I will just remove the configuration
file.

This reverts commit c987206bc5.
2022-05-02 11:18:23 +02:00
ea5e1042b4 flake: bump inputs 2022-04-28 13:45:55 +02:00
9e9c7faf0d machines: aramis: hardware: use 'hardware' module 2022-04-27 14:03:18 +02:00
43cb3ae582 modules: hardware: add firmware 2022-04-27 14:03:18 +02:00
cb84b49438 modules: hardware: bluetooth: add wireplumber conf
Now that `media-session` is deprecated, I should at least replicate this
configuration for `wireplumber`.
2022-04-27 14:03:10 +02:00
93e50508c9 home: vim: lua: lsp: add signature help mapping 2022-04-27 14:02:17 +02:00
70fc01d5df home: firefox: tridactyl: fix comment toggle
Ignore javascript event, like the upstream binding.
2022-04-27 14:02:17 +02:00
e514389a3d home: firefox: tridactyl: add 'Nitter' redirect 2022-04-27 14:02:17 +02:00
5c7c89519b profiles: gtk: remove typo 2022-04-27 14:02:17 +02:00
e591344eb3 home: vim: git: map keys on start
Instead of mapping those keys when `gitsigns` attaches to a buffer...
2022-04-27 14:02:17 +02:00
481d5f6f53 home: vim: lualine: use 'FugitiveHead'
The built-in `branch` indicator does not handle git worktrees quite
correctly.

It shows the wrong branch when used in `git commit`.
2022-04-27 14:02:17 +02:00
0caa78af10 flake: bump inputs
And ensure that the renamed `paperless` services are configured
correctly.
2022-04-27 14:02:17 +02:00
223f09b655 flake: update from deprecated flake attributes 2022-04-18 14:11:46 +02:00
ed8aae565e home: direnv: allow specifying default flake 2022-04-13 10:06:26 +02:00
9a57ba02b7 home: direnv: add 'nix' library file 2022-04-13 10:04:54 +02:00
90053e52e1 home: direnv: add 'python' library file 2022-04-13 09:20:52 +02:00
8ec992cbe3 home: direnv: add 'postgres' library file 2022-04-12 17:34:36 +02:00
e3f021e832 flake: only use subset of systems
Turns out pre-commit pulls dotnet in its closure, which is not supported
on i686...
2022-04-12 10:45:04 +02:00
b6ca6b28b9 overlays: remove vim-plugins-overrides 2022-04-12 10:45:04 +02:00
f637401cd6 home: zsh: use packaged 'agkozak-zsh-prompt' 2022-04-11 18:33:15 +02:00
13a218f2db flake: bump inputs 2022-04-11 18:33:15 +02:00
e2e11d08bd machines: aramis: networking: disable DHCP
Let NetworkManager take care of it, this avoids the "waiting for dhcpd"
message when shutting down my laptop.
2022-04-09 15:27:27 +02:00
676281d18b machines: porthos: services: set-up gitea mail 2022-04-08 21:34:44 +02:00
a9e004f7c1 modules: secrets: gitea: add 'mail-password' 2022-04-08 21:34:44 +02:00
94143f9d33 modules: services: gitea: add 'mail' configuration 2022-04-08 21:34:44 +02:00
d1f6a4933f flake: bump inputs 2022-04-04 16:20:55 +02:00
7334a84a77 home: wm: i3: bigger 'htop' window
It seems like one cannot use multiple commands in a `for_window`
directive. So use two different ones.
2022-03-29 15:49:08 +02:00
15602412c8 home: gdb: remove HOME pollution
Now that the version in nixpkgs contains the patch to look at
XDG_CONFIG_HOME, use only that one.
2022-03-25 15:49:05 +01:00
581aa1b4e3 machines: aramis: hardware: fix trackpoint device
My trackpoint, and its buttons, had stopped working a while ago. Before
that, I regularly had problems where the cursor jumped around randomly,
or the buttons stopped working.

This seems to have fixed it.
2022-03-14 14:33:12 +01:00
bab317e2f4 home: vim: null-ls: prefer 'pflake8' if available 2022-03-11 14:30:27 +01:00
1801d008d9 overlays: add vim-plugins-overrides 2022-03-11 14:28:09 +01:00
b71be091a2 home: git: use 'zdiff3' merge conflict markers
See GitHub's presentation about this feature [1].

[1]: https://github.blog/2022-01-24-highlights-from-git-2-35/
2022-03-11 14:11:32 +01:00
20e0a96e65 home: vim: telescope: add 'which-key' mapping
This opens a little preview window with different mappings for
telescope.
2022-03-11 14:11:07 +01:00
fda1b235bc home: vim: telescope: disable scrolling up 2022-03-11 14:03:18 +01:00
7060891b2d home: vim: set 'termguicolors'
For once, I like the look *with* 24-bit colors better on this current
color-scheme.
2022-03-11 14:02:01 +01:00
6417b5f4ba home: vim: sort plugin list 2022-03-11 10:08:25 +01:00
d103cbbb0e home: wm: i3bar: show microphone status 2022-03-09 12:09:43 +01:00
8d4a1e61b4 home: vim: telescope: add LSP handler 2022-03-08 20:57:28 +01:00
4c5c9deaae home: vim: move 'on_attach' to 'ambroisie.lsp' 2022-03-08 20:20:22 +01:00
fc35502141 home: vim: lspconfig: use actual 'lspconfig' name 2022-03-08 20:18:02 +01:00
0db2c0a13c modules: services: matrix: use 'settings'
The unstructured attributes are hard-deprecated.
2022-03-08 11:56:32 +01:00
ba6c8bff2e flake: bump inputs 2022-03-08 10:41:35 +01:00
32890d6cf2 home: vim: completion: do not use tab to select
I would rather have my actual preferred mappings, <C-n> and <C-p>, for
that.
2022-03-08 10:41:35 +01:00
3673ec604a home: vim: lualine: remove 'fzf' integration
I do not use 'fzf' anymore.
2022-03-08 10:41:35 +01:00
1f8882b415 home: vim: configure 'luasnip' 2022-03-08 10:41:35 +01:00
a923c2c30e home: vim: add 'friendly-snippets' 2022-03-08 10:41:35 +01:00
37552d6508 home: vim: completion: remove up/down mappings
I do not use arrow keys, why bother with them.
2022-03-08 10:41:35 +01:00
85a7e200ad home: vim: add 'nvim-ts-context-commentstring' 2022-03-08 10:41:35 +01:00
fa8961c9d9 home: vim: comparison: stronger priority hint 2022-03-08 10:41:35 +01:00
01f2dfd028 home: vim: completion: configure snippets 2022-03-08 10:41:35 +01:00
551ef640fc home: vim: sort plugin list 2022-03-08 10:41:35 +01:00
fb3b773249 home: vim: add 'luasnip' 2022-03-08 10:41:35 +01:00
975f8687fc home: vim: completion: add mapping to scroll docs 2022-03-08 10:41:35 +01:00
506c52fb83 home: vim: completion: add 'cmp-under-comparator' 2022-03-08 10:41:35 +01:00
0f140bbc9d home: vim: completion: explicit mappings
This is basically a copy-paste of the default mappings, with some small
amount of customization.
2022-03-08 10:41:35 +01:00
d35c675ace home: vim: configure 'dressing-nvim' 2022-03-08 10:41:35 +01:00
0b2911e49e home: vim: add 'dressing-nvim' 2022-03-08 10:41:35 +01:00
9364fe546d home: vim: telescope: set-up 'fzf' matching 2022-03-08 10:41:35 +01:00
8b4da72c84 home: vim: add 'telescope' grep mappings 2022-03-08 10:41:35 +01:00
7fec5f870a home: vim: replace 'fzf' with 'telescope'
I like the fact that it uses built-in buffers to preview files.

It also has more inertia behind it, tighter integrations in the
ecosystem.
2022-03-08 10:41:35 +01:00
5e3bd82f8b home: packages: add 'fd' 2022-03-08 10:41:35 +01:00
62e29fc622 home: packages: add 'ripgrep' 2022-03-08 10:41:35 +01:00
b8bd1ef2b4 home: vim: completion: limit 'buffer' suggestions
Otherwise it gets overwhelming, and most are useless.
2022-03-08 10:41:35 +01:00
5b8e410596 home: vim: completion: use better order 2022-03-08 10:41:35 +01:00
aac464c9a2 home: vim: completion: use native menu 2022-03-08 10:41:35 +01:00
8bcd40633a home: vim: configure 'nvim-cmp' for LSP 2022-03-08 10:41:35 +01:00
bceb531518 home: vim: add 'cmp-nvim-lsp' 2022-03-08 10:41:35 +01:00
15b3766aef home: vim: configure 'nvim-cmp' 2022-03-08 10:41:35 +01:00
02225dcb93 home: vim: add 'nvim-cmp' 2022-03-04 17:40:30 +01:00
d006ba4611 home: vim: git: more visual mappings
I cannot use the functions directly, as I would need to calculate the
current selections begin and end points and use them as arguments.

To be investigated.
2022-03-04 17:40:30 +01:00
714eb8ca2d home: vim: git: 'gitsigns' mappings are per buffer 2022-03-04 17:40:30 +01:00
10635e0888 home: vim: git: use more appropriate mapping names 2022-03-04 17:40:30 +01:00
f374a4f78c home: vim: lsp: add diagnostic mappings 2022-03-04 17:40:30 +01:00
ac0df2552a home: vim: lsp: add workspace mappings 2022-03-04 17:40:30 +01:00
eaeb9db76f home: vim: add 'dump' utility function 2022-03-04 17:40:30 +01:00
2ad4ba563d home: vim: remove 'fastfold'
I don't think I need it anymore, neovim improves the native performance
well enough.
2022-03-04 17:40:30 +01:00
f10d3f7310 home: vim: add mappings for LSP functionality 2022-03-04 17:40:30 +01:00
bde9bef1c9 home: vim: don't use 'nixpkgs-fmt' with 'rnix' 2022-03-04 17:40:30 +01:00
8b4a5e174f home: vim: add 'rnix' LSP configuration 2022-03-04 17:40:30 +01:00
997b98f49b home: vim: add 'clang-tools' to vim package
It includes both `clangd` and `clang-format`, even though I'm mostly
looking for the later.
2022-03-04 17:40:30 +01:00
03564813af home: vim: add linters & formatters to vim package
I use them so often, I basically always want them available.
2022-03-04 17:40:30 +01:00
7546417782 home: vim: add 'shellcheck' code actions 2022-03-04 17:40:30 +01:00
c28710773b home: vim: rename 'git'-related settings file
Now that it contains more settings than just 'gitsigns'.
2022-03-04 17:40:30 +01:00
b6435f0d57 home: vim: centralise 'git'-related mappings 2022-03-04 17:40:30 +01:00
03e412b2f0 home: vim: configure 'gitsigns'
And remove some unused mappings, or adapt them to 'gitsigns'.
2022-03-04 17:40:30 +01:00
267b82393f home: vim: add 'gitsigns-nvim' 2022-03-04 17:40:30 +01:00
8a6a18732a home: bat: use 'gruvbox-dark' theme
To match my `vim` configuration.
2022-03-04 17:40:30 +01:00
2eb1f5cc44 home: vim: prefer 'clangd' to 'clang-format'
Only use `clang-format` if `clangd` is not available, as its formatting
is otherwise built into the LSP server.
2022-03-04 17:40:30 +01:00
12d2436713 home: vim: use 'unimpaired' mappings for quickfix 2022-03-04 17:40:30 +01:00
b6d1702726 home: zsh: add 'zsh-completions' when enabled
Notably useful for `git-revise`.
2022-03-04 17:40:30 +01:00
4356ae0f36 home: zsh: refactor 'mkIf' block 2022-03-04 17:40:30 +01:00
e2be5f6139 home: zsh: use packaged 'fast-syntax-highlighting' 2022-03-04 17:40:30 +01:00
bce9855da1 home: vim: show LSP progress in status line 2022-03-04 17:40:30 +01:00
2152f9dd1e home: vim: switch to 'lualine' 2022-03-04 17:40:30 +01:00
9c3daae2b8 home: vim: add function to list LSP client names 2022-03-04 17:40:30 +01:00
ea9a0d835b home: vim: remove unused 'gruvbox' configuration 2022-03-04 17:40:30 +01:00
d3c04107bf home: vim: move diagnostics config to 'on_attach' 2022-03-04 17:40:30 +01:00
336d86d2d8 home: vim: add 'clangd' LSP configuration 2022-03-04 17:40:30 +01:00
ae94693540 home: vim: add 'rust-analyzer' LSP configuration 2022-03-04 17:40:30 +01:00
84188cb7fa home: vim: add basic LSP configuration
Trying it out with `pyright` for now.
2022-03-04 17:40:30 +01:00
53d84b884d home: vim: move LSP-related 'on_attach' to 'utils'
As it will be shared between `null-ls` and `lspconfig`, it makes sense
to put it there.
2022-03-04 14:54:14 +01:00
9dc910eae3 home: vim: add diagnostic navigation mappings 2022-03-04 14:51:44 +01:00
260f5cd66a home: vim: do not use 'ftplugin' for 'null-ls'
Unfortunately, this registers the sources many times...

I fear that I will have to settle for a centralised configuration for
LSP-related options.
2022-03-04 14:14:30 +01:00
fb49a1df14 home: vim: only use 'null-ls' sources if available
This avoids the big red warning on each file that tries to use those
sources...
2022-03-03 18:15:28 +01:00
8155f6be4c home: vim: add 'ambroisie.utils' lua module 2022-03-03 18:15:28 +01:00
8b84ab8625 home: vim: add statement objects/moves
And document it.
2022-03-03 18:15:28 +01:00
56554f1a7a home: vim: document 'tree-sitter' moves 2022-03-03 18:15:28 +01:00
8ad5327c89 home: vim: add 'tree-sitter' moves 2022-03-03 18:15:28 +01:00
063686433f home: vim: document 'treesitter-textobjects' maps
By using 'which-key'.
2022-03-03 18:15:28 +01:00
a5ec91088d home: vim: add 'treesitter-textobjects' 2022-03-03 18:15:28 +01:00
e81aee50e3 home: vim: remove mapping to run 'make' 2022-03-03 18:15:28 +01:00
1408d7735a home: vim: document 'commentary' mappings
By using 'which-key'.
2022-03-03 18:15:28 +01:00
2713270378 home: vim: document 'unimpaired' mappings
By using 'which-key'.
2022-03-03 18:15:28 +01:00
4fec4d499d home: vim: use 'which-key' 2022-03-03 18:15:28 +01:00
9e7f7ed736 home: vim: add 'which-key-nvim' 2022-03-02 12:30:53 +01:00
b76af022bd home: vim: move leader mappings to 'init.vim' 2022-03-02 12:30:53 +01:00
8b570694cd home: vim: remove unused mappings
The beancount mappings are absolutely unused.

The `Y` mapping is built in NeoVim nowadays.
2022-03-02 12:30:53 +01:00
d15bc59b74 home: vim: remove unimpaired mappings
I do not use `azerty` anymore, no need for those.
2022-03-02 12:30:53 +01:00
875c3c8886 home: vim: remove 'lsp_lines'
I like the hovering behaviour better, it's less "in your face".

I might revisit the idea in the future, as a toggled mapping.
2022-03-02 12:30:53 +01:00
9caf296d52 home: vim: show diagnostics on hover
Ideally, I want the following features:
* diagnostic icons in the sign column always,
* virtual text on the current line only
* switch to hover window and/or lsp_lines display through a mapping
2022-03-02 12:30:53 +01:00
fba2403bf3 home: vim: configure short 'CursorHold' timeout 2022-03-02 12:30:53 +01:00
5437b45a02 home: vim: configure diagnostics further
This is not only 'lsp_lines' configuration anymore, but the whole
display of diagnostics.
2022-03-02 12:30:53 +01:00
bbc32d6030 home: vim: add 'nvim-treesitter'
IMHO, this is *very* colorful, I might not end up using the highlighting
after all.

Let's see if I get used to it after a little while.
2022-03-02 12:30:53 +01:00
c3b0b9c607 home: vim: make python formatting faster 2022-03-02 12:30:53 +01:00
58de8106a1 home: vim: add 'lsp_lines'
I dislike the diagnostics *next* to affected lines.

This looks neater, though the best look would be a simple hover window
or status line message instead, like ALE used to do.

It might grow on me however.
2022-03-02 12:30:53 +01:00
54ad5d9282 home: vim: configure 'null-ls' for 'nix' 2022-03-02 12:30:53 +01:00
300ce25c8e home: vim: keep space after shell redirections 2022-03-02 12:30:53 +01:00
7d361023bc home: vim: show error codes from 'shellcheck' 2022-03-02 12:30:53 +01:00
3e60cb5be1 home: vim: configure 'null-ls' for 'python' 2022-03-02 12:30:53 +01:00
9a9e50f7a8 home: vim: configure 'null-ls' for 'cpp' 2022-03-02 12:30:53 +01:00
a59884b59c home: vim: configure 'null-ls' for 'c' 2022-03-02 12:30:53 +01:00
d52833f3a3 home: vim: add formatting on save with 'null-ls' 2022-03-02 12:30:53 +01:00
ccbf73385e home: vim: configure 'null-ls' for 'haskell' 2022-03-02 12:30:53 +01:00
0b4d39c771 home: vim: configure 'null-ls' for 'zsh' 2022-03-02 12:30:53 +01:00
ba3ab14ac3 home: vim: configure 'null-ls' for 'sh' 2022-03-02 12:30:53 +01:00
e760f5aeaa home: vim: configure 'null-ls' for 'bash' 2022-03-02 12:30:53 +01:00
e1a8c9e563 home: vim: add 'null-ls' 2022-03-02 12:30:53 +01:00
6f57a03940 home: vim: configure 'lightline-lsp'
This pretty much replace 'lightline-ale' for me now.

At least it will, once I have configured some LSP clients.
2022-03-02 12:30:53 +01:00
ad7b9a574d home: vim: add 'lightline-lsp' 2022-03-02 12:30:53 +01:00
039c6390a3 home: vim: remove 'quickfixed' functionality
I never use it anymore...
2022-03-02 12:13:13 +01:00
5c3d3f5f1c home: vim: remove 'ALE' configuration
First step to modernising my configuration to use the native LSP client
instead.
2022-03-02 12:13:13 +01:00
cc91b88b28 flake: bump inputs
And do not use 'pipewire-media-session' which is deprecated.
2022-03-02 12:13:13 +01:00
ef36a100af home: vim: fix icon for read-only files 2022-02-23 21:06:12 +01:00
1b829076f8 flake: bump inputs 2022-02-21 18:53:56 +01:00
a6a64047de home: wm: i3: only boost volume on 'Shift' mapping 2022-02-18 12:22:51 +01:00
cc12148dac pkgs: change-audio: 0.2.0 -> 0.3.0
Only boost audio beyond 100% if specifically asked for.
2022-02-18 12:22:51 +01:00
8d4bbaf886 home: tmux: fix yanking configuration
Use `tmux-yank` when a GUI is enabled, otherwise use the internal tmux
buffer.

In both cases, stay in copy mode after yanking.
2022-02-08 17:25:44 +01:00
39431c2656 modules: system: nix: use structural 'settings'
Instead of a stringly-typed `extraOptions`.
2022-02-08 14:32:00 +01:00
7e8936fc55 home: firefox: tridactyl: fix HN comment folding 2022-02-07 17:00:18 +01:00
44efea17b5 home: firefox: tridactyl: fix DDG mapping
Taken straight from upstream's sample configuration.
2022-02-07 15:51:56 +01:00
af25f555ac home: packages: add 'mosh' 2022-02-07 15:00:52 +01:00
b4796947db flake: bump inputs 2022-02-07 14:49:06 +01:00
dbc808ce50 home: wm: i3bar: show volume when muted 2022-02-03 11:40:24 +01:00
ef875f881f home: ssh: add 'work' host 2022-01-25 15:53:01 +01:00
b33cefde63 home: firefox: remove 'i-dont-care-about-cookies'
Should be superseded by Consent-O-Matic now.
2022-01-25 15:53:01 +01:00
7229eaca21 home: firefox: add 'consent-o-matic' 2022-01-25 15:53:01 +01:00
1987711fce flake: bump inputs
Also change a removed package alias' name.
2022-01-25 15:53:01 +01:00
ba5782e748 modules: system: packages: remove some packages
They either belong in a nix shell or are taken care of by other
configurations.
2022-01-14 15:06:55 +01:00
8151b28527 modules: services: nginx: use 'acme.default.email'
The option `security.acme.email` has been deprecated.
2022-01-14 13:30:22 +01:00
f86a04f888 pkgs: add psst 2022-01-14 13:27:17 +01:00
ce25ed6445 home: firefox: trydactyl: ignore prime video 2022-01-14 13:24:09 +01:00
36728068bd machines: porthos: services: disable nzbhydra
Same deal as jackett: prowlarr has been working perfectly adequately for
a while now.
2022-01-14 13:24:09 +01:00
5b130951fb machines: porthos: services: disable jackett
Prowlarr has been humming along just fine, and works even better than
jackett.
2022-01-14 13:24:09 +01:00
e6fe5e57c9 modules: system: add podman 2022-01-14 13:24:09 +01:00
1908897abc machines: aramis: home: enable discord 2022-01-09 22:19:28 +01:00
607872753d home: add discord 2022-01-09 22:19:07 +01:00
f386149550 home: wm: change default screen-lock timeout
5 minutes is too short.
2022-01-07 08:55:58 +01:00
923227f371 flake: bump inputs 2022-01-07 08:55:58 +01:00
4003e98457 machines: aramis: home: add teams package
Unfortunately, it is the preferred communication method at $WORK.
2022-01-07 08:55:58 +01:00
5c7ef3232e modules: system: nix: add inputs to NIX_PATH 2022-01-07 08:55:58 +01:00
0435a50675 home: vim: cut back on fzf mappings
I only ever use the buffer and files regularly.
2021-12-22 23:34:46 +01:00
4d5d662913 modules: services: nextcloud: upgrade version 2021-12-07 19:11:32 +01:00
070a929f88 flake: bump inputs
And use renamed option for agenix identities.
2021-12-07 19:11:32 +01:00
c492774baa home: git: do not change metadata color 2021-12-06 21:24:31 +01:00
07b60f8f52 flake: bump inputs
And make my configuration build after the removed option from
`programs.direnv` in home-manager.
2021-11-30 15:41:14 +01:00
eb89d7feb3 home: restart services automatically (again)
I think my issue was *not* related to this, so I might as well keep
using it since it does seem useful in the long run.

This reverts commit a94f349dde.
2021-11-30 15:41:14 +01:00
281edd4eac home: git: switch to 'delta'
Now that my issue with it has been resolved [1], let's switch to the
more mature tool.

This also solves a small issue that I had with `diff-highlight` which is
that non-highlighted text should not be boldened.

[1]: https://github.com/dandavison/delta/issues/544
2021-11-29 17:50:07 +01:00
48a9f9b11e home: git: use diff-highlight in interactive diffs
Now even `git log -p` and `git add -p` can use the more readable diffs.
2021-11-29 13:13:48 +01:00
d86ff6192c modules: system: nix: don't change daemon niceness
This option doesn't really work the way it should anyway [1].

This reverts commit cbf6ea9ac9.

[1]: https://github.com/NixOS/nixpkgs/pull/138741
2021-11-23 18:53:11 +01:00
de54779775 flake: agenix has renamed its branch to 'main' 2021-11-23 17:08:46 +01:00
d42eaeb362 home: wm: i3: show notification on toggling mute 2021-11-12 10:21:25 +01:00
dab44c6052 pkgs: change-audio: 0.1.2 -> 0.2.0
Allow muting microphone and speakers, with refactor to make it DRY.
2021-11-12 10:17:42 +01:00
ce0c634a05 pkgs: change-audio: 0.1.1 -> 0.1.2
Show if volume is currently muted.
2021-11-12 09:52:22 +01:00
e295a60cf5 flake: enable shellcheck pre-commit hook 2021-11-12 09:42:39 +01:00
d0e6e03c23 pkgs: change-audio: 0.1.0 -> 0.1.1
Fix issue with not showing notification at 0% volume.
2021-11-12 09:40:37 +01:00
f020338056 home: tmux: remove tmux service
Turns out it is more trouble than it is worth trying to make this work:
with the secure socket problem etc...

The first start up is fast enough for me in the end.

This reverts commit cc21d84808.
2021-11-09 15:32:59 +01:00
4749e9b561 flake: bump inputs 2021-11-09 15:16:20 +01:00
d490a7de78 modules: services: nginx-sso: always rewrite conf 2021-11-06 15:43:00 +01:00
a36eae4e66 modules: services: paperless: backup 'dataDir' 2021-11-05 17:03:52 +01:00
dd0c110f71 modules: services: calibre-web: use 'dataDir' 2021-11-05 17:03:52 +01:00
e2638728e3 modules: services: pirate: sort 'ports' values 2021-11-05 17:03:52 +01:00
8759039187 machines: porthos: services: use 'lohr.sshKeyFile' 2021-11-05 16:59:11 +01:00
62e62c70e1 modules: services: lohr: declarative ssh key 2021-11-05 16:59:11 +01:00
b5b8f83e71 modules: secrets: lohr: add 'ssh-key' 2021-11-05 15:31:59 +01:00
cbae0ef1da profiles: wm: remove unused argument 2021-11-05 14:58:58 +01:00
cf37d3172a profiles: gtk: remove unused argument 2021-11-05 14:58:58 +01:00
986aed79fb pkgs: dragger: remove unused argument 2021-11-05 14:58:58 +01:00
5fdc390411 modules: services: nginx: remove unused argument 2021-11-05 14:58:58 +01:00
67ea6d9f95 modules: services: drone: remove unused arguments 2021-11-05 14:58:58 +01:00
eb9fffd7b4 machines: porthos: users: remove unused let block 2021-11-05 14:58:58 +01:00
c11b3a2fa6 home: wm: dunst: replace deprecated 'geometry' 2021-11-04 16:35:06 +01:00
99e300bbc4 home: wm: i3: use packaged scripts
Instead of inlining them in the configuration, use an actual package for
those.
2021-11-04 16:35:06 +01:00
f987e79d17 pkgs: add change-audio 2021-11-04 16:35:06 +01:00
10b8ee50c1 pkgs: add change-backlight 2021-11-04 16:35:06 +01:00
d724c205ea home: wm: i3: avoid loading icon on notifications
Because my script are obviously not startup id aware, hovering on the
notification leads to having a loading cursor.
2021-11-03 17:57:33 +01:00
751af91c2c home: wm: i3: notify when changing audio volume 2021-11-03 17:50:28 +01:00
335454ee16 home: wm: i3: extract 'notify-send' variable
It is used in multiple scripts, might as well centralise it.
2021-11-03 17:49:47 +01:00
450ab4b07b modules: services: backup: remove deprecated name 2021-11-03 17:16:40 +01:00
28d8f0bf06 flake: bump inputs 2021-11-03 14:10:18 +01:00
a5fe7a41e6 flake: remove gnupg from devShell 2021-11-03 14:10:18 +01:00
72310d4047 home: do not restart services automatically
Turns out it is *not* ideal when modifying my WM configuration in any
way... Having i3 restart due to changing a keybinding is not great.

This reverts commit 6bec62073b.
2021-11-03 14:10:18 +01:00
548484d918 home: wm: i3: use 'i3status-rust.package' value 2021-11-03 14:10:18 +01:00
1633d6b3bc flake: bump inputs 2021-11-03 14:10:18 +01:00
66c3b70997 home: wm: screen-lock: rename changed option 2021-10-22 13:15:22 +02:00
9b184f94ac modules: home: forward inputs to home-manager
This will be useful if and when I end up adding inputs with home-manager
modules defined.
2021-10-22 13:06:53 +02:00
36d6b2828e home: start services when switching
As I use home-manager with its NixOS module, I do not see the message
suggesting to start the services otherwise.
2021-10-21 16:42:15 +02:00
9e229a6bb8 project: readme: mention manual prowlarr step 2021-10-18 19:48:50 +02:00
d0ad9982ce machines: porthos: services: enable prowlarr 2021-10-18 19:48:50 +02:00
7ca32d8b05 modules: services: indexers: add prowlarr 2021-10-18 19:48:50 +02:00
731793bb6e flake: bump inputs 2021-10-18 19:48:50 +02:00
af5103803b modules: services: indexers: refactor
This is cleaner and more correct.
2021-10-18 19:48:50 +02:00
f5e26526da modules: services: indexers: fix typo 2021-10-18 19:48:50 +02:00
353848ec73 pkgs: unified-hosts-lists: 3.8.5 -> 3.9.11 2021-10-18 19:28:46 +02:00
69d7fd5d7c modules: system: nix: change nix build niceness
19 is the lowest priority.
2021-10-18 18:49:03 +02:00
d353e2557c home: wm: i3bar: add bluetooth blocks
I have decided that the potential security and privacy risk of exposing
my MAC addresses is fine by me.

My earphones and headphones do not seem to expose their battery level,
would need more investigation.
2021-10-18 15:51:15 +02:00
ae06ccac4a home: git: rewrite gitlab URLs to use ssh 2021-10-18 14:45:23 +02:00
a8cf45a9f7 home: git: rewrite github URLs to use ssh 2021-10-18 14:44:19 +02:00
6a18be1d0a home: git: rewrite personal gitea URLs to use ssh 2021-10-18 14:44:08 +02:00
a9f751f0ed home: wm: i3bar: use dynamic width on music block 2021-10-16 18:07:07 +02:00
cf7ba65c30 machines: aramis: networking: remove 'domain'
Now that services handle subdomains through my Nginx abstraction, we can
remove this.
2021-10-16 14:56:15 +02:00
0d87934ee0 home: wm: i3: add 'rofi-bluetooth' binding 2021-10-15 17:19:12 +02:00
645a602cc1 home: tmux: add binding for block selection 2021-10-15 17:13:02 +02:00
8b763099e3 home: wm: i3: don't add 'dragger' through profile 2021-10-15 17:12:24 +02:00
52fb5500be pkgs: add rofi-bluetooth 2021-10-15 17:09:03 +02:00
5059835e97 pkgs: sort packages alphabetically 2021-10-15 17:01:40 +02:00
7b7041e5b5 home: git: add git-related packages when enabled
Instead of adding them in the general packages section.
2021-10-13 15:36:28 +02:00
0bfc92b09c home: git: inline EPITA configuration include 2021-10-13 15:36:28 +02:00
dd48089a82 modules: services: nginx: use 'mkMailAccount' 2021-10-13 15:36:28 +02:00
f76803c9bb home: git: use 'mkMailAccount' 2021-10-13 15:36:28 +02:00
7b6af91642 home: mail: accounts: use 'mkMailAccount' 2021-10-12 17:55:37 +02:00
8bf601a6aa lib: strings: add 'mkMailAddress' 2021-10-12 17:53:23 +02:00
62adfd5055 lib: add strings 2021-10-12 17:53:10 +02:00
3e6c467816 home: git: add 'git' alias 2021-10-12 16:33:33 +02:00
2cd56e133f modules: services: wireguard: add 'milady' 2021-10-10 17:16:29 +02:00
d43831cbf1 modules: secrets: wireguard: add 'milady' 2021-10-10 17:16:29 +02:00
0aa2f59530 pkgs: dragger: change platforms to linux
I haven't tested it on darwin, and it just so happens that some
dependency is broken on that system (breaking `nix flake check`)...

Will revisit this later in case I ever happen to use a darwin system.
2021-10-08 19:39:43 +02:00
09140b0170 profiles: wm: add 'dragger' when a WM is set up 2021-10-08 15:06:33 +02:00
152df1501a home: gammastep: fix typo 2021-10-08 15:03:45 +02:00
4f558a1ebd flake: use 'recurseIntoAttrs' in 'pkgs' overlay 2021-10-08 15:00:46 +02:00
f8f7fb06a7 pkgs: add dragger 2021-10-08 14:59:03 +02:00
cf47817b34 home: xdg: make gdb store history in XDG_DATA_HOME 2021-10-08 12:46:00 +02:00
02263141c4 home: firefox: add 'reddit-comment-collapser' 2021-10-06 09:48:20 +02:00
f494c3cba7 home: firefox: re-organise module 2021-10-06 09:48:20 +02:00
c746d7d3ba home: firefox: add 'refined-github' 2021-10-06 09:48:20 +02:00
b66e46e241 overlays: add sabnzbd-fix-missing-dependencies
While waiting for my PR to fix this [1].

[1]: https://github.com/NixOS/nixpkgs/pull/140478
2021-10-04 15:01:39 +02:00
b3aa737e28 flake: bump inputs 2021-10-04 14:45:41 +02:00
ac76d8ae68 home: tmux: add tmux service
The service definition is pretty awful, but it deals with the secure
socket correctly...

This avoids having a small lapse when starting the very first shell of a
session, which must first launch the server.
2021-09-30 16:58:44 +02:00
3ec99d4c0e home: tmux: make history longer
We got tons of RAM!
2021-09-30 16:47:52 +02:00
e4bd59b82b home: wm: i3: launch tmux when starting terminal
Similarly to the `zsh` snippet, launch tmux unless I explicitly do not
want it.

The reason I also add it in `i3` is to make the launch happen sooner,
and to avoid doing double work on some shell startup shenanigans if I
can.
2021-09-30 15:38:43 +02:00
3d0a73fffd home: zsh: launch tmux when starting a shell 2021-09-30 15:34:16 +02:00
cdabd4fb5d home: vim: switch back to gruvbox theme
Onedark is too annoying to deal with, and I still like gruvbox's colors
best.
2021-09-29 18:50:33 +02:00
4be248ee22 flake: bump inputs 2021-09-29 17:37:15 +02:00
88ae4abca0 profiles: gtk: new best practices for dconf 2021-09-27 17:07:47 +02:00
55541abd17 modules: secrets: fix permission for grafana 2021-09-26 23:09:33 +02:00
b9786398a7 modules: secrets: fix permission of 'matrix/mail' 2021-09-26 23:09:33 +02:00
5fd82472bf modules: secrets: add 'owner' logic 2021-09-26 23:09:33 +02:00
8968e30e62 modules: secrets: remove 'with lib;' 2021-09-26 23:09:33 +02:00
0b580b61e7 secrets: move into 'modules' 2021-09-26 23:09:33 +02:00
c32be8ac02 project: bootstrap: retrieve agenix key 2021-09-26 23:09:33 +02:00
8eef7c260e ci: use 'nix flake check'
Now that I am using agenix, secrets stays encrypted at rest.
2021-09-26 23:09:33 +02:00
172e29db69 flake: remove 'git-crypt' 2021-09-26 23:09:33 +02:00
3d0d19d9a1 secrets: remove git-crypt 2021-09-26 23:09:33 +02:00
e64fdcf38b secrets: remove git-crypt secrets 2021-09-26 23:09:33 +02:00
414c27ee63 modules: services: nginx: sso: use runtime secrets 2021-09-26 23:09:33 +02:00
7257f3156e machines: porthos: services: switch to agenix
The prep-work should be done now, time to hit the switch.
2021-09-26 23:09:32 +02:00
c7766afe90 modules: services: nginx: allow sso secret files
This is in preparation of the migration to agenix, which does not allow
access to the secrets at build time.
2021-09-26 23:09:32 +02:00
dc5a44ce82 home: put modules into folders 2021-09-26 23:09:32 +02:00
5b0e0bcbc2 home: terminal: put modules into folders 2021-09-26 23:09:32 +02:00
b90629fdd9 home: x: put modules into folders 2021-09-26 23:09:32 +02:00
acc23ab684 home: wm: put modules into folders 2021-09-26 23:09:32 +02:00
544aec0d91 home: mail: put modules into folders 2021-09-26 23:09:32 +02:00
a12b629dc3 home: firefox: put modules into folders 2021-09-26 23:09:32 +02:00
f61f11ba29 profiles: put modules into folders 2021-09-26 23:09:32 +02:00
b46b918295 modules: services: drone: split into files
This is cleaner to read.
2021-09-26 23:09:32 +02:00
ac90c5b11a modules: services: put modules into folders 2021-09-26 23:09:32 +02:00
836b54b8eb modules: hardware: put modules into folders 2021-09-26 23:09:32 +02:00
7bec7ae0f9 modules: system: put modules into folders 2021-09-26 23:09:32 +02:00
d5b09c48ef modules: programs: put modules into folders 2021-09-26 23:09:32 +02:00
c88fa91671 modules: home: put into folder 2021-09-26 23:09:32 +02:00
f09ba6b5be machines: porthos: users: use clear-text ssh key 2021-09-26 23:09:32 +02:00
33d539ed4f modules: system: users: use agenix secrets 2021-09-26 23:09:32 +02:00
91abacd0f6 modules: services: wireguard: use agenix secrets 2021-09-26 23:09:32 +02:00
16d3cd9f81 modules: services: nginx: use 'credentialsFile'
In preparation for the migration to agenix.
2021-09-26 23:09:32 +02:00
7d37701811 modules: services: matrix: use 'mailConfigFile'
In preparation of the migration to agenix.
2021-09-26 23:09:32 +02:00
4643690b43 modules: services: paperless: use 'secretKeyFile'
In preparation for the migration to agenix.
2021-09-26 23:09:32 +02:00
5579baecfb modules: services: nextcloud: use 'credentialsfile'
In preparation for the migration to agenix.
2021-09-26 23:09:32 +02:00
9d8da4d2b2 modules: services: miniflux: use 'credentialsFiles'
In preparation for the migration to agenix.
2021-09-26 23:09:32 +02:00
da63787874 modules: services: transmission: secrets w/ file
In preparation for the migration to using agenix.
2021-09-26 23:09:31 +02:00
98034a5410 secrets: register agenix secrets automatically 2021-09-26 23:09:31 +02:00
8664781da7 secrets: migrate to agenix
It is finally time to graduate to an actually secure, stateless
solution.
2021-09-26 23:09:31 +02:00
abf526ae3c secrets: import 'agenix' module 2021-09-25 13:31:43 +02:00
7273f2102a flake: add 'agenix' 2021-09-25 13:30:51 +02:00
963c86c66f home: remove unused 'secrets' module 2021-09-25 13:27:01 +02:00
f3519e845f home: ssh: add missing 'mkIf cfg.enable' 2021-09-24 01:21:57 +02:00
8ba1746be4 home: remove unused arguments 2021-09-24 01:21:57 +02:00
313b0c23a9 modules: remove unused arguments 2021-09-24 01:21:57 +02:00
176d95d890 machines: remove unused arguments 2021-09-24 01:21:57 +02:00
b398481ba3 pkgs: remove unused arguments 2021-09-24 01:21:57 +02:00
d813d85af8 lib: remove 'with self;' 2021-09-24 01:21:57 +02:00
9473cff408 lib: modules: refactor 'mapModules'
Introduce the recursive version of this function, then refactor to
reduce repetition.
2021-09-24 01:21:57 +02:00
2b0b6f2004 lib: modules: document 'mapModules' 2021-09-24 00:26:28 +02:00
8852699c9a modules: services: nginx: use 'recursiveMerge' 2021-09-23 22:11:25 +02:00
364ea0404a home: wm: i3: use 'recursiveMerge' 2021-09-23 22:11:25 +02:00
8ce123c527 lib: attrs: add 'recursiveMerge' 2021-09-23 22:11:25 +02:00
c13e57f584 modules: system: users: use 'initialHashedPassword'
This is the better option to use in case I want to have a stateless
system.
2021-09-23 21:30:24 +02:00
2f9d3417d4 modules: system: users: use 'ambroisie' password
Do not rely on `my.user.name` which could be changed to a value not
available in the secrets.
2021-09-23 21:28:29 +02:00
27040532bd modules: programs: steam: respect XDG conventions
Steam wants to pollute HOME with `.steam*` files and folders, which are
useless and annoying.

We want to make sure the wrappers are preferred when installing, so use
`lib.hiPrio` to ensure they get chosen.
2021-09-15 19:23:24 +02:00
7aa2a0f8fa machines: aramis: programs: enable steam 2021-09-15 19:23:24 +02:00
24b540d948 modules: programs: add steam 2021-09-15 19:23:24 +02:00
91489d5b71 modules: add 'programs' directory 2021-09-15 16:48:10 +02:00
4ccf549e58 modules: system: remove 'media'
It was not the idiomatic way to do this.
2021-09-15 16:10:06 +02:00
8c0b70dcb5 pkgs: make use of scoping
This is the way to make sure `callPackage` picks up my custom packages
to be used in the set.
2021-09-15 15:33:18 +02:00
02992d819e home: gdb: add nix store to safe path
For now, the nix store path is hard-coded rather than substituted.

This is useful for pretty-printing C++ types compiled with a different
C++ library from my gdb.
2021-09-03 17:34:39 +02:00
9474a3b57b git: remove duplicate ignore directive 2021-09-01 14:52:38 +02:00
4521cba5f0 flake: use 'nativeBuildInputs' 2021-09-01 14:51:27 +02:00
0df212f877 pkgs: unified-hosts-lists: do not set 'phases' 2021-08-31 20:11:11 +02:00
1690efc107 pkgs: unbound-zones-adblock: do not set 'phases' 2021-08-31 20:11:00 +02:00
5fdf108c40 pkgs: matrix-notifier: do not set 'phases' 2021-08-31 20:10:41 +02:00
2d40fc3d00 pkgs: i3-get-window-criteria: do not set 'phases' 2021-08-31 20:08:22 +02:00
5accea2a33 pkgs: havm: use 'nativeBuildInputs'
This is the correct one to use for a compiler like 'ghc'.
2021-08-31 19:50:44 +02:00
1d41918d70 pkgs: diff-flake: do not set 'phases' 2021-08-31 19:03:33 +02:00
2709c3751f pkgs: comma: do not set 'phases' 2021-08-31 19:03:25 +02:00
920e31c72f pkgs: comma: give path to source directly 2021-08-31 19:03:24 +02:00
cc54fe9087 pkgs: bw-pass: do not set 'phases' 2021-08-31 18:59:05 +02:00
2c81416774 pkgs: havm: use 'checkInputs' for test dependency 2021-08-31 18:44:17 +02:00
9a5bba7574 home: wm: i3bar: remove redundant '%' 2021-08-31 18:31:32 +02:00
bf6af94bec modules: services: paperless: proxy websockets 2021-08-31 13:52:11 +02:00
14d56a1337 machines: porthos: services: enable paperless 2021-08-31 13:52:11 +02:00
23484989a6 modules: services: paperless: add admin password
This is a fallback in case SSO stops working...
2021-08-31 13:52:11 +02:00
197f371ca9 secrets: add paperless password
To be used as a fallback.
2021-08-31 13:52:11 +02:00
da4595cd39 modules: services: add paperless 2021-08-31 13:52:11 +02:00
2ea68f705d secrets: add paperless 2021-08-31 13:52:11 +02:00
2d12211d3e flake: bump inputs 2021-08-31 13:52:10 +02:00
187c35c448 home: pager: remove lesspipe
I don't use it anymore.
2021-08-30 21:23:13 +02:00
8319f0ea5c modules: services: nginx: nginx-sso verbose logs
For some reason it still doesn't appear in the systemd log...
2021-08-30 17:38:25 +02:00
fd898df590 modules: services: nginx: add SSO 2021-08-30 17:36:39 +02:00
52079bf1e7 modules: services: nginx: enable explicitly 2021-08-30 17:36:39 +02:00
878759cb77 secrets: add sso 2021-08-30 17:36:39 +02:00
fd526b674b secrets: allow lists in types 2021-08-30 15:35:00 +02:00
77cf3430ae modules: services: use new nginx wrapper
And when not possible, document why.

Note for the future: there is some repetition in some modules to
configure the correct value of the subdomain, which I happen to know
will line up correctly thanks to the nginx wrapper. A good way to
refactor this in the future would involve avoiding this repetition,
allowing use to query the correct domain in some way...
2021-08-26 15:54:13 +02:00
a8514dcdf1 modules: services: nginx: overhaul modularity
This should be all that's needed for almost all my services.
2021-08-26 15:54:13 +02:00
906202b222 lib: lists: add countValues 2021-08-26 15:54:13 +02:00
7d2c43d157 lib: lists: add 'mapFilter' 2021-08-26 15:54:13 +02:00
3736e3a415 home: zsh: clean-up blank in history 2021-08-25 12:51:38 +02:00
e2546bd958 home: zsh: append to history
Otherwise the file is replaced rather than appended to.
2021-08-25 12:44:42 +02:00
3d7420210a home: zsh: do not share history accross shells
It's more annoying than helpful...
2021-08-25 12:22:36 +02:00
fcc3089e77 home: gdb: fix configuration path
Turns out the latest version of `gdb` does not yet look for its
configuration in `XDG_CONFIG_HOME`...
2021-08-22 15:02:57 +02:00
b20ef7f809 home: gdb: add rr 2021-08-21 01:13:14 +02:00
5edffcd21d home: gdb: fix auto-load safe path 2021-08-20 21:22:27 +02:00
bc6761bdc9 home: add gdb 2021-08-20 20:03:51 +02:00
087794433e modules: services: nextcloud: exclude previews 2021-08-19 14:27:40 +02:00
98c2f16eb2 modules: services: backup: make it verbose 2021-08-19 14:27:40 +02:00
0fe9a57458 machines: porthos: services: enable navidrome 2021-08-19 12:23:06 +02:00
c228916072 modules: services: add navidrome 2021-08-19 12:23:06 +02:00
414e181a8b flake: bump inputs 2021-08-19 11:49:41 +02:00
7d09677792 modules: services: backup: fix exclude files
I was using the wrong option... Somehow it didn't error out.
2021-08-09 20:08:43 +02:00
cf2747a98f pkgs: add drone-scp 2021-08-08 18:03:19 +02:00
d679262c6f pkgs: unified-hosts-lists: 3.6.4 -> 3.8.5 2021-08-07 12:29:41 +02:00
e1fddb0b1f pkgs: bw-pass: report errors to stderr
Useful in case the script can't prompt using `rofi`.
2021-07-31 20:17:37 +02:00
6c3662dbb3 modules: services: tlp: add power scaling 2021-07-31 16:56:20 +02:00
19c5cd0e13 modules: services: nextcloud: upgrade version 2021-07-29 13:42:28 +02:00
522d1f49df flake: bump inputs
And update package names for grafana dashboards to avoid breaking the
config.
2021-07-29 13:42:28 +02:00
3459067cd4 modules: services: postgres: upgrade version 2021-07-29 13:03:10 +02:00
5d21cecee7 modules: services: postgres: add migration script
The process to upgrade is:

* Make sure the version number of the script is one major version over
  the service version.

* Activate the script, rebuild configuration.

* Run `upgrade-pg-cluster` as `root`. One can give arguments like
  `--link` or `--jobs 4` to speedup the process. See documentation for
  some details.

* Change package to new version once the upgrade is finished, rebuild
  configuration.

* Optionally, `ANALYZE` the new database.
2021-07-29 13:02:49 +02:00
99c33cd7ad modules: services: add postgresql
Enable the service itself in other modules when needed, but pin the
package in a single place.
2021-07-29 12:43:28 +02:00
eba977b582 modules: services: monitoring: add scrape interval 2021-07-15 18:54:07 +02:00
2bfbda9942 flake: flatten and filter packages w/ flake-utils
Instead of my home-grown solution, use one that has been upstreamed.
2021-07-14 21:49:31 +02:00
2291d6b6fa machines: porthos: services: enable monitoring 2021-07-13 19:17:33 +02:00
e342934718 secrets: add monitoring password 2021-07-13 19:17:33 +02:00
24028669f4 modules: services: add monitoring dashboard 2021-07-13 19:17:33 +02:00
c910b643da modules: services: add monitoring
This includes a dashboard to monitor system ressources, using
Prometheus.
2021-07-13 19:17:33 +02:00
9fa16a9b33 flake: bump inputs 2021-07-13 19:08:54 +02:00
7469fe0063 home: git: use topological order in log
It is the one that makes most sense, rather than some kind of date
order...
2021-07-13 17:50:44 +02:00
5fcc96ab77 modules: services: matrix: SSL only for server
This is a requirement anyway for homeservers, and the `forceSSL` option
tried to create a redirect for non-SSL traffic, except the `listen`
option only provided SSL endpoints anyway, so this resulted in
additional rules in the nginx config looking like this:

```nginx
server {
        server_name matrix.belanyi.fr ;
        location /.well-known/acme-challenge {
                root /var/lib/acme/acme-challenge;
                auth_basic off;
        }
        location / {
                return 301 https://$host$request_uri;
        }
}
```
2021-07-13 17:43:31 +02:00
cdbd37b506 pkgs: bw-pass: change password prompt 2021-07-04 11:52:07 +02:00
222d9f789d overlays: transgui: correctly use previous patches 2021-07-04 11:52:07 +02:00
1a492c6eb8 home: direnv: update to new option name
And enable the flakes option.

I don't actually use this on my own projects, but it could be useful for
other projects that I contribute to.
2021-06-30 20:08:07 +02:00
6ff1a53a35 home: mail: add himalaya
This mail client is very KISS. I like it.
2021-06-30 20:08:06 +02:00
8d5c9c58d8 flake: bump inputs 2021-06-30 20:07:55 +02:00
62488bc671 home: firefox: add sponsorblock 2021-06-27 19:51:04 +02:00
fb2ec8cd6b home: secrets: use more specific type
I will amend it if I need more types, but for now this is fine.
2021-06-27 19:48:42 +02:00
7f8b661309 secrets: use more specific type
I will amend it if I need more types, but for now this is fine.
2021-06-27 19:48:26 +02:00
4b6f6423db modules: hardware: sound: refactor options
Do not enable ALSA when using pipewire. Ensure that both pulseaudio and
pipewire are not configured at the same time.
2021-06-27 01:59:07 +02:00
a5d3f7f861 home: wm: i3: also toggle xss-lock 2021-06-26 18:38:11 +02:00
85ff634331 modules: move home configuration from flake 2021-06-25 20:46:36 +02:00
76cac9af51 modules: change username configuration option
It makes more sense to have a `my.user` option.
2021-06-25 20:45:36 +02:00
0ff730bf44 home: zsh: explicitly set history save size
Turns out the `history.save` limit is for what is *loaded into memory*,
not what is written to disk.
2021-06-23 23:14:05 +02:00
0970ab71eb home: zsh: explicitly opt out of extended history 2021-06-23 23:13:39 +02:00
e8f664c949 home: wm: dunst: use rofi as 'dmenu' when enabled 2021-06-23 23:08:23 +02:00
43786904b4 home: wm: i3: enable rofi bindings when applicable 2021-06-23 23:06:15 +02:00
2b200fc98e home: wm: dunst: add line wrapping
Once again, trying to make them actually readable.
2021-06-22 19:48:03 +02:00
1d26e5146c home: wm: dunst: add max icon size
Otherwise I end up with icons that are way too big...
2021-06-22 19:39:35 +02:00
54d7c713a8 pkgs: matrix-notifier: 0.1.2 -> 0.2.0
`pandoc` is now a dependency.
2021-06-16 21:19:09 +02:00
5fa2b1fed9 pkgs: use 'lib' as first input
This is the idiomatic style in nixpkgs.
2021-06-16 20:13:25 +02:00
9bb09ee8f4 modules: services: indexers: limit Jackett memory 2021-06-15 21:25:56 +02:00
b7301b54c0 pkgs: matrix-notifier: 0.1.0 -> 0.1.2 2021-06-15 18:42:13 +02:00
48859859eb home: wm: screen-lock: use actual assertion
Instead of hijacking the type verification, use an assertion.
2021-06-15 17:45:17 +02:00
e4d3d8a949 modules: system: add boot
And enable mounting `/tmp` as tmpfs by default.
2021-06-14 16:41:28 +02:00
dd1742b5b8 ci: migrate to 'exec' runner
Now that I have written a script to do the Matrix notification, I can do
that.
2021-06-13 18:38:09 +02:00
40380be139 pkgs: add matrix-notifier 2021-06-13 18:37:11 +02:00
ecae28a72f home: secrets: clean-up 'default.nix' 2021-06-12 20:35:28 +02:00
a4cce8a561 secrets: clean-up 'default.nix' 2021-06-12 20:35:06 +02:00
aec2e08062 flake: filter 'packages' on system 2021-06-12 19:56:17 +02:00
5d3204715a pkgs: bw-pass: fix 'meta.platforms'
This makes use of 'keyutils' which only works on Linux.
2021-06-12 19:30:25 +02:00
902539ea6d modules: system: documentation: include POSIX man 2021-06-12 13:23:09 +02:00
23e5ddd7f3 modules: services: matrix: add mail configuration 2021-06-09 19:14:09 +02:00
4601a55253 secrets: matrix: add mail configuration 2021-06-09 19:14:09 +02:00
4c4c8ea4e5 modules: services: matrix: enable spaces 2021-06-09 18:33:54 +02:00
ce8138eb07 modules: services: matrix: add SMS verification 2021-06-09 18:32:59 +02:00
5bb28a9396 home: firefox: tridactyl: add tabduplicate mapping 2021-06-07 17:56:46 +02:00
c6ab0e1b00 machines: aramis: profiles: enable devices 2021-06-07 17:56:46 +02:00
851da6b72f profiles: add devices 2021-06-07 17:56:46 +02:00
a5d63dcf65 modules: hardware: add mx-ergo
This adds the ability to scroll using the ball, which is way better.
2021-06-07 17:56:46 +02:00
e7723d5275 home: wm: i3: remove 'udiskie' and 'flameshot'
It makes more sense to activate those at the `profile` level.
2021-06-03 17:34:16 +02:00
4ec380e128 profiles: wm: enable 'i3' helpers
`flameshot` and `udiskie` provide some functionnality that would usually
be found in an actual DE.

It makes more sense to activate them here instead of in the home
configuration, so I will remove it in the next commit.
2021-06-03 17:33:13 +02:00
0cf077012d home: wm: i3: move script generation out-of-line
This makes for a cleaner configuration file.
2021-06-03 17:18:33 +02:00
a465955a28 git: ignore generated pre-commit configuration 2021-05-31 23:06:37 +02:00
4b9d686c97 nix: evaluate shell hooks
This activates the pre-commit-hook configuration.
2021-05-31 23:06:20 +02:00
1699382e4e flake: add pre-commit-hooks
Instead of havin the tool manage versions, use a pinned version.
2021-05-31 23:04:08 +02:00
21fa1ccdac flake: change format 2021-05-31 23:02:32 +02:00
cd0fe40c94 machines: aramis: hardware: enable trackpoint 2021-05-31 20:30:36 +02:00
9d96899065 modules: home: use 'username' config value 2021-05-30 01:31:05 +02:00
ba15ad9674 flake: use 'username' config value 2021-05-30 01:20:14 +02:00
3cc933de81 home: zsh: remove trailing whitespace 2021-05-30 00:46:09 +02:00
22a01eeadf modules: system: users: make it configurable
Notably, make use of my global 'username' option.
2021-05-30 00:46:09 +02:00
558f9b3919 modules: add option to specify username
Given that I use it in plenty of places, it makes sense to place it
there for reference in other modules.
2021-05-30 00:46:09 +02:00
c23d89dcb2 modules: system: packages: make it configurable 2021-05-30 00:46:09 +02:00
7916a26a58 modules: system: nix: make it configurable 2021-05-30 00:46:09 +02:00
565d40fefb modules: system: language: make it configurable 2021-05-30 00:46:09 +02:00
a3eaa6d97e modules: system: move 'packages' 2021-05-29 16:58:44 +02:00
130e04a152 modules: system: move 'nix' 2021-05-29 16:58:44 +02:00
43ef533ae1 modules: system: move 'documentation' 2021-05-29 16:58:44 +02:00
377c97ea9f modules: system: move 'language' 2021-05-29 16:58:44 +02:00
7f285ab9cf modules: system: move 'users' 2021-05-29 16:58:44 +02:00
50a5347802 modules: system: move 'media' 2021-05-29 16:56:15 +02:00
3ff50b1c22 modules: add 'system' directory 2021-05-29 16:56:15 +02:00
9b568beb9a modules: move 'services' into subfolder 2021-05-29 16:56:15 +02:00
274b909971 modules: hardware: move 'upower' 2021-05-29 16:56:15 +02:00
dd19b9dd92 modules: hardware: move 'sound' 2021-05-29 16:56:15 +02:00
5f0c1f6a79 modules: hardware: move 'networking' 2021-05-29 16:56:15 +02:00
abbe1bb203 modules: hardware: move 'ergodox' 2021-05-29 16:56:15 +02:00
ec1bc63de7 modules: hardware: move 'bluetooth' 2021-05-29 16:56:15 +02:00
66cd746e53 modules: add 'hardware' directory 2021-05-29 16:56:15 +02:00
36344fe924 modules: ergodox: remove useless group clause
The `zsa` module already add the group itself.
2021-05-29 16:15:20 +02:00
cdb8f0d0a7 flake: bump inputs 2021-05-29 12:23:01 +02:00
1f861e4d50 services: jellyfin: fix proxy configuration 2021-05-28 11:38:28 +02:00
90a89c56c8 home: comma: configure custom 'nixpkgs' flake
This makes use of my pinned `pkgs` flake from the registry by default.
2021-05-27 21:50:27 +02:00
b95b357251 home: extract 'comma' into its own module 2021-05-27 21:49:24 +02:00
60309fad02 pkgs: comma: allow override which nixpkgs is used
This is useful for me to use my pinned `pkgs` instead.
2021-05-27 21:42:41 +02:00
b8f1f85bc2 pkgs: add volantes-cursors 2021-05-27 19:57:31 +02:00
8bb4948eec home: x: cursor: switch to Vimix 2021-05-27 19:15:52 +02:00
bcdb6dbe64 pkgs: add vimix-cursors 2021-05-27 19:15:52 +02:00
a223ca6072 home: git: add 'pick' alias
I wanted to name it 'pickaxe' but for a curious reason, it does not seem
to be working when I use that alias...

I am trying to find a second alias name for `git log -p -S`, which only
shows commits that change the number of occurrences of its pickaxe in
the file. Whereas `-G` shows any commit involving the pickaxe in its
diff.
2021-05-25 23:13:35 +02:00
d5307ff551 machines: aramis: sound: switch to pipewire
The support for mSBC means I should get better audio on my QC35.
2021-05-25 23:13:35 +02:00
a648fc6d0f home: wm: i3: use pamixer for audio control
This can be used with either pipewire and pulseaudio without having to
install all of pulseaudio.
2021-05-25 23:13:35 +02:00
da6c160baf modules: bluetooth: add pipewire codecs 2021-05-25 23:13:35 +02:00
10434bdbfc modules: sound: add pipewire configuration 2021-05-25 18:19:52 +02:00
941913e213 machines: aramis: sound: use common module 2021-05-25 18:19:52 +02:00
20513ab3a2 modules: add sound
I will probably want to share this configuration between multiple
machines in the future.
2021-05-25 18:19:52 +02:00
d986f2f906 services: podgrab: remove mention of merged PR 2021-05-23 00:32:59 +02:00
ec36d1c1b7 project: readme: mention manual flood config 2021-05-23 00:14:26 +02:00
d18fc252a4 machines: porthos: services: enable flood 2021-05-22 23:59:27 +02:00
beb35737d9 services: add flood 2021-05-22 23:59:27 +02:00
d43a224da0 home: wm: i3bar: invert baclight icon
Because I am using an emoji font, it looks better that way.
2021-05-22 23:59:27 +02:00
b3653a63bd home: mail: add msmtp 2021-05-22 23:49:57 +02:00
0452d696ae home: add mail and accounts configuration 2021-05-22 23:49:57 +02:00
7a91bf3906 home: terminal: use 'cfg.terminal' for TERMINAL 2021-05-22 23:49:57 +02:00
153f919485 pkgs: add bw-pass
Until `rbw` gets support for Yubikey 2FA, I still need a decent way to
query for my passwords on the command line...

This wrapper program should be good enough for basic usage with programs
that need a password command.
2021-05-22 23:49:57 +02:00
1647ab4ac7 modules: nix: expose pinned nixpkgs as 'pkgs'
That way if I do want to use that latest version, I can still use
`nixpkgs#<whatever>`.
2021-05-22 23:49:57 +02:00
bab605871d home: firefox: tridactyl: fix Reddit URL rewriter 2021-05-22 23:49:57 +02:00
cfa59614f1 home: firefox: add ff2mpv
This allows watching videos using mpv via a simple button.
2021-05-22 23:49:57 +02:00
93f173d0ca machines: aramis: home: enable mpv 2021-05-22 23:49:57 +02:00
82099b19f3 home: add mpv 2021-05-22 23:49:57 +02:00
4d0ab2e5a6 pkgs: add ff2mpv-go 2021-05-22 23:49:57 +02:00
2c8770ad70 services: podgrab: switch to upstream service 2021-05-22 23:49:57 +02:00
8e278e0f99 pkgs: remove podgrab
Now that it has been merged upstream, no reason to keep it.
2021-05-22 23:49:02 +02:00
4fcad6026a modules: nix: pin flake registry to common inputs 2021-05-22 23:47:27 +02:00
6b50f906fa flake: inject 'inputs' into NixOS configuration 2021-05-22 23:47:27 +02:00
7f0c595ae8 home: wm: rofi: configure terminal 2021-05-22 23:47:27 +02:00
bbddf086ec profiles: laptop: enable TLP 2021-05-22 23:47:27 +02:00
9a9d0ba266 services: add TLP 2021-05-22 23:47:27 +02:00
faad0c0624 pkgs: add myself as maintainer to all packages 2021-05-22 23:47:27 +02:00
0dc9495fda home: add nix-index 2021-05-22 23:47:27 +02:00
05f291f72a services: adblock: use new 'settings' option
This shows that I have not upgraded the server in a while...
2021-05-22 23:47:27 +02:00
f376059027 flake: bump inputs 2021-05-20 17:55:45 +02:00
9e5d616d16 home: firefox: tridactyl: fix parent URL on Reddit 2021-05-16 00:03:59 +02:00
1d97eb22bf home: packages: add 'comma' to common package set 2021-05-16 00:03:59 +02:00
7087ce32a6 pkgs: add comma 2021-05-16 00:03:59 +02:00
797387f571 machines: aramis: services: remove gnupg-agent
The one configured by home-manager is more appropriate.
2021-05-16 00:03:59 +02:00
ec73ed2f10 home: x: add 'xsel' package
I like it better than 'xclip'.
2021-05-16 00:03:59 +02:00
684dac5904 home: zsh: make history ten times bigger 2021-05-16 00:03:59 +02:00
467cfaa066 profiles: laptop: enable power-alert 2021-05-16 00:03:59 +02:00
2ba551f1b0 home: add power-alert 2021-05-16 00:03:59 +02:00
2128286779 profiles: laptop: enable upower 2021-05-16 00:03:59 +02:00
853bb7a0ce modules: add upower 2021-05-16 00:03:59 +02:00
abdba0a223 home: pager: fix colorized man pages
Turns out that sessionVariables are not being set at the proper time for
use with `tput`.

This commit also cleans up a bit how the config was being set.
2021-05-16 00:03:59 +02:00
d87f37c572 home: wm: i3bar: add 'backlight' block 2021-05-16 00:03:59 +02:00
226b8f7b6a home: wm: i3bar: remove gammastep block
It doesn't seem to be working well with my setup...
2021-05-16 00:03:59 +02:00
62ac22a8c5 home: wm: i3: use 'brightnessctl' 2021-05-16 00:03:59 +02:00
27c11b9b67 home: wm: i3: fix screen-related mappings 2021-05-16 00:03:59 +02:00
996d61b0f4 modules: users: simplify 'groupsIfExist' 2021-05-16 00:03:59 +02:00
62cee0be61 machines: porthos: set timezone 2021-05-16 00:03:59 +02:00
6c4f494a42 machines: aramis: use laptop profile 2021-05-16 00:03:59 +02:00
cd967ccf99 profiles: add laptop 2021-05-16 00:03:59 +02:00
4fb46a6c58 machines: aramis: use X profile 2021-05-16 00:03:59 +02:00
e7d8548b80 profiles: add X 2021-05-16 00:03:59 +02:00
10adc23223 machines: aramis: use gtk profile 2021-05-16 00:03:59 +02:00
7f945f86a6 profiles: add gtk 2021-05-16 00:03:59 +02:00
4960179f9d machines: aramis: use wm profile 2021-05-16 00:03:59 +02:00
8c7d5cdb30 profiles: add wm 2021-05-16 00:03:59 +02:00
4650c47974 modules: bluetooth: fix documentation 2021-05-16 00:03:59 +02:00
28cc5b64b4 machines: aramis: enable bluetooth profile 2021-05-16 00:03:59 +02:00
4fbb3d53e9 profiles: add bluetooth 2021-05-16 00:03:59 +02:00
d2c9b72eb6 flake: add profiles folder
This will be used for configurations that either consolidates multiple options
that make sens to use together, or span accross system and home configuration.
2021-05-16 00:03:59 +02:00
104a7a8d46 home: gtk: do not set font size
Turns out that I do not like how it interferes with Firefox's
rendering... I should probably investigate this in the future if I want
to use this option.
2021-05-16 00:03:59 +02:00
229ecd18ce machines: aramis: home: enable GTK
In order to not have an error at activation, dconf must be made
available to the dbus service.
2021-05-10 00:31:01 +02:00
c6ee3a0351 home: add gtk 2021-05-10 00:31:01 +02:00
e12b3a9599 machines: aramis: home: add transgui 2021-05-10 00:31:01 +02:00
9ecdc7c1ed overlays: add transgui-fix-duplicate-status
Upstream is being slow in merging the patch...
2021-05-10 00:31:01 +02:00
96c9b1b57d flake: add overlays folder 2021-05-10 00:31:01 +02:00
a4b54f3630 machines: aramis: home: add jellyfin-media-player 2021-05-10 00:31:01 +02:00
ec7f62f7bc home: terminal: export TERMINAL when appropriate
This is used by some programs, like 'rofi' to launch terminal programs.
2021-05-10 00:31:01 +02:00
2daaaed37f pkgs: i3-get-window-criteria: remove whitespace 2021-05-10 00:31:01 +02:00
c7fccd3ed3 home: wm: i3: add i3-get-window-criteria package 2021-05-10 00:31:01 +02:00
2d21945670 pkgs: add i3-get-window-criteria 2021-05-10 00:31:01 +02:00
a7839c63e0 machines: aramis: home: enable feh 2021-05-10 00:31:01 +02:00
e82d510c0c home: add feh 2021-05-10 00:31:01 +02:00
384e801553 machines: aramis: home: set up background
`i3` inherits its background from `lightdm`.
2021-05-10 00:31:01 +02:00
b2e0e81216 home: packages: add 'file' to common package set 2021-05-10 00:31:01 +02:00
d36cb23fa3 home: pager: add colored man page support 2021-05-10 00:31:01 +02:00
1bb9367470 machines: aramis: add some additional packages 2021-05-10 00:31:01 +02:00
0a8effa09f home: packages: add option for additional packages 2021-05-10 00:31:01 +02:00
ddffa1f247 modules: documentation: add linux man pages option
I want to be able to read about syscalls or the C library.
2021-05-10 00:31:01 +02:00
2b6399606a modules: documentation: use 'mkDisableOption'
The documentation module already gates behind 'documentation.enable' for
the other options.
2021-05-10 00:31:01 +02:00
7e1ca1f3d5 home: x: add cursor
I would like to check out alternative themes. Notably Quintom [1],
Volantes [2], and Vimix [3].

[1]: https://gitlab.com/Burning_Cube/quintom-cursor-theme
[2]: https://github.com/varlesh/volantes-cursors
[3]: https://github.com/vinceliuice/Vimix-cursors
2021-05-10 00:31:01 +02:00
c4bc609b7e machines: aramis: home: enable bluetooth 2021-05-10 00:31:01 +02:00
91954e9a02 home: add bluetooth 2021-05-10 00:31:01 +02:00
0c8eea0fb4 home: wm: i3bar: use FontAwesome5 for icons 2021-05-10 00:31:01 +02:00
5930fc0d3b home: wm: i3: use new 'fonts' option type 2021-05-10 00:31:01 +02:00
554620f004 flake: bump inputs 2021-05-10 00:31:01 +02:00
432cd97b53 machines: aramis: enable bluetooth 2021-05-10 00:31:01 +02:00
35b8de02c2 modules: add bluetooth 2021-05-10 00:31:01 +02:00
4319105aa5 machines: aramis: networking: use wireless option 2021-05-10 00:31:01 +02:00
8013120856 modules: networking: add 'wireless' option 2021-05-10 00:31:01 +02:00
8755d84b21 machines: aramis: install: exit on error 2021-05-10 00:31:01 +02:00
ed1539ae29 machines: aramis: home: enable nm-applet 2021-05-10 00:31:01 +02:00
40fa4798e1 home: add nm-applet 2021-05-10 00:31:01 +02:00
165e26f0b3 modules: users: add myself to 'networkmanager' 2021-05-08 17:14:13 +02:00
0a7a2c5c90 machine: aramis: networking: use networkmanager
I consider WiFi configurations to be ephemeral
2021-05-08 17:14:13 +02:00
3f35f9e440 home: gammastep: show tray icon 2021-05-08 17:14:13 +02:00
d111e16bea home: gammastep: change default night temperature
I want the colour to be warmer, and blues even more attenuated.
2021-05-08 17:14:13 +02:00
e0fe15aa2b home: wm: i3: add mic mute media key 2021-05-08 17:14:13 +02:00
ec8ea63fcb home: wm: i3: fix audio media keys 2021-05-08 17:14:13 +02:00
7a85b04541 home: wm: i3bar: extend width of music block 2021-05-08 17:14:13 +02:00
b52c55db5f home: wm: i3bar: show temperature block by default 2021-05-08 17:14:13 +02:00
eba01a0067 home: zsh: enable VTE integration when appropriate 2021-05-08 17:14:13 +02:00
4c154c7216 machines: aramis: services: enable wireguard 2021-05-08 17:14:13 +02:00
f8a1480d09 home: wm: screen-lock: add 'notify.delay' setting 2021-05-08 17:14:13 +02:00
e5b5e73294 home: wm: screen-lock: add corner delay setting 2021-05-08 17:14:13 +02:00
5973841ff5 modules: users: reformat 2021-05-08 17:14:13 +02:00
3177d01157 home: firefox: add form-history-control extension 2021-05-08 17:14:13 +02:00
7c17b675f6 home: wm: i3: use keycode for shutdown mapping
The motivation for using keycodes for all those mappings is to allow
switch to an actual french keyboard layout it still be able to move
through workspaces etc...
2021-05-08 17:14:13 +02:00
22642908dd machines: aramis: home: use GTK pinentry
I do have a graphical session, I can afford to be "fancy"
2021-05-08 17:14:13 +02:00
f96bc19bf6 home: gpg: make pinentry configurable 2021-05-08 17:14:13 +02:00
2dbb25a9e3 modules: packages: prefer user compinit to global
This should make the shell startup faster.
2021-05-08 17:14:13 +02:00
a4abc2edd8 project: bootstrap: unlock BW when logged in 2021-05-08 17:14:13 +02:00
ad2c5dd209 home: wm: i3: add display bindings 2021-05-08 17:14:13 +02:00
6cea859693 home: wm: i3: add dunst bindings 2021-05-08 17:14:13 +02:00
33752d2bcb home: wm: i3: add binding to toggle xautolock 2021-05-08 17:14:13 +02:00
5042c1df20 home: wm: screen-lock: add xautolock options 2021-05-08 17:14:13 +02:00
46b3a32b82 home: wm: add screen-lock 2021-05-08 17:14:13 +02:00
79d92178b5 home: wm: dunst: add configuration 2021-05-08 17:14:13 +02:00
3344b079dc home: wm: add dunst 2021-05-08 17:14:13 +02:00
c56517497a home: wm: use explicit 'enable' options
This is so that I can explicitly enable them if I were to use Wayland
and Sway, given that they should be compatible with both environment.

This also means that putting them in `/home/x/` would a misnomer... Will
revisit this if and when I try out Wayland and sway...
2021-05-08 17:14:13 +02:00
38a475d35d modules: users: add myself to 'video' and 'audio' 2021-05-08 17:14:13 +02:00
c6ebb9d45f home: wm: i3bar: hide music block when not playing 2021-05-08 17:14:13 +02:00
44c66ab729 home: wm: i3bar: add gammastep block if enabled 2021-05-08 17:14:13 +02:00
f608bcd9f9 machines: aramis: home: enable gammastep 2021-05-08 17:14:13 +02:00
b3fffcac3e home: add gammastep 2021-05-08 17:14:13 +02:00
873c41745a home: firefox: add tridactyl 2021-05-08 17:14:13 +02:00
dadd835b66 home: firefox: use tridactyl-native when enabled 2021-05-08 17:14:13 +02:00
1587b992da machines: aramis: home: enable firefox 2021-05-08 17:14:13 +02:00
38440f67ab home: add firefox 2021-05-08 17:14:13 +02:00
85f4220068 home: wm: i3: use udiskie service 2021-05-08 17:14:13 +02:00
43457ce41e home: add udiskie 2021-05-08 17:14:13 +02:00
44cad6b52b home: wm: i3: use flameshot service directly
Instead of starting `flameshot` with `i3`, use the provided service.
2021-05-08 17:14:13 +02:00
86b12dc8a8 home: add flameshot 2021-05-08 17:14:13 +02:00
61b36c5434 machines: aramis: home: enable zathura 2021-05-08 17:14:13 +02:00
bc6c50aff1 home: add zathura 2021-05-08 17:14:13 +02:00
3aa089db36 machines: aramis: home: enable termite 2021-05-08 17:14:13 +02:00
b7b1c77dc8 home: wm: i3: use 'my.home.terminal' explicitly 2021-05-08 17:14:13 +02:00
07b91de2f2 home: terminal: add termite 2021-05-08 17:14:13 +02:00
a4f3d67393 home: add terminal
This module abstracts away the color configuration.
2021-05-08 17:14:13 +02:00
b983136080 home: wm: i3: add configuration 2021-05-08 17:14:13 +02:00
f257c15071 home: wm: add rofi 2021-05-08 17:14:13 +02:00
82790ea5fa home: wm: add i3bar 2021-05-08 17:14:13 +02:00
3d51af4f54 machines: aramis: home: enable X & i3 2021-05-08 17:14:13 +02:00
6af00fe351 machines: aramis: add home configuration 2021-05-08 17:14:13 +02:00
864e78bc61 modules: add home
This makes setting and referring to my home-manager options easier.
2021-05-08 17:14:13 +02:00
ca48df5674 home: wm: add i3
This is only the basic default configuration. The full configuration
will come later.

I am not a fan of `wm.windowManager`, I might rename that option at some
point.
2021-05-08 17:14:13 +02:00
ff4745e1e6 home: add X keyboard configuration 2021-05-08 17:14:13 +02:00
63791a98a4 machines: add aramis 2021-05-08 17:14:13 +02:00
9690b0b14b lib: attrs: add renaming functions 2021-05-08 17:14:13 +02:00
af317ac156 lib: attrs: document functions 2021-05-08 17:14:13 +02:00
b30d574069 lib: attrs: add genAttrs' function 2021-05-08 17:14:13 +02:00
825e09f59e flake: refactor handling of shared modules 2021-05-08 17:14:13 +02:00
817ca1e9df machine: aramis: add installer script
This is the first time that I am setting up LVM-on-LUKS with NixOS, so a
VM came in handy to test it out.
2021-05-08 17:14:13 +02:00
481 changed files with 13082 additions and 2793 deletions

View file

@ -1,24 +0,0 @@
kind: pipeline
name: check config
steps:
- name: format check
image: nixos/nix
commands:
- nix-shell -p nixpkgs-fmt --run 'nixpkgs-fmt . --check'
- name: notify
image: plugins/matrix
settings:
homeserver:
from_secret: matrix_homeserver
roomid:
from_secret: matrix_roomid
username:
from_secret: matrix_username
password:
from_secret: matrix_password
trigger:
status:
- failure
- success

13
.envrc
View file

@ -1,8 +1,9 @@
use_flake() {
watch_file flake.nix
watch_file flake.lock
eval "$(nix print-dev-env)"
}
# shellcheck shell=bash
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
watch_file ./flake/checks.nix
watch_file ./flake/dev-shells.nix
ulimit -s unlimited # Bypass current bug in `nix` flakes evaluation
use flake

View file

@ -1,4 +0,0 @@
# Do not edit this file. To specify the files to encrypt, create your own
# .gitattributes file in the directory where your files are.
* !filter !diff
*.gpg binary

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/.pre-commit-config.yaml

View file

@ -1,21 +0,0 @@
repos:
- repo: 'https://github.com/pre-commit/pre-commit-hooks'
rev: 'v2.3.0'
hooks:
- id: 'trailing-whitespace'
- id: 'end-of-file-fixer'
- id: 'check-yaml'
- id: 'check-added-large-files'
- repo: 'https://github.com/jumanjihouse/pre-commit-hooks'
rev: '2.1.4'
hooks:
- id: 'forbid-binary'
- repo: 'local'
hooks:
- id: 'nixpkgs-fmt'
name: 'nixpkgs-fmt'
description: 'Format nix code with nixpkgs-fmt'
entry: 'nixpkgs-fmt'
language: 'system'
files: '\.nix$'
always_run: true

1
.stylua.toml Normal file
View file

@ -0,0 +1 @@
indent_type = "Spaces"

26
.woodpecker/check.yml Normal file
View file

@ -0,0 +1,26 @@
labels:
backend: local
steps:
- name: nix flake check
image: bash
commands:
- nix flake check
- name: notify
image: bash
environment:
ADDRESS:
from_secret: matrix_homeserver
ROOM:
from_secret: matrix_roomid
USER:
from_secret: matrix_username
PASS:
from_secret: matrix_password
commands:
- nix run '.#matrix-notifier'
when:
status:
- failure
- success

View file

@ -17,7 +17,8 @@ Secondly, take care of a few manual steps:
* Configure Gitea and Drone
* Configure Lohr webhook and SSH key
* Configure Jellyfin
* Configure Jackett and NZBHydra2
* Configure Prowlarr,Jackett and NZBHydra2
* Configure Sonarr, Radarr, Bazarr
* Configure Transmission's webui port
* Configure Quassel user
* Configure Flood account

View file

@ -1,5 +1,6 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bitwarden-cli git gnupg jq nixFlakes
#! 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() {
@ -58,6 +58,8 @@ get_ssh() {
get_doc "SysAdmin/SSH" "shared-key-public" "$HOME/.ssh/shared_rsa.pub" 644
get_doc "SysAdmin/SSH" "shared-key-private" "$HOME/.ssh/shared_rsa" 600
get_doc "SysAdmin/SSH" "agenix-public" "$HOME/.ssh/agenix.pub" 644
get_doc "SysAdmin/SSH" "agenix-private" "$HOME/.ssh/agenix" 600
}
get_pgp() {
@ -78,22 +80,13 @@ get_pgp() {
}
get_creds() {
BW_SESSION="$(bw login --raw)"
BW_SESSION="$(bw login --raw || bw unlock --raw)"
export BW_SESSION
get_ssh
get_pgp
}
setup_gpg() {
info 'Setting up loopback pinentry for GnuPG'
echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf
info 'Signing dummy message to ensure GnuPG key is usable by `git-crypt`'
echo whatever | gpg --clearsign --armor --pinentry loopback --output /dev/null
}
[ -z "$NOCREDS" ] && get_creds
[ -z "$NOGPG" ] && setup_gpg
nix --experimental-features 'nix-command flakes' develop

216
flake.lock generated
View file

@ -1,21 +1,157 @@
{
"nodes": {
"futils": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
],
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1619345332,
"narHash": "sha256-qHnQkEp1uklKTpx3MvKtY6xzgcqXDsz5nLilbbuL+3A=",
"lastModified": 1750173260,
"narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=",
"owner": "ryantm",
"repo": "agenix",
"rev": "531beac616433bac6f9e2a19feb8e99a22a66baf",
"type": "github"
},
"original": {
"owner": "ryantm",
"ref": "main",
"repo": "agenix",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1744478979,
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1753121425,
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"ref": "main",
"repo": "flake-parts",
"type": "github"
}
},
"futils": {
"inputs": {
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "2ebf2558e5bf978c7fb8ea927dfaed8fefab2e28",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"ref": "master",
"ref": "main",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "master",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -23,11 +159,11 @@
]
},
"locked": {
"lastModified": 1619558193,
"narHash": "sha256-DljP5/9EX0eXEPhzCUFqFEHkkcFuXJBx1PTgcv0OgyM=",
"lastModified": 1753617834,
"narHash": "sha256-WEVfKrdIdu5CpppJ0Va3vzP0DKlS+ZTLbBjugMO2Drg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "18ad12d52b8cebbb57013865eec2be5125de050a",
"rev": "72cc1e3134a35005006f06640724319caa424737",
"type": "github"
},
"original": {
@ -39,11 +175,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1619464443,
"narHash": "sha256-R7WAb8EnkIJxxaF6GTHUPytjonhB4Zm0iatyWoW169A=",
"lastModified": 1753429684,
"narHash": "sha256-9h7+4/53cSfQ/uA3pSvCaBepmZaz/dLlLVJnbQ+SJjk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8e4fe32876ca15e3d5eb3ecd3ca0b224417f5f17",
"rev": "7fd36ee82c0275fb545775cc5e4d30542899511d",
"type": "github"
},
"original": {
@ -54,12 +190,21 @@
}
},
"nur": {
"inputs": {
"flake-parts": [
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1619628114,
"narHash": "sha256-s3pQyvMfXVmbQOX224yOWQf6zi8406sShFF4u17LVQ0=",
"lastModified": 1741294988,
"narHash": "sha256-3408u6q615kVTb23WtDriHRmCBBpwX7iau6rvfipcu4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "0615e756dc14986c4968fa478c0bd080d621cb2b",
"rev": "b30c245e2c44c7352a27485bfd5bc483df660f0e",
"type": "github"
},
"original": {
@ -71,10 +216,51 @@
},
"root": {
"inputs": {
"agenix": "agenix",
"flake-parts": "flake-parts",
"futils": "futils",
"git-hooks": "git-hooks",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nur": "nur"
"nur": "nur",
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"ref": "main",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},

123
flake.nix
View file

@ -1,11 +1,36 @@
{
description = "NixOS configuration with flakes";
inputs = {
agenix = {
type = "github";
owner = "ryantm";
repo = "agenix";
ref = "main";
inputs = {
home-manager.follows = "home-manager";
nixpkgs.follows = "nixpkgs";
systems.follows = "systems";
};
};
flake-parts = {
type = "github";
owner = "hercules-ci";
repo = "flake-parts";
ref = "main";
inputs = {
nixpkgs-lib.follows = "nixpkgs";
};
};
futils = {
type = "github";
owner = "numtide";
repo = "flake-utils";
ref = "master";
ref = "main";
inputs = {
systems.follows = "systems";
};
};
home-manager = {
@ -30,80 +55,30 @@
owner = "nix-community";
repo = "NUR";
ref = "master";
inputs = {
flake-parts.follows = "flake-parts";
nixpkgs.follows = "nixpkgs";
};
};
git-hooks = {
type = "github";
owner = "cachix";
repo = "git-hooks.nix";
ref = "master";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
systems = {
type = "github";
owner = "nix-systems";
repo = "default";
ref = "main";
};
};
outputs = { self, futils, home-manager, nixpkgs, nur } @ inputs:
let
inherit (futils.lib) eachDefaultSystem;
lib = nixpkgs.lib.extend (self: super: {
my = import ./lib { inherit inputs; pkgs = nixpkgs; lib = self; };
});
defaultModules = [
({ ... }: {
# Let 'nixos-version --json' know about the Git revision
system.configurationRevision = self.rev or "dirty";
})
{
nixpkgs.overlays = (lib.attrValues self.overlays) ++ [
nur.overlay
];
}
home-manager.nixosModules.home-manager
{
home-manager.users.ambroisie = import ./home;
# Nix Flakes compatibility
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
}
];
buildHost = name: system: lib.nixosSystem {
inherit system;
modules = defaultModules ++ [
(./. + "/${name}.nix")
];
specialArgs = {
# Use my extended lib in NixOS configuration
inherit lib;
};
};
in
eachDefaultSystem
(system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
rec {
apps = {
diff-flake = futils.lib.mkApp { drv = packages.diff-flake; };
};
defaultApp = apps.diff-flake;
devShell = pkgs.mkShell {
name = "NixOS-config";
buildInputs = with pkgs; [
git-crypt
gitAndTools.pre-commit
gnupg
nixpkgs-fmt
];
};
packages = import ./pkgs { inherit pkgs; };
}) // {
overlay = self.overlays.pkgs;
overlays = {
lib = final: prev: { inherit lib; };
pkgs = final: prev: { ambroisie = import ./pkgs { pkgs = prev; }; };
};
nixosConfigurations = lib.mapAttrs buildHost {
porthos = "x86_64-linux";
};
};
# Can't eta-reduce a flake outputs...
outputs = inputs: import ./flake inputs;
}

9
flake/apps.nix Normal file
View file

@ -0,0 +1,9 @@
{ inputs, ... }:
{
perSystem = { self', ... }: {
apps = {
diff-flake = inputs.futils.lib.mkApp { drv = self'.packages.diff-flake; };
default = self'.apps.diff-flake;
};
};
}

33
flake/checks.nix Normal file
View file

@ -0,0 +1,33 @@
{ inputs, ... }:
{
imports = [
inputs.git-hooks.flakeModule
];
perSystem = { ... }: {
pre-commit = {
# Add itself to `nix flake check`
check.enable = true;
settings = {
hooks = {
deadnix = {
enable = true;
};
nixpkgs-fmt = {
enable = true;
};
shellcheck = {
enable = true;
};
stylua = {
enable = true;
};
};
};
};
};
}

22
flake/default.nix Normal file
View file

@ -0,0 +1,22 @@
{ flake-parts
, systems
, ...
} @ inputs:
let
mySystems = import systems;
in
flake-parts.lib.mkFlake { inherit inputs; } {
systems = mySystems;
imports = [
./apps.nix
./checks.nix
./dev-shells.nix
./home-manager.nix
./lib.nix
./nixos.nix
./overlays.nix
./packages.nix
./templates.nix
];
}

18
flake/dev-shells.nix Normal file
View file

@ -0,0 +1,18 @@
{ ... }:
{
perSystem = { config, pkgs, ... }: {
devShells = {
default = pkgs.mkShellNoCC {
name = "NixOS-config";
nativeBuildInputs = with pkgs; [
nixpkgs-fmt
];
shellHook = ''
${config.pre-commit.installationScript}
'';
};
};
};
}

60
flake/home-manager.nix Normal file
View file

@ -0,0 +1,60 @@
{ self, inputs, lib, ... }:
let
defaultModules = [
# Include generic settings
"${self}/modules/home"
{
nixpkgs.overlays = (lib.attrValues self.overlays) ++ [
inputs.nur.overlays.default
];
}
{
# Basic user information defaults
home.username = lib.mkDefault "ambroisie";
home.homeDirectory = lib.mkDefault "/home/ambroisie";
# Make it a Linux installation by default
targets.genericLinux.enable = lib.mkDefault true;
# Enable home-manager
programs.home-manager.enable = true;
}
];
mkHome = name: system: inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = defaultModules ++ [
"${self}/hosts/homes/${name}"
];
# Use my extended lib in NixOS configuration
inherit (self) lib;
extraSpecialArgs = {
# Inject inputs to use them in global registry
inherit inputs;
};
};
homes = {
"ambroisie@bazin" = "x86_64-linux";
"ambroisie@mousqueton" = "x86_64-linux";
};
in
{
perSystem = { system, ... }: {
# Work-around for https://github.com/nix-community/home-manager/issues/3075
legacyPackages = {
homeConfigurations =
let
filteredHomes = lib.filterAttrs (_: v: v == system) homes;
allHomes = filteredHomes // {
# Default configuration
ambroisie = system;
};
in
lib.mapAttrs mkHome allHomes;
};
};
}

11
flake/lib.nix Normal file
View file

@ -0,0 +1,11 @@
{ self, inputs, ... }:
let
inherit (inputs) nixpkgs;
lib = nixpkgs.lib.extend (final: _: {
my = import "${self}/lib" { inherit inputs; pkgs = nixpkgs; lib = final; };
});
in
{
flake.lib = lib;
}

37
flake/nixos.nix Normal file
View file

@ -0,0 +1,37 @@
{ self, inputs, lib, ... }:
let
defaultModules = [
{
# Let 'nixos-version --json' know about the Git revision
system.configurationRevision = self.rev or self.dirtyRev or "dirty";
}
{
nixpkgs.overlays = (lib.attrValues self.overlays) ++ [
inputs.nur.overlays.default
];
}
# Include generic settings
"${self}/modules/nixos"
];
buildHost = name: system: lib.nixosSystem {
modules = defaultModules ++ [
{
nixpkgs.hostPlatform = system;
}
"${self}/hosts/nixos/${name}"
];
specialArgs = {
# Use my extended lib in NixOS configuration
inherit (self) lib;
# Inject inputs to use them in global registry
inherit inputs;
};
};
in
{
flake.nixosConfigurations = lib.mapAttrs buildHost {
aramis = "x86_64-linux";
porthos = "x86_64-linux";
};
}

17
flake/overlays.nix Normal file
View file

@ -0,0 +1,17 @@
{ self, ... }:
let
default-overlays = import "${self}/overlays";
additional-overlays = {
# Expose my expanded library
lib = _final: _prev: { inherit (self) lib; };
# Expose my custom packages
pkgs = _final: prev: {
ambroisie = prev.recurseIntoAttrs (import "${self}/pkgs" { pkgs = prev; });
};
};
in
{
flake.overlays = default-overlays // additional-overlays;
}

13
flake/packages.nix Normal file
View file

@ -0,0 +1,13 @@
{ self, inputs, ... }:
{
perSystem = { pkgs, system, ... }: {
packages =
let
inherit (inputs.futils.lib) filterPackages flattenTree;
packages = import "${self}/pkgs" { inherit pkgs; };
flattenedPackages = flattenTree packages;
finalPackages = filterPackages system flattenedPackages;
in
finalPackages;
};
}

4
flake/templates.nix Normal file
View file

@ -0,0 +1,4 @@
{ self, ... }:
{
flake.templates = import "${self}/templates";
}

View file

@ -1,26 +0,0 @@
{ ... }:
{
imports = [
./bat.nix
./direnv.nix
./documentation.nix
./git
./gpg.nix
./htop.nix
./jq.nix
./packages.nix
./pager.nix
./secrets # Home-manager specific secrets
./ssh.nix
./tmux.nix
./vim
./xdg.nix
./zsh
];
# First sane reproducible version
home.stateVersion = "20.09";
# Who am I?
home.username = "ambroisie";
}

View file

@ -1,15 +0,0 @@
{ config, lib, ... }:
let
cfg = config.my.home.direnv;
in
{
options.my.home.direnv = with lib.my; {
enable = mkDisableOption "direnv configuration";
};
config.programs.direnv = lib.mkIf cfg.enable {
enable = true;
# A better `use_nix`
enableNixDirenvIntegration = true;
};
}

View file

@ -1,4 +0,0 @@
[user]
email = bruno.belanyi@epita.fr
name = Bruno BELANYI
# vim: set ft=gitconfig:

View file

@ -1,24 +0,0 @@
{ config, lib, ... }:
let
cfg = config.my.home.gpg;
in
{
options.my.home.gpg = with lib.my; {
enable = mkDisableOption "gpg configuration";
};
config = lib.mkIf cfg.enable {
programs.gpg = {
enable = true;
};
services.gpg-agent = {
enable = true;
enableSshSupport = true; # One agent to rule them all
pinentryFlavor = "tty";
extraConfig = ''
allow-loopback-pinentry
'';
};
};
}

View file

@ -1,20 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.home.packages;
in
{
options.my.home.packages = with lib.my; {
enable = mkDisableOption "user packages";
};
config.home.packages = with pkgs; lib.mkIf cfg.enable [
# Git related
gitAndTools.git-absorb
gitAndTools.git-revise
gitAndTools.tig
# Dev work
rr
# Terminal prettiness
termite.terminfo
];
}

View file

@ -1,18 +0,0 @@
{ config, lib, ... }:
let
cfg = config.my.home.pager;
in
{
options.my.home.pager = with lib.my; {
enable = mkDisableOption "pager configuration";
};
config.programs.lesspipe.enable = cfg.enable;
config.home.sessionVariables = lib.mkIf cfg.enable {
# My default pager
PAGER = "less";
# Clear the screen on start and exit
LESS = "-R -+X -c";
};
}

View file

@ -1,3 +0,0 @@
* filter=git-crypt diff=git-crypt
.gitattributes !filter !diff
/default.nix !filter !diff

Binary file not shown.

View file

@ -1,19 +0,0 @@
{ lib, ... }:
with lib;
let
canaryHash = builtins.hashFile "sha256" ./canary;
expectedHash =
"9df8c065663197b5a1095122d48e140d3677d860343256abd5ab6e4fb4c696ab";
in
if canaryHash != expectedHash then
abort "Secrets are not readable. Have you run `git-crypt unlock`?"
else {
options.my.secrets = mkOption {
type = types.attrs;
};
config.my.secrets = {
# Home-manager secrets go here
};
}

View file

@ -1,49 +0,0 @@
{ config, lib, ... }:
let
cfg = config.my.home.ssh;
in
{
options.my.home.ssh = with lib.my; {
enable = mkDisableOption "ssh configuration";
};
config.programs.ssh = {
enable = true;
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";
};
"gitea.belanyi.fr" = {
hostname = "gitea.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,47 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.my.home.tmux;
in
{
options.my.home.tmux = with lib.my; {
enable = mkDisableOption "tmux terminal multiplexer";
};
config.programs.tmux = lib.mkIf cfg.enable {
enable = true;
keyMode = "vi"; # Home-row keys and other niceties
clock24 = true; # I'm one of those heathens
escapeTime = 0; # Let vim do its thing instead
historyLimit = 5000; # Bigger buffer
terminal = "tmux-256color"; # I want accurate termcap info
plugins = with pkgs.tmuxPlugins; [
# Open high-lighted files in copy mode
open
# Better pane management
pain-control
# Better session management
sessionist
# X clipboard integration
yank
{
# Show when prefix has been pressed
plugin = prefix-highlight;
extraConfig = ''
# Also show when I'm in copy or sync mode
set -g @prefix_highlight_show_copy_mode 'on'
set -g @prefix_highlight_show_sync_mode 'on'
# Show prefix mode in status bar
set -g status-right '#{prefix_highlight} %a %Y-%m-%d %H:%M'
'';
}
];
extraConfig = ''
# Better vim mode
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
'';
};
}

View file

@ -1,14 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use shfmt as ALE fixer for bash
let b:ale_fixers=[ 'shfmt' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Indent with 4 spaces, simplify script, indent switch cases, use Bash variant
let b:ale_sh_shfmt_options='-i 4 -s -ci -ln bash'
let b:undo_ftplugin.='|unlet! b:ale_sh_shfmt_options'
" Use bash dialect explicitly, require explicit empty string test
let b:ale_sh_shellcheck_options='-s bash -o avoid-nullary-conditions'
let b:undo_ftplugin.='|unlet! b:ale_sh_shellcheck_options'

View file

@ -1,14 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" More warnings and the usual version in flags for Clang
let b:ale_c_clang_options='-Wall -Wextra -pedantic -std=c99'
let b:undo_ftplugin.='|unlet! b:ale_c_clang_options'
" More warnings and the usual version in flags for GCC
let b:ale_c_gcc_options='-Wall -Wextra -pedantic -std=c99'
let b:undo_ftplugin.='|unlet! b:ale_c_gcc_options'
" Use compile_commands.json to look for additional flags
let b:ale_c_parse_compile_commands=1
let b:undo_ftplugin.='|unlet! b:ale_c_parse_compile_commands'

View file

@ -1,14 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" More warnings and the usual version in flags for Clang
let b:ale_cpp_clang_options='-Wall -Wextra -pedantic -std=c++17'
let b:undo_ftplugin.='|unlet! b:ale_cpp_clang_options'
" More warnings and the usual version in flags for GCC
let b:ale_cpp_gcc_options='-Wall -Wextra -pedantic -std=c++17'
let b:undo_ftplugin.='|unlet! b:ale_cpp_gcc_options'
" Use compile_commands.json to look for additional flags
let b:ale_c_parse_compile_commands=1
let b:undo_ftplugin.='|unlet! b:ale_c_parse_compile_commands'

View file

@ -1,6 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use my desired ALE fixer for D
let b:ale_fixers=[ 'dfmt' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'

View file

@ -1,2 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()

View file

@ -1,30 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use a small indentation value on Haskell files
setlocal shiftwidth=2
let b:undo_ftplugin.='|setlocal shiftwidth<'
" Use my desired ALE fixers for Haskell
let b:ale_fixers=[ 'brittany' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Use stack-managed `hlint`
let b:ale_haskell_hlint_executable='stack'
let b:undo_ftplugin.='|unlet! b:ale_haskell_hlint_executable'
" Use stack-managed `brittany`
let b:ale_haskell_brittany_executable='stack'
let b:undo_ftplugin.='|unlet! b:ale_haskell_brittany_executable'
" Use dynamic libraries because of Arch linux, with default ALE options
let b:ale_haskell_ghc_options='--dynamic -fno-code -v0'
let b:undo_ftplugin.='|unlet! b:ale_haskell_ghc_options'
" Automatically format files when saving them
let b:ale_fix_on_save=1
let b:undo_ftplugin='|unlet! b:ale_lint_on_save'
" Change max length of a line to 100 for this buffer to match official guidelines
setlocal colorcolumn=100
let b:undo_ftplugin.='|setlocal colorcolumn<'

View file

@ -1,6 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use my desired ALE fixer for JSON
let b:ale_fixers=[ 'jq' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'

View file

@ -1,6 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Don't show Netrw in buffer list
setlocal bufhidden=delete
let b:undo_ftplugin='|setlocal bufhidden<'

View file

@ -1,40 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use my desired ALE fixers for python
let b:ale_fixers=[ 'black', 'isort' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Use my desired ALE linters for python
let b:ale_linters=[ 'flake8', 'mypy', 'pylint', 'pyls' ]
let b:undo_ftplugin.='|unlet! b:ale_linters'
" Use pyls inside the python environment if needed
let b:ale_python_pyls_auto_pipenv=1
let b:undo_ftplugin.='|unlet! b:ale_python_pyls_auto_pipenv'
" Disable pycodestyle checks from pyls because I'm already using flake8
let b:ale_python_pyls_config={
\ 'pyls': {
\ 'plugins': {
\ 'pycodestyle': {
\ 'enabled': v:false
\ },
\ },
\ },
\ }
let b:undo_ftplugin.='|unlet! b:ale_python_pyls_config'
" Don't use mypy to check for syntax errors
let b:ale_python_mypy_ignore_invalid_syntax=1
let b:undo_ftplugin.='|unlet! b:ale_python_mypy_ignore_invalid_syntax'
" Use mypy inside the python environment if needed
let b:ale_python_mypy_auto_pipenv=1
let b:undo_ftplugin.='|unlet! b:ale_python_mypy_auto_pipenv'
" Automatically format files when saving them
let b:ale_fix_on_save=1
let b:undo_ftplugin='|unlet! b:ale_lint_on_save'
" Change max length of a line to 88 for this buffer to match black's settings
setlocal colorcolumn=88
let b:undo_ftplugin.='|setlocal colorcolumn<'

View file

@ -1,8 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use h/l to go to the previous/next non-empty quickfix or location list
nnoremap <silent> <buffer> h :call quickfixed#older()<CR>
let b:undo_ftplugin.='|nunmap <buffer> h'
nnoremap <silent> <buffer> l :call quickfixed#newer()<CR>
let b:undo_ftplugin.='|nunmap <buffer> l'

View file

@ -1,31 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Check tests too
let b:ale_rust_cargo_check_tests=1
let b:undo_ftplugin='|unlet! b:ale_rust_cargo_check_tests'
" Check examples too
let b:ale_rust_cargo_check_examples=1
let b:undo_ftplugin='|unlet! b:ale_rust_cargo_check_examples'
" Use clippy if it's available instead of just cargo check
let b:ale_rust_cargo_use_clippy=executable('cargo-clippy')
let b:undo_ftplugin='|unlet! b:ale_rust_cargo_use_clippy'
" Use rust-analyzer instead of RLS as a linter
let b:ale_linters=[ 'cargo', 'analyzer' ]
let b:undo_ftplugin='|unlet! b:ale_linters'
" Use rustfmt as ALE fixer for rust
let b:ale_fixers=[ 'rustfmt' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Automatically format files when saving them
let b:ale_fix_on_save=1
let b:undo_ftplugin='|unlet! b:ale_lint_on_save'
" Change max length of a line to 99 for this buffer to match official guidelines
setlocal colorcolumn=99
let b:undo_ftplugin.='|setlocal colorcolumn<'

View file

@ -1,14 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use shfmt as ALE fixer for sh
let b:ale_fixers=[ 'shfmt' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Indent with 4 spaces, simplify the code, indent switch cases, use POSIX
let b:ale_sh_shfmt_options='-i 4 -s -ci -ln posix'
let b:undo_ftplugin.='|unlet! b:ale_sh_shfmt_options'
" Require explicit empty string test
let b:ale_sh_shellcheck_options='-o avoid-nullary-conditions'
let b:undo_ftplugin.='|unlet! b:ale_sh_shellcheck_options'

View file

@ -1,14 +0,0 @@
" Create the `b:undo_ftplugin` variable if it doesn't exist
call ftplugined#check_undo_ft()
" Use shfmt as ALE fixer for zsh
let b:ale_fixers=[ 'shfmt' ]
let b:undo_ftplugin.='|unlet! b:ale_fixers'
" Indent with 4 spaces, simplify script, indent switch cases, use Bash variant
let b:ale_sh_shfmt_options='-i 4 -s -ci -ln bash'
let b:undo_ftplugin.='|unlet! b:ale_sh_shfmt_options'
" Use bash dialect explicitly, require explicit empty string test
let b:ale_sh_shellcheck_options='-s bash -o avoid-nullary-conditions'
let b:undo_ftplugin.='|unlet! b:ale_sh_shellcheck_options'

View file

@ -1,2 +0,0 @@
" Use ALE LSP-powered symbol information
nnoremap <Leader>K :ALEHover<CR>

View file

@ -1,10 +0,0 @@
" Visual bindings for merging diffs as in normal mode
xnoremap dp :diffput<cr>
xnoremap do :diffget<cr>
" Open status window
nnoremap <Leader>gs :Gstatus<CR>
" Open diff view of current buffer: the up/left window is the current index
nnoremap <Leader>gd :Gdiffsplit!<CR>
" Open current file log in new tab, populate its location list with history
nnoremap <Leader>gl :sp<CR><C-w>T:Gllog --follow -- %:p<CR>

View file

@ -1,38 +0,0 @@
" Only git-tracked files, Vim needs to be in a Git repository
nnoremap <Leader>fg :GFiles<CR>
" All files
nnoremap <Leader>ff :Files<CR>
" Currently open buffers
nnoremap <Leader>fb :Buffers<CR>
" Buffer history
nnoremap <Leader>fh :History<CR>
" Tags in buffer
nnoremap <Leader>ft :BTags<CR>
" Tags in all project files
nnoremap <Leader>fT :Tags<CR>
" Snippets for the current fileytpe (using Ultisnips)
nnoremap <Leader>fs :Snippets<CR>
" All available commands
nnoremap <Leader>f: :Commands<CR>
" All commits (using fugitive)
nnoremap <Leader>fc :Commits<CR>
" All commits for the current buffer (using fugitive)
nnoremap <Leader>fC :BCommits<CR>
" Select normal mode mapping by searching for its name
nmap <Leader><Tab> <Plug>(fzf-maps-n)
" Select visual mode mapping by searching for its name
xmap <Leader><Tab> <Plug>(fzf-maps-x)
" Select operator pending mode mapping by searching for its name
omap <Leader><Tab> <Plug>(fzf-maps-o)

View file

@ -1,8 +0,0 @@
" Yank until the end of line with Y, to be more consistent with D and C
nnoremap Y y$
" Run make silently, then skip the 'Press ENTER to continue'
noremap <Leader>m :silent! :make! \| :redraw!<CR>
" Remove search-highlighting
noremap <Leader><Leader> :nohls<CR>

View file

@ -1,11 +0,0 @@
" Next and previous in quick-fix list
nmap <Leader>fn <Plug>(qf_qf_next)
nmap <Leader>fp <Plug>(qf_qf_previous)
" Next and previous in location list
nmap <Leader>ln <Plug>(qf_loc_next)
nmap <Leader>lp <Plug>(qf_loc_previous)
" Toggle quick-fix and location lists
nmap <Leader>tf <Plug>(qf_qf_toggle)
nmap <Leader>tl <Plug>(qf_loc_toggle)

View file

@ -1,7 +0,0 @@
" Better fr layout mappings for vim-unimpaired and other '[' and ']' commands
nmap ( [
nmap ) ]
omap ( [
omap ) ]
xmap ( [
xmap ) ]

View file

@ -1,68 +0,0 @@
" Taken from the Vimways article
function! s:isLocation()
" Get dictionary of properties of the current window
let wininfo = filter(getwininfo(), {i,v -> v.winnr == winnr()})[0]
return wininfo.loclist
endfunction
function! s:length()
" Get the size of the current quickfix/location list
return len(s:isLocation() ? getloclist(0) : getqflist())
endfunction
function! s:getProperty(key, ...)
" getqflist() and getloclist() expect a dictionary argument
" If a 2nd argument has been passed in, use it as the value, else 0
let l:what = {a:key : a:0 ? a:1 : 0}
let l:listdict = s:isLocation() ? getloclist(0, l:what) : getqflist(l:what)
return get(l:listdict, a:key)
endfunction
function! s:isFirst()
return s:getProperty('nr') <= 1
endfunction
function! s:isLast()
return s:getProperty('nr') == s:getProperty('nr', '$')
endfunction
function! s:history(goNewer)
" Build the command: one of colder/cnewer/lolder/lnewer
let l:cmd = (s:isLocation() ? 'l' : 'c') . (a:goNewer ? 'newer' : 'older')
" Apply the cmd repeatedly until we hit a non-empty list, or first/last list
" is reached
while 1
if (a:goNewer && s:isLast()) || (!a:goNewer && s:isFirst()) | break | endif
" Run the command. Use :silent to suppress message-history output.
" Note that the :try wrapper is no longer necessary
silent execute l:cmd
if s:length() | break | endif
endwhile
" Echo a description of the new quickfix / location list.
" And make it look like a rainbow.
let l:nr = s:getProperty('nr')
let l:last = s:getProperty('nr', '$')
echohl MoreMsg | echon '('
echohl Identifier | echon l:nr
if l:last > 1
echohl LineNr | echon ' of '
echohl Identifier | echon l:last
endif
echohl MoreMsg | echon ') '
echohl MoreMsg | echon '['
echohl Identifier | echon s:length()
echohl MoreMsg | echon '] '
echohl Normal | echon s:getProperty('title')
echohl None
endfunction
function! quickfixed#older()
call s:history(0)
endfunction
function! quickfixed#newer()
call s:history(1)
endfunction

View file

@ -1,77 +0,0 @@
{ config, pkgs, lib, ... }:
let
cfg = config.my.home.vim;
configFiles =
let
toSource = directory: { source = ./. + "/${directory}"; };
configureDirectory =
name: lib.nameValuePair "nvim/${name}" (toSource name);
linkDirectories =
dirs: builtins.listToAttrs (map configureDirectory dirs);
in
linkDirectories [
"after"
"autoload"
"ftdetect"
"plugin"
];
in
{
options.my.home.vim = with lib.my; {
enable = mkDisableOption "vim configuration";
};
config.programs.neovim = lib.mkIf cfg.enable {
enable = true;
# All the aliases
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
plugins = with pkgs.vimPlugins; [
# Theming
lightline-vim # Fancy status bar
{
plugin = onedark-vim; # Nice dark theme
optional = true; # Needs to be `packadd`-ed manually...
}
# tpope essentials
vim-commentary # Easy comments
vim-eunuch # UNIX integrations
vim-fugitive # A 'git' wrapper
vim-git # Sane git syntax files
vim-repeat # Enanche '.' for plugins
vim-rsi # Readline mappings
vim-surround # Deal with pairs
vim-unimpaired # Some ex command mappings
vim-vinegar # Better netrw
# Languages
rust-vim
vim-beancount
vim-jsonnet
vim-nix
vim-pandoc
vim-pandoc-syntax
vim-toml
# General enhancements
fastfold # Better folding
vim-qf # Better quick-fix list
# Other wrappers
fzfWrapper # The vim plugin inside the 'fzf' package
fzf-vim # Fuzzy commands
git-messenger-vim # A simple blame window
# LSP and linting
ale # Asynchronous Linting Engine
lightline-ale # Status bar integration
];
extraConfig = builtins.readFile ./init.vim;
};
config.xdg.configFile = lib.mkIf cfg.enable configFiles;
}

View file

@ -1,2 +0,0 @@
" Use Automake filetype for `local.am` files, explicit `set` to force override
au BufNewFile,BufRead local.am set filetype=automake

View file

@ -1,2 +0,0 @@
" Use LaTeX filetype for TikZ files
au BufNewFile,BufRead *.tikz setfiletype tex

View file

@ -1,5 +0,0 @@
" A few useful sets of abbreviations
" A few things that are hard to write in ASCII
abbreviate (R) ©
abbreviate (TM)

View file

@ -1,6 +0,0 @@
" Map leader to space (needs the noremap trick to avoid moving the cursor)
nnoremap <Space> <Nop>
let mapleader=" "
" Map localleader to '!' (if I want to filter text, I use visual mode)
let maplocalleader="!"

View file

@ -1,13 +0,0 @@
" Idea for toggling taken from jeffkreeftmeijer
" Show line numbers
set number
augroup numbertoggle
autocmd!
" Toggle numbers between relative and absolute when changing buffers
autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu | set rnu | endif
autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif
" Disable line numbers and relative line numbers in terminal
autocmd TermOpen * setlocal nonu nornu
augroup END

View file

@ -1,24 +0,0 @@
" Always display the sign column to avoid moving the buffer all the time
let g:ale_sign_column_always=1
" Change the way ALE display messages
let g:ale_echo_msg_info_str='I'
let g:ale_echo_msg_warning_str='W'
let g:ale_echo_msg_error_str='E'
" The message displayed in the command line area
let g:ale_echo_msg_format='[%linter%][%severity%]%(code):% %s'
" The message displayed in the location list
let g:ale_loclist_msg_format='[%linter%]%(code):% %s'
" Don't lint every time I change the buffer
let g:ale_lint_on_text_changed=0
" Don't lint on leaving insert mode
let g:ale_lint_on_insert_leave=0
" Don't lint on entering a buffer
let g:ale_lint_on_enter=0
" Do lint on save
let g:ale_lint_on_save=1
" Lint on changing the filetype
let g:ale_lint_on_filetype_changed=1

View file

@ -1,5 +0,0 @@
" Intercept all fold commands
let g:fastfold_fold_command_suffixes=[
\ 'x', 'X', 'a', 'A', 'o', 'O', 'c', 'C',
\ 'r', 'R', 'm', 'M', 'i', 'n', 'N'
\ ]

View file

@ -1,8 +0,0 @@
" Use a floating window when availble
if has('nvim-0.4.0') || has("patch-8.2.0191")
let g:fzf_layout = { 'window': {
\ 'width': 0.9,
\ 'height': 0.7,
\ 'highlight': 'Comment',
\ 'rounded': v:false } }
endif

View file

@ -1,5 +0,0 @@
" Use the high-contrast theme
let g:gruvbox_contrast_dark='hard'
" Enable italics because urxvt supports them
let g:gruvbox_italic=1

View file

@ -1,81 +0,0 @@
" Initialise light-line setting structure
let g:lightline={}
" Use the wombat colorscheme
let g:lightline.colorscheme='onedark'
" Status-line for active buffer
let g:lightline.active={
\ 'left': [
\ [ 'mode', 'paste' ],
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ],
\ [ 'spell' ],
\ ],
\ 'right': [
\ [ 'lineinfo' ],
\ [ 'percent' ],
\ [ 'fileformat', 'fileencoding', 'filetype' ],
\ [ 'linter_check', 'linter_errors', 'linter_warn', 'linter_ok' ],
\ [ 'ctags_status' ],
\ ]
\ }
" Status-line for inactive buffer
let g:lightline.inactive={
\ 'left': [
\ [ 'filename' ],
\ ],
\ 'right': [
\ [ 'lineinfo' ],
\ [ 'percent' ],
\ ],
\ }
" Which component should be written using which function
let g:lightline.component_function={
\ 'readonly': 'LightlineReadonly',
\ 'modified': 'LightlineModified',
\ 'gitbranch': 'LightlineFugitive',
\ }
" Which component can be expanded by using which function
let g:lightline.component_expand={
\ 'linter_check': 'lightline#ale#checking',
\ 'linter_warn': 'lightline#ale#warnings',
\ 'linter_errors': 'lightline#ale#errors',
\ 'linter_ok': 'lightline#ale#ok',
\ }
" How to color custom components
let g:lightline.component_type={
\ 'readonly': 'error',
\ 'linter_checking': 'left',
\ 'linter_warn': 'warning',
\ 'linter_errors': 'error',
\ 'linter_ok': 'left',
\ }
" Show pretty icons instead of text for linting status
let g:lightline#ale#indicator_checking='⏳'
let g:lightline#ale#indicator_warnings='◆'
let g:lightline#ale#indicator_errors='✗'
let g:lightline#ale#indicator_ok='✓'
" Show a lock icon when editing a read-only file when it makes sense
function! LightlineReadonly()
return &ft!~?'help\|vimfiler\|netrw' && &readonly ? '' : ''
endfunction
" Show a '+' when the buffer is modified, '-' if not, when it makes sense
function! LightlineModified()
return &ft=~'help\|vimfiler\|netrw' ? '' : &modified ? '+' : &modifiable ? '' : '-'
endfunction
" Show branch name with nice icon in status line, when it makes sense
function! LightlineFugitive()
if &ft!~?'help\|vimfiler\|netrw' && exists('*fugitive#head')
let branch=fugitive#head()
return branch!=#'' ? ' '.branch : ''
endif
return ''
endfunction

View file

@ -1,20 +0,0 @@
" Which code-block languages should I expect to be high-lighted.
let g:pandoc#syntax#codeblocks#embeds#langs=[
\ "bash=sh",
\ "c",
\ "cpp",
\ "go",
\ "haskell",
\ "python",
\ "rust",
\ "sh",
\ "vim",
\ "yaml",
\ "tex",
\ "toml",
\ "perl",
\ "json",
\ "latex=tex",
\ "make",
\ "makefile=make",
\ ]

View file

@ -1,8 +0,0 @@
augroup signtoggle
autocmd!
" Only show the sign column for the current focused buffer
autocmd BufEnter,FocusGained,WinEnter * set signcolumn=yes
autocmd BufLeave,FocusLost,WinLeave * set signcolumn=no
" Disable the sign column in terminal
autocmd TermOpen * setlocal signcolumn=no
augroup END

View file

@ -1,79 +0,0 @@
{ config, pkgs, lib, ... }:
let
cfg = config.my.home.zsh;
in
{
options.my.home.zsh = with lib.my; {
enable = mkDisableOption "zsh configuration";
};
config.programs.zsh = lib.mkIf cfg.enable {
enable = true;
dotDir = ".config/zsh"; # Don't clutter $HOME
enableCompletion = true;
history = {
size = 50000;
ignoreSpace = true;
ignoreDups = true;
share = true;
path = "${config.xdg.dataHome}/zsh/zsh_history";
};
plugins = with pkgs; [
{
name = "fast-syntax-highlighting";
src = fetchFromGitHub {
owner = "zdharma";
repo = "fast-syntax-highlighting";
rev = "v1.55";
sha256 = "sha256-DWVFBoICroKaKgByLmDEo4O+xo6eA8YO792g8t8R7kA=";
};
}
{
name = "agkozak-zsh-prompt";
src = fetchFromGitHub {
owner = "agkozak";
repo = "agkozak-zsh-prompt";
rev = "v3.9.0";
sha256 = "sha256-VTRL+8ph2eI7iPht15epkLggAgtLGxB3DORFTW5GrhE=";
};
}
];
# Modal editing is life, but CLI benefits from emacs gymnastics
defaultKeymap = "emacs";
initExtra = lib.concatMapStrings builtins.readFile [
./completion-styles.zsh
./extra-mappings.zsh
./options.zsh
];
localVariables = {
# I like having the full path
AGKOZAK_PROMPT_DIRTRIM = 0;
# Because I *am* from EPITA
AGKOZAK_PROMPT_CHAR = [ "42sh$" "42sh#" ":" ];
# Easy on the eyes
AGKOZAK_COLORS_BRANCH_STATUS = "magenta";
# I don't like moving my eyes
AGKOZAK_LEFT_PROMPT_ONLY = 1;
};
shellAliases = {
# Sometime `gpg-agent` errors out...
reset-agent = "gpg-connect-agent updatestartuptty /bye";
};
};
# Fuzzy-wuzzy
config.programs.fzf = lib.mkIf cfg.enable {
enable = true;
enableZshIntegration = true;
};
config.programs.dircolors = lib.mkIf cfg.enable {
enable = true;
};
}

View file

@ -1,14 +0,0 @@
# Fix delete key not working
bindkey "\e[3~" delete-char
# Fix Ctrl+u killing from the cursor instead of the whole line
bindkey \^U backward-kill-line
# Use Ctrl+x-(Ctrl+)e to edit the current command line in VISUAL/EDITOR
autoload -U edit-command-line
zle -N edit-command-line
bindkey '^xe' edit-command-line
bindkey '^x^e' edit-command-line
# Enable Shift-Tab to go backwards in completion list
bindkey '^[[Z' reverse-menu-complete

View file

@ -1,12 +0,0 @@
# Show an error when a globbing expansion doesn't find any match
setopt nomatch
# List on ambiguous completion and Insert first match immediately
setopt autolist menucomplete
# Use pushd when cd-ing around
setopt autopushd pushdminus pushdsilent
# Use single quotes in string without the weird escape tricks
setopt rcquotes
# Single word commands can resume an existing job
setopt autoresume
# Those options aren't wanted
unsetopt beep extendedglob notify

View file

@ -0,0 +1,5 @@
# Default home-manager configuration
{ ... }:
{
# Default configuration, nothing to do
}

View file

@ -0,0 +1,57 @@
# Google Laptop configuration
{ lib, options, pkgs, ... }:
{
services.gpg-agent.enable = lib.mkForce false;
my.home = {
atuin = {
package = pkgs.stdenv.mkDerivation {
pname = "atuin";
version = "18.4.0";
buildCommand = ''
mkdir -p $out/bin
ln -s /usr/bin/atuin $out/bin/atuin
'';
meta.mainProgram = "atuin";
};
};
git = {
package = pkgs.emptyDirectory;
};
tmux = {
# I use scripts that use the passthrough sequence often on this host
enablePassthrough = true;
terminalFeatures = {
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
xterm-256color = { };
};
};
ssh = {
mosh = {
package = pkgs.emptyDirectory;
};
};
zsh = {
notify = {
enable = true;
exclude = options.my.home.zsh.notify.exclude.default ++ [
"adb shell$" # Only interactive shell sessions
];
ssh = {
enable = true;
# `notify-send` is proxied to the ChromeOS layer
useOsc777 = false;
};
};
};
};
}

View file

@ -0,0 +1,41 @@
# Google Cloudtop configuration
{ lib, pkgs, ... }:
{
# Google specific configuration
home.homeDirectory = "/usr/local/google/home/ambroisie";
services.gpg-agent.enable = lib.mkForce false;
my.home = {
atuin = {
package = pkgs.stdenv.mkDerivation {
pname = "atuin";
version = "18.4.0";
buildCommand = ''
mkdir -p $out/bin
ln -s /usr/bin/atuin $out/bin/atuin
'';
meta.mainProgram = "atuin";
};
};
git = {
package = pkgs.emptyDirectory;
};
tmux = {
# I use scripts that use the passthrough sequence often on this host
enablePassthrough = true;
# Frequent reboots mean that session persistence can be handy
enableResurrect = true;
terminalFeatures = {
# HTerm uses `xterm-256color` as its `$TERM`, so use that here
xterm-256color = { };
};
};
};
}

View file

@ -0,0 +1,32 @@
{ ... }:
{
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
initrd = {
availableKernelModules = [
"nvme"
"sd_mod"
"sdhci_pci"
"usb_storage"
"usbhid"
"xhci_pci"
];
kernelModules = [
"dm-snapshot"
];
luks.devices.crypt = {
device = "/dev/nvme0n1p1";
preLVM = true;
};
};
kernelModules = [
"kvm-intel"
];
extraModulePackages = [ ];
};
}

View file

@ -1,18 +1,26 @@
# Porthos self-hosted server
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ ... }:
{
imports = [
# Include generic settings
./modules
# Include porthos-specific modules
./machines/porthos
# Include my secrets
./boot.nix
./hardware.nix
./home.nix
./networking.nix
./profiles.nix
./programs.nix
./secrets
# Include my services
./services
./services.nix
./sound.nix
./system.nix
];
# Set your time zone.
time.timeZone = "Europe/London";
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave

View file

@ -0,0 +1,46 @@
{ lib, modulesPath, ... }:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
fileSystems = {
"/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
};
swapDevices = [
{ device = "/dev/disk/by-label/swap"; }
];
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
my.hardware = {
firmware = {
cpuFlavor = "intel";
};
graphics = {
enable = true;
gpuFlavor = "intel";
};
};
hardware = {
trackpoint = {
enable = true;
emulateWheel = true; # Holding middle buttons allows scrolling
device = "TPPS/2 Elan TrackPoint"; # Use the correct device name
};
};
}

View file

@ -0,0 +1,34 @@
{ pkgs, ... }:
{
my.home = {
# Use graphical pinentry
bitwarden.pinentry = pkgs.pinentry-gtk2;
# Ebook library
calibre.enable = true;
# Some amount of social life
discord.enable = true;
# Image viewver
feh.enable = true;
# Firefo profile and extensions
firefox.enable = true;
# Blue light filter
gammastep.enable = true;
# Use a small popup to enter passwords
gpg.pinentry = pkgs.pinentry-gtk2;
# Machine specific packages
packages.additionalPackages = with pkgs; [
element-desktop # Matrix client
jellyfin-media-player # Wraps the webui and mpv together
pavucontrol # Audio mixer GUI
trgui-ng # Transmission remote
];
# Minimal video player
mpv.enable = true;
# Network-Manager applet
nm-applet.enable = true;
# Terminal
terminal.program = "alacritty";
# Zathura document viewer
zathura.enable = true;
};
}

53
hosts/nixos/aramis/install.sh Executable file
View file

@ -0,0 +1,53 @@
#!/bin/sh
set -eu
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root" >&2
exit 1
fi
SWAP_SIZE=16GiB
parted /dev/nvme0n1 --script -- \
mklabel gpt \
mkpart primary 512MiB 100% \
mkpart ESP fat32 1MiB 512MiB \
set 2 esp on
cryptsetup luksFormat /dev/nvme0n1p1
cryptsetup open /dev/nvme0n1p1 crypt
pvcreate /dev/mapper/crypt
vgcreate lvm /dev/mapper/crypt
lvcreate -L "$SWAP_SIZE" -n swap lvm
lvcreate -l 100%FREE -n root lvm
mkfs.ext4 -L nixos /dev/lvm/root
mkswap -L swap /dev/lvm/swap
mkfs.vfat -n boot /dev/nvme0n1p2
mount /dev/disk/by-label/nixos /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p2 /mnt/boot
swapon /dev/lvm/swap
cat << EOF
# Run the following commands as setup user
nixos-generate-config --root /mnt
# Change uuids to labels
vim /mnt/etc/nixos/hardware-configuration.nix
# Install system
mkdir -p /mnt/home/ambroisie/git/nix/config
cd /mnt/home/ambroisie/git/nix/config
git clone <this-repo> .
# Assuming you set up GPG key correctly
git crypt unlock
# Setup LUKS with 'boot.initrd.luks.devices.crypt', device is /dev/nvme0n1p1, preLVM = true
# Use 'nixos-install --flake .#aramis --root /mnt --impure' because of home-manager issue
EOF

View file

@ -0,0 +1,19 @@
{ ... }:
{
networking = {
hostName = "aramis";
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
useDHCP = false;
};
my.hardware.networking = {
# Which interface is used to connect to the internet
externalInterface = "enp0s3";
# Enable WiFi integration
wireless.enable = true;
};
}

View file

@ -0,0 +1,17 @@
{ ... }:
{
my.profiles = {
# Bluetooth configuration and GUI
bluetooth.enable = true;
# Mouse and keyboard configuration
devices.enable = true;
# GTK theme configuration
gtk.enable = true;
# Laptop specific configuration
laptop.enable = true;
# i3 configuration
wm.windowManager = "i3";
# X configuration
x.enable = true;
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
my.programs = {
# Steam configuration
steam.enable = true;
};
}

View file

@ -0,0 +1,25 @@
{ config, lib, ... }:
{
config.age = {
secrets =
let
toName = lib.removeSuffix ".age";
userExists = u: builtins.hasAttr u config.users.users;
# Only set the user if it exists, to avoid warnings
userIfExists = u: if userExists u then u else "root";
toSecret = name: { owner ? "root", ... }: {
file = ./. + "/${name}";
owner = lib.mkDefault (userIfExists owner);
};
convertSecrets = n: v: lib.nameValuePair (toName n) (toSecret n v);
secrets = import ./secrets.nix;
in
lib.mapAttrs' convertSecrets secrets;
identityPaths = [
# Due to being a laptop, this host does not itself have any SSH keys
"/home/ambroisie/.ssh/agenix"
];
};
}

View file

@ -0,0 +1,13 @@
# Host-specific secrets
let
keys = import ../../../../keys;
all = [
# This host is a laptop, it does not have a host key
# Allow me to modify the secrets anywhere
keys.users.ambroisie
];
in
{
"wireguard/private-key.age".publicKeys = all;
}

Binary file not shown.

View file

@ -0,0 +1,8 @@
{ ... }:
{
config.my.services = {
wireguard = {
enable = true;
};
};
}

View file

@ -0,0 +1,8 @@
{ ... }:
{
my.hardware.sound = {
pipewire = {
enable = true;
};
};
}

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

@ -0,0 +1,21 @@
# Boot configuration
{ ... }:
{
boot = {
# Use the systemd-boot EFI boot loader.
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
initrd = {
availableKernelModules = [ "ahci" "xhci_pci" "ehci_pci" "usbhid" "sd_mod" ];
kernelModules = [ "dm-snapshot" ];
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
}

View file

@ -0,0 +1,20 @@
# Porthos specific settings
{ ... }:
{
imports = [
./boot.nix
./hardware.nix
./home.nix
./networking.nix
./secrets
./services.nix
./system.nix
./users.nix
];
# Set your time zone.
time.timeZone = "Europe/Paris";
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -1,5 +1,5 @@
# Hardware configuration
{ lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [
@ -11,9 +11,18 @@
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
swapDevices = [
{ device = "/dev/disk/by-label/swap"; }
];
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
my.hardware = {
firmware = {
cpuFlavor = "intel";
};
};
}

View file

@ -0,0 +1,20 @@
{ ... }:
{
my.home = {
nix = {
cache = {
# This server is the one serving the cache, don't try to query it
selfHosted = false;
};
};
# Allow using extended features when SSH-ing from various clients
tmux.terminalFeatures = {
# My usual terminal, e.g: on laptop
alacritty = { };
};
# Always start a tmux session when opening a shell session
zsh.launchTmux = true;
};
}

View file

@ -3,7 +3,7 @@
SWAP_SIZE=16GiB
parted /dev/sda --script -- \
mklabel msdos \
mklabel gpt \
mkpart primary 512MiB -$SWAP_SIZE \
mkpart primary linux-swap -$SWAP_SIZE 100% \
mkpart ESP fat32 1MiB 512MiB \
@ -11,14 +11,24 @@ parted /dev/sda --script -- \
parted /dev/sdb --script -- \
mklabel gpt \
mkpart primary 0MiB 100%
mkpart primary 0% 100%
parted /dev/sdc --script -- \
mklabel gpt \
mkpart primary 0% 100%
parted /dev/sdd --script -- \
mklabel gpt \
mkpart primary 0% 100%
mkfs.ext4 -L media1 /dev/sda1
mkfs.ext4 -L media2 /dev/sdb1
mkfs.ext4 -L media3 /dev/sdc1
mkfs.ext4 -L media4 /dev/sdd1
pvcreate /dev/sda1
pvcreate /dev/sdb1
vgcreate lvm /dev/sda1 /dev/sdb1
pvcreate /dev/sdc1
pvcreate /dev/sdd1
vgcreate lvm /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
lvcreate -l 100%FREE -n media lvm
mkfs.ext4 -L nixos /dev/mapper/lvm-media
@ -27,17 +37,18 @@ mkfs.fat -F 32 -n boot /dev/sda3
mount /dev/disk/by-label/nixos /mnt
swapon /dev/sda2
mkdir -p /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot
apt install sudo
useradd -m -G sudo setupuser
su setupuser
cat << EOF
# Run the following commands as setup user
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
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
nix profile install nixpkgs#nixos-install-tools
sudo "$(which nixos-generate-config)" --root /mnt
# Change uuids to labels
vim /mnt/etc/nixos/hardware-configuration.nix
@ -46,10 +57,13 @@ vim /mnt/etc/nixos/hardware-configuration.nix
mkdir -p /mnt/home/ambroisie/git/nix/config
cd /mnt/home/ambroisie/git/nix/config
nix-env -iA nixos.git nixos.nixFlakes nixos.git-crypt
nix-env -iA nixos.git nixos.nix nixos.git-crypt
git clone <this-repo> .
# Assuming you set up GPG key correctly
git crypt unlock
nixos-install --root /mnt --flake '.#<hostname>'
EOF
# shellcheck disable=2117
su setupuser

View file

@ -0,0 +1,22 @@
# Networking configuration
{ ... }:
{
networking = {
hostName = "porthos"; # Define your hostname.
domain = "belanyi.fr"; # Define your domain.
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
useDHCP = true;
interfaces = {
eno1.useDHCP = true;
eno2.useDHCP = true;
};
};
# Which interface is used to connect to the internet
my.hardware.networking.externalInterface = "eno1";
}

View file

@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 cKojmg Ec0xt1uJTva8MxUdoTVX5m3uWaIiRlodf345FEM7Uzs
aJIneWFJPB5HVeoUGp57agXih9YeZ6xMEbyQ+zJtWQY
-> ssh-ed25519 jPowng B5XotRgv7s/FUegGhceBj7EoukewNUOIFl4TFRQf1EQ
PgGCBd/Pqwp7ayqi7okHBGF1SfFpwT4KlHJ/np6p2uQ
--- AeLgwGz6k3OABb53cXNaCU/sgI4FlU1s6p8PhAaFOlg
1ÌÉCÔ¹ð¤ŽULfI1¸Hm»Ûòb}m” ÁÅ¡ìg•ß0¦¢–¤`X<16>G>\>¹8rŽz+ŠY ™¼`—Ê¢.JBUÏ!z¸Z50ú*õ¡ÙŸ¤×ÖÇ®I<C2AE>ôÔ]¹Ïå I
ĵ<18>¿oÒÛ°…g„®„ÒêÁ³Â¿Ÿt©nƒºãcz[»{
jçå&ÁõõNæ°Nÿo{õ𽂠-eP¾=L‰™ 6¦.SP:»e¶

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

Binary file not shown.

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> 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

@ -0,0 +1,20 @@
{ config, lib, ... }:
{
config.age = {
secrets =
let
toName = lib.removeSuffix ".age";
userExists = u: builtins.hasAttr u config.users.users;
# Only set the user if it exists, to avoid warnings
userIfExists = u: if userExists u then u else "root";
toSecret = name: { owner ? "root", ... }: {
file = ./. + "/${name}";
owner = lib.mkDefault (userIfExists owner);
};
convertSecrets = n: v: lib.nameValuePair (toName n) (toSecret n v);
secrets = import ./secrets.nix;
in
lib.mapAttrs' convertSecrets secrets;
};
}

Binary file not shown.

View file

@ -0,0 +1,7 @@
age-encryption.org/v1
-> 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>

Binary file not shown.

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