Commit Graph

660 Commits

Author SHA1 Message Date
Donovan Glover
6b404306bf
meta: Only install texlive on desktop
Let's not write papers on the phone.
2024-06-20 13:50:16 -04:00
Donovan Glover
3e5a395dc8
containers: Don't enable on phone
Fixes an issue where the build would previously fail.
2024-06-20 13:49:39 -04:00
Donovan Glover
708bec1773
desktop: Add phone-specific applications
GNOME Console seems to be more user-friendly for touch compared to
kitty. Not all on-screen keyboards work out of the box with hyprland.
2024-06-20 13:42:54 -04:00
Donovan Glover
de2d3550d0
desktop: Add phosh support
This should make it easier to switch between hyprland and phosh.
2024-06-20 13:27:40 -04:00
Donovan Glover
abc5dfee07
desktop: Disable fcitx / udisks / pipewire for phosh 2024-06-20 13:19:32 -04:00
Donovan Glover
a9bebdc5f6
system: Only add phone groups when necessary 2024-06-20 13:18:39 -04:00
Donovan Glover
81cb06fc14
desktop: Don't inherit sakaya on phone
sakaya only has support for x86_64-linux.
2024-06-20 12:19:57 -04:00
Donovan Glover
c48a01ae7f
system: Don't generate man cache on mobile
Significantly improves build times with aarch64 emulation.
2024-06-20 12:16:03 -04:00
Donovan Glover
700f9aa564
hardware: Add IIO sensor support
Doesn't seem to work yet but shouldn't hurt to add for now.
2024-06-20 11:07:31 -04:00
Donovan Glover
0e95b81999
desktop: Add hyprland support to phone with legacyRenderer
Time will tell whether or not Hyprland will be preferred over phosh.
2024-06-19 19:54:33 -04:00
Donovan Glover
234b373dec
desktop: Add base phone support 2024-06-19 02:06:41 -04:00
Donovan Glover
8bb6a8a24e
system: Add groups from phone
Might reduce this later.
2024-06-19 02:04:47 -04:00
Donovan Glover
510ddfe9d7
hardware: Add phone support
This is untested but should work.
2024-06-19 02:03:02 -04:00
Donovan Glover
6ff271d4e2
system: Disable zram on phone for now
Testing whether or not SIGSEGVs are reduced as a result of disabling
zram.
2024-06-19 02:01:51 -04:00
Donovan Glover
16da2fd144
system: Add phone support 2024-06-19 02:00:34 -04:00
Donovan Glover
fb5c7849d0
system: Add wheel group to trusted users
Should prevent issues we ran into previously with things like
nixos-rebuild on remote hosts through ssh with non-root accounts.
2024-06-17 11:25:00 -04:00
Donovan Glover
000c9f2d90
system: Enable aarch64-linux emulation
This makes it possible to build the phone on the laptop, useful to
significantly reduce build times.
2024-06-16 07:43:56 -04:00
Donovan Glover
c0fc4fc4d0
desktop: Add back ringracers
Accidentally removed this without adding it back previously.
2024-06-16 06:20:55 -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
05b14fa423
meta: Merge phone module with system / desktop 2024-06-14 01:21:46 -04:00
Donovan Glover
eb58e723e2
meta: Migrate phosh options to phone module
Might try going beyond phosh later.
2024-06-13 21:17:28 -04:00
Donovan Glover
8d21fa5850
desktop: Add popsicle for flashing drives
It's a nice and simple GUI that helps avoid silly mistakes when flashing
drives.
2024-06-13 13:20:32 -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
996f36e239
hardware: Add bluetooth support 2024-06-13 05:14:19 -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
824d1ef914
shell: Add new packages 2024-06-12 14:01:05 -04:00
Donovan Glover
49fda4f0ae
meta: Move dev tools to shell
Avoids having a separate home module just for packages and makes
essential tooling accessible in all shells.

Note that the legacy `texlive.combined.scheme-full` was replaced with
`texliveFull` in this commit.
2024-06-02 11:39:47 -04:00
Donovan Glover
b16466a944
Revert "system(home): Disable nixpkgs release check"
No longer necessary since we're targeting 24.05.
2024-06-01 14:19:54 -04:00
Donovan Glover
e60c826ed5
system(home): Disable nixpkgs release check
Necessary since we take advantage of newer hypridle and hyprlock
modules while sticking with an older version of nixpkgs to avoid issues
with newer versions of hyprland and ironbar.

Breakage may have been influenced by a dependency but seems to occur
with various combinations of hyprland and ironbar.

- hyprland v0.39.1 + ironbar v0.14.1
- hyprland v0.39.1 + ironbar master
- hyprland master + ironbar master
2024-05-31 23:44:44 -04:00
Donovan Glover
a1a54472ab
shell: Drop visidata
Not interested in using visidata due to its inability to turn off status
messages and how a bug report was replied to.

