Commit Graph

2048 Commits

Author SHA1 Message Date
Donovan Glover
4083348a3b
meta: Move up hardware-configuration import 2023-06-22 07:42:53 -04:00
Donovan Glover
79f4ae0296
tests: Add tests for containers and specializations 2023-06-22 07:26:19 -04:00
Donovan Glover
92f057929a
meta: Flatten tests directory 2023-06-22 07:25:13 -04:00
Donovan Glover
82739571c6
waybar: Change color if fullscreen 2023-06-22 07:18:02 -04:00
Donovan Glover
3283aebbd8
modules: Add wine
Useful to remember why I set this option.
2023-06-22 07:17:01 -04:00
Donovan Glover
355e58c76e
hyprland: Disable autoreload
Not needed since autoreload doesn't work anyway with home-manager.
2023-06-22 07:15:47 -04:00
Donovan Glover
71b23e9bf3
modules: Add cdemu
NixOS makes this so easy.
2023-06-22 06:55:54 -04:00
Donovan Glover
0fd8411d36
meta: Use default.nix
Makes things simpler.
2023-06-22 05:36:48 -04:00
Donovan Glover
7fb0c15255
networking: Remove allowedTCPPorts
Not needed for now, although a good reference for the future.
2023-06-21 11:43:09 -04:00
Donovan Glover
a75c20db5b
containers(wine): Switch to wineWowPackages.stagingFull
wineWowPackages.stagingFull has better compatibility than waylandFull
and runs more applications without black screens. The difference between
stagingFull and wine-ge is that wine-ge doesn't crash when encountering
an error like ELFCLASS64 and usually opens windows larger and
fullscreen-like.

The reason stagingFull is preferred over wine-ge in this case is that
stagingFull is a part of nixpkgs and doesn't suffer from a black screen
bug when a hidden menu pushes the content in the window viewport down.

Additionally, although wine-ge avoids crashes in more cases, this
results in applications running that may or may not fully work, and
sometimes results in black screens where there should be graphics
instead.
2023-06-21 11:39:57 -04:00
Donovan Glover
e0f1521899
containers(wine): Use wine-ge
This was a different wine version that let me achieve better
compatibility with Unity3D programs. Although it doesn't crash when
encountering a ELFCLASS64 error, for example, it does have other issues
like a black screen flash when opening a hidden menu (the kind that
become available with the alt key on a keyboard).
2023-06-21 11:23:17 -04:00
Donovan Glover
ba686839ec
meta: Remove vmware
Now that I have figured out how to get all the Windows applications I
previously used working under Wine (including those that didn't work in
the virtual machine after trying to manually install dependencies) there
is no reason for me to use vmware.

Using NixOS for Windows applications allows them to be used with
systemd-nspawn containers, thus achieving things like isolation, private
networks, impermanence, and more. All of this without having to maintain
a separate operating system install.
2023-06-21 03:44:42 -04:00
Donovan Glover
b05eecbdbf
neovim: Add pkg-config
Some programs require this in order to compile successfully.
2023-06-21 03:37:07 -04:00
Donovan Glover
43186c630e
locale: Fix import 2023-06-21 03:32:56 -04:00
Donovan Glover
d226c85639
meta: Move remaining sessionVariables to fish 2023-06-21 03:32:35 -04:00
Donovan Glover
741f40ce56
networking: Remove forwardPorts
No ports need to be forwarded right now, however this is a good example
for when ports need to be forwarded from a container to the host in the
future.
2023-06-21 03:31:33 -04:00
Donovan Glover
0cd00a7734
chore: Formatting 2023-06-21 03:09:22 -04:00
Donovan Glover
2b415d3bd4
flake.nix: Inputs before outputs 2023-06-21 02:41:44 -04:00
Donovan Glover
5694bbc450
nix: Modularize locale and timezone 2023-06-21 02:35:43 -04:00
Donovan Glover
7760a7028b
containers(dev): Add htop
Might make htop available to all containers in the future.
2023-06-20 18:52:13 -04:00
Donovan Glover
db22c24905
containers(dev): Add nix
Useful for running nix shells.
2023-06-20 18:51:51 -04:00
Donovan Glover
5b21e36969
packages: Add poppler_utils
Useful for converting images in pdfs to actual images.
2023-06-20 18:43:57 -04:00
Donovan Glover
aa15dc00ee
containers: Use separate default.nix 2023-06-20 18:42:56 -04:00
Donovan Glover
da70c0293b
overlays(waybar): Use latest commit
Adds support for https://github.com/Alexays/Waybar/issues/2211
2023-06-20 14:50:22 -04:00
Donovan Glover
ac801ad5bf
fish: Add abbreviation for git branch --delete 2023-06-20 12:04:28 -04:00
Donovan Glover
255a819504
meta: Use a personal nixpkgs branch
Now I don't have to wait for anything to be included in nixos-unstable
and can simply merge whatever I want whenever I want. This also has the
advantage of not having to specify which input is needed to get a
package from.
2023-06-20 10:26:04 -04:00
Donovan Glover
b310bb6e6d
meta: Replace go-thumbnailer with nixpkgs version
Now there is no need for a packages directory since all the packages I
maintain are upstreamed.
2023-06-20 09:55:34 -04:00
Donovan Glover
185f6f605e
containers(dev): Remove unused packages 2023-06-20 08:31:17 -04:00
Donovan Glover
ec418619ab
meta: Replace crystal-flake with nixpkgs-crystalline 2023-06-20 08:30:20 -04:00
Donovan Glover
b61ed37b02
chore: Update flake inputs 2023-06-19 20:09:59 -04:00
Donovan Glover
209fb4d9ca
meta: Add hyprland-autoname-workspaces config
The new lines are unfortunately necessary since waybar uses GTK CSS, and
GTK CSS doesn't support modern CSS features like vertical text.
2023-06-19 16:24:43 -04:00
Donovan Glover
92300c6d9d
fix(neovim): Fix npm package name 2023-06-19 16:19:24 -04:00
Donovan Glover
3ea8860f7d
meta: Use grimblast over grim/slurp 2023-06-19 12:12:04 -04:00
Donovan Glover
b7ed04d1a2
meta: Move shards to neovim config
The neovim config has everything I need for software development, so
having shards there makes sense.
2023-06-19 12:10:59 -04:00
Donovan Glover
df92eb1eb4
chore: Remove unused packages 2023-06-19 12:10:22 -04:00
Donovan Glover
83b6ce6e2d
nix: Continue modularization 2023-06-19 05:13:04 -04:00
Donovan Glover
72bd18dcfc
npm: Use home-manager package instead of nixos module
Now that I am able to understand and read NixOS/nixpkgs source code, I
understand that the usage of the npm module isn't needed since I don't
configure npm at a global level.
2023-06-19 04:00:50 -04:00
Donovan Glover
76bfdf10b6
pipewire: Re-enable lowLatency
This was previously disabled when testing NixOS networks.
2023-06-18 15:52:47 -04:00
Donovan Glover
07bbb996e5
nix: Continue modularization of system modules 2023-06-18 15:52:03 -04:00
Donovan Glover
e60f7000b0
meta: Don't shutdown when power button is pressed
Since I always shut down the computer through the terminal, the power
button serves no use while the computer is on.
2023-06-18 15:31:29 -04:00
Donovan Glover
bbb0110a03
virtualization: Always use vmVariant
This works since we're no longer depending on a network of virtual
machines that use their own virtualization configurations.
2023-06-18 11:58:37 -04:00
Donovan Glover
f8d5b35464
meta: Don't use NixOS networks
Networks are a way to start multiple NixOS virtual machines at the same
time. Although cute, networks seem to be used more for "test scripts"
and ultimately don't support Nix flakes. This results in package
versions being outdated and the inability to use our existing
home-manager input and other flakes.

Multiple nixosConfigurations, on the other hand, enable us to setup
entire computers that don't *have* to be virtual machines, but can be
virtual machines if we want them to be. Additionally, it becomes trivial
to only run the configurations you want to run, without having to worry
about everything being tied to everything else. Finally, persistence is
optional and the resulting .qcow2 file is quite small.

Ultimately, Nix flakes are a more flexible solution to the older
nixos-build-vms command, and should be preferred over it in pretty much
all cases. To reiterate, if you're using flakes, there's no reason to
use the outdated nixos-build-vms command, which won't have the same
package versions as the ones in your flake.
2023-06-18 10:57:55 -04:00
Donovan Glover
d34ead9699
meta: Share directories with virtual machines
This *works*, and it's possible to edit files in one virtual machine
while having those files instantly be updated in all other virtual
machines. Note that the host will also have access to the files, which
ultimately means that directory sharing is quite useful (and convenient).
2023-06-18 10:44:44 -04:00
Donovan Glover
d28c0ec15b
meta: Make networks usable
This was a change to make networks somewhat usable, and it works to a
good extent, however I ultimately decided against using networks due to
their missing flake support.
2023-06-18 10:40:59 -04:00
Donovan Glover
f7110b3e06
fonts: Add liberation fonts
Unfortunately, this is necessary to prevent certain websites from
completely breaking due to Noto fonts having wider width overall.
2023-06-18 10:04:34 -04:00
Donovan Glover
93295369c0
gnome: mkForce hyprland defaults
This should be a temporary solution until modules are selectively
imported and hyprland isn't included.
2023-06-18 09:20:47 -04:00
Donovan Glover
58d5e0737b
nix: Remove formatter from flake.nix
treefmt is used instead since it's faster and more customizable.
2023-06-18 08:34:24 -04:00
Donovan Glover
bd7c1d553b
meta: Add network example
This is a working example of using the modules in our existing
configuration to start a network of virtual machines with
nixos-build-vms. Note that VMs take longer to start up in this case than
nixos-rebuild build-vm, and that said VMs may lack certain functionality
(such as dynamic resolution in GNOME) that would otherwise be present
with build-vm.

Although networks are certainly cute (and I'm glad that I feel familiar
with them thanks to my better understanding of Nix), they do seem less
convenient than nixos-rebuild build-vm and don't appear to support Nix
flakes. Networks therefore seem more useful for running multiple one-off
services that couldn't otherwise be ran in a container.
2023-06-18 08:09:44 -04:00
Donovan Glover
168134bcf3
qemu: Add audio support to virtual machines
This fixes an issue where virtual machines would previously use dummy
output. More specifically, pulseaudio is used since pipewire supports
it, and intel hd audio (hda) is used since it's generally regarded as
one of the better options based on information available online.

Note that -audio is used instead of the outdated -audiodev and -soundhw
options. This setup also avoids the choppy audio observed with other
solutions like alsa.

References:
- https://www.qemu.org/docs/master/system/qemu-manpage.html
- https://github.com/NixOS/nixpkgs/issues/175378
- https://superuser.com/questions/1337570
- https://en.wikipedia.org/wiki/Intel_High_Definition_Audio
- https://gitlab.com/qemu-project/qemu/-/issues/1519
- https://lists.nongnu.org/archive/html/qemu-discuss/2020-04/msg00089.html
2023-06-18 07:02:19 -04:00
Donovan Glover
b2ff95f11b
udiskie: Only enable if hyprland
Conditional imports like this could make it easier to import everything
at once and selectively exclude as needed.
2023-06-17 22:46:29 -04:00