Compare commits
10 commits
1e22e3c978
...
ad977e12a0
| Author | SHA1 | Date | |
|---|---|---|---|
| ad977e12a0 | |||
| 49271c6b74 | |||
| 037230706c | |||
| e27340a1ba | |||
| 479355e53f | |||
| af644be32b | |||
| 80691f1491 | |||
| e8d5aea2dc | |||
| 35a65d995c | |||
| 8ab0c4b595 |
12 changed files with 236 additions and 430 deletions
21
README.md
21
README.md
|
|
@ -11,7 +11,7 @@ include_toc: true
|
|||
|
||||
### 🐬 Totsugeki | Desktop
|
||||
|
||||
Desktop with NixOS as a primary system and Windows 11 N as secondary. Has secure boot support.
|
||||
Main desktop configuration
|
||||
|
||||
#### Programs
|
||||
|
||||
|
|
@ -49,21 +49,24 @@ Desktop with NixOS as a primary system and Windows 11 N as secondary. Has secure
|
|||
|
||||
#### Services
|
||||
|
||||
**Still a WIP**
|
||||
|
||||
| Name | Type | Public-facing |
|
||||
| -----------: | :----------------------------- | :-----------: |
|
||||
| Nginx | Web server and reverse proxy | x |
|
||||
| PostgreSQL | Database engine |
|
||||
| ACME | Automatic SSL cert renew | |
|
||||
| Inadyn | Automatic DDNS updates | |
|
||||
| PostgreSQL | Database engine | |
|
||||
| PgAdmin4 | PostgreSQL management tool | |
|
||||
| Forgejo | Git repository | x |
|
||||
| PaperMC | Minecraft server | x |
|
||||
| Fabric | Minecraft server | x |
|
||||
| AdGuard Home | DNS server and content blocker | |
|
||||
| Invidious | YouTube proxy | |
|
||||
| SearXNG | Metasearch engine | |
|
||||
| Radicale | CalDAV / CardDAV server | |
|
||||
| Jellyfin | Media server | x |
|
||||
| Koito | Scrobbler | x |
|
||||
| Vaultwarden | Password manager | |
|
||||
|
||||
### 🎀 Mizuki | WSL development setup
|
||||
### 🎀 Mizuki | Development on WSL
|
||||
|
||||
An experimental configuration for software development inside Windows Subsystem for Linux.
|
||||
Windows Subsystem for Linux configuration
|
||||
|
||||
Inherits the Nixvim configuration from totsugeki
|
||||
Uses the common Neovim and zsh config
|
||||
|
|
|
|||
98
flake.lock
generated
98
flake.lock
generated
|
|
@ -128,6 +128,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
|
|
@ -209,6 +225,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -362,6 +396,26 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-minecraft": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750823009,
|
||||
"narHash": "sha256-cawpGKdtw+2ai/fqvz+B8ge/iaX2CzbcDb39GiW5gt4=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "67cc1a9c77957e6749f38851c04ffbee6e0d4a4d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-unit": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
|
|
@ -391,7 +445,7 @@
|
|||
},
|
||||
"nixos-wsl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
|
|
@ -444,6 +498,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1748929857,
|
||||
"narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1750741721,
|
||||
"narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=",
|
||||
|
|
@ -459,7 +529,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1750731501,
|
||||
"narHash": "sha256-Ah4qq+SbwMaGkuXCibyg+Fwn00el4KmI3XFX6htfDuk=",
|
||||
|
|
@ -478,9 +548,9 @@
|
|||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1750788551,
|
||||
|
|
@ -498,7 +568,7 @@
|
|||
},
|
||||
"nuschtosSearch": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"ixx": "ixx",
|
||||
"nixpkgs": [
|
||||
"nixvim",
|
||||
|
|
@ -552,8 +622,9 @@
|
|||
"autofirma-nix": "autofirma-nix",
|
||||
"home-manager": "home-manager_2",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"nix-minecraft": "nix-minecraft",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixvim": "nixvim",
|
||||
"sops-nix": "sops-nix"
|
||||
}
|
||||
|
|
@ -644,6 +715,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
|
|||
|
|
@ -29,9 +29,11 @@
|
|||
url = "github:nix-community/NixOS-WSL/main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
};
|
||||
|
||||
nixConfig = {
|
||||
download-buffer-size = 524288000; # 500 MB
|
||||
extra-substituters = [ "https://nix-community.cachix.org" ];
|
||||
extra-trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
|
|
@ -43,6 +45,7 @@
|
|||
# Desktop computer
|
||||
totsugeki = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./common/nixos.nix
|
||||
./hosts/totsugeki/nixos
|
||||
|
|
@ -69,12 +72,14 @@
|
|||
# Home server
|
||||
greatyamada = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./common/nixos.nix
|
||||
./hosts/greatyamada/nixos
|
||||
./hosts/greatyamada/services
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||
{
|
||||
home-manager = {
|
||||
backupFileExtension = "bak";
|
||||
|
|
@ -93,6 +98,7 @@
|
|||
# WSL development system
|
||||
mizuki = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/mizuki/nixos.nix
|
||||
inputs.nixos-wsl.nixosModules.default
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
{
|
||||
tcp = {
|
||||
minecraft = 13914;
|
||||
|
||||
};
|
||||
adguardhome-dns = 53;
|
||||
adguardhome-http = 3001;
|
||||
adguardhome-dhcp-udp = 67;
|
||||
forgejo-http = 3000;
|
||||
jellyfin-http = 8096;
|
||||
koito = 4110;
|
||||
minecraft = 13914;
|
||||
navidrome-https = 4533;
|
||||
nginx-https = 443;
|
||||
ntfy-http = 2586;
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
# Managed by NixOS configuration
|
||||
settings:
|
||||
use-map-color-cache: true
|
||||
allow-end: true
|
||||
warn-on-overload: true
|
||||
permissions-file: permissions.yml
|
||||
update-folder: update
|
||||
plugin-profiling: false
|
||||
connection-throttle: 4000
|
||||
query-plugins: true
|
||||
deprecated-verbose: default
|
||||
shutdown-message: Servidor cerrado
|
||||
minimum-api: none
|
||||
spawn-limits:
|
||||
axolotls: 5
|
||||
water-underground-creature: 5
|
||||
monsters: 120
|
||||
animals: 20
|
||||
water-animals: 5
|
||||
water-ambient: 20
|
||||
ambient: 15
|
||||
chunk-gc:
|
||||
period-in-ticks: 600
|
||||
ticks-per:
|
||||
axolotl-spawns: 1
|
||||
water-underground-creature-spawns: 1
|
||||
animal-spawns: 400
|
||||
monster-spawns: 1
|
||||
water-spawns: 1
|
||||
water-ambient-spawns: 1
|
||||
ambient-spawns: 1
|
||||
autosave: 6000
|
||||
aliases: now-in-commands.yml
|
||||
|
|
@ -1,78 +1,116 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, inputs, ... }:
|
||||
let
|
||||
cfg = config.services.minecraft-server;
|
||||
|
||||
bukkitConfigFile = ./bukkit.yml;
|
||||
|
||||
spigotConfigFile = ./spigot.yml;
|
||||
|
||||
cfgToString = v: if builtins.isBool v then lib.boolToString v else toString v;
|
||||
|
||||
eulaFile = builtins.toFile "eula.txt" ''
|
||||
# eula.txt managed by NixOS configuration
|
||||
eula=true
|
||||
'';
|
||||
|
||||
opsFile = builtins.toFile "ops.json" (builtins.toJSON [{
|
||||
name = "aveeeeryy";
|
||||
uuid = "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc";
|
||||
level = 4;
|
||||
bypassesPlayerLimit = true;
|
||||
}]);
|
||||
|
||||
serverPropertiesFile = pkgs.writeText "server.properties" (''
|
||||
# server.properties managed by NixOS configuration
|
||||
'' + lib.concatStringsSep "\n"
|
||||
(lib.mapAttrsToList (n: v: "${n}=${cfgToString v}") cfg.serverProperties));
|
||||
|
||||
serverIcon = ./server-icon.png;
|
||||
|
||||
players = import ./players.nix;
|
||||
ports = import ../_port-definitions.nix;
|
||||
packageNameToHumanString = packageName:
|
||||
(let
|
||||
getSections = packageName:
|
||||
# Probably only matches Fabric servers, change as needed
|
||||
builtins.match
|
||||
"^minecraft-server-([0-9a-zA-Z.]*)-([a-zA-Z-]*)-([0-9a-zA-Z.]*)$"
|
||||
packageName;
|
||||
sections = (getSections packageName);
|
||||
getSection = idx:
|
||||
if sections == null then "Unknown" else builtins.elemAt sections idx;
|
||||
in "Minecraft ${getSection 0} with ${
|
||||
lib.strings.toSentenceCase (getSection 1)
|
||||
} ${getSection 2}");
|
||||
playersToOps = players:
|
||||
map (player: {
|
||||
name = player.name;
|
||||
uuid = player.uuid;
|
||||
level = 4;
|
||||
bypassesPlayerLimit = true;
|
||||
}) players;
|
||||
in {
|
||||
services.minecraft-server = {
|
||||
enable = false;
|
||||
package = pkgs.papermc;
|
||||
declarative = true;
|
||||
environment.systemPackages = with pkgs; [ mcrcon ];
|
||||
networking.firewall.allowedTCPPorts = with ports.tcp; [ minecraft ];
|
||||
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
||||
services.minecraft-servers = {
|
||||
enable = true;
|
||||
eula = true;
|
||||
openFirewall = true;
|
||||
jvmOpts =
|
||||
"-Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true";
|
||||
serverProperties = {
|
||||
difficulty = "hard";
|
||||
enable-rcon = false;
|
||||
enforce-secure-profile = false;
|
||||
enforce-whitelist = true;
|
||||
hide-online-players = true;
|
||||
motd = "NixOS server";
|
||||
online-mode = true;
|
||||
pvp = true;
|
||||
server-port = 13914;
|
||||
spawn-protection = 0;
|
||||
white-list = true;
|
||||
environmentFile = config.sops.templates."minecraft.env".path;
|
||||
managementSystem = {
|
||||
tmux.enable = false;
|
||||
systemd-socket.enable = true;
|
||||
};
|
||||
servers.fabric_prod = {
|
||||
enable = true;
|
||||
package = pkgs.fabricServers.fabric-1_21_6;
|
||||
enableReload = true;
|
||||
autoStart = false;
|
||||
jvmOpts =
|
||||
"-Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true";
|
||||
serverProperties = {
|
||||
difficulty = "hard";
|
||||
enable-rcon = true;
|
||||
enable-query = false;
|
||||
enforce-secure-profile = false;
|
||||
enforce-whitelist = true;
|
||||
hide-online-players = true;
|
||||
max-players = 10;
|
||||
motd = "${
|
||||
packageNameToHumanString
|
||||
config.services.minecraft-servers.servers.fabric_prod.package.name
|
||||
} on ${config.networking.hostName}";
|
||||
online-mode = true;
|
||||
pause-when-empty-seconds = 60;
|
||||
pvp = true;
|
||||
"rcon.password" = "@MINECRAFT_RCON_PASSWORD@";
|
||||
server-port = ports.tcp.minecraft;
|
||||
simulation-distance = 10;
|
||||
spawn-protection = 0;
|
||||
view-distance = 10;
|
||||
white-list = true;
|
||||
};
|
||||
symlinks = {
|
||||
"server-icon.png" = serverIcon;
|
||||
"mods/Fabric-API.jar" = pkgs.fetchurl {
|
||||
url =
|
||||
"https://cdn.modrinth.com/data/P7dR8mSH/versions/b2dnY6PN/fabric-api-0.128.0%2B1.21.6.jar";
|
||||
sha512 =
|
||||
"c668402e1a877c2d572d16e31e6d2783be27a80993fa83bf040ea2007994518786bd3140dcea15334f8ee1630836292b8ae4d41444e47cba0ac43d05f1eb1e78";
|
||||
};
|
||||
"mods/Ferrite-Core.jar" = pkgs.fetchurl {
|
||||
url =
|
||||
"https://cdn.modrinth.com/data/uXXizFIs/versions/CtMpt7Jr/ferritecore-8.0.0-fabric.jar";
|
||||
sha512 =
|
||||
"131b82d1d366f0966435bfcb38c362d604d68ecf30c106d31a6261bfc868ca3a82425bb3faebaa2e5ea17d8eed5c92843810eb2df4790f2f8b1e6c1bdc9b7745";
|
||||
};
|
||||
"mods/Lithium.jar" = pkgs.fetchurl {
|
||||
url =
|
||||
"https://cdn.modrinth.com/data/gvQqBUqZ/versions/XWGBHYcB/lithium-fabric-0.17.0%2Bmc1.21.6.jar";
|
||||
sha512 =
|
||||
"a8d6a8b69ae2b10dd0cf8f8149260d5bdbd2583147462bad03380014edd857852972b967d97df69728333d8836b1e9db8997712ea26365ddb8a05b8c845c6534";
|
||||
};
|
||||
"mods/Krypton.jar" = pkgs.fetchurl {
|
||||
url =
|
||||
"https://cdn.modrinth.com/data/fQEb0iXm/versions/neW85eWt/krypton-0.2.9.jar";
|
||||
sha512 =
|
||||
"2e2304b1b17ecf95783aee92e26e54c9bfad325c7dfcd14deebf9891266eb2933db00ff77885caa083faa96f09c551eb56f93cf73b357789cb31edad4939ffeb";
|
||||
};
|
||||
"mods/spark.jar" = pkgs.fetchurl {
|
||||
url =
|
||||
"https://cdn.modrinth.com/data/l6YH9Als/versions/qW2mPW6y/spark-1.10.139-fabric.jar";
|
||||
sha512 =
|
||||
"cd991acee93c074912f2934b5a9c3967be2f1e9157ca5a7254fd3fce8d280c5aa9a3ab06d3ee19f06c5111181853cf12048d000bf8b9f722c902c080fe258a97";
|
||||
};
|
||||
};
|
||||
files = {
|
||||
"ops.json".value = playersToOps (with players; [ engullejamones ]);
|
||||
"whitelist.json".value = with players; [ engullejamones dankoszz ];
|
||||
};
|
||||
};
|
||||
dataDir = "/minecraft";
|
||||
};
|
||||
# Overriden to have a non-declarative whitelist
|
||||
systemd.services.minecraft-server.preStart = lib.mkForce ''
|
||||
ln -sf ${eulaFile} eula.txt
|
||||
cp -f ${bukkitConfigFile} bukkit.yml
|
||||
chmod +w bukkit.yml
|
||||
cp -f ${spigotConfigFile} spigot.yml
|
||||
chmod +w spigot.yml
|
||||
cp -f ${opsFile} ops.json
|
||||
chmod +w ops.json
|
||||
ln -sf ${serverIcon} server-icon.png
|
||||
if [ -e .declarative ]; then
|
||||
# Was declarative before, no need to back up anything
|
||||
cp -f ${serverPropertiesFile} server.properties
|
||||
else
|
||||
# Declarative for the first time, backup stateful files
|
||||
cp -b --suffix=.stateful ${serverPropertiesFile} server.properties
|
||||
|
||||
# server.properties must have write permissions, because every time
|
||||
# the server starts it first parses the file and then regenerates it..
|
||||
chmod +w server.properties
|
||||
echo "Autogenerated file that signifies that this server configuration is managed declaratively by NixOS" \
|
||||
> .declarative
|
||||
fi
|
||||
'';
|
||||
sops = {
|
||||
secrets."minecraft_rcon".owner = "minecraft";
|
||||
templates."minecraft.env" = {
|
||||
content = ''
|
||||
MINECRAFT_RCON_PASSWORD=${config.sops.placeholder."minecraft_rcon"}
|
||||
'';
|
||||
owner = "minecraft";
|
||||
};
|
||||
};
|
||||
users.groups.minecraft.members = [ "avery" ];
|
||||
}
|
||||
|
|
|
|||
11
hosts/greatyamada/services/minecraft/players.nix
Normal file
11
hosts/greatyamada/services/minecraft/players.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
builtins.listToAttrs (map (player: {
|
||||
name = builtins.elemAt player 0;
|
||||
value = {
|
||||
name = builtins.elemAt player 0;
|
||||
uuid = builtins.elemAt player 1;
|
||||
};
|
||||
}) [
|
||||
|
||||
[ "engullejamones" "b65a1bc3-c6a0-4e8c-99b8-3538cfec0cfc" ]
|
||||
[ "dankoszz" "87b47db0-4dd3-469c-8dfd-c21095dadd93" ]
|
||||
])
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
# Managed by NixOS configuration
|
||||
config-version: 12
|
||||
settings:
|
||||
debug: false
|
||||
bungeecord: false
|
||||
sample-count: 12
|
||||
player-shuffle: 0
|
||||
user-cache-size: 1000
|
||||
save-user-cache-on-stop-only: false
|
||||
moved-wrongly-threshold: 0.0625
|
||||
moved-too-quickly-multiplier: 10.0
|
||||
timeout-time: 60
|
||||
restart-on-crash: false
|
||||
restart-script: ./start.sh
|
||||
netty-threads: 4
|
||||
log-villager-deaths: true
|
||||
log-named-deaths: true
|
||||
attribute:
|
||||
maxHealth:
|
||||
max: 2048.0
|
||||
movementSpeed:
|
||||
max: 2048.0
|
||||
attackDamage:
|
||||
max: 2048.0
|
||||
messages:
|
||||
whitelist: No estas en la whitelist
|
||||
unknown-command:
|
||||
Comando desconocido. Escribe "/help" para ver una lista con todos
|
||||
los comandos.
|
||||
server-full: El servidor esta lleno
|
||||
outdated-client: Tu cliente de Minecraft está desactualizado, actualiza a la version {0}
|
||||
outdated-server: El servidor está desactualizado, utiliza la version {0}
|
||||
restart: El servidor se esta reiniciando
|
||||
advancements:
|
||||
disable-saving: false
|
||||
disabled:
|
||||
- minecraft:story/disabled
|
||||
commands:
|
||||
replace-commands:
|
||||
- setblock
|
||||
- summon
|
||||
- testforblock
|
||||
- tellraw
|
||||
log: true
|
||||
tab-complete: 0
|
||||
send-namespaced: true
|
||||
spam-exclusions:
|
||||
- /skill
|
||||
silent-commandblock-console: false
|
||||
players:
|
||||
disable-saving: false
|
||||
stats:
|
||||
disable-saving: false
|
||||
forced-stats: {}
|
||||
world-settings:
|
||||
default:
|
||||
seed-ancientcity: 20083232
|
||||
seed-buriedtreasure: 10387320
|
||||
seed-mineshaft: default
|
||||
below-zero-generation-in-existing-chunks: true
|
||||
simulation-distance: default
|
||||
hopper-can-load-chunks: false
|
||||
seed-nether: 30084232
|
||||
seed-stronghold: default
|
||||
thunder-chance: 100000
|
||||
verbose: false
|
||||
hopper-amount: 1
|
||||
dragon-death-sound-radius: 0
|
||||
seed-village: 10387312
|
||||
seed-desert: 14357617
|
||||
seed-igloo: 14357618
|
||||
seed-jungle: 14357619
|
||||
seed-swamp: 14357620
|
||||
seed-monument: 10387313
|
||||
seed-shipwreck: 165745295
|
||||
seed-ocean: 14357621
|
||||
seed-outpost: 165745296
|
||||
seed-endcity: 10387313
|
||||
seed-slime: 987234911
|
||||
seed-bastion: 30084232
|
||||
seed-fortress: 30084232
|
||||
seed-mansion: 10387319
|
||||
seed-fossil: 14357921
|
||||
seed-portal: 34222645
|
||||
max-tnt-per-tick: 100
|
||||
hanging-tick-frequency: 100
|
||||
zombie-aggressive-towards-villager: true
|
||||
enable-zombie-pigmen-portal-spawns: true
|
||||
item-despawn-rate: 6000
|
||||
view-distance: default
|
||||
arrow-despawn-rate: 1200
|
||||
trident-despawn-rate: 1200
|
||||
wither-spawn-sound-radius: 0
|
||||
mob-spawn-range: 8
|
||||
end-portal-sound-radius: 0
|
||||
nerf-spawner-mobs: false
|
||||
max-entity-collisions: 8
|
||||
growth:
|
||||
twistingvines-modifier: 100
|
||||
weepingvines-modifier: 100
|
||||
cavevines-modifier: 100
|
||||
glowberry-modifier: 100
|
||||
cactus-modifier: 100
|
||||
cane-modifier: 100
|
||||
melon-modifier: 100
|
||||
mushroom-modifier: 100
|
||||
pumpkin-modifier: 100
|
||||
sapling-modifier: 100
|
||||
beetroot-modifier: 100
|
||||
carrot-modifier: 100
|
||||
potato-modifier: 100
|
||||
wheat-modifier: 100
|
||||
netherwart-modifier: 100
|
||||
vine-modifier: 100
|
||||
cocoa-modifier: 100
|
||||
bamboo-modifier: 100
|
||||
sweetberry-modifier: 100
|
||||
kelp-modifier: 100
|
||||
entity-activation-range:
|
||||
ignore-spectators: false
|
||||
animals: 32
|
||||
monsters: 32
|
||||
raiders: 48
|
||||
misc: 16
|
||||
water: 16
|
||||
villagers: 32
|
||||
flying-monsters: 32
|
||||
villagers-work-immunity-after: 100
|
||||
villagers-work-immunity-for: 20
|
||||
villagers-active-for-panic: true
|
||||
tick-inactive-villagers: true
|
||||
wake-up-inactive:
|
||||
animals-max-per-tick: 4
|
||||
animals-every: 1200
|
||||
animals-for: 100
|
||||
monsters-max-per-tick: 8
|
||||
monsters-every: 400
|
||||
monsters-for: 100
|
||||
villagers-max-per-tick: 4
|
||||
villagers-every: 600
|
||||
villagers-for: 100
|
||||
flying-monsters-max-per-tick: 8
|
||||
flying-monsters-every: 200
|
||||
flying-monsters-for: 100
|
||||
ticks-per:
|
||||
hopper-transfer: 8
|
||||
hopper-check: 1
|
||||
hunger:
|
||||
jump-walk-exhaustion: 0.05
|
||||
jump-sprint-exhaustion: 0.2
|
||||
combat-exhaustion: 0.1
|
||||
regen-exhaustion: 6.0
|
||||
swim-multiplier: 0.01
|
||||
sprint-multiplier: 0.1
|
||||
other-multiplier: 0.0
|
||||
max-tick-time:
|
||||
tile: 50
|
||||
entity: 50
|
||||
squid-spawn-range:
|
||||
min: 45.0
|
||||
merge-radius:
|
||||
exp: 3.0
|
||||
item: 2.5
|
||||
entity-tracking-range:
|
||||
players: 48
|
||||
animals: 48
|
||||
monsters: 48
|
||||
misc: 32
|
||||
other: 64
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
networking.hostName = "mizuki";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
./gtk.nix
|
||||
./hypr
|
||||
./kitty.nix
|
||||
./sway.nix
|
||||
./qt.nix
|
||||
];
|
||||
dconf.settings = {
|
||||
|
|
|
|||
|
|
@ -1,131 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
let cfg = config.wayland.windowManager.sway.config;
|
||||
in {
|
||||
home.packages = with pkgs; [ autotiling ];
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
checkConfig = false; # checkConfig crashes with swayfx on activation
|
||||
config = {
|
||||
bars = [ ];
|
||||
input = {
|
||||
"type:keyboard" = {
|
||||
xkb_layout = "es";
|
||||
xkb_variant = "dvorak";
|
||||
xkb_options = "lv5:caps_switch";
|
||||
};
|
||||
"type:pointer" = {
|
||||
"accel_profile" = "flat";
|
||||
"pointer_accel" = "-0.4";
|
||||
};
|
||||
};
|
||||
focus.followMouse = "always";
|
||||
floating.titlebar = false;
|
||||
gaps = {
|
||||
inner = 4;
|
||||
smartBorders = "off";
|
||||
smartGaps = false;
|
||||
};
|
||||
keybindings = let
|
||||
Super = "Mod4";
|
||||
Hyper = "Mod3";
|
||||
in {
|
||||
"Ctrl+Alt+T" = "exec ${cfg.terminal}";
|
||||
"${Super}+Space" = "exec ags -t launcher";
|
||||
"${Super}+C" = "exec ags -t bar_extended";
|
||||
"${Hyper}+C" = "exec ags -t popup_clock";
|
||||
# Workspace management
|
||||
"${Super}+1" = "workspace number 1";
|
||||
"${Super}+2" = "workspace number 2";
|
||||
"${Super}+3" = "workspace number 3";
|
||||
"${Super}+4" = "workspace number 4";
|
||||
"${Super}+5" = "workspace number 5";
|
||||
"${Super}+6" = "workspace number 6";
|
||||
"${Super}+7" = "workspace number 7";
|
||||
"${Super}+8" = "workspace number 8";
|
||||
"${Super}+9" = "workspace number 9";
|
||||
"${Super}+0" = "workspace number 10";
|
||||
"${Super}+Shift+1" = "move container to workspace number 1";
|
||||
"${Super}+Shift+2" = "move container to workspace number 2";
|
||||
"${Super}+Shift+3" = "move container to workspace number 3";
|
||||
"${Super}+Shift+4" = "move container to workspace number 4";
|
||||
"${Super}+Shift+5" = "move container to workspace number 5";
|
||||
"${Super}+Shift+6" = "move container to workspace number 6";
|
||||
"${Super}+Shift+7" = "move container to workspace number 7";
|
||||
"${Super}+Shift+8" = "move container to workspace number 8";
|
||||
"${Super}+Shift+9" = "move container to workspace number 9";
|
||||
"${Super}+Shift+0" = "move container to workspace number 10";
|
||||
# Window management
|
||||
"${Super}+W" = "kill";
|
||||
"${Super}+E" = "exec pcmanfm-qt";
|
||||
"${Super}+${cfg.left}" = "focus left";
|
||||
"${Super}+${cfg.right}" = "focus right";
|
||||
"${Super}+${cfg.up}" = "focus up";
|
||||
"${Super}+${cfg.down}" = "focus down";
|
||||
"${Super}+Shift+${cfg.left}" = "move left";
|
||||
"${Super}+Shift+${cfg.right}" = "move right";
|
||||
"${Super}+Shift+${cfg.up}" = "move up";
|
||||
"${Super}+Shift+${cfg.down}" = "move down";
|
||||
"${Super}+F11" = "fullscreen toggle";
|
||||
# Modes
|
||||
"${Hyper}+W" = "mode wallpaper";
|
||||
"${Hyper}+M" = "mode music";
|
||||
"${Hyper}+R" = "mode resize";
|
||||
# Speaker volume
|
||||
"XF86AudioRaiseVolume" = "exec volumectl output +5";
|
||||
"XF86AudioLowerVolume" = "exec volumectl output -5";
|
||||
# Microphone volume
|
||||
"Shift+XF86AudioRaiseVolume" = "exec volumectl input +5";
|
||||
"Shift+XF86AudioLowerVolume" = "exec volumectl input -5";
|
||||
# Brightness
|
||||
"Alt+XF86AudioRaiseVolume" = "exec ddc-brightness +5";
|
||||
"Alt+XF86AudioLowerVolume" = "exec ddc-brightness -5";
|
||||
# Screenshots
|
||||
"${Super}+S" = "exec screenshot full";
|
||||
"${Super}+Shift+S" = "exec screenshot section";
|
||||
};
|
||||
modes = {
|
||||
music = {
|
||||
p = "exec playerctl play-pause";
|
||||
h = "exec playerctl previous";
|
||||
l = "exec playerctl next";
|
||||
Escape = "mode default";
|
||||
};
|
||||
resize = {
|
||||
"${cfg.left}" = "resize shrink width 10px";
|
||||
"${cfg.right}" = "resize grow width 10px";
|
||||
"${cfg.up}" = "resize shrink height 10px";
|
||||
"${cfg.down}" = "resize grow height 10px";
|
||||
Escape = "mode default";
|
||||
};
|
||||
wallpaper = {
|
||||
l = "exec change-wallpaper next";
|
||||
h = "exec change-wallpaper previous";
|
||||
Escape = "mode default";
|
||||
};
|
||||
};
|
||||
output.DP-1.resolution = "2560x1440@165Hz";
|
||||
seat."*".xcursor_theme = "phinger-cursors-dark 32";
|
||||
startup = [
|
||||
{ command = "swww-daemon"; }
|
||||
{ command = "autotiling"; }
|
||||
{ command = "ags"; }
|
||||
{ command = "lxqt-policykit-agent"; }
|
||||
];
|
||||
terminal = "kitty";
|
||||
};
|
||||
extraConfig = ''
|
||||
# SwayFX configuration
|
||||
blur enable
|
||||
blur_radius 4
|
||||
blur_passes 3
|
||||
corner_radius 8
|
||||
default_dim_inactive 0.4
|
||||
default_border none
|
||||
layer_effects bar blur enable; blur_ignore_transparent enable
|
||||
layer_effects bar_extended blur enable; blur_ignore_transparent enable
|
||||
layer_effects bar_extended blur enable; blur_ignore_transparent enable
|
||||
layer_effects launcher blur enable; blur_ignore_transparent enable
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -1,14 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
android-studio
|
||||
android-tools
|
||||
dotnet-sdk_8
|
||||
mitmproxy
|
||||
python3
|
||||
unityhub
|
||||
xh
|
||||
];
|
||||
packages = with pkgs; [ android-tools mitmproxy python3 xh ];
|
||||
sessionVariables = { DOTNET_ROOT = "${pkgs.dotnet-sdk_8}"; };
|
||||
sessionPath = [ "$HOME/.dotnet/tools" ];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue