2019-08-06 10:56:54 -07:00
|
|
|
# Common configuration across systems. This should be required by
|
|
|
|
# configuration.$HOSTNAME.nix files.
|
|
|
|
|
|
|
|
{ config, pkgs, options, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
<nixpkgs/nixos/modules/installer/scan/not-detected.nix>
|
|
|
|
<home-manager/nixos>
|
|
|
|
];
|
|
|
|
|
2019-09-06 21:28:52 -07:00
|
|
|
nix = {
|
|
|
|
nixPath = options.nix.nixPath.default ++ [
|
|
|
|
"config=/etc/dotfiles/config"
|
2019-12-03 17:29:03 -08:00
|
|
|
"packages=/etc/dotfiles/packages"
|
2019-09-06 21:28:52 -07:00
|
|
|
];
|
|
|
|
autoOptimiseStore = true;
|
|
|
|
trustedUsers = [ "root" "@wheel" ];
|
|
|
|
};
|
2019-12-13 00:04:57 -08:00
|
|
|
nixpkgs.config = {
|
|
|
|
# Forgive me Stallman senpai
|
|
|
|
allowUnfree = true;
|
|
|
|
|
|
|
|
packageOverrides = pkgs: {
|
|
|
|
unstable = import <nixpkgs-unstable> {
|
|
|
|
config = config.nixpkgs.config;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2019-08-06 10:56:54 -07:00
|
|
|
|
|
|
|
# Nothing in /tmp should survive a reboot
|
|
|
|
boot.cleanTmpDir = true;
|
|
|
|
# Use simple bootloader; I prefer the on-demand BIOs boot menu
|
|
|
|
boot.loader.systemd-boot.enable = true;
|
|
|
|
boot.loader.efi.canTouchEfiVariables = true;
|
|
|
|
|
|
|
|
environment = {
|
|
|
|
systemPackages = with pkgs; [
|
|
|
|
# Just the bear necessities~
|
2019-11-26 14:04:14 -08:00
|
|
|
libqalculate
|
2019-08-06 10:56:54 -07:00
|
|
|
coreutils
|
|
|
|
git
|
2019-11-26 14:04:14 -08:00
|
|
|
killall
|
2019-08-06 10:56:54 -07:00
|
|
|
unzip
|
2019-11-26 14:04:14 -08:00
|
|
|
vim
|
|
|
|
wget
|
2019-08-06 10:56:54 -07:00
|
|
|
# Support for extra filesystems
|
|
|
|
sshfs
|
|
|
|
exfat
|
|
|
|
ntfs3g
|
|
|
|
hfsprogs
|
|
|
|
];
|
2019-12-03 21:00:32 -08:00
|
|
|
# These are the defaults, but some applications are buggy when these lack
|
|
|
|
# explicit values.
|
2019-12-04 21:32:29 -08:00
|
|
|
variables = {
|
2019-08-06 10:56:54 -07:00
|
|
|
XDG_CONFIG_HOME = "$HOME/.config";
|
|
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
|
|
XDG_DATA_HOME = "$HOME/.local/share";
|
|
|
|
XDG_BIN_HOME = "$HOME/.local/bin";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
time.timeZone = "America/Toronto";
|
|
|
|
# time.timeZone = "Europe/Copenhagen";
|
2019-10-17 16:57:00 -07:00
|
|
|
location = (if config.time.timeZone == "America/Toronto" then {
|
|
|
|
latitude = 43.70011;
|
|
|
|
longitude = -79.4163;
|
|
|
|
} else if config.time.timeZone == "Europe/Copenhagen" then {
|
|
|
|
latitude = 55.88;
|
|
|
|
longitude = 12.5;
|
|
|
|
} else {});
|
2019-08-06 10:56:54 -07:00
|
|
|
|
|
|
|
# Set up hlissner user account
|
|
|
|
users.users.hlissner = {
|
|
|
|
isNormalUser = true;
|
|
|
|
uid = 1000;
|
2019-11-18 18:41:49 -08:00
|
|
|
extraGroups = [ "wheel" "video" "networkmanager" "vboxusers" ];
|
2019-08-06 10:56:54 -07:00
|
|
|
shell = pkgs.zsh;
|
|
|
|
};
|
|
|
|
|
|
|
|
home-manager.users.hlissner = {
|
|
|
|
xdg.enable = true;
|
|
|
|
home.file."bin" = { source = ./bin; recursive = true; };
|
|
|
|
};
|
|
|
|
|
2019-11-17 20:25:47 -08:00
|
|
|
networking.firewall.enable = true;
|
|
|
|
|
2019-08-06 10:56:54 -07:00
|
|
|
# This value determines the NixOS release with which your system is to be
|
|
|
|
# compatible, in order to avoid breaking some software such as database
|
|
|
|
# servers. You should change this only after NixOS release notes say you
|
|
|
|
# should.
|
2019-10-17 16:57:00 -07:00
|
|
|
system.stateVersion = "19.09"; # Did you read the comment?
|
2019-08-06 10:56:54 -07:00
|
|
|
}
|