genieos

Too awesome procs to be included in nimrod.os module

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:23

Installation

nimble install genieos
choosenim install genieos
git clone https://github.com/Araq/genieos/

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
genieos - - - - - - -

Source

Repository https://github.com/Araq/genieos/
Homepage https://github.com/Araq/genieos/
Registry Source nimble_official

README

================== Nim genieos module ==================

Nim <http://nim-lang.org> provides the os module <http://nim-lang.org/os.html> with OS related procs to manage files among other things. But this is really just basic POSIX stuff, and nowadays OSes have things like recycle bins and speakers to play sounds. However, these kind of procs are not very cross platform and some people wouldn't like them in the base os module.

So here's my answer, genieos contains several procs which are too awesome to be included in the standard os one. You could actually think of this module as a fancy os module, but if we are talking about fancy stuff, you can't get more fancy than Girls' Generation 소녀시대 <http://en.wikipedia.org/wiki/Girls'_Generation>, also known as Sonyeo Shidae <http://www.youtube.com/watch?v=EOWrdo1kVYw> or SNSD <http://www.youtube.com/watch?v=fYP_3QEb5Yk>. Just tell them your wish <http://www.youtube.com/watch?v=6SwiSpudKWI>, you never know what this module could do for you (hey, it even remixes well! <https://soundcloud.com/randommixchannel/luckygenie>_).

License

Seohyun <http://en.wikipedia.org/wiki/Seohyun> says this has a MIT license <LICENSE.rst>.

Installation and usage

Stable version

You could copy the genieos.nim <genieos.nim> file and genieos_pkg <genieos_pkg> directory to your project or put these somewhere safe and use Nim's configuration files <http://nim-lang.org/nimc.html#configuration-files> feature to specify their path. But that would be really raw, like asking Jessica <http://en.wikipedia.org/wiki/Jessica_Jung> to eat a cucumber (she dislikes them! <http://www.youtube.com/watch?v=TUR7CuD_1zQ>). So you can use Nim's Nimble package manager <https://github.com/nim-lang/nimble> and type::

$ nimble update
$ nimble install genieos

Development version

Use Nim's Nimble package manager <https://github.com/nim-lang/nimble>_ to install locally the github checkout::

$ nimble update
$ git clone https://github.com/gradha/genieos.git
$ cd genieos
$ nimble install -y

Alternatively you can use the following syntax to ask Nimble to install the development version directly::

$ nimble update
$ nimble install -y genieos@#head

Usage

Once you have installed the package you can import genieos in your programs and access the exported procs.

The genieos module comes with embedded docstrings. Sooyoung <http://en.wikipedia.org/wiki/Sooyoung> recommends you to go to http://gradha.github.io/genieos/ <http://gradha.github.io/genieos/>, there you will find the generated documentation for all public API versions.

Extra binaries

To put the awesome procs into use there's a trash command which works like your typical rm from the command line but instead of removing files it puts them nicely in your recycle bin. Check out the trash-binary directory <trash-binary>_ for further information.

Roadmap

This module implements MacOSX functionality, a toy OS Sunny <http://en.wikipedia.org/wiki/Sunny_(singer)> would enjoy using. Real men with real operative systems, however, are presumed to step in at some point and implement these procs (or add new ones) to their manly platforms. Unfortunately they are figuring out where the recycle bin is <http://stackoverflow.com/a/6807599/172690> or cleaning tiles for some reason <http://en.wikipedia.org/wiki/Windows_8>_. Note how I carefully avoided any mention of snakes and dongles here... oops.

Anyway, this is the development version 9.4.3. For a list of changes see the docs/CHANGES.rst file <docs/CHANGES.rst>_.

Git branches

This project uses the git-flow branching model <https://github.com/nvie/gitflow>_ with reversed defaults. Stable releases are tracked in the stable branch. Development happens in the default master branch.

Feedback

You can send me feedback through github's issue tracker <https://github.com/gradha/genieos/issues>. I also take a look from time to time to Nim's forums <http://forum.nim-lang.org> where you can talk to other more serious Nim programmers.