From c0c761e740e85bf0b73d552ec0f7c5d74903dba3 Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Mon, 9 Sep 2024 02:15:44 +0300 Subject: [PATCH] modules/editors: add jetbrains-idea container --- modules/nixos/programs/default.nix | 1 + modules/nixos/programs/editors/default.nix | 5 ++ .../nixos/programs/editors/jetbrains-idea.nix | 48 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 modules/nixos/programs/editors/default.nix create mode 100644 modules/nixos/programs/editors/jetbrains-idea.nix diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix index 50987de..d084de3 100644 --- a/modules/nixos/programs/default.nix +++ b/modules/nixos/programs/default.nix @@ -5,5 +5,6 @@ ./pass.nix ./browsers ./communication + ./editors ]; } diff --git a/modules/nixos/programs/editors/default.nix b/modules/nixos/programs/editors/default.nix new file mode 100644 index 0000000..e579376 --- /dev/null +++ b/modules/nixos/programs/editors/default.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + imports = [ ./jetbrains-idea.nix ]; +} diff --git a/modules/nixos/programs/editors/jetbrains-idea.nix b/modules/nixos/programs/editors/jetbrains-idea.nix new file mode 100644 index 0000000..273406c --- /dev/null +++ b/modules/nixos/programs/editors/jetbrains-idea.nix @@ -0,0 +1,48 @@ +{ config, pkgs, lib, ... }: + + +let + cfg = config.local.programs.editors.jetbrains-idea; +in +{ + options.local.programs.editors.jetbrains-idea = with lib; { + enable = mkEnableOption "jetbrains idea-community"; + package = mkPackageOption pkgs.jetbrains "idea-community" { }; + }; + + config = lib.mkIf cfg.enable { + containers.jetbrains-idea = { + autoStart = true; + ephemeral = true; + + bindMounts = { + "/tmp/.X11-unix" = { }; + "/home/john/projects" = { + isReadOnly = false; + hostPath = "/home/jan/containers/jetbrains-idea/projects"; + }; + }; + + config = { pkgs, ... }: { + system.stateVersion = "23.11"; + + fonts = { + inherit (config.fonts) enableDefaultPackages packages; + fontconfig = { inherit (config.fonts.fontconfig) defaultFonts; }; + }; + + users.users.john = { + isNormalUser = true; + home = "/home/john"; + password = "hello"; + extraGroups = [ "pulse-access" ]; + packages = [ cfg.package ]; + }; + + environment.sessionVariables = { + DISPLAY = ":0"; + }; + }; + }; + }; +}