mirror of
https://github.com/inexcode/nixos-config.git
synced 2024-12-04 12:26:34 +00:00
Update to flakes
This commit is contained in:
parent
b5259e38e8
commit
20f537a492
|
@ -4,9 +4,6 @@
|
||||||
|
|
||||||
{ config, pkgs, lib, fetchpatch, ... }:
|
{ config, pkgs, lib, fetchpatch, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> { };
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
|
@ -16,41 +13,24 @@ in
|
||||||
./modules/gnome.nix
|
./modules/gnome.nix
|
||||||
./modules/zsh.nix
|
./modules/zsh.nix
|
||||||
./modules/vscode.nix
|
./modules/vscode.nix
|
||||||
./vscode.nix
|
# ./lockservice.nix
|
||||||
|
# ./vscode.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.trustedUsers = [ "root" "inex" ];
|
nix.settings.trusted-users = [ "root" "inex" ];
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
android_sdk.accept_license = true;
|
android_sdk.accept_license = true;
|
||||||
|
chromium = {
|
||||||
|
enableWideVine = true;
|
||||||
|
};
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"olm-3.2.16"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super:
|
|
||||||
{
|
|
||||||
openhmd = super.openhmd.overrideAttrs (old: {
|
|
||||||
src = super.fetchFromGitHub {
|
|
||||||
owner = "OpenHMD";
|
|
||||||
repo = "OpenHMD";
|
|
||||||
rev = "dfac0203376552c5274976c42f0757b31310c483";
|
|
||||||
sha256 = "1rm8iw03glfgnhggg221p8zycm9yjw84bv9ldb0vg2ygybds9m27";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
vscode-extensions = super.vscode-extensions // {
|
|
||||||
github.copilot = pkgs.vscode-utils.buildVscodeMarketplaceExtension {
|
|
||||||
mktplcRef = {
|
|
||||||
publisher = "github";
|
|
||||||
name = "copilot";
|
|
||||||
version = "1.22.5957";
|
|
||||||
sha256 = "04jak6ml7l19ryv2q6qn7qvvgw31jllgvd9g8xlac89xnndsfl6s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
|
@ -59,49 +39,42 @@ in
|
||||||
grub.memtest86.enable = true;
|
grub.memtest86.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"kernel.sysrq" = 1;
|
||||||
|
};
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "btrfs" "ntfs" ];
|
boot.supportedFilesystems = [ "btrfs" "ntfs" ];
|
||||||
|
|
||||||
fileSystems."/mediastorage" = {
|
|
||||||
device = "/dev/disk/by-uuid/aed202ac-7414-40b9-9d71-011b7043c850";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/backups" = {
|
|
||||||
device = "/dev/disk/by-uuid/63db910e-f906-4211-bac5-4330777c8283";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
# fileSystems."/nvme" = {
|
|
||||||
# device = "/dev/disk/by-uuid/8c1c5508-ecaa-433d-87c0-49d131395ddd";
|
|
||||||
# fsType = "btrfs";
|
|
||||||
# };
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "inex-pc";
|
hostName = "inex-pc";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces = {
|
interfaces = {
|
||||||
enp8s0 = {
|
enp39s0 = {
|
||||||
useDHCP = true;
|
useDHCP = true;
|
||||||
};
|
};
|
||||||
wlp5s0 = {
|
wlo1 = {
|
||||||
useDHCP = true;
|
useDHCP = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
nameservers = [ "10.100.0.101" "8.8.8.8" ];
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = false;
|
enable = true;
|
||||||
allowedTCPPorts = [ 8437 1716 51820 24642 27036 27037 24800 ];
|
allowedTCPPorts = [ 8437 1716 51820 24642 27036 27037 24800 26000 3979 ];
|
||||||
allowedUDPPorts = [ 8437 1716 51820 24642 27031 27036 24800 ];
|
allowedUDPPorts = [ 8437 1716 51820 24642 27031 27036 24800 26000 3979 ];
|
||||||
checkReversePath = false;
|
checkReversePath = false;
|
||||||
};
|
};
|
||||||
wireguard.interfaces = {
|
wireguard.interfaces = {
|
||||||
wg0 = {
|
wg0 = {
|
||||||
# Determines the IP address and subnet of the client's end of the tunnel interface.
|
# Determines the IP address and subnet of the client's end of the tunnel interface.
|
||||||
ips = [ "10.100.0.6/24" ];
|
ips = [
|
||||||
listenPort = 51820;
|
"10.100.0.6/24"
|
||||||
|
];
|
||||||
|
listenPort = 56987;
|
||||||
|
|
||||||
|
|
||||||
|
mtu = 1200;
|
||||||
|
|
||||||
postSetup = "${pkgs.iproute}/bin/ip route add 135.181.97.221 via 192.168.1.1";
|
|
||||||
postShutdown = "${pkgs.iproute}/bin/ip route del 135.181.97.221 via 192.168.1.1";
|
|
||||||
|
|
||||||
# Path to the private key file.
|
# Path to the private key file.
|
||||||
#
|
#
|
||||||
|
@ -122,13 +95,41 @@ in
|
||||||
allowedIPs = [ "10.100.0.0/24" ];
|
allowedIPs = [ "10.100.0.0/24" ];
|
||||||
|
|
||||||
# Set this to the server IP and port.
|
# Set this to the server IP and port.
|
||||||
endpoint = "135.181.97.221:51820";
|
endpoint = "192.168.1.127:51555";
|
||||||
|
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# Public key of the server (not a file path).
|
||||||
|
publicKey = "33y4aWkI645LztWgQrzkFJphrHQxYvHoduT+1OJQ7m8=";
|
||||||
|
|
||||||
|
# Forward all the traffic via VPN.
|
||||||
|
#allowedIPs = [ "0.0.0.0/0" ];
|
||||||
|
# Or forward only particular subnets
|
||||||
|
allowedIPs = [ "10.100.0.10/32" "10.100.0.11/32" ];
|
||||||
|
|
||||||
|
# Set this to the server IP and port.
|
||||||
|
endpoint = "192.168.1.10:51820";
|
||||||
|
|
||||||
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
# wg1 = {
|
||||||
|
# REDACTED
|
||||||
|
# };
|
||||||
|
# wg2 = {
|
||||||
|
# REDACTED
|
||||||
|
# };
|
||||||
|
|
||||||
|
};
|
||||||
|
hosts = {
|
||||||
|
"192.168.1.10" = [ "homelab.inex.cloud" ];
|
||||||
|
"10.100.0.100" = [ "autumn-blaze.inex.cloud" ];
|
||||||
|
#"192.168.1.3" = [ "fw.ponychord.rocks" ];
|
||||||
|
"127.0.0.1" = [ "traefik.local" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -144,23 +145,50 @@ in
|
||||||
time.timeZone = "Europe/Moscow";
|
time.timeZone = "Europe/Moscow";
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
printing.enable = true;
|
yubikey-agent.enable = true;
|
||||||
|
printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = [ pkgs.hplipWithPlugin pkgs.cups-brother-dcpt310 ];
|
||||||
|
};
|
||||||
|
libinput.enable = true;
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
layout = "us";
|
xkb.layout = "us";
|
||||||
xkbVariant = "colemak";
|
xkb.variant = "colemak";
|
||||||
videoDrivers = [ "amdgpu" ];
|
videoDrivers = [ "modesetting" ];
|
||||||
libinput.enable = true;
|
|
||||||
exportConfiguration = true;
|
exportConfiguration = true;
|
||||||
wacom.enable = true;
|
wacom.enable = true;
|
||||||
};
|
};
|
||||||
|
usbmuxd.enable = true;
|
||||||
openssh = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
passwordAuthentication = false;
|
settings = {
|
||||||
forwardX11 = true;
|
X11Forwarding = true;
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ollama = {
|
||||||
|
enable = true;
|
||||||
|
acceleration = "rocm";
|
||||||
|
environmentVariables = {
|
||||||
|
HCC_AMDGPU_TARGET = "gfx1100"; # used to be necessary, but doesn't seem to anymore
|
||||||
|
};
|
||||||
|
rocmOverrideGfx = "11.0.0";
|
||||||
};
|
};
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
udev.packages = [
|
udev.packages = [
|
||||||
|
pkgs.platformio-core
|
||||||
|
pkgs.openocd
|
||||||
|
pkgs.yubikey-personalization
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "yubikey-actions";
|
||||||
|
text = ''
|
||||||
|
# ACTION=="remove", ENV{ID_MODEL_ID}=="0407", ENV{ID_VENDOR_ID}=="1050", RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
|
||||||
|
# ACTION=="remove", ENV{HID_NAME}=="Flipper Devices Inc. U2F Token", RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
|
||||||
|
'';
|
||||||
|
destination = "/etc/udev/rules.d/50-yubikey-actions.rules";
|
||||||
|
})
|
||||||
|
|
||||||
(pkgs.writeTextFile {
|
(pkgs.writeTextFile {
|
||||||
name = "wacom_udev";
|
name = "wacom_udev";
|
||||||
text = ''
|
text = ''
|
||||||
|
@ -173,25 +201,29 @@ in
|
||||||
LABEL="wacom_end"
|
LABEL="wacom_end"
|
||||||
'';
|
'';
|
||||||
destination = "/etc/udev/rules.d/50-wacom.rules";
|
destination = "/etc/udev/rules.d/50-wacom.rules";
|
||||||
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sound.enable = true;
|
#sound.enable = true;
|
||||||
|
|
||||||
# Video driver
|
# Video driver
|
||||||
hardware = {
|
hardware = {
|
||||||
opengl = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport32Bit = true;
|
extraPackages = [ pkgs.rocmPackages.clr.icd ];
|
||||||
extraPackages = [ pkgs.amdvlk pkgs.rocm-opencl-icd pkgs.rocm-runtime pkgs.rocm-opencl-runtime ];
|
};
|
||||||
|
sane = {
|
||||||
|
enable = true;
|
||||||
|
extraBackends = [ pkgs.hplipWithPlugin ];
|
||||||
|
brscan4.enable = true;
|
||||||
};
|
};
|
||||||
steam-hardware.enable = true;
|
steam-hardware.enable = true;
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.bluezFull;
|
package = pkgs.bluez;
|
||||||
};
|
};
|
||||||
pulseaudio = {
|
pulseaudio = {
|
||||||
package = pkgs.pulseaudioFull;
|
package = pkgs.pulseaudioFull;
|
||||||
|
@ -200,13 +232,29 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.variables.VK_ICD_FILENAMES = "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json";
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
# package = pkgs.steam.override { privateTmp = false; };
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
gamescopeSession = {
|
||||||
|
#enable = true;
|
||||||
|
#args = [ "--rt" "-O DP-1" "-W 3440" "-H 1440" "--hdr-enabled" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
java = {
|
java = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
alvr = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
#k3b.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
|
@ -217,6 +265,10 @@ in
|
||||||
waydroid.enable = true;
|
waydroid.enable = true;
|
||||||
virtualbox.host = {
|
virtualbox.host = {
|
||||||
enable = false;
|
enable = false;
|
||||||
|
# enableExtensionPack = true;
|
||||||
|
};
|
||||||
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -226,11 +278,14 @@ in
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
home = "/home/inex";
|
home = "/home/inex";
|
||||||
description = "Inex Code";
|
description = "Inex Code";
|
||||||
extraGroups = [ "wheel" "networkmanager" "jackaudio" "audio" "video" "adbusers" "docker" "cdrom" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [ "wheel" "networkmanager" "jackaudio" "audio" "video" "render" "adbusers" "docker" "cdrom" "scanner" "lp" "libvirtd" "dialout" ];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [ ];
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzL0gmvpMOZbijqZOlTuNqtVHZGoNrxCiWJXIDcUwr1cx8M2o61qK/wNMZmyYGROpJbpsFERAjXIXBpwg2KQ3ONRL6q44nPrOSbHm3zL8pnFEvzM0BUKV1Mq2T1dM+geMhQnLrwZhOxvp3+9uhFSTPP/dVzWQ19pEiK5hHpXlD3eyO+LIaS/wkTJvBy/wCKz+O/coLyBQ+Mn5hGQaJAyDec/ovu8OhBkJbbvWp03F2zcWUCxwVfZ1VnLQxn7tk9L4iTw1+rDt0kaRQvVISV3KdqLJnPODku6eC38LcMfHIFXAWBdSUslGUl9Qkd1c+6Gorzt3BrfYL/HDW2Xk3UTQF inex-envy"
|
};
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCbUS/AblfzZcfr/iMxHJ5pubzCuriVTu12TKt1iRQFDjQDo+/j0/Ga07zqyB9VUhpJg/IOcJ6o2T4PBixNuHQQX5z4sb/tqzbx3buBz0HIp8VHRC3TtLAmsFj24AldxlADlQpGnlt+g3p200m2dwu/Yoe4+GD8Twwg6FCsyiRjstbfo89Kmwi9yVbXx5aBssscEkXBQODTpwOB05nCz3oUuvQ5ex+yH+o02cTlYyBoglgfzM6HzR0GkmCRDlx613nqa1+ICxwWY0cXMbhnUwDoJASk5eJovtmEqC29qJKABxZaKRYsaW3sMJiMOvPHf9BkVKp4uPINhLc5vopwZI10xsNOn75AXRptkHzenn7ymC+qwJr53Z1tAAfMb5ypJ+u+SE8wazd4x2CIFHH+LbaputqxyfUxNoMbFMGNXICDAOCCQ0nkax7Ifr1NlTp07zTYH6VP0kzqqYiAlBu5qo3qIi5dRsLvb6/McerDNhRmYh25Ww7zpEY4Q9uTWDZkCP8= u0_a122@localhost"
|
|
||||||
];
|
|
||||||
|
security.pam.services = {
|
||||||
|
login.u2fAuth = true;
|
||||||
|
sudo.u2fAuth = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
|
@ -240,7 +295,16 @@ in
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
system.stateVersion = "20.03"; # Did you read the comment?
|
system.stateVersion = "20.03"; # Did you read the comment?
|
||||||
system.autoUpgrade.enable = true;
|
system.autoUpgrade.enable = false;
|
||||||
|
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
environment.variables =
|
||||||
|
{
|
||||||
|
# AMD_VULKAN_ICD = "RADV";
|
||||||
|
DXVK_HDR = "1";
|
||||||
|
ENABLE_GAMESCOPE_WSI = "1";
|
||||||
|
};
|
||||||
|
|
||||||
environment.shellInit = ''
|
environment.shellInit = ''
|
||||||
export VST_PATH=/nix/var/nix/profiles/default/lib/vst:/var/run/current-system/sw/lib/vst:~/.vst
|
export VST_PATH=/nix/var/nix/profiles/default/lib/vst:/var/run/current-system/sw/lib/vst:~/.vst
|
||||||
|
|
|
@ -15,6 +15,8 @@ in
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
#chaotic.hdr.enable = true;
|
||||||
|
|
||||||
# Video driver
|
# Video driver
|
||||||
hardware = {
|
hardware = {
|
||||||
pulseaudio = {
|
pulseaudio = {
|
||||||
|
|
23
Desktop/flake.nix
Normal file
23
Desktop/flake.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
#nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||||
|
nixpkgs.url = "path:/home/inex/dev/nixpkgs";
|
||||||
|
inex-vscode.url = "git+https://inex.dev/inex-flakes/vscode";
|
||||||
|
# chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, inex-vscode, ... }@attrs: {
|
||||||
|
nixosConfigurations.inex-pc = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = attrs;
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
./configuration.nix
|
||||||
|
./pipewire.nix
|
||||||
|
#chaotic.nixosModules.default
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
69
Desktop/hardware-configuration.nix
Normal file
69
Desktop/hardware-configuration.nix
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
# 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" "sr_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
|
boot.kernel.sysctl = { "vm.swappiness" = 10; };
|
||||||
|
|
||||||
|
fileSystems."/ssd" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/026c76bc-1279-459e-8e63-7b44ca8158db";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-uuid/D9DD-3F47";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
#fileSystems."/mediastorage" = {
|
||||||
|
# device = "/dev/disk/by-uuid/aed202ac-7414-40b9-9d71-011b7043c850";
|
||||||
|
# fsType = "ext4";
|
||||||
|
#};
|
||||||
|
|
||||||
|
fileSystems."/backups" = {
|
||||||
|
device = "/dev/disk/by-uuid/63db910e-f906-4211-bac5-4330777c8283";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/7246a5a1-f5e9-44a0-9756-96c0571e3986";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=root" "compress=zstd" ];
|
||||||
|
};
|
||||||
|
"/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/7246a5a1-f5e9-44a0-9756-96c0571e3986";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" "compress=zstd" ];
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/disk/by-uuid/7246a5a1-f5e9-44a0-9756-96c0571e3986";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nix" "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
"/var/lib/docker" = {
|
||||||
|
device = "/dev/disk/by-uuid/7246a5a1-f5e9-44a0-9756-96c0571e3986";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=docker" "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[
|
||||||
|
# { device = "/dev/disk/by-uuid/27f0bffa-7705-40c4-af59-e2bd3e2e9f9d"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
17
Desktop/lockservice.nix
Normal file
17
Desktop/lockservice.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, pkgs, lib, fetchpatch, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd.services."lock-inex" = {
|
||||||
|
description = "Lock Inex' session";
|
||||||
|
environment = config.nix.envVars // {
|
||||||
|
DISPLAY = ":0";
|
||||||
|
WAYLAND_DISPLAY = "wayland-0";
|
||||||
|
};
|
||||||
|
restartIfChanged = false;
|
||||||
|
serviceConfig = {
|
||||||
|
User = "inex";
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.xdg-utils}/bin/xdg-screensaver lock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -15,16 +15,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.gnome.gnome-remote-desktop.enable = true;
|
||||||
|
|
||||||
qt5.platformTheme = "gnome";
|
qt.platformTheme = "gnome";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome.pomodoro
|
gnome-pomodoro
|
||||||
gnome.gnome-tweaks
|
gnome-tweaks
|
||||||
gnome.networkmanager-openvpn
|
gnome-remote-desktop
|
||||||
|
networkmanager-openvpn
|
||||||
|
mission-center
|
||||||
rhythmbox
|
rhythmbox
|
||||||
evolution
|
evolution
|
||||||
gnomeExtensions.gsconnect
|
gnomeExtensions.gsconnect
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,29 @@
|
||||||
{neovim, vimUtils, vimPlugins, stdenv, fetchgit}:
|
{ neovim, vimUtils, vimPlugins, stdenv, fetchgit }:
|
||||||
|
|
||||||
let custom_config=''
|
let
|
||||||
let g:airline_powerline_fonts = 1
|
custom_config = ''
|
||||||
let g:airline_theme='dark'
|
let g:airline_powerline_fonts = 1
|
||||||
'';
|
let g:airline_theme='dark'
|
||||||
in neovim.override {
|
'';
|
||||||
vimAlias = true;
|
in
|
||||||
configure = {
|
neovim.override {
|
||||||
customRC = custom_config;
|
vimAlias = true;
|
||||||
vam.pluginDictionaries = [
|
configure = {
|
||||||
{ names = [
|
customRC = custom_config;
|
||||||
"vim-sensible"
|
vam.pluginDictionaries = [
|
||||||
"vim-airline"
|
{
|
||||||
"vim-airline-themes"
|
names = [
|
||||||
"nerdtree"
|
"vim-sensible"
|
||||||
"vim-nix"
|
"vim-airline"
|
||||||
"dart-vim-plugin"
|
"vim-airline-themes"
|
||||||
"coc-nvim"
|
"nerdtree"
|
||||||
];
|
"vim-nix"
|
||||||
}
|
"dart-vim-plugin"
|
||||||
];
|
"coc-nvim"
|
||||||
};
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,114 +1,9 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inex-vscode, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
|
||||||
extensions = (with pkgs.vscode-extensions; [
|
|
||||||
unstable.vscode-extensions.ms-vsliveshare.vsliveshare
|
|
||||||
arcticicestudio.nord-visual-studio-code
|
|
||||||
bbenoist.nix
|
|
||||||
davidanson.vscode-markdownlint
|
|
||||||
dbaeumer.vscode-eslint
|
|
||||||
jakebecker.elixir-ls
|
|
||||||
james-yu.latex-workshop
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
mhutchie.git-graph
|
|
||||||
ms-azuretools.vscode-docker
|
|
||||||
ms-python.vscode-pylance
|
|
||||||
ms-python.python
|
|
||||||
ms-toolsai.jupyter
|
|
||||||
ms-vscode-remote.remote-ssh
|
|
||||||
ms-vscode.cpptools
|
|
||||||
github.copilot
|
|
||||||
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
||||||
{
|
|
||||||
name = "vscode-standardjs";
|
|
||||||
publisher = "chenxsan";
|
|
||||||
version = "1.4.1";
|
|
||||||
sha256 = "0hiaqflp0d3k2pq3p44wrpyn4v6n0x660f4v47nf9bsdn5lidih3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "npm-intellisense";
|
|
||||||
publisher = "christian-kohler";
|
|
||||||
version = "1.4.1";
|
|
||||||
sha256 = "0hph57g8fbwrvj1sdzc7vqsiaf7n2qzvkakc9ir0kkkwwdxc6c5a";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dart-code";
|
|
||||||
publisher = "Dart-Code";
|
|
||||||
version = "3.40.0";
|
|
||||||
sha256 = "1cvibhazgz42zzwlk354sihrimw26qvgsq5nirvwx4v27gcirq81";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "flutter";
|
|
||||||
publisher = "Dart-Code";
|
|
||||||
version = "3.40.0";
|
|
||||||
sha256 = "0yxkqr6ajpdl06rxxad4c1zx5ci4sbaj2lk2xl9bws51imn58wry";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-html-css";
|
|
||||||
publisher = "ecmel";
|
|
||||||
version = "1.12.2";
|
|
||||||
sha256 = "059s1yg0b875b3ijhwgpg8v408as5z6r876jv5jing1vjb20pgvb";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-npm-script";
|
|
||||||
publisher = "eg2";
|
|
||||||
version = "0.3.25";
|
|
||||||
sha256 = "0z01i0fhl0phmz5bx5fh80flarldk7sdqgr14vx9kjz5yjzz48ys";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vsc-community-material-theme";
|
|
||||||
publisher = "Equinusocio";
|
|
||||||
version = "1.4.4";
|
|
||||||
sha256 = "005l4pr9x3v6x8450jn0dh7klv0pv7gv7si955r7b4kh19r4hz9y";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vsc-material-theme";
|
|
||||||
publisher = "Equinusocio";
|
|
||||||
version = "33.4.0";
|
|
||||||
sha256 = "11ljird5ja3r0ada639k0bdfdfq2rx0q49nh42cpglg3djh4mn06";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vsc-material-theme-icons";
|
|
||||||
publisher = "equinusocio";
|
|
||||||
version = "2.3.1";
|
|
||||||
sha256 = "1djm4k3hcn4aq63d4mxs2n4ffq5x1qr82q6gxwi5pmabrb0hrb30";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-firefox-debug";
|
|
||||||
publisher = "firefox-devtools";
|
|
||||||
version = "2.9.6";
|
|
||||||
sha256 = "0mx70gyigz26x56r01vvpdrvgs10zzqzv204jbkjzfwh4za45zv7";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-systemd-support";
|
|
||||||
publisher = "hangxingliu";
|
|
||||||
version = "1.0.1";
|
|
||||||
sha256 = "0f7j6y1jngicm475nilx08j55d94nnmymifxcbkszlxg0lnjrqys";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "materialdesignicons-intellisense";
|
|
||||||
publisher = "lukas-tr";
|
|
||||||
version = "4.0.0";
|
|
||||||
sha256 = "1748pj3jcgddpiamcs4ii2bjsmn9m9fx0dn2swfki8c6ibwrhy0w";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "remote-containers";
|
|
||||||
publisher = "ms-vscode-remote";
|
|
||||||
version = "0.234.0";
|
|
||||||
sha256 = "07mx08nwvw7jdlvkbr5iwikrcriib4zc1im1lbrqxjv7paj1an86";
|
|
||||||
}
|
|
||||||
|
|
||||||
];
|
|
||||||
vscode-with-extensions = pkgs.vscode-with-extensions.override {
|
|
||||||
vscodeExtensions = extensions;
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
vscode-with-extensions
|
inex-vscode.packages.x86_64-linux.default
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interactiveShellInit = "ponysay -q";
|
# interactiveShellInit = "ponysay -q";
|
||||||
autosuggestions = {
|
autosuggestions = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,90 +3,6 @@
|
||||||
services = {
|
services = {
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config.pipewire = {
|
|
||||||
"context.properties" = {
|
|
||||||
"link.max-buffers" = 16;
|
|
||||||
"log.level" = 2;
|
|
||||||
"default.clock.rate" = 48000;
|
|
||||||
"default.clock.quantum" = 512;
|
|
||||||
"default.clock.min-quantum" = 512;
|
|
||||||
"default.clock.max-quantum" = 512;
|
|
||||||
"core.daemon" = true;
|
|
||||||
"core.name" = "pipewire-0";
|
|
||||||
};
|
|
||||||
"context.modules" = [
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-rtkit";
|
|
||||||
args = {
|
|
||||||
"nice.level" = -15;
|
|
||||||
"rt.prio" = 88;
|
|
||||||
"rt.time.soft" = 200000;
|
|
||||||
"rt.time.hard" = 200000;
|
|
||||||
};
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-protocol-native"; }
|
|
||||||
{ name = "libpipewire-module-profiler"; }
|
|
||||||
{ name = "libpipewire-module-metadata"; }
|
|
||||||
{ name = "libpipewire-module-spa-device-factory"; }
|
|
||||||
{ name = "libpipewire-module-spa-node-factory"; }
|
|
||||||
{ name = "libpipewire-module-client-node"; }
|
|
||||||
{ name = "libpipewire-module-client-device"; }
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-portal";
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-access";
|
|
||||||
args = { };
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-adapter"; }
|
|
||||||
{ name = "libpipewire-module-link-factory"; }
|
|
||||||
{ name = "libpipewire-module-session-manager"; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
config.pipewire-pulse = {
|
|
||||||
"context.properties" = {
|
|
||||||
"log.level" = 2;
|
|
||||||
};
|
|
||||||
"context.modules" = [
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-rtkit";
|
|
||||||
args = {
|
|
||||||
"nice.level" = -15;
|
|
||||||
"rt.prio" = 88;
|
|
||||||
"rt.time.soft" = 200000;
|
|
||||||
"rt.time.hard" = 200000;
|
|
||||||
};
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-protocol-native"; }
|
|
||||||
{ name = "libpipewire-module-client-node"; }
|
|
||||||
{ name = "libpipewire-module-adapter"; }
|
|
||||||
{ name = "libpipewire-module-metadata"; }
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-protocol-pulse";
|
|
||||||
args = {
|
|
||||||
"pulse.min.req" = "512/48000";
|
|
||||||
"pulse.default.req" = "512/48000";
|
|
||||||
"pulse.max.req" = "512/48000";
|
|
||||||
"pulse.min.quantum" = "512/48000";
|
|
||||||
"pulse.max.quantum" = "512/48000";
|
|
||||||
"server.address" = [ "unix:native" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"stream.properties" = {
|
|
||||||
"node.latency" = "512/48000";
|
|
||||||
"resample.quality" = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config.jack = {
|
|
||||||
"jack.properties" = {
|
|
||||||
"node.latency" = "512/48000";
|
|
||||||
"node.lock-quantum" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./common.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
pulse.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.pulseaudio.enable = true;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,15 +1,5 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inex-vscode, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
|
||||||
MyOBS = pkgs.wrapOBS.override { obs-studio = pkgs.obs-studio; } {
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-gstreamer
|
|
||||||
obs-multi-rtmp
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Utils
|
# Utils
|
||||||
|
@ -26,7 +16,17 @@ in
|
||||||
nmap
|
nmap
|
||||||
libcec
|
libcec
|
||||||
clinfo
|
clinfo
|
||||||
alfis
|
#alfis
|
||||||
|
|
||||||
|
dfu-util
|
||||||
|
dfu-programmer
|
||||||
|
hackrf
|
||||||
|
|
||||||
|
#growisofs
|
||||||
|
|
||||||
|
rocmPackages.rocm-smi
|
||||||
|
rocmPackages.rocminfo
|
||||||
|
|
||||||
|
|
||||||
# File systems
|
# File systems
|
||||||
gparted
|
gparted
|
||||||
|
@ -40,7 +40,7 @@ in
|
||||||
appimage-run
|
appimage-run
|
||||||
|
|
||||||
# Manuals
|
# Manuals
|
||||||
unstable.manix
|
manix
|
||||||
tldr
|
tldr
|
||||||
|
|
||||||
# Terminal
|
# Terminal
|
||||||
|
@ -49,14 +49,10 @@ in
|
||||||
tmux
|
tmux
|
||||||
neofetch
|
neofetch
|
||||||
ponysay
|
ponysay
|
||||||
bpytop
|
btop
|
||||||
httpie
|
httpie
|
||||||
htop
|
htop
|
||||||
|
|
||||||
# Voice
|
|
||||||
speechd
|
|
||||||
rhvoice
|
|
||||||
|
|
||||||
# Wireguard
|
# Wireguard
|
||||||
#wireguard
|
#wireguard
|
||||||
#wireguard-tools
|
#wireguard-tools
|
||||||
|
@ -70,10 +66,10 @@ in
|
||||||
# Browsers
|
# Browsers
|
||||||
firefox
|
firefox
|
||||||
ungoogled-chromium
|
ungoogled-chromium
|
||||||
unstable.tor-browser-bundle-bin
|
tor-browser-bundle-bin
|
||||||
|
|
||||||
# Downloaders
|
# Downloaders
|
||||||
transmission-gtk
|
transmission_4-gtk
|
||||||
syncthing
|
syncthing
|
||||||
wget
|
wget
|
||||||
yt-dlp
|
yt-dlp
|
||||||
|
@ -81,40 +77,36 @@ in
|
||||||
# Messangers
|
# Messangers
|
||||||
tdesktop
|
tdesktop
|
||||||
mumble
|
mumble
|
||||||
qtox
|
#qtox
|
||||||
dino
|
dino
|
||||||
gomuks
|
gomuks
|
||||||
deltachat-desktop
|
deltachat-desktop
|
||||||
|
|
||||||
# Games
|
# Games
|
||||||
steam
|
#steam
|
||||||
steam-run-native
|
steam-run-native
|
||||||
openttd
|
openttd
|
||||||
minecraft
|
#minecraft
|
||||||
|
minetest
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
wineWowPackages.stable
|
wineWowPackages.stable
|
||||||
winetricks
|
winetricks
|
||||||
protontricks
|
protontricks
|
||||||
xonotic
|
xonotic
|
||||||
cataclysm-dda
|
# cataclysm-dda
|
||||||
|
|
||||||
|
sidequest
|
||||||
lutris
|
lutris
|
||||||
bottles
|
|
||||||
|
|
||||||
# VR
|
|
||||||
monado
|
|
||||||
openhmd
|
|
||||||
|
|
||||||
# VCS
|
# VCS
|
||||||
git
|
git
|
||||||
gitAndTools.git-bug
|
gitAndTools.git-bug
|
||||||
|
git-cliff
|
||||||
|
|
||||||
# IDE
|
# IDE
|
||||||
|
inex-vscode.packages.x86_64-linux.default
|
||||||
(pkgs.callPackage ./modules/my_vim.nix { })
|
(pkgs.callPackage ./modules/my_vim.nix { })
|
||||||
lens
|
android-studio
|
||||||
postman
|
|
||||||
androidStudioPackages.canary
|
|
||||||
|
|
||||||
# Compilers and interpretators
|
# Compilers and interpretators
|
||||||
ccls
|
ccls
|
||||||
|
@ -125,6 +117,11 @@ in
|
||||||
nodejs
|
nodejs
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
pandoc
|
pandoc
|
||||||
|
racket
|
||||||
|
dart
|
||||||
|
nil
|
||||||
|
go
|
||||||
|
hugo
|
||||||
|
|
||||||
# Docker and orchestration
|
# Docker and orchestration
|
||||||
ansible
|
ansible
|
||||||
|
@ -137,58 +134,64 @@ in
|
||||||
|
|
||||||
# Screen recording
|
# Screen recording
|
||||||
obs-studio
|
obs-studio
|
||||||
|
gpu-screen-recorder-gtk
|
||||||
kooha
|
kooha
|
||||||
|
|
||||||
# Graphics
|
# Graphics
|
||||||
krita
|
krita
|
||||||
gmic_krita_qt
|
|
||||||
potrace
|
potrace
|
||||||
ffmpeg
|
ffmpeg
|
||||||
blender
|
#blender-hip
|
||||||
unstable.shotwell
|
shotwell
|
||||||
inkscape
|
inkscape
|
||||||
kdenlive
|
kdenlive
|
||||||
|
davinci-resolve
|
||||||
|
libheif
|
||||||
|
digikam
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
audacity
|
audacity
|
||||||
# lmms
|
# lmms
|
||||||
picard
|
picard
|
||||||
cmus
|
# cmus
|
||||||
spotify
|
#spotify
|
||||||
pulseeffects-pw
|
easyeffects
|
||||||
|
#clementine
|
||||||
vlc
|
#vlc
|
||||||
syncplay
|
# syncplay
|
||||||
mpv
|
mpv
|
||||||
|
|
||||||
brasero
|
#ylibsForQt5.k3b
|
||||||
libsForQt5.k3b
|
|
||||||
|
|
||||||
# DAW
|
# DAW
|
||||||
zrythm
|
# zrythm
|
||||||
distrho
|
# distrho
|
||||||
helvum
|
helvum
|
||||||
zam-plugins
|
zam-plugins
|
||||||
x42-plugins
|
x42-plugins
|
||||||
helm
|
helm
|
||||||
zyn-fusion
|
zyn-fusion
|
||||||
lsp-plugins
|
#lsp-plugins
|
||||||
ardour
|
ardour
|
||||||
# Documents
|
# Documents
|
||||||
anki
|
#anki
|
||||||
libreoffice
|
libreoffice
|
||||||
homebank
|
|
||||||
klavaro
|
klavaro
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
keepassxc
|
keepassxc
|
||||||
glow
|
glow
|
||||||
unstable.obsidian
|
obsidian
|
||||||
aegisub
|
aegisub
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
archi
|
||||||
|
|
||||||
# Themes
|
# iPhone passthru
|
||||||
paper-icon-theme
|
usbmuxd
|
||||||
plata-theme
|
socat
|
||||||
|
|
||||||
|
zotero
|
||||||
|
|
||||||
|
timewarrior
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,93 +1,123 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, fetchpatch, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
|
||||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
|
||||||
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
||||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
|
||||||
exec -a "$0" "$@"
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[ # Include the results of the hardware scan.
|
||||||
# Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./software.nix
|
./software.nix
|
||||||
./modules/gnome.nix
|
./gnome.nix
|
||||||
# ./modules/i3.nix
|
./zsh.nix
|
||||||
./modules/zsh.nix
|
./gns3.nix
|
||||||
./pipewire.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot = {
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
v4l2loopback.out
|
||||||
|
];
|
||||||
|
kernelModules = [
|
||||||
|
"v4l2loopback"
|
||||||
|
];
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options v4l2loopback exclisive_caps=1 card_label="Virtual Camera"
|
||||||
|
'';
|
||||||
|
|
||||||
|
supportedFilesystems = [ "btrfs" "ntfs" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
trusted-users = [ "root" "inex" ];
|
||||||
|
};
|
||||||
|
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
# allowBroken = true;
|
|
||||||
android_sdk.accept_license = true;
|
android_sdk.accept_license = true;
|
||||||
chromium.enableWideVine = true;
|
chromium = {
|
||||||
|
enableWideVine = true;
|
||||||
|
};
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
#"electron-25.9.0"
|
||||||
|
"electron-30.5.1"
|
||||||
|
"olm-3.2.16"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(self: super:
|
|
||||||
{
|
|
||||||
vscode-extensions = super.vscode-extensions // {
|
|
||||||
github.copilot = pkgs.vscode-utils.buildVscodeMarketplaceExtension {
|
|
||||||
mktplcRef = {
|
|
||||||
publisher = "github";
|
|
||||||
name = "copilot";
|
|
||||||
version = "1.30.6165";
|
|
||||||
sha256 = "2Y4zQphaPzTjvOJ4EluaVNFksJ2/PL7UE5ceAW7da6Q=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Networking
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "inex-hp-envy";
|
hostName = "inex-framework";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
interfaces = {
|
|
||||||
enp7s0 = {
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
wlp8s0 = {
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = false;
|
enable = false;
|
||||||
allowedTCPPorts = [ 3979 1716 51820 24642 ];
|
allowedTCPPorts = [ 8437 1716 51820 24642 27036 27037 24800 26000 3979 21000 21013 ];
|
||||||
allowedUDPPorts = [ 3979 1716 51820 24642 ];
|
allowedUDPPorts = [ 8437 1716 51820 24642 27031 27036 24800 26000 3979 60001 ];
|
||||||
|
checkReversePath = true;
|
||||||
};
|
};
|
||||||
|
nameservers = [ "10.100.0.101" ];
|
||||||
|
|
||||||
hosts = {
|
hosts = {
|
||||||
"195.201.86.153" = [ "derpy" "server" ];
|
"10.100.100.3" = [ "sonarqube.selfprivacy" ];
|
||||||
"64.227.64.222" = [ "wireguard" ];
|
"10.100.100.1" = [ "grafana.lan" "prometheus.lan" "blackbox.lan" ];
|
||||||
"192.168.1.2" = [ "openhab" ];
|
"192.168.1.10" = [ "homelab.inex.cloud" ];
|
||||||
"188.126.61.194" = [ "home" ];
|
"10.100.0.100" = [ "autumn-blaze.inex.cloud" ];
|
||||||
|
#"192.168.1.3" = [ "fw.ponychord.rocks" ];
|
||||||
|
};
|
||||||
|
interfaces = {
|
||||||
|
# enp0s13f0u1c2 = {
|
||||||
|
# useDHCP = true;
|
||||||
|
# };
|
||||||
|
# wlp0s20f3 = {
|
||||||
|
# useDHCP = true;
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
wireguard.interfaces = {
|
wireguard.interfaces = {
|
||||||
wg0 = {
|
wg0 = {
|
||||||
|
# Determines the IP address and subnet of the client's end of the tunnel interface.
|
||||||
ips = [ "10.100.0.2/24" ];
|
ips = [ "10.100.0.2/24" ];
|
||||||
privateKeyFile = "/home/inex/wireguard-keys/private";
|
listenPort = 51839;
|
||||||
|
|
||||||
|
#postSetup = "${pkgs.iproute}/bin/ip route add REDACTED_SERVER_IP via 192.168.1.1";
|
||||||
|
#postShutdown = "${pkgs.iproute}/bin/ip route del REDACTED_SERVER_IP via 192.168.1.1";
|
||||||
|
|
||||||
|
# Path to the private key file.
|
||||||
|
#
|
||||||
|
# Note: The private key can also be included inline via the privateKey option,
|
||||||
|
# but this makes the private key world-readable; thus, using privateKeyFile is
|
||||||
|
# recommended.
|
||||||
|
privateKeyFile = "/etc/nixos/wireguard-keys/private";
|
||||||
|
|
||||||
|
# mtu = 1200;
|
||||||
|
|
||||||
|
preSetup = ''
|
||||||
|
${pkgs.udp2raw}/bin/udp2raw -c -l 127.0.0.1:51820 -r REDACTED_SERVER_IP:9853 -k "REDACTED_KEY" --raw-mode faketcp -a --log-level 0 &
|
||||||
|
'';
|
||||||
|
|
||||||
|
postShutdown = ''
|
||||||
|
${pkgs.procps}/bin/pkill -f "udp2raw.*:51820"
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
peers = [
|
peers = [
|
||||||
|
# For a client configuration, one peer entry for the server will suffice.
|
||||||
{
|
{
|
||||||
|
# Public key of the server (not a file path).
|
||||||
publicKey = "8sEAHYhydEGKTVecXcOb28zeGHGLGCsri5evbSQV8mY=";
|
publicKey = "8sEAHYhydEGKTVecXcOb28zeGHGLGCsri5evbSQV8mY=";
|
||||||
allowedIPs = [ "10.100.0.0/24" ];
|
|
||||||
endpoint = "135.181.97.221:51820";
|
# Forward all the traffic via VPN.
|
||||||
|
#allowedIPs = [ "0.0.0.0/0" ];
|
||||||
|
# Or forward only particular subnets
|
||||||
|
allowedIPs = [ "10.100.0.0/24" "::/0" ];
|
||||||
|
|
||||||
|
# Set this to the server IP and port.
|
||||||
|
# endpoint = "REDACTED_SERVER_IP:51820";
|
||||||
|
endpoint = "127.0.0.1:51820";
|
||||||
|
|
||||||
|
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -95,84 +125,113 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# BLuetooth and audio
|
console = {
|
||||||
sound.enable = true;
|
font = "Lat2-Terminus16";
|
||||||
|
# keyMap = "de";
|
||||||
|
useXkbConfig = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# time.timeZone = "Asia/Tbilisi";
|
||||||
|
time.timeZone = "Europe/Moscow";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
yubikey-agent.enable = true;
|
||||||
|
printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = [ pkgs.hplipWithPlugin pkgs.brlaser pkgs.brgenml1lpr pkgs.brgenml1cupswrapper pkgs.gutenprint pkgs.gutenprintBin ];
|
||||||
|
};
|
||||||
|
libinput.enable = true;
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
xkb.layout = "us";
|
||||||
|
xkb.variant = "colemak";
|
||||||
|
videoDrivers = [ "modesetting" ];
|
||||||
|
exportConfiguration = true;
|
||||||
|
wacom.enable = true;
|
||||||
|
};
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
usbmuxd.enable = true;
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
X11Forwarding = true;
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
flatpak.enable = true;
|
||||||
|
udev.packages = [
|
||||||
|
pkgs.yubikey-personalization
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "yubikey-actions";
|
||||||
|
text = ''
|
||||||
|
# ACTION=="remove", ENV{ID_MODEL_ID}=="0407", ENV{ID_VENDOR_ID}=="1050", RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
|
||||||
|
# ACTION=="remove", ENV{HID_NAME}=="Flipper Devices Inc. U2F Token", RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
|
||||||
|
'';
|
||||||
|
destination = "/etc/udev/rules.d/50-yubikey-actions.rules";
|
||||||
|
})
|
||||||
|
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "wacom_udev";
|
||||||
|
text = ''
|
||||||
|
KERNEL!="event[0-9]*", GOTO="wacom_end"
|
||||||
|
DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="00", ENV{WACOM_TYPE}="stylus"
|
||||||
|
DRIVERS=="wacom", ATTRS{bInterfaceNumber}=="01", ENV{WACOM_TYPE}="touch"
|
||||||
|
ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}!="touch", SYMLINK+="input/wacom"
|
||||||
|
ATTRS{idVendor}=="056a", ENV{WACOM_TYPE}=="touch", SYMLINK+="input/wacom-touch"
|
||||||
|
#ATTRS{idVendor}=="056a", ACTION=="add", RUN+="check_driver wacom $devpath $env{ID_BUS}"
|
||||||
|
LABEL="wacom_end"
|
||||||
|
'';
|
||||||
|
destination = "/etc/udev/rules.d/50-wacom.rules";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
powerManagement.powerDownCommands = ''
|
||||||
|
${pkgs.fw-ectool}/bin/ectool led left blue
|
||||||
|
'';
|
||||||
|
powerManagement.resumeCommands = ''
|
||||||
|
${pkgs.fw-ectool}/bin/ectool led left auto
|
||||||
|
'';
|
||||||
|
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
bluetooth = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.bluezFull;
|
extraPackages = [ pkgs.libva pkgs.vaapiVdpau pkgs.libvdpau-va-gl pkgs.intel-compute-runtime pkgs.intel-media-driver ];
|
||||||
};
|
|
||||||
pulseaudio = {
|
|
||||||
enable = false;
|
|
||||||
package = pkgs.pulseaudioFull;
|
|
||||||
support32Bit = true;
|
|
||||||
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
|
||||||
};
|
};
|
||||||
sane = {
|
sane = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraBackends = [ pkgs.hplipWithPlugin ];
|
||||||
brscan4.enable = true;
|
brscan4.enable = true;
|
||||||
};
|
};
|
||||||
};
|
steam-hardware.enable = true;
|
||||||
|
bluetooth = {
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n = {
|
|
||||||
# consoleFont = "Lat2-Terminus16";
|
|
||||||
# consoleKeyMap = "us";
|
|
||||||
# defaultLocale = "en_US.UTF-8";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/Moscow";
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
services.printing = {
|
|
||||||
enable = true;
|
|
||||||
drivers = [ pkgs.gutenprint ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
layout = "us";
|
|
||||||
xkbVariant = "colemak";
|
|
||||||
videoDrivers = [ "nvidia" ];
|
|
||||||
libinput.enable = true;
|
|
||||||
exportConfiguration = true;
|
|
||||||
wacom.enable = true;
|
|
||||||
#xkbOptions = "eurosign:e";
|
|
||||||
#displayManager.startx.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.kernelParams = [ "modprobe.blacklist=dvb_usb_rtl28xxu" ];
|
|
||||||
services.udev.packages = [ pkgs.rtl-sdr ];
|
|
||||||
|
|
||||||
# Video driver
|
|
||||||
hardware = {
|
|
||||||
opengl = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport32Bit = true;
|
package = pkgs.bluez;
|
||||||
};
|
|
||||||
nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
prime = {
|
|
||||||
offload.enable = true;
|
|
||||||
# allowExternalGpu = true;
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
intelBusId = "PCI:0:2:0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
adb.enable = true;
|
adb.enable = true;
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
java = {
|
java = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
thunderbird.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
|
@ -180,36 +239,33 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
enableOnBoot = false;
|
enableOnBoot = false;
|
||||||
};
|
};
|
||||||
};
|
virtualbox.host = {
|
||||||
|
enable = true;
|
||||||
hardware.steam-hardware.enable = true;
|
# enableExtensionPack = true;
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users = {
|
|
||||||
inex = {
|
|
||||||
isNormalUser = true;
|
|
||||||
home = "/home/inex";
|
|
||||||
description = "Inex Code";
|
|
||||||
extraGroups = [ "wheel" "user-with-access-to-virtualbox" "networkmanager" "jackaudio" "audio" "video" "adbusers" "docker" "scanner" "lp" "plugdev" ]; # Enable ‘sudo’ for the user.
|
|
||||||
};
|
};
|
||||||
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
waydroid.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release with which your system is to be
|
users.users.inex = {
|
||||||
# compatible, in order to avoid breaking some software such as database
|
isNormalUser = true;
|
||||||
# servers. You should change this only after NixOS release notes say you
|
home = "/home/inex";
|
||||||
# should.
|
description = "Inex Code";
|
||||||
system.stateVersion = "22.05"; # Did you read the comment?}
|
extraGroups = [ "wheel" "networkmanager" "jackaudio" "audio" "video" "render" "adbusers" "docker" "cdrom" "scanner" "lp" "libvirtd" "dialout" ];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICQmWNN9YccQecQUOB0n4jYH76gEgSAs4d66eFUZoobt inex@inex-pc"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
environment.shellInit = ''
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
export VST_PATH=/nix/var/nix/profiles/default/lib/vst:/var/run/current-system/sw/lib/vst:~/.vst
|
|
||||||
export LXVST_PATH=/nix/var/nix/profiles/default/lib/lxvst:/var/run/current-system/sw/lib/lxvst:~/.lxvst
|
|
||||||
export LADSPA_PATH=/nix/var/nix/profiles/default/lib/ladspa:/var/run/current-system/sw/lib/ladspa:~/.ladspa
|
|
||||||
export LV2_PATH=/nix/var/nix/profiles/default/lib/lv2:/var/run/current-system/sw/lib/lv2:~/.lv2
|
|
||||||
export DSSI_PATH=/nix/var/nix/profiles/default/lib/dssi:/var/run/current-system/sw/lib/dssi:~/.dssi
|
|
||||||
export VST3_PATH=/nix/var/nix/profiles/default/lib/vst3:/var/run/current-system/sw/lib/vst3:~/.vst3
|
|
||||||
'';
|
|
||||||
|
|
||||||
|
security.pam.services = {
|
||||||
|
login.u2fAuth = true;
|
||||||
|
sudo.u2fAuth = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.05"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
18
Laptop/flake.nix
Normal file
18
Laptop/flake.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||||
|
inex-vscode.url = "git+https://inex.dev/inex-flakes/vscode";
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
};
|
||||||
|
outputs = { self, nixpkgs, nixos-hardware, ... }@attrs: {
|
||||||
|
nixosConfigurations.inex-framework = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = attrs;
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
./configuration.nix
|
||||||
|
nixos-hardware.nixosModules.framework-11th-gen-intel
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,8 @@
|
||||||
displayManager = {
|
displayManager = {
|
||||||
gdm = {
|
gdm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland = false;
|
wayland = true;
|
||||||
|
autoSuspend = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
|
@ -14,13 +15,14 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
qt.platformTheme = "gnome";
|
||||||
qt5.platformTheme = "gnome";
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome.pomodoro
|
gnome-pomodoro
|
||||||
gnome.gnome-tweaks
|
gnome-tweaks
|
||||||
evolution
|
gnome.gnome-remote-desktop
|
||||||
|
gnome.networkmanager-openvpn
|
||||||
|
rhythmbox
|
||||||
gnomeExtensions.gsconnect
|
gnomeExtensions.gsconnect
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
];
|
];
|
20
Laptop/gns3.nix
Normal file
20
Laptop/gns3.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gns3-gui
|
||||||
|
gns3-server
|
||||||
|
inetutils
|
||||||
|
dynamips
|
||||||
|
ubridge
|
||||||
|
vpcs
|
||||||
|
];
|
||||||
|
|
||||||
|
security.wrappers.ubridge = {
|
||||||
|
source = "/run/current-system/sw/bin/ubridge";
|
||||||
|
capabilities = "cap_net_admin,cap_net_raw=ep";
|
||||||
|
owner = "root";
|
||||||
|
group = "users";
|
||||||
|
permissions = "u+rx,g+x";
|
||||||
|
};
|
||||||
|
}
|
76
Laptop/hardware-configuration.nix
Normal file
76
Laptop/hardware-configuration.nix
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd = {
|
||||||
|
availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
kernelModules = [ "dm-snapshot" "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||||
|
luks.yubikeySupport = true;
|
||||||
|
luks.devices = {
|
||||||
|
"nixos-enc" = {
|
||||||
|
device = "/dev/nvme0n1p2";
|
||||||
|
preLVM = true;
|
||||||
|
yubikey = {
|
||||||
|
slot = 2;
|
||||||
|
twoFactor = true; # Set to false if you did not set up a user password.
|
||||||
|
storage = {
|
||||||
|
device = "/dev/nvme0n1p1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
kernel.sysctl = { "vm.swappiness" = 5;};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b4f478f3-1f32-48ba-a461-f07a91cabc34";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=root" "compress=zstd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b4f478f3-1f32-48ba-a461-f07a91cabc34";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" "compress=zstd" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/nix" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b4f478f3-1f32-48ba-a461-f07a91cabc34";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nix" "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/var/lib/docker" =
|
||||||
|
{ device = "/dev/disk/by-uuid/b4f478f3-1f32-48ba-a461-f07a91cabc34";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=docker" "compress=zstd" "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/6D12-4D2B";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/0ab39d9b-9a74-4f3e-b8ae-5674b2a701dd"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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.enp0s13f0u1c2.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
|
@ -1,26 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services.jack = {
|
|
||||||
alsa = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
};
|
|
||||||
jackd = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
pkgs.ardour
|
|
||||||
# pkgs.cadence
|
|
||||||
pkgs.qjackctl
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
{neovim, vimUtils, vimPlugins, stdenv, fetchgit}:
|
|
||||||
|
|
||||||
let custom_config=''
|
|
||||||
let g:airline_powerline_fonts = 1
|
|
||||||
let g:airline_theme='dark'
|
|
||||||
'';
|
|
||||||
in neovim.override {
|
|
||||||
vimAlias = true;
|
|
||||||
configure = {
|
|
||||||
customRC = custom_config;
|
|
||||||
vam.pluginDictionaries = [
|
|
||||||
{ names = [
|
|
||||||
"vim-sensible"
|
|
||||||
"vim-airline"
|
|
||||||
"vim-airline-themes"
|
|
||||||
"nerdtree"
|
|
||||||
"vim-nix"
|
|
||||||
"dart-vim-plugin"
|
|
||||||
"coc-nvim"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,96 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
|
||||||
extensions = (with pkgs.vscode-extensions; [
|
|
||||||
unstable.vscode-extensions.ms-vsliveshare.vsliveshare
|
|
||||||
arcticicestudio.nord-visual-studio-code
|
|
||||||
bbenoist.nix
|
|
||||||
davidanson.vscode-markdownlint
|
|
||||||
dbaeumer.vscode-eslint
|
|
||||||
jakebecker.elixir-ls
|
|
||||||
james-yu.latex-workshop
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
mhutchie.git-graph
|
|
||||||
ms-azuretools.vscode-docker
|
|
||||||
ms-python.vscode-pylance
|
|
||||||
ms-python.python
|
|
||||||
ms-toolsai.jupyter
|
|
||||||
ms-vscode-remote.remote-ssh
|
|
||||||
ms-vscode.cpptools
|
|
||||||
github.copilot
|
|
||||||
]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
||||||
{
|
|
||||||
name = "vscode-standardjs";
|
|
||||||
publisher = "chenxsan";
|
|
||||||
version = "1.4.1";
|
|
||||||
sha256 = "0hiaqflp0d3k2pq3p44wrpyn4v6n0x660f4v47nf9bsdn5lidih3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "npm-intellisense";
|
|
||||||
publisher = "christian-kohler";
|
|
||||||
version = "1.4.1";
|
|
||||||
sha256 = "0hph57g8fbwrvj1sdzc7vqsiaf7n2qzvkakc9ir0kkkwwdxc6c5a";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "dart-code";
|
|
||||||
publisher = "Dart-Code";
|
|
||||||
version = "3.40.0";
|
|
||||||
sha256 = "1cvibhazgz42zzwlk354sihrimw26qvgsq5nirvwx4v27gcirq81";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "flutter";
|
|
||||||
publisher = "Dart-Code";
|
|
||||||
version = "3.40.0";
|
|
||||||
sha256 = "0yxkqr6ajpdl06rxxad4c1zx5ci4sbaj2lk2xl9bws51imn58wry";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-html-css";
|
|
||||||
publisher = "ecmel";
|
|
||||||
version = "1.12.2";
|
|
||||||
sha256 = "059s1yg0b875b3ijhwgpg8v408as5z6r876jv5jing1vjb20pgvb";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-npm-script";
|
|
||||||
publisher = "eg2";
|
|
||||||
version = "0.3.25";
|
|
||||||
sha256 = "0z01i0fhl0phmz5bx5fh80flarldk7sdqgr14vx9kjz5yjzz48ys";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vsc-material-theme-icons";
|
|
||||||
publisher = "equinusocio";
|
|
||||||
version = "2.3.1";
|
|
||||||
sha256 = "1djm4k3hcn4aq63d4mxs2n4ffq5x1qr82q6gxwi5pmabrb0hrb30";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "vscode-systemd-support";
|
|
||||||
publisher = "hangxingliu";
|
|
||||||
version = "1.0.1";
|
|
||||||
sha256 = "0f7j6y1jngicm475nilx08j55d94nnmymifxcbkszlxg0lnjrqys";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "materialdesignicons-intellisense";
|
|
||||||
publisher = "lukas-tr";
|
|
||||||
version = "4.0.0";
|
|
||||||
sha256 = "1748pj3jcgddpiamcs4ii2bjsmn9m9fx0dn2swfki8c6ibwrhy0w";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "remote-containers";
|
|
||||||
publisher = "ms-vscode-remote";
|
|
||||||
version = "0.234.0";
|
|
||||||
sha256 = "07mx08nwvw7jdlvkbr5iwikrcriib4zc1im1lbrqxjv7paj1an86";
|
|
||||||
}
|
|
||||||
|
|
||||||
];
|
|
||||||
vscode-with-extensions = pkgs.vscode-with-extensions.override {
|
|
||||||
vscodeExtensions = extensions;
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
environment.systemPackages = [
|
|
||||||
vscode-with-extensions
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,94 +0,0 @@
|
||||||
{
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services = {
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
config.pipewire = {
|
|
||||||
"context.properties" = {
|
|
||||||
"link.max-buffers" = 16;
|
|
||||||
"log.level" = 2;
|
|
||||||
"default.clock.rate" = 48000;
|
|
||||||
"default.clock.quantum" = 512;
|
|
||||||
"default.clock.min-quantum" = 512;
|
|
||||||
"default.clock.max-quantum" = 512;
|
|
||||||
"core.daemon" = true;
|
|
||||||
"core.name" = "pipewire-0";
|
|
||||||
};
|
|
||||||
"context.modules" = [
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-rtkit";
|
|
||||||
args = {
|
|
||||||
"nice.level" = -15;
|
|
||||||
"rt.prio" = 88;
|
|
||||||
"rt.time.soft" = 200000;
|
|
||||||
"rt.time.hard" = 200000;
|
|
||||||
};
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-protocol-native"; }
|
|
||||||
{ name = "libpipewire-module-profiler"; }
|
|
||||||
{ name = "libpipewire-module-metadata"; }
|
|
||||||
{ name = "libpipewire-module-spa-device-factory"; }
|
|
||||||
{ name = "libpipewire-module-spa-node-factory"; }
|
|
||||||
{ name = "libpipewire-module-client-node"; }
|
|
||||||
{ name = "libpipewire-module-client-device"; }
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-portal";
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-access";
|
|
||||||
args = {};
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-adapter"; }
|
|
||||||
{ name = "libpipewire-module-link-factory"; }
|
|
||||||
{ name = "libpipewire-module-session-manager"; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
config.pipewire-pulse = {
|
|
||||||
"context.properties" = {
|
|
||||||
"log.level" = 2;
|
|
||||||
};
|
|
||||||
"context.modules" = [
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-rtkit";
|
|
||||||
args = {
|
|
||||||
"nice.level" = -15;
|
|
||||||
"rt.prio" = 88;
|
|
||||||
"rt.time.soft" = 200000;
|
|
||||||
"rt.time.hard" = 200000;
|
|
||||||
};
|
|
||||||
flags = [ "ifexists" "nofail" ];
|
|
||||||
}
|
|
||||||
{ name = "libpipewire-module-protocol-native"; }
|
|
||||||
{ name = "libpipewire-module-client-node"; }
|
|
||||||
{ name = "libpipewire-module-adapter"; }
|
|
||||||
{ name = "libpipewire-module-metadata"; }
|
|
||||||
{
|
|
||||||
name = "libpipewire-module-protocol-pulse";
|
|
||||||
args = {
|
|
||||||
"pulse.min.req" = "512/48000";
|
|
||||||
"pulse.default.req" = "512/48000";
|
|
||||||
"pulse.max.req" = "512/48000";
|
|
||||||
"pulse.min.quantum" = "512/48000";
|
|
||||||
"pulse.max.quantum" = "512/48000";
|
|
||||||
"server.address" = [ "unix:native" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"stream.properties" = {
|
|
||||||
"node.latency" = "512/48000";
|
|
||||||
"resample.quality" = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config.jack = {
|
|
||||||
"jack.properties" = {
|
|
||||||
"node.latency" = "512/48000";
|
|
||||||
"node.lock-quantum" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,53 +1,52 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, inex-vscode, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Utils
|
# Utils
|
||||||
(pkgs.callPackage ./modules/my_vim.nix { })
|
|
||||||
pciutils
|
pciutils
|
||||||
usbutils
|
usbutils
|
||||||
i2c-tools
|
i2c-tools
|
||||||
|
lm_sensors
|
||||||
bind
|
bind
|
||||||
nix-bundle
|
nix-bundle
|
||||||
file
|
file
|
||||||
glxinfo
|
restic
|
||||||
|
jq
|
||||||
|
sbctl
|
||||||
|
# Connectivity
|
||||||
nmap
|
nmap
|
||||||
|
libcec
|
||||||
|
clinfo
|
||||||
|
#alfis
|
||||||
|
|
||||||
|
|
||||||
|
# File systems
|
||||||
gparted
|
gparted
|
||||||
|
btrfs-progs
|
||||||
|
|
||||||
# Archives
|
# Archives
|
||||||
unzip
|
unzip
|
||||||
unrar
|
unrar
|
||||||
|
|
||||||
|
# Running things
|
||||||
appimage-run
|
appimage-run
|
||||||
|
|
||||||
# Manuals
|
# Manuals
|
||||||
unstable.manix
|
manix
|
||||||
tldr
|
tldr
|
||||||
|
|
||||||
# Terminal
|
# Terminal
|
||||||
cool-retro-term
|
|
||||||
mosh
|
mosh
|
||||||
tmux
|
tmux
|
||||||
neofetch
|
neofetch
|
||||||
ponysay
|
ponysay
|
||||||
bpytop
|
btop
|
||||||
httpie
|
httpie
|
||||||
htop
|
htop
|
||||||
|
|
||||||
# Voice
|
|
||||||
speechd
|
|
||||||
rhvoice
|
|
||||||
unstable.noisetorch
|
|
||||||
|
|
||||||
xsane
|
|
||||||
|
|
||||||
# Wireguard
|
# Wireguard
|
||||||
wireguard-tools
|
#wireguard
|
||||||
|
#wireguard-tools
|
||||||
|
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
|
|
||||||
|
@ -58,40 +57,32 @@ in
|
||||||
# Browsers
|
# Browsers
|
||||||
firefox
|
firefox
|
||||||
ungoogled-chromium
|
ungoogled-chromium
|
||||||
|
tor-browser-bundle-bin
|
||||||
|
|
||||||
# Downloaders
|
# Downloaders
|
||||||
transmission-gtk
|
transmission_4-gtk
|
||||||
yt-dlp
|
|
||||||
syncthing
|
syncthing
|
||||||
wget
|
wget
|
||||||
|
yt-dlp
|
||||||
|
|
||||||
# Messangers
|
# Messangers
|
||||||
tdesktop
|
tdesktop
|
||||||
mumble
|
mumble
|
||||||
qtox
|
|
||||||
dino
|
dino
|
||||||
gomuks
|
gomuks
|
||||||
|
deltachat-desktop
|
||||||
|
|
||||||
# Games
|
wineWowPackages.stable
|
||||||
steam
|
winetricks
|
||||||
steam-run
|
|
||||||
unstable.openttd
|
|
||||||
minecraft
|
|
||||||
lutris
|
|
||||||
vulkan-tools
|
|
||||||
wineWowPackages.full
|
|
||||||
wineWowPackages.fonts
|
|
||||||
xonotic
|
|
||||||
cataclysm-dda
|
|
||||||
|
|
||||||
# VCS
|
# VCS
|
||||||
git
|
git
|
||||||
gitAndTools.git-bug
|
gitAndTools.git-bug
|
||||||
|
|
||||||
# IDE
|
# IDE
|
||||||
lens
|
inex-vscode.packages.x86_64-linux.default
|
||||||
postman
|
android-studio
|
||||||
unstable.androidStudioPackages.canary
|
arduino-ide
|
||||||
|
|
||||||
# Compilers and interpretators
|
# Compilers and interpretators
|
||||||
ccls
|
ccls
|
||||||
|
@ -101,58 +92,68 @@ in
|
||||||
python3Full
|
python3Full
|
||||||
nodejs
|
nodejs
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
pandoc
|
||||||
|
racket
|
||||||
|
dart
|
||||||
|
|
||||||
|
go
|
||||||
|
#hugo
|
||||||
|
|
||||||
# Docker and orchestration
|
# Docker and orchestration
|
||||||
ansible
|
ansible
|
||||||
docker-compose
|
docker-compose
|
||||||
|
|
||||||
|
cookiecutter
|
||||||
|
|
||||||
# Maps
|
# Maps
|
||||||
josm
|
josm
|
||||||
|
|
||||||
# Screen recording
|
# Screen recording
|
||||||
obs-studio
|
obs-studio
|
||||||
peek
|
kooha
|
||||||
|
|
||||||
# Graphics
|
# Graphics
|
||||||
blender
|
|
||||||
krita
|
krita
|
||||||
gmic_krita_qt
|
|
||||||
potrace
|
potrace
|
||||||
ffmpeg
|
ffmpeg
|
||||||
|
#blender-hip
|
||||||
inkscape
|
inkscape
|
||||||
imagemagick
|
kdenlive
|
||||||
|
libheif
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
audacity
|
audacity
|
||||||
pulseeffects-pw
|
|
||||||
# lmms
|
# lmms
|
||||||
picard
|
picard
|
||||||
cmus
|
easyeffects
|
||||||
spotify
|
mpv
|
||||||
rhythmbox
|
|
||||||
unstable.helvum
|
|
||||||
|
|
||||||
vlc
|
steam-run
|
||||||
syncplay
|
|
||||||
|
|
||||||
# DAW
|
|
||||||
zrythm
|
|
||||||
distrho
|
|
||||||
helvum
|
|
||||||
zam-plugins
|
|
||||||
x42-plugins
|
|
||||||
helm
|
|
||||||
zyn-fusion
|
|
||||||
lsp-plugins
|
|
||||||
ardour
|
|
||||||
|
|
||||||
# Documents
|
# Documents
|
||||||
anki
|
|
||||||
libreoffice
|
libreoffice
|
||||||
|
klavaro
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
obsidian
|
|
||||||
keepassxc
|
keepassxc
|
||||||
glow
|
glow
|
||||||
|
obsidian
|
||||||
|
aegisub
|
||||||
|
# texlive.combined.scheme-full
|
||||||
|
|
||||||
|
# Themes
|
||||||
|
paper-icon-theme
|
||||||
|
plata-theme
|
||||||
|
|
||||||
|
# iPhone passthru
|
||||||
|
usbmuxd
|
||||||
|
socat
|
||||||
|
|
||||||
|
zotero
|
||||||
|
virt-manager
|
||||||
|
|
||||||
|
immersed-vr
|
||||||
|
|
||||||
|
godot_4
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#interactiveShellInit = "ponysay -q";
|
# interactiveShellInit = "ponysay -q";
|
||||||
autosuggestions = {
|
autosuggestions = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
@ -22,7 +22,6 @@
|
||||||
"copyfile"
|
"copyfile"
|
||||||
"encode64"
|
"encode64"
|
||||||
"extract"
|
"extract"
|
||||||
"lol"
|
|
||||||
"npm"
|
"npm"
|
||||||
"pip"
|
"pip"
|
||||||
];
|
];
|
Loading…
Reference in a new issue