mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 09:27:44 -04:00
Relocated & split up darwin & nixos modules
I broke out host specific bits from the configuration that should be common to all hosts of a given type.
This commit is contained in:
parent
7d7a958da9
commit
067ab7a012
10 changed files with 243 additions and 220 deletions
|
|
@ -1,8 +1,6 @@
|
|||
{ pkgs, ... }: let
|
||||
user = "gene.liverman";
|
||||
username = "gene.liverman";
|
||||
in {
|
||||
system.stateVersion = 4;
|
||||
|
||||
environment = {
|
||||
shells = with pkgs; [ bash zsh ];
|
||||
loginShell = pkgs.zsh;
|
||||
|
|
@ -12,16 +10,12 @@ in {
|
|||
];
|
||||
systemPackages = with pkgs; [
|
||||
coreutils
|
||||
chart-testing
|
||||
hugo
|
||||
kopia
|
||||
kubectx
|
||||
mas
|
||||
nmap
|
||||
nodejs
|
||||
nodePackages.npm
|
||||
openjdk
|
||||
python2
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -33,75 +27,44 @@ in {
|
|||
upgrade = true;
|
||||
};
|
||||
taps = [
|
||||
"hashicorp/tap"
|
||||
# "homebrew/bundle"
|
||||
"homebrew/cask-fonts"
|
||||
# "jandedobbeleer/oh-my-posh"
|
||||
"null-dev/firefox-profile-switcher"
|
||||
"puppetlabs/puppet"
|
||||
];
|
||||
brews = [
|
||||
"adr-tools"
|
||||
"ffmpeg"
|
||||
"firefox-profile-switcher-connector"
|
||||
"helm"
|
||||
"kubernetes-cli"
|
||||
];
|
||||
casks = [
|
||||
"1password"
|
||||
"1password-cli"
|
||||
"amethyst"
|
||||
"angry-ip-scanner"
|
||||
"asana"
|
||||
"audacity"
|
||||
"balenaetcher"
|
||||
"boinc"
|
||||
"cakebrew"
|
||||
"discord"
|
||||
"elgato-stream-deck"
|
||||
"firefox"
|
||||
"font-hack-nerd-font"
|
||||
"font-inconsolata-g-for-powerline"
|
||||
"font-source-code-pro-for-powerline"
|
||||
"google-drive"
|
||||
"iterm2"
|
||||
"keepingyouawake"
|
||||
"kopiaui"
|
||||
"libreoffice"
|
||||
"logseq"
|
||||
"meld"
|
||||
"nextcloud"
|
||||
"obs"
|
||||
"onlyoffice"
|
||||
"pdk"
|
||||
"puppet-agent"
|
||||
"puppet-bolt"
|
||||
"qmk-toolbox"
|
||||
"raycast"
|
||||
"signal"
|
||||
"slack"
|
||||
"tailscale"
|
||||
"thunderbird"
|
||||
# "tunnelblick"
|
||||
"vagrant"
|
||||
"vivaldi"
|
||||
"virtualbox"
|
||||
"vlc"
|
||||
"whalebird"
|
||||
"zenmap"
|
||||
"zoom"
|
||||
];
|
||||
masApps = {
|
||||
"1Password for Safari" = 1569813296;
|
||||
"BetterSnapTool" = 417375580;
|
||||
"Home Assistant" = 1099568401;
|
||||
"HomeCam" = 1292995895;
|
||||
"Keeper Password Manager" = 414781829;
|
||||
"MeetingBar" = 1532419400;
|
||||
"Microsoft Remote Desktop" = 1295203466;
|
||||
"MQTT Explorer" = 1455214828;
|
||||
"Telegram" = 747648890;
|
||||
"WhatsApp Messenger" = 310633997;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -114,7 +77,7 @@ in {
|
|||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
trusted-users = [ "@admin" "${user}" ];
|
||||
trusted-users = [ "@admin" "${username}" ];
|
||||
};
|
||||
extraOptions = ''
|
||||
# Generated by https://github.com/DeterminateSystems/nix-installer, version 0.11.0.
|
||||
|
|
@ -126,8 +89,8 @@ in {
|
|||
|
||||
services.nix-daemon.enable = true;
|
||||
|
||||
users.users.${user} = {
|
||||
home = "/Users/${user}";
|
||||
users.users.${username} = {
|
||||
home = "/Users/${username}";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
}
|
||||
}
|
||||
49
modules/common/nixos/all-hosts.nix
Normal file
49
modules/common/nixos/all-hosts.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ config, pkgs, ... }: {
|
||||
imports = [
|
||||
./internationalisation.nix
|
||||
];
|
||||
|
||||
environment = {
|
||||
shells = with pkgs; [ bash zsh ];
|
||||
systemPackages = with pkgs; [
|
||||
angryipscanner
|
||||
dconf2nix
|
||||
file
|
||||
neofetch
|
||||
python3
|
||||
tailscale
|
||||
];
|
||||
};
|
||||
|
||||
fonts.fontDir.enable = false;
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"Hack"
|
||||
"SourceCodePro"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
}
|
||||
17
modules/common/nixos/internationalisation.nix
Normal file
17
modules/common/nixos/internationalisation.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ config, pkgs, ... }: {
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./dconf.nix
|
||||
];
|
||||
home.file = {
|
||||
".config/hypr/frappe.conf".source = (pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
|
|
|
|||
52
modules/hosts/darwin/Blue-Rock/default.nix
Normal file
52
modules/hosts/darwin/Blue-Rock/default.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{ pkgs, ... }: {
|
||||
system.stateVersion = 4;
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
chart-testing
|
||||
kopia
|
||||
kubectx
|
||||
python2
|
||||
];
|
||||
};
|
||||
|
||||
homebrew = {
|
||||
taps = [
|
||||
"hashicorp/tap"
|
||||
# "homebrew/bundle"
|
||||
# "jandedobbeleer/oh-my-posh"
|
||||
"puppetlabs/puppet"
|
||||
];
|
||||
brews = [
|
||||
"adr-tools"
|
||||
"helm"
|
||||
"kubernetes-cli"
|
||||
];
|
||||
casks = [
|
||||
"asana"
|
||||
"boinc"
|
||||
"discord"
|
||||
"elgato-stream-deck"
|
||||
"google-drive"
|
||||
"kopiaui"
|
||||
"obs"
|
||||
"pdk"
|
||||
"puppet-agent"
|
||||
"puppet-bolt"
|
||||
"qmk-toolbox"
|
||||
"thunderbird"
|
||||
"vagrant"
|
||||
"virtualbox"
|
||||
"whalebird"
|
||||
"zenmap"
|
||||
];
|
||||
masApps = {
|
||||
"HomeCam" = 1292995895;
|
||||
"Keeper Password Manager" = 414781829;
|
||||
"MeetingBar" = 1532419400;
|
||||
"Microsoft Remote Desktop" = 1295203466;
|
||||
"Telegram" = 747648890;
|
||||
"WhatsApp Messenger" = 310633997;
|
||||
};
|
||||
};
|
||||
}
|
||||
110
modules/hosts/nixos/rainbow-planet/default.nix
Normal file
110
modules/hosts/nixos/rainbow-planet/default.nix
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
{ config, pkgs, ... }: let
|
||||
username = "gene";
|
||||
hostname = "rainbow-planet";
|
||||
in {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
boot.loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot= {
|
||||
enable = true;
|
||||
consoleMode = "1";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# host specific apps
|
||||
boinc
|
||||
brightnessctl
|
||||
gnome.nautilus
|
||||
pavucontrol
|
||||
polkit-kde-agent
|
||||
ulauncher
|
||||
whalebird
|
||||
wmctrl
|
||||
|
||||
# common gui apps that really should be in another file
|
||||
firefox
|
||||
libreoffice
|
||||
meld
|
||||
slack
|
||||
tilix
|
||||
vivaldi
|
||||
xfce.xfce4-terminal
|
||||
zoom-us
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "${hostname}";
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
nix.settings.allowed-users = [ "${username}" ];
|
||||
|
||||
programs = {
|
||||
_1password.enable = true;
|
||||
_1password-gui = {
|
||||
enable = true;
|
||||
# Certain features, including CLI integration and system authentication support,
|
||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
||||
polkitPolicyOwners = [ "${username}" ];
|
||||
};
|
||||
hyprland.enable = true;
|
||||
|
||||
# common programs that really should be in another file
|
||||
# required for setting to be picked up by xfce4-terminal
|
||||
xfconf.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
boinc.enable = true;
|
||||
gnome.gnome-keyring.enable = true; # Provides secret storage
|
||||
gvfs.enable = true; # Used by Nautilus
|
||||
printing.enable = true; # Enable CUPS
|
||||
tailscale = {
|
||||
extraUpFlags = [
|
||||
"--ssh"
|
||||
];
|
||||
};
|
||||
xserver = {
|
||||
enable = true; # Enable the X11 windowing system.
|
||||
|
||||
# Configure keymap in X11
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "Gene Liverman";
|
||||
extraGroups = [ "networkmanager" "wheel" "dialout" "input" ];
|
||||
packages = with pkgs; [
|
||||
tailscale-systray
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,171 +0,0 @@
|
|||
{ config, pkgs, ... }: let
|
||||
user = "gene";
|
||||
hostname = "rainbow-planet";
|
||||
in {
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.systemd-boot.consoleMode = "1";
|
||||
|
||||
networking = {
|
||||
hostName = "${hostname}";
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
extraUpFlags = [
|
||||
"--ssh"
|
||||
];
|
||||
};
|
||||
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
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.xserver = {
|
||||
enable = true; # Enable the X11 windowing system.
|
||||
|
||||
# Configure keymap in X11
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${user} = {
|
||||
isNormalUser = true;
|
||||
description = "Gene Liverman";
|
||||
extraGroups = [ "networkmanager" "wheel" "dialout" "input" ];
|
||||
packages = with pkgs; [
|
||||
tailscale-systray
|
||||
];
|
||||
};
|
||||
|
||||
environment.shells = with pkgs; [ bash zsh ];
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
programs.zsh.enable = true;
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Well, this sucks, hopefully a fixed version is available soon...
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"electron-21.4.4"
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
angryipscanner
|
||||
boinc
|
||||
brightnessctl
|
||||
dconf2nix
|
||||
file
|
||||
firefox
|
||||
gnome.nautilus
|
||||
libreoffice
|
||||
meld
|
||||
neofetch
|
||||
pavucontrol
|
||||
polkit-kde-agent
|
||||
python3
|
||||
slack
|
||||
tailscale
|
||||
tilix
|
||||
ulauncher
|
||||
vivaldi
|
||||
whalebird
|
||||
wmctrl
|
||||
xfce.xfce4-terminal
|
||||
zoom-us
|
||||
];
|
||||
|
||||
programs = {
|
||||
_1password.enable = true;
|
||||
_1password-gui = {
|
||||
enable = true;
|
||||
# Certain features, including CLI integration and system authentication support,
|
||||
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
|
||||
polkitPolicyOwners = [ "${user}" ];
|
||||
};
|
||||
# required for setting to be picked up by xfce4-terminal
|
||||
xfconf.enable = true;
|
||||
};
|
||||
|
||||
# Used by Nautilus
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# Provides secret storage
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
services.boinc.enable = true;
|
||||
|
||||
nix.settings = {
|
||||
allowed-users = [ "${user}" ];
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
};
|
||||
|
||||
fonts.fontDir.enable = false;
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"Hack"
|
||||
"SourceCodePro"
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue