2018-05-21 19:48:20 +02:00
|
|
|
{ config, lib, pkgs, ... }:
|
2019-01-16 21:38:26 +01:00
|
|
|
let
|
2020-05-02 18:25:47 +02:00
|
|
|
myusers = import ../users.nix { inherit pkgs; };
|
|
|
|
mypkgs = import ../packages.nix { inherit pkgs; };
|
|
|
|
i3 = import ../modules/software-config/i3.nix { inherit pkgs; };
|
|
|
|
vimInit = import ../modules/software-config/neovim.nix { inherit pkgs; };
|
2021-05-13 10:21:03 +02:00
|
|
|
sources = import ../nix/sources.nix { };
|
|
|
|
keys = import ../keys.nix {};
|
2020-06-23 14:11:59 +02:00
|
|
|
|
|
|
|
nixos-hardware = (import ../nix/sources.nix { }).nixos-hardware;
|
2019-01-16 21:38:26 +01:00
|
|
|
in {
|
2018-04-14 17:59:44 +02:00
|
|
|
imports =
|
2019-02-10 19:31:34 +01:00
|
|
|
[
|
2020-05-02 18:25:47 +02:00
|
|
|
../modules/core.nix
|
|
|
|
../modules/core-graphical-computers.nix
|
2018-04-14 17:59:44 +02:00
|
|
|
./thinkpad-hardware-configuration.nix
|
2020-06-23 14:11:59 +02:00
|
|
|
"${nixos-hardware}/lenovo/thinkpad/x250"
|
2018-04-14 17:59:44 +02:00
|
|
|
];
|
|
|
|
|
2021-02-01 20:26:53 +01:00
|
|
|
nixpkgs = {
|
|
|
|
overlays = [ (import ../custom-pkgs/default.nix) ];
|
|
|
|
config = {
|
|
|
|
allowUnfree = true;
|
|
|
|
packageOverrides = super: {
|
|
|
|
mumble_git = super.mumble_git.override {
|
|
|
|
pulseSupport = true;
|
|
|
|
libpulseaudio = pkgs.libpulseaudio;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
# Use the GRUB 2 boot loader.
|
2018-05-21 19:48:20 +02:00
|
|
|
boot = {
|
|
|
|
loader.grub = {
|
|
|
|
enable = true;
|
|
|
|
enableCryptodisk = true;
|
|
|
|
version = 2;
|
|
|
|
device = "/dev/sda";
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
};
|
2019-08-26 00:36:03 +02:00
|
|
|
services.prometheus = {
|
2020-10-07 22:07:33 +02:00
|
|
|
enable = false;
|
2019-08-26 00:36:03 +02:00
|
|
|
scrapeConfigs = [ {
|
|
|
|
job_name = "prometheus";
|
|
|
|
scrape_interval = "5s";
|
|
|
|
static_configs = [{
|
|
|
|
targets = ["localhost:9090"];
|
|
|
|
}];
|
|
|
|
}];
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
|
2020-10-07 22:07:33 +02:00
|
|
|
services.emacs = {
|
|
|
|
enable = true;
|
|
|
|
defaultEditor = true;
|
|
|
|
package = pkgs.ninjatrappeur-pkgs.configured-emacs;
|
|
|
|
};
|
|
|
|
|
|
|
|
services.printing = {
|
|
|
|
enable = true;
|
2021-02-01 20:13:13 +01:00
|
|
|
drivers = [ pkgs.splix pkgs.ninjatrappeur-pkgs.hll2350dw-cups ];
|
2020-10-07 22:07:33 +02:00
|
|
|
};
|
|
|
|
|
2019-08-26 00:36:03 +02:00
|
|
|
# systemd.network = {
|
|
|
|
# enable = true;
|
|
|
|
# networks = {
|
|
|
|
# "98-nope" = {
|
|
|
|
# matchConfig = { Name = "enp* wlp*"; };
|
|
|
|
# linkConfig.Unmanaged = true;
|
|
|
|
# };
|
|
|
|
# "80-wlan" = {
|
|
|
|
# enable = true;
|
|
|
|
# matchConfig = { Name = "wlp3s0"; };
|
|
|
|
# address = [ "192.168.1.1/24" ];
|
|
|
|
# dhcpServerConfig = { EmitDNS = true; DNS = [ "80.67.169.12" "80.67.169.40" ]; PoolOffset = 10; EmitRouter = true; };
|
|
|
|
# networkConfig = { IPForward = "yes"; IPMasquerade = "yes"; DHCPServer = true; };
|
|
|
|
# };
|
|
|
|
# };
|
|
|
|
# };
|
2021-05-13 10:21:03 +02:00
|
|
|
|
2023-04-20 10:20:39 +02:00
|
|
|
|
|
|
|
services.openssh = {
|
2021-05-13 10:21:03 +02:00
|
|
|
enable = true;
|
2023-04-20 10:20:39 +02:00
|
|
|
settings = {
|
|
|
|
PasswordAuthentication = false;
|
|
|
|
KbdInteractiveAuthentication = false;
|
|
|
|
PermitRootLogin = "no";
|
|
|
|
};
|
2021-05-13 10:21:03 +02:00
|
|
|
};
|
|
|
|
|
2019-08-26 00:36:03 +02:00
|
|
|
networking = {
|
|
|
|
hostName = "thinkpad-nix";
|
|
|
|
firewall = {
|
|
|
|
allowedUDPPorts = [
|
|
|
|
# Patchwork discovery
|
|
|
|
8008
|
|
|
|
];
|
|
|
|
allowedTCPPorts = [
|
|
|
|
# HTTP
|
|
|
|
8000
|
|
|
|
# Patchwork
|
|
|
|
8008
|
|
|
|
];
|
|
|
|
};
|
|
|
|
networkmanager.enable = true;
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
|
2022-11-08 15:38:31 +01:00
|
|
|
networking.wireguard.interfaces."wg-extended-lan" = {
|
|
|
|
privateKey = builtins.readFile /home/ninjatrappeur/.vpn/extended-lan.key;
|
|
|
|
ips = ["192.168.166.2"];
|
|
|
|
peers = [{
|
|
|
|
endpoint = "seldon.alternativebit.fr:51822";
|
|
|
|
publicKey = "ZdeqXN3Q8ZBPCWVW6pFzIBF3iS8zlVMGAj8bcePj3zk=";
|
|
|
|
allowedIPs = ["192.168.166.1/32" "192.168.11.0/24"];
|
|
|
|
persistentKeepalive = 25;
|
|
|
|
}];
|
|
|
|
};
|
2018-05-21 19:48:20 +02:00
|
|
|
|
2019-05-03 21:51:46 +02:00
|
|
|
users = {
|
|
|
|
extraUsers.ninjatrappeur= {
|
2018-04-14 17:59:44 +02:00
|
|
|
isNormalUser = true;
|
2019-01-16 21:38:26 +01:00
|
|
|
home = myusers.ninjatrappeur.home;
|
|
|
|
extraGroups = myusers.ninjatrappeur.extraGroups;
|
|
|
|
shell = myusers.ninjatrappeur.shell;
|
2021-05-13 10:21:03 +02:00
|
|
|
openssh.authorizedKeys.keys = pkgs.lib.attrsets.attrValues keys.ninjatrappeur;
|
2019-05-03 21:51:46 +02:00
|
|
|
};
|
|
|
|
extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
2018-05-21 19:48:20 +02:00
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
|
2018-05-23 22:01:45 +02:00
|
|
|
services.syncthing = {
|
2019-01-16 21:38:26 +01:00
|
|
|
user = myusers.ninjatrappeur.name;
|
|
|
|
dataDir = "${myusers.ninjatrappeur.home}/.config/syncthing";
|
2018-05-23 22:01:45 +02:00
|
|
|
};
|
|
|
|
|
2022-10-07 07:29:52 +02:00
|
|
|
programs.bcc.enable = true;
|
|
|
|
|
2021-02-01 20:26:53 +01:00
|
|
|
home-manager.users.ninjatrappeur = {
|
2022-10-07 07:33:24 +02:00
|
|
|
home.stateVersion = "18.09";
|
2023-04-20 10:20:39 +02:00
|
|
|
services.mako = {
|
2018-04-14 22:42:26 +02:00
|
|
|
enable = true;
|
2021-02-01 20:26:53 +01:00
|
|
|
anchor = "top-center";
|
2018-04-14 22:42:26 +02:00
|
|
|
};
|
|
|
|
|
2021-02-01 20:26:53 +01:00
|
|
|
home.file = {
|
2021-08-18 21:28:12 +02:00
|
|
|
".notmuch-config".source = ../raw-conf-files/email/notmuch-config;
|
|
|
|
".config/msmtp/config".source = ../raw-conf-files/email/msmtp;
|
2018-04-14 17:59:44 +02:00
|
|
|
};
|
|
|
|
};
|
2019-05-03 21:51:46 +02:00
|
|
|
|
2022-03-18 22:48:03 +01:00
|
|
|
services.xserver= {
|
|
|
|
xkbOptions = "caps:swapescape";
|
2022-10-07 07:29:52 +02:00
|
|
|
displayManager.defaultSession = "xfce+i3";
|
2022-03-18 22:48:03 +01:00
|
|
|
libinput = {
|
|
|
|
enable = true;
|
|
|
|
touchpad = {
|
|
|
|
disableWhileTyping = true;
|
|
|
|
scrollMethod = "twofinger";
|
|
|
|
tapping = true;
|
|
|
|
};
|
|
|
|
};
|
2021-02-01 20:26:53 +01:00
|
|
|
|
2022-04-09 09:38:32 +02:00
|
|
|
desktopManager = {
|
|
|
|
xterm.enable = false;
|
2022-11-08 15:38:31 +01:00
|
|
|
gnome.enable = true;
|
2022-04-09 09:38:32 +02:00
|
|
|
xfce = {
|
|
|
|
enable = true;
|
|
|
|
noDesktop = true;
|
|
|
|
enableXfwm = false;
|
|
|
|
};
|
|
|
|
};
|
2022-03-18 22:48:03 +01:00
|
|
|
windowManager.i3 = {
|
|
|
|
enable = true;
|
|
|
|
configFile = builtins.toPath (pkgs.writeText "thinkpad-i3-config" i3.thinkpad-config);
|
|
|
|
};
|
|
|
|
};
|
2021-02-01 20:26:53 +01:00
|
|
|
|
2019-05-03 21:51:46 +02:00
|
|
|
virtualisation = {
|
2020-10-07 22:07:33 +02:00
|
|
|
#virtualbox.host.enable = true;
|
|
|
|
#docker.enable = true;
|
2019-05-03 21:51:46 +02:00
|
|
|
};
|
|
|
|
|
2019-02-07 11:33:15 +01:00
|
|
|
nix = {
|
2022-03-01 16:50:54 +01:00
|
|
|
settings = {
|
|
|
|
trusted-users = [ "root" "${myusers.ninjatrappeur.name}" ];
|
|
|
|
sandbox = true;
|
|
|
|
};
|
2019-02-07 11:33:15 +01:00
|
|
|
extraOptions = ''
|
|
|
|
builders-use-substitutes = true
|
2022-03-18 22:48:03 +01:00
|
|
|
experimental-features = nix-command flakes
|
2019-02-07 11:33:15 +01:00
|
|
|
'';
|
|
|
|
nixPath = [
|
2021-05-13 10:21:03 +02:00
|
|
|
"nixpkgs=${sources.nixpkgs}"
|
2019-02-07 11:33:15 +01:00
|
|
|
"nixos-config=/etc/nixos/configuration.nix"
|
|
|
|
];
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
|
2019-02-10 19:31:34 +01:00
|
|
|
environment.systemPackages =
|
2022-03-25 16:01:08 +01:00
|
|
|
mypkgs.common ++ mypkgs.dev ++ mypkgs.media ++ mypkgs.graphic-apps
|
|
|
|
++ mypkgs.laptop ++ [
|
|
|
|
pkgs.brightnessctl
|
2022-10-07 07:33:24 +02:00
|
|
|
pkgs.gnome.nautilus
|
|
|
|
pkgs.gnome.eog
|
|
|
|
pkgs.gnome.gvfs
|
2022-03-25 16:01:08 +01:00
|
|
|
pkgs.evince
|
2022-10-07 07:29:52 +02:00
|
|
|
pkgs.languagetool
|
2022-11-08 15:38:31 +01:00
|
|
|
pkgs.remmina
|
2023-11-01 17:37:19 +01:00
|
|
|
pkgs.carla
|
2022-10-07 07:29:52 +02:00
|
|
|
(pkgs.hunspellWithDicts [
|
|
|
|
pkgs.hunspellDicts.en-gb-ise
|
|
|
|
pkgs.hunspellDicts.en-gb-ize
|
|
|
|
pkgs.hunspellDicts.en-us
|
|
|
|
pkgs.hunspellDicts.fr-any
|
|
|
|
pkgs.hunspellDicts.fr-moderne
|
|
|
|
])
|
2022-03-25 16:01:08 +01:00
|
|
|
];
|
2019-01-16 21:38:26 +01:00
|
|
|
|
2019-02-10 18:48:00 +01:00
|
|
|
system = {
|
|
|
|
stateVersion = "18.09";
|
2019-02-10 19:31:34 +01:00
|
|
|
userActivationScripts = {
|
|
|
|
vimConfigSetup = {
|
2019-02-10 18:48:00 +01:00
|
|
|
text = ''
|
2019-02-10 19:31:34 +01:00
|
|
|
ln -fs "${vimInit.neovim-config}" "${myusers.ninjatrappeur.home}/.config/nvim/init.vim"
|
2019-02-10 18:48:00 +01:00
|
|
|
'';
|
2019-02-10 19:31:34 +01:00
|
|
|
deps = [];
|
|
|
|
};
|
2019-02-10 18:48:00 +01:00
|
|
|
};
|
|
|
|
};
|
2018-04-14 17:59:44 +02:00
|
|
|
}
|