See: https://github.com/saulpw/visidata/issues/2283
2024-05-31 18:03:18 -04:00
Donovan Glover
d187c6dd5b
desktop: Remove logseq
I don't use logseq anymore and am removing large programs to reduce
the closure size.
2024-05-31 11:54:34 -04:00
Donovan Glover
c40055a515
packages: Remove chromium from global $PATH
Not interested in maintaining this globally when I only need it for
testing, so I'd rather have it only available inside a devShell if
necessary.
2024-05-26 06:36:09 -04:00
Donovan Glover
3983219a7f
nerdfonts: Only include Noto fonts
This reduces the closure size by 8 GB without changing anything else.
2024-05-26 05:24:31 -04:00
Donovan Glover
b30ffbc858
system: Change allowZolaPort option to allowDevPort
Makes things a bit more generic.
2024-05-20 11:53:13 -04:00
Donovan Glover
55ba37da88
overlays: Drop zola
No longer necessary since I no longer use zola and would rather not deal
with unnecessarily compiling it.
2024-05-20 11:46:30 -04:00
Donovan Glover
e96bb70ed7
direnv: Prefer silent option over $DIRENV_LOG_FORMAT
This actually sets $DIRENV_LOG_FORMAT for us.
2024-05-19 23:19:06 -04:00
Donovan Glover
372811f651
modules(desktop): Add graphical option for containers
xserver is required to make GUI applications run inside containers.
2024-05-19 11:18:39 -04:00
Donovan Glover
b5b20c7b19
tests: Test neovim with config
Fixes an issue where previously the home-manager config for neovim
wasn't actually being tested.
2024-05-19 00:45:55 -04:00
Donovan Glover
08cc18133d
ironbar: Add battery indicator support with upower
It turns out that I'd rather have a battery indicator than having to
`cat /sys/class/power_supply/BAT0/capacity` all the time.

Depends on upower and results in the battery indicator always being
shown even when virtualized.
2024-05-13 11:06:18 -04:00
Donovan Glover
4fcf7d48af
meta: Remove sqlite / sqlcipher from global $PATH
Will be handled in individual project flake.nix files instead.
2024-05-12 19:17:18 -04:00
Donovan Glover
017b588e3d
shell: Remove watchexec from systemPackages
This hasn't been as useful as I thought it would be. It's easier to
simply use alternative methods than trying to get watchexec to work.
2024-05-12 14:27:20 -04:00
Donovan Glover
39e5183013
chore: Simplify
Note that biome isn't needed since eslint is *the* industry standard.
2024-04-22 22:29:47 -04:00
Donovan Glover
65c815d155
phinger-cursors: Downgrade from 2.0 to 1.1 (again)
2.0 introduces some kind of breaking change that results in the cursor
appearing larger than usual, which I haven't been able to find an answer
for. The 1.1 cursor has been great already, so I'll probably stick with
that until further notice.
2024-04-18 21:30:27 -04:00
Donovan Glover
6826ef0307
phinger-cursors: Upgrade to 2.0 with phinger-cursors-dark
The new archive comes with a phinger-cursors-dark directory instead of
a phinger-cursors directory, which was a breaking change.
2024-04-18 20:28:29 -04:00
Donovan Glover
fbb09fea48
neovim: Specify defaultEditor at the home-manager level
Does the same thing (with the exception of VISUAL not being set for now)
but makes the module more portable overall.
2024-04-18 13:44:25 -04:00
Donovan Glover
f6f180ffc3
chore: Improve formatting 2024-04-16 20:04:24 -04:00
Donovan Glover
9f10d795c7
system(nix): Downgrade from Nix 2.19 to 2.18
I got tired of seeing the unstable warnings all the time and would
rather use directories with simple names to avoid other problems.
2024-04-16 19:48:14 -04:00
Donovan Glover
3c186055a5
chore: Improve formatting 2024-04-11 05:34:49 -04:00
Donovan Glover
cd39a136f9
system: Blacklist floppy kernel module
Fixes an issue where the QEMU VM attempted to load a floppy at /dev/fd0.
2024-04-10 22:58:09 -04:00
Donovan Glover
58df5018da
meta: Handle postgres at the system level
This makes sense since postgres is a service that runs on the system.
2024-04-09 09:25:51 -04:00
Donovan Glover
bfd55ef40a
chore(nix): Inherit builtins at bottom 2024-04-09 09:19:29 -04:00
Donovan Glover
70e6bcc223
system(home): Inherit stateVersion 2024-04-08 04:15:46 -04:00
Donovan Glover
f02f2cfd03
chore(nix): Use singleton where possible 2024-04-08 04:11:19 -04:00
Donovan Glover
9fa0aa4206
desktop: Add options for theme/opacity/fontSize 2024-04-07 12:30:50 -04:00
Donovan Glover
fa82103e6c
meta: Drop /share/backgrounds pathsToLink
Not needed since we can just reference the background directly instead.

Note that the linking actually occurs in the modules for the DEs that
add backgrounds since it isn't part of the defaults.
2024-04-07 11:54:35 -04:00
Donovan Glover
c1eed0c69d
eww: Make icons work standalone 2024-04-07 11:05:15 -04:00
Donovan Glover
c6c49b62b5
chore: Improve formatting 2024-04-07 10:54:12 -04:00
Donovan Glover
1173e8483b
meta: Drop /share/fonts pathsToLink
Shouldn't be necessary with the usage of fonts.packages.
2024-04-07 10:13:08 -04:00
Donovan Glover
ec496e1a69
meta: Rename shared.nix to default.nix
This should make it easier to tell that this is the default
configuration inherited by all containers.
2024-04-06 22:47:01 -04:00
Donovan Glover
ba10f28513
fish: Move core logic to home
Making root more bare-bones should be okay due to being able to use nix
shell and nix run as needed.
2024-04-06 22:14:18 -04:00
Donovan Glover
006a3592e6
feat: Fix crackling audio inside containers
It turns out that enabling hyprland inside the container causes this to
happen. I've also disabled greetd for good measure.
2024-04-06 19:35:57 -04:00
Donovan Glover
534476e97b
feat: Add option to disable root at the system level
Reduces complexity in the containers module.
2024-04-06 19:28:22 -04:00
Donovan Glover
bd6fabad67
feat: Move starship/htop back to home
It's actually easier to maintain when programs with non-trivial configs
have their own module.
2024-04-06 18:46:27 -04:00
Donovan Glover
2e366abf7d
containers: Move wine config to separate file 2024-04-06 18:18:30 -04:00
Donovan Glover
00135526e7
desktop: Support japanese/wine by default
Simplifies things a bit since my target audience includes those
interested in the Japanese language. Opinionated defaults like this
makes it easier for end-users to be immediately productive without
having to spend time configuring things.
2024-04-06 13:43:28 -04:00
Donovan Glover
a7821f7027
chore: Fix usage of argument not present in container
nix-config must be used when referencing flake inputs to make it
possible to use the same module inside containers.
2024-04-06 12:27:27 -04:00
Donovan Glover
0033dfceb0
chore: Disable command-not-found by default
Unfortunately command-not-found only works for channels and doesn't have
first-class support for flakes yet, and nix-index takes forever to build
the database on slower machines, so I'd rather just disable this by
default.
2024-04-06 12:13:02 -04:00
Donovan Glover
7649c658b7
meta: Merge packages module into existing modules 2024-04-06 11:49:03 -04:00
Donovan Glover
b4af703fdf
meta: Merge dual-function-keys with hardware
Seems like an alright categorization for now since dual-function-keys
can be used without a desktop environment, although realistically the
tty is impractical for things like CJK.
2024-04-06 11:09:09 -04:00
Donovan Glover
3fc9cb9c81
chore: Link paths at the system level
Fixes an issue where paths wouldn't be linked previously unless
manually specified.
2024-04-06 10:26:32 -04:00
Donovan Glover
10bc64f097
chore: Attempt to organize packages a bit
Not perfect but good enough.
2024-04-06 10:19:18 -04:00
Donovan Glover
5bc853c489
chore: Fix specializations evaluating as sets 2024-04-06 09:44:40 -04:00
Donovan Glover
30f4d4f650
meta: Merge networking with system
This makes it easier to ensure that the system has our network settings
such as random mac addresses. This makes sense since networking in
general is related to the system.
2024-04-06 09:26:22 -04:00
Donovan Glover
8464d87cc9
meta: Merge specializations with desktop
This makes sense since the specializations are desktop-centric.
2024-04-06 08:30:54 -04:00
Donovan Glover
0e07ad48f5
virtualization: Mount /tmp as /mnt
This isn't *perfect*, but it does make it possible to share files
between the guest and the host without having to imperatively create a
directory that may or may not exist on other systems.
2024-04-06 08:21:32 -04:00
Donovan Glover
dd3d09bb67
system: Add option to specify hashedPassword
It may be useful to add hashedPasswordFile in the future, although from
my testing it was possible to rebuild a VM that used a cached derivation
with the old password.

