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:
Process management
Registering windows
Moving windows
Resizing windows
Automatically deleting windows when their process exits
Shutdown & Rebooting
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.
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=[0m[48;2;58;110;155;38;5;231m[H[2JClassic 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=[48;5;8;38;5;231m - □ ×
aero=
winAero=
scene
is the background. It should contain VT sequences that erase the screen.
sceneBGcolor
is the color for the background. Since BatchWindows uses window moving techniques that don't redraw the background, a generic background color is needed.
BGcolor
is the background color for a window.
FGcolor
is the foreground color for a window.
TIcolor
is the accent color of the window, which is used for the title bar, buttons, and more graphical elements.
TTcolor
is the second accent color of the window, which is used for the window title, button labels, and more.
NIcolor
is a replacement for TIcolor
, when the window is unfocused. Setting it to nothing disables this feature.
NTcolor
is a replacement for TTcolor
, same as above.
CBUI
is the Window Control UI Elements.
aero
is an arithmetic equasion that is used for calculating an RGB color for a line in the background.
r
, g
, b
x
.winAero
is similar to aero
, but it applies to window backgrounds. If set to nothing, aero
is used instead.
To modify the window button controls, change the CBUI
value which should add 9 characters. If more are needed, \e[#E
can be used to expand the limit by # characters.
For more help, head to the BatchWindows Wiki.
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.
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:
charset_L
- Lower case (keycode -> Character)
charset_U
- Upper case (Shift + keycode -> Upper case character)
charset_A
- Alternative (Alt + keycode -> Alternative character)
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
;
Keycode of A
is 65.
Result: !charset_L:~65,1!
Modifying the keyboard layout can be done in the following way:
keyboard_init.bat
file in the specified resource pack. (default: init
)charset_L
- Lower case, charset_U
- Upper case, charset_A
- Alternative)To bind a key by its keycode, change the character at the position based on the keycode.
(Example: Keycode of F1
is 112; go to the 112th place.)
With help from the Shivtanium Kernel;
Information about creating applications for Shivtanium can be found on the Kernel Wiki. (In progress)