Aptivi - Manual
ProjectsWebsiteBlog
Nitrocid KS - Manual
Nitrocid KS - Manual
  • Welcome!
  • Versions and Compatibility
    • Supported Versions
    • EOL Versions
    • Version Release Notes
      • v0.0.1.x series
      • v0.0.2.x series
      • v0.0.3.x series
      • v0.0.4.x series
      • v0.0.5.x series
        • v0.0.5.0 Beta Versions
      • v0.0.6.x series
        • v0.0.6.0 Beta Versions
      • v0.0.7.x series
        • v0.0.7.0 Beta Versions
      • v0.0.8.x series
      • v0.0.9.x series
      • v0.0.10.x series
      • v0.0.11.x series
      • v0.0.12.x series
      • v0.0.13.x series
      • v0.0.14.x series
      • v0.0.15.x series
      • v0.0.16.x series
      • v0.0.17.x series
      • v0.0.18.x series
      • v0.0.19.x series
      • v0.0.20.x series
      • v0.0.21.x series
      • v0.0.22.x series
      • v0.0.23.x series
      • v0.0.24.x series
      • v0.1.0.x and 0.1.1.x series
      • v0.1.2.x and v0.1.3.x series
    • Compatibility Notes for KS API Revisions
      • Upgrading to API v1.0 series
      • Upgrading to API v1.1 series
      • Upgrading to API v1.2 series
      • Upgrading to API v1.3 series
      • Upgrading to API v2.0 series
      • Upgrading to API v2.1 series
      • Upgrading to API v3.0 series
        • From 0.0.24.x to 0.1.0 Beta 1
        • From 0.1.0 Beta 1 to 0.1.0 Beta 2
        • From 0.1.0 Beta 2 to 0.1.0 Beta 3
        • From 0.1.0 Beta 3 to 0.1.0 RC
        • From 0.1.0 RC to 0.1.0 Final
      • Upgrading to API v3.1 series
  • 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
          • SSH Connection
          • SFTP Client
          • RSS Client
          • HTTP Client
          • Mail Client
        • Games and Amusements
          • Hangman
          • BackRace
          • Meteor
          • Pong
          • Russian Roulette
          • ShipDuet
          • Snaker
          • Solver
          • SpeedPress
          • Wordle
        • More Editors
          • JSON Editor
          • SQL Editor
        • Common Programs
          • Archive
          • Caffeine
          • Calendar
          • Calculator
          • Contacts
          • Dictionary
          • Git Shell
          • Notes
          • Stocks
          • 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
      • The Nitrocid Homepage
      • Networking
      • Localization
      • Screensavers
      • Lockscreen Widgets
      • Audio Cues
  • 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
    • Bootloader
      • Boot Choices
      • Kernel Environments
      • Custom Boot Styles
    • Inner Workings
      • Kernel Settings
        • Mechanics of Settings App
        • Settings Format
        • Custom Settings
      • Shell Structure
        • Help System
        • Command Parsing
        • Command Information
        • Command Switches
        • Shell History
        • Shell Scripting
        • Shell Presets
        • Extra Shell Features
      • Multilingual Kernel
        • Locale Tools
        • 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
  • Color types
  • Color selector
  • Color conversion
  • Resetting colors
Edit on GitHub
  1. Advanced and Power Users
  2. Inner Workings
  3. Inner Essentials

Color Internals

All of the colors!

Last updated 3 months ago

Nitrocid KS uses Terminaux to manipulate with the colors and configure them for the kernel to use. The kernel employs several of the color types for the kernel components, your addons, or your mods to use when writing text using the Nitrocid's console writer.

The ConsoleBase namespace contains a namespace dedicated to color management called Colors that contains a plenty of useful tools for kernel color manipulation. Currently, it contains the following classes:

  • KernelColorConversionTools

  • KernelColorTools

It also contains the following enumerations for different tools:

  • KernelColorSetErrorReasons

  • KernelColorType

Scroll down in this page to get started with the list of amazing color tools. For the general color tools, you may consult the Terminaux manual:

Color types

