280 lines
5.5 KiB
Nix
Executable file
280 lines
5.5 KiB
Nix
Executable file
{ pkgs, inputs, secrets, ... }:
|
|
let
|
|
fortune = pkgs.writeShellScript "cgi" ''
|
|
echo "Content-type: text/html"
|
|
echo ""
|
|
${pkgs.fortune}/bin/fortune
|
|
'';
|
|
ffcheck = pkgs.writeShellScriptBin "ffcheck" ''
|
|
${pkgs.ffmpeg}/bin/ffmpeg -v error -stats -hide_banner -i "$1" -c copy -f null -
|
|
'';
|
|
in {
|
|
imports = [ ./backup.nix ];
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
nix.settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
substituters =
|
|
[ "https://nixcache.shelvacu.com" "https://fossar.cachix.org" ];
|
|
trusted-public-keys = [
|
|
"fossar.cachix.org-1:Zv6FuqIboeHPWQS7ysLCJ7UT7xExb4OE8c4LyGb5AsE="
|
|
"nixcache.shelvacu.com:73u5ZGBpPRoVZfgNJQKYYBt9K9Io/jPwgUfuOLsJbsM="
|
|
];
|
|
trusted-users = [ "@wheel" ];
|
|
};
|
|
|
|
nix.gc = {
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than 30d";
|
|
};
|
|
|
|
users.users.nettika = {
|
|
isNormalUser = true;
|
|
extraGroups = [ "wheel" "networkmanager" ];
|
|
shell = pkgs.fish;
|
|
};
|
|
|
|
security.sudo.wheelNeedsPassword = false;
|
|
|
|
environment.variables = {
|
|
EDITOR = "nano";
|
|
VISUAL = "code --wait";
|
|
};
|
|
|
|
networking = {
|
|
hostName = "marauder";
|
|
firewall.enable = false;
|
|
};
|
|
|
|
fileSystems = {
|
|
"/" = {
|
|
device = "/dev/disk/by-uuid/648c6539-892c-40d7-8b07-23fe760df02a";
|
|
fsType = "ext4";
|
|
};
|
|
"/boot" = {
|
|
device = "/dev/disk/by-uuid/1D62-C30E";
|
|
fsType = "vfat";
|
|
options = [ "fmask=0022" "dmask=0022" ];
|
|
};
|
|
};
|
|
|
|
boot = {
|
|
loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
initrd = {
|
|
systemd.enable = true;
|
|
availableKernelModules =
|
|
[ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
|
|
};
|
|
kernelModules = [ "kvm-amd" ];
|
|
kernelParams = [ "amd_pstate=active" ];
|
|
};
|
|
|
|
hardware = {
|
|
enableRedistributableFirmware = true;
|
|
cpu.amd.updateMicrocode = true;
|
|
graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
extraPackages = [ pkgs.vaapiVdpau ];
|
|
};
|
|
nvidia = {
|
|
open = true;
|
|
prime = {
|
|
offload = {
|
|
enable = true;
|
|
enableOffloadCmd = true;
|
|
};
|
|
amdgpuBusId = "PCI:05:00:0";
|
|
nvidiaBusId = "PCI:01:00:0";
|
|
};
|
|
};
|
|
};
|
|
|
|
environment = {
|
|
systemPackages = [ inputs.shelvacu.packages.x86_64-linux.sm64coopdx ]
|
|
++ (with pkgs; [
|
|
# Chat clients
|
|
discord
|
|
slack
|
|
element-desktop
|
|
telegram-desktop
|
|
signal-desktop
|
|
|
|
# Browsers
|
|
firefox
|
|
filezilla
|
|
|
|
# Creative
|
|
inkscape
|
|
gimp
|
|
krita
|
|
openscad-unstable
|
|
bambu-studio
|
|
|
|
# Multimedia
|
|
vlc
|
|
ffmpeg
|
|
ffcheck
|
|
aonsoku
|
|
|
|
# Code Editors
|
|
vscode
|
|
arduino-ide
|
|
|
|
# Dev Tools
|
|
nixd
|
|
nixfmt
|
|
nixpkgs-fmt
|
|
pyenv
|
|
rustup
|
|
electron
|
|
|
|
# Languages
|
|
gcc
|
|
kotlin
|
|
nodejs
|
|
php
|
|
|
|
# Command line
|
|
git-crypt
|
|
htop
|
|
jq
|
|
|
|
# Misc
|
|
obsidian
|
|
intiface-central
|
|
prismlauncher
|
|
blender
|
|
mullvad-vpn
|
|
qbittorrent
|
|
system-config-printer
|
|
]);
|
|
};
|
|
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
dedicatedServer.openFirewall = true;
|
|
};
|
|
|
|
programs.git = {
|
|
enable = true;
|
|
lfs.enable = true;
|
|
config = {
|
|
init.defaultBranch = "master";
|
|
user = {
|
|
email = "git@nettika.cat";
|
|
name = "Nettika";
|
|
};
|
|
credential.helper = "store";
|
|
};
|
|
};
|
|
|
|
programs.nano = {
|
|
enable = true;
|
|
nanorc = ''
|
|
set autoindent
|
|
set linenumbers
|
|
'';
|
|
};
|
|
|
|
programs.fish = {
|
|
enable = true;
|
|
promptInit = ''
|
|
function fish_prompt
|
|
echo -n '💜 '
|
|
set_color brgreen
|
|
echo -n (prompt_pwd)
|
|
set_color normal
|
|
echo -n ' > '
|
|
end
|
|
function fish_right_prompt
|
|
set_color bryellow
|
|
echo -n (git branch --show-current 2>/dev/null)
|
|
end
|
|
'';
|
|
shellInit = ''
|
|
set -g fish_greeting
|
|
set -g fish_prompt_pwd_full_dirs 999
|
|
'';
|
|
};
|
|
|
|
programs.direnv.enable = true;
|
|
|
|
programs.ssh.extraConfig = ''
|
|
Host quasar
|
|
HostName consortium.chat
|
|
IdentityFile ~/.ssh/LightsailDefaultKey-us-west-2.pem
|
|
|
|
Host monolith
|
|
HostName 10.243.210.154
|
|
|
|
Host fennbox
|
|
HostName 10.243.109.199
|
|
User fenn
|
|
'';
|
|
|
|
services.mysql = {
|
|
enable = true;
|
|
package = pkgs.mariadb;
|
|
};
|
|
|
|
services.httpd = {
|
|
enable = true;
|
|
enablePHP = true;
|
|
phpPackage = inputs.phps.packages.x86_64-linux.php80;
|
|
extraConfig = ''
|
|
ScriptAlias /fortune ${fortune}/bin/fortune
|
|
'';
|
|
virtualHosts."localhost" = {
|
|
documentRoot = "/var/www";
|
|
locations."/".index = "index.html index.php";
|
|
};
|
|
};
|
|
|
|
programs.nix-ld = { enable = true; };
|
|
|
|
services.xserver = {
|
|
enable = true;
|
|
videoDrivers = [ "nvidia" ];
|
|
desktopManager = {
|
|
cinnamon.enable = true;
|
|
xterm.enable = false;
|
|
};
|
|
};
|
|
|
|
services.printing.enable = true;
|
|
|
|
services.avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
services.displayManager.defaultSession = "cinnamon";
|
|
|
|
services.power-profiles-daemon.enable = false;
|
|
|
|
services.tlp.enable = true;
|
|
|
|
services.fstrim.enable = true;
|
|
|
|
services.zerotierone = {
|
|
enable = true;
|
|
joinNetworks = secrets.zerotier.networks;
|
|
};
|
|
|
|
services.mullvad-vpn = {
|
|
enable = true;
|
|
package = pkgs.mullvad-vpn; # Include GUI
|
|
};
|
|
|
|
time.timeZone = "America/Los_Angeles";
|
|
|
|
system.stateVersion = "24.05";
|
|
}
|