Shivtanium - OS-Like environment in Batch

Hello. This is my Batch OS project I've been working on since April. It uses a Window Manager I made using the VT100 implementation in most terminals to do this kind of graphics. It's also got full multi-tasking, shell, OOBE, Programs, and many other things. As stated, it's written in Batch (CMD). I'm not calling it "pure batch" since it uses a few extensions (like getInput64.dll for input, and a couple of VBS scripts for audio) It's got a whole wiki on the github page if you're interested in learning more about how it works, or making some apps yourself! https://github.com/Shivter14/Shivtanium
GitHub
GitHub - Shivter14/Shivtanium: Shivtanium is the most advanced Batc...
Shivtanium is the most advanced Batch OS ever created. - Shivter14/Shivtanium
No description
No description
No description
No description
No description
No description
No description
104 Replies
Nukecodez
Nukecodez12mo ago
this is nice
Dumb Bird
Dumb Bird12mo ago
Seeing this done in Batch is very neat
Shivter
ShivterOP12mo ago
No description
Dumb Bird
Dumb Bird12mo ago
Themes 😳
Shivter
ShivterOP12mo ago
It's also got a whole programming API, along with a whole embedded programming language which is transpiled into batch
Shivter
ShivterOP12mo ago
GitHub
Release Shivtanium Beta 1.3.2 [build 30.3229] · Shivter14/Shivtanium
All systemb applications are now compiled with BXF. Added a new function to sys.bxf: @sys.onEventRaw Task manager now only displays file names of running processes. (to reduce text length) Bugfixes...
Shivter
ShivterOP12mo ago
and run SSVM.bat
Shivter
ShivterOP12mo ago
that's it it's running then you go through the Out-of-box experience
Shivter
ShivterOP12mo ago
what?
Shivter
ShivterOP12mo ago
What version of windows are you running?
Shivter
ShivterOP12mo ago
give me a sec
Shivter
ShivterOP12mo ago
I guess then you can try cloning the repository and running SSVM.bat from there Does it give you any error message?
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
no it like wont open no cmd kinda pop up cloning work s]
Shivter
ShivterOP12mo ago
ohhh Can you send me a bigger screenshot?
Shivter
ShivterOP12mo ago
Ok I'll try to fix the GitHub repo
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
ok tell me how did you do the acsii its crazy
Shivter
ShivterOP12mo ago
With ANSI Escape Codes (VT100 functionallity)
Shivter
ShivterOP12mo ago
Gist
ANSI Escape Codes
ANSI Escape Codes. GitHub Gist: instantly share code, notes, and snippets.
Shivter
ShivterOP12mo ago
It allows me to do anything I want with text
Shivter
ShivterOP12mo ago
I mean This is the most advanced Batch OS in the world as of now
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
Nice! im working on a file explorer in batch But its hard
Shivter
ShivterOP12mo ago
Yeah There are many learning curves in batch
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
yeah will you tell when fixed
Shivter
ShivterOP12mo ago
I have found the issue
Shivter
ShivterOP12mo ago
Some BXF files I uploaded through GitHub had issues with line endings being LF (Unix) instead of CRLF (Windows) which CMD doesn't handle well
Shivter
ShivterOP12mo ago
I'll re-upload the files
Shivter
ShivterOP12mo ago
that should fix the problems
Shivter
ShivterOP12mo ago
@S1lent.GGツ It should now be fixed. Try re-cloning the repository.
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
code is wdjk but it makes something and wont open
Shivter
ShivterOP12mo ago
??
Shivter
ShivterOP12mo ago
That's not a file in the Shivtanium repository
Shivter
ShivterOP12mo ago
is it?
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
yeah copied and named it otherwise
Shivter
ShivterOP12mo ago
oh well you need to add a .bat extension for it to work as a batch file
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
i did i mad it work ITS SO COOL;
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
how to do this cause you cant while running a code right?
No description
Shivter
ShivterOP12mo ago
?
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
how do you keep on changing that with
%time%
%time%
right
Shivter
ShivterOP12mo ago
Ohh about that Shivtanium is a multi-threaded BatchOS so you can have multiple programs running at once
Shivter
ShivterOP12mo ago
Just complete the setup, and you'll get to a desktop where you can launch programs
Shivter
ShivterOP12mo ago
A lot of coding
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
yeah i like begon 5 months or some so im bad
Shivter
ShivterOP12mo ago
Everyone starts somewhere
MEE6
MEE612mo ago
shivter14 has been warned
Reason: Posted an invite
Shivter
ShivterOP12mo ago
Oh nevermind
Shivter
ShivterOP12mo ago
how did that turn into an invite link
Shivter
ShivterOP12mo ago
I didn't even put https:// in there weird
Shivter
ShivterOP12mo ago
You can get a lot of help there
Shivter
ShivterOP12mo ago
Well, there's a Kernel which gives out Mouse click & Keyboard press/release & Window movement data so that for example - When you have 2 windows open, and both of them have a text box, you don't end up writing to both of them at once Then, there's a Window Renderer which takes instructions from a live pipe so programs can render stuff into windows without having to worry about other programs Then, each process is programmed to work with this system - Take events from the Kernel, display stuff using the Window renderer, and more... You can read more about it on the GitHub page +/ wiki, or follow up in the https://discord.com/channels/288498150145261568/1208837645028040714 thread
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
can you give the code for the
%time%
%time%
or what you use what the
Shivter
ShivterOP12mo ago
You can't really use Shivtanium code out of Shivtanium It works by re-drawing the bottom bar every half a second
Shivter
ShivterOP12mo ago
I just redraw the time every half a second
Shivter
ShivterOP12mo ago
I've got a timer wait
Shivter
ShivterOP12mo ago
more like a ticker
Shivter
ShivterOP12mo ago
Shivter
ShivterOP12mo ago
Here is the full code of the login screen Here specifically is the part that does the bottom bar:
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t1=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000), deltaTime=(t1 - t2), t2=t1, timer.50cs+=deltaTime"
if !timer.50cs! geq 50 (
echo=¤OV %\e%[999;1H%\e%[48;2;0;31;63;38;2;255;255;255m%\e%[2K !focusedWindow!%\e%[999C%\e%[32D!date! !time!%\e%[H
set /a "timer.50cs%%=50"
)
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t1=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000), deltaTime=(t1 - t2), t2=t1, timer.50cs+=deltaTime"
if !timer.50cs! geq 50 (
echo=¤OV %\e%[999;1H%\e%[48;2;0;31;63;38;2;255;255;255m%\e%[2K !focusedWindow!%\e%[999C%\e%[32D!date! !time!%\e%[H
set /a "timer.50cs%%=50"
)
Shivter
ShivterOP12mo ago
Just remove the ¤OV part
Shivter
ShivterOP12mo ago
You know how to define escape variables though, right?
Shivter
ShivterOP12mo ago
Well, this can set %\e% to the ESC character:
if not defined \e for /f %%a in ('echo prompt $E^| cmd') do set "\e=%%a"
if not defined \e for /f %%a in ('echo prompt $E^| cmd') do set "\e=%%a"
Just put it at the start of your script
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
that or the code before
Shivter
ShivterOP12mo ago
wait
if not defined \e for /f %%a in ('echo prompt $E^| cmd') do set "\e=%%a"
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t2=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000)"
...
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t1=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000), deltaTime=(t1 - t2), t2=t1, timer.50cs+=deltaTime"
if !timer.50cs! geq 50 (
echo=¤OV %\e%[999;1H%\e%[48;2;0;31;63;38;2;255;255;255m%\e%[2K !focusedWindow!%\e%[999C%\e%[32D!date! !time!
set /a "timer.50cs%%=50"
)
if not defined \e for /f %%a in ('echo prompt $E^| cmd') do set "\e=%%a"
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t2=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000)"
...
for /f "tokens=1-4 delims=:.," %%a in ("!time: =0!") do set /a "t1=((((1%%a-1000)*60+(1%%b-1000))*60+(1%%c-1000))*100)+(1%%d-1000), deltaTime=(t1 - t2), t2=t1, timer.50cs+=deltaTime"
if !timer.50cs! geq 50 (
echo=¤OV %\e%[999;1H%\e%[48;2;0;31;63;38;2;255;255;255m%\e%[2K !focusedWindow!%\e%[999C%\e%[32D!date! !time!
set /a "timer.50cs%%=50"
)
Put the code before the ... at the start of your script and after the ... into an infinite loop oh wait wrong code
Shivter
ShivterOP12mo ago
Alright now I fixed it with the power of editing a message
Shivter
ShivterOP12mo ago
Shivter
ShivterOP12mo ago
And that's why this message should be quoted
Shivter
ShivterOP12mo ago
¿
𝓢𝓲𝓵𝓮𝓷𝓽 ᶜᵒᵒᵏⁱⁿᵍ
any tip on a file explorer in batch???
Shivter
ShivterOP12mo ago
Use getInput64.dll, it's a plugin that allows you to use Mouse input without pausing execution. I've even got documentation on how to use it at https://github.com/Shivter14/Shivter14/blob/main/GetInputDoc.md
GitHub
Shivter14/GetInputDoc.md at main · Shivter14/Shivter14
Contribute to Shivter14/Shivter14 development by creating an account on GitHub.

Did you find this page helpful?