Compare commits
47 Commits
0f17915e8c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 17cb857271 | |||
| 86742306cb | |||
| 47f2d1bd2a | |||
| 92d6e19fa8 | |||
| a8f6af8fc9 | |||
| e914ffd552 | |||
| a308923512 | |||
| c148be1a99 | |||
| ced387584e | |||
| ac840fb5e9 | |||
| 71d1da366d | |||
| e0b9f8b91a | |||
| c510e43618 | |||
| fb2ae2d470 | |||
| 035b8522ff | |||
| 4ccfeb12fe | |||
| 67adb36f6b | |||
| 8b6d867659 | |||
| 84ee68cb1f | |||
| 2d7fcc8801 | |||
| ec2293db2e | |||
| b6974cb4a2 | |||
| 3dfb455a1c | |||
| 636cac904e | |||
| 12da637cf8 | |||
| a39ffa9cc7 | |||
| 36399861f0 | |||
| ac892bcff7 | |||
| 9579fafceb | |||
| 3dcc23facb | |||
| 009a7145b8 | |||
| 226b61bf21 | |||
| 4586dd1d9c | |||
| 291f442a45 | |||
| 45010d5f0a | |||
| e1cf3ad59d | |||
| bc268218a5 | |||
| 9a05a5546f | |||
| cb224894b8 | |||
| 29453240ed | |||
| c3526e6eac | |||
| e0ca2aa3bf | |||
| 8aa7f53eca | |||
| 9b4c4991c4 | |||
| f040c4b610 | |||
| fac71ff78d | |||
| 1aa0ab9044 |
@@ -53,3 +53,11 @@ Installing Sakamoto Nix configuration may vary on your current operating system.
|
||||
```sh
|
||||
$ sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
|
||||
```
|
||||
|
||||
## Problems:
|
||||
* XDG defaults (file manager default is terminal)
|
||||
* File Manager must be TUI
|
||||
* Bluetooth and WiFi should open at TUI
|
||||
* Steam and Heroic incompatible
|
||||
* Broken switchwall.sh
|
||||
* Box fonts
|
||||
|
||||
+5
-6
@@ -28,14 +28,13 @@
|
||||
Apps = {
|
||||
packages = pkgs:
|
||||
with pkgs; [
|
||||
adwaita-icon-theme
|
||||
jellyfin-media-player
|
||||
usbutils
|
||||
pciutils
|
||||
delfin
|
||||
goverlay
|
||||
geekbench_6
|
||||
gparted
|
||||
ntfs3g
|
||||
todoist
|
||||
feishin
|
||||
discord
|
||||
xfce.thunar
|
||||
@@ -46,14 +45,14 @@
|
||||
# "DP-2, highres@165,0x1080,1,vrr,1"
|
||||
# "DP-2, highres@180,0x1080,1,cm,hdr, sdrbrightness, 1.5, sdrsaturation, 0.98"
|
||||
"DP-2, highres@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98"
|
||||
"DP-1, highres@highrr,0x0,1"
|
||||
"DP-1, highres@highrr,760x0,1"
|
||||
"HDMI-A-1, 1920x1080@120, 20000x20000,1"
|
||||
# "HDMI-A-1, disabled"
|
||||
];
|
||||
};
|
||||
Git = {
|
||||
user = "";
|
||||
email = "";
|
||||
user = "kenji";
|
||||
email = "kenji@hakase";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
|
||||
Generated
+669
-72
File diff suppressed because it is too large
Load Diff
@@ -17,8 +17,13 @@
|
||||
# ref = "refs/tags/matugen-v0.10.0";
|
||||
};
|
||||
|
||||
erosanix = {
|
||||
url = "github:emmanuelrosa/erosanix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland";
|
||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -41,6 +46,12 @@
|
||||
url = "git+https://git.sakamoto.dev/kenji/illogical-impulse.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
omarchy-nix = {
|
||||
url = "git+https://git.sakamoto.dev/kenji/omarchy-nix.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
@@ -50,7 +61,10 @@
|
||||
darwin,
|
||||
chaotic,
|
||||
jovian,
|
||||
nixovim,
|
||||
illogical-impulse,
|
||||
erosanix,
|
||||
omarchy-nix,
|
||||
...
|
||||
} @ inputs: let
|
||||
config = import ./config.nix;
|
||||
@@ -68,9 +82,26 @@
|
||||
chaotic.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
jovian.nixosModules.default
|
||||
erosanix.nixosModules.protonvpn
|
||||
./hosts/hakase/configuration.nix
|
||||
];
|
||||
};
|
||||
hakase-omarchy = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
chaotic.nixosModules.default
|
||||
omarchy-nix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
./hosts/hakase-omarchy/configuration.nix
|
||||
];
|
||||
};
|
||||
vanilla = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/vanilla/configuration.nix
|
||||
# nixovim.packages.${system}.full
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
@@ -84,6 +115,16 @@
|
||||
./home/hakase.nix
|
||||
];
|
||||
};
|
||||
hakase-omarchy = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
config.allowUnfree = true;
|
||||
extraSpecialArgs = args;
|
||||
};
|
||||
modules = [
|
||||
home-manager.nixosModules.home-manager
|
||||
./home/hakase-omarchy.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# ... your other imports
|
||||
inputs.omarchy-nix.homeManagerModules.default # Assuming you have a system module too
|
||||
];
|
||||
|
||||
# ADD THIS BLOCK
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
specialArgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../modules/default/boot.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "${myConfig.nixos.Timezone}";
|
||||
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
|
||||
|
||||
console = {
|
||||
earlySetup = false;
|
||||
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
|
||||
packages = with pkgs; [terminus_font];
|
||||
useXkbConfig = true;
|
||||
};
|
||||
|
||||
users = {
|
||||
# defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
|
||||
users = {
|
||||
${myConfig.essentials.Username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "networkmanager" "input" "video"];
|
||||
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
|
||||
useDefaultShell = true;
|
||||
packages = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
omarchy = {
|
||||
full_name = "${myConfig.essentials.Username}"; # Or variable
|
||||
email_address = "${myConfig.nixos.Git.email}";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
backupFileExtension = "backup";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = specialArgs;
|
||||
users.${myConfig.essentials.Username} = import ../../home/hakase-omarchy.nix;
|
||||
};
|
||||
networking = {
|
||||
useDHCP = false;
|
||||
wireless = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
networkmanager.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [22 80 531];
|
||||
allowedUDPPorts = [53 531 5353];
|
||||
};
|
||||
proxy = {
|
||||
default = null;
|
||||
noProxy = null;
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
# network.enable = true;
|
||||
# extraConfig = "DefaultTimeoutStopSec=5s";
|
||||
};
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
};
|
||||
#
|
||||
# hardware = {
|
||||
# enableAllFirmware = true;
|
||||
# logitech.wireless.enable = true;
|
||||
#
|
||||
# bluetooth = {
|
||||
# enable = true;
|
||||
# powerOnBoot = true;
|
||||
# settings = {
|
||||
# General = {
|
||||
# # AutoEnable = true;
|
||||
# Experimental = true;
|
||||
# MultiProfile = "multiple";
|
||||
# FastConnectable = true;
|
||||
# # ControllerMode = "bredr";
|
||||
# };
|
||||
# Policy = {
|
||||
# AutoEnable = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
#
|
||||
# graphics = {
|
||||
# enable = true;
|
||||
# enable32Bit = true;
|
||||
# };
|
||||
#
|
||||
# xone.enable = true;
|
||||
# };
|
||||
#
|
||||
|
||||
# security.rtkit.enable = true;
|
||||
|
||||
# programs = {
|
||||
# bash.interactiveShellInit = ''
|
||||
# if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]; then
|
||||
# shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
# exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
# fi
|
||||
# '';
|
||||
# zsh.enable = true;
|
||||
# fish.enable = true;
|
||||
#
|
||||
# appimage = {
|
||||
# enable = true;
|
||||
# binfmt = true;
|
||||
# };
|
||||
#
|
||||
# ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
|
||||
# };
|
||||
|
||||
# jovian.steamos.enableMesaPatches = true;
|
||||
#
|
||||
# services = {
|
||||
# displayManager.sessionPackages = [
|
||||
# inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
# ];
|
||||
#
|
||||
# getty.autologinUser = lib.mkOverride 10 "${myConfig.essentials.Username}";
|
||||
#
|
||||
# flatpak.enable = true;
|
||||
# seatd.enable = true;
|
||||
# upower.enable = true;
|
||||
# scx.enable = true;
|
||||
# libinput.enable = true;
|
||||
# blueman.enable = true;
|
||||
# printing.enable = true;
|
||||
# openssh.enable = true;
|
||||
#
|
||||
# pipewire = {
|
||||
# enable = true;
|
||||
# alsa = {
|
||||
# enable = true;
|
||||
# support32Bit = true;
|
||||
# };
|
||||
# pulse.enable = true;
|
||||
# };
|
||||
# };
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
# 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" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/mapper/luks-9091013c-0763-40a6-8316-d44d52df3530";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-9091013c-0763-40a6-8316-d44d52df3530".device = "/dev/disk/by-uuid/9091013c-0763-40a6-8316-d44d52df3530";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/B332-BF84";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -6,28 +6,27 @@
|
||||
specialArgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/default/desktop.nix
|
||||
../../modules/default/remote.nix
|
||||
../../modules/default/gaming.nix
|
||||
../../modules/default/udev.nix
|
||||
../../modules/default/boot.nix
|
||||
../../modules/default/dev.nix
|
||||
];
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
../../modules/default/apps.nix
|
||||
../../modules/default/desktop.nix
|
||||
../../modules/default/remote.nix
|
||||
../../modules/default/gaming.nix
|
||||
../../modules/default/udev.nix
|
||||
../../modules/default/boot.nix
|
||||
../../modules/default/dev.nix
|
||||
../../modules/default/security.nix
|
||||
]
|
||||
++ lib.optionals (myConfig.nixos.enableSteamOS == false) [
|
||||
../../modules/default/login.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "25.05";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "${myConfig.nixos.Timezone}";
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
wl-clipboard
|
||||
wget
|
||||
solaar
|
||||
];
|
||||
|
||||
console = {
|
||||
earlySetup = false;
|
||||
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
|
||||
@@ -68,6 +67,7 @@
|
||||
};
|
||||
|
||||
hardware = {
|
||||
enableAllFirmware = true;
|
||||
logitech.wireless.enable = true;
|
||||
|
||||
bluetooth = {
|
||||
@@ -75,10 +75,15 @@
|
||||
powerOnBoot = true;
|
||||
settings = {
|
||||
General = {
|
||||
AutoEnable = true;
|
||||
Enable = "Source,Sink,Media,Socket";
|
||||
# AutoEnable = true;
|
||||
Experimental = true;
|
||||
MultiProfile = "multiple";
|
||||
FastConnectable = true;
|
||||
# ControllerMode = "bredr";
|
||||
};
|
||||
Policy = {
|
||||
AutoEnable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -92,6 +97,11 @@
|
||||
};
|
||||
|
||||
networking = {
|
||||
useDHCP = false;
|
||||
wireless = {
|
||||
enable = false;
|
||||
};
|
||||
|
||||
networkmanager.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
@@ -105,8 +115,8 @@
|
||||
};
|
||||
|
||||
systemd = {
|
||||
network.enable = true;
|
||||
extraConfig = "DefaultTimeoutStopSec=5s";
|
||||
# network.enable = true;
|
||||
# extraConfig = "DefaultTimeoutStopSec=5s";
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
@@ -129,6 +139,8 @@
|
||||
ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
|
||||
};
|
||||
|
||||
# jovian.steamos.enableMesaPatches = true;
|
||||
|
||||
services = {
|
||||
displayManager.sessionPackages = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
@@ -136,14 +148,6 @@
|
||||
|
||||
getty.autologinUser = lib.mkOverride 10 "${myConfig.essentials.Username}";
|
||||
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings.default_session = {
|
||||
user = lib.mkOverride 10 "${myConfig.essentials.Username}";
|
||||
command = lib.mkOverride 10 "Hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
flatpak.enable = true;
|
||||
seatd.enable = true;
|
||||
upower.enable = true;
|
||||
@@ -161,5 +165,10 @@
|
||||
};
|
||||
pulse.enable = true;
|
||||
};
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,39 +8,25 @@
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/9f701bae-3392-4927-b27d-a905dd67edab";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
{ device = "/dev/mapper/luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-f8bd85aa-b08e-472a-b7f6-5e190b9b9714".device = "/dev/disk/by-uuid/f8bd85aa-b08e-472a-b7f6-5e190b9b9714";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/894C-F998";
|
||||
{ device = "/dev/disk/by-uuid/72BA-AF9B";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
# 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,
|
||||
pkgs,
|
||||
myConfig,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# networking.hostName = "nixos"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "${myConfig.nixos.Timezone}";
|
||||
|
||||
# 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 = {
|
||||
earlySetup = false;
|
||||
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
|
||||
packages = with pkgs; [terminus_font];
|
||||
useXkbConfig = true;
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# services.xserver.enable = true;
|
||||
|
||||
# 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;
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services = {
|
||||
blueman.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${myConfig.essentials.Username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
];
|
||||
};
|
||||
|
||||
# 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; [
|
||||
inputs.nixovim.packages.${system}.full
|
||||
# linux-firmware
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
];
|
||||
|
||||
hardware.firmware = [
|
||||
pkgs.linux-firmware
|
||||
];
|
||||
# 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?
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
# 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 = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/9f701bae-3392-4927-b27d-a905dd67edab";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/894C-F998";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
usbutils
|
||||
pciutils
|
||||
pavucontrol
|
||||
wget
|
||||
dualsensectl
|
||||
protontricks
|
||||
wl-clipboard
|
||||
tldr
|
||||
anki
|
||||
lact
|
||||
lm_sensors
|
||||
grim
|
||||
];
|
||||
imports = [
|
||||
../../packages/virtualbox/default.nix
|
||||
# ../../packages/lact/default.nix
|
||||
];
|
||||
hardware.amdgpu.overdrive.enable = true;
|
||||
services.lact.enable = true;
|
||||
# services = {
|
||||
# protonvpn = {
|
||||
# enable = true;
|
||||
# autostart = true;
|
||||
# };
|
||||
# };
|
||||
}
|
||||
@@ -11,20 +11,31 @@
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
|
||||
limine = lib.mkIf (myConfig.nixos.Boot.mode == "limine") {
|
||||
enable = true;
|
||||
maxGenerations = 5;
|
||||
};
|
||||
|
||||
systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") {
|
||||
enable = true;
|
||||
# xbootldrMountPoint = "/boot";
|
||||
|
||||
edk2-uefi-shell.enable = true;
|
||||
edk2-uefi-shell.sortKey = "z_edk2";
|
||||
};
|
||||
|
||||
# grub ain't that great for advanced setups such as using a secure boot.
|
||||
grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
useOSProber = true;
|
||||
};
|
||||
limine.maxGenerations = 5;
|
||||
};
|
||||
|
||||
plymouth = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
theme = "seal";
|
||||
themePackages = with pkgs; [
|
||||
(adi1090x-plymouth-themes.override {
|
||||
@@ -33,10 +44,12 @@
|
||||
];
|
||||
};
|
||||
|
||||
# blacklistedKernelModules = ["tpm_crb" "tpm_tis" "tpm"];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
# "quiet"
|
||||
# "splash"
|
||||
"boot.shell_on_fail"
|
||||
"udev.log_priority=3"
|
||||
"rd.systemd.show_status=auto"
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
myConfig,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# ../../packages/quickshell/default.nix
|
||||
../../packages/hyprland/default.nix
|
||||
../../packages/sunshine/default.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
../../packages/python/default.nix
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
p7zip
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# file: configuration.nix
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
sources = import ./nix/sources.nix;
|
||||
lanzaboote = import sources.lanzaboote;
|
||||
in {
|
||||
imports = [lanzaboote.nixosModules.lanzaboote];
|
||||
|
||||
environment.systemPackages = [
|
||||
# For debugging and troubleshooting Secure Boot.
|
||||
pkgs.sbctl
|
||||
];
|
||||
|
||||
# Lanzaboote currently replaces the systemd-boot module.
|
||||
# This setting is usually set to true in configuration.nix
|
||||
# generated at installation time. So we force it to false
|
||||
# for now.
|
||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
||||
|
||||
boot.lanzaboote = {
|
||||
enable = true;
|
||||
pkiBundle = "/var/lib/sbctl";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings.default_session = {
|
||||
user = lib.mkOverride 10 "${myConfig.essentials.Username}";
|
||||
command = lib.mkOverride 10 "Hyprland";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/moondeck-buddy/appimage.nix
|
||||
# ../../packages/moondeck-buddy/appimage.nix
|
||||
../../packages/sunshine/default.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
# ./lanzaboote.nix
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
niv
|
||||
sbctl
|
||||
];
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0616", ATTR{power/wakeup}="enabled"
|
||||
|
||||
'';
|
||||
{pkgs, ...}: {
|
||||
# services.udev.extraRules = ''
|
||||
# SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0616", ATTR{power/wakeup}="enabled"
|
||||
#
|
||||
# '';
|
||||
services.udev.packages = with pkgs; [
|
||||
game-devices-udev-rules
|
||||
];
|
||||
}
|
||||
|
||||
+15
-1
@@ -1,5 +1,19 @@
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
../../packages/firefox/home.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
heroic
|
||||
# fcitx5
|
||||
# fcitx5-mozc-ut
|
||||
# kdePackages.fcitx5-configtool
|
||||
solaar
|
||||
parted
|
||||
edk2-uefi-shell
|
||||
libreoffice
|
||||
];
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
@@ -8,6 +9,20 @@
|
||||
../../packages/fonts/home.nix
|
||||
];
|
||||
programs.illogical-impulse.enable = true;
|
||||
programs.illogical-impulse.settings = {
|
||||
hyprland.useNixForConf = false;
|
||||
simpleStarship.enable = true;
|
||||
};
|
||||
|
||||
# wayland.windowManager.hyprland = {
|
||||
# settings = {
|
||||
# monitor = lib.mkForce [
|
||||
# "DP-1, highres@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98"
|
||||
# "DP-2, highres@highrr,760x0,1"
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
# programs.illogical-impulse.settings.simpleStarship.enable = true;
|
||||
home.packages = [
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/moondeck-buddy/appimage.nix
|
||||
# ../../packages/moondeck-buddy/appimage.nix
|
||||
../../packages/sunshine/default.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"lanzaboote": {
|
||||
"branch": "master",
|
||||
"description": "Secure Boot for NixOS [maintainers=@blitz @raitobezarius @nikstur]",
|
||||
"homepage": "",
|
||||
"owner": "nix-community",
|
||||
"repo": "lanzaboote",
|
||||
"rev": "v0.4.2",
|
||||
"sha256": "0xc1wawnb0297h5khxblmf9pd1fry950xkcm7mwlck19s2906h80",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/nix-community/lanzaboote/archive/v0.4.2.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz",
|
||||
"version": "0.4.2"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"branch": "nixos-unstable",
|
||||
"description": "Nix Packages collection",
|
||||
"homepage": null,
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe",
|
||||
"sha256": "16f329z831bq7l3wn1dfvbkh95l2gcggdwn6rk3cisdmv2aa3189",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe.tar.gz",
|
||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||
}
|
||||
}
|
||||
+198
@@ -0,0 +1,198 @@
|
||||
# This file has been generated by Niv.
|
||||
|
||||
let
|
||||
|
||||
#
|
||||
# The fetchers. fetch_<type> fetches specs of type <type>.
|
||||
#
|
||||
|
||||
fetch_file = pkgs: name: spec:
|
||||
let
|
||||
name' = sanitizeName name + "-src";
|
||||
in
|
||||
if spec.builtin or true then
|
||||
builtins_fetchurl { inherit (spec) url sha256; name = name'; }
|
||||
else
|
||||
pkgs.fetchurl { inherit (spec) url sha256; name = name'; };
|
||||
|
||||
fetch_tarball = pkgs: name: spec:
|
||||
let
|
||||
name' = sanitizeName name + "-src";
|
||||
in
|
||||
if spec.builtin or true then
|
||||
builtins_fetchTarball { name = name'; inherit (spec) url sha256; }
|
||||
else
|
||||
pkgs.fetchzip { name = name'; inherit (spec) url sha256; };
|
||||
|
||||
fetch_git = name: spec:
|
||||
let
|
||||
ref =
|
||||
spec.ref or (
|
||||
if spec ? branch then "refs/heads/${spec.branch}" else
|
||||
if spec ? tag then "refs/tags/${spec.tag}" else
|
||||
abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"
|
||||
);
|
||||
submodules = spec.submodules or false;
|
||||
submoduleArg =
|
||||
let
|
||||
nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0;
|
||||
emptyArgWithWarning =
|
||||
if submodules
|
||||
then
|
||||
builtins.trace
|
||||
(
|
||||
"The niv input \"${name}\" uses submodules "
|
||||
+ "but your nix's (${builtins.nixVersion}) builtins.fetchGit "
|
||||
+ "does not support them"
|
||||
)
|
||||
{ }
|
||||
else { };
|
||||
in
|
||||
if nixSupportsSubmodules
|
||||
then { inherit submodules; }
|
||||
else emptyArgWithWarning;
|
||||
in
|
||||
builtins.fetchGit
|
||||
({ url = spec.repo; inherit (spec) rev; inherit ref; } // submoduleArg);
|
||||
|
||||
fetch_local = spec: spec.path;
|
||||
|
||||
fetch_builtin-tarball = name: throw
|
||||
''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`.
|
||||
$ niv modify ${name} -a type=tarball -a builtin=true'';
|
||||
|
||||
fetch_builtin-url = name: throw
|
||||
''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`.
|
||||
$ niv modify ${name} -a type=file -a builtin=true'';
|
||||
|
||||
#
|
||||
# Various helpers
|
||||
#
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695
|
||||
sanitizeName = name:
|
||||
(
|
||||
concatMapStrings (s: if builtins.isList s then "-" else s)
|
||||
(
|
||||
builtins.split "[^[:alnum:]+._?=-]+"
|
||||
((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name)
|
||||
)
|
||||
);
|
||||
|
||||
# The set of packages used when specs are fetched using non-builtins.
|
||||
mkPkgs = sources: system:
|
||||
let
|
||||
sourcesNixpkgs =
|
||||
import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; };
|
||||
hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath;
|
||||
hasThisAsNixpkgsPath = <nixpkgs> == ./.;
|
||||
in
|
||||
if builtins.hasAttr "nixpkgs" sources
|
||||
then sourcesNixpkgs
|
||||
else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then
|
||||
import <nixpkgs> { }
|
||||
else
|
||||
abort
|
||||
''
|
||||
Please specify either <nixpkgs> (through -I or NIX_PATH=nixpkgs=...) or
|
||||
add a package called "nixpkgs" to your sources.json.
|
||||
'';
|
||||
|
||||
# The actual fetching function.
|
||||
fetch = pkgs: name: spec:
|
||||
|
||||
if ! builtins.hasAttr "type" spec then
|
||||
abort "ERROR: niv spec ${name} does not have a 'type' attribute"
|
||||
else if spec.type == "file" then fetch_file pkgs name spec
|
||||
else if spec.type == "tarball" then fetch_tarball pkgs name spec
|
||||
else if spec.type == "git" then fetch_git name spec
|
||||
else if spec.type == "local" then fetch_local spec
|
||||
else if spec.type == "builtin-tarball" then fetch_builtin-tarball name
|
||||
else if spec.type == "builtin-url" then fetch_builtin-url name
|
||||
else
|
||||
abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}";
|
||||
|
||||
# If the environment variable NIV_OVERRIDE_${name} is set, then use
|
||||
# the path directly as opposed to the fetched source.
|
||||
replace = name: drv:
|
||||
let
|
||||
saneName = stringAsChars (c: if (builtins.match "[a-zA-Z0-9]" c) == null then "_" else c) name;
|
||||
ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}";
|
||||
in
|
||||
if ersatz == "" then drv else
|
||||
# this turns the string into an actual Nix path (for both absolute and
|
||||
# relative paths)
|
||||
if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}";
|
||||
|
||||
# Ports of functions for older nix versions
|
||||
|
||||
# a Nix version of mapAttrs if the built-in doesn't exist
|
||||
mapAttrs = builtins.mapAttrs or (
|
||||
f: set: with builtins;
|
||||
listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set))
|
||||
);
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
||||
range = first: last: if first > last then [ ] else builtins.genList (n: first + n) (last - first + 1);
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257
|
||||
stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1));
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
||||
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
||||
concatMapStrings = f: list: concatStrings (map f list);
|
||||
concatStrings = builtins.concatStringsSep "";
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331
|
||||
optionalAttrs = cond: as: if cond then as else { };
|
||||
|
||||
# fetchTarball version that is compatible between all the versions of Nix
|
||||
builtins_fetchTarball = { url, name ? null, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchTarball;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchTarball ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
|
||||
else
|
||||
fetchTarball attrs;
|
||||
|
||||
# fetchurl version that is compatible between all the versions of Nix
|
||||
builtins_fetchurl = { url, name ? null, sha256 }@attrs:
|
||||
let
|
||||
inherit (builtins) lessThan nixVersion fetchurl;
|
||||
in
|
||||
if lessThan nixVersion "1.12" then
|
||||
fetchurl ({ inherit url; } // (optionalAttrs (name != null) { inherit name; }))
|
||||
else
|
||||
fetchurl attrs;
|
||||
|
||||
# Create the final "sources" from the config
|
||||
mkSources = config:
|
||||
mapAttrs
|
||||
(
|
||||
name: spec:
|
||||
if builtins.hasAttr "outPath" spec
|
||||
then
|
||||
abort
|
||||
"The values in sources.json should not have an 'outPath' attribute"
|
||||
else
|
||||
spec // { outPath = replace name (fetch config.pkgs name spec); }
|
||||
)
|
||||
config.sources;
|
||||
|
||||
# The "config" used by the fetchers
|
||||
mkConfig =
|
||||
{ sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null
|
||||
, sources ? if sourcesFile == null then { } else builtins.fromJSON (builtins.readFile sourcesFile)
|
||||
, system ? builtins.currentSystem
|
||||
, pkgs ? mkPkgs sources system
|
||||
}: rec {
|
||||
# The sources, i.e. the attribute set of spec name to spec
|
||||
inherit sources;
|
||||
|
||||
# The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers
|
||||
inherit pkgs;
|
||||
};
|
||||
|
||||
in
|
||||
mkSources (mkConfig { }) // { __functor = _: settings: mkSources (mkConfig settings); }
|
||||
@@ -84,7 +84,7 @@
|
||||
# Valid strings for installation_mode are "allowed", "blocked",
|
||||
# "force_installed" and "normal_installed".
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked";
|
||||
"*".installation_mode = "allowed";
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkOption mkIf;
|
||||
this = config.custom.lact;
|
||||
|
||||
configFile =
|
||||
pkgs.runCommand "lact-config.yaml" {
|
||||
json = pkgs.writers.writeJSON "lact-config.json" this.settings;
|
||||
} ''
|
||||
# Merge with the defaults
|
||||
${lib.getExe pkgs.yq} -s '.[0] * .[1]' $json ${./lact-default-config.yaml} > config.json
|
||||
# Convert keys to numeric values where possible. It depends on this for some reason.
|
||||
${lib.getExe pkgs.yj} -jy -k < config.json > $out
|
||||
'';
|
||||
in {
|
||||
options.custom.lact = {
|
||||
enable = mkEnableOption "my LACT module";
|
||||
settings = mkOption {
|
||||
default = {};
|
||||
type = lib.types.submodule {
|
||||
freeformType = (pkgs.formats.yaml {}).type;
|
||||
};
|
||||
description = ''
|
||||
Settings for LACT. Settings are merged with the defaults.
|
||||
|
||||
The easiest method of acquiring the settings is to delete
|
||||
`/etc/lact/config.yaml`, enter your settings and look at the file.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf this.enable {
|
||||
systemd.packages = with pkgs; [
|
||||
lact
|
||||
];
|
||||
systemd.services.lactd.wantedBy = ["multi-user.target"];
|
||||
|
||||
environment.etc."lact/config.yaml" = mkIf (this.settings != {}) {
|
||||
source = configFile;
|
||||
};
|
||||
systemd.services.lactd = {
|
||||
# Restart if config changed
|
||||
restartTriggers = mkIf (this.settings != {}) [configFile];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
daemon:
|
||||
log_level: info
|
||||
admin_groups:
|
||||
- wheel
|
||||
- sudo
|
||||
disable_clocks_cleanup: false
|
||||
apply_settings_timer: 5
|
||||
gpus: {}
|
||||
+29
-11
@@ -11,18 +11,36 @@
|
||||
DECKY_HOME = "/home/${myConfig.essentials.Username}/homebrew";
|
||||
DECKY_USER_HOME = "/home/${myConfig.essentials.Username}";
|
||||
};
|
||||
|
||||
# environment.systemPackages = with pkgs; [inputs.jovian.packages.${system}.default];
|
||||
jovian.steam.enable = true;
|
||||
jovian.steam.autoStart = true;
|
||||
jovian.steam.desktopSession = "hyprland";
|
||||
jovian.steam.user = "${myConfig.essentials.Username}";
|
||||
jovian.steam = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
desktopSession = "hyprland";
|
||||
user = "${myConfig.essentials.Username}";
|
||||
environment = {
|
||||
OUTPUT_CONNECTOR = "DP-1"; # Keep this
|
||||
STEAM_GAMESCOPE_CMD_OPTIONS = "-O DP-1"; # Force override flag
|
||||
};
|
||||
};
|
||||
|
||||
jovian.decky-loader = {
|
||||
enable = true;
|
||||
stateDir = "/home/${myConfig.essentials.Username}/Games/Decky";
|
||||
user = "${myConfig.essentials.Username}";
|
||||
};
|
||||
|
||||
jovian.devices.steamdeck = {
|
||||
enableControllerUdevRules = true;
|
||||
};
|
||||
|
||||
# programs.gamescope = {
|
||||
# enable = true;
|
||||
# args = ["--output-name" "DP-1"];
|
||||
# };
|
||||
|
||||
jovian.hardware.has.amd.gpu = true;
|
||||
|
||||
jovian.decky-loader.enable = true;
|
||||
jovian.decky-loader.user = "${myConfig.essentials.Username}";
|
||||
|
||||
# jovian.steamos.enableBluetoothConfig = true;
|
||||
jovian.steamos.enableMesaPatches = true;
|
||||
|
||||
jovian.steamos.enableBluetoothConfig = true;
|
||||
# jovian.steamos.useSteamOSConfig = true;
|
||||
# jovian.devices.steamdeck.enableControllerUdevRules = true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
{myConfig, ...}: {
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
users.extraGroups.vboxusers.members = ["user-with-access-to-virtualbox"];
|
||||
users.extraGroups.vboxusers.members = ["${myConfig.essentials.Username}"];
|
||||
virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user