modularise the stuff
This commit is contained in:
parent
011009d22f
commit
d1bcbc0fde
16 changed files with 159 additions and 61 deletions
25
lib/modules/dev.nix
Normal file
25
lib/modules/dev.nix
Normal 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
|
||||
]);
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
@ -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 "");
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
30
lib/modules/gamer.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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
33
lib/modules/personal.nix
Normal 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
|
||||
];
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue