Aptivi - Manual
ProjectsWebsiteBlog
Nitrocid KS v0.1.0 - Rolling Manual
Nitrocid KS v0.1.0 - Rolling Manual
  • Welcome!
  • Version Release Notes
  • Installation and Maintenance
    • Installing the Kernel
      • Windows
      • macOS
      • Linux
      • Android
    • Upgrading the Kernel
      • Windows
      • macOS
      • Linux
      • Android
    • Dependency Information
  • Fundamentals
    • What is the Kernel?
    • What is Nitrocid KS?
    • Simulated Kernel Features
      • Extra Features
        • More Networking
          • FTP Client
          • SFTP Client
          • RSS Client
          • HTTP Client
          • Mail Client
        • Games and Amusements
          • Hangman
          • BackRace
          • Meteor
          • Russian Roulette
          • ShipDuet
          • Snaker
          • Solver
          • SpeedPress
          • Wordle
        • More Editors
          • JSON Editor
          • SQL Editor
        • Common Programs
          • Archive
          • Caffeine
          • Calendar
          • Calculator
          • Contacts
          • Dictionary
          • Git Shell
          • Music Player
          • Notes
          • SSH Connection
          • Timers
          • To-do List
          • Unit Converter
          • Weather
        • Docking
        • Language Studio
        • Theme Studio
      • Accounts
        • Groups
        • Permissions
      • Editors
        • Text Editor
        • Hex Editor
      • Shells
        • Commands List
        • Addon Commands List
      • Files and Folders
        • Hashing and Encryption
      • Networking
      • Languages
      • Screensavers
  • Advanced and Power Users
    • Building the Kernel
      • Building on Windows
      • Building on macOS
      • Building on Linux
      • Building on Android
    • Kernel Modifications
      • Building your Mod
      • Analyzing your Mod
        • Text - NKS0001
        • ConsoleBase - NKS0002
        • ConsoleBase - NKS0003
        • ConsoleBase - NKS0004
        • ConsoleBase - NKS0005
        • ConsoleBase - NKS0006
        • ConsoleBase - NKS0007
        • ConsoleBase - NKS0008
        • ConsoleBase - NKS0009
        • Files - NKS0010
        • Files - NKS0011
        • Files - NKS0012
        • Files - NKS0013
        • Files - NKS0014
        • Files - NKS0015
        • Files - NKS0016
        • Files - NKS0017
        • Files - NKS0018
        • Files - NKS0019
        • Files - NKS0020
        • Files - NKS0021
        • Files - NKS0022
        • Files - NKS0023
        • Kernel - NKS0024
        • Kernel - NKS0025
        • Kernel - NKS0026
        • Kernel - NKS0027
        • Kernel - NKS0031
        • Kernel - NKS0032
        • Kernel - NKS0033
        • Kernel - NKS0037
        • Kernel - NKS0038
        • Kernel - NKS0039
        • Kernel - NKS0040
        • Kernel - NKS0041
        • Kernel - NKS0042
        • Kernel - NKS0043
        • Kernel - NKS0052
        • Kernel - NKS0053
        • Languages - NKS0044
        • Languages - NKS0045
        • Languages - NKS0046
        • Network - NKS0051
        • Text - NKS0047
        • Text - NKS0048
        • Text - NKS0049
        • Text - NKS0050
        • Text - NKS0054
        • Text - NKS0055
      • Managing your Mod
        • Inter-Mod Communication
        • Inter-Addon Communication
    • Diagnostics
      • Debugging
        • Local Debugging
        • Remote Debugging
      • Testing
      • Other Diagnostics
    • Inner Workings
      • Kernel Settings
        • Mechanics of Settings App
        • Settings Format
        • Custom Settings
      • Shell Structure
        • Help System
        • Command Parsing
        • Command Information
        • Command Switch Management
        • Command Switch Information
        • Shell History
        • Shell Scripting
        • Shell Presets
        • Extra Shell Features
      • Multilingual Kernel
        • Custom Languages
      • Inner Essentials
        • Kernel Drivers
          • Console Drivers
          • Debug Logger Drivers
          • Encoding Drivers
          • Encryption Drivers
          • Filesystem Drivers
          • Hardware Prober Drivers
          • Input Drivers
          • Network Drivers
          • RNG Drivers
          • Regular Expression Drivers
          • Sorting Drivers
        • Kernel Placeholders
        • The Permissions
        • The Users
        • Kernel Threads
        • Kernel Arguments
        • Kernel Journaling
        • Remote Procedure
        • Nitrocid Filesystem
        • Screensaver Internals
        • Splash Internals
        • Kernel Platform
        • Theme Internals
        • Color Internals
        • Privacy Consents
        • System Notifications
        • MAL and MOTD
        • Progress Handlers
        • Assembly Signing
        • Assembly Reflection
        • Random Number Generation
        • Network Tools
        • Date and Time
        • Mod Manual Pages
      • Miscellaneous APIs
  • Project Dependencies
  • Report an issue
  • Source code
  • API Reference
