diff --git a/flake.lock b/flake.lock index be8d5f1..737f10c 100644 --- a/flake.lock +++ b/flake.lock @@ -29,11 +29,11 @@ ] }, "locked": { - "lastModified": 1749147380, - "narHash": "sha256-UvCI5f1qD9l1fCQkoG/kJI0yNjDQIiJaN7gkve8fmII=", + "lastModified": 1749200714, + "narHash": "sha256-W8KiJIrVwmf43JOPbbTu5lzq+cmdtRqaNbOsZigjioY=", "owner": "nix-community", "repo": "disko", - "rev": "d74db625a5cf3f46cf8fa545d6ef10bd3463ea07", + "rev": "17d08c65c241b1d65b3ddf79e3fac1ddc870b0f6", "type": "github" }, "original": { @@ -89,11 +89,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1749143968, - "narHash": "sha256-PScENt6CycBQ/RKwDuHNcyc+dd8fnN06jffoI56uv3s=", + "lastModified": 1749232178, + "narHash": "sha256-pekC+SuqoHkoYPuWhC1aADCIP0cD3tvemu4WOF/JMUY=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "ff324514304d770d533cfbf9aea1b68d68b46e48", + "rev": "f6850858f78e2b6328f6e8bb7bf9df10dd0b7973", "type": "github" }, "original": { @@ -409,11 +409,11 @@ ] }, "locked": { - "lastModified": 1749131129, - "narHash": "sha256-tJ+93i7N4QttM75bE8T09LlSU3Mv6Dfi9WaVBvlWilo=", + "lastModified": 1749221014, + "narHash": "sha256-mqrpuP/lfyDmta5hJWTwWgdF5lwdiubcGs7oRvcTZ2s=", "owner": "nix-community", "repo": "home-manager", - "rev": "13a45ede6c17b5e923dfc18a40a3f646436f4809", + "rev": "96482a538e6103579d254b139759d0536177370b", "type": "github" }, "original": { @@ -459,11 +459,11 @@ ] }, "locked": { - "lastModified": 1743953322, - "narHash": "sha256-prQ5JKopXtzCMX2eT3dXbaVvGmzjMRE2bXStQDdazpM=", + "lastModified": 1749145600, + "narHash": "sha256-v2kY5RDk9oyo1x9m8u83GdklC96xlJ7ka1rrvZoYL78=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "9d7f2687c84c729afbc3b13f7937655570f2978d", + "rev": "80b754e38e836777ad3a9d5d1ffc3491b0332471", "type": "github" }, "original": { @@ -484,11 +484,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1748976320, - "narHash": "sha256-3R4QZ7GeqcBV5lwlFj6qfo1vpNtT8eCJ60JZ59QmRW4=", + "lastModified": 1749162425, + "narHash": "sha256-8LFke/vOxFOW1t9fJoLmO1r4kA8oXXRe8QKKq/lsPlc=", "owner": "hyprwm", "repo": "hypridle", - "rev": "a282131ac77a239ebd0132b2111fd950e9903665", + "rev": "b2bc15baffb5182051e94787f1342464fc9d241e", "type": "github" }, "original": { @@ -509,11 +509,11 @@ ] }, "locked": { - "lastModified": 1743714874, - "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "type": "github" }, "original": { @@ -538,11 +538,11 @@ ] }, "locked": { - "lastModified": 1747484975, - "narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=", + "lastModified": 1749145882, + "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "163c83b3db48a17c113729c220a60b94596c9291", + "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", "type": "github" }, "original": { @@ -567,11 +567,11 @@ ] }, "locked": { - "lastModified": 1744468525, - "narHash": "sha256-9HySx+EtsbbKlZDlY+naqqOV679VdxP6x6fP3wxDXJk=", + "lastModified": 1749145882, + "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "f1000c54d266e6e4e9d646df0774fac5b8a652df", + "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", "type": "github" }, "original": { @@ -592,11 +592,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1749017651, - "narHash": "sha256-+WLY8tYw2+i3mf/pUI4ecrQjmyhSUIb5cGCCa9ZQDP4=", + "lastModified": 1749162391, + "narHash": "sha256-aCiNnE26qIAxEBP6SRXjLBlIGOB18TViDreoPe96p6Q=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "8455fc8ca6432a72313cd285488333ba5977fbe5", + "rev": "f9d8dfab7ae0aec625e7814e16f626fabec3641b", "type": "github" }, "original": { @@ -617,11 +617,11 @@ ] }, "locked": { - "lastModified": 1748696825, - "narHash": "sha256-miMCjlQGg+C0GiVJy5V8Bn1ysi3LiaN226/BwWcAEQE=", + "lastModified": 1749135356, + "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "f1d0879444e1ed86e3df4ee273b916d651b36f4f", + "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", "type": "github" }, "original": { @@ -642,11 +642,11 @@ ] }, "locked": { - "lastModified": 1743950287, - "narHash": "sha256-/6IAEWyb8gC/NKZElxiHChkouiUOrVYNq9YqG0Pzm4Y=", + "lastModified": 1749135356, + "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "f2dc70e448b994cef627a157ee340135bd68fbc6", + "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", "type": "github" }, "original": { @@ -667,11 +667,11 @@ ] }, "locked": { - "lastModified": 1747584298, - "narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=", + "lastModified": 1749145760, + "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3", + "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", "type": "github" }, "original": { @@ -692,11 +692,11 @@ ] }, "locked": { - "lastModified": 1739870480, - "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=", + "lastModified": 1749145760, + "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b", + "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", "type": "github" }, "original": { @@ -997,11 +997,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1749056381, - "narHash": "sha256-QITcurR19KZlrCngBoCjsFF2BdYsiCG4UqmlrVcLb8Q=", + "lastModified": 1749195551, + "narHash": "sha256-W5GKQHgunda/OP9sbKENBZhMBDNu2QahoIPwnsF6CeM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "029bd66faa180e11262dd1bc2732254c33415f52", + "rev": "4602f7e1d3f197b3cb540d5accf5669121629628", "type": "github" }, "original": { @@ -1763,11 +1763,11 @@ ] }, "locked": { - "lastModified": 1749093358, - "narHash": "sha256-Clx1BzHsSSzIXbnCW9KM3m5gW3SFgemcW9/4XH4epeM=", + "lastModified": 1749227189, + "narHash": "sha256-bToj/0wPCkay4LCDKKRNup9oyt9IwiFyEaCG0ljvlb8=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "d4cf0ac2e860be17036a376ae99b233a115826bc", + "rev": "37608b352c9def5aafad3a819fe02ef120c1cb08", "type": "github" }, "original": { diff --git a/modules/home/desktop.nix b/modules/home/desktop.nix index 622825e..7f4a06c 100644 --- a/modules/home/desktop.nix +++ b/modules/home/desktop.nix @@ -105,6 +105,7 @@ }) turbocase + # nix-config.packages.x86_64-linux.openscad-git openscad-unstable openscad-lsp diff --git a/modules/home/langs.nix b/modules/home/langs.nix index 19199db..90b1832 100644 --- a/modules/home/langs.nix +++ b/modules/home/langs.nix @@ -32,6 +32,11 @@ tree-sitter (tree-sitter.withPlugins (_: tree-sitter.allGrammars)) + clang-tools + cmake + cmake-format + cmake-language-server + yaml-language-server typescript-language-server svelte-language-server diff --git a/modules/system/kanata.nix b/modules/system/kanata.nix index af9fff1..c6eb02b 100644 --- a/modules/system/kanata.nix +++ b/modules/system/kanata.nix @@ -94,7 +94,7 @@ ${shared-alias} @supesc @a @s @d f g h j k l ; ' ret @sp-lsft z x c v b n m , . / @sp-rsft @supesc @controls lalt lctrl @spcnav @spcnav rctrl ralt @controls @hyper @supesc - bspc mlft mrgt del) + mlft mrgt bspc del) (deflayermap (navigation) 1 f1 diff --git a/packages/openscad-git.nix b/packages/openscad-git.nix new file mode 100644 index 0000000..351ff2c --- /dev/null +++ b/packages/openscad-git.nix @@ -0,0 +1,158 @@ +{ + fetchgit, + lib, + stdenv, + cmake, + bison, + flex, + eigen, + boost, + libGLU, + libGL, + glew, + opencsg, + cgal, + mpfr, + gmp, + glib, + pkg-config, + harfbuzz, + gettext, + freetype, + fontconfig, + double-conversion, + lib3mf, + libzip, + spacenavSupport ? stdenv.hostPlatform.isLinux, + libspnav, + wayland, + wayland-protocols, + wrapGAppsHook3, + cairo, + openscad, + runCommand, + python3, + ghostscript, + tbb, + qt6, + qt6Packages, +}: + +stdenv.mkDerivation rec { + pname = "openscad"; + version = "0-latest"; + + src = fetchgit { + url = "https://github.com/openscad/openscad.git"; + rev = "edbbd86b2a44092fd876ec71e162934d03fdb25c"; + sha256 = "sha256-SuRByBKOiAvEXGjlztvDrJIeh/EdESH727/MJWSHoVA="; + fetchSubmodules = true; + }; + + nativeBuildInputs = [ + bison + flex + pkg-config + gettext + cmake + wrapGAppsHook3 + python3 + ghostscript + qt6.qttools + qt6.wrapQtAppsHook + qt6.qt5compat + qt6.qtmultimedia + qt6.qtbase + qt6Packages.qscintilla + ]; + + buildInputs = + [ + eigen + boost + glew + opencsg + cgal + mpfr + gmp + glib + harfbuzz + lib3mf + libzip + double-conversion + freetype + fontconfig + cairo + tbb + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + libGLU + libGL + wayland + wayland-protocols + ] + ++ lib.optional spacenavSupport libspnav; + + cmakeFlags = + [ + "-DUSE_QT6=ON" + "-DVERSION=${version}" + "-DLIB3MF_INCLUDE_DIR=${lib3mf.dev}/include/lib3mf/Bindings/Cpp" + "-DLIB3MF_LIBRARY=${lib3mf}/lib/lib3mf.so" + ] + ++ lib.optionals spacenavSupport [ + "-DENABLE_SPNAV=ON" + "-DSPNAV_INCLUDE_DIR=${libspnav}/include" + "-DSPNAV_LIBRARY=${libspnav}/lib/libspnav.so" + "-DCMAKE_CXX_STANDARD=17" + ]; + + enableParallelBuilding = true; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/Applications + mv $out/bin/*.app $out/Applications + rmdir $out/bin || true + + mv --target-directory=$out/Applications/OpenSCAD.app/Contents/Resources \ + $out/share/openscad/{examples,color-schemes,locale,libraries,fonts,templates} + + rmdir $out/share/openscad + ''; + + meta = { + description = "3D parametric model compiler"; + longDescription = '' + OpenSCAD is a software for creating solid 3D CAD objects. It is free + software and available for Linux/UNIX, MS Windows and macOS. + + Unlike most free software for creating 3D models (such as the famous + application Blender) it does not focus on the artistic aspects of 3D + modelling but instead on the CAD aspects. Thus it might be the + application you are looking for when you are planning to create 3D models of + machine parts but pretty sure is not what you are looking for when you are more + interested in creating computer-animated movies. + ''; + homepage = "https://openscad.org/"; + license = lib.licenses.gpl2; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ + bjornfor + raskin + ]; + mainProgram = "openscad"; + }; + + passthru.tests = { + lib3mf_support = + runCommand "${pname}-lib3mf-support-test" + { + nativeBuildInputs = [ openscad ]; + } + '' + echo "cube([1, 1, 1]);" | openscad -o cube.3mf - + echo "import(\"cube.3mf\");" | openscad -o cube-import.3mf - + mv cube-import.3mf $out + ''; + }; +}