Files
dotfiles/nixos/code.nix

152 lines
2.6 KiB
Nix

{
pkgs,
config,
inputs,
lib,
makeEnable,
...
}:
let
codexDesktop =
inputs.codex-desktop-linux.packages.${pkgs.stdenv.hostPlatform.system}."codex-desktop-computer-use-ui-remote-mobile-control";
in
makeEnable config "myModules.code" true {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
hardware.uinput.enable = lib.mkIf config.myModules.desktop.enable true;
programs.ydotool = lib.mkIf config.myModules.desktop.enable {
enable = true;
group = "input";
};
home-manager.sharedModules = lib.mkIf config.myModules.desktop.enable [
{
home.sessionVariables.YDOTOOL_SOCKET = "/run/ydotoold/socket";
systemd.user.sessionVariables.YDOTOOL_SOCKET = "/run/ydotoold/socket";
xdg.configFile."codex-desktop/settings.json".text =
(builtins.toJSON {
"codex-linux-computer-use-ui-enabled" = true;
})
+ "\n";
}
];
home-manager.users.imalison = lib.mkIf config.myModules.desktop.enable {
programs.codex = {
enable = true;
package = pkgs.codex;
remoteControl = {
enable = true;
package = pkgs.codex;
extraPackages = with pkgs; [
bash
coreutils
findutils
git
gnugrep
gnused
nix
openssh
];
listen = "unix://";
};
};
};
environment.systemPackages = with pkgs;
[
# LLM Tools
antigravity
claude-code
codex
codexDesktop
gemini-cli
happy-coder
opencode
t3code
# MCP
github-mcp-server
gitea-mcp-server
gws
playwright-mcp
playwright-cli
# C
clang
# Haskell
cabal-install
cabal2nix
ghc
haskellPackages.hpack
haskellPackages.hasktags
haskellPackages.hoogle
# Scala
sbt
scala
# Node
nodejs
yarn
prettier
# Typescript
typescript
typescript-language-server
# golang
go
# Rust
rustup
cargo-sweep
# Clojure
boot
leiningen
# Ruby
ruby
# python
black
poetry
uv
# kotlin
kotlin
kotlin-language-server
# dhall
haskellPackages.dhall
haskellPackages.dhall-json
# misc
perf-tools
protobuf
# nix
nixd
nil
alejandra
]
++ (
if pkgs.stdenv.hostPlatform.system == "x86_64-linux"
then
with pkgs; [
# purescript
purescript
# Broken
# spago
]
else []
);
}