Skip to content

Workstation Template

Marchyo includes a workstation template that provides a complete developer setup with desktop environment, development tools, and sensible defaults.

Terminal window
nix flake init -t github:Jylhis/marchyo#workstation
Terminal window
nixos-generate-config --show-hardware-config > hardware-configuration.nix

Edit the generated configuration:

  • Change networking.hostName to your workstation name
  • Update marchyo.users.developer with your details
  • Set marchyo.timezone / marchyo.defaultLocale if the defaults (Europe/Zurich, en_US.UTF-8) don’t fit
  • Development tooling is a single switch — set marchyo.development.enable = false if you don’t want it
Terminal window
nixos-rebuild build-vm --flake .#workstation
./result/bin/run-workstation-vm
Terminal window
sudo nixos-rebuild switch --flake .#workstation
  • Hyprland (Wayland compositor) with all Marchyo customizations
  • Ghostty terminal
  • Editors — jotain (Jylhis’s Emacs config) by default; switch via marchyo.defaults.editor (emacs, vscode, vscodium, zed) and marchyo.defaults.terminalEditor (emacs, neovim, helix, nano)
  • Version control — Git with Git LFS, GitHub CLI
  • Containers — Docker with docker-compose, buildah, skopeo, lazydocker
  • Virtualization — QEMU/KVM via libvirtd
  • Build & debug — gnumake, cmake, gcc, jq/yq, nmap, tcpdump
  • Starship prompt
  • Zoxide (smart cd)
  • fzf (fuzzy finder)
  • ripgrep (fast grep)
  • fd (fast find)
environment.systemPackages = with pkgs; [
python3
nodejs
rustc cargo
go
jdk17
];
programs.vscode = {
enable = true;
extensions = with pkgs.vscode-extensions; [
ms-python.python
rust-lang.rust-analyzer
];
};
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};

Then in your project directory, create a .envrc:

Terminal window
use flake

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"
];
};
Terminal window
nix flake update
sudo nixos-rebuild switch --flake .#workstation