era-configuration-nix/configuration.nix

338 lines
9.9 KiB
Nix
Raw Normal View History

2017-02-28 22:09:06 +01:00
{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
2017-03-11 15:15:13 +01:00
./mail.nix
2017-06-23 22:11:57 +02:00
./ipfs.nix
#./ipv6.nix
2017-02-28 22:09:06 +01:00
];
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
cleanTmpDir = true;
initrd.supportedFilesystems = [ "btrfs" ];
supportedFilesystems = [ "btrfs" ];
tmpOnTmpfs = true;
2017-03-01 15:03:29 +01:00
2017-02-28 22:09:06 +01:00
};
2017-07-10 12:05:54 +02:00
fonts.extraFonts = with pkgs; [
libertine
tewi-font
iosevka
2017-07-10 12:05:54 +02:00
inconsolata
dejavu_fonts
2017-07-10 12:05:54 +02:00
];
2017-02-28 22:09:06 +01:00
environment = {
2017-05-29 12:02:14 +02:00
variables.EDITOR = pkgs.lib.mkOverride 10 "vim"; # vim is my default editor
2017-02-28 22:09:06 +01:00
shells = [ pkgs.zsh ];
# Rule of thumb: only X utilities and pure system programs
2017-02-28 22:09:06 +01:00
systemPackages = with pkgs; [
2017-03-19 02:12:14 +01:00
(import ./vim.nix)
(pkgs.lib.mkOverride 10 st) # patched, see at the end of this file
2017-03-11 10:47:47 +01:00
arandr
autorandr
2017-05-29 12:02:14 +02:00
chromium
2017-03-18 13:58:50 +01:00
crda # WiFi regulatory domains
dmenu
feh
2017-05-29 12:02:14 +02:00
gimp
2017-06-17 18:13:47 +02:00
gnumeric
i3lock-fancy
inkscape
lemonbar-xft
2017-05-29 12:02:14 +02:00
mpv
optipng
pavucontrol
2017-08-21 12:10:23 +02:00
qutebrowserWE
xclip
2017-05-29 12:02:14 +02:00
zathura
2017-02-28 22:09:06 +01:00
];
};
hardware = {
bluetooth.enable = false;
cpu.intel.updateMicrocode = true;
pulseaudio = {
enable = true;
package = pkgs.pulseaudioLight;
};
trackpoint.enable = true;
2017-04-01 18:16:12 +02:00
opengl.extraPackages = with pkgs; [ # These are imported by ocl-icd
intel-ocl # intel cpu
2017-08-21 12:10:23 +02:00
#beignet # intel gpu
2017-04-01 18:16:12 +02:00
];
2017-02-28 22:09:06 +01:00
};
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "fr-bepo";
defaultLocale = "en_US.UTF-8";
2017-03-19 02:12:14 +01:00
supportedLocales = [
2017-02-28 22:09:06 +01:00
"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 = {
2017-06-17 18:13:47 +02:00
firewall.enable = true;
2017-02-28 22:09:06 +01:00
hostName = "era";
extraHosts = ''
192.168.1.1 router
2017-05-11 12:35:36 +02:00
163.172.81.107 sahkopoika courriel.marvid.fr
2017-02-28 22:09:06 +01:00
163.172.25.159 protonpack
195.154.102.65 kromuniste
2017-03-11 10:47:47 +01:00
192.168.158.23 pimusicbox
2017-07-10 12:05:54 +02:00
2001:bc8:26b7:f001::1002 felin
2017-02-28 22:09:06 +01:00
'';
networkmanager.enable = false;
2017-03-11 10:47:47 +01:00
# wireless configs are stored in /etc/wpa_supplicant.conf
wireless = {
enable = true;
interfaces = [ "wlo1" ];
userControlled.enable = true;
};
2017-02-28 22:09:06 +01:00
};
# Test (can be removed)
2017-02-28 22:09:06 +01:00
nix.useSandbox = true;
programs = {
bash.enableCompletion = true;
zsh.enable = true;
zsh.enableCompletion = true;
adb.enable = true;
mosh.enable = true;
tmux.enable = true;
2017-04-01 18:16:12 +02:00
chromium = {
enable = true;
2017-04-01 18:41:09 +02:00
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
2017-04-01 18:16:12 +02:00
defaultSearchProviderSuggestURL = null;
extensions = [
"ihlenndgcmojhcghmfjfneahoeklbjjh" # cVim
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin
];
extraOpts = {
AlternateErrorPagesEnabled = false;
AlwaysOpenPdfExternally = true;
AutoFillEnabled = false;
BackgroundModeEnabled = false;
BlockThirdPartyCookies = true;
BookmarkBarEnabled = false;
BrowserAddPersonEnabled = false;
BrowserGuestModeEnabled = false;
BuiltInDnsClientEnabled = false;
CloudPrintProxyEnabled = false;
CloudPrintSubmitEnabled = false;
ContextualSearchEnabled = false;
DefaultBrowserSettingEnabled = false;
DefaultGeolocationSetting = 2;
DownloadDirectory = "/tmp";
NTPContentSuggestionsEnabled = false;
NetworkPredictionOptions = 2;
PasswordManagerEnabled = false;
SearchSuggestEnabled = false;
SpellCheckServiceEnabled = false;
TranslateEnabled = false;
};
};
2017-02-28 22:09:06 +01:00
};
security = {
sudo.wheelNeedsPassword = false;
2017-03-19 02:12:14 +01:00
pki.certificates = [
2017-02-28 22:09:06 +01:00
''
-----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-----
2017-05-11 12:35:36 +02:00
''
''
-----BEGIN CERTIFICATE-----
MIIFODCCAyCgAwIBAgIJALKrFKLDxFUfMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV
BAMMDFVuaXRlZCBSb290czAeFw0xNzA0MTkyMjMzMTRaFw0yNzA0MTcyMjMzMTRa
MBcxFTATBgNVBAMMDFVuaXRlZCBSb290czCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBAOCTH4sqkC6TJXqalbiALL+y8tpZF96hrZjt4o6+lJjqYqHP00E8
KliAGqyBT40oWGO/k/kmnbmSrTOQGWUujtqgSqDO9Mqyfk/orf5GLzVYu66/Wf28
Tn6rSgf/62HVQdczpgWPDkg1IvmJg0E+iA3C28/+hjVc+re0Lp1BEjEOHay2aoaS
YRwudowTvnoRyPcWzIUYOg/GbmaRE4fiwOW7ulAbK05CJSIHMzjkS5Zfegc8FDEq
B463VusW0nmUGtxA524dsmiy5KFI4GtJrQZDy4xnX7+/kefCdR1Rb6hbSpa4/7e6
FGF4R3Ll+9vsHLVgljdGjgoIEeiHAO6eq00jFkqDaM+uNPyKQSvc4pBIIo+yWXtl
B2/0XMrOFz8hzLRg8fElO0kZ0Biv+Rxr+T50EBlgdgejAJnKUaxX3ob4Z9tuNqGr
QTxiGiDC4anetmVD3bMbkwUYa8fMun2mg3Pzkw02fnxNMJ6uIlXvTLP+YRILULLb
/Os6KHoynyNn1wiTNQ6f72TV0+fMgK83JaZtjWgrPY5ap97n1phKKqgMfTgmtoMR
uaYXSVAiAE4CjyJRwiJRYiVWXW3zHnTTsJuYlEoaqsP0le67AYT8aPtCllt3i5g+
omlNgkMdIfpCMj3oreYrzdQ4Y3Qqpj+USbM/sIsdWTuiE3oYL7HI9/AtAgMBAAGj
gYYwgYMwHQYDVR0OBBYEFAI6ZBnripjC7OQ8+sVwQSRCS8OeMEcGA1UdIwRAMD6A
FAI6ZBnripjC7OQ8+sVwQSRCS8OeoRukGTAXMRUwEwYDVQQDDAxVbml0ZWQgUm9v
dHOCCQCyqxSiw8RVHzAMBgNVHRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG
9w0BAQsFAAOCAgEAxkaH+PUtp+38oBf6fzgBT/7nKdgWDC9saAc4XTB2zGOExE1n
03X06n/FSCefvFBPD2ReYEGe2+Xt+S6vo3gU32P4uLNsVTGCPqB1dWEWRDdNwZHn
qdNOvh2Jrvh7H7+y+lLBF8w/ypJtuHBVmQqJOBhcPqnVatTf6Ikpby+cVDiD1JUl
p9HwlCl2KTTIxY/boRWowF8AYXWTDCRMfPkPRPlmIGBTSSdWCVijXKchUxjMGKzK
pUZac3/F/GaHWg+WKLTeHBtoTMhVzPWPe8U/5QJZGuMCCS5jwbKZP96yvOQvQgQm
pIkhH8+2AZoV0F5jk/jzesg+6OeJc9wGjahbJtIXYdrmb9/hGDrZCgyO/WE1/7oZ
AViYHGfuX4jskWazVwuxKX0nMySwCRe8YsfzW3t0hEQfvQuhlXcUZ+/DN8lnVRMq
V5lJhCHckeHI1wLd+pYrW+PxASbB1wSpZVSdgE8kKKdSHJ3lcOtMJ8UhlYG/YkHM
TgtCO/zC8Suibx3Td5RWL4OrI+xep+4tj9Fg01CtIndVyVBA+FVw3dll4d5kmQhU
jEiakxnarNc6NOaZUDdA7vzPvrg3V3FoUnst9riRKRtFelCMy9xlgP1jMO8EkyJl
50QGN1dKcZejnf59ahrV5KrnSNHRBRyrCvmVM75Ke9KNrAen/R9HjVJ2CIo=
-----END CERTIFICATE-----
2017-02-28 22:09:06 +01:00
'' ];
};
2017-06-23 22:11:57 +02:00
2017-02-28 22:09:06 +01:00
services = {
2017-05-11 12:35:36 +02:00
avahi.enable = false; # for cups printer discovery
2017-03-18 13:58:50 +01:00
udev.packages = with pkgs; [ crda ];
peerflix = {
2017-03-19 02:12:14 +01:00
enable = true;
stateDir = "/tmp/peerflix";
};
2017-02-28 22:09:06 +01:00
cron.enable = false;
nixosManual.enable = false;
printing = {
enable = true;
2017-05-11 12:35:36 +02:00
drivers = with pkgs; [
dell-530cdn # dell 5130cdn (typo)
cups-toshiba-estudio # Yay, my pull request has been accepted
2017-05-29 12:02:14 +02:00
hplip
];
2017-02-28 22:09:06 +01:00
};
redshift = {
enable = true;
2017-02-28 22:55:14 +01:00
latitude = "48.8534100";
2017-02-28 22:09:06 +01:00
longitude = "2.3488000";
};
openssh = {
enable = true;
permitRootLogin = "no";
passwordAuthentication = false;
2017-03-19 02:12:14 +01:00
startWhenNeeded = true;
2017-02-28 22:09:06 +01:00
};
2017-06-17 18:13:47 +02:00
openvpn.servers.era = {
2017-03-02 19:36:31 +01:00
autoStart = false;
2017-06-17 18:13:47 +02:00
updateResolvConf = true;
2017-03-02 19:36:31 +01:00
config = builtins.readFile ./era.ovpn; # Pas top ._.
};
2017-02-28 22:09:06 +01:00
xserver = {
enable = true;
layout = "fr";
xkbVariant = "bepo";
autorun = true;
2017-03-01 15:03:29 +01:00
displayManager = {
sessionCommands = ''
xset r rate 200 75
xrandr --output eDP1 --mode 1920x1080
2017-02-28 22:09:06 +01:00
'';
2017-03-01 15:03:29 +01:00
slim.theme = pkgs.fetchurl {
url = http://marvid.fr/~eeva/mirror/slim-theme-solarized-debian.tar.bz2;
sha256 = "e792886a39b97bed0cb1022bec381806b0ca1dcc726b093187231bd1902acd49";
};
};
2017-02-28 22:09:06 +01:00
2017-03-25 10:24:05 +01:00
libinput = {
2017-02-28 22:09:06 +01:00
enable = true;
2017-03-25 10:24:05 +01:00
disableWhileTyping = true;
2017-02-28 22:09:06 +01:00
};
2017-03-25 10:24:05 +01:00
#synaptics = {
# enable = true;
# palmDetect = true;
# twoFingerScroll = true;
#};
2017-02-28 22:09:06 +01:00
2017-03-25 10:24:05 +01:00
videoDrivers = [ "intel" "modesetting" ];
2017-03-01 15:03:29 +01:00
#videoDrivers = [ "amdgpu" "intel" "modsetting" ]; # I wish
2017-02-28 22:09:06 +01:00
#windowManager.xmonad = {
# enable = true;
# enableContribAndExtras = true;
#};
2017-02-28 22:09:06 +01:00
desktopManager.xterm.enable = false;
};
};
2017-02-28 22:55:14 +01:00
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" ];
}
];
2017-02-28 22:09:06 +01:00
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";
};
# Rasvaton / Fet-fri
nix.gc.automatic = true;
nix.gc.options = "--delete-older-than 1w";
2017-02-28 22:09:06 +01:00
nix.gc.dates = "02:22";
# Upgrade when possible
system.autoUpgrade.enable = true;
system.stateVersion = "17.03";
## Special config
nixpkgs.overlays = [ (self: super: {
2017-07-10 12:05:54 +02:00
st = super.callPackage ./pkgs/st.nix {};
2017-06-17 18:13:47 +02:00
cups-filters = super.callPackage /home/eeva/pkgs/cups-filters {};
2017-08-21 12:10:23 +02:00
qutebrowserWE = pkgs.qutebrowser.overrideAttrs (oldAttrs: rec {
withWebEngineDefault = true;
});
2017-06-17 18:13:47 +02:00
})
];
2017-02-28 22:09:06 +01:00
2017-04-01 18:16:12 +02:00
nixpkgs.config.allowUnfree = true;
2017-02-28 22:09:06 +01:00
}