mirror of
https://github.com/davegallant/nix-config
synced 2025-08-07 05:02:28 +00:00
Move modules into modules/
This commit is contained in:
3
modules/common/darwin.nix
Normal file
3
modules/common/darwin.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{pkgs, ...}: {
|
||||
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||
}
|
24
modules/common/fonts.nix
Normal file
24
modules/common/fonts.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{pkgs, ...}: {
|
||||
# Set system-wide fonts.
|
||||
fonts.fonts = with pkgs; [
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
fira-mono
|
||||
font-awesome
|
||||
google-fonts
|
||||
liberation_ttf
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
];
|
||||
|
||||
# Set default fonts.
|
||||
fonts.fontconfig.defaultFonts = {
|
||||
sansSerif = ["Noto Sans"];
|
||||
serif = ["Noto Serif"];
|
||||
monospace = ["Noto Sans Mono"];
|
||||
emoji = ["Noto Color Emoji"];
|
||||
};
|
||||
}
|
31
modules/common/linux-desktop.nix
Normal file
31
modules/common/linux-desktop.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{...}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
wayland = false;
|
||||
};
|
||||
};
|
||||
desktopManager = {
|
||||
gnome = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
domain = true;
|
||||
hinfo = true;
|
||||
userServices = true;
|
||||
workstation = true;
|
||||
};
|
||||
};
|
||||
}
|
63
modules/common/linux.nix
Normal file
63
modules/common/linux.nix
Normal file
@@ -0,0 +1,63 @@
|
||||
{pkgs, ...}: {
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
boot.supportedFilesystems = ["ntfs"];
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
system.autoUpgrade.enable = true;
|
||||
|
||||
# See: https://github.com/NixOS/nixpkgs/issues/180175
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||
nix.package = pkgs.nixUnstable;
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
permittedInsecurePackages = [];
|
||||
};
|
||||
|
||||
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";
|
||||
|
||||
sound.enable = true;
|
||||
|
||||
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;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
virtualisation.podman.enable = true;
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
programs.corectrl.enable = true;
|
||||
}
|
12
modules/common/networking.nix
Normal file
12
modules/common/networking.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{pkgs, ...}: {
|
||||
services.tailscale.enable = true;
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
allowPing = false;
|
||||
enable = true;
|
||||
checkReversePath = "loose";
|
||||
trustedInterfaces = ["tailscale0"];
|
||||
};
|
||||
};
|
||||
}
|
3
modules/common/printing.nix
Normal file
3
modules/common/printing.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{pkgs, ...}: {
|
||||
services.printing.enable = true;
|
||||
}
|
147
modules/packages/common.nix
Normal file
147
modules/packages/common.nix
Normal file
@@ -0,0 +1,147 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
# System-wide packages to install.
|
||||
environment.systemPackages = with pkgs; let
|
||||
common = [
|
||||
# classics
|
||||
colordiff
|
||||
curl
|
||||
gcc
|
||||
git-crypt
|
||||
gnumake
|
||||
gnupg
|
||||
imagemagick
|
||||
jq
|
||||
unzip
|
||||
viddy
|
||||
wget
|
||||
xclip
|
||||
xdg-utils
|
||||
zip
|
||||
|
||||
# modern cli
|
||||
bat
|
||||
exa
|
||||
fd
|
||||
github-cli
|
||||
progress
|
||||
glab
|
||||
hadolint
|
||||
nodePackages.eslint
|
||||
oha
|
||||
postman
|
||||
pre-commit
|
||||
ripgrep
|
||||
yq-go
|
||||
shellcheck
|
||||
shfmt
|
||||
starship
|
||||
tldr
|
||||
tmux-sessionizer
|
||||
|
||||
# containers
|
||||
k9s
|
||||
krew
|
||||
kube-score
|
||||
kubecolor
|
||||
kubectl
|
||||
kubectx
|
||||
kubernetes-helm
|
||||
kustomize
|
||||
minikube
|
||||
skaffold
|
||||
stern
|
||||
|
||||
# language servers
|
||||
nodePackages.bash-language-server
|
||||
nodePackages.pyright
|
||||
nodePackages.yaml-language-server
|
||||
sumneko-lua-language-server
|
||||
|
||||
# monitoring
|
||||
ctop
|
||||
glances
|
||||
htop
|
||||
procs
|
||||
|
||||
# lua
|
||||
lua53Packages.luacheck
|
||||
stylua
|
||||
|
||||
# golang
|
||||
golangci-lint
|
||||
gopls
|
||||
gofumpt
|
||||
|
||||
# rust
|
||||
rustup
|
||||
|
||||
# js
|
||||
nodejs
|
||||
nodePackages.prettier
|
||||
nodePackages.yarn
|
||||
|
||||
# networking
|
||||
arp-scan
|
||||
dnsutils
|
||||
iperf
|
||||
nmap
|
||||
openssl
|
||||
openvpn
|
||||
sshfs # mac requires https://osxfuse.github.io/
|
||||
vpngate
|
||||
whois
|
||||
|
||||
# rice
|
||||
neofetch
|
||||
pfetch
|
||||
|
||||
# backup
|
||||
rclone
|
||||
restic
|
||||
|
||||
# infra
|
||||
terraform-ls
|
||||
terraformer
|
||||
tflint
|
||||
|
||||
# nix
|
||||
alejandra
|
||||
cachix
|
||||
nix-diff
|
||||
nix-tree
|
||||
nixfmt
|
||||
nixpkgs-fmt
|
||||
nixpkgs-review
|
||||
rnix-lsp
|
||||
|
||||
# cloud
|
||||
cloud-sql-proxy
|
||||
|
||||
# python
|
||||
poetry
|
||||
python310
|
||||
python310Packages.black
|
||||
python310Packages.ipython
|
||||
python310Packages.pip
|
||||
python310Packages.poetry-core
|
||||
python310Packages.setuptools
|
||||
python310Packages.virtualenv
|
||||
|
||||
# media
|
||||
youtube-dl
|
||||
|
||||
# blog
|
||||
hugo
|
||||
];
|
||||
in
|
||||
common;
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
}
|
62
modules/packages/linux-desktop.nix
Normal file
62
modules/packages/linux-desktop.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
# System-wide packages to install.
|
||||
environment.systemPackages = with pkgs; let
|
||||
linuxDesktop = [
|
||||
albert
|
||||
bitwarden
|
||||
bitwarden-cli
|
||||
chromium
|
||||
deja-dup
|
||||
discord
|
||||
foliate
|
||||
fx_cast_bridge
|
||||
ghostscript
|
||||
gimp-with-plugins
|
||||
gnome.gnome-sound-recorder
|
||||
gnome.gnome-tweaks
|
||||
gnome.seahorse
|
||||
gnomeExtensions.appindicator
|
||||
gnomeExtensions.bluetooth-quick-connect
|
||||
gnomeExtensions.blur-my-shell
|
||||
gnomeExtensions.caffeine
|
||||
gnomeExtensions.clipboard-indicator
|
||||
gnomeExtensions.grand-theft-focus
|
||||
gnomeExtensions.notification-banner-reloaded
|
||||
gnomeExtensions.quick-settings-tweaker
|
||||
gnomeExtensions.tailscale-status
|
||||
gnomeExtensions.tray-icons-reloaded
|
||||
gnomeExtensions.vitals
|
||||
google-cloud-sdk
|
||||
kazam
|
||||
legendary-gl
|
||||
mailspring
|
||||
prismlauncher
|
||||
obs-studio
|
||||
pavucontrol
|
||||
podman
|
||||
qemu
|
||||
ryujinx
|
||||
signal-desktop
|
||||
steam-tui
|
||||
usbutils
|
||||
virt-manager
|
||||
vlc
|
||||
wine
|
||||
wine64
|
||||
wireshark-qt
|
||||
yaru-theme
|
||||
yuzu
|
||||
zoom-us
|
||||
];
|
||||
in
|
||||
linuxDesktop;
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
}
|
30
modules/packages/linux.nix
Normal file
30
modules/packages/linux.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (pkgs) stdenv;
|
||||
in {
|
||||
# System-wide packages to install.
|
||||
environment.systemPackages = with pkgs; let
|
||||
linux = [
|
||||
cpu-x
|
||||
cryptsetup
|
||||
docker
|
||||
docker-compose
|
||||
glibcLocales
|
||||
lm_sensors
|
||||
netdata
|
||||
pinentry-curses
|
||||
nfs-utils
|
||||
rustup
|
||||
strace
|
||||
tailscale
|
||||
traceroute
|
||||
];
|
||||
in
|
||||
linux;
|
||||
|
||||
programs.gnupg.agent.enable = true;
|
||||
}
|
Reference in New Issue
Block a user