Powered by GitBook
On this page
Edit on GitHub
  1. Advanced and Power Users
  2. Inner Workings
  3. Inner Essentials
  4. Kernel Drivers

Console Drivers

Changing how the console works

Last updated 1 year ago

The console driver is one of the supported driver types on Nitrocid KS. These drivers allow you to change how the console works, thus earning dynamic console improvements, such as providing better workarounds to perform certain console functions, providing code to speed up the console, and much more.

The console drivers have the following characteristics:

  • Interface: IConsoleDriver

  • Base class: BaseConsoleDriver

The console drivers have the following functions that you can optionally override below:

IConsoleDriver.cs
bool IsDumb { get; }
bool MovementDetected { get; }
void WritePlain();
void WritePlain(string Text, bool Line, params object[] vars);
void WriteSlowlyPlain(string msg, bool Line, double MsEachLetter, params object[] vars);
void WriteWherePlain(string msg, int Left, int Top, params object[] vars);
void WriteWherePlain(string msg, int Left, int Top, bool Return, params object[] vars);
void WriteWherePlain(string msg, int Left, int Top, bool Return, int RightMargin, params object[] vars);
string RenderWherePlain(string msg, int Left, int Top, params object[] vars);
string RenderWherePlain(string msg, int Left, int Top, bool Return, params object[] vars);
string RenderWherePlain(string msg, int Left, int Top, bool Return, int RightMargin, params object[] vars);
void WriteWhereSlowlyPlain(string msg, bool Line, int Left, int Top, double MsEachLetter, params object[] vars);
void WriteWhereSlowlyPlain(string msg, bool Line, int Left, int Top, double MsEachLetter, bool Return, params object[] vars);
void WriteWhereSlowlyPlain(string msg, bool Line, int Left, int Top, double MsEachLetter, bool Return, int RightMargin, params object[] vars);
void WriteWrappedPlain(string Text, bool Line, params object[] vars);
int CursorLeft { get; set; }
int CursorTop { get; set; }
int WindowWidth { get; }
int WindowHeight { get; }
int WindowTop { get; }
int BufferWidth { get; }
int BufferHeight { get; }
bool CursorVisible { set; }
bool TreatCtrlCAsInput { get; set; }
TextEncoding OutputEncoding { get; set; }
TextEncoding InputEncoding { get; set; }
bool KeyAvailable { get; }
void Clear(bool loadBack = false);
void SetCursorPosition(int left, int top);
void ResetColor();
Stream OpenStandardInput();
Stream OpenStandardOutput();
Stream OpenStandardError();
void SetOut(TextWriter newOut);
void Beep();
ConsoleKeyInfo ReadKey(bool intercept = false);
void Write(char value);
void Write(string text);
void Write(string text, params object[] args);
void WriteLine();
void WriteLine(string text);
void WriteLine(string text, params object[] args);

The ConsoleDriverTools class contains tools to get all the console drivers and their names and set a console driver as a default. The driver management tools also allow you to do the same thing, though you'll have to specify the driver type.