Nix Dotfiles
- 7 Devlogs
- 38 Total hours
Creating Nix dotfiles all my computers
Creating Nix dotfiles all my computers
Added more mods to servers and setup a FTB modded server. I would have preferred to setup the FTB server using the nixos philosophy but I needed to install it with the installer because nix-minecraft does not support the use of FTB or Curseforge modpacks.
The pictured MOTD shows up when you login to give a quick picture of the system status. The services that are displayed can be configured.
I’m creating a mySystem set of modules that individual configurations can enable and disable. This abstracts away the nix options and makes it easier to setup a new system quickly.
Minecraft servers take up a lot of system resources so it makes sense to turn them off when no one is using them. I accomplish this through systemd services and sockets. A systemd socket listens for any incoming connection on a port and passes that to its associated service. Because Minecraft servers don’t support receiving from UNIX sockets that receiving service is a proxy. That proxy transfers all packets to the Minecraft server. The Minecraft server service is set to only run when the socket is active (which has a timeout).
This one gave me a lot of headaches. Simply put BDS does not like NixOS. I ended up using a docker container to run the server in. This also comes with the benefit of auto updates.
One of the servers I run in Minecraft Bedrock (/) and I want to be able to access it from my NixOS PCs. So I created a nixpkg for BedrockOnLinux a tool that allows you to run Minecraft Bedrock on a Lixux machine.
There were SO MANY ISSUES with trying to get sockets working. At first I followed a blog post which used a over complicated method using RCON to stop the server when no players were on but using a timeout on the proxy worked much better and had player pings also keep the server open. I spent far too much time trying to get sockets to work for the bedrock server using socat to proxy the UDP connections, though this may have worked if I got my server properly working I’ll need to check this in the future.
Created a package for mc-image-helper to use in a better Minecraft server module for NixOS because I plan on deploying it to the Minecraft server I run.
Removed template comments and moved to a preset based system where presets like “PC” and “headless” controlled what was included.
Fixed issues with emojis and CJK (Chinese Japanese Korean) characters.
Improved battery icons and showing charging. Also enabled a smoother battery life readout.
Enabled NeoVim language servers and switched to internal Tree Sitter due to issues with the existing config.
Connect automatically to NAS using sops secrets.
Get snipping engine to work for code autocomplete
Configure Minecraft module and deploy Minecraft server
Add bookmarks for Stardance, Gitlab, NixOS, etc.
MPD is a tool for playing music on Linux. I set it up as a user service under home-manager (to prevent issues with Pipewire O_o). I also configured a module in Waybar for it for easy control and seeing information.
I had already built a NeoVim config in another set of dotfiles (when I was using Arch btw :P) and I just needed to move it over to home-manager nix dotfiles.
Fonts needed to be fixed again 0_o. Now they are all managed my home-manager which avoids some of the fc detection issues I had been having. Emojis work now too!
Firefox has finally been purged of all the junk! The new tab page is now empty from the get go!
Just added this project to Stardance!
Set up build automation, hyprland, waybar, kitty, and some common programs. Currently I’m working on creating a NeoVim config that is more than a placeholder to get HackaTime to work.