mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
257 lines
7.4 KiB
Nix
257 lines
7.4 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
inputs,
|
|
xdg,
|
|
...
|
|
}: {
|
|
# compress half of the ram to use as swap
|
|
zramSwap = {
|
|
enable = true;
|
|
algorithm = "zstd";
|
|
};
|
|
|
|
# TODO Move?
|
|
environment.variables = {
|
|
EDITOR = "nvim";
|
|
BROWSER = "chromium";
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
git
|
|
clang
|
|
llvmPackages_16.bintools
|
|
# rust-bin.nightly.latest.default
|
|
# support both 32- and 64-bit applications
|
|
wineWowPackages.stable
|
|
# winetricks (all versions)
|
|
winetricks
|
|
texlive.combined.scheme-small
|
|
];
|
|
|
|
virtualisation.virtualbox.host.enable = true;
|
|
users.extraGroups.vboxusers.members = [ "muon" ];
|
|
|
|
# Set your time zone.
|
|
time.timeZone = "Atlantic/Reykjavik";
|
|
|
|
# Select internationalisation properties.
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
i18n.extraLocaleSettings = {
|
|
LC_ADDRESS = "en_DK.UTF-8";
|
|
LC_IDENTIFICATION = "en_DK.UTF-8";
|
|
LC_MEASUREMENT = "en_DK.UTF-8";
|
|
LC_MONETARY = "en_DK.UTF-8";
|
|
LC_NAME = "en_DK.UTF-8";
|
|
LC_NUMERIC = "en_DK.UTF-8";
|
|
LC_PAPER = "en_DK.UTF-8";
|
|
LC_TELEPHONE = "en_DK.UTF-8";
|
|
LC_TIME = "en_DK.UTF-8";
|
|
};
|
|
|
|
# Configure keymap in X11
|
|
services.xserver = {
|
|
layout = "us";
|
|
xkbVariant = "";
|
|
xkbOptions = "caps:escape";
|
|
};
|
|
|
|
# Use keymap in console
|
|
console.useXkbConfig = true;
|
|
|
|
programs.thunar.enable = true;
|
|
services.gvfs.enable = true; # Mount, trash, and other functionalities
|
|
services.tumbler.enable = true; # Thumbnail support for images
|
|
|
|
# Sound
|
|
sound = {
|
|
enable = true;
|
|
};
|
|
|
|
hardware.pulseaudio.enable = true;
|
|
security.rtkit.enable = true;
|
|
|
|
services.pipewire = {
|
|
enable = false;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
virtualisation.docker.enable = true;
|
|
|
|
services.syncthing = with config.users.users.muon; {
|
|
enable = true;
|
|
user = "muon";
|
|
dataDir = "${config.xdg.userDirs.documents}";
|
|
configDir = "${home}/.config/syncthing";
|
|
|
|
overrideDevices = true;
|
|
overrideFolders = true;
|
|
|
|
devices = {
|
|
"syncthing" = {
|
|
id = "SDFDQ4N-UPPGKQH-JWVII4O-FT4XTH3-FT2RPMZ-EQC57PQ-VXL7BBD-4LLPTA4";
|
|
};
|
|
};
|
|
|
|
folders = {
|
|
"documents" = {
|
|
path = "${home}/documents";
|
|
devices = ["syncthing"];
|
|
};
|
|
"librewolf" = {
|
|
path = "${home}/.librewolf";
|
|
devices = ["syncthing"];
|
|
};
|
|
"logseq" = {
|
|
path = "${home}/.logseq";
|
|
devices = ["syncthing"];
|
|
};
|
|
"zotero" = {
|
|
path = "${home}/Zotero";
|
|
devices = ["syncthing"];
|
|
};
|
|
"zotero-conf" = {
|
|
path = "${home}/.zotero";
|
|
devices = ["syncthing"];
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.nix-ld = {
|
|
enable = true;
|
|
libraries = with pkgs; [
|
|
stdenv.cc.cc
|
|
openssl
|
|
curl
|
|
glib
|
|
util-linux
|
|
glibc
|
|
icu
|
|
libunwind
|
|
libuuid
|
|
zlib
|
|
libsecret
|
|
# graphical
|
|
freetype
|
|
libglvnd
|
|
libnotify
|
|
SDL2
|
|
vulkan-loader
|
|
gdk-pixbuf
|
|
xorg.libX11
|
|
];
|
|
};
|
|
|
|
systemd = let
|
|
extraConfig = ''
|
|
DefaultTimeoutStopSec=15s
|
|
'';
|
|
in {
|
|
inherit extraConfig;
|
|
user = {inherit extraConfig;};
|
|
services."getty@tty1".enable = false;
|
|
services."autovt@tty1".enable = false;
|
|
services."getty@tty7".enable = false;
|
|
services."autovt@tty7".enable = false;
|
|
# Systemd OOMd
|
|
# Fedora enables these options by default. See the 10-oomd-* files here:
|
|
# https://src.fedoraproject.org/rpms/systemd/tree/acb90c49c42276b06375a66c73673ac3510255
|
|
oomd = {
|
|
enableRootSlice = true;
|
|
enableUserServices = true;
|
|
};
|
|
};
|
|
|
|
services.udev.extraRules = ''
|
|
# Atmel DFU
|
|
### ATmega16U2
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
|
|
### ATmega32U2
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
|
|
### ATmega16U4
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
|
|
### ATmega32U4
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
|
|
### AT90USB64
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
|
|
### AT90USB162
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
|
|
### AT90USB128
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
|
|
|
|
# Input Club
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
|
|
|
|
# STM32duino
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
|
|
# STM32 DFU
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
|
|
|
# BootloadHID
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
|
|
|
|
# USBAspLoader
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
|
|
|
|
# USBtinyISP
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
|
|
|
|
# ModemManager should ignore the following devices
|
|
# Atmel SAM-BA (Massdrop)
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
|
|
# Caterina (Pro Micro)
|
|
## pid.codes shared PID
|
|
### Keyboardio Atreus 2 Bootloader
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
## Spark Fun Electronics
|
|
### Pro Micro 3V3/8MHz
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### Pro Micro 5V/16MHz
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
## Pololu Electronics
|
|
### A-Star 32U4
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
## Arduino SA
|
|
### Leonardo
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### Micro
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
## Adafruit Industries LLC
|
|
### Feather 32U4
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### ItsyBitsy 32U4 3V3/8MHz
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### ItsyBitsy 32U4 5V/16MHz
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
## dog hunter AG
|
|
### Leonardo
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
### Micro
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
|
|
# hid_listen
|
|
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
|
|
|
|
# hid bootloaders
|
|
## QMK HID
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
|
|
## PJRC's HalfKay
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
|
|
|
|
# APM32 DFU
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
|
|
|
|
# GD32V DFU
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
|
|
|
|
# WB32 DFU
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
|
|
'';
|
|
}
|