Initial commit

This commit is contained in:
2025-08-20 18:24:02 +03:00
commit 2dec42d487
116 changed files with 6591 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
{ pkgs, ... }: {
hm = {
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
commandLineArgs = [
"--enable-features=WebUIDarkMode,OzonePlatform,EncryptedClientHello,TouchpadOverscrollHistoryNavigation,VaapiVideoDecoder,WebAssembly"
"--disable-features=UserAgentClientHint"
"--force-webrtc-ip-handling-policy=default_public_interface_only"
"--force-dark-mode"
"--disable-beforeunload"
"--disable-search-engine-collection"
"--extension-mime-request-handling=download-as-regular-file"
"--disable-top-sites"
"--disable-file-system"
"--disable-default-apps"
"--disable-grease-tls"
"--ozone-platform=wayland"
# ''--js-flags="--jitless"''
''
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"''
''
--http-accept-header="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"''
"--fingerprinting-canvas-image-data-noise"
"--fingerprinting-canvas-measuretext-noise"
"--fingerprinting-client-rects-noise"
"--enable-quic"
"--gtk-version=4"
];
# extensions = [
#
# ];
};
};
imp.home.dirs = [ ".config/chromium" ];
nodes.phoenix.hardware.graphics.extraPackages = with pkgs; [
nvidia-vaapi-driver
libvdpau-va-gl
];
}

35
hosts/phoenix/default.nix Normal file
View File

@@ -0,0 +1,35 @@
{ lib, config, ... }: {
nixpkgs.hostPlatform = "x86_64-linux";
hardware.enableRedistributableFirmware = true;
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
age.secrets.phoenix_user_password = {
rekeyFile = ./secrets/password.age;
owner = "user";
group = "users";
mode = "0400";
};
n.host = {
hardware.cpu = "amd";
bootloader = "lanzaboote";
hostId = "053c9578";
users."user" = lib.mkUser config.age.secrets.phoenix_user_password.path true;
defaultUser = "user";
types = [ "desktop" ];
};
imports = [
(lib.fs.zfs "/nix" "rpool/nix" null)
(lib.fs.luks "crypted"
"/dev/disk/by-partuuid/0f262ab8-0aad-5f42-8ee5-493f68465aff"
{ header = "/dev/disk/by-partuuid/11ca2df8-17c3-47a2-8ba0-49976273008f";
allowDiscards = true; # Used if primary device is a SSD
preLVM = true; })
(lib.fs.tmpfs "/" "none" [ "mode=755" "size=40%" ])
(lib.fs.vfat "/boot" "/dev/disk/by-uuid/6D12-D841" null)
(lib.fs.swap "/dev/disk/by-uuid/391c74f2-8703-4d17-af3b-1f8087f8ad0a")
];
}

100
hosts/phoenix/games.nix Normal file
View File

