Shivter14 / Shivtanium

Shivtanium is the ultimate Batch OS
MIT License
11 stars 2 forks source link
batch batch-script batchfile cmd cmd-scripts
![Shivtanium Logo](https://raw.githubusercontent.com/Shivter14/Shivtanium/main/Shivtanium.png) [![Latest release version](https://img.shields.io/github/v/release/Shivter14/Shivtanium?color=brightgreen&label=Latest%20version&style=for-the-badge)](https://github.com/Shivter14/Shivtanium/releases "Releases") [![Commits](https://img.shields.io/github/commit-activity/m/Shivter14/Shivtanium?label=commits&style=for-the-badge)](https://github.com/Shivter14/Shivtanium/commits "Commit History") [![Last Commit](https://img.shields.io/github/last-commit/Shivter14/Shivtanium/main?label=Latest%20commit&style=for-the-badge&display_timestamp=committer)](https://github.com/Shivter14/Shivtanium/pulse/monthly "Last activity") ## Shivtanium is a Batch OS subsystem, along with BatchWindows and `bxf` making it the ultimate Batch OS. (Screenshots are avaliable at the bottom of this document.)

Shivtanium has a process manager which allows it to do true multi tasking (aka. having multiple windows open).

A process is a running asynchronous batch file. Communication is done via file pipe streams, and an API made with BXF (Batch Expanded Functions Compiler).

the Shivtanium subsystem handles:

Shivtanium has a compiler called BXF, which adds expanded functions that don't have to be called along with import commands, and standard libraries. These files have the .bxf extension.

Shivtanium also has desktop environments. The default & original one is systemb. You can find screenshots at the bottom of this document.

Graphics & windows are handled by BatchWindows. It uses many kinds of VT sequences, optimizations, and all sorts of techniques in order to render windows quickly and smoothly.

BatchWindows - The Desktop Window Manager

Shivtanium uses a custom-made Desktop Window Manager to render windows with themes. These themes can be customized with resource packs.

Creating themes requires VT100 knowledge. Themes located in: C\Shivtanium\resourcepacks\init\themes\

Here is a basic theme example:

scene=Classic theme
sceneBGcolor=2;58;110;155
BGcolor=2;229;227;222
FGcolor=5;16
TIcolor=5;247
TTcolor=5;231
NIcolor=5;8
NTcolor=5;7
CBUI= -  □  × 
aero=
winAero=

It's even easier to create sprites, it's just raw ASCII art located in: C\Shivtanium\resourcepacks\init\sprites\

The sprite loader automatically detects and assigns the width of sprites while loading.

Keyboard & typing

Shivtanium uses a keyboard layout system, where the keyboard layout is a batch file located in the resource pack: keyboard_init.bat

This batch file may contain 3 variable definitions:

The variable definitions are long strings containing all the possible characters that can be input.

You can get a character from a character set using the following expansion method: !charset_#:~<keycode>,1!

Keycode is a keyboard key value from WinAPI (used in: getInput64.dll, cmdwiz.exe, getInput.exe, radish.exe...)

Example: A is pressed without Shift nor Alt;

Modifying the keyboard layout can be done in the following way:

How can I create interactive batch scripts compatible with Shivtanium?

With help from the Shivtanium Kernel;

Information about creating applications for Shivtanium can be found on the Kernel Wiki. (In progress)

Screenshots

![image](https://github.com/Shivter14/Shivtanium/assets/98386496/dd131add-ed0a-4b8a-b11d-51ef5c7239ab) ![image](https://github.com/Shivter14/Shivtanium/assets/98386496/983b1fc7-c198-4bfc-8a7d-94462d6b9dfb) ![image](https://github.com/user-attachments/assets/d417a5e4-452b-4e58-9eb5-8fad47d6b199) ![image](https://github.com/user-attachments/assets/737af2a2-d617-4ead-95cf-7d7acc818c9c) ![image](https://github.com/user-attachments/assets/9dde2564-e682-4895-98a9-4840cd61ba49) ![image](https://github.com/user-attachments/assets/8aa95fe2-74a8-4655-9a0e-966e88f54b22) ![image](https://github.com/user-attachments/assets/816ca08b-a275-4f0e-b7ed-c29ba9e4aa31) ![image](https://github.com/user-attachments/assets/38911f7a-f5df-4831-b542-385976374cc8) ![image](https://github.com/user-attachments/assets/fb0cd5cf-a361-459b-ac15-063907d25e53) ![image](https://github.com/user-attachments/assets/c95306d1-8e77-4544-b114-f74dd02b061d) == Credits == Head Programmer Shivter DOS font viler@int10h.org getInput64.dll MousieDev Sound Engine Sintrode, RazorArt Audio Duration Script RazorArt Ideas Icarus, Yeshi, Grub4K, and members from server.bat & Batch-Man!