os/users/nrd/default.nix

200 lines
4.4 KiB
Nix
Raw Normal View History

2019-12-16 04:22:09 +00:00
{ config, lib, pkgs, ... }:
2019-12-15 07:06:28 +00:00
let
2019-12-15 09:37:45 +00:00
inherit (builtins)
toFile
2019-12-16 04:22:09 +00:00
readFile
2019-12-15 09:37:45 +00:00
;
2019-12-15 07:06:28 +00:00
inherit (lib)
fileContents
2019-12-15 10:07:35 +00:00
mkForce
2019-12-15 07:06:28 +00:00
;
2019-12-15 08:59:33 +00:00
2019-12-15 09:37:45 +00:00
2019-12-15 08:59:33 +00:00
name = "Timothy DeHerrera";
2019-12-15 07:06:28 +00:00
in
{
imports = [
2019-12-23 05:01:28 +00:00
../../profiles/graphical
2019-12-15 07:06:28 +00:00
];
2019-12-16 08:53:23 +00:00
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
2019-12-16 04:22:09 +00:00
};
2019-12-16 08:53:23 +00:00
environment.systemPackages = with pkgs; [
2019-12-18 06:33:06 +00:00
nrd-logo
2019-12-16 08:53:23 +00:00
pinentry_gnome
];
2019-12-15 08:59:33 +00:00
home-manager.users.nrd = {
2019-12-15 10:07:35 +00:00
home = {
packages = mkForce [];
file = {
2019-12-18 06:33:06 +00:00
".ec2-keys".source = ../../secrets/ec2;
".cargo/credentials".source = ../../secrets/cargo;
".zshrc".text = "#";
2019-12-15 10:07:35 +00:00
};
};
2019-12-15 08:59:33 +00:00
2019-12-17 23:26:01 +00:00
programs.alacritty = {
enable = true;
settings = {
env.TERM = "xterm-256color";
window.decorations = "full";
tabspaces = 2;
font.size = 9.0;
cursor.style = "Beam";
# snazzy theme
colors = {
# Default colors
primary = {
background = "0x282a36";
foreground = "0xeff0eb";
};
# Normal colors
normal = {
black = "0x282a36";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
# Bright colors
bright = {
black = "0x686868";
red = "0xff5c57";
green = "0x5af78e";
yellow = "0xf3f99d";
blue = "0x57c7ff";
magenta = "0xff6ac1";
cyan = "0x9aedfe";
white = "0xf1f1f0";
};
};
};
};
2019-12-16 07:54:46 +00:00
programs.mpv = {
enable = true;
config = {
ytdl-format = "bestvideo[height<=?1080]+bestaudio/best";
2019-12-18 01:53:29 +00:00
hwdec = "auto";
vo = "gpu";
2019-12-16 07:54:46 +00:00
};
};
2019-12-15 08:59:33 +00:00
programs.git = {
enable = true;
aliases = {
a = "add -p";
co = "checkout";
cob = "checkout -b";
f = "fetch -p";
c = "commit";
p = "push";
ba = "branch -a";
bd = "branch -d";
bD = "branch -D";
2019-12-15 10:07:35 +00:00
d = "diff";
2019-12-15 08:59:33 +00:00
dc = "diff --cached";
2019-12-15 09:46:08 +00:00
ds = "diff --staged";
2019-12-17 23:00:59 +00:00
r = "restore";
rs = "restore --staged";
2019-12-15 08:59:33 +00:00
st = "status -sb";
# logging
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'";
tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative";
rank = "shortlog -sn --no-merges";
# delete merged branches
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d";
};
userName = name;
userEmail = "tim.deh@pm.me";
signing = {
key = "8985725DB5B0C122";
signByDefault = true;
};
};
2019-12-15 09:15:12 +00:00
2019-12-15 09:37:45 +00:00
programs.ssh = {
enable = true;
hashKnownHosts = true;
matchBlocks = let
githubKey = toFile "github"
2019-12-18 06:33:06 +00:00
(readFile ../../secrets/github);
2019-12-15 09:37:45 +00:00
gitlabKey = toFile "gitlab"
2019-12-18 06:33:06 +00:00
(readFile ../../secrets/gitlab);
2019-12-15 09:37:45 +00:00
in
{
github = {
host = "github.com";
identityFile = githubKey;
extraOptions = {
AddKeysToAgent = "yes";
};
};
gitlab = {
host = "gitlab.com";
identityFile = gitlabKey;
extraOptions = {
AddKeysToAgent = "yes";
};
};
"gitlab.company" = {
host = "gitlab.company.com";
identityFile = gitlabKey;
extraOptions = {
AddKeysToAgent = "yes";
};
};
};
};
2019-12-15 08:59:33 +00:00
};
2019-12-19 20:03:15 +00:00
users.groups.media.members = [ "nrd" ];
2019-12-15 07:06:28 +00:00
users.users.nrd = {
uid = 1000;
2019-12-15 08:59:33 +00:00
description = name;
2019-12-15 07:06:28 +00:00
isNormalUser = true;
2019-12-18 06:33:06 +00:00
hashedPassword = fileContents ../../secrets/nrd;
2019-12-15 07:06:28 +00:00
extraGroups = [
"wheel"
"input"
"networkmanager"
"adbusers"
];
};
2019-12-18 06:33:06 +00:00
nixpkgs.overlays = let
overlay = self: super: {
nrd-logo = super.stdenv.mkDerivation {
name = "nrdxp-logo";
src = ./logo.png;
dontUnpack = true;
installPhase = ''
mkdir -p $out/share/sddm/faces
cp $src $out/share/sddm/faces/nrd.face.icon
'';
};
};
in
[ overlay ];
2019-12-15 07:06:28 +00:00
}