@@ -0,0 +1,100 @@
{ pkgs, lib, inputs, username, ... }: {
hm.home.packages = (with pkgs; [
# steam-tui
steamcmd
steam-run
xwayland-satellite
# wineWow64Packages.waylandFull
bottles
glfw3-minecraft
prismlauncher
openspades
# zeroad
superTuxKart
wine64Packages.waylandFull
(pkgs.writeShellScriptBin "rungame"
''export __NV_PRIME_RENDER_OFFLOAD=1
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export __VK_LAYER_NV_optimus=NVIDIA_only
exec "${pkgs.gamemode}/bin/gamemoderun" "$@"''
)
]) ++ (
let
mkNixPak = inputs.nixpak.lib.nixpak { inherit pkgs; inherit lib; };
mkGameRunner' = name: rw': exe: network: mkNixPak {
config = { sloth, ... }:
let runfile = pkgs.writeScriptBin name ''
${exe}
'';
in {
dbus.enable = false;
gpu.enable = true;
gpu.provider = "nixos";
bubblewrap = {
inherit network;
sockets.pulse = true;
sockets.wayland = true;
bind.rw = rw';
bind.ro = [ "/etc" "/sys" "/lib64" "${runfile}" "/bin" ];
tmpfs = [ "/tmp" ];
bind.dev = [ "/dev/nvidia0" "/dev/nvidiactl" "/dev/nvidia-modeset" ];
};
app.package = runfile;
};
};
mkWineGameRunner' = name: workdir: exe: network: (mkGameRunner' name [workdir]
''WINEPREFIX="${workdir}/wineprefix" ${lib.getExe pkgs.wine64Packages.waylandFull} ${workdir}/${exe}'' network);
mkSteamrunGameRunner' = name: workdir: exe: network: (mkGameRunner' name [workdir]
''DISPLAY=:0 ${lib.getExe pkgs.steam-run} ${workdir}/${exe}'' network);
mkWineGameRunner = name: workdir: exe: [
((mkWineGameRunner' "${name}-run" workdir exe false).config.script)
((mkWineGameRunner' "${name}-run-inet" workdir exe true).config.script)
];
mkSteamrunGameRunner = name: workdir: exe: [
(mkSteamrunGameRunner' "${name}-run" workdir exe false).config.script
(mkSteamrunGameRunner' "${name}-run-inet" workdir exe true).config.script
];
dirs = ["/home/${username}/Games" "/mnt/gd" "/home/${username}/.wine"];
in
(mkWineGameRunner "littlenighmares" "/home/${username}/Games/LittleNightmares/1" "game_info/data/Atlas/Binaries/Win64/LittleNightmares.exe")
# (mkGameRunner' "wine-basic-run" dirs "${lib.getExe pkgs.wine64Packages.waylandFull} $@" false ).config.script
# (mkGameRunner' "wine-basic-run-inet" dirs "${lib.getExe pkgs.wine64Packages.waylandFull} $@" true ).config.script
);
programs = {
steam = {
enable = true;
remotePlay.openFirewall = false; # Open ports in the firewall for Steam Remote Play
# extest.enable = true;
};
gamemode = {
enable = true;
settings = {
};
};
};
boot.kernel.sysctl."kernel.unprivileged_userns_clone" = true;
imp.home.dirs = [
".local/share/Steam" ".steam"
".local/share/bottles"
".local/share/PrismLauncher"
".local/share/Paradox Interactive"
".local/share/openspades"
];
n.misc.unfreePackages = [
"steam"
"steam-unwrapped"
"steamcmd"
"steam-run"
];
}

139
hosts/phoenix/gnome.nix Normal file
View File

@@ -0,0 +1,139 @@
{ pkgs, lib, ... }: {
services.xserver.desktopManager.gnome.enable = true;
environment.gnome.excludePackages = (with pkgs; [
gnome-tour
yelp # Help view
# ]) ++ (with pkgs.gnome; [
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]);
programs.dconf.enable = true;
imp.home.dirs = [ ".local/share/keyrings" ];
hm = let
extensions = with pkgs.gnomeExtensions; [
# gnomeExtensions.user-themes
blur-my-shell
pop-shell
vitals
];
# inherit (lib.hm.gvariant) mkTuple;
in {
dconf.settings = {
"org/gnome/desktop/input-sources" = {
# sources = [ (mkTuple [ "xkb" "us" ]) (mkTuple [ "xkb" "by+ru" ]) ];
xkb-options = [ "grp:caps_toggle" "compose:rctrl" ];
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
enable-hot-corners = false;
# gtk-theme = "adw-gtk3-dark";
show-battery-percentage = true;
toolkit-accessibility = false;
};
"org/gnome/desktop/peripherals/touchpad" = {
tap-to-click = true;
two-finger-scrolling-enabled = true;
};
"org/gnome/desktop/wm/keybindings" = let
binds = map (x: { "switch-to-workspace-${toString x}" = [ "<Super>${toString x}" ];
"move-to-workspace-${toString x}" = [ "<Shift><Super>${toString x}" ]; }) [1 2 3 4 5 6 7 8 9];
in lib.mkMerge (binds ++ [{
close = [ "<Shift><Super>q" ];
minimize = [ "<Super>minus" ];
switch-input-source = [];
switch-input-source-backward = [];
toggle-fullscreen = [ "<Super>F11" ];
}]);
"org/gnome/mutter" = {
dynamic-workspaces = false;
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-schedule-automatic = true;
night-light-schedule-from = 20.0;
night-light-schedule-to = 9.0;
night-light-temperature = 3469;
};
"org/gnome/settings-daemon/plugins/media-keys" = {
calculator = [ "Calculator" ];
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" ];
mic-mute = [ "AudioMicMute" ];
screensaver = [ "ScreenSaver" ];
volume-down = [ "AudioLowerVolume" ];
volume-mute = [ "AudioMute" ];
volume-up = [ "AudioRaiseVolume" ];
www = [ "<Super>b" ];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>Return";
command = lib.getExe pkgs.gnome-terminal;
name = "GNOME Terminal";
};
"org/gnome/shell/extensions/pop-shell" = {
active-hint = false;
fullscreen-launcher = false;
mouse-cursor-follows-active-window = true;
show-skip-taskbar = true;
show-title = true;
smart-gaps = true;
snap-to-grid = true;
stacking-with-mouse = true;
tile-by-default = true;
tile-enter = [ "<Super>r" ];
};
"org/gnome/shell/extensions/vitals" = {
alphabetize = false;
fixed-widths = true;
hide-icons = false;
hide-zeros = true;
hot-sensors = [ "_memory_usage_" "_processor_usage_" "_storage_free_" ];
memory-measurement = 1;
menu-centered = false;
position-in-panel = 2;
};
"org/gnome/shell/keybindings" = {
toggle-application-view = [ "<Super>d" ];
toggle-quick-settings = [ "<Shift><Super>d" ];
};
# "org/gnome/shell.favorite-apps" = [
# # "chromium.desktop"
# "org.gnome.terminal.desktop"
# "org.gnome.nautilus.desktop"
# ];
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = map (x: x.extensionUuid) extensions;
};
};
home = {
packages = (with pkgs; [
# pinentry-gnome # maybe I'll delete it
# cava
adw-gtk3
dconf
gnome-tweaks
]) ++ extensions;
sessionVariables.GTK_THEME = "adw-gtk3-dark";
};
};
environment.etc."lemurs/wayland/gnome".source = pkgs.writeShellScript "gnome.sh" "${pkgs.gnome-shell}/bin/niri";
}

41
hosts/phoenix/gpu.nix Normal file
View File

@@ -0,0 +1,41 @@
{ lib, config, ... }: {
boot.initrd.kernelModules = [ "nvidia" ];
boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
services.xserver.videoDrivers = [ "nvidia" "modesetting" ];
hardware = {
nvidia = {
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false; # Use open kernel module, not nouveau
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
# package = config.boot.kernelPackages.nvidiaPackages.stable.override {
# disable32Bit = true;
# };
prime = {
amdgpuBusId = "PCI:5:0:0";
nvidiaBusId = "PCI:1:0:0";
offload = {
enable = true;
enableOffloadCmd = true;
};
reverseSync.enable = lib.mkForce false;
sync.enable = lib.mkForce false;
};
};
graphics.enable = true; # OpenGL
};
nixpkgs.config.nvidia.acceptLicense = true;
n.misc.unfreePackages = [
"nvidia-x11"
"nvidia-settings"
"nvidia-persistenced"
];
}

View File

@@ -0,0 +1,12 @@
{ pkgs, ... }: {
# nixpkgs.overlays = [
# (final: prev: {
# electron = final.electron_33-bin;
# electron_34 = final.electron_33-bin;
# })
# ];
n.misc.unfreePackages = [ "obsidian" ];
hm.home.packages = [ pkgs.obsidian ];
imp.home.dirs = [ ".config/obsidian" "Knowledge" ];
}

View File

@@ -0,0 +1,4 @@
{ ... }: {
services.postgresql.enable = true;
imp.dirs = [ "/var/lib/postgresql" ];
}

View File

@@ -0,0 +1,9 @@
age-encryption.org/v1
-> ssh-ed25519 8IT6eg zOyK3R9L2wLc3j24BeClZfV0qreGhCUEAKe5I/ek/RQ
p8Cs+J6Wr2gqbuxk9pBHzswsVu3hFBsi69fkxvGxNIE
-> zh:p3}L;-grease 0r+81 g
Fd+eCNxUNT6oCVS+ljiPObC9d0oIZQSwkXIhIaEyugAdMBRIfvniO9nkHiHn
--- TsFWr7WQ1ublsHFf0In5XgH+THVqE9w7B3AWv4WthTo
+,
ձ<EFBFBD>7<EFBFBD><EFBFBD><EFBFBD><EFBFBD>>f<<3C><><EFBFBD>5<EFBFBD>^<5E>Y<EFBFBD><59>w<EFBFBD>Ȁ<EFBFBD>9m|\͉?<3F><>\<1A>kaVk<56>W<>ܒo<DC92><6F>S*<2A>q.<2E><>]`<60>[6<>5,<4D><CF9F>B<><42><EFBFBD>di4<69><34>җ<EFBFBD><D297>N<EFBFBD><4E>d<EFBFBD>