mirror of
https://github.com/materusPL/nixos-config
synced 2026-04-02 16:17:21 +02:00
156 lines
4.0 KiB
Nix
156 lines
4.0 KiB
Nix
{
|
|
pkgs,
|
|
materusArgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
jsonFormat = pkgs.formats.json { };
|
|
in
|
|
{
|
|
mkk.neovim.enable = true;
|
|
|
|
mkk.dir = config.lib.file.mkOutOfStoreSymlink "/mkk/config";
|
|
programs.git = {
|
|
enable = true;
|
|
lfs.enable = true;
|
|
settings = {
|
|
user.email = "materus@podkos.pl";
|
|
user.name = "materus";
|
|
commit.gpgsign = true;
|
|
gpg.format = "ssh";
|
|
};
|
|
|
|
signing.signByDefault = true;
|
|
signing.key = "/mkk/config/extra-files/ssh/materus.pub";
|
|
};
|
|
home.packages = with pkgs; [
|
|
materusArgs.inputs.nixerus.packages.x86_64-linux.polymc
|
|
neovide
|
|
|
|
curl
|
|
wget
|
|
python3
|
|
|
|
packwiz
|
|
ani-cli
|
|
mpv
|
|
kitty
|
|
|
|
libreoffice-qt6-fresh
|
|
|
|
direnv
|
|
jsonnet
|
|
jsonnet-language-server
|
|
];
|
|
|
|
programs.vscode = {
|
|
enable = true;
|
|
mutableExtensionsDir = true;
|
|
profiles.default.enableExtensionUpdateCheck = true;
|
|
profiles.default.extensions =
|
|
let
|
|
market = (
|
|
materusArgs.inputs.nix-vscode-extensions.extensions."${materusArgs.arch}".forVSCodeVersion
|
|
config.programs.vscode.package.version
|
|
);
|
|
marketNv = (materusArgs.inputs.nix-vscode-extensions.extensions."${materusArgs.arch}");
|
|
in
|
|
with market.vscode-marketplace;
|
|
with marketNv.vscode-marketplace;
|
|
[
|
|
# Python
|
|
#ms-python.vscode-pylance
|
|
ms-python.python
|
|
ms-python.debugpy
|
|
ms-python.vscode-python-envs
|
|
|
|
# Git
|
|
eamodio.gitlens
|
|
donjayamanne.githistory
|
|
waderyan.gitblame
|
|
codezombiech.gitignore
|
|
|
|
# Lua
|
|
sumneko.lua
|
|
|
|
# VSCode
|
|
kerrickstaley.layered-settings
|
|
mkhl.direnv
|
|
betterthantomorrow.joyride
|
|
dracula-theme.theme-dracula
|
|
|
|
# Jsonnet
|
|
grafana.vscode-jsonnet
|
|
|
|
# Nix
|
|
jnoortheen.nix-ide
|
|
];
|
|
package = (
|
|
pkgs.vscodium.fhsWithPackages (
|
|
ps: with ps; [
|
|
nixfmt-rfc-style
|
|
nixd
|
|
direnv
|
|
jsonnet
|
|
jsonnet-language-server
|
|
]
|
|
)
|
|
);
|
|
};
|
|
|
|
xdg.configFile."VSCodium/User/settings.nix.jsonnet".enable = false;
|
|
home.activation.mutableFileGeneration =
|
|
let
|
|
source = jsonFormat.generate "settings.nix" {
|
|
|
|
"window.dialogStyle" = "custom";
|
|
"window.titleBarStyle" = "custom";
|
|
"workbench.colorTheme" = "Dracula Theme";
|
|
"editor.fontFamily" = "'Hack Nerd Font', 'monospace', monospace";
|
|
|
|
"direnv.path.executable" = "${pkgs.direnv}/bin/direnv";
|
|
|
|
"typescript.tsserver.maxTsServerMemory" = 1024 * 8;
|
|
"typescript.tsserver.nodePath" = "${pkgs.nodejs}/bin/node";
|
|
|
|
"nix.enableLanguageServer" = true;
|
|
"nix.formatterPath" = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
|
|
"nix.serverPath" = "${pkgs.nixd}/bin/nixd";
|
|
"nix.serverSettings" = {
|
|
|
|
"nixd" = {
|
|
"nixpkgs" = {
|
|
"expr" = "import (builtins.getFlake \"/mkk/config\").inputs.nixpkgs { }";
|
|
};
|
|
"formatting" = {
|
|
"command" = [
|
|
"nixfmt"
|
|
];
|
|
};
|
|
"options" = {
|
|
"nixos" = {
|
|
"expr" = "(builtins.getFlake (builtins.toString \"/mkk/config\" )).nixosConfigurations.materusPC.options";
|
|
};
|
|
"home-manager" = {
|
|
"expr" = "(builtins.getFlake (builtins.toString \"/mkk/config\")).homeConfigurations.materus.options";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
target = config.xdg.configFile."VSCodium/User/settings.nix.jsonnet".target;
|
|
command = ''
|
|
echo "Copying mutable home files for $HOME"
|
|
$VERBOSE_ECHO "${source} -> ${target}"
|
|
$DRY_RUN_CMD cp --remove-destination --no-preserve=mode ${source} ${target}
|
|
'';
|
|
in
|
|
(lib.hm.dag.entryAfter [ "linkGeneration" ] command);
|
|
|
|
xdg.dataFile."java-runtimes/graalvm-oracle-17".source = pkgs.graalvmPackages.graalvm-oracle_17;
|
|
xdg.dataFile."java-runtimes/graalvm-oracle-latest".source = pkgs.graalvmPackages.graalvm-oracle;
|
|
xdg.dataFile."java-runtimes/openjdk21".source = pkgs.jdk21;
|
|
}
|