SkillAgentSearch skills...

Imguin

Dear Imgui / CImGui, ImPlot/CImPlot wrapper for Nim language

Install / Use

/learn @dinau/Imguin

README

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->

ImGuin

Updated to latest Dear ImGui / CImGui version: : v1.92.6 dock (2026/02)

This project is Dear ImGui wrapper library for Nim[^notice].

[^notice]: It may be better to use the mainstream project nimgl/imgui (ImGui v1.85)
,updated project nimgl-imgui (ImGui v1.89.9) ,sub project nim_implot and test project nimgl_test,
or https://github.com/daniel-j/nimgl-imgui (ImGui v1.91.1)

WASM demo (WIP)


glfw_opengl3_wasm

Screenshot


Note: First see examples project ImGuin_examples

tests folder

tglfw_opengl3.nim

alt

Dear ImGui + Naylib(Raylib) + rlImgui example

rlimgui_basic

alt

Prerequisites


  • Nim-2.2.8 or later

  • Windows11 or later
    MSys2/MinGW command line tools (Unix tools), make, cp, rm, git, ...etc

    pacman -S mingw-w64-ucrt-x86_64-glfw make
    
  • Linux: Ubuntu / Debian families

    $ sudo apt install gcc g++ make git curl xz-utils
    $ sudo apt install lib{opengl-dev,gl1-mesa-dev,glfw3-dev,xcursor-dev,xinerama-dev,xi-dev,sdl2-dev} 
    
    • Install nim

      curl https://nim-lang.org/choosenim/init.sh -sSf | sh
      

      You must now ensure that the Nimble bin dir is in your PATH. Place the following line in the ~/.profile or ~/.bashrc file. export PATH=/home/username/.nimble/bin:$PATH

Install


nimble refresh
nimble uninstall imguin  # Remove old versions if exists. 
nimble install imguin

Available libraries


Library name / C lang. wrapper

Additional examples

Frontends and Backends


| Frontends | Backends | | --- | ------------------- | | GLFW | OpenGL3, Vulkan(2026/03) | | SDL2 | OpenGL3, sdlrenderer2 | | SDL3 | OpenGL3, sdlrenderer3, sdlgpu3, Vulkan(2026/03) |

[^fed]: Front end

Update / Downgrade Dear ImGui and CImGui by yourself


  • Prerequisite

    1. Windows10 or later Clang/LLVM refer to Futhark installation.

      nimble install futhark
      

      It must exist libclang.a file in the library path (e.g. in c:\llvm\lib).

    2. Linux Debian / Ubuntu families

      sudo apt install  clang-16
      nimble install --passL:"-L/usr/lib/llvm-16/lib" futhark
      

    Important Notice: Confirm Futhark version is v0.15.0 at this time.

    nimble dump futhark
    
  • Update / Downgrade ImGui/CImGui

    1. Compose development folders
      First move to your working folder you like, then

      mkdir imguin_dev
      cd imguin_dev
      git clone https://github.com/dinau/imguin
      cd imguin
      
    2. Clone ImGui/CImGui etc. sources at once forever

      pwd
      imguin
      make clonelibs
      

      Cloned libraries are under ../libs/ folder

    3. Recursively update the sources using git pull or fetch in the each library folder,
      ../libs/cimgui
      ../libs/cimguizmo
      ../libs/cimnodes
      ../libs/cimplot
      ... snip ...

    4. checkout arbitrary version with git command in the respective folder

    5. Specify your Clang include path to ClangIncludePath in imguin/src/imguin/cimgui.nim.

    6. Generate the definition file uisng Futhark,

      pwd
      imguin
      make gen
      
    7. Install updated files
      Properly edit the version info etc in imguin.nimble file, then

      pwd
      imguin
      nimble uninstall imguin  # Remove old versions if it exists. 
      nimble install 
      

      That's all.
      Repeat from 3. if you'd like to update or downgrade to other version.

  • Confirmed version
    Windows OS is all OK.

    | ImGui/CImGui Ver. | ImGuin Ver. | Date | Linux Debian Family (3) | Notice | | :--------------: | --------- | :----: | :---: | --- | | 1.92.6 dock | 1.92.6.1 | 2026/03 | OK | Breaking changed impl_glfw.nim | | 1.92.6 dock | 1.92.6.0 | 2026/02 | OK | | 1.92.4 dock | 1.92.4.0 | 2025/11 | OK | | 1.92.3 dock | 1.92.3.0 | 2025/09 | OK | | 1.92.2b dock | 1.92.2.1 | 2025/09 | OK | | 1.92.2b dock | 1.92.2.0 | 2025/08 | OK | | 1.92.0 dock | 1.92.0.2 | 2025/08 | OK | | 1.92.0 dock | 1.92.0.1 | 2025/07 | OK | | 1.91.9b dock | 1.91.9.4 | 2025/06 | OK | | 1.91.8dock | 1.91.8.2 | 2025/03 | OK | | 1.91.6dock | 1.91.6.15 | 2025/01 | (4) | | 1.91.4dock | 1.91.4.2 | 2024/12 | OK | | 1.91.3dock | 1.91.3.1 | 2024/10 | (4) | | 1.91.2dock | 1.91.2.0 | 2024/10 | (4) | | 1.91.1dock | 1.91.1.2 | 2024/09 | Except ImNodes example | | 1.91.0dock | 1.91.0.0 | 2024/08 | (4) | | 1.90.4dock | 1.90.4.2 | 2024/02 | Use nim-2.0.2 | | 1.89.9dock | 1.89.9.8 | 2023/12 | OK (1)(2) |

    (1) Except imnodes and SDL2 example.
    (2) Works well only if it is compiled debug mode.
    (3) Dedian / Ubuntu familiy.
    (4) Doesn't check, but probably will work well.

TODO


  1. ~~Whether can it use cimgui.dll ? (Now it can only be static link)~~ Closed. Only be static link.
  2. ~~Easier compilation for SDL2 app~~. (2024/09) Done.
  3. ~~Added: ImNodes/CImNodes~~ (2023/10) Done
  4. ~~Unfortunately ImGui 1.89.7 dosn't work well at this moment.(2023/07)~~ Done. (2023/08)
  5. ~~Whether can it do nimble install imguin ?~~ Done (2023/09) (#Issue 13)
  6. ~~Add Font Awesome (Icon Font) demo.~~ Done (2023/04).
  7. ~~Can it compile with MSVC (--cc:vcc) ?~~ Done. Except SDL2 demo. (2023/03), TODO (2024/09)
  8. ~~Can it compile with Clang (--cc:clang) ?~~ Done. (2023/03)
  9. ~~Add SDL2 example.~~ Done. examples/sdl2_opengl3 (2023/03)
  • First step is done. (2023/03)

My tools version


Windows11 (main)

  • Nim Compiler Version 2.2.6
  • GCC (Rev1, Built by MSYS2 project) 15.2.0
  • Visual Studio C++/C 2022
  • git version 2.46.0.windows.1
  • Make: GNU Make 4.4.1
  • MSys2/MinGW tools

Linux Debian 13

  • Nim Compiler Version 2.2.6
  • gcc 14.2.0
  • make: GNU Make 4.4.1

Other link


  • File

Related Skills

View on GitHub
GitHub Stars60
CategoryDevelopment
Updated2d ago
Forks6

Languages

Nim

Security Score

100/100

Audited on Mar 26, 2026

No findings