chore: Remove old configuration
This commit is contained in:
parent
49b4ade156
commit
88792d86db
@ -1,206 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
# State version
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
|
|
||||||
# Machine hostname
|
|
||||||
networking.hostName = "20212060";
|
|
||||||
|
|
||||||
# Admin users
|
|
||||||
users.users.jan.extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"wireshark"
|
|
||||||
"podman"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Set up kerberos
|
|
||||||
security.krb5 = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
libdefaults = {
|
|
||||||
rdns = false;
|
|
||||||
};
|
|
||||||
realms = (inputs.secrets.gewis.krb5Realm);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.netbird = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Move clatd setup
|
|
||||||
|
|
||||||
# services.clatd = {
|
|
||||||
# enable = true;
|
|
||||||
# enableNetworkManagerIntegration = true;
|
|
||||||
# };
|
|
||||||
# networking.networkmanager.settings = {
|
|
||||||
# connection."ipv6.clat" = "yes";
|
|
||||||
# };
|
|
||||||
networking.networkmanager.package = pkgs.networkmanager.overrideAttrs (
|
|
||||||
final: prev: {
|
|
||||||
src = pkgs.fetchFromGitLab {
|
|
||||||
domain = "gitlab.freedesktop.org";
|
|
||||||
owner = "Mstrodl";
|
|
||||||
repo = "NetworkManager";
|
|
||||||
# rev = "d367285a1fec5167f2fa94af2ea1448b6e21650e";
|
|
||||||
# sha256 = "0BHxuJ6KtFoVxh2Xt0bq4oM3q87QBhtawyMtixz/cPs=";
|
|
||||||
rev = "fa3b0c6ade05a67316520d143608c5bd9963a23c";
|
|
||||||
hash = "sha256-7TENrRDKXMFPWv6oDuBWBYIBrDvNsy/JGtkppMk1oQo=";
|
|
||||||
};
|
|
||||||
|
|
||||||
postPatch = prev.postPatch + ''
|
|
||||||
substituteInPlace meson.build \
|
|
||||||
--replace "find_program('clang'" "find_program('${pkgs.stdenv.cc.targetPrefix}clang'"
|
|
||||||
'';
|
|
||||||
|
|
||||||
hardeningDisable = [
|
|
||||||
"zerocallusedregs"
|
|
||||||
"shadowstack"
|
|
||||||
"pacret"
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs =
|
|
||||||
prev.nativeBuildInputs
|
|
||||||
++ (with pkgs; [
|
|
||||||
xdp-tools
|
|
||||||
bpftools
|
|
||||||
buildPackages.llvmPackages.clang
|
|
||||||
buildPackages.llvmPackages.libllvm
|
|
||||||
]);
|
|
||||||
|
|
||||||
buildInputs =
|
|
||||||
prev.buildInputs
|
|
||||||
++ (with pkgs; [
|
|
||||||
libbpf
|
|
||||||
]);
|
|
||||||
|
|
||||||
mesonFlags = prev.mesonFlags ++ [
|
|
||||||
"-Dclat=true"
|
|
||||||
"-Dnbft=false"
|
|
||||||
"-Dbpf-compiler=clang"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
# TODO: Remove once laptop is properly integrated into domain
|
|
||||||
programs.ssh = {
|
|
||||||
package = pkgs.openssh_gssapi;
|
|
||||||
extraConfig = ''
|
|
||||||
GSSAPIAuthentication yes
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable virtualisation for VMs
|
|
||||||
virtualisation.libvirtd.enable = true;
|
|
||||||
|
|
||||||
# Enable wireshark
|
|
||||||
programs.wireshark = {
|
|
||||||
enable = true;
|
|
||||||
dumpcap.enable = true;
|
|
||||||
usbmon.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable Nix-LD
|
|
||||||
programs.nix-ld = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set up wstunnel client
|
|
||||||
services.wstunnel = {
|
|
||||||
enable = true;
|
|
||||||
clients.wg-tunnel = {
|
|
||||||
connectTo = "wss://tunnel.bulthuis.dev:443";
|
|
||||||
settings.local-to-remote = [
|
|
||||||
"udp://51820:10.10.40.100:51820"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable flatpak
|
|
||||||
services.flatpak.enable = true;
|
|
||||||
|
|
||||||
# Set up MADD
|
|
||||||
# services.madd-client = {
|
|
||||||
# enable = true;
|
|
||||||
# endpoint = "http://localhost:3000";
|
|
||||||
# interface = "wlp0s20f3";
|
|
||||||
# };
|
|
||||||
# services.madd-server = {
|
|
||||||
# enable = true;
|
|
||||||
# settings = {
|
|
||||||
# bind = "127.0.0.1:3000";
|
|
||||||
# zone = "lab.bulthuis.dev";
|
|
||||||
# networks = [ "10.0.0.0/8" ];
|
|
||||||
# registration_limit = 1;
|
|
||||||
# dns_server = "127.0.0.1:2053";
|
|
||||||
# tsig_key_name = "madd";
|
|
||||||
# tsig_key_file = "/home/jan/Code/MADD/madd.tsig";
|
|
||||||
# tsig_algorithm = "hmac-sha256";
|
|
||||||
# data_dir = "/var/lib/madd";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Module setup
|
|
||||||
modules = {
|
|
||||||
profiles.laptop.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
virtualisation.podman = {
|
|
||||||
enable = true;
|
|
||||||
dockerCompat = true;
|
|
||||||
dockerSocket.enable = true;
|
|
||||||
autoPrune.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages =
|
|
||||||
let
|
|
||||||
wrapProgram =
|
|
||||||
pkg: bwrapArgs:
|
|
||||||
pkgs.runCommandLocal pkg.name { bwrapArgs = (lib.join " \\\n" bwrapArgs) + " \\"; } ''
|
|
||||||
mkdir -p $out
|
|
||||||
|
|
||||||
# Link all top level folders
|
|
||||||
ln -s ${pkg}/* $out
|
|
||||||
|
|
||||||
# Except for bin
|
|
||||||
rm $out/bin
|
|
||||||
mkdir -p $out/bin
|
|
||||||
|
|
||||||
# Wrap each executable
|
|
||||||
for file in ${pkg}/bin/*; do
|
|
||||||
base=$(basename $file)
|
|
||||||
echo "#!/usr/bin/env bash" > $out/bin/$base
|
|
||||||
echo "exec ${pkgs.bubblewrap}/bin/bwrap \\" >> $out/bin/$base
|
|
||||||
echo "$bwrapArgs" >> $out/bin/$base
|
|
||||||
echo "-- $file \"\$@\"" >> $out/bin/$base
|
|
||||||
chmod +x $out/bin/$base
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
wish = pkgs.writeShellScriptBin "wish" ''
|
|
||||||
env
|
|
||||||
exec ${lib.getExe pkgs.firefox} "$@"
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
[
|
|
||||||
(wrapProgram wish [
|
|
||||||
"--new-session"
|
|
||||||
"--unshare-all"
|
|
||||||
"--clearenv"
|
|
||||||
"--dev /dev"
|
|
||||||
"--proc /proc"
|
|
||||||
"--ro-bind /nix/store /nix/store"
|
|
||||||
"--bind $HOME/Code $HOME/Code"
|
|
||||||
])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Machine platform
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
|
||||||
|
|
||||||
# Hardware configuration
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
boot.initrd.availableKernelModules = [
|
|
||||||
"xhci_pci"
|
|
||||||
"nvme"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"rtsx_pci_sdmmc"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
|
||||||
|
|
||||||
# Filesystems
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/3b91eaeb-ea95-4bea-8dc1-f55af7502d23";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/46BF-DE2C";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [
|
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Swapfile
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 16 * 1024;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@ -1,120 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.stateVersion = "24.11";
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
# Desktop environment
|
|
||||||
gnome-text-editor
|
|
||||||
gnome-calculator
|
|
||||||
gnome-console
|
|
||||||
gnome-logs
|
|
||||||
gnome-system-monitor
|
|
||||||
nautilus
|
|
||||||
adwaita-icon-theme
|
|
||||||
gnome-control-center
|
|
||||||
gnome-shell-extensions
|
|
||||||
glib
|
|
||||||
gnome-menus
|
|
||||||
gtk3.out
|
|
||||||
xdg-user-dirs
|
|
||||||
xdg-user-dirs-gtk
|
|
||||||
cantarell-fonts
|
|
||||||
dejavu_fonts
|
|
||||||
source-code-pro
|
|
||||||
source-sans
|
|
||||||
gnome-session
|
|
||||||
adwaita-fonts
|
|
||||||
|
|
||||||
# Coding tools
|
|
||||||
vim-full
|
|
||||||
nano
|
|
||||||
neovim
|
|
||||||
emacs
|
|
||||||
gedit
|
|
||||||
geany
|
|
||||||
kdePackages.kate
|
|
||||||
vscode
|
|
||||||
python310
|
|
||||||
jdk17
|
|
||||||
gnumake
|
|
||||||
gcc
|
|
||||||
lldb
|
|
||||||
# pypy310
|
|
||||||
|
|
||||||
# Runners
|
|
||||||
(writeShellScriptBin "mygcc" "gcc -std=gnu17 -x c -Wall -O2 -static -pipe -o $1 \"$1.c\" -lm")
|
|
||||||
(writeShellScriptBin "mygpp" "g++ -std=gnu++20 -x c++ -Wall -O2 -static -pipe -o $1 \"$1.cpp\" -lm")
|
|
||||||
(writeShellScriptBin "mypython" "python3 $@")
|
|
||||||
(writeShellScriptBin "myjavac" "javac -encoding UTF-8 -sourcepath . -d . $@")
|
|
||||||
(writeShellScriptBin "mykotlinc" "kotlinc -d . $@")
|
|
||||||
];
|
|
||||||
|
|
||||||
modules.profiles.gnome.enable = true;
|
|
||||||
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
mutableExtensionsDir = false;
|
|
||||||
profiles.default = {
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
|
||||||
ms-vscode.cpptools
|
|
||||||
ms-dotnettools.csharp
|
|
||||||
formulahendry.code-runner
|
|
||||||
vscjava.vscode-java-debug
|
|
||||||
dbaeumer.vscode-eslint
|
|
||||||
redhat.java
|
|
||||||
ms-python.python
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.firefox;
|
|
||||||
profiles.default = {
|
|
||||||
settings = {
|
|
||||||
"browser.startup.homepage" = "https://domjudge.bulthuis.dev";
|
|
||||||
};
|
|
||||||
bookmarks = {
|
|
||||||
force = true;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
name = "Sites";
|
|
||||||
toolbar = true;
|
|
||||||
bookmarks = [
|
|
||||||
{
|
|
||||||
name = "C Reference";
|
|
||||||
url = "https://en.cppreference.com/w/c";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "C++ Reference";
|
|
||||||
url = "https://en.cppreference.com/w/cpp";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Python 3.10 documentation";
|
|
||||||
url = "https://docs.python.org/3.10/download.html";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Java 17 API Specification";
|
|
||||||
url = "https://docs.oracle.com/en/java/javase/17/docs/api/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "Kotlin Language Documentation";
|
|
||||||
url = "https://kotlinlang.org/docs/kotlin-reference.pdf";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "DOMjudge Team Manual";
|
|
||||||
url = "https://www.domjudge.org/docs/manual/main/index.html";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.stateVersion = "24.11";
|
|
||||||
|
|
||||||
modules.profiles.jan.enable = true;
|
|
||||||
|
|
||||||
# home.packages = with pkgs; [
|
|
||||||
# opencloud-desktop
|
|
||||||
# code-nautilus
|
|
||||||
# nautilus-open-in-blackbox
|
|
||||||
# ];
|
|
||||||
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
canvas = {
|
|
||||||
name = "Canvas";
|
|
||||||
type = "Application";
|
|
||||||
exec = "${pkgs.chromium}/bin/chromium --app=\"https://canvas.tue.nl\" --user-data-dir=/home/jan/.local/state/Canvas";
|
|
||||||
settings.StartupWMClass = "chrome-canvas.tue.nl__-Default";
|
|
||||||
};
|
|
||||||
overleaf = {
|
|
||||||
name = "Overleaf";
|
|
||||||
type = "Application";
|
|
||||||
exec = "${pkgs.chromium}/bin/chromium --app=\"https://www.overleaf.com\" --user-data-dir=/home/jan/.local/state/Overleaf";
|
|
||||||
settings.StartupWMClass = "chrome-www.overleaf.com__-Default";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user