moved config
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
{ den, ... }:
|
||||||
|
{
|
||||||
|
den.default = {
|
||||||
|
nixos.system.stateVersion = "25.11";
|
||||||
|
homeManager.home.stateVersion = "25.11";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{ inputs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.flake-file.flakeModules.dendritic
|
||||||
|
inputs.den.flakeModules.dendritic
|
||||||
|
];
|
||||||
|
flake-file.do-not-edit = "You FAGGOT; Do NOT edit this file !!!!, run 'nix run .#write-flake' ";
|
||||||
|
flake-file.outputs = lib.mkForce ''
|
||||||
|
inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config)
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.desktop = {
|
||||||
|
includes = [ modules.disko ];
|
||||||
|
nixos =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
device = lib.mkDefault "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
name = "ESP";
|
||||||
|
priority = 1;
|
||||||
|
size = "4G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ]; # Override existing partition
|
||||||
|
# Subvolumes must set a mountpoint in order to be mounted,
|
||||||
|
# unless their parent is mounted
|
||||||
|
subvolumes = {
|
||||||
|
# Subvolume name is different from mountpoint
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
# Subvolume name is the same as the mountpoint
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
};
|
||||||
|
# Parent is not mounted so the mountpoint must be set
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
};
|
||||||
|
"@blackhole" = {
|
||||||
|
mountpoint = "/var/blackhole";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-desktop = {
|
||||||
|
includes = [
|
||||||
|
<den/primary-user>
|
||||||
|
den.aspects.doloro-shared
|
||||||
|
modules.sops
|
||||||
|
modules.fish
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
users.users.doloro = {
|
||||||
|
shell = pkgs.fish;
|
||||||
|
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
pkgs,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.desktop = {
|
||||||
|
includes = [
|
||||||
|
modules.nix
|
||||||
|
modules.hyprland
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.device = "nodev";
|
||||||
|
boot.loader.grub.devices = [
|
||||||
|
"/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
|
||||||
|
"nodev"
|
||||||
|
];
|
||||||
|
#boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.grub.efiSupport = true;
|
||||||
|
boot.loader.grub.efiInstallAsRemovable = true;
|
||||||
|
networking.hostName = "doloroo-main"; # Define your hostname.
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
# Enable "Silent boot"
|
||||||
|
boot.consoleLogLevel = 3;
|
||||||
|
boot.initrd.verbose = false;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"splash"
|
||||||
|
"boot.shell_on_fail"
|
||||||
|
"udev.log_priority=3"
|
||||||
|
"rd.systemd.show_status=auto"
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
fileSystems."/mnt/2tb" = {
|
||||||
|
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [
|
||||||
|
# If you don't have this options attribute, it'll default to "defaults"
|
||||||
|
# boot options for fstab. Search up fstab mount options you can use
|
||||||
|
"defaults"
|
||||||
|
"users" # Allows any user to mount and unmount
|
||||||
|
"nofail" # Prevent system from failing if this drive doesn't mount
|
||||||
|
"exec"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
|
||||||
|
# Modesetting is required.
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
|
# of just the bare essentials.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
# prime.offload.enable = true;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from 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.latest;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-shared = {
|
||||||
|
includes = [
|
||||||
|
modules.nixvim
|
||||||
|
modules.nix
|
||||||
|
];
|
||||||
|
homeManager = {
|
||||||
|
home = {
|
||||||
|
username = "doloro";
|
||||||
|
homeDirectory = "/home/doloro";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = [ modules.disko ];
|
||||||
|
nixos =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
name = "ESP";
|
||||||
|
priority = 1;
|
||||||
|
size = "4G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
plainSwap = {
|
||||||
|
size = "48G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both"; # Both "once" and page discard policies
|
||||||
|
resumeDevice = true; # Use for hibernation resume device
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ]; # Override existing partition
|
||||||
|
# Subvolumes must set a mountpoint in order to be mounted,
|
||||||
|
# unless their parent is mounted
|
||||||
|
subvolumes = {
|
||||||
|
# Subvolume name is different from mountpoint
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
# Subvolume name is the same as the mountpoint
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
};
|
||||||
|
# Parent is not mounted so the mountpoint must be set
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-laptop = {
|
||||||
|
includes = [
|
||||||
|
<den/primary-user>
|
||||||
|
den.aspects.doloro-shared
|
||||||
|
modules.user.doloro
|
||||||
|
modules.sops
|
||||||
|
modules.fish
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
users.users.doloro = {
|
||||||
|
shell = pkgs.fish;
|
||||||
|
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = [
|
||||||
|
modules.nix
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
|
||||||
|
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
# Configure network connections interactively with nmcli or nmtui.
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
# time.timeZone = "Europe/London";
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://attic.scug.io/pkgs"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||||
|
];
|
||||||
|
experimental-features = [
|
||||||
|
"flakes"
|
||||||
|
"nix-command"
|
||||||
|
];
|
||||||
|
trusted-users = [
|
||||||
|
"doloro"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
firmware = [ pkgs.intel-npu-driver ];
|
||||||
|
cpu.intel = {
|
||||||
|
# npu.enable = true;
|
||||||
|
};
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
vpl-gpu-rt
|
||||||
|
intel-media-driver # VA-API (iHD) userspace
|
||||||
|
intel-vaapi-driver
|
||||||
|
# vpl-gpu-rt # oneVPL (QSV) runtime
|
||||||
|
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = true;
|
||||||
|
PermitRootLogin = "prohibit-password";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
# i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
# console = {
|
||||||
|
# font = "Lat2-Terminus16";
|
||||||
|
# keyMap = "us";
|
||||||
|
# useXkbConfig = true; # use xkb.options in tty.
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.libinput.enable = true;
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
# users.users.doloro = {
|
||||||
|
# isNormalUser = true;
|
||||||
|
# shell = pkgs.fish;
|
||||||
|
# extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
# packages = with pkgs; [
|
||||||
|
# tree
|
||||||
|
# ];
|
||||||
|
# hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
# openssh.authorizedKeys.keys = [
|
||||||
|
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc public key
|
||||||
|
# ];
|
||||||
|
# # initialPassword = "sex";
|
||||||
|
# };
|
||||||
|
users.mutableUsers = false;
|
||||||
|
services.system76-scheduler.enable = true;
|
||||||
|
|
||||||
|
# programs.firefox.enable = true;
|
||||||
|
|
||||||
|
# List packages installed in system profile.
|
||||||
|
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||||
|
# environment.systemPackages = with pkgs; [
|
||||||
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
# git
|
||||||
|
# wget
|
||||||
|
# # tlp-pd
|
||||||
|
# brightnessctl
|
||||||
|
# nvtopPackages.intel
|
||||||
|
# seahorse
|
||||||
|
# ];
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
|
# accidentally delete configuration.nix.
|
||||||
|
|
||||||
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
|
#
|
||||||
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
|
#
|
||||||
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
|
# to actually do that.
|
||||||
|
#
|
||||||
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
|
# out of date, out of support, or vulnerable.
|
||||||
|
#
|
||||||
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
|
# and migrated your data accordingly.
|
||||||
|
#
|
||||||
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
|
system.stateVersion = "25.11"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{ den, __findFile, ... }:
|
||||||
|
{
|
||||||
|
# Homes
|
||||||
|
den.homes.x86_64-linux.doloro-desktop = {
|
||||||
|
userName = "doloro";
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
# den.homes.x86_64-linux.doloro-laptop = {
|
||||||
|
# userName = "doloro";
|
||||||
|
# };
|
||||||
|
# Machines
|
||||||
|
den.hosts.x86_64-linux.desktop = {
|
||||||
|
users.doloro = {
|
||||||
|
includes = [ <modules/user/groups> ];
|
||||||
|
aspect = "doloro-desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
# den.hosts.x86_64-linux.laptop = {
|
||||||
|
# users.doloro = {
|
||||||
|
# aspect = "doloro-laptop";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
den.url = "github:vic/den";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs.disko.url = "github:nix-community/disko";
|
||||||
|
modules.disko = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.disko.nixosModules.disko ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.dunst = {
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
font = "Noto Nerd Font 8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{ modules, pkgs, ... }:
|
||||||
|
{
|
||||||
|
modules.fish = {
|
||||||
|
nixos = {
|
||||||
|
programs.fish.enable = true;
|
||||||
|
};
|
||||||
|
homeManager = {
|
||||||
|
home.shell.enableFishIntegration = true;
|
||||||
|
home.packages = [ pkgs.nix-output-monitor ];
|
||||||
|
programs = {
|
||||||
|
fish = {
|
||||||
|
enable = true;
|
||||||
|
shellInit = ''
|
||||||
|
set -g theme_nerd_fonts yes
|
||||||
|
set -g theme_color_scheme nord
|
||||||
|
set -g theme_display_user yes
|
||||||
|
set -g fish_color_autosuggestion 6F6578
|
||||||
|
alias nik 'nix'
|
||||||
|
'';
|
||||||
|
# alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
|
||||||
|
# alias hms 'home-manager switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "bobthefish";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "theme-bobthefish";
|
||||||
|
rev = "e3b4d4eafc23516e35f162686f08a42edf844e40";
|
||||||
|
sha256 = "sha256-cXOYvdn74H4rkMWSC7G6bT4wa9d3/3vRnKed2ixRnuA=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
icons = "auto";
|
||||||
|
git = true;
|
||||||
|
extraOptions = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
};
|
||||||
|
modules.hyprland = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.xwayland.enable = true;
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
# withUWSM = true;
|
||||||
|
# set the flake package
|
||||||
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
# make sure to also set the portal package, so that they are in sync
|
||||||
|
portalPackage =
|
||||||
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
};
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
# extraPortals = [ pkgs.xdg-desktop-portal-cosmic ];
|
||||||
|
};
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
hardware.graphics = {
|
||||||
|
# package = pkgs-unstable.mesa;
|
||||||
|
|
||||||
|
# if you also want 32-bit support (e.g for Steam)
|
||||||
|
# enable32Bit = true;
|
||||||
|
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.variables = [ "--all" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
modules.nix = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://attic.scug.io/pkgs"
|
||||||
|
"https://cache.nixos-cuda.org"
|
||||||
|
"https://niri.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||||
|
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
||||||
|
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||||
|
];
|
||||||
|
experimental-features = [
|
||||||
|
"flakes"
|
||||||
|
"nix-command"
|
||||||
|
];
|
||||||
|
trusted-users = [
|
||||||
|
"doloro"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,278 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Its in its own folder for future modulizaion efforts
|
||||||
|
flake-file.inputs = {
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules = {
|
||||||
|
nixvim = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeModules.nixvim
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
colorschemes.gruvbox-material.enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# formatters
|
||||||
|
nixfmt
|
||||||
|
rustfmt
|
||||||
|
# misc
|
||||||
|
ripgrep
|
||||||
|
# misc
|
||||||
|
nixd
|
||||||
|
];
|
||||||
|
performance.byteCompileLua = {
|
||||||
|
enable = true;
|
||||||
|
plugins = true;
|
||||||
|
nvimRuntime = true;
|
||||||
|
luaLib = true;
|
||||||
|
configs = true;
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
todo-comments.enable = true;
|
||||||
|
lsp-status.enable = true;
|
||||||
|
transparent.enable = true;
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
nix = [ "nixfmt" ];
|
||||||
|
rust = [ "rustfmt" ];
|
||||||
|
"_" = [
|
||||||
|
"squeeze_blanks"
|
||||||
|
"trim_whitespace"
|
||||||
|
"trim_newlines"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
format_on_save = {
|
||||||
|
timeout_ms = 500;
|
||||||
|
lsp_format = "fallback";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
servers = {
|
||||||
|
qmlls = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
cmd = "-E";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rust_analyzer = {
|
||||||
|
enable = true;
|
||||||
|
installCargo = false;
|
||||||
|
installRustc = false;
|
||||||
|
};
|
||||||
|
nixd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
astro = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
ts_ls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
svelte.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp-format = {
|
||||||
|
enable = true;
|
||||||
|
# lspServersToEnable = [ "qmlls" ];
|
||||||
|
};
|
||||||
|
notify = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
background_color = "#00000000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mini-cursorword.enable = true;
|
||||||
|
# mini-statusline.enable = true;
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
sections = {
|
||||||
|
lualine_a = [ "mode" ];
|
||||||
|
lualine_b = [
|
||||||
|
"branch"
|
||||||
|
"diff"
|
||||||
|
"diagnostics"
|
||||||
|
];
|
||||||
|
lualine_c = [ "filename" ];
|
||||||
|
lualine_x = [
|
||||||
|
"encoding"
|
||||||
|
"fileformat"
|
||||||
|
"filetype"
|
||||||
|
];
|
||||||
|
lualine_y = [ "lsp_status" ];
|
||||||
|
lualine_z = [ "location" ];
|
||||||
|
};
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = [ ];
|
||||||
|
lualine_b = [ ];
|
||||||
|
lualine_c = [ "filename" ];
|
||||||
|
lualine_x = [ "location" ];
|
||||||
|
lualine_y = [ ];
|
||||||
|
lualine_z = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
web-devicons.enable = true;
|
||||||
|
vim-dadbod-completion.enable = true;
|
||||||
|
telescope.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
mini-indentscope = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
draw = {
|
||||||
|
delay = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mini-files = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
windows = {
|
||||||
|
preview = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
trouble.enable = true;
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "path"; }
|
||||||
|
{ name = "buffer"; }
|
||||||
|
];
|
||||||
|
mapping = {
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-e>" = "cmp.mapping.close()";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lspkind.enable = true;
|
||||||
|
tiny-inline-diagnostic.enable = true;
|
||||||
|
# persisted.enable = true;
|
||||||
|
auto-session = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enabled = true;
|
||||||
|
auto_save = true;
|
||||||
|
auto_restore = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wakatime.enable = true;
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||||
|
bash
|
||||||
|
json
|
||||||
|
lua
|
||||||
|
make
|
||||||
|
markdown
|
||||||
|
nix
|
||||||
|
regex
|
||||||
|
toml
|
||||||
|
vim
|
||||||
|
vimdoc
|
||||||
|
xml
|
||||||
|
yaml
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
highlight.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPlugins = with pkgs; [
|
||||||
|
# vimPlugins.mini-completion
|
||||||
|
vimPlugins.mini-comment
|
||||||
|
vimPlugins.melange-nvim
|
||||||
|
vimPlugins.telescope-file-browser-nvim
|
||||||
|
vimPlugins.lsp-progress-nvim
|
||||||
|
];
|
||||||
|
opts = {
|
||||||
|
number = true;
|
||||||
|
bg = "dark";
|
||||||
|
tabstop = 2;
|
||||||
|
shiftwidth = 2;
|
||||||
|
termguicolors = true;
|
||||||
|
};
|
||||||
|
globals = {
|
||||||
|
mapleader = " ";
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope persisted<cr>";
|
||||||
|
key = "<leader>fs";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope find_files<cr>";
|
||||||
|
key = "<leader>ff";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>:lua MiniFiles.open()<cr>";
|
||||||
|
key = "<leader>fv";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>LazyGit<cr>";
|
||||||
|
key = "<leader>lg";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope buffers<cr>";
|
||||||
|
key = "<leader>fb";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope live_grep<cr>";
|
||||||
|
key = "<leader>fg";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Trouble diagnostics toggle<cr>";
|
||||||
|
key = "<leader>fd";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{ inputs, modules, ... }:
|
||||||
|
{
|
||||||
|
#
|
||||||
|
flake-file.inputs = {
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.sops = {
|
||||||
|
homeManager = {
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
|
];
|
||||||
|
sops = {
|
||||||
|
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixos = {
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
];
|
||||||
|
sops = {
|
||||||
|
age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
secrets = {
|
||||||
|
root-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
doloro-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{ pkgs, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.tmux = {
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
sensible
|
||||||
|
minimal-tmux-status
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
set-option -g default-terminal "xterm-256color"
|
||||||
|
set -a terminal-features "xterm-256color:RGB"
|
||||||
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.user.groups =
|
||||||
|
{ config, user, ... }:
|
||||||
|
{
|
||||||
|
nixos = {
|
||||||
|
users.users.${user.userName} = {
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
den,
|
||||||
|
__findFile ? __findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
_module.args.__findFile = den.lib.__findFile;
|
||||||
|
imports = [
|
||||||
|
inputs.den.flakeModule
|
||||||
|
(inputs.den.namespace "modules" true)
|
||||||
|
# (inputs.den.namespace "hosts" true)
|
||||||
|
];
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
Generated
+106
-1355
File diff suppressed because it is too large
Load Diff
@@ -1,195 +1,34 @@
|
|||||||
|
# You FAGGOT; Do NOT edit this file !!!!, run 'nix run .#write-flake'
|
||||||
{
|
{
|
||||||
description = "Home Manager configuration of doloro";
|
|
||||||
|
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config);
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Specify the source of Home Manager and Nixpkgs.
|
den.url = "github:vic/den";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
disko.url = "github:nix-community/disko";
|
||||||
rpi-nixpkgs.url = "github:nvmd/nixpkgs/modules-with-keys-25.11";
|
flake-aspects.url = "github:vic/flake-aspects";
|
||||||
|
flake-file.url = "github:vic/flake-file";
|
||||||
|
flake-parts = {
|
||||||
|
inputs.nixpkgs-lib.follows = "nixpkgs-lib";
|
||||||
|
url = "github:hercules-ci/flake-parts";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
};
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
|
||||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git?ref=paws"; # config manager, meow'd
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
rsRPC.url = "github:Doloro1978/rsRPC";
|
import-tree.url = "github:vic/import-tree";
|
||||||
protonhax.url = "github:linusfri/protonhax-nix";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
nixpkgs-lib.follows = "nixpkgs";
|
||||||
quickshell = {
|
nixvim = {
|
||||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
url = "github:nix-community/nixvim";
|
||||||
heliumFlake = {
|
|
||||||
url = "github:vikingnope/helium-browser-nix-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nikkuss-pkgs = {
|
|
||||||
url = "git+https://git.scug.io/nikkuss/pkgs";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
zen-browser = {
|
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
inputs = {
|
|
||||||
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
|
|
||||||
# to have it up-to-date or simply don't specify the nixpkgs input
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
};
|
||||||
disko = {
|
systems.url = "github:nix-systems/default";
|
||||||
url = "github:nix-community/disko/latest";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
stylix = {
|
|
||||||
url = "github:nix-community/stylix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
|
||||||
nixvim = {
|
|
||||||
url = "github:nix-community/nixvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
spicetify-nix = {
|
|
||||||
url = "github:Gerg-L/spicetify-nix";
|
|
||||||
};
|
|
||||||
nix-warez = {
|
|
||||||
# Blender-bin
|
|
||||||
url = "github:edolstra/nix-warez?dir=blender";
|
|
||||||
};
|
|
||||||
nixpkgs-gamescope = {
|
|
||||||
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
|
|
||||||
};
|
|
||||||
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
|
||||||
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/develop";
|
|
||||||
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
|
||||||
niri-flake.url = "github:sodiboo/niri-flake";
|
|
||||||
};
|
};
|
||||||
outputs =
|
|
||||||
inputs@{
|
|
||||||
nixpkgs,
|
|
||||||
home-manager,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
overlays = [
|
|
||||||
# inputs.nikkuss-pkgs.overlays.default
|
|
||||||
(final: prev: {
|
|
||||||
arrpc = prev.arrpc.overrideAttrs (preve: rec {
|
|
||||||
pname = preve.pname + "-meow";
|
|
||||||
version = "94d3ec81";
|
|
||||||
patches = [ ./deadlock.patch ];
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "XenHat";
|
|
||||||
repo = "arrpc";
|
|
||||||
# branch = "improved-detection-fixes";
|
|
||||||
rev = "94d3ec81339f94e563af512b83db369596d05d3b";
|
|
||||||
sha256 = "sha256-DI/HCrmiQo1lPkErCNXOpdQli2wua03PDjdlERrpxTg=";
|
|
||||||
};
|
|
||||||
npmDepsHash = prev.lib.fakeHash;
|
|
||||||
npmDeps = final.fetchNpmDeps {
|
|
||||||
inherit src;
|
|
||||||
name = "${pname}-${version}-npm-deps";
|
|
||||||
hash = "sha256-lw6pngFC2Pnk+I8818TOTwN4r+8IsjvdMYIyTsTi49g=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
})
|
|
||||||
# (
|
|
||||||
# final: prev:
|
|
||||||
# let
|
|
||||||
# system = prev.stdenv.hostPlatform.system;
|
|
||||||
# pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
|
||||||
# inherit system;
|
|
||||||
# config = {
|
|
||||||
# allow_unfree = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
|
||||||
# in
|
|
||||||
# {
|
|
||||||
# gamescope = pkgs_gamescope.callPackage packageNix { };
|
|
||||||
# }
|
|
||||||
# )
|
|
||||||
(self: super: {
|
|
||||||
intel-npu-driver = super.intel-npu-driver.overrideAttrs (oldAttrs: rec {
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/lib/firmware
|
|
||||||
${oldAttrs.installPhase}
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
(final: prev: {
|
|
||||||
vesktop = prev.vesktop.overrideAttrs (old: {
|
|
||||||
preBuild = ''
|
|
||||||
cp -r ${prev.electron.dist} electron-dist
|
|
||||||
chmod -R u+w electron-dist
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
pnpm build
|
|
||||||
pnpm exec electron-builder \
|
|
||||||
--dir \
|
|
||||||
-c.asarUnpack="**/*.node" \
|
|
||||||
-c.electronDist="electron-dist" \
|
|
||||||
-c.electronVersion=${prev.electron.version}
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
|
||||||
utils = nix-meow.lib.setup {
|
|
||||||
inherit (inputs) home-manager nixpkgs;
|
|
||||||
inherit inputs;
|
|
||||||
flakeRoot = ./.;
|
|
||||||
hostsFolder = ./hosts;
|
|
||||||
hardwaresFolder = ./hardwares;
|
|
||||||
modulesFolder = ./modules;
|
|
||||||
globalConfig = {
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
globalOverlays = overlays;
|
|
||||||
defaultUser = "doloro";
|
|
||||||
};
|
|
||||||
inherit (utils) mkHost;
|
|
||||||
configurations = [
|
|
||||||
# Desktops
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro";
|
|
||||||
host = "doloro";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.05";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
cudaSupport = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro-laptop";
|
|
||||||
host = "doloro-laptop";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
# Servers
|
|
||||||
(mkHost {
|
|
||||||
hardware = "rpi-5";
|
|
||||||
host = "rpi-5";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
# nixpkgs = inputs.rpi-nixpkgs;
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
in
|
|
||||||
(utils.deepMerge configurations);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
imports = [ inputs.disko.nixosModules.disko ];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/nvme0n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "48G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
resumeDevice = true; # Use for hibernation resume device
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ]; # Override existing partition
|
|
||||||
# Subvolumes must set a mountpoint in order to be mounted,
|
|
||||||
# unless their parent is mounted
|
|
||||||
subvolumes = {
|
|
||||||
# Subvolume name is different from mountpoint
|
|
||||||
"@" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
# Subvolume name is the same as the mountpoint
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
};
|
|
||||||
# Parent is not mounted so the mountpoint must be set
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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"
|
|
||||||
"thunderbolt"
|
|
||||||
"vmd"
|
|
||||||
"nvme"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{lib,...}:{imports=[./disks.nix ./hardware-configuration.nix]; }
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = lib.mkDefault "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ]; # Override existing partition
|
|
||||||
# Subvolumes must set a mountpoint in order to be mounted,
|
|
||||||
# unless their parent is mounted
|
|
||||||
subvolumes = {
|
|
||||||
# Subvolume name is different from mountpoint
|
|
||||||
"@" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
# Subvolume name is the same as the mountpoint
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
};
|
|
||||||
# Parent is not mounted so the mountpoint must be set
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
"@blackhole" = {
|
|
||||||
mountpoint = "/var/blackhole";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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 = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./disks.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
boot.loader.grub.useOSProber = lib.mkOverride 0 false;
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
{ inputs, lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [ inputs.disko.nixosModules.disko ];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "8G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "ext4";
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ./disks.nix
|
|
||||||
# (modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
|
|
||||||
];
|
|
||||||
# fileSystems = {
|
|
||||||
# "/" = {
|
|
||||||
# device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
# fsType = "ext4";
|
|
||||||
# options = [ "noatime" ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
boot.supportedFilesystems = lib.mkForce [
|
|
||||||
"btrfs"
|
|
||||||
"reiserfs"
|
|
||||||
"vfat"
|
|
||||||
"ext4"
|
|
||||||
"f2fs"
|
|
||||||
"xfs"
|
|
||||||
"ntfs"
|
|
||||||
"cifs"
|
|
||||||
];
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/126755#issuecomment-869149243
|
|
||||||
(final: super: {
|
|
||||||
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
system,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
];
|
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
|
||||||
};
|
|
||||||
modules = {
|
|
||||||
Hyprland.enable = true;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
helium.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
wakatime.enable = false;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
zen-browser.enable = false;
|
|
||||||
kitty.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
theme.enable = true;
|
|
||||||
obs = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false;
|
|
||||||
};
|
|
||||||
blender.enable = false;
|
|
||||||
bottles.enable = false;
|
|
||||||
fish.enable = true;
|
|
||||||
youtube-music.enable = true;
|
|
||||||
unityhub.enable = false;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
rsRPC.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
arrpc = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"eDP-1, 2880x1800@120, 0x0, 2"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
telegram-desktop
|
|
||||||
# vesktop
|
|
||||||
legcord
|
|
||||||
pavucontrol
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
intel-gpu-tools
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
|
||||||
# plain files is through 'home.file'.
|
|
||||||
home.file = {
|
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
|
||||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
|
||||||
# shell provided by Home Manager. If you don't want to manage your shell
|
|
||||||
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
|
||||||
# located at either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/doloro/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
dunst = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [
|
|
||||||
"~/.ssh/id_ed25519"
|
|
||||||
"~/.ssh/id_gitea_scug"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e
|
|
||||||
echo "800" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d
|
|
||||||
echo "2350" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.tlp = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# Wireless power saving
|
|
||||||
WIFI_PWR_ON_BAT = "1";
|
|
||||||
|
|
||||||
# USB autosuspend
|
|
||||||
USB_AUTOSUSPEND = "1";
|
|
||||||
|
|
||||||
# SATA drive power management
|
|
||||||
SATA_LINKPWR_ON_BAT = "min_power";
|
|
||||||
|
|
||||||
# PCI Express Active-State Power Management (ASPM)
|
|
||||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
|
||||||
|
|
||||||
RUNTIME_PM_ON_AC = "on";
|
|
||||||
RUNTIME_PM_ON_BAT = "auto";
|
|
||||||
|
|
||||||
# Disable Bluetooth on battery
|
|
||||||
# DEVICES_TO_DISABLE_ON_BAT = "bluetooth";
|
|
||||||
|
|
||||||
# Restore brightness on battery
|
|
||||||
RESTORE_BRIGHTNESS_ON_BAT = "1";
|
|
||||||
PCIE_ASPM_ON_AC = "balanced";
|
|
||||||
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth";
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_BAT = 800;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_BAT = 800;
|
|
||||||
|
|
||||||
CPU_MAX_PERF_ON_BAT = 50;
|
|
||||||
|
|
||||||
PLATFORM_PROFILE_ON_AC = "balanced";
|
|
||||||
PLATFORM_PROFILE_ON_BAT = "quiet";
|
|
||||||
STOP_CHARGE_THRESH_BAT0 = 80;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.thermald.enable = true;
|
|
||||||
services.upower = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
services.auto-cpufreq.enable = true;
|
|
||||||
|
|
||||||
systemd.targets = {
|
|
||||||
"ac" = {
|
|
||||||
description = "On AC power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"battery" = {
|
|
||||||
description = "On battery power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/run/current-system/systemd/bin/systemctl start battery.target"
|
|
||||||
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/run/current-system/systemd/bin/systemctl start ac.target"
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.auto-cpufreq.settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "powersave";
|
|
||||||
turbo = "never";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
boot.kernelParams = [
|
|
||||||
# "mem_sleep_default=deep"
|
|
||||||
# "i915.fastboot=1"
|
|
||||||
"pcie_aspm=force"
|
|
||||||
"ahci.mobile_lpm_policy=1"
|
|
||||||
];
|
|
||||||
services.logind.settings.Login = {
|
|
||||||
HandleLidSwitch = "suspend";
|
|
||||||
HandleLidSwitchExternalPower = "suspend";
|
|
||||||
HandleLidSwitchDocked = "ignore";
|
|
||||||
};
|
|
||||||
systemd.sleep.extraConfig = ''
|
|
||||||
HibernateDelaySec=30min
|
|
||||||
SuspendEstimationSec=120
|
|
||||||
'';
|
|
||||||
|
|
||||||
systemd.services.gpu-limit-on-batt = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "battery.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${batt-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "battery.target" ];
|
|
||||||
partOf = [ "battery.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.gpu-limit-on-ac = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "ac.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${ac-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "ac.target" ];
|
|
||||||
partOf = [ "ac.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.rfkill-sleep-wake = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "sleep.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStop = "${pkgs.utillinux}/bin/rfkill unblock all";
|
|
||||||
ExecStart = "${pkgs.utillinux}/bin/rfkill block all";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "sleep.target" ];
|
|
||||||
partOf = [ "sleep.target" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
# one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock"
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
# powertop.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sops = inputs.sops-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
./laptop.nix
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
|
|
||||||
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
# time.timeZone = "Europe/London";
|
|
||||||
services.automatic-timezoned.enable = true;
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://attic.scug.io/pkgs"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
|
||||||
];
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"doloro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
firmware = [ pkgs.intel-npu-driver ];
|
|
||||||
cpu.intel = {
|
|
||||||
# npu.enable = true;
|
|
||||||
};
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
vpl-gpu-rt
|
|
||||||
intel-media-driver # VA-API (iHD) userspace
|
|
||||||
intel-vaapi-driver
|
|
||||||
# vpl-gpu-rt # oneVPL (QSV) runtime
|
|
||||||
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitRootLogin = "prohibit-password";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = true;
|
|
||||||
|
|
||||||
# sops.age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
sops = {
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets = {
|
|
||||||
root-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
doloro-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.libinput.enable = true;
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.fish;
|
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
tree
|
|
||||||
];
|
|
||||||
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc public key
|
|
||||||
];
|
|
||||||
# initialPassword = "sex";
|
|
||||||
};
|
|
||||||
users.mutableUsers = false;
|
|
||||||
services.system76-scheduler.enable = true;
|
|
||||||
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
git
|
|
||||||
wget
|
|
||||||
# tlp-pd
|
|
||||||
brightnessctl
|
|
||||||
nvtopPackages.intel
|
|
||||||
seahorse
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.11"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
hyfetch.enable = true;
|
|
||||||
Hyprland = {
|
|
||||||
enable = true;
|
|
||||||
suspend-on-hibernate = true;
|
|
||||||
};
|
|
||||||
niri.enable = false;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
helium.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
kitty.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
theme.enable = true;
|
|
||||||
obs = {
|
|
||||||
enable = true;
|
|
||||||
autostart = true;
|
|
||||||
};
|
|
||||||
blender.enable = true;
|
|
||||||
zen-browser.enable = false;
|
|
||||||
bottles.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
youtube-music.enable = true;
|
|
||||||
unityhub.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
rsRPC.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
|
||||||
"DP-3, 1920x1080@144, 1920x0, 1"
|
|
||||||
];
|
|
||||||
exec-once = [
|
|
||||||
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
|
|
||||||
];
|
|
||||||
workspace = [
|
|
||||||
"name:2, monitor:DP-3"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = -0.5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
arrpc = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
telegram-desktop
|
|
||||||
vesktop
|
|
||||||
(inputs.protonhax.packages.x86_64-linux.default)
|
|
||||||
pavucontrol
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
protontricks
|
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
(inputs.hytale-launcher.packages.x86_64-linux.default)
|
|
||||||
];
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
dunst = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [
|
|
||||||
"~/.ssh/id_ed25519"
|
|
||||||
"~/.ssh/id_gitea_scug"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,321 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sops = inputs.sops-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
niri.enable = false;
|
|
||||||
wivrn.enable = true;
|
|
||||||
remoteBuild.become-remote-builder = true;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.resolved.enable = true;
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.device = "nodev";
|
|
||||||
boot.loader.grub.devices = [
|
|
||||||
"/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
|
|
||||||
"nodev"
|
|
||||||
];
|
|
||||||
#boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.grub.efiSupport = true;
|
|
||||||
boot.loader.grub.efiInstallAsRemovable = true;
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://attic.scug.io/pkgs"
|
|
||||||
"https://cache.nixos-cuda.org"
|
|
||||||
"https://niri.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
|
||||||
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
|
||||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
|
||||||
];
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"doloro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "doloroo-main"; # Define your hostname.
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
# Enable "Silent boot"
|
|
||||||
boot.consoleLogLevel = 3;
|
|
||||||
boot.initrd.verbose = false;
|
|
||||||
boot.kernelParams = [
|
|
||||||
"quiet"
|
|
||||||
"splash"
|
|
||||||
"boot.shell_on_fail"
|
|
||||||
"udev.log_priority=3"
|
|
||||||
"rd.systemd.show_status=auto"
|
|
||||||
];
|
|
||||||
# Hide the OS choice for bootloaders.
|
|
||||||
# It's still possible to open the bootloader list by pressing any key
|
|
||||||
# It will just not appear on screen unless a key is pressed
|
|
||||||
boot.loader.timeout = 0;
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
sops = {
|
|
||||||
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets = {
|
|
||||||
root-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
doloro-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/London";
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
|
|
||||||
fileSystems."/mnt/2tb" = {
|
|
||||||
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
|
|
||||||
fsType = "ext4";
|
|
||||||
options = [
|
|
||||||
# If you don't have this options attribute, it'll default to "defaults"
|
|
||||||
# boot options for fstab. Search up fstab mount options you can use
|
|
||||||
"defaults"
|
|
||||||
"users" # Allows any user to mount and unmount
|
|
||||||
"nofail" # Prevent system from failing if this drive doesn't mount
|
|
||||||
"exec"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
boot.plymouth = {
|
|
||||||
enable = true;
|
|
||||||
theme = "rings";
|
|
||||||
themePackages = with pkgs; [
|
|
||||||
# By default we would install all themes
|
|
||||||
(adi1090x-plymouth-themes.override {
|
|
||||||
selected_themes = [ "rings" ];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
# prime.offload.enable = true;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from 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.latest;
|
|
||||||
};
|
|
||||||
|
|
||||||
# fonts = {
|
|
||||||
# enableDefaultPackages = true;
|
|
||||||
# packages =
|
|
||||||
# with pkgs;
|
|
||||||
# [
|
|
||||||
# nerd-fonts.jetbrains-mono
|
|
||||||
# material-design-icons
|
|
||||||
# material-symbols
|
|
||||||
# googlesans-code
|
|
||||||
# nerd-fonts.caskaydia-cove
|
|
||||||
# nerd-fonts.noto
|
|
||||||
# noto-fonts-cjk-sans
|
|
||||||
# noto-fonts-cjk-serif
|
|
||||||
# ]
|
|
||||||
# ++ [
|
|
||||||
# (inputs.font-patcher.lib.patchFont {
|
|
||||||
# font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
|
||||||
# name = "Google Sans Code Nerd Font";
|
|
||||||
# inherit system;
|
|
||||||
# })
|
|
||||||
# ];
|
|
||||||
# fontDir.enable = true;
|
|
||||||
# };
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
programs.nix-ld.libraries = with pkgs; [
|
|
||||||
fuse
|
|
||||||
libusb1
|
|
||||||
libGL
|
|
||||||
harfbuzz
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
# services.xserver.xkb.layout = "us";
|
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
# services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
# services.pulseaudio.enable = true;
|
|
||||||
# OR
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
# enable = true;
|
|
||||||
# startAgent = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
fish.enable = true;
|
|
||||||
};
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.libinput.enable = true;
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.fish;
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"dialout"
|
|
||||||
"networkmanager"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
tree
|
|
||||||
];
|
|
||||||
};
|
|
||||||
users.mutableUsers = false;
|
|
||||||
users.users.doloro.hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
# users.users.root.hashedPasswordFile = config.sops.secrets."root-hashed_password".path;
|
|
||||||
users.users.root.initialPassword = "root";
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
wget
|
|
||||||
killall
|
|
||||||
sops
|
|
||||||
seahorse
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
# system.copySystemConfiguration = true;
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.11"; # Did you read the comment?
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
hyfetch.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
# theme.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
# services = {
|
|
||||||
# };
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.11"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
];
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
rpi-pi = inputs.raspberry-pi-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# To build an sd-card image
|
|
||||||
# $ nix build .#nixosConfigurations.rpi-5-rpi-5-aarch64-linux.config.system.build.sdImage --json &| nom
|
|
||||||
# $ sudo dd if=./result/sd-image/nixos-sd-image-26.05.20260120.80e4adb-aarch64-linux.img of=/dev/sdc conv=fsync status=progress
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
rpi-pi.nixosModules.raspberry-pi
|
|
||||||
rpi-pi.nixosModules.sd-image
|
|
||||||
./containers.nix
|
|
||||||
];
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://nix-community.cachix.org" ];
|
|
||||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.traefik = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
staticConfigOptions = {
|
|
||||||
entryPoints = {
|
|
||||||
web = {
|
|
||||||
address = ":80";
|
|
||||||
http.redirections.entrypoint = {
|
|
||||||
to = "websecure";
|
|
||||||
scheme = "https";
|
|
||||||
};
|
|
||||||
asDefault = true;
|
|
||||||
};
|
|
||||||
websecure = {
|
|
||||||
address = ":443";
|
|
||||||
asDefault = true;
|
|
||||||
http.tls.certResolver = "letsencrypt";
|
|
||||||
};
|
|
||||||
traefik = {
|
|
||||||
address = ":8081";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
certificatesResolvers.letsencrypt.acme = {
|
|
||||||
email = "doloroo@proton.me";
|
|
||||||
storage = "${config.services.traefik.dataDir}/acme.json";
|
|
||||||
httpChallenge.entryPoint = "web";
|
|
||||||
};
|
|
||||||
api.dashboard = true;
|
|
||||||
api.insecure = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# TEMP
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
|
|
||||||
users = {
|
|
||||||
mutableUsers = false;
|
|
||||||
users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
initialPassword = "meowmeowmeow";
|
|
||||||
};
|
|
||||||
users.root = {
|
|
||||||
initialPassword = "rootmeow";
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "nixos-001-rp5";
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
libraspberrypi
|
|
||||||
];
|
|
||||||
|
|
||||||
sdImage.compressImage = false;
|
|
||||||
|
|
||||||
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
|
|
||||||
# We need to rebuild kernel for 6.12
|
|
||||||
# raspberry-pi-nix.kernel-version = "v6_12_17";
|
|
||||||
raspberry-pi-nix.uboot.enable = false;
|
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
system.stateVersion = "25.11";
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.alecaframe;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# You gotta install it into prefix yourself. this just makes a desktop file
|
|
||||||
options.modules.alecaframe = {
|
|
||||||
enable = lib.mkEnableOption "";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
alecaframe = {
|
|
||||||
name = "Alecaframe";
|
|
||||||
comment = "launches alecaframe";
|
|
||||||
exec = ''
|
|
||||||
protonhax run 230410 "
|
|
||||||
/home/branden/.local/share/Steam/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft/Windows/Start
|
|
||||||
Menu/Programs/Overwolf/AlecaFrame.lnk
|
|
||||||
"
|
|
||||||
'';
|
|
||||||
# icon = "system-reboot";
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
categories = [ "System" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
# system: "base16"
|
|
||||||
# name: "Gruvbox dark, hard"
|
|
||||||
# author: "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)"
|
|
||||||
# variant: "dark"
|
|
||||||
let
|
|
||||||
hexToInt = hex: fromTOML "value = 0x${hex}";
|
|
||||||
hexToRgb =
|
|
||||||
hex:
|
|
||||||
let
|
|
||||||
red = hexToInt (builtins.substring 1 2 hex);
|
|
||||||
green = hexToInt (builtins.substring 3 2 hex);
|
|
||||||
blue = hexToInt (builtins.substring 5 2 hex);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
r = red.value;
|
|
||||||
g = green.value;
|
|
||||||
b = blue.value;
|
|
||||||
};
|
|
||||||
theme =
|
|
||||||
let
|
|
||||||
importYaml =
|
|
||||||
file:
|
|
||||||
builtins.fromJSON (
|
|
||||||
builtins.readFile (
|
|
||||||
pkgs.runCommandNoCC "converted-yaml.json" { } ''
|
|
||||||
${pkgs.yj}/bin/yj < ${file} > $out
|
|
||||||
''
|
|
||||||
)
|
|
||||||
);
|
|
||||||
# EDIT THEME HERE
|
|
||||||
themeFile = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
|
||||||
in
|
|
||||||
importYaml themeFile;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.base16 = {
|
|
||||||
hex = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
rgb = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config.modules.base16.hex = theme.palette;
|
|
||||||
config.modules.base16.rgb = builtins.mapAttrs (_name: hex: hexToRgb hex) theme.palette;
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
blenderPkgs = inputs.nix-warez.packages.${system};
|
|
||||||
cfg = config.modules.blender;
|
|
||||||
blender_4_5 = pkgs.blender.overrideAttrs (
|
|
||||||
final: prev: {
|
|
||||||
pname = "blender";
|
|
||||||
version = "4.5.0";
|
|
||||||
src = pkgs.fetchzip {
|
|
||||||
name = "source";
|
|
||||||
url = "https://download.blender.org/source/blender-${final.version}.tar.xz";
|
|
||||||
hash = "sha256-DNVZUZpysCyB/Xt8yB352gO+UK8Cd4aDFGYuUDKyIrs=";
|
|
||||||
};
|
|
||||||
patches = [ ];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.blender = {
|
|
||||||
enable = lib.mkEnableOption "Blender configuration module";
|
|
||||||
};
|
|
||||||
# whole blender config including addons is too fat to include here
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
blenderPkgs.blender_4_5
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# nix'ing a blender config is most likely not possible
|
|
||||||
# could probs install blender addons through nix since they are fat fat mega fat to install TODO
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.bottles;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.bottles = {
|
|
||||||
enable = lib.mkEnableOption "Blender configuration module";
|
|
||||||
};
|
|
||||||
# whole bottles config including addons is too fat to include here
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
pkgs.bottles
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# nix'ing a bottles config is most likely not possible
|
|
||||||
# could probs install bottles addons through nix since they are fat fat mega fat to install TODO
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.package = pkgs.nix;
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
# protocol = "ssh-ng";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
remoteBuilder = lib.mkIf cfg.become-remote-builder {
|
|
||||||
users.users.remotebuild = {
|
|
||||||
isSystemUser = true;
|
|
||||||
shell = pkgs.bashInteractive;
|
|
||||||
group = "remotebuild";
|
|
||||||
# useDefaultShell = true;
|
|
||||||
|
|
||||||
# ssh-keygen -f /root/.ssh/remotebuild
|
|
||||||
openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
# Laptop-system
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me"
|
|
||||||
# Laptop-user-doloro
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuNlm8vq6MvWsVU/RW4oq7npQngjIxNFpjEWbAS/8H2 root@doloro-nixos-laptop"
|
|
||||||
];
|
|
||||||
initialPassword = "remotebuilder";
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.remotebuild = { };
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "remotebuild" ];
|
|
||||||
};
|
|
||||||
useBulders = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
# also define in home manager (TODO make a single file with all builders)
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
become-remote-builder = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.attrsets.recursiveUpdate useBulders remoteBuilder;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.chromium;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.chromium = {
|
|
||||||
enable = lib.mkEnableOption "Chromium";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.chromium = {
|
|
||||||
enable = true;
|
|
||||||
extensions = [
|
|
||||||
{ id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass
|
|
||||||
#{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok
|
|
||||||
{ id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite
|
|
||||||
{ id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter
|
|
||||||
{ id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds
|
|
||||||
{ id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow
|
|
||||||
{ id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker
|
|
||||||
];
|
|
||||||
package = pkgs.chromium.override { enableWideVine = true; };
|
|
||||||
};
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/http" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/https" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/about" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/unknown" = "chromium.desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
_:
|
|
||||||
builtins.listToAttrs (
|
|
||||||
map (fn: {
|
|
||||||
name = fn;
|
|
||||||
value = import ./${fn} { };
|
|
||||||
}) (builtins.filter (fn: fn != "default.nix") (builtins.attrNames (builtins.readDir ./.)))
|
|
||||||
)
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.direnv;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.direnv = {
|
|
||||||
enable = lib.mkEnableOption "direnv";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
# enableBashIntegration = true; # see note on other shells below
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
hostname,
|
|
||||||
nix-meow,
|
|
||||||
fetchFromGitHub,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fish;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fish = {
|
|
||||||
enable = lib.mkEnableOption "Fish";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.shell.enableFishIntegration = true;
|
|
||||||
home.packages = [ pkgs.nix-output-monitor ];
|
|
||||||
programs = {
|
|
||||||
fish = {
|
|
||||||
enable = true;
|
|
||||||
shellInit = ''
|
|
||||||
set -g theme_nerd_fonts yes
|
|
||||||
set -g theme_color_scheme nord
|
|
||||||
set -g theme_display_user yes
|
|
||||||
set -g fish_color_autosuggestion 6F6578
|
|
||||||
alias nik 'nix'
|
|
||||||
alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
alias hms 'home-manager switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
'';
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "bobthefish";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "theme-bobthefish";
|
|
||||||
rev = "e3b4d4eafc23516e35f162686f08a42edf844e40";
|
|
||||||
sha256 = "sha256-cXOYvdn74H4rkMWSC7G6bT4wa9d3/3vRnKed2ixRnuA=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
icons = "auto";
|
|
||||||
git = true;
|
|
||||||
extraOptions = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fish;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fish = {
|
|
||||||
enable = lib.mkEnableOption "Fish";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
users.defaultUserShell = pkgs.fish;
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
# home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fonts;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fonts = {
|
|
||||||
enable = lib.mkEnableOption "fonts";
|
|
||||||
};
|
|
||||||
config.fonts = lib.mkIf cfg.enable {
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
packages =
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
material-design-icons
|
|
||||||
material-symbols
|
|
||||||
googlesans-code
|
|
||||||
nerd-fonts.caskaydia-cove
|
|
||||||
nerd-fonts.noto
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-cjk-serif
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
(inputs.font-patcher.lib.patchFont {
|
|
||||||
font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
|
||||||
name = "Google Sans Code Nerd Font";
|
|
||||||
inherit system;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
fontDir.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.modules.git;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
options.modules.git = {
|
|
||||||
enable = lib.mkEnableOption "git";
|
|
||||||
};
|
|
||||||
config.programs = lib.mkIf cfg.enable {
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
user = {
|
|
||||||
name = "Doloro1978";
|
|
||||||
email = "doloroo@proton.me";
|
|
||||||
signingKey = "089B373588540877";
|
|
||||||
};
|
|
||||||
commit = {
|
|
||||||
gpgSign = true;
|
|
||||||
};
|
|
||||||
pull = {
|
|
||||||
rebase = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
gpg = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
# home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.greetd;
|
|
||||||
tuigreet = "${pkgs.tuigreet}/bin/tuigreet";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.greetd = {
|
|
||||||
enable = lib.mkEnableOption "Greetd configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default_session = {
|
|
||||||
command = "${tuigreet} --time --remember --cmd start-hyprland";
|
|
||||||
user = "greeter";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.services.greetd.serviceConfig = {
|
|
||||||
Type = "idle";
|
|
||||||
StandardInput = "tty";
|
|
||||||
StandardOutput = "tty";
|
|
||||||
StandardError = "journal";
|
|
||||||
|
|
||||||
TTYReset = true;
|
|
||||||
TTYVHangup = true;
|
|
||||||
TTYVTDisallocate = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.helium;
|
|
||||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.helium = {
|
|
||||||
enable = lib.mkEnableOption "helium";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
inputs.heliumFlake.packages.x86_64-linux.helium
|
|
||||||
];
|
|
||||||
# Gives me widevine support. yay
|
|
||||||
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
|
||||||
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.helix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.helix = {
|
|
||||||
enable = lib.mkEnableOption "Blender configuration module";
|
|
||||||
};
|
|
||||||
# whole bottles config including addons is too fat to include here
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.helix = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# nix'ing a bottles config is most likely not possible
|
|
||||||
# could probs install bottles addons through nix since they are fat fat mega fat to install TODO
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.hyfetch;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.hyfetch = {
|
|
||||||
enable = lib.mkEnableOption "hyfetch";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [ pkgs.fastfetch ];
|
|
||||||
programs.hyfetch = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
"preset" = "bisexual";
|
|
||||||
"mode" = "rgb";
|
|
||||||
"auto_detect_light_dark" = true;
|
|
||||||
"light_dark" = "dark";
|
|
||||||
"lightness" = 0.5;
|
|
||||||
"color_align" = {
|
|
||||||
"mode" = "custom";
|
|
||||||
"custom_colors" = {
|
|
||||||
"1" = 1;
|
|
||||||
"2" = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"backend" = "fastfetch";
|
|
||||||
"args" = null;
|
|
||||||
"distro" = null;
|
|
||||||
"pride_month_disable" = false;
|
|
||||||
"custom_ascii_path" = null;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fish;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fish = {
|
|
||||||
enable = lib.mkEnableOption "Fish";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
users.defaultUserShell = pkgs.fish;
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.Hyprland;
|
|
||||||
suspend = pkgs.writeShellScript "hyprland_suspend" ''
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
suspend)
|
|
||||||
killall -STOP Hyprland
|
|
||||||
;;
|
|
||||||
resume)
|
|
||||||
killall -CONT Hyprland
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./settings.nix
|
|
||||||
./runner.nix
|
|
||||||
./screenshot.nix
|
|
||||||
];
|
|
||||||
options.modules.Hyprland = {
|
|
||||||
enable = lib.mkEnableOption "Hyprland";
|
|
||||||
suspend-on-hibernate = lib.mkEnableOption "soh";
|
|
||||||
};
|
|
||||||
# TODO, split this into its own module;
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
# set the flake package
|
|
||||||
# settings = { };
|
|
||||||
systemd.variables = [ "--all" ];
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
||||||
portalPackage =
|
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
||||||
};
|
|
||||||
programs = {
|
|
||||||
hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
wlogout = {
|
|
||||||
enable = true;
|
|
||||||
layout = [
|
|
||||||
{
|
|
||||||
"label" = "lock";
|
|
||||||
"action" = "hyprlock";
|
|
||||||
"text" = "Lock";
|
|
||||||
"keybind" = "l";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "hibernate";
|
|
||||||
"action" = "systemctl hibernate";
|
|
||||||
"text" = "Hibernate";
|
|
||||||
"keybind" = "h";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "logout";
|
|
||||||
"action" = "uwsm stop";
|
|
||||||
"text" = "Logout";
|
|
||||||
"keybind" = "e";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# TODO add hypr shutdown
|
|
||||||
"label" = "shutdown";
|
|
||||||
"action" = "systemctl poweroff";
|
|
||||||
"text" = "Shutdown";
|
|
||||||
"keybind" = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "suspend";
|
|
||||||
"action" = "systemctl suspend";
|
|
||||||
"text" = "Suspend";
|
|
||||||
"keybind" = "u";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "reboot";
|
|
||||||
"action" = "systemctl reboot";
|
|
||||||
"text" = "Reboot";
|
|
||||||
"keybind" = "r";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.services."hyprland_suspend" = lib.mkIf cfg.suspend-on-hibernate {
|
|
||||||
Unit = {
|
|
||||||
Description = "Suspend hyprland";
|
|
||||||
Before = [
|
|
||||||
"systemd-suspend.service"
|
|
||||||
"systemd-hibernate.service"
|
|
||||||
"nvidia-suspend.service"
|
|
||||||
"nvidia-hibernate.service"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [
|
|
||||||
"systemd-suspend.service"
|
|
||||||
"systemd-hibernate.service"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${suspend} suspend";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.services."hyprland_resume" = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Resume hyprland";
|
|
||||||
After = [
|
|
||||||
"systemd-suspend.service"
|
|
||||||
"systemd-hibernate.service"
|
|
||||||
"nvidia-resume.service"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [
|
|
||||||
"systemd-suspend.service"
|
|
||||||
"systemd-hibernate.service"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${suspend} resume";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.Hyprland;
|
|
||||||
pkgs-unstable = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.Hyprland = {
|
|
||||||
enable = lib.mkEnableOption "Hyprland";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.xwayland.enable = true;
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
withUWSM = true;
|
|
||||||
# set the flake package
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
||||||
# make sure to also set the portal package, so that they are in sync
|
|
||||||
portalPackage =
|
|
||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
||||||
};
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
|
||||||
};
|
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://hyprland.cachix.org" ];
|
|
||||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
|
||||||
};
|
|
||||||
hardware.graphics = {
|
|
||||||
package = pkgs-unstable.mesa;
|
|
||||||
|
|
||||||
# if you also want 32-bit support (e.g for Steam)
|
|
||||||
# enable32Bit = true;
|
|
||||||
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
{ inputs, pkgs, ... }:
|
|
||||||
let
|
|
||||||
config = pkgs.writeTextFile {
|
|
||||||
name = "config";
|
|
||||||
text = ''
|
|
||||||
width = 100%
|
|
||||||
height = 100%
|
|
||||||
border-width = 0
|
|
||||||
outline-width = 0
|
|
||||||
padding-left = 35%
|
|
||||||
padding-top = 35%
|
|
||||||
result-spacing = 25
|
|
||||||
num-results = 5
|
|
||||||
font = monospace
|
|
||||||
background-color = #000A
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
script = pkgs.writeShellScript "mreow" ''
|
|
||||||
exec $(tofi-drun -c ${config})
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = [
|
|
||||||
pkgs.tofi
|
|
||||||
];
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
bind = [
|
|
||||||
"$mainMod, R, exec, ${script}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# systemd.user.services.hyprlauncher-deamon = {
|
|
||||||
# Install = {
|
|
||||||
# WantedBy = [ "hyprland-session.target" ];
|
|
||||||
# };
|
|
||||||
# Service = {
|
|
||||||
# ExecStart = "${pkgs.writeShellScript "watch-store" ''
|
|
||||||
# hyprlauncher -d
|
|
||||||
# ''}";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ inputs, pkgs, ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
wl-clipboard
|
|
||||||
wayfreeze
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
killall
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
base16 = config.modules.base16;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.packages = [
|
|
||||||
pkgs.hyprcursor
|
|
||||||
pkgs.rose-pine-cursor
|
|
||||||
];
|
|
||||||
home.pointerCursor = {
|
|
||||||
enable = true;
|
|
||||||
name = "rose-pine-hyprcursor";
|
|
||||||
package = pkgs.rose-pine-hyprcursor;
|
|
||||||
hyprcursor.enable = true;
|
|
||||||
};
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
env = [
|
|
||||||
"XCURSOR_THEME,BreezeX-RosePine-Linux"
|
|
||||||
"XCURSOR_SIZE,24"
|
|
||||||
"HYPRCURSOR_SIZE,24"
|
|
||||||
"LIBVA_DRIVER_NAME,nvidia"
|
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
|
||||||
"WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom
|
|
||||||
];
|
|
||||||
general = {
|
|
||||||
gaps_in = 1;
|
|
||||||
gaps_out = 1;
|
|
||||||
border_size = 1;
|
|
||||||
"col.active_border" =
|
|
||||||
"rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
|
|
||||||
"col.inactive_border" =
|
|
||||||
"rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
|
|
||||||
resize_on_border = false;
|
|
||||||
allow_tearing = true;
|
|
||||||
layout = "dwindle";
|
|
||||||
};
|
|
||||||
decoration = {
|
|
||||||
rounding = 4;
|
|
||||||
rounding_power = 1;
|
|
||||||
active_opacity = 1.0;
|
|
||||||
inactive_opacity = 1.0;
|
|
||||||
|
|
||||||
shadow = {
|
|
||||||
enabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
passes = 1;
|
|
||||||
new_optimizations = true;
|
|
||||||
ignore_opacity = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
bezier = [
|
|
||||||
"easeOutQuint,0.23,1,0.32,1"
|
|
||||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
|
||||||
"linear,0,0,1,1"
|
|
||||||
"almostLinear,0.5,0.5,0.75,1.0"
|
|
||||||
"quick,0.15,0,0.1,1"
|
|
||||||
];
|
|
||||||
animation = [
|
|
||||||
"global, 1, 10, default"
|
|
||||||
"border, 1, 5.39, easeOutQuint"
|
|
||||||
"windows, 1, 2.79, easeOutQuint"
|
|
||||||
"windowsIn, 1, 1, easeOutQuint, popin 87%"
|
|
||||||
"windowsOut, 1, 1, linear, popin 87%"
|
|
||||||
"windowsMove, 1, 1, easeInOutCubic"
|
|
||||||
"fadeIn, 1, 0.5, almostLinear"
|
|
||||||
"fadeOut, 1, 0.5, almostLinear"
|
|
||||||
"fade, 1, 1, quick"
|
|
||||||
"layers, 1, 3.81, easeOutQuint"
|
|
||||||
"layersIn, 1, 4, easeOutQuint, fade"
|
|
||||||
"layersOut, 1, 1.5, linear, fade"
|
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
|
||||||
"workspaces, 1, 1, almostLinear, slide"
|
|
||||||
"workspacesIn, 1, 1, easeInOutCubic, slide"
|
|
||||||
"workspacesOut, 1, 1, easeInOutCubic, slide"
|
|
||||||
"zoomFactor, 1, 7, quick"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
preserve_split = true;
|
|
||||||
};
|
|
||||||
# master = {
|
|
||||||
# new_status = master;
|
|
||||||
# };
|
|
||||||
misc = {
|
|
||||||
force_default_wallpaper = -1;
|
|
||||||
disable_hyprland_logo = false;
|
|
||||||
enable_anr_dialog = false;
|
|
||||||
vfr = true;
|
|
||||||
};
|
|
||||||
"$mainMod" = "SUPER";
|
|
||||||
bind = [
|
|
||||||
"$mainMod, C, killactive"
|
|
||||||
"$mainMod, M, exec, uwsm stop"
|
|
||||||
"$mainMod, E, exec, $fileManager"
|
|
||||||
"$mainMod, V, togglefloating,"
|
|
||||||
"$mainMod, P, pseudo, # dwindle"
|
|
||||||
"$mainMod, J, togglesplit, # dwindle"
|
|
||||||
"$mainMod, left, movefocus, l"
|
|
||||||
"$mainMod, right, movefocus, r"
|
|
||||||
"$mainMod, up, movefocus, u"
|
|
||||||
"$mainMod, down, movefocus, d"
|
|
||||||
"$mainMod, L, exec, wlogout"
|
|
||||||
(
|
|
||||||
"$mainMod, S, exec, "
|
|
||||||
+ ''wayfreeze --after-freeze-cmd 'grim -g "$(slurp -d)" - | wl-copy -t image/png;killall wayfreeze' --hide-cursor''
|
|
||||||
)
|
|
||||||
"$mainMod, F, fullscreen"
|
|
||||||
"$mainMod, mouse_down, workspace, e+1"
|
|
||||||
"$mainMod, mouse_up, workspace, e-1"
|
|
||||||
", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
|
||||||
", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
|
||||||
", F8, pass, class:^(com\.obsproject\.Studio)$"
|
|
||||||
"$mainMod, 0, workspace, 10"
|
|
||||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
|
||||||
]
|
|
||||||
++ (builtins.concatLists (
|
|
||||||
builtins.genList (
|
|
||||||
i:
|
|
||||||
let
|
|
||||||
ws = i + 1;
|
|
||||||
in
|
|
||||||
[
|
|
||||||
"$mainMod, ${toString ws}, workspace, ${toString ws}"
|
|
||||||
"$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
|
|
||||||
]
|
|
||||||
) 9
|
|
||||||
));
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow"
|
|
||||||
"$mainMod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
windowrule = [
|
|
||||||
"match:class .*, suppress_event maximize"
|
|
||||||
"match:class gamescope, workspace 5"
|
|
||||||
"match:class gamescope, fullscreen true"
|
|
||||||
"match:class gamescope, immediate true"
|
|
||||||
"match:class ^(steam)$, workspace 6 silent"
|
|
||||||
"match:class ^(vesktop)$, workspace 8 silent"
|
|
||||||
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
|
|
||||||
"match:class ^(com.obsproject.Studio)$, workspace 10 silent"
|
|
||||||
"match:initial_title ^(OBS Studio Crash Detected)$, pin true"
|
|
||||||
"match:initial_title ^(Discord Popout)$, workspace 1 silent"
|
|
||||||
];
|
|
||||||
layerrule = [
|
|
||||||
"match:namespace ^(notifications)$, no_screen_share true"
|
|
||||||
# "match:namespace ^(quickshell)$, blur true"
|
|
||||||
];
|
|
||||||
# exec-once = [
|
|
||||||
# ];
|
|
||||||
# we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.kitty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.kitty = {
|
|
||||||
enable = lib.mkEnableOption "kitty configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
font = {
|
|
||||||
name = "Google Sans Code Nerd Font";
|
|
||||||
size = 11;
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
sync_to_monitor = "yes";
|
|
||||||
background_opacity = 0.6;
|
|
||||||
cursor_trail = 1;
|
|
||||||
### Blur is handled in hyprland config ###
|
|
||||||
# enable_background_blur = "true";
|
|
||||||
# background_blur = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
## i could use picom but i just used hyprland blur lol
|
|
||||||
# services.picom = {
|
|
||||||
# # for cool gpu accelerated kitty effiect like blurred bg
|
|
||||||
# enable = true;
|
|
||||||
# backend = "glx";
|
|
||||||
# activeOpacity = 0.5;
|
|
||||||
# };
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
bind = [
|
|
||||||
"$mainMod, q, exec, kitty"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.kitty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.kitty = {
|
|
||||||
enable = lib.mkEnableOption "kitty configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.niri;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.niri-flake.homeModules.niri ];
|
|
||||||
options.modules.niri = {
|
|
||||||
enable = lib.mkEnableOption "niri configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# nixpkgs.overlays = [ inputs.niri-flake.overlays.niri ];
|
|
||||||
gtk.enable = lib.mkForce false;
|
|
||||||
home.packages = with pkgs; [ kickoff ];
|
|
||||||
programs = {
|
|
||||||
niri = {
|
|
||||||
enable = true;
|
|
||||||
# package = pkgs.niri-unstable;
|
|
||||||
settings = {
|
|
||||||
input = {
|
|
||||||
keyboard = {
|
|
||||||
xkb = {
|
|
||||||
layout = "gb";
|
|
||||||
};
|
|
||||||
numlock = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
outputs = {
|
|
||||||
DP-3 = {
|
|
||||||
# Philips Consumer Electronics Company PHL 272E1GZ UK02101011104
|
|
||||||
mode = {
|
|
||||||
width = 1920;
|
|
||||||
height = 1080;
|
|
||||||
refresh = 165.0;
|
|
||||||
};
|
|
||||||
focus-at-startup = true;
|
|
||||||
variable-refresh-rate = true;
|
|
||||||
};
|
|
||||||
HDMI-A-1 = {
|
|
||||||
position = {
|
|
||||||
x = -1920;
|
|
||||||
y = 0;
|
|
||||||
};
|
|
||||||
scale = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
binds = {
|
|
||||||
# Navigation
|
|
||||||
"Mod+Shift+WheelScrollDown" = {
|
|
||||||
hotkey-overlay.title = "Workspace Down";
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-down = [ ];
|
|
||||||
};
|
|
||||||
"Mod+Shift+WheelScrollUp" = {
|
|
||||||
hotkey-overlay.title = "Workspace Up";
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-up = [ ];
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollUp" = {
|
|
||||||
hotkey-overlay.title = "Workspace Left";
|
|
||||||
action.focus-column-right = [ ];
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollDown" = {
|
|
||||||
hotkey-overlay.title = "Workspace Right";
|
|
||||||
action.focus-column-left = [ ];
|
|
||||||
};
|
|
||||||
"Super+Tab" = {
|
|
||||||
hotkey-overlay.title = "Overview";
|
|
||||||
action.toggle-overview = [ ];
|
|
||||||
};
|
|
||||||
# --
|
|
||||||
# Utility
|
|
||||||
"Super+S" = {
|
|
||||||
action.screenshot = [ ];
|
|
||||||
};
|
|
||||||
"Super+C" = {
|
|
||||||
action.close-window = [ ];
|
|
||||||
};
|
|
||||||
"Super+L" = {
|
|
||||||
action.spawn = "wlogout";
|
|
||||||
};
|
|
||||||
# Program Spawning
|
|
||||||
"Mod+T".action.spawn = "helium";
|
|
||||||
"Mod+R".action.spawn = "kickoff";
|
|
||||||
"Mod+Q".action.spawn = "kitty";
|
|
||||||
# --
|
|
||||||
};
|
|
||||||
window-rules = [
|
|
||||||
{
|
|
||||||
matches = [ ];
|
|
||||||
geometry-corner-radius = {
|
|
||||||
bottom-left = 3.0;
|
|
||||||
bottom-right = 3.0;
|
|
||||||
top-left = 3.0;
|
|
||||||
top-right = 3.0;
|
|
||||||
};
|
|
||||||
clip-to-geometry = true;
|
|
||||||
draw-border-with-background = false;
|
|
||||||
focus-ring.width = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
xwayland-satellite = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wlogout = {
|
|
||||||
enable = true;
|
|
||||||
layout = [
|
|
||||||
{
|
|
||||||
"label" = "lock";
|
|
||||||
"action" = "hyprlock";
|
|
||||||
"text" = "Lock";
|
|
||||||
"keybind" = "l";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "hibernate";
|
|
||||||
"action" = "systemctl hibernate";
|
|
||||||
"text" = "Hibernate";
|
|
||||||
"keybind" = "h";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "logout";
|
|
||||||
"action" = "loginctl terminate-user $USER";
|
|
||||||
"text" = "Logout";
|
|
||||||
"keybind" = "e";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# TODO add hypr shutdown
|
|
||||||
"label" = "shutdown";
|
|
||||||
"action" = "systemctl poweroff";
|
|
||||||
"text" = "Shutdown";
|
|
||||||
"keybind" = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "suspend";
|
|
||||||
"action" = "systemctl suspend";
|
|
||||||
"text" = "Suspend";
|
|
||||||
"keybind" = "u";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "reboot";
|
|
||||||
"action" = "systemctl reboot";
|
|
||||||
"text" = "Reboot";
|
|
||||||
"keybind" = "r";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.niri;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.niri-flake.nixosModules.niri ];
|
|
||||||
options.modules.niri = {
|
|
||||||
enable = lib.mkEnableOption "niri configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,250 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.nixvim;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.nixvim = {
|
|
||||||
enable = lib.mkEnableOption "Nixvim";
|
|
||||||
};
|
|
||||||
imports = [
|
|
||||||
inputs.nixvim.homeModules.nixvim
|
|
||||||
./plugins
|
|
||||||
];
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
# formatters
|
|
||||||
nixfmt
|
|
||||||
rustfmt
|
|
||||||
# misc
|
|
||||||
ripgrep
|
|
||||||
# misc
|
|
||||||
nixd
|
|
||||||
];
|
|
||||||
config.programs.nixvim = lib.mkIf cfg.enable {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
colorschemes.gruvbox-material.enable = true;
|
|
||||||
performance.byteCompileLua = {
|
|
||||||
enable = true;
|
|
||||||
plugins = true;
|
|
||||||
nvimRuntime = true;
|
|
||||||
luaLib = true;
|
|
||||||
configs = true;
|
|
||||||
};
|
|
||||||
plugins = {
|
|
||||||
todo-comments.enable = true;
|
|
||||||
lsp-status.enable = true;
|
|
||||||
transparent.enable = true;
|
|
||||||
lsp = {
|
|
||||||
enable = true;
|
|
||||||
servers = {
|
|
||||||
qmlls = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
cmd = "-E";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rust_analyzer = {
|
|
||||||
enable = true;
|
|
||||||
installCargo = false;
|
|
||||||
installRustc = false;
|
|
||||||
};
|
|
||||||
nixd = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
ts_ls = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
svelte.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lsp-format = {
|
|
||||||
enable = true;
|
|
||||||
# lspServersToEnable = [ "qmlls" ];
|
|
||||||
};
|
|
||||||
notify = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background_color = "#00000000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mini-cursorword.enable = true;
|
|
||||||
# mini-statusline.enable = true;
|
|
||||||
lualine = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
sections = {
|
|
||||||
lualine_a = [ "mode" ];
|
|
||||||
lualine_b = [
|
|
||||||
"branch"
|
|
||||||
"diff"
|
|
||||||
"diagnostics"
|
|
||||||
];
|
|
||||||
lualine_c = [ "filename" ];
|
|
||||||
lualine_x = [
|
|
||||||
"encoding"
|
|
||||||
"fileformat"
|
|
||||||
"filetype"
|
|
||||||
];
|
|
||||||
lualine_y = [ "lsp_status" ];
|
|
||||||
lualine_z = [ "location" ];
|
|
||||||
};
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = [ ];
|
|
||||||
lualine_b = [ ];
|
|
||||||
lualine_c = [ "filename" ];
|
|
||||||
lualine_x = [ "location" ];
|
|
||||||
lualine_y = [ ];
|
|
||||||
lualine_z = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
web-devicons.enable = true;
|
|
||||||
vim-dadbod-completion.enable = true;
|
|
||||||
telescope.enable = true;
|
|
||||||
lazygit.enable = true;
|
|
||||||
mini-indentscope = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
draw = {
|
|
||||||
delay = 10;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mini-files = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
windows = {
|
|
||||||
preview = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
trouble.enable = true;
|
|
||||||
cmp = {
|
|
||||||
enable = true;
|
|
||||||
autoEnableSources = true;
|
|
||||||
settings = {
|
|
||||||
sources = [
|
|
||||||
{ name = "nvim_lsp"; }
|
|
||||||
{ name = "path"; }
|
|
||||||
{ name = "buffer"; }
|
|
||||||
];
|
|
||||||
mapping = {
|
|
||||||
"<C-Space>" = "cmp.mapping.complete()";
|
|
||||||
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
|
||||||
"<C-e>" = "cmp.mapping.close()";
|
|
||||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
|
||||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
|
||||||
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
|
||||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lspkind.enable = true;
|
|
||||||
tiny-inline-diagnostic.enable = true;
|
|
||||||
# persisted.enable = true;
|
|
||||||
auto-session = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
enabled = true;
|
|
||||||
auto_save = true;
|
|
||||||
auto_restore = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wakatime.enable = true;
|
|
||||||
treesitter = {
|
|
||||||
enable = true;
|
|
||||||
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
|
||||||
bash
|
|
||||||
json
|
|
||||||
lua
|
|
||||||
make
|
|
||||||
markdown
|
|
||||||
nix
|
|
||||||
regex
|
|
||||||
toml
|
|
||||||
vim
|
|
||||||
vimdoc
|
|
||||||
xml
|
|
||||||
yaml
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
highlight.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraPlugins = with pkgs; [
|
|
||||||
# vimPlugins.mini-completion
|
|
||||||
vimPlugins.mini-comment
|
|
||||||
vimPlugins.melange-nvim
|
|
||||||
vimPlugins.telescope-file-browser-nvim
|
|
||||||
vimPlugins.lsp-progress-nvim
|
|
||||||
];
|
|
||||||
opts = {
|
|
||||||
number = true;
|
|
||||||
bg = "dark";
|
|
||||||
tabstop = 2;
|
|
||||||
shiftwidth = 2;
|
|
||||||
termguicolors = true;
|
|
||||||
};
|
|
||||||
globals = {
|
|
||||||
mapleader = " ";
|
|
||||||
};
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
action = "<cmd>Telescope persisted<cr>";
|
|
||||||
key = "<leader>fs";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>Telescope find_files<cr>";
|
|
||||||
key = "<leader>ff";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>:lua MiniFiles.open()<cr>";
|
|
||||||
key = "<leader>fv";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>LazyGit<cr>";
|
|
||||||
key = "<leader>lg";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>Telescope buffers<cr>";
|
|
||||||
key = "<leader>fb";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>Telescope live_grep<cr>";
|
|
||||||
key = "<leader>fg";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
action = "<cmd>Trouble diagnostics toggle<cr>";
|
|
||||||
key = "<leader>fd";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins = {
|
|
||||||
conform-nvim = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
formatters_by_ft = {
|
|
||||||
nix = [ "nixfmt" ];
|
|
||||||
rust = [ "rustfmt" ];
|
|
||||||
"_" = [
|
|
||||||
"squeeze_blanks"
|
|
||||||
"trim_whitespace"
|
|
||||||
"trim_newlines"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
format_on_save = {
|
|
||||||
timeout_ms = 500;
|
|
||||||
lsp_format = "fallback";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
_: {
|
|
||||||
imports = [
|
|
||||||
./conform.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.obs;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.obs = {
|
|
||||||
enable = lib.mkEnableOption "obs";
|
|
||||||
autostart = lib.mkEnableOption "autostart with reply";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs = {
|
|
||||||
obs-studio = {
|
|
||||||
enable = true;
|
|
||||||
package = (
|
|
||||||
pkgs.obs-studio.override {
|
|
||||||
cudaSupport = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
obs-pipewire-audio-capture
|
|
||||||
obs-vkcapture
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.services.pw-discordaudio-virtual-device = {
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "hyprland-session.target" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
|
|
||||||
#!/run/current-system/sw/bin/bash
|
|
||||||
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
|
|
||||||
''}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.services.pw-gameaudio-virtual-device = {
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "hyprland-session.target" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
|
|
||||||
#!/run/current-system/sw/bin/bash
|
|
||||||
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
|
|
||||||
''}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.user.services.obs-autostart = lib.mkIf cfg.autostart {
|
|
||||||
Unit = {
|
|
||||||
Description = "OBS daemon";
|
|
||||||
After = [ "hyprland-session.target" ];
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "default.target" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
# wait for hyprland to start
|
|
||||||
ExecStart = "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = "5s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
nix-meow,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
pkg = inputs.quickshell.packages.${system}.quickshell;
|
|
||||||
cfg = config.modules.quickshell;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.quickshell = {
|
|
||||||
enable = lib.mkEnableOption "quickshell configuration module";
|
|
||||||
};
|
|
||||||
config.xdg.configFile."quickshell" = lib.mkIf cfg.enable {
|
|
||||||
recursive = true;
|
|
||||||
source = config.lib.file.mkOutOfStoreSymlink /home/doloro/dotfiles/modules/quickshell/quickshell;
|
|
||||||
};
|
|
||||||
config.systemd.user.services.quickshell = lib.mkIf cfg.enable {
|
|
||||||
Unit = {
|
|
||||||
Description = "Quickshell daemon";
|
|
||||||
After = [ "hyprland-session.target" ];
|
|
||||||
};
|
|
||||||
Install = {
|
|
||||||
WantedBy = [ "default.target" ];
|
|
||||||
};
|
|
||||||
Service = {
|
|
||||||
ExecStart = "${pkgs.quickshell}/bin/quickshell";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = "5s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
/run/user/1000/quickshell/vfs/f9af1311120af20dfed5f1bc1698a66a/.qmlls.ini
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user