mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-04-02 11:12:09 +02:00
20
nixos/audio.nix
Normal file
20
nixos/audio.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
security.rtkit.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
"10-disable-camera" = {
|
||||
"wireplumber.profiles" = { main."monitor.libcamera" = "disabled"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
nixos/auto-upgrade.nix
Normal file
9
nixos/auto-upgrade.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ config, ... }: {
|
||||
system.autoUpgrade = {
|
||||
enable = config.var.autoUpgrade;
|
||||
dates = "04:00";
|
||||
flake = "${config.var.configDirectory}";
|
||||
flags = [ "--update-input" "nixpkgs" "--commit-lock-file" ];
|
||||
allowReboot = false;
|
||||
};
|
||||
}
|
||||
9
nixos/bluetooth.nix
Normal file
9
nixos/bluetooth.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [ blueman ];
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
|
||||
services.blueman.enable = true;
|
||||
}
|
||||
35
nixos/fonts.nix
Normal file
35
nixos/fonts.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ pkgs, inputs, ... }: {
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
roboto
|
||||
work-sans
|
||||
comic-neue
|
||||
source-sans
|
||||
comfortaa
|
||||
inter
|
||||
lato
|
||||
lexend
|
||||
jost
|
||||
dejavu_fonts
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
(nerdfonts.override { fonts = [ "FiraCode" "Meslo" ]; })
|
||||
openmoji-color
|
||||
twemoji-color-font
|
||||
inputs.apple-fonts.packages.${pkgs.system}.sf-pro-nerd
|
||||
];
|
||||
|
||||
enableDefaultPackages = false;
|
||||
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
monospace = [ "FiraCode Nerd Font Mono" "Noto Color Emoji" ];
|
||||
sansSerif = [ "SFProDisplay Nerd Font" "Noto Color Emoji" ];
|
||||
serif = [ "SFProDisplay Nerd Font" "Noto Color Emoji" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
nixos/home-manager.nix
Normal file
7
nixos/home-manager.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ inputs, ... }: {
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
};
|
||||
}
|
||||
4
nixos/network-manager.nix
Normal file
4
nixos/network-manager.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
networking.networkmanager.enable = true;
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
}
|
||||
22
nixos/nix.nix
Normal file
22
nixos/nix.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{ config, ... }: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix = {
|
||||
extraOptions = ''
|
||||
warn-dirty = false
|
||||
'';
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [ "nix-command" "flakes" ];
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
];
|
||||
};
|
||||
gc = {
|
||||
automatic = config.var.autoGarbageCollector;
|
||||
persistent = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
}
|
||||
53
nixos/nvidia.nix
Normal file
53
nixos/nvidia.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
nvidiaDriverChannel =
|
||||
config.boot.kernelPackages.nvidiaPackages.beta; # stable, latest, beta, etc.
|
||||
in {
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers =
|
||||
[ "nvidia" "displayLink" ]; # or "nvidiaLegacy470 etc.
|
||||
boot.kernelParams =
|
||||
lib.optionals (lib.elem "nvidia" config.services.xserver.videoDrivers) [
|
||||
"nvidia-drm.modeset=1"
|
||||
"nvidia_drm.fbdev=1"
|
||||
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
|
||||
];
|
||||
environment.variables = {
|
||||
# GBM_BACKEND = "nvidia-drm"; # If crash in firefox, remove this line
|
||||
LIBVA_DRIVER_NAME = "nvidia"; # hardware acceleration
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
};
|
||||
nixpkgs.config = {
|
||||
nvidia.acceptLicense = true;
|
||||
allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"cudatoolkit"
|
||||
"nvidia-persistenced"
|
||||
"nvidia-settings"
|
||||
"nvidia-x11"
|
||||
];
|
||||
};
|
||||
hardware = {
|
||||
nvidia = {
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
powerManagement.enable =
|
||||
true; # This can cause sleep/suspend to fail and saves entire VRAM to /tmp/
|
||||
modesetting.enable = true;
|
||||
package = nvidiaDriverChannel;
|
||||
};
|
||||
graphics = {
|
||||
enable = true;
|
||||
package = nvidiaDriverChannel;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
nvidia-vaapi-driver
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
mesa
|
||||
egl-wayland
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
13
nixos/prime.nix
Normal file
13
nixos/prime.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
hardware.nvidia.prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
|
||||
# sync.enable = true;
|
||||
|
||||
amdgpuBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
}
|
||||
14
nixos/systemd-boot.nix
Normal file
14
nixos/systemd-boot.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ pkgs, ... }: {
|
||||
boot = {
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
consoleMode = "auto";
|
||||
};
|
||||
};
|
||||
tmp.cleanOnBoot = true;
|
||||
kernelPackages =
|
||||
pkgs.linuxPackages_latest; # _zen, _hardened, _rt, _rt_latest, etc.
|
||||
};
|
||||
}
|
||||
15
nixos/timezone.nix
Normal file
15
nixos/timezone.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, ... }: {
|
||||
time.timeZone = config.var.timeZone;
|
||||
i18n.defaultLocale = config.var.defaultLocale;
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = config.var.extraLocale;
|
||||
LC_IDENTIFICATION = config.var.extraLocale;
|
||||
LC_MEASUREMENT = config.var.extraLocale;
|
||||
LC_MONETARY = config.var.extraLocale;
|
||||
LC_NAME = config.var.extraLocale;
|
||||
LC_NUMERIC = config.var.extraLocale;
|
||||
LC_PAPER = config.var.extraLocale;
|
||||
LC_TELEPHONE = config.var.extraLocale;
|
||||
LC_TIME = config.var.extraLocale;
|
||||
};
|
||||
}
|
||||
33
nixos/tuigreet.nix
Normal file
33
nixos/tuigreet.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ pkgs, ... }: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command =
|
||||
"${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [ greetd.tuigreet ];
|
||||
|
||||
# this is a life saver.
|
||||
# literally no documentation about this anywhere.
|
||||
# might be good to write about this...
|
||||
# https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal"; # Without this errors will spam on screen
|
||||
# Without these bootlogs will spam on screen
|
||||
TTYReset = true;
|
||||
TTYVHangup = true;
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
|
||||
# To prevent getting stuck at shutdown
|
||||
systemd.extraConfig = "DefaultTimeoutStopSec=10s";
|
||||
|
||||
}
|
||||
11
nixos/users.nix
Normal file
11
nixos/users.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, ... }: {
|
||||
programs.zsh.enable = true;
|
||||
users = {
|
||||
defaultUserShell = pkgs.zsh;
|
||||
users.${config.var.username} = {
|
||||
isNormalUser = true;
|
||||
description = "${config.var.username} account";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
55
nixos/utils.nix
Normal file
55
nixos/utils.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ pkgs, config, ... }: {
|
||||
|
||||
networking.hostName = config.var.hostname;
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
xkb.layout = config.var.keyboardLayout;
|
||||
xkb.variant = "";
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
};
|
||||
console.keyMap = config.var.keyboardLayout;
|
||||
|
||||
environment.variables = {
|
||||
XDG_DATA_HOME = "$HOME/.local/share";
|
||||
PASSWORD_STORE_DIR = "$HOME/.local/share/password-store";
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
services.libinput.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
services = {
|
||||
dbus.enable = true;
|
||||
gvfs.enable = true;
|
||||
upower.enable = true;
|
||||
power-profiles-daemon.enable = true;
|
||||
udisks2.enable = true;
|
||||
};
|
||||
|
||||
# Faster rebuilding
|
||||
documentation = {
|
||||
enable = true;
|
||||
doc.enable = false;
|
||||
man.enable = true;
|
||||
dev.enable = false;
|
||||
info.enable = false;
|
||||
nixos.enable = false;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
fd
|
||||
bc
|
||||
gcc
|
||||
git-ignore
|
||||
xdg-utils
|
||||
wget
|
||||
curl
|
||||
];
|
||||
|
||||
services.logind.extraConfig = ''
|
||||
# don’t shutdown when power button is short-pressed
|
||||
HandlePowerKey=ignore
|
||||
'';
|
||||
}
|
||||
8
nixos/variables-config.nix
Normal file
8
nixos/variables-config.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ lib, ... }: {
|
||||
options = {
|
||||
var = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
10
nixos/xdg-portal.nix
Normal file
10
nixos/xdg-portal.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ pkgs, ... }: {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config.common.default = "*";
|
||||
wlr.enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
extraPortals =
|
||||
[ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user