modularise the stuff

This commit is contained in:
tristan 2023-05-08 16:59:12 +01:00
parent 011009d22f
commit d1bcbc0fde
16 changed files with 159 additions and 61 deletions

25
lib/modules/dev.nix Normal file
View file

@ -0,0 +1,25 @@
{ user, ... }: { lib, pkgs, config, ... }:
with lib;
let
cfg = config.roles.dev;
in
{
options.roles = {
dev = {
enable = mkEnableOption "editor";
};
};
config = mkIf cfg.enable {
programs.editor.enable = true;
roles.git.enable = true;
programs.terminal.enable = true;
home-manager.users.${user}.imports = [{
home.packages = (with pkgs; [
insomnia
dbeaver
ansible
]);
}];
};
}

View file

@ -13,6 +13,7 @@ let
", " + display.position +
", " + toString display.scaling +
(if ( display.wallpaper != "" ) then ''
exec-once = ${pkgs.swaybg}/bin/swaybg -o ${display.name} -i ${display.wallpaper} &
'' else "");

View file

@ -5,14 +5,13 @@ let
pkg = editor.package;
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
menu = "wofi --show dmenu";
menu = config.programs.menu.package+config.programs.menu.dmenuCommand;
in
{
options.programs = {
editor = {
enable = mkEnableOption "editor";
package = mkPackageOption pkgs "vscodium" {
default = pkgs.vscodium;
example = "pkgs.vscode";
};
neovim = mkEnableOption "neovim mode";
@ -37,7 +36,7 @@ in
clone-repo)
url=$(wl-paste)
${termcmd} -e -- git clone "$url" ;;
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.pname} $repo ;;
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo ;;
esac
'';
install = false;

View file

@ -2,6 +2,8 @@
with lib;
let
cfg = config.roles.email;
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
in
{
options.roles = {
@ -18,6 +20,18 @@ in
};
config = mkIf cfg.enable {
programs.scripts = [
{
name = "email";
text = ''
${termcmd} -e aerc
'';
install = false;
hotkeys = [{key = "E";}];
}
];
home-manager.users.${user}.imports = [{
programs.git = {
userName = userName;

30
lib/modules/gamer.nix Normal file
View file

@ -0,0 +1,30 @@
{ user }: { lib, pkgs, config, ... }:
with lib;
{
options.roles.gamer = {
enable = mkEnableOption "gamer packages";
};
config = mkIf config.roles.gamer.enable {
home-manager.users.${user}.imports = [{
home.packages = with pkgs; [
airshipper
minetest
];
}];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
# gamer time
"steam"
"steam-run"
"steam-original"
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
};
}

View file

@ -28,6 +28,9 @@ in
gaps_out = 10
border_size = 3
}
# so hard to reach X on a laptop
bind = SUPER_SHIFT, Q, killactive,
'';
};
}];

33
lib/modules/personal.nix Normal file
View file

@ -0,0 +1,33 @@
{ user }: { lib, pkgs, config, ... }:
with lib;
{
options.roles.personal = {
enable = mkEnableOption "personal packages";
};
config = mkIf config.roles.personal.enable {
roles.email = {
enable = true;
email = "tristan@tristans.cloud";
terminal = true;
};
roles.dev.enable = true;
roles.gamer.enable = true;
home-manager.users.${user}.imports = [{
services.nextcloud-client.enable = true;
home.packages = with pkgs; [
nextcloud-client
godot_4
ardour
blender
musescore
handbrake
monero-gui
xmrig
];
}];
};
}

View file

@ -15,7 +15,7 @@ in
config = mkIf cfg.enable {
home-manager.users.${user}.imports = [{
programs.foot = mkIf cfg.package == pkgs.foot {
programs.foot = mkIf ( cfg.package == pkgs.foot ) {
enable = true;
server.enable = true;
};

View file

@ -13,6 +13,13 @@ with lib;
terminal = false;
};
roles.dev.enable = true;
programs.editor = {
enable = true;
package = pkgs.vscode;
};
home-manager.users.${user}.imports = [{
home.packages = with pkgs; [
@ -22,7 +29,6 @@ with lib;
docker-compose
minikube
kubernetes-helm
ansible
thunderbird
(import ../mkapp.nix "slack" {
inherit pkgs;
@ -65,11 +71,6 @@ with lib;
}];
programs.editor = {
enable = true;
package = pkgs.vscode;
};
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
# nonfree vscode required for dev containers
"vscode"