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:
commit
d0b63ce601
34 changed files with 1954 additions and 0 deletions
149
home-manager/home.nix
Normal file
149
home-manager/home.nix
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
{ config
|
||||
, inputs
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./hyprland
|
||||
./vim.nix
|
||||
./zsh.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
config.permittedInsecurePackages = [
|
||||
"libsoup-2.74.3"
|
||||
];
|
||||
# Workaround for https://github.com/nix-community/home-manager/issues/2942
|
||||
# nixpkgs.config.allowUnfreePredicate =
|
||||
# pkg:
|
||||
# builtins.elem (lib.getName pkg) [
|
||||
# "steam"
|
||||
# "steam-original"
|
||||
# "steam-run"
|
||||
# "steamtinkerlaunch"
|
||||
# ];
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
homeDirectory = "/home/thiago";
|
||||
packages = with pkgs; [
|
||||
bambu-studio
|
||||
direnv
|
||||
fira-code
|
||||
firefox
|
||||
heroic
|
||||
hwinfo
|
||||
hydralauncher
|
||||
inkscape
|
||||
keymapp
|
||||
lazygit
|
||||
libinput
|
||||
librespot
|
||||
luarocks
|
||||
nil
|
||||
nixpkgs-fmt
|
||||
nordic
|
||||
obsidian
|
||||
python3
|
||||
python3Packages.pip
|
||||
rclone
|
||||
ripgrep
|
||||
shfmt
|
||||
statix
|
||||
stylua
|
||||
sysbench
|
||||
transmission_4
|
||||
uget
|
||||
unzip
|
||||
];
|
||||
username = "thiago";
|
||||
};
|
||||
|
||||
programs = {
|
||||
git = {
|
||||
aliases = {
|
||||
br = "branch";
|
||||
ca = "commit --amend";
|
||||
can = "commit --amend --no-edit";
|
||||
ci = "commit";
|
||||
co = "checkout";
|
||||
lg = "log --oneline --graph --decorate --all";
|
||||
st = "status";
|
||||
};
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
color.ui = "auto";
|
||||
core = {
|
||||
editor = "nvim";
|
||||
autocrlf = "input";
|
||||
};
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = true;
|
||||
};
|
||||
lfs.enable = true;
|
||||
signing = {
|
||||
key = "3065EA73A976D430";
|
||||
signByDefault = true;
|
||||
};
|
||||
userEmail = "th.spo@pm.me";
|
||||
userName = "Thiago Sposito";
|
||||
};
|
||||
|
||||
home-manager.enable = true;
|
||||
|
||||
kitty = {
|
||||
enable = true;
|
||||
keybindings = {
|
||||
"ctrl+alt+left" = "resize_window narrower";
|
||||
"ctrl+alt+right" = "resize_window wider";
|
||||
"ctrl+alt+up" = "resize_window taller";
|
||||
"ctrl+alt+down" = "resize_window shorter";
|
||||
};
|
||||
|
||||
settings = {
|
||||
hide_window_decorations = "titlebar-only";
|
||||
font_size = 16;
|
||||
font = "ComicShannsMono Nerd Font Mono";
|
||||
inactive_text_alpha = "0.6";
|
||||
background_blur = 16;
|
||||
background_opacity = 0.0;
|
||||
};
|
||||
themeFile = "Nord";
|
||||
};
|
||||
|
||||
vscode = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.librespot-connect = {
|
||||
Unit = {
|
||||
Description = "Librespot (Spotify Connect) bound to LAN interface";
|
||||
After = [ "network.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.librespot}/bin/librespot \
|
||||
--name LS-TEST \
|
||||
--backend pulseaudio \
|
||||
--device default \
|
||||
--bitrate 320 \
|
||||
--disable-audio-cache \
|
||||
--enable-volume-normalisation \
|
||||
--initial-volume 75 \
|
||||
--zeroconf-port 17005";
|
||||
Restart = "on-failure";
|
||||
BindToDevice = "wlp7s0"; # Force binding to LAN interface
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
home.stateVersion = "24.05";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue