This commit is contained in:
Sebastian Moser
2025-04-22 22:59:04 +02:00
parent 12fcb7050a
commit a4e3c42595
21 changed files with 544 additions and 59 deletions

View File

@@ -82,6 +82,9 @@
patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ]; patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ];
})) }))
hyprpicker
satty
nwg-displays
waybar waybar
/* /*
(waybar.overrideAttrs (prev: { (waybar.overrideAttrs (prev: {
@@ -191,6 +194,37 @@
### Output configuration ### Output configuration
output * scale 1 bg #121212 solid_color output * scale 1 bg #121212 solid_color
output "HEADLESS-1" {
mode 1920x1080@1.0Hz
pos 5760 532
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "eDP-1" {
mode 1920x1080@60.001Hz
pos 0 884
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" {
mode 3840x2160@59.997Hz
pos 1920 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
workspace 5 output eDP-1
workspace 0 output HEADLESS-1
### Input configuration ### Input configuration
input type:keyboard { input type:keyboard {
xkb_layout de,de xkb_layout de,de
@@ -319,8 +353,8 @@
bindsym $mod+Shift+Up move up bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right bindsym $mod+Shift+Right move right
bindsym $mod+u workspace prev #bindsym $mod+u workspace prev
bindsym $mod+i workspace next #bindsym $mod+i workspace next
# Workspaces: # Workspaces:
bindsym $mod+1 workspace number 1 bindsym $mod+1 workspace number 1
@@ -459,8 +493,6 @@
"cpu" "cpu"
"temperature" "temperature"
"battery" "battery"
"power-profiles-daemon"
"custom/power-usage"
"disk" "disk"
]; ];

55
flake.lock generated
View File

@@ -1276,6 +1276,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_24": {
"inputs": {
"systems": "systems_18"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_2"
@@ -3667,6 +3685,7 @@
"robotnix": "robotnix", "robotnix": "robotnix",
"systems": "systems_5", "systems": "systems_5",
"victorinix": "victorinix", "victorinix": "victorinix",
"vscode-server": "vscode-server",
"waveforms": "waveforms", "waveforms": "waveforms",
"zephyr-nix": "zephyr-nix", "zephyr-nix": "zephyr-nix",
"zmk-nix": "zmk-nix" "zmk-nix": "zmk-nix"
@@ -3920,6 +3939,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_18": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": { "systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -4158,6 +4192,27 @@
"type": "github" "type": "github"
} }
}, },
"vscode-server": {
"inputs": {
"flake-utils": "flake-utils_24",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1729422940,
"narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=",
"owner": "nix-community",
"repo": "nixos-vscode-server",
"rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-vscode-server",
"type": "github"
}
},
"waveforms": { "waveforms": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [

View File

@@ -88,6 +88,11 @@
url = "github:liff/waveforms-flake"; url = "github:liff/waveforms-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
vscode-server = {
url = "github:nix-community/nixos-vscode-server";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, flake-utils, systems, ... }@inputs: outputs = { self, nixpkgs, nixpkgs-unstable, nixos-generators, flake-utils, systems, ... }@inputs:
@@ -114,6 +119,7 @@
#}) #})
#]; #];
}; };
mypkgs = import nixpkgs { mypkgs = import nixpkgs {
system = "x86_64-linux"; system = "x86_64-linux";
config = { config = {
@@ -129,8 +135,15 @@
]; ];
}; };
pkgsUnstable = import nixpkgs-unstable {
system = "x86_64-linux";
config = {
allowUnfree = true;
};
};
specialArgs = { specialArgs = {
inherit inputs confDir workDir secretsDir persistentDir self tunepkgs unstable nur; inherit inputs confDir workDir secretsDir persistentDir self tunepkgs unstable nur pkgsUnstable;
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = mypkgs; pkgs = mypkgs;
}; };
@@ -243,7 +256,7 @@
img = builtins.mapAttrs (name: value: img = builtins.mapAttrs (name: value:
# build tarball for wsl systems and sdImage for others..... # build tarball for wsl systems and sdImage for others.....
if value.config.wsl.enable then value.config.system.build.tarballBuilder else value.config.system.build.sdImage if builtins.hasAttr "wsl" value.config && value.config.wsl.enable then value.config.system.build.tarballBuilder else value.config.system.build.sdImage
) (self.nixOnDroidConfigurations // self.nixosConfigurations); ) (self.nixOnDroidConfigurations // self.nixosConfigurations);
# this is my nur repo, that you can import and call with pkgs # this is my nur repo, that you can import and call with pkgs
@@ -375,7 +388,6 @@
specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; }; specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self system; };
modules = [ modules = [
./hosts/lush.nix ./hosts/lush.nix
]; ];
}; };

View File

@@ -12,6 +12,8 @@
programs.bash.loginShellInit = ""; programs.bash.loginShellInit = "";
virtualisation.docker.enable = true;
users.users.me.extraGroups = [ "docker" ];
# to build rpi images # to build rpi images
boot.binfmt.emulatedSystems = [ boot.binfmt.emulatedSystems = [

View File

@@ -61,6 +61,8 @@
qemuSwtpm = true; qemuSwtpm = true;
#qemuOvmfPackage = pkgs.OVMFFull; #qemuOvmfPackage = pkgs.OVMFFull;
}; };
virtualisation.docker.enable = true;
users.users.server.extraGroups = [ "docker" ];
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
boot.loader.grub = { boot.loader.grub = {
@@ -119,6 +121,15 @@
49391 49391
49392 49392
49393 49393
];
networking.firewall.allowedTCPPortRanges = [
{ from = 25500; to = 27777;} # minecraft
];
networking.firewall.allowedUDPPortRanges = [
{ from = 27700; to = 28800;} # minecraft
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
@@ -313,6 +324,7 @@
"recycle:touch_mtime" = "Yes"; "recycle:touch_mtime" = "Yes";
"recycle:maxsize" = "8000"; "recycle:maxsize" = "8000";
}; };
mama = { mama = {
"comment" = "Meine Dateien auf Mamas Laptop"; "comment" = "Meine Dateien auf Mamas Laptop";
"path" = "/home/files/storage/files/stuff/Mamas-Laptop"; "path" = "/home/files/storage/files/stuff/Mamas-Laptop";

View File

@@ -1,4 +1,4 @@
{ lib, pkgs, inputs, secretsDir, workDir, ... }: { lib, pkgs, inputs, secretsDir, config, ... }:
{ {
#system.stateVersion = "23.05"; # Did you read the comment? #system.stateVersion = "23.05"; # Did you read the comment?
@@ -32,7 +32,13 @@
}; };
}; };
boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ]; # get usbip working
boot.extraModulePackages = [
config.boot.kernelPackages.usbip
];
boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ];
# hardware.bluetooth.enable = true; # hardware.bluetooth.enable = true;
@@ -62,9 +68,6 @@
services.blueman.enable = true; services.blueman.enable = true;
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
# This causes an overlay which causes a lot of rebuilding
environment.noXlibs = lib.mkForce false;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim vim
@@ -75,8 +78,9 @@
# "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" creates a # "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" creates a
# disk with this label on first boot. Therefore, we need to keep it. It is the # disk with this label on first boot. Therefore, we need to keep it. It is the
# only information from the installer image that we need to keep persistent # only information from the installer image that we need to keep persistent
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-label/NIXOS_SD"; device = "/dev/disk/by-label/NIXOS_SD";
noCheck = true;
fsType = "ext4"; fsType = "ext4";
}; };
@@ -115,6 +119,7 @@
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
8888 # general use 8888 # general use
9999 # general use 9999 # general use
3240 # usbip
]; ];
networking.hostName = "lush"; networking.hostName = "lush";
@@ -122,23 +127,6 @@
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.networkmanager.profiles = { networking.networkmanager.profiles = {
home = {
connection = {
id = "main";
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
type = "ethernet";
autoconnect-priority = "-999";
interface-name = "eth0";
autoconnect = true;
};
ipv4 = {
address1 = "192.168.1.44/24,192.168.1.1";
dns = "1.1.1.1;";
method = "manual";
};
};
pw = { pw = {
connection = { connection = {
id = "pw"; id = "pw";
@@ -198,7 +186,7 @@
id = "dhcp"; id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = "false"; autoconnect = "true";
interface-name = "end0"; interface-name = "end0";
}; };
@@ -207,6 +195,7 @@
}; };
ipv4 = { ipv4 = {
address1 = "192.168.1.44/24,192.168.1.1";
method = "auto"; method = "auto";
}; };
}; };

View File

@@ -1,4 +1,4 @@
{ pkgs, inputs, ... }: let { secretsDir, pkgs, inputs, ... }: let
myobs = pkgs.wrapOBS { myobs = pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
@@ -16,13 +16,13 @@ in {
../common/building.nix ../common/building.nix
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.networkmanager.nixosModules.networkmanager
../users/me/headless.nix ../users/me/headless.nix
../users/root/default.nix ../users/root/default.nix
]; ];
networking.hostName = "mac"; networking.hostName = "mac";
networking.firewall.enable = false; networking.firewall.enable = false;
networking.useDHCP = true;
services.avahi = { services.avahi = {
enable = true; enable = true;
nssmdns = true; nssmdns = true;
@@ -35,6 +35,30 @@ in {
workstation = true; workstation = true;
}; };
}; };
networking.firewall.allowedTCPPorts = [
8888 # for general usage
9999 # for general usage
6000 # Xserver
5900 # vnc for win VM
5901 # vnc
5902 # vnc
4400 # rdp win VM
];
boot.kernelModules = [ "usbip_core" ];
boot.extraModprobeConfig = "options kvm_intel nested=1";
# to build rpi images
boot.binfmt.emulatedSystems = [
"aarch64-linux"
];
virtualisation.libvirtd = {
enable = true;
qemuOvmf = true;
qemuSwtpm = true;
#qemuOvmfPackage = pkgs.OVMFFull;
};
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
boot.loader.grub = { boot.loader.grub = {
@@ -48,6 +72,7 @@ in {
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
passt
mount mount
pkgs.hicolor-icon-theme pkgs.hicolor-icon-theme
efibootmgr efibootmgr
@@ -154,4 +179,112 @@ in {
systemd.defaultUnit = "graphical.target"; systemd.defaultUnit = "graphical.target";
############################# networkmanager
networking.networkmanager.enable = true;
networking.networkmanager.profiles = {
home = {
connection = {
id = "home";
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
type = "ethernet";
autoconnect-priority = "-999";
interface-name = "enp2s0";
};
ipv4 = {
address1 = "192.168.1.33/24,192.168.1.1";
dns = "1.1.1.1;";
method = "manual";
};
};
pw = {
connection = {
id = "pw";
uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c";
type = "wifi";
interface-name = "wlp3s0";
};
wifi = {
hidden = "true";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/wifi-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/wifi-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hot = {
connection = {
id = "hot";
uuid = "ab51de8a-9742-465a-928b-be54a83ab6a3";
type = "wifi";
autoconnect = false;
interface-name = "wlp3s0";
};
wifi = {
mac-address = "0C:96:E6:E3:64:03";
mode = "ap";
ssid = "c2vi-mac";
};
ipv4 = {
method = "shared";
};
};
share = {
connection = {
id = "share";
uuid = "f55f34e3-4595-4642-b1f6-df3185bc0a04";
type = "ethernet";
autoconnect = false;
interface-name = "enp2s0";
};
ethernet = {
mac-address = "C8:2A:14:0B:7F:3D";
};
ipv4 = {
address1 = "192.168.4.1/24";
method = "shared";
};
ipv6 = {
addr-gen-mode = "stable-privacy";
method = "auto";
};
};
dhcp = {
connection = {
id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet";
autoconnect = "false";
interface-name = "enp2s0";
};
ethernet = {
mac-address = "C8:2A:14:0B:7F:3D";
};
ipv4 = {
method = "auto";
};
};
};
} }

View File

@@ -1,5 +1,5 @@
{ pkgs, lib, workDir, self, secretsDir, config, inputs, system, ... }: { pkgs, lib, workDir, self, secretsDir, config, inputs, system, pkgsUnstable, ... }:
{ {
# https://bugzilla.kernel.org/show_bug.cgi?id=110941 # https://bugzilla.kernel.org/show_bug.cgi?id=110941
@@ -38,6 +38,7 @@
services.sunshine = { services.sunshine = {
/*
package = pkgs.sunshine.overrideAttrs { package = pkgs.sunshine.overrideAttrs {
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "garnacho"; owner = "garnacho";
@@ -46,6 +47,32 @@
hash = "sha256-To1vhNQxjIa5Hc+z2xo+ODSQyIH6cnI3A7Ofc7MDL60="; hash = "sha256-To1vhNQxjIa5Hc+z2xo+ODSQyIH6cnI3A7Ofc7MDL60=";
}; };
}; };
*/
package = pkgsUnstable.sunshine.overrideAttrs (prev: {
patches = prev.patches or [] ++ [
#(pkgs.fetchpatch {
#url = "https://github.com/LizardByte/Sunshine/pull/2507.patch";
#hash = "sha256-DdyiR7djH4GF1bcQP/a20BYpTBvrAzd0UxJ0o0nC4rU=";
#})
];
buildInputs = prev.buildInputs or [] ++ [
pkgsUnstable.pipewire
pkgsUnstable.xdg-desktop-portal
];
cmakeFlage = prev.cmakeFlags or [] ++ [
(lib.cmakeBool "SUNSHINE_ENABLE_PORTAL" true)
];
src = pkgs.fetchFromGitHub {
owner = "c2vi";
repo = "Sunshine";
rev = "2671cd374dc5d12d402de572d170c9dfee8c5d7b";
hash = "sha256-7IOMXmvl7/WYF6ktSUrLZjq+Lnq9YpSqUsj0FVtG8tI=";
fetchSubmodules = true;
};
});
enable = true; enable = true;
autoStart = true; autoStart = true;
capSysAdmin = true; capSysAdmin = true;
@@ -55,6 +82,9 @@
hardware.graphics.extraPackages = with pkgs; [
intel-media-driver intel-ocl intel-vaapi-driver intel-compute-runtime-legacy1
];
@@ -78,7 +108,6 @@
services.nscd.enable = lib.mkForce false; services.nscd.enable = lib.mkForce false;
virtualisation.docker.enable = true;
system.nssModules = lib.mkForce []; system.nssModules = lib.mkForce [];
@@ -149,6 +178,11 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
inputs.waveforms.packages.${system}.waveforms inputs.waveforms.packages.${system}.waveforms
intel-compute-runtime-legacy1
ffmpeg-full
remmina
vesktop
prismlauncher
# add pyclip for waydroid # add pyclip for waydroid
python310Packages.pyclip python310Packages.pyclip
@@ -164,6 +198,11 @@
]; ];
}) })
(writeShellScriptBin "davinci" ''
NIXPKGS_ALLOW_UNFREE=1 OCL_ICD_ENABLE_TRACE=True QT_QPA_PLATFORM=xcb nix run nixpkgs#davinci-resolve --impure -L
'')
# waveforms # waveforms
# my keyboar flash script, that opens as an alacritty window # my keyboar flash script, that opens as an alacritty window
@@ -185,8 +224,6 @@
# shedule nix builds with low priority, so the laptop is still usable while building something # shedule nix builds with low priority, so the laptop is still usable while building something
nix.daemonCPUSchedPolicy = "idle"; nix.daemonCPUSchedPolicy = "idle";
nix.daemonIONiceLevel = 7; nix.daemonIONiceLevel = 7;
systemd.services.nix-daemon.serviceConfig.Nice = 9; systemd.services.nix-daemon.serviceConfig.Nice = 9;
# enable ntp # enable ntp
@@ -322,6 +359,7 @@
8080 # for mitm proxy 8080 # for mitm proxy
51820 # wireguard 51820 # wireguard
6000 # Xserver 6000 # Xserver
10000 # tailscale tcp funnel
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [

View File

@@ -33,6 +33,10 @@
8888 # general use 8888 # general use
9999 # general use 9999 # general use
25565 # minecraft 25565 # minecraft
29901
29902
29903
29904
]; ];

