initial commit

This commit is contained in:
Felix Buehler 2020-11-16 21:14:46 +01:00
commit 7517f318dc
55 changed files with 1401 additions and 0 deletions

8
extra/3d-printing.nix Normal file
View file

@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
meshlab
cura
openscad
];
}

7
extra/android.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
programs.adb.enable = true;
environment.systemPackages = with pkgs; [
scrcpy
];
}

7
extra/arch-linux.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
pacman
];
environment.etc."makepkg.conf".source = "${pkgs.pacman}/etc/makepkg.conf";
}

13
extra/avahi.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, pkgs, lib, ... }:
{
services.avahi = {
enable = true;
nssmdns = true;
publish = {
enable = true;
addresses = true;
workstation = true;
userServices = true;
};
};
}

19
extra/bluetooth-audio.nix Normal file
View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
hardware.bluetooth = {
enable = true;
package = pkgs.bluezFull;
config = {
General = {
Enable = "Source,Sink,Media,Socket";
};
};
};
hardware.pulseaudio = {
enable = true;
extraModules = [ pkgs.pulseaudio-modules-bt ];
package = pkgs.pulseaudioFull;
};
services.blueman.enable = true;
}

10
extra/clean.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
baobab
#dupeguru
jdupes
kondo
];
}

119
extra/default.nix Normal file
View file

@ -0,0 +1,119 @@
{ config, lib, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
imports = [
./fonts.nix
];
programs.gnome-disks.enable = true;
services.udisks2.enable = true;
# test if working
#xdg.mime.enable = true;
# make gnome settings persistent
programs.dconf.enable = true;
# gnome services
services.dbus.packages = [ pkgs.gnome3.dconf ];
services.udev.packages = [ pkgs.gnome3.gnome-settings-daemon ];
services.gnome3.gnome-keyring.enable = true;
services.gnome3.glib-networking.enable = true;
# enable trash & network-mount in nautilus
services.gvfs.enable = true;
environment.systemPackages = with pkgs; [
#mime-types
xdg_utils
adwaita-qt
arc-icon-theme
arc-kde-theme
arc-theme
evince
firefox-wayland
#geary
ghostwriter
(gimp-with-plugins.override { plugins = with gimpPlugins; [ resynthesizer ]; })
glib
gnome3.adwaita-icon-theme
gnome3.eog
gnome3.file-roller
gnome3.gnome-calendar
gnome3.gnome-system-monitor
gnome3.nautilus
gnome3.nautilus-python
gnome3.simple-scan
keepassxc
keychain
konsole
libnotify
libreoffice
lollypop
unstable.newsflash
numix-cursor-theme
numix-icon-theme
numix-icon-theme-circle
polkit_gnome
qgnomeplatform
rhythmbox
simple-scan
#spotify
socat
tdesktop
thunderbird
typora
virtmanager
vlc
mpv-with-scripts
wayvnc
zathura
zeal
# TODO sort them in different files
pdfgrep
physlock
#symlinks
];
# Enable firmware update daemon
services.fwupd.enable = true;
programs.wireshark.enable = true;
programs.wireshark.package = pkgs.wireshark;
services.accounts-daemon.enable = true;
environment.interactiveShellInit = ''
if test `tty` = /dev/tty1; then
exec sway
fi
'';
# services.xserver = {
# enable = true;
# layout = "us";
# xkbOptions = "eurosign:e";
# libinput.enable = true;
# libinput.naturalScrolling = true;
#
# startDbusSession = true;
# updateDbusEnvironment = true;
#
# desktopManager = {
# xterm.enable = false;
# gnome3.enable = false;
# };
#
# displayManager = {
# sessionData.sessionNames = [ "sway" "none+i3" ];
# defaultSession = "sway";
# gdm.enable = true;
# gdm.wayland = true;
# lightdm.enable = false;
# };
# };
}

View file

@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
arduino
bless # hex editor
chromium
dbeaver
filezilla
fritzing
insomnia
#jetbrains.idea-community
sublime3
];
}

52
extra/development.nix Normal file
View file

@ -0,0 +1,52 @@
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
# rust
unstable.cargo
unstable.clippy # lint
cargo-flamegraph
cargo-outdated
# general
clang
cmake
cvs
dfeet
direnv
entr
git
gnumake
go
hugo
meson
ninja
patchelf
pkg-config
(python3.withPackages (ps: with ps; [
nltk # language-toolkit
tqdm # progressbar in pandas
jupyter # notebooks
Keras # machine learning
tensorflow-build_2 # machine learning
transformers # machine learning
numpy
pandas
matplotlib
scipy
scikitlearn
pillow
]))
ripgrep
rustfmt
unstable.rustc
shellcheck
sloccount
topgrade
valgrind
vimPlugins.YouCompleteMe
ycmd
woeusb
];
}

8
extra/docker.nix Normal file
View file

@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
virtualisation.docker.enable = true;
environment.systemPackages = with pkgs; [
docker_compose
];
}

12
extra/filesystem.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
davfs2
fuse3
hfsprogs
mtpfs
nfs-utils
ntfs3g
sshfs
];
}

29
extra/fonts.nix Normal file
View file

@ -0,0 +1,29 @@
{ config, pkgs, ... }:
{
fonts = {
fontconfig.defaultFonts = {
monospace = [ "Ubuntu Mono" ];
sansSerif = [ "Ubuntu" ];
serif = [ "DejaVu Serif" ];
};
fonts = with pkgs; [
cantarell-fonts # gnome default
dina-font
fira
fira-mono
fira-code
fira-code-symbols
font-awesome
liberation_ttf
#mplus-outline-fonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
proggyfonts
ubuntu_font_family
joypixels
#unifont # unicode
];
};
}

