Compare commits
No commits in common. "28a3bf2509eda9df8f9e17e218d93972093f27ee" and "b740d56f03a20bd195989a175182b8e10999f21e" have entirely different histories.
28a3bf2509
...
b740d56f03
12 changed files with 196 additions and 1 deletions
|
|
@ -45,7 +45,6 @@ in {
|
||||||
# Enable SDDM.
|
# Enable SDDM.
|
||||||
services.displayManager.sddm = {
|
services.displayManager.sddm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland.enable = true;
|
|
||||||
# theme = "sugar-candy";
|
# theme = "sugar-candy";
|
||||||
settings = {
|
settings = {
|
||||||
General = {Numlock = "off";};
|
General = {Numlock = "off";};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./services
|
./services
|
||||||
|
./programs
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
roles/school/programs/default.nix
Normal file
13
roles/school/programs/default.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./virtualbox.nix
|
||||||
|
./jetbrains.nix
|
||||||
|
./vscode.nix
|
||||||
|
./helix.nix
|
||||||
|
./unity.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
dia
|
||||||
|
];
|
||||||
|
}
|
||||||
10
roles/school/programs/helix.nix
Normal file
10
roles/school/programs/helix.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home-manager.users.toast = {
|
||||||
|
programs.helix = {
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
omnisharp-roslyn
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
roles/school/programs/jetbrains.nix
Normal file
19
roles/school/programs/jetbrains.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{pkgs, ...}:
|
||||||
|
with pkgs; {
|
||||||
|
environment.systemPackages = with jetbrains; [
|
||||||
|
idea-ultimate
|
||||||
|
scenebuilder
|
||||||
|
datagrip
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.toast = {
|
||||||
|
/*
|
||||||
|
If you use programs.java.enable intellij picks up the jdk package directly, which is not ideal
|
||||||
|
This adds the jdks I want to use to a directory intellij expects jdks to be
|
||||||
|
*/
|
||||||
|
home.file.".jdks/jdk8".source = "${pkgs.jdk8}/lib/openjdk";
|
||||||
|
home.file.".jdks/jdk17".source = let
|
||||||
|
jdk17 = pkgs.jdk17.override {enableJavaFX = true;};
|
||||||
|
in "${jdk17}/lib/openjdk";
|
||||||
|
};
|
||||||
|
}
|
||||||
8
roles/school/programs/unity.nix
Normal file
8
roles/school/programs/unity.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home-manager.users.toast = {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
unityhub
|
||||||
|
jetbrains.rider
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
15
roles/school/programs/virtualbox.nix
Normal file
15
roles/school/programs/virtualbox.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{...}: {
|
||||||
|
# Need to use visual studio 2019 :(
|
||||||
|
virtualisation.virtualbox.host = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
systemd.user.tmpfiles.rules = [
|
||||||
|
"d '/%h/VirtualBox VMs'"
|
||||||
|
"h '/%h/VirtualBox VMs' - - - - C "
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
users.users.toast.extraGroups = ["vboxusers"];
|
||||||
|
}
|
||||||
23
roles/school/programs/vscode.nix
Normal file
23
roles/school/programs/vscode.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
flakeSelf,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inputs = flakeSelf.inputs;
|
||||||
|
in {
|
||||||
|
home-manager.users.toast.programs.vscode = {
|
||||||
|
# The redhat xml extension needs an fhs environment
|
||||||
|
package = lib.mkForce pkgs.vscodium-fhs;
|
||||||
|
extensions = with inputs.vscode-extensions.extensions.x86_64-linux; [
|
||||||
|
open-vsx.redhat.vscode-xml
|
||||||
|
open-vsx.tomoki1207.pdf
|
||||||
|
open-vsx.ms-vscode.live-server
|
||||||
|
open-vsx.ecmel.vscode-html-css
|
||||||
|
open-vsx.angular.ng-template
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
redhat.telemetry.enabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
./mysql.nix
|
||||||
|
./xampp.nix
|
||||||
|
./mongodb.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
34
roles/school/services/mongodb.nix
Normal file
34
roles/school/services/mongodb.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.mongodb = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mongodb-5_0;
|
||||||
|
user = "toast";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Don't autostart MySQL
|
||||||
|
systemd.services.mongodb.wantedBy = lib.mkForce [];
|
||||||
|
|
||||||
|
# Allow regular users to start/stop mongodb
|
||||||
|
# https://stackoverflow.com/questions/61480914/using-policykit-to-allow-non-root-users-to-start-and-stop-a-service
|
||||||
|
security.polkit.extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (
|
||||||
|
action.id == "org.freedesktop.systemd1.manage-units" &&
|
||||||
|
action.lookup("unit") == "mongodb.service" &&
|
||||||
|
subject.user == "${config.services.mongodb.user}"
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
mongosh
|
||||||
|
];
|
||||||
|
}
|
||||||
36
roles/school/services/mysql.nix
Normal file
36
roles/school/services/mysql.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.mysql = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mysql80;
|
||||||
|
user = "toast";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Don't autostart MySQL
|
||||||
|
systemd.services.mysql.wantedBy = lib.mkForce [];
|
||||||
|
|
||||||
|
# Allow regular users to start/stop mysql
|
||||||
|
# https://stackoverflow.com/questions/61480914/using-policykit-to-allow-non-root-users-to-start-and-stop-a-service
|
||||||
|
security.polkit.extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (
|
||||||
|
action.id == "org.freedesktop.systemd1.manage-units" &&
|
||||||
|
action.lookup("unit") == "mysql.service" &&
|
||||||
|
subject.user == "${config.services.mysql.user}"
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
mysql-workbench
|
||||||
|
mycli
|
||||||
|
];
|
||||||
|
}
|
||||||
34
roles/school/services/xampp.nix
Normal file
34
roles/school/services/xampp.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{pkgs, ...}: let
|
||||||
|
booDark = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/adorade/boodark/releases/download/v1.1.1/boodark-v1.1.1.zip";
|
||||||
|
hash = "sha256-GE/FtFlU6A4I9sRyjMhQIidGpDLD99Wzzngz3QI/rSo=";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
# I tried setting up httpd + php in class but I just gave up
|
||||||
|
virtualisation.oci-containers = {
|
||||||
|
containers."xampp" = {
|
||||||
|
autoStart = false;
|
||||||
|
image = "tomsik68/xampp";
|
||||||
|
#user = "${toString users.users.atfc.uid}:${toString users.groups.minecraft.gid}";
|
||||||
|
volumes = [
|
||||||
|
"xampp-mysql:/opt/lampp/var/mysql"
|
||||||
|
# No dark mode installed by default :(
|
||||||
|
"${booDark}:/opt/lampp/phpmyadmin/themes/booDark"
|
||||||
|
];
|
||||||
|
ports = ["41061:22" "41062:80"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.polkit.extraConfig = ''
|
||||||
|
polkit.addRule(function(action, subject) {
|
||||||
|
if (
|
||||||
|
action.id == "org.freedesktop.systemd1.manage-units" &&
|
||||||
|
action.lookup("unit") == "podman-xampp.service" &&
|
||||||
|
subject.user == "toast"
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return polkit.Result.YES;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue