Commit Graph

159 Commits

Author SHA1 Message Date
Donovan Glover
ce67ffbf73
meta: Rename homeManagerModules attribute to homeModules
This fixes an issue where previously homeManagerModules would be an
unknown flake output. Note that this change is a part of Nix 2.22.3
but not Nix 2.23.3.
2024-07-18 19:43:11 -04:00
Donovan Glover
7fe0596d90
phone: Only disable systemd-boot on aarch64
This is necessary since the boot process is handled by mobile-nixos.

Note that the implementation here should allow us to move aarch64
differences out of the flake.nix and simplify nixosConfigurations
again long-term.
2024-07-18 17:50:19 -04:00
Donovan Glover
2de95cbfaf
Revert "nix: Use flake-programs-sqlite for command-not-found"
Would rather not deal with an additional flake input here to keep things
simple.
2024-07-18 14:32:14 -04:00
Donovan Glover
f1ee89ddc8
nix: Use flake-programs-sqlite for command-not-found
This was my attempt at using flake-programs-sqlite, which worked, but
requires an additional flake input in order to function properly.
2024-07-18 14:29:39 -04:00
Donovan Glover
ad58ee22a6
stylix: Update to latest commit
Dropping the Kvantum fork for now to focus on staying up to date with
the recent Stylix developments.
2024-07-05 15:39:12 -04:00
Donovan Glover
299a5e0bd6
Revert "meta: Add attempt at using gnome-mobile" 2024-06-27 23:02:38 -04:00
Donovan Glover
961c2f1b62
meta: Add attempt at using gnome-mobile
This was my attempt at using GNOME Mobile. It works inside the x86_64
virtual machine but fails when reaching "Started Display Manager" on the
actual device.
2024-06-27 22:56:41 -04:00
Donovan Glover
d5f8261627
flake: Switch to mobile-nixos fork to fix call volume
We should be able to fix more things in the fork later.
2024-06-27 18:45:41 -04:00
Donovan Glover
742ab4508c
flake: Update to latest nixos-unstable release
Also has the latest version of hyprland.
2024-06-24 21:03:20 -04:00
Donovan Glover
b80f3f2340
meta: Use standard hosts directory
This makes sense now that we have multiple hosts in the same flake.
2024-06-20 21:34:57 -04:00
Donovan Glover
08f0823b61
flake: Remove unnecessary aarch64 tests value
Might fix the ci.
2024-06-20 17:29:20 -04:00
Donovan Glover
707a7e40b6
flake: Only run tests with x86_64-linux
Should fix an issue where aarch64 was failing.
2024-06-20 16:15:55 -04:00
Donovan Glover
11e2304a7f
flake: Include nix-config in phone config args
Fixes infinite recursion issues from self.
2024-06-18 23:58:59 -04:00
Donovan Glover
dd58dff955
flake: Add package support for aarch64 2024-06-16 12:22:07 -04:00
Donovan Glover
c93a5203b7
flake: Add formatting support for aarch64 2024-06-16 12:21:19 -04:00
Donovan Glover
22894d86c4
flake: Add missing bootloader for phone vm
This fixes an issue where `nix flake check` would previously fail.
2024-06-15 13:18:26 -04:00
Donovan Glover
ad506d827e
flake: Merge phone flake with nix-config
This makes sense to avoid having to cd into the phone directory before
being able to do anything.

Note that this time we aren't trying to combine the phone config with
the existing nix modules to keep things simple.
2024-06-15 12:48:40 -04:00
Donovan Glover
0384654ee4
flake: Don't dynamically declare nixosConfigurations
This makes it easier to add hosts that have multiple nixosConfigurations
due to compiling for different architectures.
2024-06-15 12:41:14 -04:00
Donovan Glover
a629f92827
meta: Revert combining mobile-nixos flake
This was causing a lot of issues unfortunately presumably due to things
not working with the aarch64 PinePhone system. Random errors like
"expected string 'D'" were common and I'd rather use a separate flake to
make things easier to debug and keep evaluation times to a minimum.
2024-06-15 10:47:03 -04:00
Donovan Glover
8ceb1bf511
flake: Properly handle mobile-nixos module import
This was necessary to avoid issues with conditional imports.
2024-06-14 13:18:45 -04:00
Donovan Glover
b972766cc5
nix: Merge phone flake with nix-config
This is a part of having multiple nixosSystems for the same nix flake.
2024-06-13 18:42:13 -04:00
Donovan Glover
2470a8df50
nixpkgs: Update hyprland from v0.41.0 to v0.41.1 2024-06-13 13:19:23 -04:00
Donovan Glover
f2c8af31e8
home-manager: Follow nixos-unstable
Fixes an issue where mpv stuff broke in a recent update.
2024-06-13 05:16:46 -04:00
Donovan Glover
b42540808b
meta: Patch latest nixos-unstable release with hyprland v0.41.0
This shouldn't cause too many issues.
2024-06-13 05:15:51 -04:00
Donovan Glover
96b3752117
hyprland: Lock version to v0.39.1-patched
Note that using a separate fork is necessary since overlaying flakes
seems to be non-trivial here.

