I really hope I didn't forget any secrets
This commit is contained in:
parent
6bde6ff219
commit
069c7475ee
6 changed files with 1586 additions and 0 deletions
550
configuration.nix
Normal file
550
configuration.nix
Normal file
|
@ -0,0 +1,550 @@
|
||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
#Credit to anyone I got these config files from, I would add it here but its been months
|
||||||
|
|
||||||
|
{ inputs, config, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.etc.nixpkgs.source = inputs.nixpkgs;
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
<home-manager/nixos>
|
||||||
|
./sunshine.nix
|
||||||
|
./home-files.nix
|
||||||
|
#./flatpak.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
# boot.loader.grub.enable = true;
|
||||||
|
# boot.loader.grub.device = "nodev";
|
||||||
|
# boot.loader.grub.useOSProber = true;
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 15;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
networking.hostName = "insertpclinux"; # Define your hostname.
|
||||||
|
|
||||||
|
# Enable networking
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
# Enable the KDE Plasma Desktop Environment.
|
||||||
|
services.xserver.displayManager.sddm.enable = false;
|
||||||
|
services.xserver.desktopManager.plasma5.enable = false;
|
||||||
|
services.greetd.enable = true;
|
||||||
|
programs.regreet.enable = true;
|
||||||
|
services.xrdp.enable = false;
|
||||||
|
services.xrdp.defaultWindowManager = "startplasma-x11";
|
||||||
|
virtualisation.docker = {
|
||||||
|
enable = true;
|
||||||
|
extraOptions = ''
|
||||||
|
--insecure-registry "kuberound.internal:5000"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
#nixpkgs.overlays = [ (self: super: (let
|
||||||
|
# patched_pkgs = import inputs.nixpkgs_patched {
|
||||||
|
# inherit (self) system;
|
||||||
|
# config.allowUnfree = true;
|
||||||
|
# };
|
||||||
|
# in {
|
||||||
|
# linuxPackages = patched_pkgs.linuxPackages;
|
||||||
|
# })) ];
|
||||||
|
#boot.kernelPackages = pkgs.linuxPackages;
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
|
||||||
|
# Modesetting is needed most of the time
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Enable power management (do not disable this unless you have a reason to).
|
||||||
|
# Likely to cause problems on laptops and with screen tearing if disabled.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Use the open source version of the kernel module ("nouveau")
|
||||||
|
# Note that this offers much lower performance and does not
|
||||||
|
# support all the latest Nvidia GPU features.
|
||||||
|
# You most likely don't want this.
|
||||||
|
# Only available on driver 515.43.04+
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
|
||||||
|
};
|
||||||
|
# Configure keymap in X11
|
||||||
|
services.xserver = {
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
sound.enable = true;
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
|
||||||
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
|
# no need to redefine it in your config for now)
|
||||||
|
#media-session.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
# services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
nix.settings.auto-optimise-store = true;
|
||||||
|
system.autoUpgrade.enable = false;
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 10d";
|
||||||
|
};
|
||||||
|
#programs.zsh.enable = true;
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
users.users.insert = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "insert";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "input" "docker" "libvirtd" ];
|
||||||
|
#shell = pkgs.zsh;
|
||||||
|
packages = with pkgs; [
|
||||||
|
firefox
|
||||||
|
kate
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||||
|
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||||
|
});
|
||||||
|
#config = {
|
||||||
|
# modules = [{module = "wlr/workspace"};];
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
services.flatpak.packages = [
|
||||||
|
"flathub:app/dev.lizardbyte.app.Sunshine//stable"
|
||||||
|
"flathub:app/org.godotengine.Godot//stable"
|
||||||
|
"flathub:app/org.filezillaproject.Filezilla//stable"
|
||||||
|
];
|
||||||
|
services.flatpak.remotes = {
|
||||||
|
"flathub" = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||||
|
"flathub-beta" = "https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||||
|
};
|
||||||
|
|
||||||
|
age.identityPaths = [ "/home/insert/.ssh/id_rsa" ];
|
||||||
|
age.secrets.email = {
|
||||||
|
file = ./secrets/email.age;
|
||||||
|
owner = "insert";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.insert= { pkgs, ... }: {
|
||||||
|
home.packages = [
|
||||||
|
pkgs.git
|
||||||
|
pkgs.fluffychat
|
||||||
|
pkgs.cinny-desktop
|
||||||
|
pkgs.libsForQt5.lightly
|
||||||
|
pkgs.pfetch
|
||||||
|
pkgs.git-credential-oauth
|
||||||
|
pkgs.wayvnc
|
||||||
|
pkgs.android-tools
|
||||||
|
pkgs.gnome.eog
|
||||||
|
pkgs.libsForQt5.gwenview
|
||||||
|
pkgs.libsForQt5.qtstyleplugins
|
||||||
|
pkgs.libsForQt5.qt5ct
|
||||||
|
pkgs.oh-my-zsh
|
||||||
|
pkgs.zsh
|
||||||
|
pkgs.kubectl
|
||||||
|
pkgs.kubernetes-helm
|
||||||
|
pkgs.vscodium
|
||||||
|
#pkgs.atool
|
||||||
|
#pkgs.httpie
|
||||||
|
pkgs.webcord
|
||||||
|
pkgs.pika-backup
|
||||||
|
pkgs.tigervnc
|
||||||
|
pkgs.syncthing
|
||||||
|
pkgs.zsh-syntax-highlighting
|
||||||
|
pkgs.zsh-history-substring-search
|
||||||
|
pkgs.kitty
|
||||||
|
pkgs.grim
|
||||||
|
pkgs.slurp
|
||||||
|
pkgs.prismlauncher
|
||||||
|
pkgs.glfw-wayland-minecraft
|
||||||
|
];
|
||||||
|
services.syncthing.enable = true;
|
||||||
|
|
||||||
|
# programs.zsh.oh-my-zsh.enable = true;
|
||||||
|
#programs.waybar = {
|
||||||
|
#enable = true;
|
||||||
|
#package = pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||||
|
#mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||||
|
#});
|
||||||
|
#config = {
|
||||||
|
# modules = [{module = "wlr/workspace"};];
|
||||||
|
#};
|
||||||
|
#}
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-icon-theme;
|
||||||
|
};
|
||||||
|
cursorTheme = {
|
||||||
|
name = "Catppuccin-Frappe-Blue-Cursors";
|
||||||
|
package = pkgs.catppuccin-cursors.frappeBlue;
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
name = "Catppuccin-Frappe-Standard-Mauve-Dark";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
accents = [ "mauve" ];
|
||||||
|
size = "standard";
|
||||||
|
#tweaks = [ "black" ];
|
||||||
|
variant = "frappe";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
programs.nnn = {
|
||||||
|
enable = true;
|
||||||
|
#plugins = { "launch", "imgview" };
|
||||||
|
plugins.src = (pkgs.fetchFromGitHub {
|
||||||
|
owner = "jarun";
|
||||||
|
repo = "nnn";
|
||||||
|
rev = "v4.9";
|
||||||
|
sha256 = "sha256-Hpc8YaJeAzJoEi7aJ6DntH2VLkoR6ToP6tPYn3llR7k=";
|
||||||
|
}) + "/plugins";
|
||||||
|
plugins.mappings = {
|
||||||
|
l = "launch";
|
||||||
|
v = "imgview";
|
||||||
|
g = "getplugs";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
accounts.email = {
|
||||||
|
accounts.insert = {
|
||||||
|
address = "insert@insertapp.net";
|
||||||
|
gpg = {
|
||||||
|
key = "A70775C389ACF105";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
imap.host = "imap.purelymail.com";
|
||||||
|
imap.port = 993;
|
||||||
|
primary = true;
|
||||||
|
realName = "Insert";
|
||||||
|
smtp = {
|
||||||
|
host = "smtp.purelymail.com";
|
||||||
|
port = 465;
|
||||||
|
};
|
||||||
|
passwordCommand = "cat ${config.age.secrets.email.path}";
|
||||||
|
userName = "insert@insertapp.net";
|
||||||
|
#notmuch.enable = true;
|
||||||
|
thunderbird.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#programs.notmuch.enable = true;
|
||||||
|
programs.himalaya.enable = false;
|
||||||
|
programs.thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
profiles.insert = {
|
||||||
|
#name = "Insert";
|
||||||
|
isDefault = true;
|
||||||
|
withExternalGnupg = false;
|
||||||
|
settings = {"mail.openpgp.alternative_gpg_path" = "/run/current-system/sw/bin/gpg-agent";};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.librewolf.enable = true;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "insert";
|
||||||
|
userEmail = "insert@insertapp.net";
|
||||||
|
signing = {
|
||||||
|
key = "A70775C389ACF105";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.git-credential-oauth.enable = true;
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
theme = "Catppuccin-Frappe";
|
||||||
|
settings = {
|
||||||
|
font_family = "Monocraft Nerd Font";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = {
|
||||||
|
update = "sudo nixos-rebuild switch --flake /home/insert/Documents/nixos# -v --impure --upgrade --recreate-lock-file";
|
||||||
|
update-locked = "sudo nixos-rebuild switch --flake /home/insert/Documents/nixos# -v --impure";
|
||||||
|
garbage = "nix-collect-garbage";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
|
||||||
|
source ~/.p10k.zsh
|
||||||
|
export TERM=xterm-256color
|
||||||
|
PF_INFO="ascii title os kernel uptime pkgs memory wm de palette" pfetch
|
||||||
|
|
||||||
|
'';
|
||||||
|
plugins = [
|
||||||
|
|
||||||
|
{name = "powerlevel10k";src = pkgs.zsh-powerlevel10k;file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";}
|
||||||
|
|
||||||
|
];
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
historySubstringSearch.enable = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "git" "kubectl" ];
|
||||||
|
#theme = "powerlevel10k/powerlevel10k";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
|
# Enable automatic login for the user.
|
||||||
|
services.xserver.displayManager.autoLogin.enable = false;
|
||||||
|
services.xserver.displayManager.autoLogin.user = "insert";
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|
||||||
|
fonts.fontDir.enable = true;
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
monocraft
|
||||||
|
];
|
||||||
|
|
||||||
|
security.pki.certificateFiles = [
|
||||||
|
/home/insert/Documents/nextcloud/nextcloudinternal.pem
|
||||||
|
/home/insert/Documents/personal-vaultwarden/cert.pem
|
||||||
|
];
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
environment.systemPackages = [
|
||||||
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
# wget
|
||||||
|
pkgs.tailscale
|
||||||
|
pkgs.wayland
|
||||||
|
pkgs.docker-compose
|
||||||
|
#pkgs.sway
|
||||||
|
inputs.agenix.packages."${pkgs.system}".default
|
||||||
|
pkgs.vlc
|
||||||
|
#pkgs.hyprland
|
||||||
|
pkgs.wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
||||||
|
pkgs.bemenu # wayland clone of dmenu
|
||||||
|
pkgs.mako # notification system developed by swaywm maintainer
|
||||||
|
#pkgs.eww-wayland
|
||||||
|
pkgs.wofi
|
||||||
|
pkgs.swww
|
||||||
|
pkgs.nfs-utils
|
||||||
|
#pkgs.waybar
|
||||||
|
pkgs.libnotify
|
||||||
|
pkgs.polkit_gnome
|
||||||
|
pkgs.libsForQt5.breeze-icons
|
||||||
|
pkgs.libsForQt5.dolphin
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.pinentry
|
||||||
|
pkgs.adoptopenjdk-bin
|
||||||
|
#inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
|
||||||
|
pkgs.gnome.nautilus
|
||||||
|
pkgs.libsForQt5.ark
|
||||||
|
];
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
programs.steam.enable = true;
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
#pinentryFlavor = "gtk2";
|
||||||
|
};
|
||||||
|
services.pcscd.enable = true;
|
||||||
|
|
||||||
|
#programs.sway = {
|
||||||
|
# enable = true;
|
||||||
|
# wrapperFeatures.gtk = true;
|
||||||
|
# extraOptions = [
|
||||||
|
# "--unsupported-gpu"
|
||||||
|
# ];
|
||||||
|
#};
|
||||||
|
services.earlyoom = {
|
||||||
|
enable = true;
|
||||||
|
freeSwapThreshold = 5;
|
||||||
|
freeMemThreshold = 8;
|
||||||
|
enableNotifications = true;
|
||||||
|
extraArgs = [
|
||||||
|
"-g" "--avoid '^(X|hypr.*|kitty|wayland)$'"
|
||||||
|
"--prefer '^(electron|librewolf|firefox|java|minecraft.*)$'"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
services.rpcbind.enable = true; # needed for NFS
|
||||||
|
systemd.mounts = [{
|
||||||
|
type = "nfs";
|
||||||
|
#mountConfig = {
|
||||||
|
# Options = "noatime";
|
||||||
|
#};
|
||||||
|
what = "kubbernetter-5:/var/mnt/md0/personal/randomfiles";
|
||||||
|
where = "/mnt/NAS";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
type = "nfs";
|
||||||
|
#mountConfig = {
|
||||||
|
# Options = "noatime";
|
||||||
|
#};
|
||||||
|
what = "kubbernetter-5:/var/mnt/md0/personal/pc-backups";
|
||||||
|
where = "/mnt/NAS-backup";
|
||||||
|
}];
|
||||||
|
|
||||||
|
systemd.automounts = [{
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
#automountConfig = {
|
||||||
|
# TimeoutIdleSec = "600";
|
||||||
|
#};
|
||||||
|
where = "/mnt/NAS";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
#automountConfig = {
|
||||||
|
# TimeoutIdleSec = "600";
|
||||||
|
#};
|
||||||
|
where = "/mnt/NAS-backup";
|
||||||
|
}];
|
||||||
|
|
||||||
|
systemd = {
|
||||||
|
user.services.polkit-gnome-authentication-agent-1 = {
|
||||||
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
wants = [ "graphical-session.target" ];
|
||||||
|
after = [ "graphical-session.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = 1;
|
||||||
|
TimeoutStopSec = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.waybar.enable = false;
|
||||||
|
|
||||||
|
xdg.portal = { enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; };
|
||||||
|
#xdg.portal = { enable = true; extraPortals = [ inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland ]; };
|
||||||
|
#xdg.portal = { enable = true; };
|
||||||
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
#enableNvidiaPatches = true;
|
||||||
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
};
|
||||||
|
#programs.nnn.enable = false;
|
||||||
|
#programs.hyprland.enable = true;
|
||||||
|
#programs.hyprland.enableNvidiaPatches = true;
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
# List services that you want to enable:
|
||||||
|
services.sunshine.enable = true;
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
#networking.firewall.enable = false;
|
||||||
|
|
||||||
|
#I am so, so, so very sorry
|
||||||
|
networking.firewall.enable = true;
|
||||||
|
networking.firewall.checkReversePath = "loose";
|
||||||
|
networking.firewall.allowedUDPPortRanges = [
|
||||||
|
{ from = 0; to = 65535; }
|
||||||
|
{ from = 0; to = 65535; }
|
||||||
|
];
|
||||||
|
networking.firewall.allowedTCPPortRanges = [
|
||||||
|
{ from = 0; to = 65535; }
|
||||||
|
{ from = 0; to = 65535; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
373
flake.lock
Normal file
373
flake.lock
Normal file
|
@ -0,0 +1,373 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"agenix": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712079060,
|
||||||
|
"narHash": "sha256-/JdiT9t+zzjChc5qQiF+jhrVhRt8figYH29rZO7pFe4=",
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"rev": "1381a759b205dff7a6818733118d02253340fd5e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ryantm",
|
||||||
|
"repo": "agenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1700795494,
|
||||||
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flatpaks": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"utils": "utils"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1707326266,
|
||||||
|
"narHash": "sha256-vRVih6iltuyLdj305Pj236BfhzFaOkAbHg3r5VsFdxs=",
|
||||||
|
"owner": "GermanBread",
|
||||||
|
"repo": "declarative-flatpak",
|
||||||
|
"rev": "efe7897ddcfbca085fba0690b3094e7f8e8911dd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GermanBread",
|
||||||
|
"ref": "dev",
|
||||||
|
"repo": "declarative-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703113217,
|
||||||
|
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprcursor": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprlang": "hyprlang",
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711466786,
|
||||||
|
"narHash": "sha256-sArxGyUBiCA1in+q6t0QqT+ZJiZ1PyBp7cNPKLmREM0=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"rev": "d3876f34779cc03ee51e4aafc0d00a4f187c7544",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprcursor",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprcursor": "hyprcursor",
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
"hyprlang": "hyprlang_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_4",
|
||||||
|
"wlroots": "wlroots",
|
||||||
|
"xdph": "xdph"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712415242,
|
||||||
|
"narHash": "sha256-xqD8+J7xg6ykdDEtU50jJgY8CnNLuNXe63qok7mAiO8=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"rev": "04d067d78b0074ff0000b4ce2d8741881b1ace25",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1691753796,
|
||||||
|
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprcursor",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709914708,
|
||||||
|
"narHash": "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "a685493fdbeec01ca8ccdf1f3655c044a8ce2fe2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprlang_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711250455,
|
||||||
|
"narHash": "sha256-LSq1ZsTpeD7xsqvlsepDEelWRDtAhqwetp6PusHXJRo=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"rev": "b3e430f81f3364c5dd1a3cc9995706a4799eb3fa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprlang",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712439257,
|
||||||
|
"narHash": "sha256-aSpiNepFOMk9932HOax0XwNxbA38GOUVOiXfUVPOrck=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ff0dbd94265ac470dda06a657d5fe49de93b4599",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
|
"flatpaks": "flatpaks",
|
||||||
|
"hyprland": "hyprland",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"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": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705309234,
|
||||||
|
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wlroots": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"lastModified": 1709983277,
|
||||||
|
"narHash": "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"rev": "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xdph": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-protocols"
|
||||||
|
],
|
||||||
|
"hyprlang": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprlang"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709299639,
|
||||||
|
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
24
flake.nix
Normal file
24
flake.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
# ...
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
flatpaks.url = "github:GermanBread/declarative-flatpak/dev";
|
||||||
|
flatpaks.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
agenix.url = "github:ryantm/agenix";
|
||||||
|
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, flatpaks, agenix, ... } @ inputs: {
|
||||||
|
nixosConfigurations.insertpclinux = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
flatpaks.nixosModules.default
|
||||||
|
./configuration.nix
|
||||||
|
agenix.nixosModules.default
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
41
hardware-configuration.nix
Normal file
41
hardware-configuration.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b997879c-fbf7-4368-9f90-7a5c9655133a";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/18B3-A4B9";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/e5929d9b-2beb-4d9f-adef-33f4d3b74a89"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
547
home-files.nix
Normal file
547
home-files.nix
Normal file
|
@ -0,0 +1,547 @@
|
||||||
|
{ inputs, config, lib, pkgs, ... }:
|
||||||
|
#Yes I manage my home files like this, yes I am insane
|
||||||
|
#Credit to anyone I got these config files from, I would add it here but its been months
|
||||||
|
{
|
||||||
|
home-manager.users.insert.home.file.".config/qt5ct/colors/Catppuccin-Frappe.conf" = {
|
||||||
|
text = ''[ColorScheme]
|
||||||
|
active_colors=#ffc6d0f5, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffc6d0f5, #ffc6d0f5, #ffc6d0f5, #ff303446, #ff292c3c, #ff838ba7, #ff8caaee, #ff303446, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7
|
||||||
|
disabled_colors=#ffa5adce, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffa5adce, #ffa5adce, #ffa5adce, #ff303446, #ff292c3c, #ff838ba7, #ff626880, #ffb5bfe2, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7
|
||||||
|
inactive_colors=#ffc6d0f5, #ff292c3c, #ffa5adce, #ff949cbb, #ff51576d, #ff737994, #ffc6d0f5, #ffc6d0f5, #ffc6d0f5, #ff303446, #ff292c3c, #ff838ba7, #ff414559, #ffa5adcb, #ff8caaee, #ffe78284, #ff303446, #ffc6d0f5, #ff232634, #ffc6d0f5, #80838ba7'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
home-manager.users.insert.home.file.".config/mako/config" = {
|
||||||
|
text = ''# Colors
|
||||||
|
|
||||||
|
background-color=#303446
|
||||||
|
text-color=#c6d0f5
|
||||||
|
border-color=#8caaee
|
||||||
|
progress-color=over #414559
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=#ef9f76'';
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc."greetd/regreet.toml".text = lib.mkForce ''[background]
|
||||||
|
path = "/home/insert/Documents/cat-background/background.png"
|
||||||
|
fit = "Fill"
|
||||||
|
[GTK]
|
||||||
|
# Whether to use the dark theme
|
||||||
|
application_prefer_dark_theme = true
|
||||||
|
|
||||||
|
# Cursor theme name
|
||||||
|
#cursor_theme_name = "Adwaita"
|
||||||
|
|
||||||
|
# Font name and size
|
||||||
|
font_name = "Monocraft 20"
|
||||||
|
|
||||||
|
# Icon theme name
|
||||||
|
icon_theme_name = "Breeze Dark"
|
||||||
|
|
||||||
|
# GTK theme name
|
||||||
|
#theme_name = "Adwaita"
|
||||||
|
'';
|
||||||
|
|
||||||
|
home-manager.users.insert.home.file.".config/waybar/config.jsonc" = {
|
||||||
|
text = ''{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mod": "dock",
|
||||||
|
"exclusive": true,
|
||||||
|
"passtrough": false,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
"height": 0,
|
||||||
|
"modules-left": [
|
||||||
|
"clock",
|
||||||
|
"hyprland/workspaces"
|
||||||
|
],
|
||||||
|
"modules-center": ["hyprland/window"],
|
||||||
|
"modules-right": [
|
||||||
|
"wlr/taskbar",
|
||||||
|
"temperature",
|
||||||
|
"cpu",
|
||||||
|
"memory",
|
||||||
|
"tray"
|
||||||
|
],
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}"
|
||||||
|
},
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
||||||
|
"all-outputs": true,
|
||||||
|
"tooltip": true,
|
||||||
|
"on-click": "activate"
|
||||||
|
},
|
||||||
|
"wlr/taskbar": {
|
||||||
|
"on-click": "activate",
|
||||||
|
"on-click-middle": "close",
|
||||||
|
"ignore-list": [
|
||||||
|
"foot"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"interval": 10,
|
||||||
|
"format": " {}%",
|
||||||
|
"max-length": 10,
|
||||||
|
"on-click": ""
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"interval": 30,
|
||||||
|
"format-alt": " {}%",
|
||||||
|
"format":" {used:0.1f}G",
|
||||||
|
"max-length": 10
|
||||||
|
},
|
||||||
|
"custom/weather" : {
|
||||||
|
"tooltip" : true,
|
||||||
|
"format" : "{}",
|
||||||
|
"restart-interval" : 300,
|
||||||
|
"exec" : "~/.config/waybar/scripts/waybar-wttr.py",
|
||||||
|
"return-type" : "json"
|
||||||
|
},
|
||||||
|
"temperature" : {
|
||||||
|
"format": "{temperatureF}°F"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 13,
|
||||||
|
"tooltip": false,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"format":" {:%R %d/%m}",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"format-muted": " Muted",
|
||||||
|
"on-click": "pamixer -t",
|
||||||
|
"on-scroll-up": "pamixer -i 5",
|
||||||
|
"on-scroll-down": "pamixer -d 5",
|
||||||
|
"scroll-step": 5,
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pulseaudio#microphone": {
|
||||||
|
"format": "{format_source}",
|
||||||
|
"tooltip": false,
|
||||||
|
"format-source": " {volume}%",
|
||||||
|
"format-source-muted": " Muted",
|
||||||
|
"on-click": "pamixer --default-source -t",
|
||||||
|
"on-scroll-up": "pamixer --default-source -i 5",
|
||||||
|
"on-scroll-down": "pamixer --default-source -d 5",
|
||||||
|
"scroll-step": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
home-manager.users.insert.home.file.".config/waybar/style.css" = {
|
||||||
|
text = ''@import "frappe.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: FantasqueSansMono Nerd Font;
|
||||||
|
font-size: 17px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#waybar {
|
||||||
|
background: transparent;
|
||||||
|
color: @text;
|
||||||
|
margin: 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
border-radius: 1rem;
|
||||||
|
margin: 5px;
|
||||||
|
background-color: @surface0;
|
||||||
|
margin-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#taskbar {
|
||||||
|
border-radius: 1rem;
|
||||||
|
margin: 5px;
|
||||||
|
background-color: @surface0;
|
||||||
|
margin-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: @lavender;
|
||||||
|
border-radius: 1rem;
|
||||||
|
padding: 0.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: @sky;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
color: @sapphire;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-music,
|
||||||
|
#tray,
|
||||||
|
#backlight,
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#temperature,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-lock,
|
||||||
|
#custom-power {
|
||||||
|
background-color: @surface0;
|
||||||
|
padding: 0.5rem 1rem;
|
||||||
|
margin: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: @blue;
|
||||||
|
border-radius: 0px 1rem 1rem 0px;
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: @red;
|
||||||
|
border-radius: 1rem 0px 0px 1rem;
|
||||||
|
margin-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: @yellow;
|
||||||
|
}
|
||||||
|
#memory {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning:not(.charging) {
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: @yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight, #battery {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: @maroon;
|
||||||
|
border-radius: 1rem 0px 0px 1rem;
|
||||||
|
margin-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-music {
|
||||||
|
color: @mauve;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-lock {
|
||||||
|
border-radius: 1rem 0px 0px 1rem;
|
||||||
|
color: @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
margin-right: 1rem;
|
||||||
|
border-radius: 0px 1rem 1rem 0px;
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
/*margin-right: 1rem;
|
||||||
|
border-radius: 1rem;*/
|
||||||
|
}'';
|
||||||
|
};
|
||||||
|
home-manager.users.insert.home.file.".config/hypr/hyprland.conf" = {
|
||||||
|
text = ''autogenerated = 0 # remove this line to remove the warning
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor=,1920x1080@60,auto,1
|
||||||
|
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
|
|
||||||
|
# Execute your favorite apps at launch
|
||||||
|
# exec-once = waybar & hyprpaper & firefox
|
||||||
|
source=~/.config/hypr/frappe.conf
|
||||||
|
# Source a file (multi-file configs)
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
# Some default env vars.
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = WLR_NO_HARDWARE_CURSORS,1
|
||||||
|
env = NIXOS_OZONE_WL,1
|
||||||
|
env = KUBECONFIG,/home/insert/Desktop/k3s.yaml
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||||
|
env = XCURSOR_THEME,Catppuccin-Frappe-Blue-Cursors
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
exec-once = systemctl --user start polkit-gnome-authentication-agent-1
|
||||||
|
#exec-once = hyprctl setcursor Catppuccin-Frappe-Blue-Cursors 24
|
||||||
|
exec-once = watch waybar
|
||||||
|
exec-once = wayvnc 100.120.210.58
|
||||||
|
exec-once = mako
|
||||||
|
exec-once = swww init
|
||||||
|
exec-once = sleep 5 & swww img /home/insert/Documents/nixos.png
|
||||||
|
#exec-once = ln -sf $XDG_RUNTIME_DIR/{app/com.discordapp.Discord,}/discord-ipc-0
|
||||||
|
exec-once = systemctl --user import-environment PATH
|
||||||
|
exec-once = systemctl --user restart xdg-desktop-portal.service
|
||||||
|
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = no
|
||||||
|
}
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
}
|
||||||
|
|
||||||
|
general {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 20
|
||||||
|
border_size = 2
|
||||||
|
#col.active_border = $overlay1 45deg
|
||||||
|
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
|
#col.inactive_border = rgba(595959aa)
|
||||||
|
col.active_border=$pink $mauve 45deg
|
||||||
|
col.inactive_border=$surface2
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
decoration {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
|
rounding = 10
|
||||||
|
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
drop_shadow = yes
|
||||||
|
shadow_range = 4
|
||||||
|
shadow_render_power = 3
|
||||||
|
col.shadow = $lavender
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = yes
|
||||||
|
|
||||||
|
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
|
||||||
|
animation = windows, 1, 6, myBezier
|
||||||
|
animation = windowsOut, 1, 6, default, popin 80%
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = borderangle, 1, 8, default
|
||||||
|
animation = fade, 1, 5, default
|
||||||
|
animation = workspaces, 1, 4, default
|
||||||
|
}
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = yes # you probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
new_is_master = true
|
||||||
|
}
|
||||||
|
|
||||||
|
gestures {
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
workspace_swipe = off
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Example windowrule v1
|
||||||
|
# windowrule = float, ^(kitty)$
|
||||||
|
# Example windowrule v2
|
||||||
|
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
|
$mainMod = ALT
|
||||||
|
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
bind = $mainMod, Q, exec, kitty zsh
|
||||||
|
bind = $mainMod, C, exec, ~/Documents/closewindow.sh
|
||||||
|
#bind = $mainMod, M, exit,
|
||||||
|
bind = $mainMod, E, exec, kitty nnn
|
||||||
|
bind = $mainMod, V, togglefloating,
|
||||||
|
bind = $mainMod, R, exec, wofi --show drun --allow-images
|
||||||
|
bind = $mainMod, S, pseudo, # dwindle
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle
|
||||||
|
bind = $mainMod, P, exec, grim -g "$(slurp)" - | wl-copy
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow'';
|
||||||
|
};
|
||||||
|
home-manager.users.insert.home.file.".config/hypr/frappe.conf" = {
|
||||||
|
text = ''$rosewaterAlpha = f2d5cf
|
||||||
|
$flamingoAlpha = eebebe
|
||||||
|
$pinkAlpha = f4b8e4
|
||||||
|
$mauveAlpha = ca9ee6
|
||||||
|
$redAlpha = e78284
|
||||||
|
$maroonAlpha = ea999c
|
||||||
|
$peachAlpha = ef9f76
|
||||||
|
$yellowAlpha = e5c890
|
||||||
|
$greenAlpha = a6d189
|
||||||
|
$tealAlpha = 81c8be
|
||||||
|
$skyAlpha = 99d1db
|
||||||
|
$sapphireAlpha = 85c1dc
|
||||||
|
$blueAlpha = 8caaee
|
||||||
|
$lavenderAlpha = babbf1
|
||||||
|
|
||||||
|
$textAlpha = c6d0f5
|
||||||
|
$subtext1Alpha = b5bfe2
|
||||||
|
$subtext0Alpha = a5adce
|
||||||
|
|
||||||
|
$overlay2Alpha = 949cbb
|
||||||
|
$overlay1Alpha = 838ba7
|
||||||
|
$overlay0Alpha = 737994
|
||||||
|
|
||||||
|
$surface2Alpha = 626880
|
||||||
|
$surface1Alpha = 51576d
|
||||||
|
$surface0Alpha = 414559
|
||||||
|
|
||||||
|
$baseAlpha = 303446
|
||||||
|
$mantleAlpha = 292c3c
|
||||||
|
$crustAlpha = 232634
|
||||||
|
|
||||||
|
$rosewater = 0xfff2d5cf
|
||||||
|
$flamingo = 0xffeebebe
|
||||||
|
$pink = 0xfff4b8e4
|
||||||
|
$mauve = 0xffca9ee6
|
||||||
|
$red = 0xffe78284
|
||||||
|
$maroon = 0xffea999c
|
||||||
|
$peach = 0xffef9f76
|
||||||
|
$yellow = 0xffe5c890
|
||||||
|
$green = 0xffa6d189
|
||||||
|
$teal = 0xff81c8be
|
||||||
|
$sky = 0xff99d1db
|
||||||
|
$sapphire = 0xff85c1dc
|
||||||
|
$blue = 0xff8caaee
|
||||||
|
$lavender = 0xffbabbf1
|
||||||
|
|
||||||
|
$text = 0xffc6d0f5
|
||||||
|
$subtext1 = 0xffb5bfe2
|
||||||
|
$subtext0 = 0xffa5adce
|
||||||
|
|
||||||
|
$overlay2 = 0xff949cbb
|
||||||
|
$overlay1 = 0xff838ba7
|
||||||
|
$overlay0 = 0xff737994
|
||||||
|
|
||||||
|
$surface2 = 0xff626880
|
||||||
|
$surface1 = 0xff51576d
|
||||||
|
$surface0 = 0xff414559
|
||||||
|
|
||||||
|
$base = 0xff303446
|
||||||
|
$mantle = 0xff292c3c
|
||||||
|
$crust = 0xff232634'';
|
||||||
|
};
|
||||||
|
home-manager.users.insert.home.file.".config/waybar/frappe.css" = {
|
||||||
|
text = ''/*
|
||||||
|
*
|
||||||
|
* Catppuccin Frappe palette
|
||||||
|
* Maintainer: rubyowo
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@define-color base #303446;
|
||||||
|
@define-color mantle #292c3c;
|
||||||
|
@define-color crust #232634;
|
||||||
|
|
||||||
|
@define-color text #c6d0f5;
|
||||||
|
@define-color subtext0 #a5adce;
|
||||||
|
@define-color subtext1 #b5bfe2;
|
||||||
|
|
||||||
|
@define-color surface0 #414559;
|
||||||
|
@define-color surface1 #51576d;
|
||||||
|
@define-color surface2 #626880;
|
||||||
|
|
||||||
|
@define-color overlay0 #737994;
|
||||||
|
@define-color overlay1 #838ba7;
|
||||||
|
@define-color overlay2 #949cbb;
|
||||||
|
|
||||||
|
@define-color blue #8caaee;
|
||||||
|
@define-color lavender #babbf1;
|
||||||
|
@define-color sapphire #85c1dc;
|
||||||
|
@define-color sky #99d1db;
|
||||||
|
@define-color teal #81c8be;
|
||||||
|
@define-color green #a6d189;
|
||||||
|
@define-color yellow #e5c890;
|
||||||
|
@define-color peach #ef9f76;
|
||||||
|
@define-color maroon #ea999c;
|
||||||
|
@define-color red #e78284;
|
||||||
|
@define-color mauve #ca9ee6;
|
||||||
|
@define-color pink #f4b8e4;
|
||||||
|
@define-color flamingo #eebebe;
|
||||||
|
@define-color rosewater #f2d5cf;'';
|
||||||
|
};
|
||||||
|
}
|
51
sunshine.nix
Normal file
51
sunshine.nix
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
#source: https://github.com/RandomNinjaAtk/nixos/blob/d2480c148e882f49e5caa6267060fd2d9e10af9b/services.sunshine.nix
|
||||||
|
#https://discourse.nixos.org/t/sunshine-self-hosted-game-stream/25608/16
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.sunshine;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.sunshine = {
|
||||||
|
enable = mkEnableOption (mdDoc "Sunshine");
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.services.sunshine.enable {
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.sunshine
|
||||||
|
];
|
||||||
|
|
||||||
|
security.wrappers.sunshine = {
|
||||||
|
owner = "root";
|
||||||
|
group = "root";
|
||||||
|
capabilities = "cap_sys_admin+p";
|
||||||
|
source = "${pkgs.sunshine}/bin/sunshine";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Requires to simulate input
|
||||||
|
boot.kernelModules = [ "uinput" ];
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess"
|
||||||
|
'';
|
||||||
|
|
||||||
|
systemd.user.services.sunshine =
|
||||||
|
{
|
||||||
|
description = "sunshine";
|
||||||
|
wantedBy = [ "graphical-session.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${config.security.wrapperDir}/sunshine";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue