Repository navigation
Introduction
This is the second stable release of BubbleOS! BubbleOS is a robust, colorful shell that enhances your terminal experience. It simplifies command usage with intuitive, self-explanatory names and provides a more user-friendly alternative to CLIs like the Windows Command Prompt. Need help? The help command offers detailed guidance to get you started!
This version of BubbleOS adds countless new features, commands, and bug fixes!
More Information and Installation
For installation instructions and more details on using BubbleOS, check out the README.
Full Changelog: v1.0.0...v2.0.0
Summarized Changes Between Build 100 and Build 200
Added Features
New Commands
- Added the
tasklistcommand, which shows all running processes and their respective PID. - Added the
pingcommand, which sends a request to a specified server. - Added the
setmgrcommand, which allows changing a variety of BubbleOS settings. - Added the
statcommand, which displays information about a file or directory, including the location, size, created, modified, and accessed dates. - Added the
hashcommand, which can check hashes for files. - Added the
linkcommand, which creates hard links on the system. - Added the
lockcommand, which shows the lock screen on the OS. - Added the
dirtreecommand, which visually shows a directory tree of the folder specified and the files inside.
Enhancements to Existing Commands
- Added the
-uflag tosysinfo, which displays user information. It also displays it by default. - Added CPU information to the
sysinfocommand, which shows the name and speed of CPUs in the system. - Added the full operating name in the
sysinfocommand. - Added alphabetical sorting to the
sysinfocommand. - The
sysinfocommand now displays the battery percentage and if the battery is on charge, if the device has a battery. - Added the ability to kill processes by specifying the process name instead of the PID in
taskkill(PIDs are still supported). - Added a list selection prompt to the
crashcommand. - Added an option to crash the device with a Blue Screen of Death on Windows using the
crashcommand. This is a very dangerous option! - Added the ability for the
symlinkcommand to show the path a symbolic link points to, if a single path is passed. - Added the ability to change into a symbolic link directory using the
cdcommand.
UI & Usability Improvements
- Added a welcome message that appears when launching BubbleOS for the first time.
- Added a message for the first introduction of BubbleOS to inform how to change the settings.
- BubbleOS will no longer display the full intro after opening on the system once to reduce clutter.
- Added a new text editor for the
mkfilecommand to make it more user-friendly, featuring a multi-line editor to easily make new files without using the*nkeyword for newlines. - Added the ability to silence most success messages (customizable using
setmgr). - Added the ability to show either the full path or just the file/directory name in success/error messages in commands (customizable using
setmgr). - Added the ability to show or remove the version when starting BubbleOS (customizable using
setmgr). - Added the ability to hide the prefix labels on success, info, warning and error messages (customizable using
setmgr). - Added the ability to show a confirmation prompt before exiting BubbleOS (customizable using
setmgr). - If the specified file/directory exists when running
mkfile/mkdir, BubbleOS will ask whether or not to delete the file/directory instead of failing. - Added new tips for the
tipscommand to display.
System Checks & Error Handling
- Added an update checker, which checks for updates weekly when BubbleOS starts (customizable using
setmgr). - Added the non-fatal error, which occurs when BubbleOS encounters an error that it can recover from.
- Added the time of crash to the fatal error information file.
- Added a check to see if BubbleOS crashed the last time it ran. If it did, a warning message will show on startup.
- Added a startup check to make sure the terminal supports color. If not, BubbleOS will end prematurely.
- Added a check which will check if BubbleOS is not running on a x64 device and/or Windows 8.1 and below. If either are true, BubbleOS will crash on startup. This can be disabled by using the
--no-checksflag (at your own risk). - Added a beep sound which will sound when a fatal/non-fatal error occurs.
- Added a check to see if BubbleOS is running with elevated privileges, and if so, it will display a warning at startup.
Other Enhancements
- Added the verbose feature into BubbleOS fully. To use it, run BubbleOS with the
--verboseflag. - Added the
-h/--helpflag to the BubbleOS executable, which displays all the BubbleOS startup arguments and what they do. - Added the
--resetflag to the BubbleOS executable, which resets the configuration file. - Added the
--deleteflag to the BubbleOS executable, which deletes the configuration file. - Added a configuration file that BubbleOS uses for various features. The file is saved in the user's home directory.
- Added the ability to use double quotes to specify arguments with spaces in commands, instead of the
*skeyword. - Added help aliases that will appear if you enter a command that doesn't exist but has an alias.
- Added hard aliases, which means typing in an alias will automatically run it instead of failing (e.g.,
dirruns thelscommand). - Added compatibility to BubbleOS for release candidates.
Changed/Fixed Features
General Improvements
- Updated many success, information, warning, and error messages to the new style for consistency.
- Significantly improved performance of the
helpcommand. - Improved the selection algorithm of the
tipscommand, so that it is impossible to fail finding a tip. - The license now displays as 2022-current year.
- Updated GitHub links to the new transferred repository.
- Internally improved the code of
ifnet.
Bug Fixes
- Fixed an issue where BubbleOS would crash upon encountering the
ENXIOerror. - Fixed an issue where the
taskkillcommand would detect if the process did not exist after the confirmation prompt was accepted when using PIDs. - Fixed multiple spelling errors.
- Fixed an issue where commands would not recognize the '~' character as the home directory in Linux and macOS.
- Fixed an issue where commands executing in a
.bubfile would be added to the command history. - Fixed an issue where permission errors would crash BubbleOS with a fatal error on macOS and Linux systems in most commands.
- Fixed an issue where a file operation would rarely crash BubbleOS with an
UNKNOWNerror code. - Fixed an issue where BubbleOS would count ARM64 devices as an invalid architecture.
- Fixed an issue where commands such as
clslswere being classified as correct if they started with a valid command. - Fixed an issue where a plain Node.js error would be displayed at times instead of a fatal error.
- The error info file saved when a fatal error occurs is now called
BUBBLE_ERROR_INFO.TXT.
Removed Features
- Removed support for UNC paths. An error will be thrown if an operation is attempted with them.
- Removed the
userinfocommand, as its functionality has been replaced withsysinfo. - Removed the
sizecommand, as its functionality has been replaced withstat. - Removed the ability to use slashes (
/) for arguments in commands and launching BubbleOS. - Removed the
--no-tipflag for thehelpcommand. - Removed the
--kill-selfargument for thetaskkillcommand. - Removed the hidden
--debugargument from thetipscommand. - Removed the
--no-introflag from the BubbleOS executable. - Removed the CPU endianness from the
sysinfocommand. - Removed the tip from showing in the
sysinfocommand at all. - Removed the no command error.
Full List of Changes
Differences Between Build 200 RC4 and Build 200
Added Features
- Added a message that appears when BubbleOS checks for updates, and informs the user if the operation was successful or if there was an error connecting to the server.
- Added the
--deleteargument to the BubbleOS executable, which deletes the BubbleOS configuration file entirely. - Added some easter eggs! ;)
Changed/Fixed Features
- Optimized directory size calculations for the
statcommand, resulting in a 2x performance improvement. - Changed the
statcommand to automatically retrieve the stats of the current directory if no path is specified. - Changed all references from "folder" to "directory" to help create a consistency of terminology usage.
- Changed the
sysinfoCPU information so that the speed will not be outputted if it is zero, and the CPU information will not be shown if BubbleOS is unable to get CPU information. - Fixed an issue where the
timecommand would not show times in AM/PM format by default. - Fixed an issue where showing path basenames would show an empty string when at the root of a drive.
- Fixed an issue where reading an empty directory with
dirtreewould not show a message saying the directory was empty. - Fixed an issue where the alphabetical sorting of the
sysinfocommand would sort by words starting with uppercase letters first. - Fixed an issue where the
dirtreecommand would not show an empty line after showing the tree. - Fixed an issue where the
tasklistandtaskkillcommands would crash if they could not get the process list. - Fixed an issue where the
symlinkcommand crashed if making a symbolic link was unable to be done. - Fixed an issue where if the history in the configuration file was not a valid data type, BubbleOS would crash and bootloop instead of fixing the issue automatically.
Removed Features
- Removed support for release candidates. Configuration files containing release candidate data will be removed upon booting into this version.
- Removed the "this may take a while message" when the path being copied in the
copycommand is over 250MB, to improve performance.
Full List of Changes
Added Features
- Added the
tasklistcommand, which shows all running processes and their respective PID. - Added the
pingcommand, which sends a request to a specified server. - Added the
setmgrcommand, which allows changing a variety of BubbleOS settings. - Added the
statcommand, which displays information about a file or directory, including the location, size, created, modified, and accessed dates. - Added the
hashcommand, which can check hashes for files. - Added the
linkcommand, which creates hard links on the system. - Added the
lockcommand, which shows the lock screen on the OS. - Added the
dirtreecommand, which visually shows a directory tree of the folder specified and the files inside. - Added the
-uflag tosysinfo, which displays user information. It also displays it by default. - Added a welcome message that appears when launching BubbleOS for the first time.
- Added a message for the first introduction of BubbleOS to inform how to change the settings.
- Added the ability to silence most success messages (customizable using
setmgr). - Added an update checker, which checks for updates weekly when BubbleOS starts (customizable using
setmgr). - Added the ability to show either the full path or just the file/directory name in success/error messages in commands (customizable using
setmgr). - Added the ability to show or remove the version when starting BubbleOS (customizable using
setmgr). - Added the ability to hide the prefix labels on success, info, warning and error messages (customizable using
setmgr). - Added the ability to show a confirmation prompt before exiting BubbleOS (customizable using
setmgr). - Added the non-fatal error, which occurs when BubbleOS encounters an error that it can recover from. The fatal error still occurs when a critical component crashes. Note that the non-fatal error still shows a bug in BubbleOS, like the fatal error, and should be reported. The difference is that it does not end the BubbleOS process.
- Added the time of crash to the fatal error information file.
- Added new tips for the
tipscommand to display. - Added CPU information to the
sysinfocommand, which shows the name and speed of CPUs in the system. - Added a list selection prompt to the
crashcommand. - Added the verbose feature into BubbleOS fully. To use it, run BubbleOS with the
--verboseflag. - If the specified file/directory exists when running
mkfile/mkdir, BubbleOS will ask whether or not to delete the file/directory instead of failing. - BubbleOS will no longer display the full intro after opening on the system once to reduce clutter.
- Added the ability to kill processes by specifying the process name instead of the PID in
taskkill(PIDs are still supported). - The
sysinfocommand now displays the battery percentage and if the battery is on charge, if the device has a battery. - Added an option to crash the device with a Blue Screen of Death on Windows using the
crashcommand. This is a very dangerous option! - Added a check to see if BubbleOS crashed the last time it ran. If it did, a warning message will show on startup.
- Added a startup check to make sure the terminal supports color. If not, BubbleOS will end prematurely.
- Added the
-h/--helpflag to the BubbleOS executable, which displays all the BubbleOS startup arguments and what they do. - Added the
--resetflag to the BubbleOS executable, which resets the configuration file. - Added the
--deleteargument to the BubbleOS executable, which deletes the BubbleOS configuration file entirely. - Added a configuration file that BubbleOS uses for various features. The file is saved in the user's home directory.
- Added a new text editor for the
mkfilecommand to make it more user-friendly, featuring a multi-line editor to easily make new files without using the*nkeyword for newlines. - Added the ability to change into a symbolic link directory using the
cdcommand. - Added the full operating name in the
sysinfocommand. - Added the ability for the
symlinkcommand to show the path a symbolic link points to, if a single path is passed. - Changed all references from "folder" to "directory" to help create a consistency of terminology usage.
- Added alphabetical sorting to the
sysinfocommand. - Added a check which will check if BubbleOS is not running on a x64 device and/or Windows 8.1 and below. If either are true, BubbleOS will crash on startup. This can be disabled by using the
--no-checksflag (at your own risk). - Added a beep sound which will sound when a fatal/non-fatal error occurs.
- Added the ability to use double quotes to specify arguments with spaces in commands, instead of the
*skeyword. - Added help aliases that will appear if you enter in a command that doesn't exist, but has an alias.
- Added hard aliases, which means typing in an alias will automatically run it instead of failing (e.g.
dirruns thelscommand). - Added compatibility to BubbleOS for release candidates.
- Added a check to see if BubbleOS is running with elevated prvileges, and if so, it will display a warning at startup.
Changed/Fixed Features
- Updated many success, information, warning, and error messages to the new style for consistency.
- The
sysinfocommand will no longer display the tip after the first time it shows. - Improved the selection algorithm of the
tipscommand, so that it is impossible to fail finding a tip, and when there are no more tips to show, it will reset automatically. - The color for memory in
sysinfonow has yellow text for if the memory usage is around the middle. - The information in the
sysinfocommand now shows bolded instead of italicized. - Significantly improved performance of the
helpcommand. - Changed the tip in the
helpcommand. - The "timebomb disabled" warning on startup will only display if the system time exceeds the expiry date.
- The
fifcommand will no longer accept blank responses. - Made the occurrence location numbers in the
fifcommand no longer show up by default (use the-pargument to show them). - Changed the
datecommand to show the slash-format date in the format {month}/{day} and no longer made it italicized. - Changed the formatting of the date in the
datecommand and the intro for the timebomb to add trailing zeros. - Changed the formatting of the
timecommand so that it will no longer be bolded. - The
renamecommand now keeps the directory in its original location when renaming it. Previously, if the new name didn’t include a directory, the command would move the renamed directory to the current working directory. Now, it updates the name without changing its location. - Updated the confirmation and success messages in the
taskkillcommand to display the process name instead of the PID when using the PID. - Fixed an issue where BubbleOS would crash upon encountering the
ENXIOerror. - Fixed an issue where the
taskkillcommand would detect if the process did not exist after the confirmation prompt was accepted when using PIDs. - Edited almost all help messages, error messages, and verbose messages.
- Fixed multiple spelling errors.
- The license now displays as 2022-'current year'.
- The display of commands running in
bubis no longer italicized. - Changed the text that displays when running
bubble -v. - Updated the cancellation message from 'Operation cancelled' to 'Process aborted'.
- Updated the fatal error screen text and other related processes (e.g. the heap snapshot is no longer saved upon crashing).
- Updated the
printcommand no longer outputs an error message when entering nothing; it just shows nothing. - Updated heading color in the
fifcommand to easily differentiate it. - Updated the size conversion of BubbleOS to use correct conversion factors to follow the binary convention.
- Made commands by default not display in the
bubcommand when executing a file. - Changed the version text when running
-von the Bubble executable to be more consistent. - When a fatal error completes, the user will be prompted to press the Enter key so that they can read the error.
- Changed key required to be pressed in the startup error from any key to just the Enter key, due to a previous unfixable bug.
- Fixed an issue where running BubbleOS with an incorrectly-cased path as the CWD would show that in BubbleOS.
- Fixed an issue where the
bubcommand would not show the command being executed if it was theexitcommand or thebubcommand running the same file. - Fixed an issue where changing the directory in a
.bubfile would keep its changes after it was done executing. - Fixed a consistency issue where the user information had its values bolded instead of italicized in the
sysinfocommand. - Fixed an issue where some commands would crash when interacting with files (#17).
- Fixed an issue where the
symlinkcommand would crash if the target path and source were the same. - Fixed an issue where the
copycommand would crash when copying a file/directory to a subdirectory of itself. - Fixed an issue where the help message for the
historycommand would not show information about the-cargument. - Fixed an issue where commands had to be in all lowercase to be recognized (this can be changed with the
setmgrcommand). - Fixed an issue where permission errors would crash BubbleOS with a fatal error on macOS and Linux systems in most commands.
- Fixed an issue where the
taskkillcommand would not output an error message if the process did not exist when specifying the process name rather than the PID. - Fixed an issue where the
lscommand would crash BubbleOS if it did not have permission to read the directory. - Fixed an issue where commands would not recognize the '~' character as the home directory in Linux and macOS.
- Fixed an issue where the
cdandlscommands would rarely crash BubbleOS if the directory did not exist. - Fixed an inconsistency in the
lscommand where the error message would not show the full directory path. - Fixed an issue where a file operation would rarely crash BubbleOS with an
UNKNOWNerror code. - Fixed an issue where commands would not be case-sensitive on Windows (#15).
- Fixed an issue where the
bubcommand would be caught in an infinite loop if the.bubfile was executing the same file as it was running. - Fixed an issue where commands executing in a
.bubfile would be added to the command history. - Fixed an issue where arguments entered for a command in the pre-boot interpreter would not work.
- Fixed an issue where the entire command entered would show as 'not recognized'.
- Fixed an issue where if invalid characters were entered in
taskkill, in the error, it will show the received text asNaN. - Fixed an issue where the command interpreter would classify commands such as
clslsto be correct, for example (as it starts with a valid command,cls). - Fixed an issue where if the error file was unable to be saved when a fatal error occurred, a fatal error would occur inside of the fatal error.
- Fixed an issue where the
lscommand, by default, could not read out of the CWD if it had spaces. - Fixed an issue where entering nothing in some commands would result in BubbleOS crashing.
- Fixed an issue where BubbleOS would count ARM64 devices as an invalid architecture.
- Fixed an issue where a plain Node.js error would be displayed at times instead of a fatal error.
- The error info file saved when a fatal error occurs is now called
BUBBLE_ERROR_INFO.TXT. - Updated GitHub links to the new transfered repository.
- Internally improved the code of
ifnet.
Removed Features
- Removed support for UNC paths. An error will be thrown if an operation is attempted with them.
- Removed the
userinfocommand, as its functionality has been replaced withsysinfo. - Removed the
sizecommand, as its functionality has been replaced withstat. - Removed the ability to enter newlines in the
fifsearch, due to it not functioning in the first place. - Removed the ability to use slashes (
/) for arguments in commands and launching BubbleOS. - Removed the silence (usually
-s) flags from most commands in favor of the setting insetmgr. - Removed the
--no-tipflag for thehelpcommand. - Removed the
--kill-selfargument for thetaskkillcommand. BubbleOS now allows killing its process by default. - Removed the hidden
--debugargument from thetipscommand. - Removed the
--no-introflag from the BubbleOS executable. - Removed the codes at the end of some error messages.
- Removed some unused error messages.
- Removed the CPU endianness from the
sysinfocommand. - Removed the BubbleOS PID from showing in the fatal error screen.
- Removed the tip from showing in the
sysinfocommand at all. - Removed the ability to enter an index into the
crashcommand. - Removed the no command error.
BubbleOS is created and maintained by Arnav Thorat. This project is licensed under the MIT license.