Ideally your main form of authentication is through LUKS encryption or
SSH keys anyway, and this password should solely be used for sudo
purposes.
2024-04-06 08:18:32 -04:00
Donovan Glover
76a397031f
system: Set password to username by default
Ideally the user should supply their own hashedPassword.
2024-04-06 08:10:52 -04:00
Donovan Glover
3080c56023
containers: Fix warning when containers are disabled
Now it's possible to disable the containers without getting a warning
that containers.<name> is being defined.
2024-04-06 08:09:23 -04:00
Donovan Glover
8ba4792d03
virtualization: Fullscreen by default
Makes things easier to work with since hyprland doesn't automatically
match the resolution with the VM window by default.
2024-04-06 06:44:43 -04:00
Donovan Glover
1f1670ac54
virtualization: Disable zram
Causes errors on startup and generally isn't useful inside the VM.
2024-04-05 22:23:21 -04:00
Donovan Glover
2f30ce241b
meta: Merge virtualization with system
The check VMs still work as expected with this change.
2024-04-05 19:43:52 -04:00
Donovan Glover
7a8fdd7259
chore: Improve formatting 2024-04-05 19:01:41 -04:00
Donovan Glover
a1ec752ecd
virtualization: Don't share home directory
Not really necessary anymore since I no longer test home-specific stuff
inside the virtual machine.

It would be nice if there was a way to create a temporary directory on
the fly (such as one in /tmp) that could be mounted and used for sharing
files between the virtual machine and the host.
2024-04-05 14:35:40 -04:00
Donovan Glover
e2e8971eb3
chore: Simplify variable usage
Changes made:

- Preferred "inherits" where possible
- Removed unnecessary comments
- Added variables to avoid duplicate strings
- Reduced usage of "with x;"
2024-04-05 13:30:39 -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
01acf8197d
system: Add option to avoid cleaning /tmp on boot
This increases boot times quite a bit so I'd rather use tmpfs as /tmp
where possible. Note that this defaults to cleaning /tmp anyway since
I'd rather clean /tmp than not do so at all.

For future reference, the message that gets shown is the following:
"A start job is running for Create Volatile Files and Directories"
2024-04-05 11:18:52 -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
83314da967
chore: Fix remaining hardcoded user values 2024-04-05 08:20:11 -04:00
Donovan Glover
37aa1cac4c
greetd: Fix time format for exotic locales
Fixes an issue where the Japanese locale would prevent the datetime from
showing properly at the top.
2024-04-05 07:13:10 -04:00
Donovan Glover
7b234dfb19
chore: Add missing inherit
Also fixes an issue with mkMerge requiring things to be written
like this.
2024-04-05 07:10:30 -04:00
Donovan Glover
db5b95e983
nix: Prefer let-in over with
Fixes an issue where it's possible to write code that the linter thinks
is valid since with; is used.
2024-04-04 20:05:10 -04:00
Donovan Glover
b46c9a05a9
meta: Continue modularizing packages
Should make it easier to know what's what.
2024-04-04 20:03:31 -04:00
Donovan Glover
a6f2c58d51
meta: Don't hardcode home directory
This is a much better way of handling things.
2024-04-04 19:39:35 -04:00
Donovan Glover
6f1b17a600
meta: Merge postgres module with shell
Realistically this might be more related to "system" than shell, however
it may also be advantageous to keep system as minimal as possible since
it could also be argued that interpreted programming languages are a
part of the system.
2024-04-04 18:37:44 -04:00
Donovan Glover
8d4a7f780c
postgres: Ensure creation of database users
This is just a proof of concept that I plan to integrate into NixOS
containers running specific users. The ensureDBOwnership part would no
longer be needed since each database would receive its own container
and consequently user.
2024-04-04 17:44:21 -04:00
Donovan Glover
7f05a66fa5
feat: Make username customizable
Now it's possible to use whatever username you want for your system. The
default value of "user" is good if you're concerned about information
disclosure attacks through things like the username being visible in
logs or other output.
2024-04-04 16:36:28 -04:00
Donovan Glover
558e0b1623
meta: Merge home-manager and user module with system
Makes it easier to create a working and pre-configured system with
minimal configuration.
2024-04-04 16:02:35 -04:00
Donovan Glover
dd38bf1c4c
meta: Begin making shell module customizable 2024-04-04 12:25:15 -04:00
Donovan Glover
a03963d1f7
meta: Merge wine module with desktop
Makes it easier to just import the desktop module and use everything we
want.
2024-04-04 12:19:47 -04:00
Donovan Glover
764fbd4917
Revert "meta: Migrate yazi from home-manager to shell module"
There is currently a bug where yazi crashes since it tries to create
directories but is unable to due to being managed at the system level.

There is an open PR in nixpkgs, however it's been 3 weeks and it hasn't
been merged yet.
2024-04-04 12:15:40 -04:00
Donovan Glover
e64cc2697f
meta: Migrate yazi from home-manager to shell module
This is a part of making it easier to instantly have access to yazi
without having to worry about using home-manager. Note that this works
for my use case since I don't use Nix on non-NixOS devices and don't
intend to do so anytime soon.
2024-04-04 12:14:26 -04:00
Donovan Glover
cd5f0793d7
meta: Merge stylix module with desktop
This continues the process of simplifying the available modules for
end-users. The final result would be having a clear set of modules like
"desktop" and "shell" that can be enabled if users want a complete
Hyprland environment or a complete shell environment.