22
extra/gaming.nix Normal file
View file

@ -0,0 +1,22 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
blobby
discord
minecraft
minetest
openttd
superTuxKart
steam
SDL
SDL2
wine
winetricks
];
programs.steam.enable = true;
hardware.opengl.driSupport32Bit = true;
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
hardware.pulseaudio.support32Bit = true;
}

14
extra/hardware-base.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
services.smartd.enable = true;
environment.systemPackages = with pkgs; [
dmidecode
f3
hdparm
lm_sensors
pciutils
smartmontools
testdisk
];
}

15
extra/intel-video.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, pkgs, ... }:
{
nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
};
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau
libvdpau-va-gl
];
};
}

5
extra/intel.nix Normal file
View file

@ -0,0 +1,5 @@
{ config, lib, pkgs, ... }:
{
hardware.cpu.intel.updateMicrocode = true;
}

9
extra/kvm.nix Normal file
View file

@ -0,0 +1,9 @@
{ config, lib, pkgs, ... }:
{
boot.kernelModules = [
"kvm-amd"
"kvm-intel"
];
virtualisation.libvirtd.enable = true;
}

24
extra/location.nix Normal file
View file

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
{
location.provider = "geoclue2";
services.geoclue2.enable = true;
services.geoclue2.enableDemoAgent = true;
services.geoclue2.appConfig."gammastep" = {
desktopID = "gammastep";
isAllowed = true;
isSystem = false;
# Empty list allows all users
users = [ ];
};
services.geoclue2.appConfig."gammastep-indicator" = {
desktopID = "gammastep-indicator";
isAllowed = true;
isSystem = false;
# Empty list allows all users
users = [ ];
};
}

26
extra/media.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
audacity
chromaprint # music-brainz fingerprint
ffmpeg
gallery-dl
graphviz
handbrake
imagemagick
image_optim
inkscape
unstable.puddletag # audio tagging
mp3val
#mediaelch
unstable.mediaelch
picard
projectm
shotwell
soundkonverter
youtube-dl
];
}

15
extra/meeting.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
element-desktop
mumble
unstable.nheko
pidgin
skypeforlinux
signal-desktop
teamspeak_client
];
}

22
extra/networkdecrypt.nix Normal file
View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
boot.initrd.network = {
enable = true;
ssh = {
enable = true;
port = 2222;
hostKeys = [
/etc/secrets/initrd/ssh_host_ed25519_key
];
authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOFx6OLwL9MbkD3mnMsv+xrzZHN/rwCTgVs758SCLG0h felix@thinkman"
];
};
postCommands = ''
echo 'cryptsetup-askpass' >> /root/.profile
'';
};
}

7
extra/nix.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
nixpkgs-fmt
nix-prefetch-git
];
}

19
extra/power.nix Normal file
View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = [
config.boot.kernelPackages.cpupower
pkgs.powertop
pkgs.s-tui
];
powerManagement = {
cpuFreqGovernor = lib.mkDefault "powersave";
powertop.enable = true;
};
services = {
thermald.enable = true;
upower.enable = true;
};
}

6
extra/presentation.nix Normal file
View file

@ -0,0 +1,6 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
pdfpc
];
}

10
extra/printer.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, lib, pkgs, ... }:
{
services.printing.enable = true;
services.printing.drivers = with pkgs; [
gutenprint
hplip
];
programs.system-config-printer.enable = true;
}

25
extra/screen-sharing.nix Normal file
View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
remmina
teamviewer
];
services.pipewire.enable = true;
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-wlr
];
gtkUsePortal = true;
};
# for firefox
environment.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
XDG_CURRENT_DESKTOP = "sway";
XDG_SESSION_TYPE = "wayland";
};
}

7
extra/security.nix Normal file
View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
aircrack-ng
lynis
];
}

11
extra/sound.nix Normal file
View file

@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
sound.enable = true;
hardware.pulseaudio.enable = true;
environment.systemPackages = with pkgs; [
noisetorch
pavucontrol
playerctl
];
}

9
extra/ssh.nix Normal file
View file

@ -0,0 +1,9 @@
{ config, ... }:
{
services.openssh.enable = true;
# WARNING: if you remove this, then you need to assign a password to your user, otherwise
# `sudo` won't work. You can do that either by using `passwd` after the first rebuild or
# by setting an hashed password in the `users.users.felix` block as `initialHashedPassword`.
security.sudo.wheelNeedsPassword = false;
}

12
extra/sync.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
nextcloud-client
unstable.syncthing
magic-wormhole
vdirsyncer
];
}

6
extra/systemd-user.nix Normal file
View file

@ -0,0 +1,6 @@
{ config, ... }:
{
systemd.user.extraConfig = ''
DefaultEnvironment="PATH=/run/current-system/sw/bin"
'';
}

15
extra/systemduefi.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, ... }:
{
boot = {
loader = {
timeout = 1;
systemd-boot = {
enable = true;
configurationLimit = 10;
consoleMode = "keep";
editor = true;
};
};
};
}

12
extra/tex.nix Normal file
View file

@ -0,0 +1,12 @@
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
unstable.jabref
biber
texlive.combined.scheme-full
texstudio
];
}

10
extra/theme.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gtk-engine-murrine
gtk_engines
gsettings-desktop-schemas
lxappearance
];
programs.qt5ct.enable = true;
}

10
extra/thunderbolt.nix Normal file
View file

@ -0,0 +1,10 @@
{ config, pkgs, ... }:
let
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
environment.systemPackages = with pkgs; [
thunderbolt
];
services.hardware.bolt.enable = true;
}

8
extra/webcam.nix Normal file
View file

@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
fswebcam
gnome3.cheese
];
}