Skip to content

Build 200

Latest

Choose a tag to compare

@viradex viradex released this 22 Mar 21:35
· 25 commits to main since this release

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 tasklist command, which shows all running processes and their respective PID.
  • Added the ping command, which sends a request to a specified server.
  • Added the setmgr command, which allows changing a variety of BubbleOS settings.
  • Added the stat command, which displays information about a file or directory, including the location, size, created, modified, and accessed dates.
  • Added the hash command, which can check hashes for files.
  • Added the link command, which creates hard links on the system.
  • Added the lock command, which shows the lock screen on the OS.
  • Added the dirtree command, which visually shows a directory tree of the folder specified and the files inside.

Enhancements to Existing Commands

  • Added the -u flag to sysinfo, which displays user information. It also displays it by default.
  • Added CPU information to the sysinfo command, which shows the name and speed of CPUs in the system.
  • Added the full operating name in the sysinfo command.
  • Added alphabetical sorting to the sysinfo command.
  • The sysinfo command 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 crash command.
  • Added an option to crash the device with a Blue Screen of Death on Windows using the crash command. This is a very dangerous option!
  • Added the ability for the symlink command 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 cd command.

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 mkfile command to make it more user-friendly, featuring a multi-line editor to easily make new files without using the *n keyword 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 tips command 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-checks flag (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 --verbose flag.
  • Added the -h/--help flag to the BubbleOS executable, which displays all the BubbleOS startup arguments and what they do.
  • Added the --reset flag to the BubbleOS executable, which resets the configuration file.
  • Added the --delete flag 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 *s keyword.
  • 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., dir runs the ls command).
  • 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 help command.
  • Improved the selection algorithm of the tips command, 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 ENXIO error.
  • Fixed an issue where the taskkill command 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 .bub file 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 UNKNOWN error code.
  • Fixed an issue where BubbleOS would count ARM64 devices as an invalid architecture.
  • Fixed an issue where commands such as clsls were 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 userinfo command, as its functionality has been replaced with sysinfo.
  • Removed the size command, as its functionality has been replaced with stat.
  • Removed the ability to use slashes (/) for arguments in commands and launching BubbleOS.
  • Removed the --no-tip flag for the help command.
  • Removed the --kill-self argument for the taskkill command.
  • Removed the hidden --debug argument from the tips command.
  • Removed the --no-intro flag from the BubbleOS executable.
  • Removed the CPU endianness from the sysinfo command.
  • Removed the tip from showing in the sysinfo command 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 --delete argument to the BubbleOS executable, which deletes the BubbleOS configuration file entirely.
  • Added some easter eggs! ;)

Changed/Fixed Features

  • Optimized directory size calculations for the stat command, resulting in a 2x performance improvement.
  • Changed the stat command 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 sysinfo CPU 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 time command 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 dirtree would not show a message saying the directory was empty.
  • Fixed an issue where the alphabetical sorting of the sysinfo command would sort by words starting with uppercase letters first.
  • Fixed an issue where the dirtree command would not show an empty line after showing the tree.
  • Fixed an issue where the tasklist and taskkill commands would crash if they could not get the process list.
  • Fixed an issue where the symlink command 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 copy command is over 250MB, to improve performance.
Full List of Changes

Added Features

  • Added the tasklist command, which shows all running processes and their respective PID.
  • Added the ping command, which sends a request to a specified server.
  • Added the setmgr command, which allows changing a variety of BubbleOS settings.
  • Added the stat command, which displays information about a file or directory, including the location, size, created, modified, and accessed dates.
  • Added the hash command, which can check hashes for files.
  • Added the link command, which creates hard links on the system.
  • Added the lock command, which shows the lock screen on the OS.
  • Added the dirtree command, which visually shows a directory tree of the folder specified and the files inside.
  • Added the -u flag to sysinfo, 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 tips command to display.
  • Added CPU information to the sysinfo command, which shows the name and speed of CPUs in the system.
  • Added a list selection prompt to the crash command.
  • Added the verbose feature into BubbleOS fully. To use it, run BubbleOS with the --verbose flag.
  • 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 sysinfo command 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 crash command. 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/--help flag to the BubbleOS executable, which displays all the BubbleOS startup arguments and what they do.
  • Added the --reset flag to the BubbleOS executable, which resets the configuration file.
  • Added the --delete argument 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 mkfile command to make it more user-friendly, featuring a multi-line editor to easily make new files without using the *n keyword for newlines.
  • Added the ability to change into a symbolic link directory using the cd command.
  • Added the full operating name in the sysinfo command.
  • Added the ability for the symlink command 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 sysinfo command.
  • 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-checks flag (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 *s keyword.
  • 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. dir runs the ls command).
  • 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 sysinfo command will no longer display the tip after the first time it shows.
  • Improved the selection algorithm of the tips command, 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 sysinfo now has yellow text for if the memory usage is around the middle.
  • The information in the sysinfo command now shows bolded instead of italicized.
  • Significantly improved performance of the help command.
  • Changed the tip in the help command.
  • The "timebomb disabled" warning on startup will only display if the system time exceeds the expiry date.
  • The fif command will no longer accept blank responses.
  • Made the occurrence location numbers in the fif command no longer show up by default (use the -p argument to show them).
  • Changed the date command 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 date command and the intro for the timebomb to add trailing zeros.
  • Changed the formatting of the time command so that it will no longer be bolded.
  • The rename command 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 taskkill command to display the process name instead of the PID when using the PID.
  • Fixed an issue where BubbleOS would crash upon encountering the ENXIO error.
  • Fixed an issue where the taskkill command 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 bub is 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 print command no longer outputs an error message when entering nothing; it just shows nothing.
  • Updated heading color in the fif command 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 bub command when executing a file.
  • Changed the version text when running -v on 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 bub command would not show the command being executed if it was the exit command or the bub command running the same file.
  • Fixed an issue where changing the directory in a .bub file 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 sysinfo command.
  • Fixed an issue where some commands would crash when interacting with files (#17).
  • Fixed an issue where the symlink command would crash if the target path and source were the same.
  • Fixed an issue where the copy command would crash when copying a file/directory to a subdirectory of itself.
  • Fixed an issue where the help message for the history command would not show information about the -c argument.
  • Fixed an issue where commands had to be in all lowercase to be recognized (this can be changed with the setmgr command).
  • 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 taskkill command 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 ls command 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 cd and ls commands would rarely crash BubbleOS if the directory did not exist.
  • Fixed an inconsistency in the ls command where the error message would not show the full directory path.
  • Fixed an issue where a file operation would rarely crash BubbleOS with an UNKNOWN error code.
  • Fixed an issue where commands would not be case-sensitive on Windows (#15).
  • Fixed an issue where the bub command would be caught in an infinite loop if the .bub file was executing the same file as it was running.
  • Fixed an issue where commands executing in a .bub file 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 as NaN.
  • Fixed an issue where the command interpreter would classify commands such as clsls to 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 ls command, 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 userinfo command, as its functionality has been replaced with sysinfo.
  • Removed the size command, as its functionality has been replaced with stat.
  • Removed the ability to enter newlines in the fif search, 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 in setmgr.
  • Removed the --no-tip flag for the help command.
  • Removed the --kill-self argument for the taskkill command. BubbleOS now allows killing its process by default.
  • Removed the hidden --debug argument from the tips command.
  • Removed the --no-intro flag 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 sysinfo command.
  • Removed the BubbleOS PID from showing in the fatal error screen.
  • Removed the tip from showing in the sysinfo command at all.
  • Removed the ability to enter an index into the crash command.
  • Removed the no command error.

BubbleOS is created and maintained by Arnav Thorat. This project is licensed under the MIT license.