nix/lib/modules/work.nix
2023-06-05 15:01:34 +01:00

100 lines
2.4 KiB
Nix

{ user }: { lib, pkgs, config, ... }:
with lib;
{
options.roles.work = {
enable = mkEnableOption "work packages";
};
config = mkIf config.roles.work.enable {
roles.email = {
enable = true;
email = "tristan.beedell@cryoserver.com";
terminal = false;
};
roles.dev.enable = true;
programs.editor = {
enable = true;
package = pkgs.vscode;
};
home-manager.users.${user}.imports = [{
home.packages = with pkgs; [
onedrive
kubectl
awscli2
docker-compose
minikube
kubernetes-helm
thunderbird
(import ../mkapp.nix "slack" {
inherit pkgs;
desktopName = "Slack";
app-id = "mpagibdhafmlkgpemeicgogjnhclenoc";
browser = "${brave}/opt/brave.com/brave/brave-browser";
})
(import ../mkapp.nix "teams" {
inherit pkgs;
browser = "${brave}/opt/brave.com/brave/brave-browser";
app-id = "cifhbcnohmdccbgoicgdjpfamggdegmo";
desktopName = "Microsoft Teams";
})
(pkgs.writeShellScriptBin "my-editor" ''
${pkgs.vscode}/bin/code --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations $@
'')
];
gtk.gtk3.bookmarks = [
"file:///home/tristan/OneDrive/Documents/ OneDrive"
];
programs.vscode = {
extensions = with pkgs; [
vscode-extensions.ms-azuretools.vscode-docker
];
userSettings = {
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
};
};
wayland.windowManager.hyprland = {
extraConfig = ''
# === WORK MODULE ===
bind = SUPER, E, focuswindow, thunderbird
bind = SUPER, t, focuswindow, brave-cifhbcnohmdccbgoicgdjpfamggdegmo-Profile_2
'';
};
}];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
# nonfree vscode required for dev containers
"vscode"
];
networking = {
networkmanager = {
plugins = [ pkgs.networkmanager-openvpn ];
};
};
users.users.tristan.extraGroups = ["docker"];
virtualisation.docker = {
enable = true;
storageDriver = "btrfs";
rootless = {
enable = false;
setSocketVariable = true;
daemon.settings = {
"userns-remap"= "default";
};
};
};
};
}