Compare commits

...

22 Commits

Author SHA1 Message Date
01f8166529 feat: add uConsole as remote builder for aarch64-linux native builds 2026-06-20 20:04:04 -04:00
84ce9de5ca restore native-build packages in config (wsjtx, fldigi, chirp, sdrpp, gqrx, inspectrum, john, foxtrotgps, viking, gpsbabel, trustedqsl) 2026-06-20 20:02:56 -04:00
14755f1ea6 revert native-build packages — cross-compile still fails for Qt5/gpsbabel/john, install via nix profile instead 2026-06-20 20:01:36 -04:00
f51155823e temp: comment out Qt5 packages (wsjtx, fldigi, sdrpp, gqrx, inspectrum) — cross-compile fails, installed via nix profile instead 2026-06-20 19:59:36 -04:00
73c12abec2 feat: re-integrate native-build packages (wsjtx, fldigi, chirp, sdrpp, gqrx, inspectrum, hashcat, john, foxtrotgps, viking, gpsbabel, trustedqsl) 2026-06-20 19:00:39 -04:00
a97c68fd81 fix: add rtkit and pipewire service for uConsole audio 2026-06-20 18:16:43 -04:00
bf2500dce8 fix: add missing packages (swww, emacs, udiskie, hyprshade) and wallpapers for uConsole 2026-06-20 18:16:00 -04:00
f0fa8ac942 fix: update dotfiles for transform 3 2026-06-20 17:54:16 -04:00
7899bf28f2 fix: sync dotfiles submodule, home.nix paths to hosts/ 2026-06-20 17:51:50 -04:00
282b4bc229 chore: remove stale temp file 2026-06-20 17:50:18 -04:00
905998466c fix: update home.nix host/ paths after dotfiles rename 2026-06-20 17:50:13 -04:00
6c34b92186 fix: update dotfiles submodule for host/ rename 2026-06-20 17:48:15 -04:00
7b3a5802a5 fix: update dotfiles submodule 2026-06-20 17:35:01 -04:00
1ab11b76d6 chore: update dotfiles submodule for per-host 2026-06-20 17:01:59 -04:00
3ce550691c fix: use zsh.initExtra for dotfiles config (no home.file conflict) 2026-06-20 16:25:50 -04:00
256979e6e5 fix: update dotfiles submodule for uConsole keyboard docs 2026-06-20 16:25:21 -04:00
095fa4c200 fix: add .zshrc to home-manager dotfiles 2026-06-20 16:25:06 -04:00
c430427617 fix: update dotfiles submodule for uConsole transform+keyboard 2026-06-20 16:22:20 -04:00
eeb10db5ed fix: define dotfiles as local path in home.nix (via submodule), fix swaync name 2026-06-20 16:03:58 -04:00
60a0bcfdd6 fix: dotfiles path via self (submodule), fix Nix syntax 2026-06-20 16:02:34 -04:00
7827638c5a fix: dotfiles path from submodule, not flake input 2026-06-20 16:01:37 -04:00
ceca908457 fix: replace dotfiles flake input with self.submodules=true (git submodule) 2026-06-20 16:01:00 -04:00
6 changed files with 75 additions and 25 deletions

View File

@@ -26,18 +26,15 @@
url = "github:gortium/nixos-raspberrypi/cm5-cross-v1"; url = "github:gortium/nixos-raspberrypi/cm5-cross-v1";
inputs.nixpkgs.follows = "nixpkgs-uconsole"; inputs.nixpkgs.follows = "nixpkgs-uconsole";
}; };
self.submodules = true;
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.11"; url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs-uconsole"; inputs.nixpkgs.follows = "nixpkgs-uconsole";
}; };
dotfiles = {
url = "git+https://code.lazyworkhorse.net/gortium/dotfiles.git";
flake = false;
};
}; };
outputs = { self, nixpkgs, agenix, agenix-rekey, lix outputs = { self, nixpkgs, agenix, agenix-rekey, lix
, nixpkgs-uconsole, nixos-uconsole, nixos-raspberrypi, dotfiles , nixpkgs-uconsole, nixos-uconsole, nixos-raspberrypi
, home-manager , home-manager
, ... }@inputs: , ... }@inputs:
let let

View File

@@ -569,3 +569,19 @@
} }
# Remote builder — uConsole for aarch64-linux native builds
nix.distributedBuilds = true;
nix.buildMachines = [{
hostName = "192.168.1.120";
systems = ["aarch64-linux"];
maxJobs = 4;
supportedFeatures = ["big-parallel" "nixos-test" "benchmark" "gccarch-armv8-a"];
sshUser = "builder";
sshKey = "/home/ai-worker/id_deploy";
}];
nix.extraOptions = '
builders-use-substitutes = true
fallback = true
';

View File

