A minimal, performance-focused NixOS configuration optimized for VMware Fusion on ARM64 Apple Silicon with Hyprland window manager. Features a beautiful, modern interface with blur effects, rounded corners, and real-time system monitoring.
- ARM64 Optimized: Specifically configured for Apple Silicon
- Pure Hyprland: Lightweight Wayland compositor with beautiful animations
- Modern Interface:
- Waybar with blur effects and rounded corners
- Real-time CPU and network speed monitoring
- Application taskbar with icons
- Bibata Modern Amber cursor theme
- Dynamic Wallpapers: Random wallpaper selection on startup and on-demand
- Performance Focused: Optimized kernel parameters and minimal resource usage
- Developer Ready: Comprehensive development tools and multiple browsers
- Rofi Launcher: Fast and beautiful application launcher
- Nord Theme: Consistent Nord color scheme throughout
fnixos/
βββ flake.nix # Main flake configuration
βββ hosts/
β βββ vm-m1/ # VM M1 host configuration
β βββ configuration.nix # Main system config
β βββ hardware-configuration.nix
βββ modules/
β βββ system/
β β βββ base.nix # Base system packages and settings
β βββ desktop/
β β βββ hyprland.nix # Hyprland and theming
β βββ programs/
β βββ devtools.nix # Development tools
βββ home/
β βββ default.nix # Home Manager configuration
β βββ waybar/ # Status bar configuration
β β βββ config # Waybar modules config
β β βββ style.css # Waybar styling
β βββ hypr/
β β βββ hyprland.conf # Hyprland window manager config
β βββ wallpapers/ # Wallpaper directory
β βββ *.jpg/png # Your wallpapers
βββ scripts/
βββ deploy.sh # Deployment script
βββ random-wallpaper.sh # Random wallpaper switcher
βββ test-*.sh # Testing scripts
- VMware Fusion on Apple Silicon Mac
- NixOS ARM64 installed in VM
- Internet connection
-
Clone the repository:
git clone https://github.com/andev0x/fnixos.git cd fnixos -
Deploy the system:
# Option 1: Use the deployment script (recommended) ./scripts/deploy.sh # Option 2: Test the configuration first ./scripts/test-build.sh # Option 3: Manual deployment sudo nixos-rebuild switch --flake .#vm-m1
-
Update your email in home configuration: Edit
home/default.nixand update the git email:userEmail = "your-email@example.com";
-
Reboot to apply all changes:
sudo reboot
- Add your wallpapers to
home/wallpapers/ - Supported formats: JPG, JPEG, PNG, WEBP
- Press
ALT + Wto randomly change wallpaper - Wallpapers change automatically on startup
- Config: Edit
home/waybar/configto add/remove modules - Styling: Edit
home/waybar/style.cssto customize appearance - Current modules:
- Workspaces with window icons
- Application taskbar
- CPU usage monitor
- Network speed (download/upload)
- Audio volume
- Battery status
- System tray
ALT + Q: Open terminal (Alacritty)ALT + C: Close windowALT + R: Application launcher (Rofi)ALT + V: Toggle floating windowALT + M: Exit HyprlandALT + P: Pseudo tilingALT + J: Toggle split
ALT + 1-5: Switch workspacesALT + SHIFT + 1-5: Move window to workspaceALT + Arrow Keys: Move focus between windowsALT + Mouse Down/Up: Scroll through workspaces
ALT + T: Open Neovim in terminalALT + B: Open QutebrowserALT + SHIFT + B: Open ChromiumALT + G: Open LazyGitALT + F: Open Ranger file managerALT + E: Open Ranger
ALT + W: Change wallpaper randomlyPrint: Screenshot selection (copy to clipboard)ALT + Print: Full screenshot (copy to clipboard)XF86AudioRaiseVolume: Increase volumeXF86AudioLowerVolume: Decrease volumeXF86AudioMute: Toggle muteXF86MonBrightnessUp: Increase brightnessXF86MonBrightnessDown: Decrease brightness
ALT + Left Click + Drag: Move windowALT + Right Click + Drag: Resize window
Pre-installed development tools:
- Neovim: Modern modal editor (default)
- VS Code: Full-featured IDE
- Helix: Modern modal editor
- Go: System programming
- Rust: Safe system programming
- Python: Scripting and development
- Node.js: JavaScript runtime
- Deno: Secure JavaScript/TypeScript runtime
- GCC, Clang
- CMake, Make, Ninja
- Cargo (Rust)
- npm, yarn (Node.js)
- LazyGit: Terminal UI for git
- Delta: Beautiful git diff viewer
- Gitui: Blazing fast terminal UI
- Ranger: Terminal file manager with preview
- LF: Fast terminal file manager
- FZF: Fuzzy finder
- Alacritty: GPU-accelerated terminal
- Tmux: Terminal multiplexer
- Zsh: Modern shell with Oh My Zsh
- Starship: Fast, customizable prompt
- Qutebrowser: Keyboard-focused browser (default)
- Firefox: Full-featured browser
- Chromium: Google's open-source browser
- Brave: Privacy-focused browser
- ripgrep: Fast text search
- fd: Fast find alternative
- bat: Cat clone with syntax highlighting
- exa: Modern ls replacement
- tree: Directory tree viewer
- htop: Interactive process viewer
The waybar displays real-time system information:
- CPU Usage: Real-time CPU percentage with 2s refresh
- Network Speed:
- Download speed (β¬)
- Upload speed (β¬)
- Signal strength for Wi-Fi
- Battery: Percentage and charging status
- Audio: Volume level and mute status
- Architecture: ARM64 (aarch64-linux)
- Platform: VMware Fusion on Apple Silicon
- Memory: Minimum 4GB RAM (8GB recommended)
- Storage: Minimum 20GB free space
- VM Settings:
- Enable 3D acceleration
- Allocate 2+ CPU cores
- Enable shared folders (optional)
cd fnixos
sudo nixos-rebuild switch --flake .#vm-m1 --upgradenix flake update
sudo nixos-rebuild switch --flake .#vm-m1git pull origin main
sudo nixos-rebuild switch --flake .#vm-m1-
Rofi doesn't open applications
- Make sure you have
rofi-waylandinstalled - Check if applications are in your PATH
- Try running
rofi -show drun -show-iconsmanually
- Make sure you have
-
Wallpaper not changing
- Verify wallpapers exist in
home/wallpapers/ - Check script path:
~/Documents/fnixos/scripts/random-wallpaper.sh - Run manually:
bash ~/Documents/fnixos/scripts/random-wallpaper.sh
- Verify wallpapers exist in
-
Waybar not showing blur effect
- Ensure Hyprland blur is enabled in
hyprland.conf - Check layer rules:
layerrule = blur, waybar - Restart waybar:
killall waybar && waybar &
- Ensure Hyprland blur is enabled in
-
Build fails
- Check for syntax errors:
nix flake check - View detailed errors:
sudo nixos-rebuild switch --flake .#vm-m1 --show-trace - Clear build cache:
nix-collect-garbage -d
- Check for syntax errors:
-
Display issues
- Ensure VMware guest tools are enabled
- Check virtualization settings in configuration
- Verify
virtualisation.vmware.guest.enable = true
-
Audio not working
- Check PipeWire status:
systemctl --user status pipewire - Restart audio:
systemctl --user restart pipewire - Use
pavucontrolfor audio settings
- Check PipeWire status:
# System logs
journalctl -xe
journalctl -u display-manager
# Home Manager logs
home-manager generations
home-manager logs
# Check Hyprland logs
cat ~/.local/share/hyprland/hyprland.log
# Test configuration without switching
sudo nixos-rebuild test --flake .#vm-m1-
Disable animations (if needed): Edit
home/hypr/hyprland.conf:animations { enabled = no } -
Reduce waybar update frequency: Edit
home/waybar/configand increaseintervalvalues -
Limit background applications: Check
exec-oncelines inhyprland.conf -
Use software rendering (if GPU issues): Applications already use
LIBGL_ALWAYS_SOFTWARE=1flag
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test the configuration:
./scripts/test-build.sh - Commit changes:
git commit -am 'Add feature' - Push to branch:
git push origin feature-name - Submit a pull request
- Follow the existing code style
- Test configurations before submitting
- Document new features in README
- Keep commits atomic and well-described
- NixOS - The purely functional Linux distribution
- Hyprland - Dynamic tiling Wayland compositor
- Waybar - Highly customizable status bar
- Rofi - Application launcher
- Nord Theme - Arctic, north-bluish color scheme
- Bibata Cursor - Modern cursor theme
- GitHub: @andev0x
- Issues: GitHub Issues
Made with β€οΈ for the NixOS community