View File

@@ -2,8 +2,6 @@
127.0.0.1 www.youtube.com 127.0.0.1 www.youtube.com
192.168.122.194 uwu 192.168.122.194 uwu
192.168.122.126 lako 192.168.122.126 lako
::1 www.youtube.com
::1 youtube.com
::1 localhost
127.0.0.1 localhost 127.0.0.1 localhost
100.70.54.18 obsidian.c2vi.dev 100.70.54.18 obsidian.c2vi.dev
192.168.1.2 mc.c2vi.dev

View File

@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "resurrecting-open-source-projects"; owner = "resurrecting-open-source-projects";
repo = "cbm"; repo = "cbm";
rev = "master"; rev = "b6bc84bd9702d711466348a7af5c25d4c4f0bbf5";
sha256 = "sha256-Ubm8jky8nbJZWVSlqipg22ZjlnsgdVmoQWxYi9cyags="; sha256 = "sha256-rL9ttGK4CIPFHXmNBgVq1QzLkMDGtgF+1eoCH1bwvG0=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@@ -0,0 +1,27 @@
{ lib
, python3Packages
}:
python3Packages.buildPythonApplication {
pname = "minecraft-server-whitelist-all-players";
version = "1.0";
pyproject = false;
propagatedBuildInputs = with python3Packages; [ requests ];
dontUnpack = true;
src = ./.;
meta = with lib; {
description = "A small python script to generate a whitelist.json from all players that ever joined the server.";
longDescription = ''
A small python script to generate a whitelist.json from the playerdata directory of a minecraft server. It adds all players that were ever on the server to this generated whitelist.json file.
You need to specify the playerdata directory containing all the players .dat files as the first argument to the script.
'';
homepage = "https://github.com/c2vi/nixos/tree/master/mods/nurPkgs";
license = licenses.gpl2Only;
#maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,55 @@
#!/usr/bin/env python3
import requests
import json
import argparse
import os
whiteListJson = []
parser = argparse.ArgumentParser(
prog='whitelist-all-players',
description='A small python script, which reads all .dat files in the playerdataDir and generates a whitelist.json in that directory.',
epilog='')
parser.add_argument('playerdataDir', default=os.getcwd(), nargs='?', help='the playerdataDir (in the folder of your minecraft server the path ./world/playerdata). This will be enumerated to get a list of player uuids. The default is the current workdin directory.')
args = parser.parse_args()
print("playerdataDir:", args.playerdataDir)
x = os.listdir(args.playerdataDir)
for i in x:
if i.endswith(".dat"):
#creating a blank set
whiteListEntry = {"uuid":"", "name":""}
#creating UUID string without the .dat extension
usrUUID = i[:-4]
print("processing uuid:", usrUUID)
#adding player UUID to entry
whiteListEntry["uuid"] = usrUUID
#taking the dashes out of the UUID to work with the API
trimmedUUID = usrUUID.replace("-", "")
#getting API response
response = requests.get(f"https://api.minecraftservices.com/minecraft/profile/lookup/" + trimmedUUID).json()
#adding player's current username to entry
try:
whiteListEntry["name"] = response["name"]
except:
print("uuid has no name...")
print(response)
continue
print("found name:", whiteListEntry["name"])
#adding entry to master JSON file
whiteListJson.append(whiteListEntry)
#creating a whitelist.json file
f = open("whitelist.json", 'w')
#converting master json to pretty print and then writing it to the file
f.write(json.dumps(whiteListJson, indent = 2, sort_keys=True))
#closing file
f.close()

View File

@@ -5,16 +5,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "vcs-cli-utils"; pname = "vcs-cli-utils";
version = "0.3.2"; version = "1.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "henkelmax"; owner = "henkelmax";
repo = "svc-cli-utils"; repo = "svc-cli-utils";
rev = "82e0af5b5e4cb0aa60bfeea4f9b1d3929fe4e1f8"; rev = "${version}";
sha256 = "sha256-ojuRqtUTNz/ZOuxx3ab1y9NknEfJNWPMXBf3kfIwfXM="; sha256 = "sha256-vRqYQd5OaYXAc74Jlg8twBGDr9YxP+Mk1ZY9JGJTmvc=";
}; };
cargoHash = "sha256-VvA7xlj7zcuHDNi4+TRSDheCchjpiK519OgNTJj2hPI="; cargoHash = "sha256-xz+pi6awwDeiISGqJs5DxqFdryc5mY8wMuds1ZXRr1Q=";
meta = with lib; { meta = with lib; {
description = "Command line utilities for the Simple Voice Chat Minecraft Mod"; description = "Command line utilities for the Simple Voice Chat Minecraft Mod";

View File

@@ -22,6 +22,46 @@ then
du -d 1 -h $2 | sort -h -r du -d 1 -h $2 | sort -h -r
elif [ "$1" == "davinci-resolve-convert-videos" ]
then
FFMPEG_ACCEL_ARGS="-hwaccel vaapi -hwaccel_device /dev/dri/renderD128"
KEEP=true
PRORES=$2
if [[ "$1" == "d" ]]
then
KEEP=false
fi
if [ -d "$PWD/vid" ];
then
cd vid
mkdir -p "$PWD/for-davinci"
files=()
for x in *.mp4; do
files+=("${x%%/*}")
done
for file in "${files[@]}"
do
echo "handling file: $file"
if [ -f "$PWD/for-davinci/${file%.*}$PRORES.mov" ]
then
rm "$PWD/for-davinci/${file%.*}$PRORES.mov"
fi
echo "PRORES: $PRORES"
[[ "$PRORES" != "-prores" ]] && ffmpeg $FFMPEG_ACCEL_ARGS -i "$PWD/$file" -c:v mpeg4 -c:a mp3 "${PWD}/for-davinci/${file%.*}.mov"
[[ "$PRORES" == "-prores" ]] && ffmpeg $FFMPEG_ACCEL_ARGS -i "$PWD/$file" -c:v prores_ks -c:a pcm_s16le "${PWD}/for-davinci/${file%.*}-prores.mov"
[[ "$KEEP" == "false" ]] && rm "$file"
done
fi
elif [ "$1" == "mnt-wechner" ] elif [ "$1" == "mnt-wechner" ]
then then
rclone mount --vfs-cache-mode full -vvvv onedrive-school:projekt-autobatterie ~/work/htl/projekt/wechner/mnt rclone mount --vfs-cache-mode full -vvvv onedrive-school:projekt-autobatterie ~/work/htl/projekt/wechner/mnt

View File

@@ -6,7 +6,7 @@
enableCompletion = true; enableCompletion = true;
historyFile = if hostname == "main" then "/home/$USER/work/app-data/${hostname}/bash-history" else "/home/$USER/host/bash-history"; historyFile = if hostname == "main" then "/home/$USER/work/app-data/${hostname}/bash-history" else "/home/$USER/host/bash-history";
historyFileSize = 100000; historyFileSize = 10000000;
historyControl = [ "ignoredups" ]; historyControl = [ "ignoredups" ];
historyIgnore = [ historyIgnore = [
"ls" "ls"
@@ -101,6 +101,8 @@
export nl="--log-format bar-with-logs" export nl="--log-format bar-with-logs"
export acern="ssh://acern x86_64-linux,aarch64-linux - 20 10 big-parallel - -" export acern="ssh://acern x86_64-linux,aarch64-linux - 20 10 big-parallel - -"
export mac="ssh://mac x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
export mosatop="ssh://mosatop x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
export hpm="ssh://hpm x86_64-linux,aarch64-linux - 8 5 big-parallel - -" export hpm="ssh://hpm x86_64-linux,aarch64-linux - 8 5 big-parallel - -"
# my prompt # my prompt
@@ -133,6 +135,14 @@
then then
xfreerdp /u:"seb" /v:acern /p:$(cat ${secretsDir}/acern-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows" xfreerdp /u:"seb" /v:acern /p:$(cat ${secretsDir}/acern-rdp-password) /dynamic-resolution +clipboard +auto-reconnect /wm-class:"Microsoft Windows"
elif [[ "$host" == "mwin" ]]
then
xfreerdp /u:"me" /v:mac:4400 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "win" ]]
then
xfreerdp /u:"me" /v:192.168.122.141 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
fi fi
} }
complete -W "mosatop acern" rp complete -W "mosatop acern" rp
@@ -280,9 +290,9 @@
sd() { sd() {
if [ "$1" == "" ] if [ "$1" == "" ]
then then
sudo $(history | tail -n 2 | head -n 1 | awk '{$1=""; print $0}') sudo -E $(history | tail -n 2 | head -n 1 | awk '{$1=""; print $0}')
else else
sudo $@ sudo -E $@
fi fi
} }
@@ -356,7 +366,7 @@
complete -W "start stop restart status daemon-reload" stl complete -W "start stop restart status daemon-reload" stl
# run # run
complete -W "mnt-wechner sync-school wstunnel hibernate p speed-test-nixos-iso speed-test-upload speed-test-download bat bstat mnt-files-local mnt-lan-local mnt-files-remote mnt-lan-remote suspend rm-tab-cur rm-last-char mnt-school mnt-host" ru complete -W "mnt-wechner sync-school wstunnel hibernate p speed-test-nixos-iso speed-test-upload speed-test-download bat bstat mnt-files-local mnt-lan-local mnt-files-remote mnt-lan-remote suspend rm-tab-cur rm-last-char mnt-school mnt-host davinci-resolve-convert-videos" ru
''; '';

View File

@@ -52,6 +52,10 @@
user = "me"; user = "me";
port = 2222; port = 2222;
}; };
mac = {
user = "me";
port = 22;
};
mosatop = { mosatop = {
user = "me"; user = "me";
port = 2222; port = 2222;
@@ -74,6 +78,12 @@
user = "me"; user = "me";
}; };
fusus = {
port = 49388;
hostname = "fusu";
user = "server";
};
ocih = { ocih = {
hostname = "152.67.70.13"; hostname = "152.67.70.13";
user = "ubuntu"; user = "ubuntu";

View File

@@ -1,8 +1,9 @@
{ mypkgs, specialArgs, nixos-generators, { mypkgs, specialArgs, nixos-generators,
system, inputs, nixpkgs, self, system, inputs, nixpkgs, self, nixpkgs-unstable,
... ...
}: let }: let
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
pkgsUnstable = import nixpkgs-unstable { inherit system; };
lib = pkgs.lib; lib = pkgs.lib;
in rec { in rec {
@@ -40,6 +41,44 @@ in rec {
}; };
resolve = pkgs.davinci-resolve.overrideAttrs (prev: {
extraBwrapArgs = prev.extraBwrapArgs or [] ++ [
"--bind /etc/OpenCL /etc/OpenCL"
];
});
tmp-resolve = pkgs.stdenv.mkDerivation {
name = "my-test-env";
nativeBuildInputs = with pkgs; [ intel-compute-runtime-legacy1 pkg-config ];
buildInputs = with pkgs; [ intel-compute-runtime-legacy1 ];
};
sunshine = pkgsUnstable.sunshine.overrideAttrs (prev: {
patches = prev.patches or [] ++ [
#(pkgs.fetchpatch {
#url = "https://github.com/LizardByte/Sunshine/pull/2507.patch";
#hash = "sha256-DdyiR7djH4GF1bcQP/a20BYpTBvrAzd0UxJ0o0nC4rU=";
#})
];
buildInputs = prev.buildInputs or [] ++ [
pkgsUnstable.pipewire
pkgsUnstable.xdg-desktop-portal
];
cmakeFlage = prev.cmakeFlags or [] ++ [
(lib.cmakeBool "SUNSHINE_ENABLE_PORTAL" true)
];
src = pkgs.fetchFromGitHub {
#owner = "LizardByte";
owner = "c2vi";
repo = "Sunshine";
rev = "2671cd374dc5d12d402de572d170c9dfee8c5d7b";
hash = "sha256-7IOMXmvl7/WYF6ktSUrLZjq+Lnq9YpSqUsj0FVtG8tI=";
fetchSubmodules = true;
};
});
####################################################################### #######################################################################
# make an iso # make an iso
#to build: nix build .#random.iso.config.system.build.isoImage #to build: nix build .#random.iso.config.system.build.isoImage

View File

@@ -52,7 +52,7 @@
zip zip
unzip unzip
arp-scan arp-scan
lolcat #lolcat
comma comma
delta delta
jq jq

View File

@@ -18,10 +18,23 @@
name = "Yaru"; name = "Yaru";
}; };
gtk = {
enable = true;
gtk3.extraConfig = {
# needed for Prusa Slicer for example
"gtk-application-prefer-dark-theme" = 1;
};
gtk4.extraConfig = {
"gtk-application-prefer-dark-theme" = 1;
};
};
dconf.settings = { dconf.settings = {
"org/virt-manager/virt-manager/connections" = { "org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"]; autoconnect = [ "qemu:///system" "qemu+ssh://me@mac/system" ];
uris = ["qemu:///system"]; uris = [ "qemu:///system" "qemu+ssh://me@mac/system" ];
}; };
}; };
@@ -37,6 +50,7 @@
".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache"; ".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache";
".local/share/PrismLauncher/".source = config.lib.file.mkOutOfStoreSymlink "${workDir}/app-data/prism-launcher"; ".local/share/PrismLauncher/".source = config.lib.file.mkOutOfStoreSymlink "${workDir}/app-data/prism-launcher";
".local/share/DaVinciResolve/".source = config.lib.file.mkOutOfStoreSymlink "${workDir}/app-data/DaVinciResolve";
}; };
@@ -163,6 +177,10 @@
print(line, end="") print(line, end="")
exit() exit()
if sys.argv[1] == "v":
os.system("sudo vim /etc/hosts")
exit()
net = sys.argv[1] net = sys.argv[1]

