Commit graph

317 commits

Author SHA1 Message Date
Pacman99 115f1e6711 make core an unecessary profile and add to suites
Prevents mkHosts subverting standard devos api to import core and add
all necessary core features to mkHosts, so core can be safely deleted in
suites
2021-04-06 19:00:57 -07:00
Timothy DeHerrera f53b6a4543
core: really fix #162 2021-03-14 21:49:35 -06:00
Timothy DeHerrera c12528b7d9
core: fix #162 2021-03-14 21:41:28 -06:00
Timothy DeHerrera c012f2f4ed treewide cleanups and refactoring for initial tests (#157)
- [x] refactor lib into separate files, similar to NixOS/nixpkgs/lib.
- [x] refactor ci to automatically generate derivations from flake outputs
- [x] remove cluttered indirection statements throughout the codebase
- [x] refactor hosts to allow for upcoming integration tests
- [x] improve ambiguity in the existing docs 
- [x] add [BORS](https://bors.tech) support
- [x] add initial integration test
- [x] write tests documentation
- [x] test lib
- [x] improve version string generation, and do so automatically for pkgs/flake.nix sources

Clean up the codebase as best we can in preparation for #152 and add tests. From now on, all PRs will be merged with BORS.
2021-03-14 07:10:51 +00:00
Timothy DeHerrera 44bae21564
nix#registry: update names
Continuing the work from 487fa7ea26,
simplify the registry entries a bit more by simply refering to the
input flakes. Also add alias `orch` for easy search `override`.
2021-03-01 20:11:23 -07:00
Timothy DeHerrera 1651913910
profiles: simplify profiles to suites
* Leave importing to nixpkgs module implentation. Provide a path
  instead; resolves #136.
* Allow profiles which are not lambdas but simple attribute sets,
  relaxing the constraints a bit.
* Update profile README.md
* defaultImports -> mkProfileAttrs: allow importing subprofiles even
  if parent directory does not contain a default.nix.
2021-02-25 14:47:19 -07:00
Timothy DeHerrera 8939c3401b
project rename: nixflk -> devos 2021-02-17 18:31:33 -07:00
Timothy DeHerrera 4f44e0dd13
nix: patch nix directly for experimental features
The bash wrapper was causing issues with deploy-rs and the
experimental-features option in the config was causing hercules-ci to
spit out a bunch of junk in the logs. Patching nix with the default
values required for flakes fixes both of these issues.
2021-02-17 12:54:41 -07:00
Timothy DeHerrera caba5fd756
deploy-rs: init support
Managing servers remotely is a big usecase, and deploy-rs is a flake
first deployment tool. By default, all nixosConfigurations are also
setup as deploy-rs nodes.

You'll still need to do some manual ssh setup, but other than that, the
system is ready to deploy.
2021-02-14 22:17:24 -07:00
Timothy DeHerrera 3a735ce70b
core: pin registry by ref
Users may wish to change the default value of override and nixos
inputs. If they do so, we want the registry listing to reflect the
proper ref names afterwards.

Also create a shell alias to easily search every flake in nix.registry.
2021-02-14 15:50:49 -07:00
Timothy DeHerrera bf34d2071f
doc: new mdbook documentation 2021-02-14 02:46:05 -07:00
Louis Bettens cc097e1c73 core: fix #115 2021-02-08 13:35:05 +01:00
Timothy DeHerrera eb275d7d0e
core: fix #114 2021-02-07 18:23:31 -07:00
Timothy DeHerrera 69e0bdff63
local: remove
set locale and timezone per host instead
2021-02-06 01:39:55 -07:00
Timothy DeHerrera 1d5b489bb2
suites: mv to dir 2021-02-06 01:31:48 -07:00
Timothy DeHerrera 40b49c52c1
create core branch without any profiles
This core will be used as the new base for the reuse branch, which is
essentiall the same as the existing template branch, except that it is
rebased from this core, simplifying future rebasing.
2021-02-03 18:58:58 -07:00
Timothy DeHerrera e92283e9d0
suites: fix play 2021-02-03 13:16:21 -07:00
Timothy DeHerrera 9234577e7e
suites: add users to suites 2021-02-03 13:16:21 -07:00
Timothy DeHerrera c67b846929
profiles: add concept of suites
* Import attrs of profiles automatically with `defaultImport`.
* Refactor profiles to ensure all are functions returning a module.
* Add a suites.nix with collections of profiles.
* Add suites as `specialArgs` to modules.
* Add suite import to NixOS host.
2021-02-03 13:16:14 -07:00
Timothy DeHerrera 6b3100326b
core: add tealdeer 2021-02-02 22:46:12 -07:00
Timothy DeHerrera 61c732a8e0
qutebrowser: enable darkmode 2021-02-02 09:39:13 -07:00
Timothy DeHerrera c5a2fa2f4d
qutebrowser: update config.py for new version 2021-02-02 09:27:19 -07:00
Timothy DeHerrera f8e3b70aee
qutebrowser: patch merged upstream 2021-02-02 01:34:19 -07:00
Timothy DeHerrera 4514ea7687
graphical: latest kernel breaks nvidia 2021-02-02 01:30:24 -07:00
Timothy DeHerrera 5fd770d4db
qutebrowser: use pdf viewer 2021-02-01 23:37:39 -07:00
Timothy DeHerrera acde966df4
develop: fix devshell package
Introduced in a1fade8
2021-01-28 14:47:48 -07:00
Timothy DeHerrera a173bd4165
profiles#ci-agent: init 2021-01-25 09:20:40 -07:00
Timothy DeHerrera 7c0381f478
hosts: simplify nix_path 2021-01-23 16:45:21 -07:00
Timothy DeHerrera 1b80806516
compat: fixes
* fix nixos-option
* use flake-compat for all backward compat concerns
* rebuild devshell after any nix file changes
* reexport system pkgs as legacyPackages
* provide lib flake output
* provide flake lib to nixos configs via `lib.flk`
* clean up flake.nix
2021-01-23 16:45:10 -07:00
Timothy DeHerrera 75fa02fc02
kakoune: add haskell lsp support 2021-01-11 20:07:18 -07:00
Timothy DeHerrera 0e974ee976
develop#haskell: init profile 2021-01-11 20:06:08 -07:00
Timothy DeHerrera 28e473517d
editorconfig: fixup 2020-12-30 01:00:12 -07:00
Timothy DeHerrera a1fad9c019
core: add n repl alias 2020-12-29 23:31:34 -07:00
Timothy DeHerrera a4409f79e4
any-nix-shell: update overlay 2020-12-29 20:16:26 -07:00
Timothy DeHerrera 893e09278b
shell: switch to using mkDevShell 2020-12-28 23:12:27 -07:00
Timothy DeHerrera 932147304e
kakoune: load editorconfig 2020-12-28 19:05:46 -07:00
Timothy DeHerrera 2e6f10dc85
Fix any-nix-shell breaking nix-run
Simply apply the PR from haslersn/any-nix-shell#6 until it is merged
upstream.
2020-12-28 18:48:41 -07:00
Timothy DeHerrera 1d3c467ca0
virt: enable container configs 2020-12-27 17:38:49 -07:00
Timothy DeHerrera 8842ae52a0
kakoune: add dhall-lsp support 2020-12-27 17:38:22 -07:00
Timothy DeHerrera 42e02c08d6
adblocking: update hosts 2020-12-25 22:10:44 -07:00
Timothy DeHerrera fde19f0117
direnv: use nix-direnv instead ad hoc hack 2020-12-25 22:09:09 -07:00
Timothy DeHerrera 89d7829169
virt: use docker alias so completion works 2020-12-25 15:57:47 -07:00
Timothy DeHerrera 5620569852
develop: switch to using gopass 2020-12-21 03:12:50 -07:00
Timothy DeHerrera 63b4e06098
qutebrowser: 1.3.1 -> 1.4.1 2020-12-21 03:12:49 -07:00
Timothy DeHerrera d3f0ad14d3
core: fix direnv hook 2020-12-19 18:35:16 -07:00
Timothy DeHerrera 2a53745f3e
virt: enable oci containers via podman 2020-12-19 17:22:00 -07:00
Timothy DeHerrera 96b1ebf556
virt: overlay no longer useful 2020-12-19 17:21:24 -07:00
Timothy DeHerrera 993a79e61e
core: add manix and nix-index 2020-12-16 14:48:40 -07:00
Timothy DeHerrera 23c4a925a6
profiles#virt: add vagrant 2020-12-15 21:41:19 -07:00
Timothy DeHerrera 829bb503d5
startship: space the lock 2020-12-15 21:40:57 -07:00
Timothy DeHerrera 2bdead324b
starship: update config for new version 2020-12-14 16:55:45 -07:00
Timothy DeHerrera 0623b00924
kakoune: fix nix linting for new version 2020-12-10 13:10:53 -07:00
Timothy DeHerrera c403cd1c32
update: small fixes after version bump 2020-12-05 18:13:13 -07:00
Timothy DeHerrera ece0f8f8a2
cquery: is depricated; use clangd instead 2020-12-05 18:12:54 -07:00
Timothy DeHerrera aba4d5f759
qutebrowser: fix pass userscript by adding rofi 2020-12-05 16:37:16 -07:00
Timothy DeHerrera d897b364c6
profiles: reorganize 2020-08-04 13:44:11 -06:00
Timothy DeHerrera 01d916f379
profiles: add symlink to user/profiles 2020-08-04 13:23:24 -06:00
Timothy DeHerrera 102aeac8f4
games: fix dependency 2020-08-04 01:04:37 -06:00
Timothy DeHerrera c7c74152d3
graphical: reorganize dependant profiles 2020-08-04 00:45:11 -06:00
Timothy DeHerrera a6506bc80d
games: don't use gamemode module 2020-08-04 00:38:23 -06:00
Timothy DeHerrera 219975f9cc
packages: export overlays as packages 2020-08-02 21:26:00 -06:00
Timothy DeHerrera c09d867f11
core: move into subdir 2020-08-02 14:50:05 -06:00
Timothy DeHerrera 60ae677683
core: enable direnv in bash 2020-08-02 13:28:41 -06:00
Timothy DeHerrera 93c2a3506b
core: add nix flake alias 2020-08-01 22:12:15 -06:00
Timothy DeHerrera 6ad7b4eeda
xmonad: remove touchtoggle 2020-07-30 22:49:26 -06:00
Timothy DeHerrera 2369f43398
format: apply nixpkgs-fmt 2020-07-30 22:17:28 -06:00
Timothy DeHerrera 14edf3fd19
fix various linting errors throughout the repo
* replace `rec` attrs with let bindings
* remove unused args
2020-07-30 22:13:41 -06:00
Timothy DeHerrera 9ba71d5b62
replace nixfmt with nixpkgs-fmt
nixpkgs-fmt looks like it is going to be the standard formatter for
nixpkgs, so we should follow suite.
2020-07-30 22:07:59 -06:00
Timothy DeHerrera 2d5471681d
kakoune: add dhall lint and format 2020-07-29 23:39:24 -06:00
Timothy DeHerrera d478059fe8
networkmanager: don't update dns from NM 2020-07-29 16:45:51 -06:00
Timothy DeHerrera c55d60ef27
graphical: remove firefox 2020-07-26 22:24:40 -06:00
Timothy DeHerrera 6d64118e26
shell: use starship for bash and zsh 2020-07-26 22:24:28 -06:00
Timothy DeHerrera 5d8413a85a
pkgs#unstable: remove specialArgs
The `specialArgs` defined in `hosts` has kept some modules from working
in external flakes. Instead, we simply enumerate packages in `hosts`
which should be pulled from `unstablePkgs`.
2020-07-26 22:18:59 -06:00
Timothy DeHerrera 1dddafdfcf
core: remove network from nix search alias 2020-07-24 20:20:24 -06:00
Timothy DeHerrera 13eb4ec233
core: alias for search nixpkgs 2020-07-23 17:06:07 -06:00
Timothy DeHerrera fff06c44f7
core: add some flakes to system registry 2020-07-23 17:03:42 -06:00
Timothy DeHerrera 093513e313
networkmanager: use resolved and set dns over tls 2020-07-21 14:34:21 -06:00
Timothy DeHerrera 364a25a7f2
stubby: remove immutable attribute 2020-07-20 18:39:45 -06:00
Timothy DeHerrera 455ac24a27
im: riot renamed to element 2020-07-20 18:07:26 -06:00
Timothy DeHerrera bb89175590
core: add jq 2020-07-20 18:04:37 -06:00
Timothy DeHerrera 8d7317bd57
kakoune: fix nix linting by using nix-linter 2020-07-20 18:03:08 -06:00
Timothy DeHerrera 42ed7910b1
core: add core to module list 2020-07-16 15:27:39 -06:00
Timothy DeHerrera 857537342a
stubby: make resolv.conf immutable 2020-07-16 15:16:52 -06:00
Timothy DeHerrera eab95c0265
core: lower min-free 2020-07-16 15:16:27 -06:00
Timothy DeHerrera a163cb6edb
core: move kernel out of core profile
The boot options and packages moved from core are more appropriate in
graphical.
2020-07-16 15:15:13 -06:00
Timothy DeHerrera c1996b1722
qutebrowser: modify some privacy settings 2020-07-14 17:32:01 -06:00
Timothy DeHerrera 446b906cfd
adblocking: update to latest hosts 2020-07-14 17:31:09 -06:00
Timothy DeHerrera 1ca628b3bd
core: add min-free to nix.conf 2020-07-13 20:07:32 -06:00
Timothy DeHerrera 4ebf259d11
modules#steam: create xsession for Steam 2020-07-09 00:05:24 -06:00
Timothy DeHerrera 8b37f63b2c
core: add nmap to core 2020-07-06 18:25:32 -06:00
Timothy DeHerrera 86aaa62f97
core: add whois to core packages 2020-06-25 21:56:15 -06:00
Timothy DeHerrera 77a635348f
graphical: set volume settings via window manager
sound.mediaKeys doesn't work with pulseaudio enabled, but some programs
e.g. Firefox require it.
2020-06-25 21:54:34 -06:00
Timothy DeHerrera ae74fb0e9a
sway#waybar: fix time format 2020-06-25 21:51:35 -06:00
Timothy DeHerrera 37dac0d77d
profiles#im: init 2020-06-20 14:02:31 -06:00
Timothy DeHerrera 43820d08fc
graphical: fix network manager password storage 2020-06-20 13:59:50 -06:00
Timothy DeHerrera b2d6471694
profiles#networkmanager: init 2020-06-20 13:59:34 -06:00
Timothy DeHerrera 21f0320dca
sddm-chili: simplify dependencies 2020-06-19 15:13:28 -06:00
Timothy DeHerrera 1c3216630d
ssh: init profile 2020-06-17 23:36:38 -06:00
Timothy DeHerrera a0cef270aa
games: add gamemode service 2020-06-17 20:14:37 -06:00
Timothy DeHerrera 9983d0d2df
xmonad: use volnoti and eliminate dzvol 2020-06-17 14:23:37 -06:00
Timothy DeHerrera da1c13b8d9
laptop: add usbutils 2020-06-16 20:52:52 -06:00
Timothy DeHerrera 38b2ba7dda
games: add wii-u-gc-adapter package and service 2020-06-16 20:52:14 -06:00
Timothy DeHerrera dc230fa066
Revert "graphical: disable pulse, use alsa instead"
This reverts commit 8706a1ca53.
2020-06-14 12:46:44 -06:00
Timothy DeHerrera f4845a8f7f
graphical: fix sddm without having to use plasma5 2020-06-14 12:41:00 -06:00
Timothy DeHerrera 7027feba31
graphical: fix icon theme 2020-06-14 12:39:10 -06:00
Timothy DeHerrera 66b12f4e80
laptop: add bluetooth support 2020-06-14 12:30:24 -06:00
Timothy DeHerrera ea1d06c017
games: add pcsx2 and steam-hardware 2020-06-14 12:30:01 -06:00
Timothy DeHerrera 1efc3eab51
xmonad: patch slock to include window title
needed for reliable focus exclusion from picom, so that screen contents
aren't leaked while locked.
2020-06-13 09:35:26 -06:00
Timothy DeHerrera 3653d4c545
qutebrowser: remove deprecated font option 2020-06-12 19:19:14 -06:00
Timothy DeHerrera 05a798a56e
flake: add option to install packages from nixos-unstable 2020-06-12 19:18:27 -06:00
Timothy DeHerrera 861cb69fa1
xmonad: use monospace font 2020-06-12 18:49:24 -06:00
Timothy DeHerrera 4f29413119
xmonad: fix stoggle script 2020-06-12 18:49:08 -06:00
Timothy DeHerrera bbdd967095
xmonad: use picom to distinguish active window 2020-06-12 18:48:36 -06:00
Timothy DeHerrera 3d444c672e
graphical: make sure libinput is available 2020-06-12 18:44:32 -06:00
Timothy DeHerrera 8706a1ca53
graphical: disable pulse, use alsa instead 2020-06-12 18:44:10 -06:00
Timothy DeHerrera 3aadbdec03
laptop: add acpi package 2020-06-12 18:42:23 -06:00
Timothy DeHerrera 0d9a3b7887
xmonad: add screenshot dependencies 2020-06-09 13:24:41 -06:00
Timothy DeHerrera d0e263afa5
graphical: add xsel to packages 2020-06-09 13:05:32 -06:00
Timothy DeHerrera 0aa797ef4b
tmux: fix plugins 2020-06-09 13:02:14 -06:00
Timothy DeHerrera 3769abafa3
laptop: init profile 2020-06-09 10:38:51 -06:00
Timothy DeHerrera 653012f81a
sway: update deprecated naming convention 2020-06-09 10:38:34 -06:00
Timothy DeHerrera 54be96d8b6
graphical#xmonad: init profile 2020-06-09 10:36:38 -06:00
Timothy DeHerrera a42fb66827
tmux: fix warning message 2020-04-26 17:45:41 -06:00
Timothy DeHerrera ce1087880d
develop: add clang as default cc 2020-02-09 13:18:15 -07:00
Timothy DeHerrera ca2e206685
graphical#sway: split tmux vetically on start 2020-02-09 13:16:27 -07:00
Timothy DeHerrera a67ca5d03b
remove unnecessary recursive attribute sets 2020-02-01 21:10:09 -07:00
Timothy DeHerrera 9b7f319996
develop#python: use ptpython as default repl 2020-02-01 10:20:29 -07:00
Timothy DeHerrera 4c79faac59
develop#python: init profile 2020-01-31 09:49:47 -07:00
Timothy DeHerrera a53bd30aac
nrd: add screenshot tools for wayland 2020-01-30 10:12:24 -07:00
Timothy DeHerrera a69df563a0
kakoune: add python3 for avilable repl 2020-01-29 09:25:23 -07:00
Timothy DeHerrera d5ba9f6173
flake.nix: define pkgs in flake
Set the global package set via `hosts/default.nix` passed in from its
definition in `flake.nix`.
2020-01-29 08:50:07 -07:00
Timothy DeHerrera 9b64b50ee8
flake.nix: consistent default.nix semantics 2020-01-10 22:39:42 -07:00
Timothy DeHerrera ed6a3e2e00
postgres: init profile 2020-01-08 13:40:53 -07:00
Timothy DeHerrera 413a6c75f6
security#mitigations: init module
Resolves #6 by breaking out the disabling of mitigations into it's own module.
Now users must explicitly accept the risk of disabling Spectre and Meltdown
mitigations with `security.mitigations.acceptRisk` in addition to actually
disabling them with `security.mitigations.disable`.
2020-01-08 13:28:49 -07:00
Timothy DeHerrera 7d69d15ff5
virt: add to exported profiles 2020-01-07 13:11:14 -07:00
Timothy DeHerrera 0bf18acdd4
virt: init profile 2020-01-06 23:44:54 -07:00
Timothy DeHerrera c6cb43fc21
develop#zsh: check of ~/.zcompdump exists 2020-01-06 22:35:33 -07:00
Timothy DeHerrera 31c3fd8acc
core: don't set root password 2020-01-06 00:38:12 -07:00
Timothy DeHerrera 4cf8048807
overlays: init overlays directory
Overlays now live globally in the overlays directory. They will be
pulled into the flake and the rest of your configuration automatically
from there.
2020-01-06 00:01:00 -07:00
Timothy DeHerrera 7caae5b8bc
develop:zsh: new shell functions
* rnm: don't ever repeat yourself in the shell
* chext: easily change file extension
2020-01-05 18:36:18 -07:00
Timothy DeHerrera a3dcc4f6bc
profiles: convert to list same as modules 2020-01-04 16:23:15 -07:00
Timothy DeHerrera 8ab0a92850
Idiomatic semantics for overlays changed
The idiom of 'self: super:' is changing upstream to 'final: prev:'.
2020-01-04 15:30:00 -07:00
Timothy DeHerrera 16b8136f50
change formatter to nixfmt 2020-01-03 22:06:31 -07:00
Timothy DeHerrera 916add2921
profiles: export additional subprofiles 2020-01-03 21:30:27 -07:00
Timothy DeHerrera c2fa18a063
graphical#qutebrowser: init
The current qutebrowser configuration is sufficiently complex that it
benefits from being factored out into a separate subprofile. An
additional benefit is that this subprofile is now exported via the
`nixosModules` flake output.
2020-01-03 21:21:33 -07:00
Timothy DeHerrera 3e43465bc6
core: move mtr to develop profile 2020-01-03 20:57:52 -07:00
Timothy DeHerrera 425f7894a4
export profiles via flake outputs
Export those listed in `profiles/default.nix` to be included in the
flake output `nixosModules` for easy use in other flakes.
2020-01-03 20:01:22 -07:00
Timothy DeHerrera 73d3826d64
Initialize template branch
Remove all idiosyncratic stuff and only leave profiles, modules and pkg
definitions, which are general and applicable for any configuration.
2020-01-03 17:47:17 -07:00
Timothy DeHerrera c13b241b6c
core: empty root passwd by default 2020-01-03 01:02:08 -07:00
Timothy DeHerrera a080a07b21
core: don't import file systems
In order not to conflict with different kinds of configurations, i.e.
nixos disk images, don't have core profile import file-systems. Instead
declare `fileSystems` individually in host profiles.
2020-01-01 19:21:15 -07:00