230 lines
6.9 KiB
Nix
230 lines
6.9 KiB
Nix
# nixosConfigurations.th0nkpad-nixos = nixpkgs.lib.nixosSystem {
|
|
|
|
{
|
|
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
|
# as well as the libraries available from your flake's inputs.
|
|
lib,
|
|
# An instance of `pkgs` with your overlays and packages applied is also available.
|
|
pkgs,
|
|
# You also have access to your flake's inputs.
|
|
inputs,
|
|
# Additional metadata is provided by Snowfall Lib.
|
|
# The namespace used for your flake, defaulting to "internal" if not set.
|
|
# namespace,
|
|
# The system architecture for this host (eg. `x86_64-linux`).
|
|
# system,
|
|
# The Snowfall Lib target for this system (eg. `x86_64-iso`).
|
|
# target,
|
|
# A normalized name for the system target (eg. `iso`).
|
|
# format,
|
|
# A boolean to determine whether this system is a virtual target using nixos-generators.
|
|
# virtual,
|
|
# An attribute map of your defined hosts.
|
|
# systems,
|
|
# All other arguments come from the system system.
|
|
# config,
|
|
...
|
|
}:
|
|
let
|
|
# inherit (lib.my-namespace) systemPackages;
|
|
inherit pkgs;
|
|
installedPackages = lib.my-namespace.mkPackages pkgs;
|
|
in
|
|
{
|
|
# inherit system;
|
|
imports = [
|
|
./configuration.nix
|
|
./mutter-tearing.nix
|
|
./video.nix
|
|
inputs.wallpaperengine.nixosModules.default
|
|
inputs.aagl.nixosModules.default
|
|
];
|
|
config = {
|
|
programs.linux-wallpaperengine.enable = true;
|
|
system.stateVersion = "26.05";
|
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
|
# Distrobox
|
|
my-namespace.distrobox.enable = true;
|
|
# Desktops
|
|
my-namespace.desktop-environment.cinnamon.enable = true;
|
|
my-namespace.desktop-environment.xfce.enable = false;
|
|
my-namespace.desktop-environment.gnome.enable = true;
|
|
my-namespace.desktop-environment.kde.enable = false;
|
|
my-namespace.desktop-environment.hyprland.enable = false;
|
|
my-namespace.desktop-environment.cosmic.enable = false;
|
|
my-namespace.performance-tuning.enable = true;
|
|
my-namespace.file-organization.enable = true;
|
|
# GNOME-keyring
|
|
my-namespace.gnome-keyring.enable = true;
|
|
# CS Tools
|
|
my-namespace.cs-tools.enable = true;
|
|
|
|
users.users.andreas = {
|
|
isNormalUser = true;
|
|
description = "Andreas Schaafsma";
|
|
extraGroups = [
|
|
"networkmanager"
|
|
"wheel"
|
|
"libvirtd"
|
|
"plugdev"
|
|
"docker"
|
|
"gamemode"
|
|
];
|
|
packages = with pkgs; [
|
|
# Packages from inputsq
|
|
# inputs.game-of-life.packages.x86_64-linux.default
|
|
inputs.zen-browser.packages.x86_64-linux.default
|
|
# inputs.anikki.packages.x86_64-linux.default
|
|
# We want flatpak support
|
|
flatpak
|
|
# GNOME shit
|
|
thunderbird
|
|
soundwireserver
|
|
# vscode
|
|
# discord
|
|
spotify
|
|
appimage-run
|
|
prismlauncher #replaces broken minecraft package
|
|
trilium-desktop
|
|
terraform
|
|
virt-manager
|
|
nil
|
|
codex
|
|
# thunderbird
|
|
];
|
|
|
|
};
|
|
|
|
programs.anime-game-launcher.enable = true; # Adds launcher and /etc/hosts rules
|
|
programs.anime-games-launcher.enable = true;
|
|
|
|
services.gnome.gnome-remote-desktop.enable = true;
|
|
my-namespace.keychron-keyboard.enable = true;
|
|
|
|
# lib.my-namespace.home.stream-tools.enable = true;
|
|
|
|
# Open ports in the firewall.
|
|
networking.firewall.allowedTCPPorts = [
|
|
59010 #SoundWireServer
|
|
5901
|
|
5001
|
|
11434
|
|
3389 #RDP
|
|
22 #ssh
|
|
];
|
|
networking.firewall.allowedUDPPorts = [
|
|
59010 #SoundWireServer
|
|
5901
|
|
5001
|
|
11434
|
|
3389 #RDP
|
|
22 #ssh
|
|
];
|
|
# Or disable the firewall altogether.
|
|
networking.firewall.enable = false;
|
|
|
|
|
|
# Install firefox.
|
|
programs.firefox.enable = true;
|
|
nixpkgs.config.allowBroken = true;
|
|
powerManagement.cpuFreqGovernor = "performance";
|
|
# Set up system Packages
|
|
environment.sessionVariables.GI_TYPELIB_PATH =
|
|
lib.makeSearchPath "lib/girepository-1.0" [
|
|
pkgs.my-namespace.rounded-blur
|
|
];
|
|
environment.sessionVariables = {
|
|
# If you are using Hyprland, labwc, or Sway (wlroots-based):
|
|
WLR_DRM_NO_ATOMIC = "1";
|
|
|
|
KWIN_DRM_DISABLE_TRIPLE_BUFFERING="1";
|
|
|
|
# If you are using KDE Plasma (KWin):
|
|
KWIN_FORCE_SW_CURSOR = "1";
|
|
|
|
# For modern wlroots (and Aquamarine in Hyprland) to force software cursors:
|
|
WLR_NO_HARDWARE_CURSORS = "1";
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
git
|
|
wine
|
|
# bottles
|
|
gparted
|
|
ntfs3g
|
|
ntfsprogs
|
|
synergy
|
|
mangohud
|
|
my-namespace.udev-steelseries
|
|
my-namespace.linux-wallpaperengine
|
|
my-namespace.rounded-blur
|
|
my-namespace.rounded-windows-bms
|
|
my-namespace.cs-demo-manager
|
|
vscode-modernized
|
|
|
|
(pkgs.writeShellScriptBin "switch-to-desktop" ''
|
|
#!/bin/sh
|
|
# Kill Steam and return to display manager
|
|
pkill steam || true
|
|
pkill gamescope || true
|
|
# End the session cleanly
|
|
loginctl terminate-session "$XDG_SESSION_ID"
|
|
'')
|
|
|
|
(pkgs.writeShellScriptBin "steamos-session-select" ''
|
|
#!/bin/sh
|
|
exec switch-to-desktop
|
|
'')
|
|
|
|
# Vulkan packages for Steam
|
|
mesa
|
|
vulkan-loader
|
|
vulkan-validation-layers
|
|
vulkan-extension-layer
|
|
vulkan-tools
|
|
libva
|
|
libva-utils
|
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
# wget
|
|
]
|
|
++ installedPackages.packages;
|
|
|
|
programs.nix-ld = {
|
|
enable = true;
|
|
package = pkgs.nix-ld; #replaces nix-ld-rs
|
|
};
|
|
|
|
services.flatpak.enable = true;
|
|
systemd.services.flatpak-repo = {
|
|
wantedBy = [ "multi-user.target" ];
|
|
path = [ pkgs.flatpak ];
|
|
script = ''
|
|
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
'';
|
|
};
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
settings.PasswordAuthentication = true;
|
|
# settings = {
|
|
# # passwordAuthentication = true;
|
|
# };
|
|
};
|
|
|
|
|
|
# services.xrdp.enable = true;
|
|
# services.xrdp.defaultWindowManager = "${pkgs.gnome-session}/bin/gnome-session";
|
|
# services.xrdp.defaultWindowManager = "startxfce4";
|
|
# services.xrdp.openFirewall = true;
|
|
# services.xrdp.audio.enable = false;
|
|
|
|
|
|
# Disable the GNOME3/GDM auto-suspend feature that cannot be disabled in GUI!
|
|
# If no user is logged in, the machine will power down after 20 minutes.
|
|
|
|
# systemd.targets.sleep.enable = false;
|
|
# systemd.targets.suspend.enable = false;
|
|
# systemd.targets.hibernate.enable = false;
|
|
# systemd.targets.hybrid-sleep.enable = false;
|
|
};
|
|
}
|