mirror of
https://github.com/davegallant/nix-config
synced 2025-08-06 07:13:40 +00:00
Reduce the number of files
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||
}
|
@@ -1,101 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.supportedFilesystems = ["ntfs"];
|
||||
|
||||
system = {
|
||||
autoUpgrade.enable = true;
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
|
||||
nix = {
|
||||
extraOptions = "experimental-features = nix-command flakes";
|
||||
package = pkgs.nixUnstable;
|
||||
};
|
||||
|
||||
users.users.dave = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["docker" "wheel" "libvirtd" "corectrl"];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us";
|
||||
};
|
||||
|
||||
time.timeZone = "America/Toronto";
|
||||
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
# Enable Vulkan
|
||||
hardware.opengl.driSupport = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
# Enable Steam
|
||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [libva];
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
libvirtd.enable = true;
|
||||
podman.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
corectrl.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
domain = true;
|
||||
hinfo = true;
|
||||
userServices = true;
|
||||
workstation = true;
|
||||
};
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
mullvad-vpn.enable = false;
|
||||
printing.enable = true;
|
||||
resolved.enable = true;
|
||||
xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = false;
|
||||
};
|
||||
};
|
||||
desktopManager = {
|
||||
gnome = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
iproute2.enable = true;
|
||||
firewall = {
|
||||
allowPing = false;
|
||||
enable = true;
|
||||
checkReversePath = "loose";
|
||||
trustedInterfaces = ["tailscale0"];
|
||||
};
|
||||
};
|
||||
}
|
@@ -1,8 +1,17 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
checkBrew = "command -v brew > /dev/null";
|
||||
in {
|
||||
users.users."dave.gallant".home = "/Users/dave.gallant";
|
||||
environment = {
|
||||
extraInit = ''
|
||||
${checkBrew} || >&2 echo "brew is not installed (install it via https://brew.sh)"
|
||||
'';
|
||||
};
|
||||
system.defaults = {
|
||||
loginwindow = {
|
||||
GuestEnabled = false;
|
||||
@@ -54,4 +63,47 @@
|
||||
AppleShowScrollBars = "Automatic";
|
||||
};
|
||||
};
|
||||
|
||||
homebrew = {
|
||||
enable = true;
|
||||
onActivation.autoUpdate = false;
|
||||
onActivation.upgrade = false;
|
||||
global = {
|
||||
brewfile = true;
|
||||
};
|
||||
|
||||
brews = [
|
||||
"coreutils"
|
||||
"gnu-sed"
|
||||
"gnu-tar"
|
||||
"netdata"
|
||||
"node"
|
||||
"podman"
|
||||
"podman-compose"
|
||||
];
|
||||
|
||||
casks = [
|
||||
"dbeaver-community"
|
||||
"font-fira-code-nerd-font"
|
||||
"font-hack-nerd-font"
|
||||
"karabiner-elements"
|
||||
"logseq"
|
||||
"lulu"
|
||||
"notunes"
|
||||
"obsidian"
|
||||
"podman-desktop"
|
||||
"postman"
|
||||
"raycast"
|
||||
"rectangle"
|
||||
"stats"
|
||||
"warp"
|
||||
];
|
||||
|
||||
taps = [
|
||||
"homebrew/bundle"
|
||||
"homebrew/cask-fonts"
|
||||
"homebrew/cask-versions"
|
||||
"homebrew/services"
|
||||
];
|
||||
};
|
||||
}
|
@@ -1,57 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
checkBrew = "command -v brew > /dev/null";
|
||||
in {
|
||||
environment = {
|
||||
extraInit = ''
|
||||
${checkBrew} || >&2 echo "brew is not installed (install it via https://brew.sh)"
|
||||
'';
|
||||
};
|
||||
|
||||
homebrew = {
|
||||
enable = true;
|
||||
onActivation.autoUpdate = false;
|
||||
onActivation.upgrade = false;
|
||||
global = {
|
||||
brewfile = true;
|
||||
};
|
||||
|
||||
brews = [
|
||||
"coreutils"
|
||||
"gnu-sed"
|
||||
"gnu-tar"
|
||||
"netdata"
|
||||
"node"
|
||||
"podman"
|
||||
"podman-compose"
|
||||
];
|
||||
|
||||
casks = [
|
||||
"dbeaver-community"
|
||||
"font-fira-code-nerd-font"
|
||||
"font-hack-nerd-font"
|
||||
"karabiner-elements"
|
||||
"logseq"
|
||||
"lulu"
|
||||
"notunes"
|
||||
"obsidian"
|
||||
"podman-desktop"
|
||||
"postman"
|
||||
"raycast"
|
||||
"rectangle"
|
||||
"stats"
|
||||
"warp"
|
||||
];
|
||||
|
||||
taps = [
|
||||
"homebrew/bundle"
|
||||
"homebrew/cask-fonts"
|
||||
"homebrew/cask-versions"
|
||||
"homebrew/services"
|
||||
];
|
||||
};
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
users.users."dave.gallant".home = "/Users/dave.gallant";
|
||||
imports = [
|
||||
./brew.nix
|
||||
./preferences.nix
|
||||
];
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
unstable,
|
||||
...
|
||||
}: {
|
||||
imports = [./hardware.nix];
|
||||
@@ -10,6 +11,7 @@
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
networking = {
|
||||
iproute2.enable = true;
|
||||
hostName = "hephaestus";
|
||||
interfaces.enp34s0 = {
|
||||
useDHCP = true;
|
||||
@@ -19,13 +21,163 @@
|
||||
41641 # tailscale
|
||||
];
|
||||
};
|
||||
firewall = {
|
||||
allowPing = false;
|
||||
enable = true;
|
||||
checkReversePath = "loose";
|
||||
trustedInterfaces = ["tailscale0"];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.supportedFilesystems = ["ntfs"];
|
||||
|
||||
system = {
|
||||
autoUpgrade.enable = true;
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
|
||||
nix = {
|
||||
extraOptions = "experimental-features = nix-command flakes";
|
||||
package = pkgs.nixUnstable;
|
||||
};
|
||||
|
||||
users.users.dave = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["docker" "wheel" "libvirtd" "corectrl"];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us";
|
||||
};
|
||||
|
||||
time.timeZone = "America/Toronto";
|
||||
|
||||
hardware.pulseaudio.enable = true;
|
||||
|
||||
# Vulkan
|
||||
hardware.opengl.driSupport = true;
|
||||
hardware.opengl.driSupport32Bit = true;
|
||||
|
||||
# Steam
|
||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [libva];
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
libvirtd.enable = true;
|
||||
podman.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
corectrl.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
domain = true;
|
||||
hinfo = true;
|
||||
userServices = true;
|
||||
workstation = true;
|
||||
};
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
mullvad-vpn.enable = false;
|
||||
printing.enable = true;
|
||||
resolved.enable = true;
|
||||
sshd.enable = true;
|
||||
tailscale.enable = true;
|
||||
xserver.videoDrivers = ["amdgpu"];
|
||||
xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = false;
|
||||
};
|
||||
};
|
||||
desktopManager = {
|
||||
gnome = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
android-tools
|
||||
bitwarden
|
||||
cryptsetup
|
||||
deja-dup
|
||||
discord
|
||||
docker
|
||||
docker-compose
|
||||
foliate
|
||||
ghostscript
|
||||
gimp-with-plugins
|
||||
glibcLocales
|
||||
gnome.gnome-tweaks
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.bluetooth-quick-connect
|
||||
gnomeExtensions.blur-my-shell
|
||||
gnomeExtensions.caffeine
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.grand-theft-focus
|
||||
gnomeExtensions.notification-banner-reloaded
|
||||
gnomeExtensions.quick-settings-tweaker
|
||||
gnomeExtensions.tailscale-status
|
||||
gnomeExtensions.tray-icons-reloaded
|
||||
iputils
|
||||
kazam
|
||||
legendary-gl
|
||||
lm_sensors
|
||||
mullvad-vpn
|
||||
netdata
|
||||
nfs-utils
|
||||
pavucontrol
|
||||
pinentry-curses
|
||||
podman
|
||||
podman-compose
|
||||
psst
|
||||
qemu
|
||||
rustup
|
||||
ryujinx
|
||||
signal-desktop
|
||||
strace
|
||||
tailscale
|
||||
traceroute
|
||||
ungoogled-chromium
|
||||
unstable.logseq
|
||||
unstable.obsidian
|
||||
unstable.yuzu
|
||||
unstable.zoom-us
|
||||
usbutils
|
||||
virt-manager
|
||||
vlc
|
||||
whois
|
||||
wine
|
||||
wine64
|
||||
wireshark-qt
|
||||
];
|
||||
}
|
||||
|
@@ -5,8 +5,9 @@
|
||||
|
||||
networking = {hostName = "zelus";};
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
services.nix-daemon.enable = true;
|
||||
|
||||
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||
nix.package = pkgs.nixVersions.stable;
|
||||
|
||||
programs.zsh = {
|
||||
|
@@ -1,5 +1,4 @@
|
||||
final: prev: {
|
||||
rfd = prev.callPackage ./rfd {};
|
||||
tmux-sessionizer = prev.callPackage ./tmux-sessionizer {};
|
||||
vpngate = prev.callPackage ./vpngate {};
|
||||
}
|
||||
|
126
modules/packages.nix
Normal file
126
modules/packages.nix
Normal file
@@ -0,0 +1,126 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
unstable,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# essentials
|
||||
curl
|
||||
gcc
|
||||
gnumake
|
||||
gnupg
|
||||
imagemagick
|
||||
jq
|
||||
unzip
|
||||
viddy
|
||||
wget
|
||||
xclip
|
||||
xdg-utils
|
||||
zip
|
||||
|
||||
# modern cli
|
||||
bat
|
||||
eza
|
||||
fd
|
||||
hadolint
|
||||
nodePackages.eslint
|
||||
oha
|
||||
pre-commit
|
||||
progress
|
||||
ripgrep
|
||||
shellcheck
|
||||
shfmt
|
||||
starship
|
||||
tldr
|
||||
tmux-sessionizer
|
||||
unstable.atuin
|
||||
unstable.github-cli
|
||||
yq-go
|
||||
|
||||
# containers
|
||||
krew
|
||||
kubecolor
|
||||
kubectl
|
||||
kubectx
|
||||
minikube
|
||||
stern
|
||||
unstable.helm-docs
|
||||
unstable.kubernetes-helm
|
||||
unstable.k9s
|
||||
unstable.skaffold
|
||||
|
||||
# cloud
|
||||
unstable.awscli2
|
||||
unstable.azure-cli
|
||||
unstable.google-cloud-sdk
|
||||
|
||||
# LSP
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.pyright
|
||||
nodePackages.yaml-language-server
|
||||
sumneko-lua-language-server
|
||||
terraform-ls
|
||||
|
||||
# monitoring
|
||||
ctop
|
||||
glances
|
||||
grafana-loki
|
||||
htop
|
||||
procs
|
||||
|
||||
# lua
|
||||
lua53Packages.luacheck
|
||||
stylua
|
||||
|
||||
# golang
|
||||
gofumpt
|
||||
golangci-lint
|
||||
gopls
|
||||
|
||||
# rust
|
||||
rustup
|
||||
|
||||
# js
|
||||
nodejs
|
||||
nodePackages.prettier
|
||||
nodePackages.yarn
|
||||
|
||||
# networking
|
||||
arp-scan
|
||||
dnsutils
|
||||
iperf
|
||||
nmap
|
||||
openssl
|
||||
openvpn
|
||||
sshfs # mac requires https://osxfuse.github.io/
|
||||
vpngate
|
||||
|
||||
# rice
|
||||
neofetch
|
||||
pfetch
|
||||
|
||||
# nix
|
||||
alejandra
|
||||
cachix
|
||||
nix-diff
|
||||
nix-tree
|
||||
nixfmt
|
||||
nixpkgs-fmt
|
||||
nixpkgs-review
|
||||
rnix-lsp
|
||||
|
||||
# python
|
||||
poetry
|
||||
python310
|
||||
python310Packages.black
|
||||
python310Packages.ipython
|
||||
python310Packages.pip
|
||||
python310Packages.poetry-core
|
||||
python310Packages.setuptools
|
||||
python310Packages.virtualenv
|
||||
];
|
||||
}
|
@@ -1,131 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
unstable,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
environment.systemPackages = with pkgs; let
|
||||
common = [
|
||||
# essentials
|
||||
curl
|
||||
gcc
|
||||
gnumake
|
||||
gnupg
|
||||
imagemagick
|
||||
jq
|
||||
unzip
|
||||
viddy
|
||||
wget
|
||||
xclip
|
||||
xdg-utils
|
||||
zip
|
||||
|
||||
# modern cli
|
||||
bat
|
||||
eza
|
||||
fd
|
||||
hadolint
|
||||
nodePackages.eslint
|
||||
oha
|
||||
pre-commit
|
||||
progress
|
||||
ripgrep
|
||||
shellcheck
|
||||
shfmt
|
||||
starship
|
||||
tldr
|
||||
tmux-sessionizer
|
||||
unstable.atuin
|
||||
unstable.github-cli
|
||||
yq-go
|
||||
|
||||
# containers
|
||||
krew
|
||||
kubecolor
|
||||
kubectl
|
||||
kubectx
|
||||
minikube
|
||||
stern
|
||||
unstable.helm-docs
|
||||
unstable.kubernetes-helm
|
||||
unstable.k9s
|
||||
unstable.skaffold
|
||||
|
||||
# cloud
|
||||
unstable.awscli2
|
||||
unstable.azure-cli
|
||||
unstable.google-cloud-sdk
|
||||
|
||||
# LSP
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.pyright
|
||||
nodePackages.yaml-language-server
|
||||
sumneko-lua-language-server
|
||||
terraform-ls
|
||||
|
||||
# monitoring
|
||||
ctop
|
||||
glances
|
||||
grafana-loki
|
||||
htop
|
||||
procs
|
||||
|
||||
# lua
|
||||
lua53Packages.luacheck
|
||||
stylua
|
||||
|
||||
# golang
|
||||
gofumpt
|
||||
golangci-lint
|
||||
gopls
|
||||
|
||||
# rust
|
||||
rustup
|
||||
|
||||
# js
|
||||
nodejs
|
||||
nodePackages.prettier
|
||||
nodePackages.yarn
|
||||
|
||||
# networking
|
||||
arp-scan
|
||||
dnsutils
|
||||
iperf
|
||||
nmap
|
||||
openssl
|
||||
openvpn
|
||||
sshfs # mac requires https://osxfuse.github.io/
|
||||
vpngate
|
||||
|
||||
# rice
|
||||
neofetch
|
||||
pfetch
|
||||
|
||||
# nix
|
||||
alejandra
|
||||
cachix
|
||||
nix-diff
|
||||
nix-tree
|
||||
nixfmt
|
||||
nixpkgs-fmt
|
||||
nixpkgs-review
|
||||
rnix-lsp
|
||||
|
||||
# python
|
||||
poetry
|
||||
python310
|
||||
python310Packages.black
|
||||
python310Packages.ipython
|
||||
python310Packages.pip
|
||||
python310Packages.poetry-core
|
||||
python310Packages.setuptools
|
||||
python310Packages.virtualenv
|
||||
];
|
||||
in
|
||||
common;
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
}
|
@@ -1,71 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
unstable,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
environment.systemPackages = with pkgs; let
|
||||
linux = [
|
||||
android-tools
|
||||
bitwarden
|
||||
cryptsetup
|
||||
deja-dup
|
||||
discord
|
||||
docker
|
||||
docker-compose
|
||||
foliate
|
||||
ghostscript
|
||||
gimp-with-plugins
|
||||
glibcLocales
|
||||
gnome.gnome-tweaks
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.bluetooth-quick-connect
|
||||
gnomeExtensions.blur-my-shell
|
||||
gnomeExtensions.caffeine
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.dash-to-dock
|
||||
gnomeExtensions.grand-theft-focus
|
||||
gnomeExtensions.notification-banner-reloaded
|
||||
gnomeExtensions.quick-settings-tweaker
|
||||
gnomeExtensions.tailscale-status
|
||||
gnomeExtensions.tray-icons-reloaded
|
||||
iputils
|
||||
kazam
|
||||
legendary-gl
|
||||
lm_sensors
|
||||
mullvad-vpn
|
||||
netdata
|
||||
nfs-utils
|
||||
pavucontrol
|
||||
pinentry-curses
|
||||
podman
|
||||
podman-compose
|
||||
psst
|
||||
qemu
|
||||
rustup
|
||||
ryujinx
|
||||
signal-desktop
|
||||
strace
|
||||
tailscale
|
||||
traceroute
|
||||
ungoogled-chromium
|
||||
unstable.logseq
|
||||
unstable.obsidian
|
||||
unstable.yuzu
|
||||
unstable.zoom-us
|
||||
usbutils
|
||||
virt-manager
|
||||
vlc
|
||||
whois
|
||||
wine
|
||||
wine64
|
||||
wireshark-qt
|
||||
];
|
||||
in
|
||||
linux;
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
}
|
11
outputs.nix
11
outputs.nix
@@ -19,8 +19,8 @@
|
||||
};
|
||||
defaultModules = [
|
||||
home-manager.nixosModules.home-manager
|
||||
./modules/common/fonts.nix
|
||||
./modules/packages/common.nix
|
||||
./modules/fonts.nix
|
||||
./modules/packages.nix
|
||||
./modules/upgrade-diff.nix
|
||||
|
||||
({
|
||||
@@ -71,8 +71,6 @@
|
||||
})
|
||||
];
|
||||
desktopLinuxModules = [
|
||||
./modules/common/linux.nix
|
||||
./modules/packages/linux.nix
|
||||
./modules/services/netdata/default.nix
|
||||
];
|
||||
in {
|
||||
@@ -100,10 +98,9 @@
|
||||
|
||||
modules = [
|
||||
home-manager.darwinModules.home-manager
|
||||
./modules/common/darwin.nix
|
||||
./modules/packages/common.nix
|
||||
./modules/darwin.nix
|
||||
./modules/machines/zelus/configuration.nix
|
||||
./modules/darwin/default.nix
|
||||
./modules/packages.nix
|
||||
./modules/upgrade-diff.nix
|
||||
|
||||
({config, ...}: {
|
||||
|
Reference in New Issue
Block a user