Enabling the stylix module "only" would be a low-tech solution and at
that point it'd likely be better for end-users to take complete control
of their stylix config with their own module.
2024-04-04 11:15:39 -04:00
Donovan Glover
dab608bb6c
meta: Merge thunar module with desktop
Thunar is an opinionated file manager that we're using as the GUI
application of choice because it handles directories with large files
*significantly* better than Nautilus. It also supports image previews
for files that have been trashed, as well as a slew of other convenience
features such as a built-in auto-renaming tool.
2024-04-04 10:14:15 -04:00
Donovan Glover
dd72842221
home-manager: Make autocomplete work for man pages
This fixes an issue where packages installed with home-manager wouldn't
appear when tabbing to auto-complete man pages.
2024-04-04 09:43:00 -04:00
Donovan Glover
7ef220be22
meta: Make system module customizable 2024-04-04 09:41:32 -04:00
Donovan Glover
e1e1243618
meta: Migrate htop from home-manager to shell module
Realistically I want access to htop on any machine running my shell
configuration. Making this NixOS-specific removes some of the dependence
on home-manager as well.
2024-04-04 08:32:39 -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
ff99d22caf
chore: Replace lib.types.string with str
"string" is deprecated.
2024-04-04 07:58:32 -04:00
Donovan Glover
dae5ca4b03
meta: Rename hyprland module to desktop
This is the start of making it possible to include desktop-related
configuration options instead of only hyprland-related ones.

This simplifies things a bit since opinionated configurations can be
hidden behind an option and end users won't have to worry about all
the different possible modules they could import.
2024-04-04 05:45:12 -04:00
Donovan Glover
9ee08ca7eb
meta: Begin making hyprland module customizable
This is a part of simplifying the hyprland module to simply "desktop".
2024-04-04 05:38:23 -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
ecb2463ee7
meta: Merge mullvad module with networking
It should be fairly straight-forward to add an option that explicitly
enables mullvad and the associated networking rules.
2024-04-04 04:24: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
941ef546e5
meta: Merge fonts module with hyprland
This makes sense since fonts are part of the desktop and should be
included at the same time when using the hyprland module.
2024-04-03 23:13:18 -04:00
Donovan Glover
698994b62d
meta: Merge greetd module with hyprland
This change is a part of making the desktop-specific stuff its own
module. Note that importing the entire hyprland module into the wine
container doesn't seem to change anything, so simplifying and including
everything in this module should be fine.
2024-04-03 23:03:10 -04:00
Donovan Glover
82966406a4
meta: Merge starship module with shell
I originally separated these modules to avoid "opinionated" options like
neovim as the default editor. Now I realize however that it's easier to
load all opinionated settings by default since users can change them
either through the original options or with module-specific options.
2024-04-03 21:51:10 -04:00
Donovan Glover
a787713d8d
meta: Rename fish module to shell
By making this module more generic, it becomes possible to include CLI
programs and other applications as part of the "shell", then provide
options for users to enable or disable things as needed.
2024-04-03 21:43:11 -04:00
Donovan Glover
38e82be380
meta: Merge pipewire module with hyprland
Realistically if hyprland is being used then the user *probably* wants
audio as well, so merging them makes sense here.

This commit is a part of ultimately having a single module for "desktop"
usage.
2024-04-03 21:40:38 -04:00
Donovan Glover
e44b145164
meta: Merge neovim module with starship
This is a part of making a separate "shell" module that can be used to
provide a standard base of tools when working in headless environments.
2024-04-03 21:37:08 -04:00
Donovan Glover
a18a120634
system: Clean /tmp on boot
Necessary since /tmp is no longer a tmpfs.
2024-04-03 21:28:53 -04:00
Donovan Glover
d452e982e3
fish: Add nix flake check abbreviation
More useful now that it's also used for VM testing.
2024-04-03 20:07:35 -04:00
Donovan Glover
a3717c48f0
chore: Simplify fish module 2024-04-03 20:07:00 -04:00
Donovan Glover
2048bc62f8
chore: Simplify thunar module 2024-04-03 09:59:32 -04:00
Donovan Glover
019603afc7
meta: Begin making system module customizable
These options are pretty important so it'd be cool to be able to change
them. Current strategy is to assume that configuration through the
module is preferred over overriding the NixOS option directly.
2024-04-03 09:44:57 -04:00
Donovan Glover
26348c28ea
chore(modules): Rename piper to hardware
Might rename again in the future, but for now this is an easy way to
keep track of all hardware-specific config.
2024-04-03 09:33:15 -04:00
Donovan Glover
1f80607ca0
meta: Merge zram module with system
Self-explanatory since zram is system-related. Doesn't seem to affect
containers which is good.
2024-04-03 09:16:24 -04:00
Donovan Glover
13d98c2c9f
meta: Merge nix and systemd modules with system
These are simple enough configurations that have benefits across many
different systems.
2024-04-03 08:06:04 -04:00
Donovan Glover
85ead9e779
meta: Merge boot module with system
This seems like it could fit with the hardware module as well, however
time will tell if we're able to keep this in system when importing it
into containers and virtual machines.

Note that boot.loader.efi.canTouchEfiVariables gets set to true during
the nixos-install process, so it should be okay to keep here.
2024-04-03 07:43:43 -04:00
Donovan Glover
cc3991a38a
meta: Merge timezone and locale with system
Usually one would want to define all of these options at the same time,
so it doesn't make sense to require importing several different modules.

For values that aren't needed, users can either override the configuration
in their own module or use an option that has been written upstream for the
module.
2024-04-03 07:15:30 -04:00
Donovan Glover
2452f61338
meta: Merge logind with piper
This is a part of putting hardware-related configs together so they
don't distract from the other shell-related and desktop-related configs.
2024-04-03 07:12:41 -04:00
Donovan Glover
2e64dbd3e3
meta: Drop docker (again)
Docker feels a bit too old school after being spoiled by the Nix
language and all the features that NixOS provides. Dockerfiles are not
as cool to write as Nix files and docker-compose.yml lacks many of the
reproducible benefits one gets from sticking with Nix.

Now that I have more experience with Nix, it should be possible for me
to build and run the services I want to run with Nix instead of Docker.
This should additionally reduce my personal machine's startup time,
which was already quite low with Hyprland.

As a final closing, expertise in Nix seems more useful than Docker for
my personal goals. I'd rather be able to control entire Linux systems
and their full environments with containers, virtual machines, and other
goodies than be restricted to the simplistic model that is Docker.
2024-04-03 07:05:40 -04:00
Donovan Glover
039cf97368
meta: Merge udev with piper
This is part of merging all hardware-specific config into one module.
2024-04-03 06:29:07 -04:00
Donovan Glover
7f97bb62c2
meta: Merge services.resolved.llmnr with networking
Link-Local Multicast Name Resolution is networking related and should be
of interest to users that are also interested in the networking module.
2024-04-03 06:19:08 -04:00
Donovan Glover
8e16a465e1
meta: Merge cdemu with wine
The cdemu module is wine-specific and should be enabled together with
the wine module, with an option for the user to disable it if desired.
2024-04-03 06:01:32 -04:00
Donovan Glover
ea4c8d16dd
specializations: Make opt-in with mkEnableOption
Specializations basically double the build time for each one added, so
requiring users to explicitly enable it means quicker build times for
those that prefer Hyprland (which is easier to configure declaratively).
2024-04-03 02:46:42 -04:00
Donovan Glover
b8ad062cec
nix: Use lib.singleton where possible 2024-04-02 18:53:56 -04:00
Donovan Glover
39cdc4972e
meta(dual-function-keys): Improve readability
Adds a few variables to make things easier to reason about.
2024-04-02 17:19:07 -04:00
Donovan Glover
42bcd16f65
meta(nix): Replace inline YAML with builtins.toJSON 2024-04-02 16:31:23 -04:00
Donovan Glover
6dde83cea9
fish(nix-collect-garbage): Delete user garbage as well
Fixes an issue where user-specific stuff never got cleaned up from the
nix store.
2024-04-02 14:34:48 -04:00
Donovan Glover
35b677c46d
dual-function-keys: Change KEY_GRAVE to right alt
Should avoid conflicts where tapping the shift key in succession is
necessary.
2024-04-01 19:43:42 -04:00
Donovan Glover
9b4d9c8bf5
meta: Make specializations a nixosModule
Now it's possible to use the specializations in arbitrary configs. Note
that specializations do slow things down a bit so they may be disabled
by default in the future.
2024-04-01 06:27:08 -04:00
Donovan Glover
24c4badf39
meta: Make containers a nixosModule
Makes it easier to use the containers in other configs.
2024-04-01 06:24:52 -04:00
Donovan Glover
12464e8b65
chore: Improve formatting
No need to write stylix so many times.
2024-04-01 06:17:02 -04:00
Donovan Glover
44422516d4
feat(nix): Automatically import module outputs
This drastically simplifies things since we no longer have to worry
about adding and removing files from a default.nix.
2024-03-31 19:23:12 -04:00
Donovan Glover
94a43d1888
fonts: Fix fontconfig mono font
Might remove this later since stylix is used for the fonts instead.
2024-03-31 15:35:14 -04:00
Donovan Glover
23049a3e99
meta: Switch from joshuto to yazi
After almost a year of using joshuto, I have decided to switch to yazi.

The latest joshuto update broke my image preview configuration, and it
didn't make sense trying to figure out the issue with yazi already
having built-in image support and more.

Other notable improvements from this change include:

- Simplified configuration since defaults no longer have to be
  re-declared