Nitrocid KS provides you with the following color types to help you make an inspiring theme with nice colors for each type:

Type
Description

Input

Input text

License

License color

ContKernelError

Continuable kernel panic text (usually sync'd with Warning)

UncontKernelError

Uncontinuable kernel panic text (usually sync'd with Error)

HostNameShell

Host name color

UserNameShell

User name color

Background

Background color

NeutralText

Neutral text (for general purposes)

ListEntry

List entry text

ListValue

List value text

Stage

Stage text

Error

Error text

Warning

Warning text

Option

Option text

Banner

Banner text

NotificationTitle

Notification title text

NotificationDescription

Notification description text

NotificationProgress

Notification progress text

NotificationFailure

Notification failure text

Question

Question text

Success

Success text

UserDollar

User dollar sign on shell text

Tip

Tip text

SeparatorText

Separator text

Separator

Separator color

ListTitle

List title text

DevelopmentWarning

Development warning text

StageTime

Stage time text

Progress

General progress text

BackOption

Back option text

LowPriorityBorder

Low priority notification border color

MediumPriorityBorder

Medium priority notification border color

HighPriorityBorder

High priority notification border color

TableSeparator

Table separator

TableHeader

Table header

TableValue

Table value

SelectedOption

Selected option

AlternativeOption

Alternative option

WeekendDay

Weekend day

EventDay

Event day

TableTitle

Table title

TodayDay

Today

TuiBackground

Interactive TUI background color

TuiForeground

Interactive TUI foreground color

TuiPaneBackground

Interactive TUI pane background color

TuiPaneSeparator

Interactive TUI pane separator color

TuiPaneSelectedSeparator

Interactive TUI pane selected separator color

TuiPaneSelectedItemFore

Interactive TUI pane selected item color (foreground)

TuiPaneSelectedItemBack

Interactive TUI pane selected item color (background)

TuiPaneItemFore

Interactive TUI pane item color (foreground)

TuiPaneItemBack

Interactive TUI pane item color (background)

TuiOptionBackground

Interactive TUI option background color

TuiKeyBindingOption

Interactive TUI key binding in option color

TuiOptionForeground

Interactive TUI option foreground color

TuiBoxBackground

Interactive TUI box background color

TuiBoxForeground

Interactive TUI box foreground color

DisabledOption

Disabled option color

TuiKeyBindingBuiltinBackgroundColor

Interactive TUI builtin key binding background color

TuiKeyBindingBuiltinForegroundColor

Interactive TUI builtin key binding foreground color

TuiKeyBindingBuiltinColor

Interactive TUI builtin key binding color

Color selector

The color selector is an interactive TUI that allows you to seamlessly select your favorite color, while getting information about it in the main screen, such as the converted color models, the color levels, and more.

To get information about how to use it, you can find it in the Terminaux manual page:

Color conversion

Your theme files can also support any specifier, as long as the specifier is supported by Terminaux. For a quick reminder, Terminaux supports the true-color specifiers, alongside the color name or the color number, if you intend to use another color model to select colors.

The commands provided by the color conversion Extras addon help you convert from a color model, such as RGB, to another color model, such as CMYK.

KernelColorConversionTools provides you all possible conversion methods to convert a color model to another color model to generate appropriate color specifiers converted to the target unit to create new Color instances for your mod's appearance.

For example, if you have Cyan, Magenta, and Yellow values and you want a hex code of it, you can use one of the following function overloads of ConvertFromCmykToHex():

  • ConvertFromCmykToHex(int C, int M, int Y, int K)

  • ConvertFromCmykToHex(string CMYKSequence)

Resetting colors

If you need to reset the colors for further text to be written to the console in its natural colors, you can use the ResetColors() function in the KernelColorTools class to reset the foreground and the background colors to their defaults.

public static void ResetColors(bool useKernelColors = false)

Additionally, if you pass true to the useKernelColors parameter, the colors will be reset to the neutral text color for the foreground color and the kernel background color for the background color.

Terminaux - Manual
Color WheelHere's how you can let the users choose their own colors