/* -------------------------------------------------------------------------- */
/* Programming/Development Environment config */
{ lib, config, options, pkgs, ... }:
with lib;
let cfg = config.modules.desktop.code;
in {
options.modules.desktop.code = {
enable = mkEnableOption false;
heavyweight = mkEnableOption false;
};
config = mkIf cfg.enable {
programs.nix-ld = {
enable = true;
libraries = with pkgs; [
stdenv.cc.cc.lib
];
# ? Android Debug Bridge, used to connect to and debug Android devices.
programs.adb.enable = true;
environment.systemPackages = with pkgs; [
/* ---------------------------- Language support ---------------------------- */
# Rust
rustc rustup
# Python
python3
# Lua
lua
# C/C++
gdb
lld
libcxx
glibc
gcc
libgcc
gnumake
cmake
extra-cmake-modules
# JS
nodejs_22
/* --------------------------------- Editors -------------------------------- */
# ? FHS VScode is a variant that lets you manually install extensions.
# ? Otherwise, you'd specify extensions here.
vscode.fhs
vim
jetbrains.idea-ultimate
jetbrains.clion
jetbrains.pycharm-professional
jetbrains.datagrip
jetbrains.webstorm
android-studio
/* ----------------------------- Version Control ---------------------------- */
git
github-desktop
/* ----------------------------- Virtualization ----------------------------- */
distrobox
}