Marchyo includes a workstation template that provides a complete developer setup with desktop environment, development tools, and sensible defaults.
Getting started
1. Initialize the template
nix flake init -t github:Jylhis/marchyo#workstation
2. Generate hardware configuration
nixos-generate-config --show-hardware-config > hardware-configuration.nix
3. Customize configuration.nix
Edit the generated configuration:
- Change
networking.hostName to your workstation name
- Update
marchyo.users.developer with your details
- Adjust timezone and locale settings
- Review and modify development tools
4. Test in a VM (optional)
# With disko
nix run -L '.#nixosConfigurations.workstation.config.system.build.vmWithDisko'
# Without disko
nixos-rebuild build-vm --flake .#workstation
./result/bin/run-workstation-vm
5. Build and switch
sudo nixos-rebuild switch --flake .#workstation
What’s included
Desktop environment
- Hyprland (Wayland compositor) with all Marchyo customizations
- Multiple terminal emulators (Kitty, Alacritty)
- Editors — Vim/Neovim, VS Code
- Version control — Git with Git LFS, GitHub CLI
- Containers — Docker with docker-compose, kubectl
- Virtualization — QEMU/KVM via libvirtd
- DevOps — Terraform, Ansible
Terminal enhancements
- Starship prompt
- Zoxide (smart
cd)
- fzf (fuzzy finder)
- ripgrep (fast
grep)
- fd (fast
find)
Customization tips
Adding programming languages
environment.systemPackages = with pkgs; [
python3
nodejs
rustc cargo
go
jdk17
];
VS Code extensions
programs.vscode = {
enable = true;
extensions = with pkgs.vscode-extensions; [
ms-python.python
rust-lang.rust-analyzer
];
};
Using Podman instead of Docker
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
Project-specific dev shells with direnv
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
Then in your project directory, create a .envrc:
Multi-monitor setup
Override Hyprland monitor configuration in your home config:
wayland.windowManager.hyprland.settings = {
monitor = [
"DP-1,1920x1080@60,0x0,1"
"HDMI-A-1,1920x1080@60,1920x0,1"
];
};
Updating
nix flake update
sudo nixos-rebuild switch --flake .#workstation
Last modified on April 8, 2026