- 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
149 lines
3.1 KiB
Nix
149 lines
3.1 KiB
Nix
{ 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";
|
|
}
|