mirror of
https://github.com/inexcode/nixos-config.git
synced 2024-11-27 00:11:27 +00:00
update
This commit is contained in:
parent
a06f729126
commit
1c4f59a494
254
Desktop/common.nix
Normal file
254
Desktop/common.nix
Normal file
|
@ -0,0 +1,254 @@
|
||||||
|
# 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, lib, fetchpatch, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
unstable = import <nixos-unstable> { };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./software.nix
|
||||||
|
./modules/gnome.nix
|
||||||
|
./modules/zsh.nix
|
||||||
|
./modules/vscode.nix
|
||||||
|
./vscode.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nix.trustedUsers = [ "root" "inex" ];
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
android_sdk.accept_license = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
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.
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
grub.useOSProber = true;
|
||||||
|
grub.memtest86.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
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 = {
|
||||||
|
hostName = "inex-pc";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
useDHCP = false;
|
||||||
|
interfaces = {
|
||||||
|
enp8s0 = {
|
||||||
|
useDHCP = true;
|
||||||
|
};
|
||||||
|
wlp5s0 = {
|
||||||
|
useDHCP = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
firewall = {
|
||||||
|
enable = false;
|
||||||
|
allowedTCPPorts = [ 8437 1716 51820 24642 27036 27037 24800 ];
|
||||||
|
allowedUDPPorts = [ 8437 1716 51820 24642 27031 27036 24800 ];
|
||||||
|
checkReversePath = false;
|
||||||
|
};
|
||||||
|
wireguard.interfaces = {
|
||||||
|
wg0 = {
|
||||||
|
# Determines the IP address and subnet of the client's end of the tunnel interface.
|
||||||
|
ips = [ "10.100.0.6/24" ];
|
||||||
|
listenPort = 51820;
|
||||||
|
|
||||||
|
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.
|
||||||
|
#
|
||||||
|
# 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 = "/home/inex/wireguard-keys/private";
|
||||||
|
|
||||||
|
peers = [
|
||||||
|
# For a client configuration, one peer entry for the server will suffice.
|
||||||
|
{
|
||||||
|
# Public key of the server (not a file path).
|
||||||
|
publicKey = "8sEAHYhydEGKTVecXcOb28zeGHGLGCsri5evbSQV8mY=";
|
||||||
|
|
||||||
|
# Forward all the traffic via VPN.
|
||||||
|
#allowedIPs = [ "0.0.0.0/0" ];
|
||||||
|
# Or forward only particular subnets
|
||||||
|
allowedIPs = [ "10.100.0.0/24" ];
|
||||||
|
|
||||||
|
# Set this to the server IP and port.
|
||||||
|
endpoint = "135.181.97.221:51820";
|
||||||
|
|
||||||
|
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
||||||
|
persistentKeepalive = 25;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
# i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "Europe/Moscow";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
printing.enable = true;
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "colemak";
|
||||||
|
videoDrivers = [ "amdgpu" ];
|
||||||
|
libinput.enable = true;
|
||||||
|
exportConfiguration = true;
|
||||||
|
wacom.enable = true;
|
||||||
|
};
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
passwordAuthentication = false;
|
||||||
|
forwardX11 = true;
|
||||||
|
};
|
||||||
|
flatpak.enable = true;
|
||||||
|
udev.packages = [
|
||||||
|
(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";
|
||||||
|
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
sound.enable = true;
|
||||||
|
|
||||||
|
# Video driver
|
||||||
|
hardware = {
|
||||||
|
opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
extraPackages = [ pkgs.amdvlk pkgs.rocm-opencl-icd pkgs.rocm-runtime pkgs.rocm-opencl-runtime ];
|
||||||
|
};
|
||||||
|
steam-hardware.enable = true;
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.bluezFull;
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
package = pkgs.pulseaudioFull;
|
||||||
|
support32Bit = true;
|
||||||
|
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.variables.VK_ICD_FILENAMES = "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json";
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
adb.enable = true;
|
||||||
|
java = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
docker = {
|
||||||
|
enable = true;
|
||||||
|
enableOnBoot = false;
|
||||||
|
};
|
||||||
|
waydroid.enable = true;
|
||||||
|
virtualbox.host = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# 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" "networkmanager" "jackaudio" "audio" "video" "adbusers" "docker" "cdrom" ]; # Enable ‘sudo’ for the user.
|
||||||
|
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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "20.03"; # Did you read the comment?
|
||||||
|
system.autoUpgrade.enable = true;
|
||||||
|
|
||||||
|
environment.shellInit = ''
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
|
@ -2,179 +2,24 @@
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, fetchpatch, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
unstable = import <nixos-unstable> {};
|
unstable = import <nixos-unstable> { };
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[
|
||||||
./hardware-configuration.nix
|
# Include the results of the hardware scan.
|
||||||
./software.nix
|
./common.nix
|
||||||
./modules/gnome.nix
|
./pipewire.nix
|
||||||
./modules/zsh.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
android_sdk.accept_license = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader = {
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
grub.useOSProber = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostName = "inex-pc";
|
|
||||||
networkmanager.enable = true;
|
|
||||||
useDHCP = false;
|
|
||||||
interfaces = {
|
|
||||||
enp7s0 = {
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
wlp8s0 = {
|
|
||||||
useDHCP = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
firewall = {
|
|
||||||
enable = false;
|
|
||||||
allowedTCPPorts = [ 1716 51820 24642 27036 27037 ];
|
|
||||||
allowedUDPPorts = [ 1716 51820 24642 27031 27036 ];
|
|
||||||
};
|
|
||||||
wireguard.interfaces = {
|
|
||||||
wg0 = {
|
|
||||||
# Determines the IP address and subnet of the client's end of the tunnel interface.
|
|
||||||
ips = [ "10.100.0.6/24" ];
|
|
||||||
|
|
||||||
# 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 = "/home/inex/wireguard-keys/private";
|
|
||||||
|
|
||||||
peers = [
|
|
||||||
# For a client configuration, one peer entry for the server will suffice.
|
|
||||||
{
|
|
||||||
# Public key of the server (not a file path).
|
|
||||||
publicKey = "8sEAHYhydEGKTVecXcOb28zeGHGLGCsri5evbSQV8mY=";
|
|
||||||
|
|
||||||
# Forward all the traffic via VPN.
|
|
||||||
# allowedIPs = [ "0.0.0.0/0" ];
|
|
||||||
# Or forward only particular subnets
|
|
||||||
allowedIPs = [ "10.100.0.0/24" ];
|
|
||||||
|
|
||||||
# Set this to the server IP and port.
|
|
||||||
endpoint = "135.181.97.221:51820";
|
|
||||||
|
|
||||||
# Send keepalives every 25 seconds. Important to keep NAT tables alive.
|
|
||||||
persistentKeepalive = 25;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
console = {
|
|
||||||
font = "Lat2-Terminus16";
|
|
||||||
keyMap = "us";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/Moscow";
|
|
||||||
|
|
||||||
services = {
|
|
||||||
printing.enable = true;
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
|
||||||
layout = "us";
|
|
||||||
xkbVariant = "colemak";
|
|
||||||
videoDrivers = [ "amdgpu" ];
|
|
||||||
libinput.enable = true;
|
|
||||||
exportConfiguration = true;
|
|
||||||
wacom.enable = true;
|
|
||||||
};
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
passwordAuthentication = false;
|
|
||||||
forwardX11 = true;
|
|
||||||
};
|
|
||||||
pipewire.enable = true;
|
|
||||||
flatpak.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
sound.enable = true;
|
|
||||||
|
|
||||||
# Video driver
|
# Video driver
|
||||||
hardware = {
|
hardware = {
|
||||||
opengl = {
|
|
||||||
enable = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
extraPackages = [ pkgs.amdvlk pkgs.rocm-opencl-icd pkgs.rocm-runtime ];
|
|
||||||
};
|
|
||||||
steam-hardware.enable = true;
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.bluezFull;
|
|
||||||
};
|
|
||||||
pulseaudio = {
|
pulseaudio = {
|
||||||
enable = true;
|
enable = false;
|
||||||
package = pkgs.pulseaudioFull;
|
|
||||||
support32Bit = true;
|
|
||||||
extraModules = [ pkgs.pulseaudio-modules-bt ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.variables.VK_ICD_FILENAMES = "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json";
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
adb.enable = true;
|
|
||||||
java = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
enableOnBoot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# 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" "networkmanager" "jackaudio" "audio" "video" "adbusers" "docker" ]; # Enable ‘sudo’ for the user.
|
|
||||||
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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
|
||||||
# settings for stateful data, like file locations and database versions
|
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
|
||||||
# this value at the release version of the first install of this system.
|
|
||||||
# Before changing this value read the documentation for this option
|
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
|
||||||
system.stateVersion = "20.03"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,21 +11,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
gnome3.enable = true;
|
gnome.enable = true;
|
||||||
kodi.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
qt5.platformTheme = "gnome";
|
qt5.platformTheme = "gnome";
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome3.pomodoro
|
gnome.pomodoro
|
||||||
gnome3.gnome-tweaks
|
gnome.gnome-tweaks
|
||||||
gnome3.networkmanager-openvpn
|
gnome.networkmanager-openvpn
|
||||||
gnome3.evolution
|
rhythmbox
|
||||||
|
evolution
|
||||||
gnomeExtensions.gsconnect
|
gnomeExtensions.gsconnect
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
114
Desktop/modules/vscode.nix
Normal file
114
Desktop/modules/vscode.nix
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
{ 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-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 = {
|
||||||
|
environment.systemPackages = [
|
||||||
|
vscode-with-extensions
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
94
Desktop/pipewire.nix
Normal file
94
Desktop/pipewire.nix
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
Desktop/pulsed.nix
Normal file
15
Desktop/pulsed.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./common.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
pulse.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.pulseaudio.enable = true;
|
||||||
|
|
||||||
|
}
|
|
@ -1,10 +1,18 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
unstable = import <nixos-unstable> {};
|
unstable = import <nixos-unstable> { config.allowUnfree = true; };
|
||||||
in {
|
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
|
||||||
pciutils
|
pciutils
|
||||||
usbutils
|
usbutils
|
||||||
i2c-tools
|
i2c-tools
|
||||||
|
@ -13,13 +21,16 @@ in {
|
||||||
nix-bundle
|
nix-bundle
|
||||||
file
|
file
|
||||||
restic
|
restic
|
||||||
|
jq
|
||||||
# Connectivity
|
# Connectivity
|
||||||
nmap
|
nmap
|
||||||
libcec
|
libcec
|
||||||
|
clinfo
|
||||||
|
alfis
|
||||||
|
|
||||||
# File systems
|
# File systems
|
||||||
gparted
|
gparted
|
||||||
|
btrfs-progs
|
||||||
|
|
||||||
# Archives
|
# Archives
|
||||||
unzip
|
unzip
|
||||||
|
@ -39,6 +50,8 @@ in {
|
||||||
neofetch
|
neofetch
|
||||||
ponysay
|
ponysay
|
||||||
bpytop
|
bpytop
|
||||||
|
httpie
|
||||||
|
htop
|
||||||
|
|
||||||
# Voice
|
# Voice
|
||||||
speechd
|
speechd
|
||||||
|
@ -61,101 +74,121 @@ in {
|
||||||
|
|
||||||
# Downloaders
|
# Downloaders
|
||||||
transmission-gtk
|
transmission-gtk
|
||||||
youtube-dl
|
|
||||||
syncthing
|
syncthing
|
||||||
wget
|
wget
|
||||||
|
yt-dlp
|
||||||
|
|
||||||
# Messangers
|
# Messangers
|
||||||
tdesktop
|
tdesktop
|
||||||
#discord
|
|
||||||
mumble
|
mumble
|
||||||
#riot-desktop
|
|
||||||
qtox
|
qtox
|
||||||
dino
|
dino
|
||||||
#zoom-us
|
gomuks
|
||||||
#teams
|
deltachat-desktop
|
||||||
teamspeak_client
|
|
||||||
|
|
||||||
# Games
|
# Games
|
||||||
steam
|
steam
|
||||||
steam-run-native
|
steam-run-native
|
||||||
openttd
|
openttd
|
||||||
minecraft
|
minecraft
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
wineWowPackages.full
|
wineWowPackages.stable
|
||||||
wineWowPackages.fonts
|
|
||||||
winetricks
|
winetricks
|
||||||
|
protontricks
|
||||||
xonotic
|
xonotic
|
||||||
|
cataclysm-dda
|
||||||
|
|
||||||
|
lutris
|
||||||
|
bottles
|
||||||
|
|
||||||
|
# VR
|
||||||
|
monado
|
||||||
|
openhmd
|
||||||
|
|
||||||
# VCS
|
# VCS
|
||||||
git
|
git
|
||||||
gitAndTools.git-bug
|
gitAndTools.git-bug
|
||||||
|
|
||||||
# IDE
|
# IDE
|
||||||
vscode
|
|
||||||
(pkgs.callPackage ./modules/my_vim.nix {})
|
(pkgs.callPackage ./modules/my_vim.nix { })
|
||||||
|
lens
|
||||||
|
postman
|
||||||
|
androidStudioPackages.canary
|
||||||
|
|
||||||
# Compilers and interpretators
|
# Compilers and interpretators
|
||||||
ccls
|
ccls
|
||||||
cmake
|
cmake
|
||||||
gcc-unwrapped
|
gcc-unwrapped
|
||||||
octaveFull
|
octaveFull
|
||||||
texlive.combined.scheme-full
|
|
||||||
python3Full
|
python3Full
|
||||||
nodejs
|
nodejs
|
||||||
fdroidserver
|
nixpkgs-fmt
|
||||||
|
pandoc
|
||||||
|
|
||||||
# Docker and orchestration
|
# Docker and orchestration
|
||||||
ansible_2_9
|
ansible
|
||||||
docker-compose
|
docker-compose
|
||||||
|
|
||||||
|
cookiecutter
|
||||||
|
|
||||||
# Maps
|
# Maps
|
||||||
josm
|
josm
|
||||||
|
|
||||||
# Screen recording
|
# Screen recording
|
||||||
unstable.obs-studio
|
obs-studio
|
||||||
unstable.obs-wlrobs
|
kooha
|
||||||
unstable.obs-v4l2sink
|
|
||||||
#unstable.obs-linuxbrowser
|
|
||||||
peek
|
|
||||||
|
|
||||||
# Graphics
|
# Graphics
|
||||||
krita
|
krita
|
||||||
gmic_krita_qt
|
gmic_krita_qt
|
||||||
potrace
|
potrace
|
||||||
ffmpeg
|
ffmpeg
|
||||||
|
blender
|
||||||
|
unstable.shotwell
|
||||||
|
inkscape
|
||||||
|
kdenlive
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
audacity
|
audacity
|
||||||
# lmms
|
# lmms
|
||||||
picard
|
picard
|
||||||
cmus
|
cmus
|
||||||
spotify
|
spotify
|
||||||
pulseeffects
|
pulseeffects-pw
|
||||||
|
|
||||||
vlc
|
vlc
|
||||||
syncplay
|
syncplay
|
||||||
|
mpv
|
||||||
|
|
||||||
kruler
|
brasero
|
||||||
|
libsForQt5.k3b
|
||||||
|
|
||||||
# Plugins
|
# DAW
|
||||||
# ladspaPlugins
|
zrythm
|
||||||
# lsp-plugins
|
distrho
|
||||||
|
helvum
|
||||||
|
zam-plugins
|
||||||
|
x42-plugins
|
||||||
|
helm
|
||||||
|
zyn-fusion
|
||||||
|
lsp-plugins
|
||||||
|
ardour
|
||||||
# Documents
|
# Documents
|
||||||
anki
|
anki
|
||||||
libreoffice
|
libreoffice
|
||||||
homebank
|
homebank
|
||||||
trilium-desktop
|
|
||||||
klavaro
|
klavaro
|
||||||
liberation_ttf
|
liberation_ttf
|
||||||
keepassxc
|
keepassxc
|
||||||
glow
|
glow
|
||||||
|
unstable.obsidian
|
||||||
|
aegisub
|
||||||
|
|
||||||
# Themes
|
# Themes
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
plata-theme
|
plata-theme
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
14
Desktop/vscode.nix
Normal file
14
Desktop/vscode.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(fetchTarball "https://github.com/msteen/nixos-vscode-server/tarball/master")
|
||||||
|
];
|
||||||
|
|
||||||
|
services.vscode-server.enable = true;
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
pinentryFlavor = "curses";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue