Compare commits

..

17 commits

Author SHA1 Message Date
Chandler Swift
5e7347ad26
sam: Install github cli (gh) 2025-07-11 13:09:55 -05:00
Chandler Swift
a3ac063e28
sam: Add additional opts from old gitconfig 2025-07-10 20:08:44 -05:00
Chandler Swift
c6b1107a78
sam: Use vue key for vue git repos 2025-07-10 20:08:44 -05:00
Chandler Swift
31f95124c9
sam: Conditionally configure git email 2025-07-10 14:24:48 -05:00
Chandler Swift
5105087d65
sam: Disable sudo password requirement 2025-07-10 14:23:27 -05:00
Chandler Swift
6959d0a591
sam: Enable GnuPG agent 2025-07-09 16:56:07 -05:00
Chandler Swift
41de43403a
sam: Add home-manager
This also imports most of the home-manager config from oscar.
2025-07-09 16:49:17 -05:00
Chandler Swift
b2f44b7d17
oscar: Factor out git-pre-commit-hook for use on other machines 2025-07-09 16:49:10 -05:00
Chandler Swift
bcc20c9c03
sam: Enable Docker 2025-07-09 16:48:20 -05:00
Chandler Swift
76909b3202
sam: Disable CUPS 2025-07-09 16:48:20 -05:00
Chandler Swift
ef467fb842
sam: Disable X11 2025-07-09 16:48:20 -05:00
Chandler Swift
02c4f6ec4e
sam: Remove unhelpful commentary 2025-07-09 16:48:20 -05:00
Chandler Swift
7ddfd59f6b
sam: Install git 2025-07-09 16:48:20 -05:00
Chandler Swift
1d76564f73
sam: Set hostname 2025-07-09 16:48:20 -05:00
Chandler Swift
b933f28c81
sam: Enable spice-vdagent and qemuGuest services
This allows for e.g. dynamic screen resize.
2025-07-09 16:48:20 -05:00
Chandler Swift
38289d986c
sam: Move configuration.nix into homedir
Copied from oscar's config.
2025-07-09 16:48:19 -05:00
Chandler Swift
da5572e47d
sam: Add initial post-install config 2025-07-09 16:48:19 -05:00
4 changed files with 226 additions and 1 deletions

View file

@ -277,7 +277,7 @@
".direnv"
];
hooks = {
pre-commit = ./git-pre-commit-hook;
pre-commit = ../git-pre-commit-hook;
};
signing.signByDefault = true;
signing.key = null; # "let GnuPG decide what signing key to use depending on commit's author"

186
sam/configuration.nix Normal file
View file

@ -0,0 +1,186 @@
{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
(import "${builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz}/nixos")
];
# https://discourse.nixos.org/t/github-strategies-for-configuration-nix/1983/14
nix.nixPath = [
"nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos"
"nixos-config=/home/chandler/projects/machine-config/${config.networking.hostName}/configuration.nix"
"/nix/var/nix/profiles/per-user/root/channels"
];
services.spice-vdagentd.enable = true;
services.qemuGuest.enable = true;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = "sam"; # Define your hostname.
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
security.sudo.wheelNeedsPassword = false;
users.users.chandler = {
isNormalUser = true;
description = "Chandler Swift";
extraGroups = [ "networkmanager" "wheel" "docker"];
};
home-manager.users.chandler = { pkgs, ... }: {
home.packages = with pkgs; [
kdePackages.kate
gh
];
programs.bash = {
enable = true;
historyControl = [ "ignoredups" "ignorespace" ];
};
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.git = {
enable = true;
userName = "Chandler Swift";
lfs.enable = true;
# TODO: delta or diff-so-fancy or difftastic
extraConfig = {
init.defaultBranch = "main";
diff.wsErrorHighlight = "all";
pull.ff = "only";
url."ssh://git@github.com/ChandlerSwift/".insteadOf = "gh:";
url."ssh://forgejo@bert/chandlerswift/".insteadOf = "forgejo:";
push.autoSetupRemote = true;
rebase.autosquash = true;
rebase.autostash = true;
fetch.parallel = 0; # "some reasonable default"
fetch.prune = true;
merge.conflictstyle = "diff3";
};
ignores = [
"*.kate-swp"
"*.swp"
"*~"
"\\#*\\#"
"venv"
".direnv"
];
includes = [
{
condition = "gitdir:/home/chandler/work/";
contents.user.email = "chandler.swift@pearson.com";
}
{
condition = "gitdir:/home/chandler/projects/";
contents.user.email = "chandler+pearson@chandlerswift.com";
}
{
condition = "gitdir:/home/chandler/work/github-vue/";
contents.core.sshCommand = "ssh -i ~/.ssh/github-vue";
}
];
hooks = {
pre-commit = ../git-pre-commit-hook;
};
signing.signByDefault = true;
signing.key = null; # "let GnuPG decide what signing key to use depending on commit's author"
};
programs.ssh = {
enable = true;
addKeysToAgent = "yes";
includes = [
"config.d/*"
];
};
programs.firefox.enable = true;
programs.chromium = {
enable = true;
extensions = [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
];
};
programs.atuin = {
enable = true;
flags = [
"--disable-up-arrow"
];
};
home.stateVersion = "25.05";
};
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "chandler";
virtualisation.docker.enable = true;
environment.systemPackages = with pkgs; [
git
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
# enableSSHSupport = true;
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.05"; # Did you read the comment?
}

View file

@ -0,0 +1,39 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" "usb_storage" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/9f5ccd27-a09e-41d0-88a5-142d5cfb89fe";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/0FF4-D39B";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/6c923fd7-5b0a-4dd5-b1ce-6cd4ea144275"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}