Also note that previously the nixpkgs hyprland was being started from
greetd. This fixes that.
2024-06-12 14:50:44 -04:00
Donovan Glover
1e16aaa3ae
stylix: Lock kvantum fork to commit with 24.05 attributes
Fixes an issue where the build would previously show a warning about
`qt.platformTheme` being renamed to `qt.platformTheme.name`.
2024-06-01 21:18:33 -04:00
Donovan Glover
576b9bf2ba
home-manager: Lock version to 24.05
We'll be staying on the 24.05 release for the time being since we
haven't updated nixos-unstable to 24.11 yet.
2024-06-01 14:19:38 -04:00
Donovan Glover
ac327da932
flake.nix: Add back outputs for checks
Should pass in the ci this time.
2024-05-12 22:03:19 -04:00
Donovan Glover
765d6df369
flake.nix: Remove checks from outputs for now
Might fix the ci running out of space.
2024-04-29 18:18:28 -04:00
Donovan Glover
b2db08e968
flake.nix: Switch back to kvantum stylix fork 2024-04-22 23:56:40 -04:00
Donovan Glover
7f60479a90
chore: Run nix fmt
Also removed an unnecessary variable and added syntax highlighting.
2024-04-17 13:54:37 -04:00
Donovan Glover
5f25e19d3f
flake.nix: Dynamically import nixosConfigurations 2024-04-08 10:58:32 -04:00
Donovan Glover
30e0239cf7
flake.nix: Dynamically import tests
Makes it possible to add new test files to the tests directory and have
everything instantly working.
2024-04-08 10:33:18 -04:00
Donovan Glover
46f778107b
chore: Improve formatting 2024-04-05 22:51:24 -04:00
Donovan Glover
51273df2c8
meta: Move nixosConfiguration logic to separate file
Makes it easier to reason about the flake-specific stuff inside
the flake.
2024-04-05 19:21:20 -04:00
Donovan Glover
7a8fdd7259
chore: Improve formatting 2024-04-05 19:01:41 -04:00
Donovan Glover
22e31ff60b
chore: Format with nixpkgs-fmt
Note that we will continue to use nixpkgs-fmt for the time being here
since nixfmt-rfc-style breaks string syntax highlighting and comments
like `/* this */` get turned into `# this`.

The conversion from lisp-like formatting to something else in flake.nix
is a bit unfortunate, but I'd rather have a singular style for the
entire code base to make things easier.
2024-04-05 11:40:23 -04:00
Donovan Glover
59f557a3e5
feat: Pass nix-config as self to avoid infinite recursion
This change makes it possible to use this nix-config in all the
different ways imaginable (containers, bare metal, tests, and as a
separate flake input) *without* running into infinite recursion
issues with self.

It does this by using a trick similar to JavaScript in which
`var self = this;`, thus enabling the usage of "this" (or self, in
Nix's case) where it wouldn't otherwise be possible.

Note that this *only* works if the input for this repository is named
nix-config. This makes it impractical to combine with multiple
configurations that employ the same strategy.
2024-04-05 10:20:06 -04:00
Donovan Glover
b368817c52
feat: Simplify imports by importing with specialArgs
This change makes it possible to import the modules that are required
from the flake inputs in the output modules themselves, thus preventing
users from having to manually import those modules.

This simplifies things overall and was made possible by the specialArgs
option that allowed these flake inputs to be passed into our container.
2024-04-05 09:37:30 -04:00
Donovan Glover
e739239542
chore: Enable missing module options
Forgot to enable these earlier but now everything works.
2024-04-05 08:13:24 -04:00
Donovan Glover
721ead4572
chore: Inherit builtins where possible
Possibly makes things easier to read.
2024-04-04 17:56:01 -04:00
Donovan Glover
a1b9cf218d
meta: Begin migrating packages to workflow-specific modules
Long-term this should make it easy to include all the GUI programs with
the desktop module and all the CLI programs with the shell module, as
well as the ability to easily disable sets of unneeded packages.
2024-04-04 08:12:16 -04:00
Donovan Glover
3da9c62869
meta: Add options for networking module
Now it's possible to use the system without mullvad vpn.
2024-04-04 05:28:54 -04:00
Donovan Glover
a18125eaf9
meta: Use mkIf for hardware-specific config
Should make it easier to use this config without pulling in
the hardware-specific stuff.
2024-04-04 00:25:08 -04:00
Donovan Glover
95b10ec3ef
meta: Begin writing tests in Nix
Now that I've figured out how to dynamically import modules and use
those modules as outputs, the next step is to ensure that these modules
work as intended when being used by end users.

NixOS offers a built-in testing solution that enables us to conveniently
spin up virtual machines with a given configuration, then verify their
correctness through python scripting.

The lib.nix file in particular is based on Jörg Thalheim's very useful
blog post that explains how to use the built-in testing functionality
with Nix flakes, which isn't covered in official documentation.

See: https://blog.thalheim.io/2023/01/08/how-to-use-nixos-testing-framework-with-flakes/
2024-04-02 05:20:42 -04:00
Donovan Glover
d21ae69f39
chore: Fix formatting 2024-04-01 18:47:33 -04:00
Donovan Glover
1558b77796
feat(flake.nix): Separate outputs logic from variables
Reduces complexity and makes things easier to reason about.
2024-04-01 11:48:12 -04:00
Donovan Glover
dd6ab4cc97
chore(flake.nix): Prefer let-in over with
Should improve readability.
2024-04-01 11:15:10 -04:00
Donovan Glover
918f0dc44a
feat(flake.nix): Drastically simplify output generation
This makes it much easier to read the output expression.
2024-04-01 11:06:05 -04:00
Donovan Glover
dd171006b2
meta: Replace treefmt with flake formatter output
This makes the code base more portable by *only* depending on Nix as a
dependency.

Note that the code base hasn't been migrated to nixfmt-rfc-style yet.
2024-04-01 09:54:20 -04:00