init
This commit is contained in:
commit
a953246971
17 changed files with 795 additions and 0 deletions
119
flake.lock
generated
Normal file
119
flake.lock
generated
Normal file
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1652733177,
|
||||
"narHash": "sha256-mRpdBbVk8tbYVgEE6oTBbFT1vkVdF7EzaP7bMQ26wWA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "04b4d989fda8f14e6fcd1fee631eab9c54d15b97",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"microvm": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1653399543,
|
||||
"narHash": "sha256-qLFw8U3xop5U5KtYGykOVa0oKHmTYg3TaNB043GMIks=",
|
||||
"owner": "astro",
|
||||
"repo": "microvm.nix",
|
||||
"rev": "309e172528cb6589210c2b19f0f8fc15a0fe2384",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "astro",
|
||||
"repo": "microvm.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1653060744,
|
||||
"narHash": "sha256-kfRusllRumpt33J1hPV+CeCCylCXEU7e0gn2/cIM7cY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dfd82985c273aac6eced03625f454b334daae2e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-21_11": {
|
||||
"locked": {
|
||||
"lastModified": 1653132211,
|
||||
"narHash": "sha256-5ugEYisGqixwarfn3BJvuWDnO6gT/AoxlsA6jnG8Fv8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b5991e4971523a5fcc9413b9003b58e5c15aa7d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-21.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-22_05": {
|
||||
"locked": {
|
||||
"lastModified": 1653460991,
|
||||
"narHash": "sha256-8MgFe84UUKw5k5MybirNH0S+oSluN2cRQGt+ZkW+dxQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0c3bf3a5c3ab6be29138b88900c417660a284fbd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-22.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"microvm": "microvm",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"sops-nix": "sops-nix"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-21_11": "nixpkgs-21_11",
|
||||
"nixpkgs-22_05": "nixpkgs-22_05"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1653462763,
|
||||
"narHash": "sha256-n0beO7WNvAeEtTtnetzQCaGs615tU/DfM97k8r/7bUw=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "7385b12722ce903e477878147794bed9040227e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
36
flake.nix
Normal file
36
flake.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
description = "oxa's system configs";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
|
||||
sops-nix.url = github:Mic92/sops-nix;
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
microvm = {
|
||||
url = github:astro/microvm.nix;
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, sops-nix, microvm, ... }: {
|
||||
nixosConfigurations = {
|
||||
microwave = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/microwave/configuration.nix
|
||||
./modules/graphical.nix
|
||||
./modules/hw-accel-intel.nix
|
||||
./modules/kernel-latest.nix
|
||||
./modules/virtualization.nix
|
||||
./modules/emacs.nix
|
||||
./modules/radio.nix
|
||||
./modules/tlp.nix
|
||||
./modules/chromium.nix
|
||||
./modules/wireguard.nix
|
||||
./modules/binary-caches.nix
|
||||
./modules/science.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
108
hosts/microwave/configuration.nix
Normal file
108
hosts/microwave/configuration.nix
Normal file
|
@ -0,0 +1,108 @@
|
|||
# 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, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# SWAP
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
tdesktop
|
||||
signal-desktop
|
||||
cubicsdr
|
||||
kicad
|
||||
gimp
|
||||
inkscape
|
||||
];
|
||||
networking.firewall.enable = true;
|
||||
services.xserver.videoDrivers = [ "displaylink" "modesetting" ];
|
||||
|
||||
networking = {
|
||||
hostName = "microwave"; # Define your hostname.
|
||||
networkmanager.enable = true;
|
||||
wireguard.enable = true;
|
||||
|
||||
};
|
||||
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
services.fstrim.enable = true;
|
||||
|
||||
boot = {
|
||||
supportedFilesystems = ["btrfs"];
|
||||
|
||||
# use systemd boot by default
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
tmpOnTmpfs = true;
|
||||
plymouth.enable = false;
|
||||
};
|
||||
|
||||
# update the microcode
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
|
||||
# Enable touchpad support.
|
||||
services.xserver.libinput = {
|
||||
enable = true;
|
||||
touchpad = {
|
||||
disableWhileTyping = true;
|
||||
naturalScrolling = true;
|
||||
scrollMethod = "twofinger";
|
||||
tapping = true;
|
||||
accelProfile = "adaptive";
|
||||
# clickMethod = "clickfinger";
|
||||
};
|
||||
};
|
||||
|
||||
# Shell config (bash)
|
||||
programs.bash = {
|
||||
enableCompletion = true;
|
||||
};
|
||||
|
||||
security.sudo = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = true;
|
||||
};
|
||||
|
||||
# Users
|
||||
users.users.grue = {
|
||||
createHome = true;
|
||||
extraGroups = [ "wheel" "networkmanager" "wireshark" "video"
|
||||
"libvirtd" "plugdev" "dialout" "bluetooth" ];
|
||||
group = "users";
|
||||
home = "/home/grue";
|
||||
isNormalUser = true;
|
||||
uid = 1000;
|
||||
};
|
||||
|
||||
# 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 = "22.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
56
hosts/microwave/hardware-configuration.nix
Normal file
56
hosts/microwave/hardware-configuration.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
# 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 = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" "noatime" "compress=zstd" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."nixos-crypt".device = "/dev/disk/by-uuid/dbee4082-85ae-40f0-9c80-034f3574688f";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/4B02-CE16";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" "noatime" "compress=zstd" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" "noatime" "compress=zstd" ];
|
||||
};
|
||||
|
||||
fileSystems."/tmp" =
|
||||
{ device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=tmp" "noatime" "compress=zstd" ];
|
||||
};
|
||||
|
||||
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
||||
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
||||
# replicates the default behaviour.
|
||||
networking.useDHCP = lib.mkDefault false;
|
||||
networking.interfaces.enp53s0.useDHCP = lib.mkDefault true;
|
||||
networking.interfaces.wlp54s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
97
modules/basic-tools.nix
Normal file
97
modules/basic-tools.nix
Normal file
|
@ -0,0 +1,97 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
bat
|
||||
exa
|
||||
fd
|
||||
file
|
||||
fzf
|
||||
gitFull
|
||||
gnupg
|
||||
htop
|
||||
irssi
|
||||
killall
|
||||
mercurial
|
||||
neovim
|
||||
ripgrep
|
||||
tealdeer
|
||||
tokei
|
||||
traceroute
|
||||
tree
|
||||
liquidprompt
|
||||
(aspellWithDicts (ps: with ps; [ en en-science en-computers ru de ]))
|
||||
exfatprogs
|
||||
nmap
|
||||
bind
|
||||
nnn
|
||||
man-pages
|
||||
neomutt
|
||||
cachix
|
||||
];
|
||||
|
||||
nix = {
|
||||
package = pkgs.nixUnstable;
|
||||
autoOptimiseStore = true;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
keyMode = "vi";
|
||||
escapeTime = 0;
|
||||
historyLimit = 50000;
|
||||
aggressiveResize = true;
|
||||
terminal = "tmux-256color";
|
||||
};
|
||||
|
||||
# set appropriate environ variables
|
||||
environment.variables = {
|
||||
EDITOR = "nvim";
|
||||
PAGER = "less -F";
|
||||
};
|
||||
|
||||
environment.shellAliases = {
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
vf = "$EDITOR $(fzf)";
|
||||
vff = "$EDITOR $(ls|fzf)";
|
||||
ls = "exa";
|
||||
ll = "exa -l";
|
||||
l = "exa -al";
|
||||
ssh="TERM=xterm-256color ssh";
|
||||
mutt="neomutt";
|
||||
};
|
||||
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
interactiveShellInit = ''
|
||||
bindkey -e
|
||||
'';
|
||||
promptInit = ''
|
||||
source /run/current-system/sw/share/zsh/plugins/liquidprompt/liquidprompt
|
||||
if [[ -n "$IN_NIX_SHELL" ]]; then
|
||||
prompt_tag "(nix-shell)"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
environment.etc.liquidpromptrc = {
|
||||
text = ''
|
||||
LP_ENABLE_SSH_COLORS=1
|
||||
LP_ENABLE_TITLE=1
|
||||
LP_ENABLE_SCREEN_TITLE=1
|
||||
'';
|
||||
};
|
||||
programs.msmtp = {
|
||||
enable = true;
|
||||
};
|
||||
programs.iftop.enable = true;
|
||||
programs.mosh.enable = true;
|
||||
}
|
36
modules/binary-caches.nix
Normal file
36
modules/binary-caches.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
nix = {
|
||||
registry.microvm = {
|
||||
from = {
|
||||
type = "indirect";
|
||||
id = "microvm";
|
||||
};
|
||||
to = {
|
||||
type = "github";
|
||||
owner = "astro";
|
||||
repo = "microvm.nix";
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
trusted-users = [
|
||||
"grue"
|
||||
"@wheel"
|
||||
];
|
||||
substituters = [
|
||||
"https://microvm.cachix.org"
|
||||
"https://nix-serve.hq.c3d2.de"
|
||||
"https://dump-dvb.cachix.org"
|
||||
];
|
||||
trusted-substituters = [
|
||||
"https://microvm.cachix.org"
|
||||
"https://nix-serve.hq.c3d2.de"
|
||||
"https://dump-dvb.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"microvm.cachix.org-1:oXnBc6hRE3eX5rSYdRyMYXnfzcCxC7yKPTbZXALsqys="
|
||||
"nix-serve.hq.c3d2.de:KZRGGnwOYzys6pxgM8jlur36RmkJQ/y8y62e52fj1ps="
|
||||
"dump-dvb.cachix.org-1:+Dq7gqpQG4YlLA2X3xJsG1v3BrlUGGpVtUKWk0dTyUU="
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
34
modules/chromium.nix
Normal file
34
modules/chromium.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# (ungoogled-chromium.override { enableVaapi = true; })
|
||||
chromium
|
||||
];
|
||||
|
||||
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --force-dark-mode --enable-features=WebUIDarkMode";
|
||||
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
"pkehgijcmpdhfbdbbnkijodmdjhbjlgp" # privacy badger
|
||||
"ekhagklcjbdpajgpjgmbionohlpdbjgc" # zotero connector
|
||||
"nngceckbapebfimnlniiiahkandclblb" # bitwarden
|
||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
|
||||
];
|
||||
extraOpts = {
|
||||
"BrowserSignin" = 0;
|
||||
"SyncDisabled" = true;
|
||||
"PasswordManagerEnabled" = false;
|
||||
"TranslateEnabled" = false;
|
||||
"AutofillAddressEnabled" = false;
|
||||
"AutofillCreditCardEnabled" = false;
|
||||
"AutoplayAllowed" = false;
|
||||
"DefaultNotificationSetting" = 2;
|
||||
"BackgroundModeEnabled" = false;
|
||||
"DefaultSearchProviderEnabled" = true;
|
||||
"DefaultSearchProviderSearchURL" = "https://duckduckgo.com/?q={searchTerms}";
|
||||
"SearchSuggestEnable" = false;
|
||||
};
|
||||
};
|
||||
}
|
21
modules/emacs.nix
Normal file
21
modules/emacs.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# language servers
|
||||
clang-tools
|
||||
clang
|
||||
|
||||
sqlite
|
||||
graphviz
|
||||
];
|
||||
|
||||
services.emacs = {
|
||||
install = true;
|
||||
enable = false;
|
||||
# pure gtk, native compiled emacs with vterm and pdf-tools
|
||||
package = with pkgs; ((emacsPackagesFor emacs).emacsWithPackages (epkgs: [ epkgs.vterm ]));
|
||||
defaultEditor = false;
|
||||
};
|
||||
|
||||
}
|
18
modules/gnupg.nix
Normal file
18
modules/gnupg.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnupg
|
||||
opensc
|
||||
|
||||
yubioath-desktop
|
||||
];
|
||||
|
||||
# smartcard support
|
||||
services.pcscd.enable = false;
|
||||
hardware.gpgSmartcards.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
}
|
130
modules/graphical.nix
Normal file
130
modules/graphical.nix
Normal file
|
@ -0,0 +1,130 @@
|
|||
# General Desktop-related config
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./basic-tools.nix
|
||||
./gnupg.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
firefox-wayland
|
||||
dino
|
||||
alacritty
|
||||
kitty
|
||||
xclip
|
||||
flameshot
|
||||
wl-clipboard
|
||||
brightnessctl
|
||||
pulseaudio-ctl
|
||||
feh
|
||||
mpv
|
||||
zathura
|
||||
pulsemixer
|
||||
screen-message
|
||||
cmus
|
||||
gtk-engine-murrine
|
||||
gtk_engines
|
||||
gsettings-desktop-schemas
|
||||
pamixer
|
||||
qbittorrent
|
||||
];
|
||||
|
||||
services.acpid.enable = true;
|
||||
programs.light.enable = true;
|
||||
|
||||
#on the desktop, we need nice fonts ^^
|
||||
fonts.fonts = with pkgs; [
|
||||
dejavu_fonts
|
||||
julia-mono
|
||||
uw-ttyp0
|
||||
gohufont
|
||||
monoid
|
||||
spleen
|
||||
terminus_font
|
||||
iosevka
|
||||
creep
|
||||
corefonts
|
||||
dina-font
|
||||
fira
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
fira-mono
|
||||
hack-font
|
||||
liberation_ttf
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
proggyfonts
|
||||
symbola
|
||||
open-sans
|
||||
twemoji-color-font
|
||||
twitter-color-emoji
|
||||
];
|
||||
|
||||
fonts.enableDefaultFonts = true;
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
allowBitmaps = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
defaultFonts.emoji = [
|
||||
"Twitter Color Emoji"
|
||||
"Noto Color Emoji"
|
||||
];
|
||||
};
|
||||
|
||||
# Enable sound.
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
package = pkgs.bluezFull;
|
||||
};
|
||||
|
||||
services.blueman.enable = true;
|
||||
|
||||
services.xserver.enable = false;
|
||||
programs.xwayland.enable = true;
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
extraPackages = with pkgs; [
|
||||
swaylock
|
||||
swayidle
|
||||
wl-clipboard
|
||||
mako
|
||||
alacritty
|
||||
wofi
|
||||
waybar
|
||||
gnome3.adwaita-icon-theme
|
||||
i3status-rust
|
||||
];
|
||||
};
|
||||
environment.sessionVariables = { GTK_THEME = "Adwaita:dark"; };
|
||||
environment.loginShellInit = ''
|
||||
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||
exec sway
|
||||
fi
|
||||
'';
|
||||
xdg.portal.wlr.enable = true;
|
||||
|
||||
nix = {
|
||||
binaryCaches = [
|
||||
"https://dump-dvb.cachix.org"
|
||||
];
|
||||
binaryCachePublicKeys = [
|
||||
"dump-dvb.cachix.org-1:+Dq7gqpQG4YlLA2X3xJsG1v3BrlUGGpVtUKWk0dTyUU="
|
||||
];
|
||||
};
|
||||
programs.zsh.vteIntegration = true;
|
||||
programs.bash.vteIntegration = true;
|
||||
services.upower.enable = true;
|
||||
|
||||
}
|
21
modules/hw-accel-intel.nix
Normal file
21
modules/hw-accel-intel.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
# overrides to enable [sometimes] wonky intel acceleration
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
};
|
||||
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
vaapiVdpau
|
||||
vaapiIntel
|
||||
libvdpau-va-gl
|
||||
intel-media-driver
|
||||
];
|
||||
};
|
||||
|
||||
boot.initrd.kernelModules = [ "i915" ];
|
||||
|
||||
}
|
5
modules/kernel-latest.nix
Normal file
5
modules/kernel-latest.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
}
|
19
modules/radio.nix
Normal file
19
modules/radio.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnuradio
|
||||
gqrx
|
||||
cubicsdr
|
||||
|
||||
libusb
|
||||
rtl-sdr
|
||||
hackrf
|
||||
soapyhackrf
|
||||
];
|
||||
|
||||
hardware = {
|
||||
rtl-sdr.enable = true;
|
||||
hackrf.enable = true;
|
||||
};
|
||||
}
|
19
modules/science.nix
Normal file
19
modules/science.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
# (rWrapper.override{ packages = with rPackages; [
|
||||
# ggplot2
|
||||
# swirl
|
||||
# languageserver
|
||||
# dplyr
|
||||
# data_table
|
||||
# ]; })
|
||||
#(rstudioWrapper.override{ packages = with rPackages; [ ggplot2 ]; })
|
||||
texlive.combined.scheme-full
|
||||
gnuplot
|
||||
graphicsmagick
|
||||
zotero
|
||||
python3Full
|
||||
];
|
||||
}
|
10
modules/tlp.nix
Normal file
10
modules/tlp.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
powerManagement.cpuFreqGovernor = null;
|
||||
services.power-profiles-daemon.enable = false;
|
||||
services.tlp.enable = true;
|
||||
services.tlp.extraConfig = ''
|
||||
USB_BLACKLIST="1d50:604b 1d50:6089 1d50:cc15 1fc9:000c"
|
||||
'';
|
||||
}
|
23
modules/virtualization.nix
Normal file
23
modules/virtualization.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
virtmanager
|
||||
];
|
||||
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
|
||||
# virtualization
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
virtualisation = {
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu.runAsRoot = false;
|
||||
qemu.package = pkgs.qemu_full;
|
||||
};
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
};
|
||||
};
|
||||
}
|
43
modules/wireguard.nix
Normal file
43
modules/wireguard.nix
Normal file
|
@ -0,0 +1,43 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
networking.wg-quick.interfaces = {
|
||||
wg-zw = {
|
||||
privateKeyFile="/root/zw-wg-key";
|
||||
address = ["172.20.76.226" ];
|
||||
dns = [ "172.20.73.8" ];
|
||||
peers = [
|
||||
{
|
||||
publicKey = "PG2VD0EB+Oi+U5/uVMUdO5MFzn59fAck6hz8GUyLMRo=";
|
||||
endpoint = "81.201.149.152:1337";
|
||||
allowedIPs = [ "172.20.72.0/21" "172.22.99.0/24" ];
|
||||
}
|
||||
];
|
||||
};
|
||||
wg-dvb = {
|
||||
privateKeyFile = "/root/wg-dvb";
|
||||
address = [ "10.13.37.3/32" ];
|
||||
|
||||
peers = [
|
||||
{
|
||||
publicKey = "WDvCObJ0WgCCZ0ORV2q4sdXblBd8pOPZBmeWr97yphY=";
|
||||
allowedIPs = [ "10.13.37.0/24" ];
|
||||
endpoint = "academicstrokes.com:51820";
|
||||
persistentKeepalive = 25;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
mlwd-nl = {
|
||||
privateKeyFile = "/root/mlvd";
|
||||
address = [ "10.65.79.164/32" "fc00:bbbb:bbbb:bb01::2:4fa3/128" ];
|
||||
dns = [ "193.138.218.74" ];
|
||||
|
||||
peers = [ {
|
||||
publicKey = "StMPmol1+QQQQCJyAkm7t+l/QYTKe5CzXUhw0I6VX14=";
|
||||
allowedIPs = [ "0.0.0.0/0" "::0/0" ];
|
||||
endpoint = "92.60.40.194:51820";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Reference in a new issue