View File

@@ -13,12 +13,23 @@
hostname = config.networking.hostName; hostname = config.networking.hostName;
}; };
home-manager.users.server = import ../common/home.nix; home-manager.users.server = {
services.vscode-server.enable = true;
imports = [
"${inputs.vscode-server}/modules/vscode-server/home.nix"
../common/home.nix
];
};
users.users.server.openssh.authorizedKeys.keys = [ users.users.server.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDU8OZxpeEuwVYFQC1ZYOECfU8fVg0BhNIYk5tK6aNeUe4JBJezwBWIQLsxuo1YgUX1CwbP5IAAj0JyoYUzWT5H4Qyev6rj3JWvBl+kVTnJyiipRccasXD/3IuRK2GBpMcK67sUoHtgiq1kS8myuAtGh2dVeukCp196pCZC9VI0NiEmk2M6/pCiuKmaeaeyKEpkzd2wcdvqyXu3OKtq/qZyw+N8eLk8hC8wQK5lq/Syg8aZh7OV2jqe7CnRLnybybrVy3wRNI4DdoP51YEv+Q3eMlOpOdc7SGTyDPUMnTDNbBFL8u7o7xeLs/+v3neWOz/+rNkQbAoqEvN741lCozTcAxSTT8gnTOdrf+ClMFRpFMUkl3Z6JNymw0Zx2JFibhxQJWIKJq6Wh1YuDJXenIZka0sN5ut5W0KJMmCfzeyAXHy3qruYktbmUFz8iUm1ywbURZZNCmRlzESL2lE7iuTM06SxSYw4YxQHYIC4P6leMyN3hfrr4RUPtO8wJ1lALUs= kilix@epimetheus"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDrQUmZtpxDx669VjACdtLSLcIFZ5uJl4xsj49yJW6A39IglJ4S9ViPtp/kQhGZ3jJMCCFzwDLNNJBf8XfcAtio57cucUQxtRMnY57pKH284eucCanpCq8z9KgBYtrIdzYwRVQZo2tjxdAwKS5mHSOstUnqH8CzcG0kbq7k3s31MKQhzKWXx7lZEn3osQx/aIpt0eWB/SNAS4DWhx+mdGSqO2ryBqbZKaJuH90MEWyd5MKu25+h0ELbHrkkPYOwq0EnpGqvr0mps8AjEV4iExb28E+GGtS+R7yg2tw0QWM1m4PI4XF5JRAuLqt187YvgQe9DIKTuhu2BT/EN2Os7jx9r14Pq2P/IhrR0hVloSTn2/r3geUuFYNvYiL64dkZIRxBOlC3SKut/lB3cir0FPdDkxoIuRHICrsvdSC5wFfYJfhrf0ivkEk5Jgj+lS1QlC40Xw7e0ixKILo6uiriQor02bFY4ngQHTnBLKgjNsB3K23MN80vd8V6DVZdFB+XWr8= kilia@nomos"
]; ];