PD
Program Dreamโ€ข4mo ago
Shivter

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
Nukecodezโ€ข4mo ago
this is nice
Dumb Bird
Dumb Birdโ€ข4mo ago
Seeing this done in Batch is very neat
Shivter
ShivterOPโ€ข4mo ago
No description
Dumb Bird
Dumb Birdโ€ข4mo ago
Themes ๐Ÿ˜ณ
Shivter
ShivterOPโ€ข4mo ago
It's also got a whole programming API, along with a whole embedded programming language which is transpiled into batch
Shivter
ShivterOPโ€ข4mo 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
ShivterOPโ€ข4mo ago
and run SSVM.bat
Shivter
ShivterOPโ€ข4mo ago
that's it it's running then you go through the Out-of-box experience
Shivter
ShivterOPโ€ข4mo ago
what?
Shivter
ShivterOPโ€ข4mo ago
What version of windows are you running?
Shivter
ShivterOPโ€ข4mo ago
give me a sec
Shivter
ShivterOPโ€ข4mo ago
I guess then you can try cloning the repository and running SSVM.bat from there Does it give you any error message?
Shivter
ShivterOPโ€ข4mo ago
ohhh Can you send me a bigger screenshot?
Shivter
ShivterOPโ€ข4mo ago
Ok I'll try to fix the GitHub repo
Shivter
ShivterOPโ€ข4mo ago
With ANSI Escape Codes (VT100 functionallity)
Shivter
ShivterOPโ€ข4mo ago
Gist
ANSI Escape Codes
ANSI Escape Codes. GitHub Gist: instantly share code, notes, and snippets.
Shivter
ShivterOPโ€ข4mo ago
It allows me to do anything I want with text
Shivter
ShivterOPโ€ข4mo ago
I mean This is the most advanced Batch OS in the world as of now
Shivter
ShivterOPโ€ข4mo ago
Yeah There are many learning curves in batch
Shivter
ShivterOPโ€ข4mo ago
I have found the issue
Shivter
ShivterOPโ€ข4mo 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
ShivterOPโ€ข4mo ago
I'll re-upload the files
Shivter
ShivterOPโ€ข4mo ago
that should fix the problems
Shivter
ShivterOPโ€ข4mo ago
@S1lent.GGใƒ„ It should now be fixed. Try re-cloning the repository.
Shivter
ShivterOPโ€ข4mo ago
??
Shivter
ShivterOPโ€ข4mo ago
That's not a file in the Shivtanium repository
Shivter
ShivterOPโ€ข4mo ago
is it?
Shivter
ShivterOPโ€ข4mo ago
oh well you need to add a .bat extension for it to work as a batch file
Shivter
ShivterOPโ€ข4mo ago
?
๐“ง๐“ถ๐“ช๐“ผ๐“ผ๐“ข๐“ฒ๐“ต๐“ฎ๐“ท๐“ฝ
how do you keep on changing that with
%time%
%time%
right
Shivter
ShivterOPโ€ข4mo ago
Ohh about that Shivtanium is a multi-threaded BatchOS so you can have multiple programs running at once
Shivter
ShivterOPโ€ข4mo ago
Just complete the setup, and you'll get to a desktop where you can launch programs
Shivter
ShivterOPโ€ข4mo ago
A lot of coding
Shivter
ShivterOPโ€ข4mo ago
Everyone starts somewhere
MEE6
MEE6โ€ข4mo ago
shivter14 has been warned
Reason: Posted an invite
Shivter
ShivterOPโ€ข4mo ago
Oh nevermind
Shivter
ShivterOPโ€ข4mo ago
how did that turn into an invite link
Shivter
ShivterOPโ€ข4mo ago
I didn't even put https:// in there weird
Shivter
ShivterOPโ€ข4mo ago
You can get a lot of help there
Shivter
ShivterOPโ€ข4mo 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
ShivterOPโ€ข4mo ago
You can't really use Shivtanium code out of Shivtanium It works by re-drawing the bottom bar every half a second
Shivter
ShivterOPโ€ข4mo ago
I just redraw the time every half a second
Shivter
ShivterOPโ€ข4mo ago
I've got a timer wait
Shivter
ShivterOPโ€ข4mo ago
more like a ticker
Shivter
ShivterOPโ€ข4mo ago
Shivter
ShivterOPโ€ข4mo 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
ShivterOPโ€ข4mo ago
Just remove the ยคOV part
Shivter
ShivterOPโ€ข4mo ago
You know how to define escape variables though, right?
Shivter
ShivterOPโ€ข4mo 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
Shivter
ShivterOPโ€ข4mo 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
ShivterOPโ€ข4mo ago
Alright now I fixed it with the power of editing a message
Shivter
ShivterOPโ€ข4mo ago
Shivter
ShivterOPโ€ข4mo ago
And that's why this message should be quoted
Shivter
ShivterOPโ€ข4mo ago
ยฟ
Shivter
ShivterOPโ€ข4mo 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.
Want results from more Discord servers?
Add your server