From b25dbd0ddf108f83c2ceab5a9e585d1df6817042 Mon Sep 17 00:00:00 2001 From: pompydev Date: Tue, 3 Jun 2025 15:55:30 +0900 Subject: [PATCH] add devenv --- .envrc | 5 ++ .gitignore | 3 + .vscode/extensions.json | 9 ++- .vscode/settings.json | 29 ++++++++- README.md | 5 +- devenv.lock | 138 ++++++++++++++++++++++++++++++++++++++++ devenv.nix | 17 +++++ devenv.yaml | 10 +++ 8 files changed, 210 insertions(+), 6 deletions(-) create mode 100644 .envrc create mode 100644 devenv.lock create mode 100644 devenv.nix create mode 100644 devenv.yaml diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..30da14f --- /dev/null +++ b/.envrc @@ -0,0 +1,5 @@ +export DIRENV_WARN_TIMEOUT=20s + +eval "$(devenv direnvrc)" + +use devenv diff --git a/.gitignore b/.gitignore index 2e4439c..f9330f7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ __pycache__/ *.osk .mypy_cache/ + +.devenv* +.direnv diff --git a/.vscode/extensions.json b/.vscode/extensions.json index aaedd29..38a4345 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,10 @@ { - "recommendations": ["esbenp.prettier-vscode", "ms-python.black-formatter"] + "recommendations": [ + "esbenp.prettier-vscode", + "jnoortheen.nix-ide", + "ms-python.black-formatter", + "mkhl.direnv", + "streetsidesoftware.code-spell-checker", + "ms-python.python" + ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 35bfea4..8473e59 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,23 +1,46 @@ { "cSpell.words": [ "approachcircle", + "cachix", "chdir", "developomp", + "devenv", + "DIRENV", + "direnvrc", "flyingtuna", "followpoint", "followpoints", + "forgejo", "hitcircle", "hitcircles", "lazer", "minimalistic", "mypy", + "nixd", + "nixfmt", + "nixos", + "nixpacks", + "nixpkgs", + "pkgs", "scoreentry", "svgs", - "vaxei" + "vaxei", + "venv" ], "editor.formatOnSave": true, + "nix.formatterPath": "nixfmt", + "nix.enableLanguageServer": true, + "nix.serverPath": "nixd", + "[nix]": { + "editor.defaultFormatter": "jnoortheen.nix-ide" + }, + + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, @@ -27,7 +50,7 @@ "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, - "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter" + "[yaml]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" } } diff --git a/README.md b/README.md index 7198c92..d04785d 100644 --- a/README.md +++ b/README.md @@ -22,11 +22,12 @@ My custom skin for the game [osu! (lazer)](https://github.com/ppy/osu) based on To generate a `.osk` osu skin file, run the following commands. -1. Install dependencies +1. [Setup devenv](https://devenv.sh/getting-started/) +2. Install dependencies ```bash pip install -r requirements.txt ``` -2. Build skin +3. Build skin ```bash python src ``` diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..36c2cb1 --- /dev/null +++ b/devenv.lock @@ -0,0 +1,138 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1748882301, + "owner": "cachix", + "repo": "devenv", + "rev": "4458e94b6f09a5542c28702dbac181cccec79d27", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747372754, + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1748302001, + "ref": "refs/heads/master", + "rev": "d9dd002a294e676c49e27eae9166f73bd2ae5684", + "revCount": 806557, + "type": "git", + "url": "https://git.pompy.dev/pomp/nixpkgs" + }, + "original": { + "type": "git", + "url": "https://git.pompy.dev/pomp/nixpkgs" + } + }, + "nixpkgs-python": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746223523, + "owner": "cachix", + "repo": "nixpkgs-python", + "rev": "3f5f1dbe0122a1741907aa5ab76f7337ffcd2ccb", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "nixpkgs-python", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs", + "nixpkgs-python": "nixpkgs-python", + "pre-commit-hooks": [ + "git-hooks" + ] + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..9d64584 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: + +{ + packages = with pkgs; [ + nixd + nixfmt-rfc-style + ]; + + languages = { + # https://devenv.sh/supported-languages/python/ + python = { + enable = true; + venv.enable = true; + venv.requirements = ./requirements.txt; + }; + }; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..720a507 --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,10 @@ +# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json +inputs: + nixpkgs: + url: git+https://git.pompy.dev/pomp/nixpkgs + nixpkgs-python: + url: github:cachix/nixpkgs-python + inputs: + nixpkgs: + follows: nixpkgs +allowUnfree: true