feat: initialize repo with NixOS and Home Manager configs

- Add .gitignore for common languages, tools, and OS/editor artifacts
- Configure .gitattributes for Git LFS (fonts, images, archives, ISOs)
- Add README with repo description
- Add flake.nix defining inputs and outputs for NixOS, Home Manager, and related modules
- Introduce home-manager configs:
  - Base home.nix with packages, services, and programs
  - Hyprland WM configuration (waybar, fuzzel, keybindings, theming)
  - Vim (nixvim) setup with LSP and plugins
  - Zsh setup with aliases, Oh My Zsh, clipboard helpers
  - Systemd user services (e.g., librespot)
- Add scripts (GPU monitor, RAM build helper, install automation)
- Add host configurations:
  - Nixbook (Apple laptop) with hardware, disko, and install script
  - Nixstation (desktop) with firewall, virtualization, Btrfs scrub timer
  - Nixtest (test VM) with QEMU + Alpine-based install test harness
  - Common modules (network, NVIDIA, rclone, screen, keychron, users)
- Include statix config for linting
This commit is contained in:
Thiago Sposito 2025-08-20 21:55:46 -03:00 committed by Thiago Sposito
commit d0b63ce601
Signed by: thiago
GPG key ID: 3065EA73A976D430
34 changed files with 1954 additions and 0 deletions

41
hosts/common/keychron.nix Normal file
View file

@ -0,0 +1,41 @@
{ pkgs, ... }:
{
services.xserver = {
enable = true;
xkb = {
layout = "custom-br";
variant = "";
model = "pc105";
extraLayouts = {
custom-br = {
description = "US Custom BR (apostrophe + c ç)";
languages = [ "eng" ];
symbolsFile = pkgs.writeText "custom-br" ''
partial alphanumeric_keys
xkb_symbols "basic" {
include "us(altgr-intl)"
name[Group1]= "US Custom BR (apostrophe + c ç)";
// Override the apostrophe key to be a fake dead key
key <AC10> {
type= "FOUR_LEVEL",
symbols[Group1]= [ dead_acute, dead_acute, dead_acute, dead_acute ]
};
// Redefine the c key to output ç when used after apostrophe
key <AC03> {
type= "ALPHABETIC",
symbols[Group1]= [ c, C, ccedilla, Ccedilla ]
};
replace key <LALT> { [ Alt_L, Meta_L ] };
};
'';
};
};
};
};
}