era-configuration-nix/configuration.nix

252 lines
6.4 KiB
Nix

{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
cleanTmpDir = true;
initrd.supportedFilesystems = [ "btrfs" ];
supportedFilesystems = [ "btrfs" ];
tmpOnTmpfs = true;
};
environment = {
variables.EDITOR = pkgs.lib.mkOverride 900 "vim"; # vim is my default editor
shells = [ pkgs.zsh ];
systemPackages = with pkgs; [
wget emacs
zathura qutebrowser
chromium optipng
oh-my-zsh stow
lemonbar git st
msmtp neomutt mu ripmime w3m #email
nethogs
(import ./vim.nix)
(texlive.combine { inherit (texlive) scheme-small latexmk bibtex; }) #for vimtex
ghostscript
];
};
hardware = {
bluetooth.enable = false;
cpu.intel.updateMicrocode = true;
pulseaudio = {
enable = true;
package = pkgs.pulseaudioLight;
};
trackpoint.enable = true;
};
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "fr-bepo";
defaultLocale = "en_US.UTF-8";
supportedLocales = [
"de_DE.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
"fr_FR.UTF-8/UTF-8"
"fi_FI.UTF-8/UTF-8" ];
};
networking = {
hostName = "era";
extraHosts = ''
192.168.1.1 router
163.172.81.107 sahkopoika
163.172.25.159 protonpack
195.154.102.65 kromuniste
'';
networkmanager.enable = false;
};
nix.useSandbox = true;
programs = {
bash.enableCompletion = true;
zsh.enable = true;
zsh.enableCompletion = true;
adb.enable = true;
mosh.enable = true;
tmux.enable = true;
};
security = {
sudo.wheelNeedsPassword = false;
pki.certificates = [
''
-----BEGIN CERTIFICATE-----
MIIDPTCCAiWgAwIBAgIJAMbx5WIu+oU+MA0GCSqGSIb3DQEBBQUAMDUxCzAJBgNV
BAYTAkZSMRUwEwYDVQQKDAxVbml0ZWQgUm9vdHMxDzANBgNVBAMMBk1hcnZpZDAe
Fw0xNDExMDMwMDI1NTNaFw0xOTExMDIwMDI1NTNaMDUxCzAJBgNVBAYTAkZSMRUw
EwYDVQQKDAxVbml0ZWQgUm9vdHMxDzANBgNVBAMMBk1hcnZpZDCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANl+Yqu63ivUX3ihurub0sreLmCKMPQg5Huh
F0kB9qJBiZZcRF92Fa12w9619AEVofRstlxB/Zj2H1HxfE1hVrHFq/5qUg9sBsYd
uXKLgjhXlUSjXDBy8qajOyoag7stQFFciglCwdMv26eEzLt0bpfNj6RjOn3MWeMj
BsYnY/U4VP1KcrlQnxHFjJtzL6uMHSvLGckUE29AvpB8B0ZADkxmQAy5HuCnPweQ
X3gNffR/niRnaIyatihI8yL5of01PJ/TiF+KAv99noaFEa3YgBIjtlego5S1lhUx
cDL4vsQ5aYvuyxmYQ/KYuNotGiSBeDNJSDV43cHujZnwqPWuUbMCAwEAAaNQME4w
HQYDVR0OBBYEFJopvu7AhwhzskjBKlrMe/NS/AqxMB8GA1UdIwQYMBaAFJopvu7A
hwhzskjBKlrMe/NS/AqxMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
AJdtOVybiIf7IXDHO68lOe2Ob14WnAadE/FyzmWAsUbR4cVzAu6ObhcwiWWX5Ij2
aLx1hLWdIxyoxY76lCvvQ60rZ/9hbUR5n8rVNWPOqCBo7TCWpFT8KJFLpGKJkwKi
icC6dqBpjeX2hd2ahPyaaGdUnLYxY4znLz1/RgSrzzTGUmjIHN9Go4ACVimJB5IR
3paGD4ntvfuwWZevF7SFdGJiMl+yECXVO3+3fWvEJXCwq5F9eE4f2HYljgdFE4GT
X8aV5rzT5g2j9piZWLoX3wh4XwhItFT7WFtEwuoVi0jWRKpU6DRTuqAqXSbuGboo
ozM+r1wQMF2wE4aNnT+g0EQ=
-----END CERTIFICATE-----
'' ];
};
services = {
offlineimap = {
enable = true;
onCalendar = "*:0/5";
};
cron.enable = false;
nixosManual.enable = false;
printing = {
enable = true;
# drivers = [ pkgs.hplip ];
};
compton = {
enable = true;
fade = true;
};
redshift = {
enable = true;
latitude = "48.8534100";
longitude = "2.3488000";
};
openssh = {
enable = true;
permitRootLogin = "no";
passwordAuthentication = false;
startWhenNeeded = true;
};
#openvpn.servers.client = {
# autoStart = false;
# config = builtins.readFile ./era.ovpn; # Pas top ._.
#};
xserver = {
enable = true;
layout = "fr";
xkbVariant = "bepo";
autorun = true;
displayManager = {
sessionCommands = ''
xset r rate 200 75
xrandr --output eDP1 --mode 1920x1080
feh -s --bg-fill /home/eeva/.xmonad/artwork/nix-wallpaper-stripes-logo.png
'';
slim.theme = pkgs.fetchurl {
url = http://marvid.fr/~eeva/mirror/slim-theme-solarized-debian.tar.bz2;
sha256 = "e792886a39b97bed0cb1022bec381806b0ca1dcc726b093187231bd1902acd49";
};
};
synaptics = {
enable = true;
palmDetect = true;
twoFingerScroll = true;
};
#videoDrivers = [ "amdgpu" "intel" "modsetting" ]; # I wish
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
};
desktopManager.xterm.enable = false;
};
};
systemd.mounts = [
{ what = "/dev/sdb1";
where = "/mnt/usb1";
mountConfig = {
TimeoutSec = "1";
Options = "uid=eeva";
};
}
];
systemd.automounts = [
{ where = "/mnt/usb1";
automountConfig = { TimeoutIdleSec = "1"; };
wantedBy = [ "default.target" ];
}
];
time.timeZone = "Europe/Paris";
users = {
extraUsers.eeva = {
isNormalUser = true;
home = "/home/eeva";
extraGroups = [ "wheel" ];
shell = pkgs.zsh;
uid = 1000;
};
mutableUsers = true; # Need this to change passwords.
motd = "Death to the DeathStar";
};
networking.wireless = {
enable = true;
interfaces = [ "wlo1" ];
userControlled.enable = true;
networks = {
">o_/" = {
pskRaw = "9d38f38d5d49fae47605cfd6437bd00b136f6a266c04bc5b8f4cf05bf7907c0b";
};
"42" = {
pskRaw = "d4806ea095c4c2ef267307f75975031b6bc2d2c79861bf53c96c9a7ff70b068a";
};
"Wi-Fi_Info_Etudiant" = {};
};
};
# Extra fonts
fonts.fonts = with pkgs; [
tewi-font
];
# Rasvaton / Fet-fri
nix.gc.automatic = true;
nix.gc.options = "--delete-older-than 1w";
nix.gc.dates = "02:22";
# Upgrade when possible
system.autoUpgrade.enable = true;
system.stateVersion = "17.03";
## Special config
nixpkgs.overlays = [ (self: super: {
st = super.st.override {
patches = builtins.map super.fetchurl [
{ url = "http://st.suckless.org/patches/st-no_bold_colors-20160727-308bfbf.diff";
sha256 = "2e8cdbeaaa79ed067ffcfdcf4c5f09fb5c8c984906cde97226d4dd219dda39dc";
}
{ url = "http://st.suckless.org/patches/st-solarized-both-20160727-308bfbf.diff";
sha256 = "b7b25ba01b7ae87ec201ebbb1bf82742d5979788ecc6773a356eebe7d90a9703";
}
];
};
}) ];
}