- Faster directory loading, especially for /nix/store/ and symlinks to
  /nix/store/
- Text files are more likely to show previews without manual
  configuration
- Videos now have working previews again, similar to ranger
2024-03-30 18:20:01 -04:00
Donovan Glover
6cab0f25a5
chore: Update packages
Dropped GUI programs I no longer use and added qdirstat as a cool
alternative to windirstat.
2024-03-30 16:44:28 -04:00
Donovan Glover
682e95ef1c
chore: Drop unused packages
I only used inkscape to convert svg to png with the following command:
`fd -e svg -x inkscape -w 512 -h 512 "{}" -o "{.}.png"`

gthumb was crashing and I'd rather not have to deal with a non-trivial
GUI program that crashes on launch.

nb and obsidian are cute but ultimately I found quartz to be better for
my use case.
2024-03-29 10:16:04 -04:00
Donovan Glover
e208178502
chore: Update packages
Got tired of manually updating the osu! hash each time so now
allowUnfree is being used for the time being.
2024-03-25 14:23:14 -04:00
Donovan Glover
488b7a61de
packages: Drop slade
Fixes an issue where slade was causing manual compiles among other
things.
2024-03-23 18:14:54 -04:00
Donovan Glover
0151098d47
chore: Update flake inputs
Notable changes include upgrading to Plasma 6 in the DE specialization
as well as updating the pqiv config to work with the latest home-manger
change.
2024-03-22 12:22:23 -04:00
Donovan Glover
6e23ae9c4c
chore: Update to latest nixos-unstable release
- Removed old hyprlang/hyprlock overlays that are now in nixos-unstable
- Replaced pnpm-shell-completion with the one upstream
- Changed old GPG option to new one
2024-03-17 00:20:04 -04:00
Donovan Glover
fa1650198f
chore: Drop unused packages
tui-journal was cool and although it could work, it's not really worth
it over taking advantage of what Logseq has to offer.
2024-03-09 11:42:19 -05:00
Donovan Glover
32e443fbcd
chore: Update flake inputs 2024-03-08 19:56:40 -05:00
Donovan Glover
c836aa7f79
dual-function-keys: Make left shift KEY_GRAVE
Fixes an issue where ` wouldn't work in neovim due to the escape key
being recognized as pressed.
2024-03-07 22:21:36 -05:00
Donovan Glover
e67230b282
meta: Switch from swaylock to hyprlock
hyprlock matches the other animations of hyprland a bit better and is
overall more pleasant to work with.
2024-03-07 22:19:02 -05:00
Donovan Glover
093f085630
udev: Disable internal keyboard for now
Necessary since the current keyboard has too many broken keys.
2024-03-07 21:55:54 -05:00
Donovan Glover
48f9d1a87f
virtualization: Decrease memory size from 8GB to 4GB 2024-03-05 19:26:12 -05:00
Donovan Glover
f7df16b6a1
chore: Update to latest nixos-unstable release 2024-03-05 19:17:23 -05:00
Donovan Glover
1d448a5289
zram: Increase memory percent to 100%
See https://github.com/NixOS/nixpkgs/issues/103106
2024-03-05 19:10:25 -05:00
Donovan Glover
d5c7fe6083
meta: Drop tmpfs for /tmp
Less useful when running on machines with lower amounts of RAM.
2024-03-04 16:22:11 -05:00
Donovan Glover
6d047a9567
chore: Update to latest nixos-unstable-small release
cargo-audit has been dropped to fix an issue with libgit2, which should
be fixed in 1-2 weeks or so. Additionally, nvim-base16 has been renamed
to base16-nvim, which is currently only recognized on -small.
2024-02-19 08:28:34 -05:00
Donovan Glover
89722f8d47
packages: Add mgitstatus
Also adds an abbreviation for mgitstatus.
2024-02-18 23:56:42 -05:00
Donovan Glover
1464bd85bc
fish: Add abbreviation for cargo test 2024-02-18 23:56:11 -05:00
Donovan Glover
77bbe4ff61
fish: Add abbreviations for pnpm 2024-02-15 23:55:01 -05:00
Donovan Glover
3d65f10068
fish: Don't limit df to ext4
Important since I now use btrfs.
2024-02-08 22:55:45 -05:00
Donovan Glover
96ba7452fb
stylix: Make Aleo default serif font 2024-02-08 22:52:14 -05:00
Donovan Glover
56475023ed
pipewire: Drop low latency patch
This was actually causing audio crackling issues when playback rapidly
changed in wine.
2024-02-03 05:51:16 -05:00
Donovan Glover
2d703c8efd
chore: Update flake inputs 2024-01-31 07:30:28 -05:00
Donovan Glover
240a3e8355
virtualization: Disable containers
Not needed inside the VM.
2024-01-31 04:33:38 -05:00
Donovan Glover
81ec4473c2
fish: Remove yarn alias
Not needed since yarn now uses v3 by default.
2024-01-27 23:57:14 -05:00
Donovan Glover
68bcfce997
meta: Add postgres
Useful for testing purposes without having to spin up a docker
container.
2024-01-25 17:32:47 -05:00
Donovan Glover
c7f4111055
chore: Update to latest nixos-unstable release 2024-01-19 00:59:55 -05:00
Donovan Glover
bb3792d748
fcitx: Use wayland front-end for GTK
Fixes the warning notification shown on boot.
2024-01-13 00:39:29 -05:00
Donovan Glover
4a7d310d9f
docker: Drop podman
This fixes an issue where podman was causing NixOS virtual machines
(which depend on QEMU) to not start with the following error:

qemu-kvm: could not stat pidfile /run/user/1000/pulse/pid: No such file or directory
2024-01-13 00:31:31 -05:00
Donovan Glover
d9da12efe7
chore: Update packages
Trying out sqlcipher since it's supposed to be like SQLite but
encrypted.
2024-01-12 07:21:51 -05:00
Donovan Glover
864ed55261
docker: Add podman
This was my attempt at using Podman on NixOS. Although it worked and was
cool, Podman actually breaks audio for QEMU VMs and results in an error
message that returns 0 hits on search engines.
2024-01-12 04:18:39 -05:00
Donovan Glover
a070bb5531
virtualization: Enable resolvconf
Fixes network connectivity in the virtual machine. Necessary due to the
change to the Mullvad packaging that required resolvconf to be disabled
on the host.
2024-01-12 04:15:25 -05:00
Donovan Glover
78b7efb192
chore: Update packages 2024-01-05 19:09:04 -05:00
Donovan Glover
860708e232
chore: Update flake inputs
This shouldn't break anything.
2024-01-02 18:18:39 -05:00
Donovan Glover
d5fe4c2118
chore: Update flake inputs 2023-12-26 16:44:10 -05:00
Donovan Glover
8242938fc9
nix: Update version to 2.19.2
This fixes an issue where nixFlakes (the stable version of Nix) would
fail when running nixos-rebuild if a path contained non-ASCII
characters.
2023-12-14 23:49:04 -05:00
Donovan Glover
13dad50841
fish: Use fish shell when running nixpkgs-review
This makes things a lot nicer.
2023-12-13 05:43:57 -05:00
Donovan Glover
e16c8f1906
nix: Don't warn when git tree is dirty
I run `git status` frequently enough that I already know when the tree
is dirty. Additionally, the starship prompt shows the git status anyway.
2023-12-13 05:40:52 -05:00
Donovan Glover
5fb3f38f62
chore: Update flake inputs
Kernel version is now 6.1.67 to avoid the ext4 data corruption bug.

Additionally, typst-lsp had to be removed since it fails to build. No
solution has been posted in the GitHub issue yet.
2023-12-13 05:39:16 -05:00
Donovan Glover
c9e52534d2
chore: Update flake inputs
emmet-language-server is now in nixos-unstable.
2023-12-04 14:34:48 -05:00
Donovan Glover
1155978979
starship: Disable rust indicator
Not really necessary since I know when I'm working in a Rust project and
the version number isn't relevant in most cases.
2023-11-30 23:21:00 -05:00
Donovan Glover
f7a9dc27b8
starship: Disable bun indicator
Avoids making the prompt line too long.
2023-11-30 23:20:31 -05:00
Donovan Glover
7095056ebe
packages: Add satty 2023-11-30 23:04:29 -05:00
Donovan Glover
c7415ebe69
networking: Disable resolvconf
Fixes an issue where newer versions of the Mullvad module would cause
websites to not resolve.

See: https://discourse.nixos.org/t/connected-to-mullvadvpn-but-no-internet-connection/35803
2023-11-30 23:02:50 -05:00
Donovan Glover
56da65f34a
chore: Update flake inputs 2023-11-30 19:14:43 -05:00
Donovan Glover
b77820ea25
starship: Simplify nix format
Useful for `use flake` in .envrc
2023-11-30 19:12:23 -05:00
Donovan Glover
5c2625e4e2
fish: Add alias for npm-check-updates
A good replacement for yarn upgrade-interactive.
2023-11-30 18:56:57 -05:00
Donovan Glover
157ec2b7a2
fish(eza): Don't quote directories with spaces
Not needed since icons are used.
2023-11-20 13:33:51 -05:00
Donovan Glover
ad9500925d
fish: Add nixpkgs-review abbreviation 2023-11-19 06:37:50 -05:00
Donovan Glover
9378fa8208
chore: Update packages 2023-11-18 14:54:19 -05:00
Donovan Glover
5046c0fa2e
stylix: Style cursor with new option 2023-11-18 14:52:48 -05:00
Donovan Glover
2553258bc3
fish: Add abbreviation for zathura 2023-11-14 10:37:30 -05:00