{ 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"; }; }; }; }; }