@@ -26,6 +26,14 @@
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Firmware # Firmware
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
# RealtimeKit for PipeWire audio
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Hyprland Wayland compositor (manual start — no SDDM) # Hyprland Wayland compositor (manual start — no SDDM)
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
@@ -98,18 +106,18 @@
htop htop
tmux tmux
# ===== HAM Radio ===== # ===== HAM Radio =====
# wsjtx removed for aarch64 bootstrap (qtbase/Qt5 cross-compile linker fails) wsjtx # removed for bootstrap - now native
# fldigi removed for aarch64 bootstrap (qtbase/Qt5 cross-compile linker fails) fldigi # removed for bootstrap - now native
pat # Winlink client pat # Winlink client
direwolf # AX.25 packet modem direwolf # AX.25 packet modem
# chirp # Radio programming tool chirp # Radio programming tool - now native
hamlib # Ham radio control libraries hamlib # Ham radio control libraries
# trustedqsl # Logbook of the World (LoTW) trustedqsl # Logbook of the World (LoTW) - now native
# ===== SDR / RF ===== # ===== SDR / RF =====
# sdrpp removed for aarch64 cross-compile bootstrap (glfw/wxPython fails) sdrpp # removed for bootstrap - now native
# gqrx removed for aarch64 cross-compile bootstrap (Qt5 cascade fails) gqrx # removed for bootstrap - now native
rtl-sdr # RTL-SDR drivers & utilities rtl-sdr # RTL-SDR drivers & utilities
# inspectrum # removed for aarch64 bootstrap (Qt5 cross-compile cascade fails) inspectrum # removed for bootstrap - now native
soapysdr-with-plugins # SoapySDR + hardware support plugins soapysdr-with-plugins # SoapySDR + hardware support plugins
# ===== Mesh / LoRa ===== # ===== Mesh / LoRa =====
reticulumStack # Reticulum Network Stack reticulumStack # Reticulum Network Stack
@@ -121,12 +129,12 @@
kismet # Wi-Fi monitor / IDS kismet # Wi-Fi monitor / IDS
bettercap # MITM/network attack framework bettercap # MITM/network attack framework
wireshark-cli # Packet analyzer wireshark-cli # Packet analyzer
# john # John the Ripper john # John the Ripper - now native
sqlmap # SQL injection tool sqlmap # SQL injection tool
# ===== GPS / Maps ===== # ===== GPS / Maps =====
# foxtrotgps removed for aarch64 cross-compile bootstrap (GTK2 fails) foxtrotgps # removed for bootstrap - now native
# viking removed for aarch64 cross-compile bootstrap (GTK3 fails) viking # removed for bootstrap - now native
# gpsbabel # GPS data conversion gpsbabel # GPS data conversion - now native
]; ];
# ============================================================ # ============================================================
# Reticulum Service (rnsd) # Reticulum Service (rnsd)

View File

@@ -1,5 +1,7 @@
{ pkgs, inputs, config, keys, ... }: { { pkgs, inputs, config, keys, ... }: {
home-manager.extraSpecialArgs = { inherit (config.networking) hostName; dotfiles = inputs.dotfiles.outPath # flake input (not submodule); }; home-manager.extraSpecialArgs = {
inherit (config.networking) hostName;
};
home-manager.users.gortium = import ./home.nix; home-manager.users.gortium = import ./home.nix;
users.users.gortium = { users.users.gortium = {
isNormalUser = true; isNormalUser = true;

View File

@@ -2,6 +2,7 @@
let let
isUconsole = hostName == "uConsole"; isUconsole = hostName == "uConsole";
dotfiles = ../../assets/dotfiles;
in { in {
home.username = "gortium"; home.username = "gortium";
home.homeDirectory = "/home/gortium"; home.homeDirectory = "/home/gortium";
@@ -33,6 +34,9 @@ in {
".config/wofi/config".source = "${dotfiles}/wofi/.config/wofi/config"; ".config/wofi/config".source = "${dotfiles}/wofi/.config/wofi/config";
# yazi # yazi
# wallpapers
".config/wallpapers".source = "${dotfiles}/wallpapers/.config/wallpapers";
".config/yazi/yazi.toml".source = "${dotfiles}/yazi/.config/yazi/yazi.toml"; ".config/yazi/yazi.toml".source = "${dotfiles}/yazi/.config/yazi/yazi.toml";
# hyprland — common config # hyprland — common config
@@ -43,22 +47,45 @@ in {
".config/hypr/mocha.conf".source = "${dotfiles}/hypr/.config/hypr/mocha.conf"; ".config/hypr/mocha.conf".source = "${dotfiles}/hypr/.config/hypr/mocha.conf";
# hyprland — host-specific monitor config # hyprland — host-specific monitor config
".config/hypr/host/monitors.conf".source = ".config/hypr/hosts/monitors.conf".source =
if isUconsole if isUconsole
then "${dotfiles}/hypr/.config/hypr/hosts/uconsole.conf" then "${dotfiles}/hypr/.config/hypr/hosts/uconsole.conf"
else "${dotfiles}/hypr/.config/hypr/hosts/laptop.conf"; else "${dotfiles}/hypr/.config/hypr/hosts/laptop.conf";
}; };
programs.bash.enable = true;
programs.zsh = {
enable = true;
initExtra = builtins.readFile "${dotfiles}/zsh/.zshrc";
};
home.packages = with pkgs; [ home.packages = with pkgs; [
git zsh tmux starship git zsh tmux starship
neovim kitty neovim kitty
btop yazi ripgrep fd fzf btop yazi ripgrep fd fzf
] ++ lib.optionals (!isUconsole) [ htop unzip wget jq
waybar wofi swww hyprshot hyprland hyprlock hypridle hyprpaper
] ++ lib.optionals isUconsole [ waybar wofi dunst
brightnessctl libnotify mako
swaynotificationcenter
swww
emacs
udiskie
hyprshade
networkmanagerapplet
pavucontrol
]; ];
programs.zsh.enable = true; xdg.userDirs = {
programs.starship.enable = true; enable = true;
createDirectories = true;
desktop = "$HOME/desktop";
documents = "$HOME/documents";
download = "$HOME/downloads";
music = "$HOME/music";
pictures = "$HOME/pictures";
publicShare = "$HOME/public";
templates = "$HOME/templates";
videos = "$HOME/videos";
};
} }