2019-01-30 13:16:49 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
let
|
|
|
|
|
helpers = import ./helpers.nix;
|
|
|
|
|
in {
|
2018-09-12 00:04:55 +02:00
|
|
|
imports = [
|
2019-02-08 17:59:37 +01:00
|
|
|
"${builtins.fetchTarball https://github.com/rycee/home-manager/archive/release-18.09.tar.gz}/nixos"
|
2019-01-30 13:16:49 +01:00
|
|
|
./options.nix
|
|
|
|
|
configs/hu-berlin.nix
|
|
|
|
|
configs/shells.nix
|
|
|
|
|
configs/editors.nix
|
|
|
|
|
configs/graphics.nix
|
|
|
|
|
configs/packages.nix
|
|
|
|
|
configs/networks.nix
|
2019-01-30 16:09:06 +01:00
|
|
|
configs/scripts.nix
|
2019-01-30 13:16:49 +01:00
|
|
|
configs/retiolum.nix
|
2018-09-12 00:04:55 +02:00
|
|
|
];
|
|
|
|
|
|
2019-01-30 15:44:00 +01:00
|
|
|
boot.cleanTmpDir = true;
|
2019-04-04 16:57:50 +02:00
|
|
|
boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ];
|
2019-01-30 15:44:00 +01:00
|
|
|
|
2018-09-17 16:51:00 +02:00
|
|
|
time.timeZone = "Europe/Berlin";
|
|
|
|
|
|
|
|
|
|
sound.enable = true;
|
2018-09-22 20:26:42 +02:00
|
|
|
|
|
|
|
|
hardware.pulseaudio = {
|
|
|
|
|
enable = true;
|
|
|
|
|
package = pkgs.pulseaudioFull; # for bluetooth sound output
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
hardware.bluetooth = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraConfig = ''
|
|
|
|
|
[General]
|
|
|
|
|
Enable=Source,Sink,Media,Socket
|
|
|
|
|
'';
|
|
|
|
|
};
|
2018-09-17 16:51:00 +02:00
|
|
|
|
2018-09-25 17:17:51 +02:00
|
|
|
services.printing = {
|
|
|
|
|
enable = true;
|
|
|
|
|
drivers = [ pkgs.hplipWithPlugin ];
|
|
|
|
|
};
|
|
|
|
|
|
2018-12-02 14:17:04 +01:00
|
|
|
security.sudo = {
|
|
|
|
|
enable = true;
|
2019-01-02 02:20:03 +01:00
|
|
|
extraConfig = ''
|
|
|
|
|
Defaults pwfeedback
|
|
|
|
|
'';
|
2018-12-02 14:17:04 +01:00
|
|
|
};
|
2018-09-05 22:21:12 +02:00
|
|
|
|
2019-01-30 13:16:49 +01:00
|
|
|
systemd.services.google-drive = {
|
|
|
|
|
description = "Google Drive synchronisation service";
|
|
|
|
|
wants = [ "network-online.target" ];
|
|
|
|
|
script = ''
|
|
|
|
|
${pkgs.grive2}/bin/grive -p ${config.users.users.kfm.home}/cloud/gdrive
|
|
|
|
|
'';
|
|
|
|
|
startAt = "*:0/5";
|
|
|
|
|
serviceConfig = {
|
2019-02-12 20:11:24 +01:00
|
|
|
Type = "oneshot";
|
|
|
|
|
User = config.users.users.kfm.name;
|
2019-01-30 13:16:49 +01:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
programs.tmux = {
|
|
|
|
|
enable = true;
|
|
|
|
|
extraTmuxConf = import dot/tmux.nix;
|
|
|
|
|
keyMode = "vi";
|
|
|
|
|
terminal = "screen-256color";
|
|
|
|
|
};
|
|
|
|
|
|
2019-01-30 15:44:00 +01:00
|
|
|
users.mutableUsers = false;
|
|
|
|
|
|
|
|
|
|
users.users.kfm = {
|
|
|
|
|
name = "kfm";
|
|
|
|
|
description = config.constants.user.name;
|
|
|
|
|
home = "/home/kfm";
|
|
|
|
|
createHome = true;
|
|
|
|
|
group = "users";
|
|
|
|
|
extraGroups = [ "wheel" "audio" "docker" ];
|
|
|
|
|
hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/";
|
2019-03-06 00:58:56 +01:00
|
|
|
shell = pkgs.zsh;
|
2019-01-30 15:44:00 +01:00
|
|
|
};
|
|
|
|
|
|
2018-09-13 22:48:38 +02:00
|
|
|
home-manager.users.kfm = {
|
2018-09-11 18:16:33 +02:00
|
|
|
programs.git = {
|
|
|
|
|
enable = true;
|
2018-09-19 16:46:12 +02:00
|
|
|
userName = config.constants.user.name;
|
|
|
|
|
userEmail = config.constants.user.email;
|
2018-09-11 18:16:33 +02:00
|
|
|
aliases = {
|
|
|
|
|
br = "branch";
|
|
|
|
|
co = "checkout";
|
|
|
|
|
ci = "commit";
|
2019-02-13 14:33:55 +01:00
|
|
|
cm = "commit -m";
|
2018-09-11 18:16:33 +02:00
|
|
|
amend = "commit --amend";
|
|
|
|
|
st = "status";
|
|
|
|
|
unstage = "reset HEAD --";
|
2019-02-13 14:33:55 +01:00
|
|
|
diffs = "diff --staged";
|
2018-09-11 18:16:33 +02:00
|
|
|
last = "log -1 HEAD";
|
2019-02-13 14:33:55 +01:00
|
|
|
logs = "log --pretty=oneline";
|
2018-12-30 14:34:39 +01:00
|
|
|
pull-all = "!pull-all"; # from dot/scripts.nix
|
2018-09-11 18:16:33 +02:00
|
|
|
};
|
2018-09-19 16:46:12 +02:00
|
|
|
ignores = config.constants.ignore;
|
2018-09-11 18:16:33 +02:00
|
|
|
};
|
|
|
|
|
|
2019-03-12 19:20:44 +01:00
|
|
|
xdg.configFile = {
|
|
|
|
|
"mpv/input.conf".text = import dot/mpv.nix;
|
|
|
|
|
"htop/htoprc".text = builtins.readFile dot/htoprc;
|
|
|
|
|
"zathura/zathurarc".text = "set selection-clipboard clipboard";
|
2019-04-02 23:24:31 +02:00
|
|
|
"pycodestyle".text = ''
|
|
|
|
|
[pycodestyle]
|
|
|
|
|
max-line-length = 110
|
|
|
|
|
'';
|
2019-03-12 19:20:44 +01:00
|
|
|
};
|
|
|
|
|
|
2018-09-11 18:16:33 +02:00
|
|
|
home.file = {
|
2019-01-30 13:16:49 +01:00
|
|
|
".ghc/ghci.conf".text = import dot/ghci.nix { inherit pkgs; };
|
|
|
|
|
".stack/config.yaml".text = import dot/stack.nix { user = config.constants.user; };
|
2018-09-13 22:48:38 +02:00
|
|
|
".zshrc".text = "# nothing to see here";
|
2018-09-11 18:16:33 +02:00
|
|
|
};
|
|
|
|
|
};
|
2018-09-05 22:21:12 +02:00
|
|
|
}
|