From b5c08512ec32f2babb81e4d5dc342a892507cc92 Mon Sep 17 00:00:00 2001 From: mcplayer3 <219271061+mcplayer3@users.noreply.github.com> Date: Sat, 20 Jun 2026 22:19:36 +1000 Subject: [PATCH] Started to add custom colour palettes I have literally no idea why it wont work but if anyone picks this up you'll know it works when the old Halyde colours show up # Conflicts: # halyde/kernel/modules/terminal.lua --- halyde/config/generate/terminal.json | 1 + halyde/config/terminal.json | 24 +++++++++++++++++++++ halyde/kernel/modules/terminal.lua | 31 +++++++++++++++++++++++++--- 3 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 halyde/config/generate/terminal.json create mode 100644 halyde/config/terminal.json diff --git a/halyde/config/generate/terminal.json b/halyde/config/generate/terminal.json new file mode 100644 index 0000000..2d43851 --- /dev/null +++ b/halyde/config/generate/terminal.json @@ -0,0 +1 @@ +{"palette":{"dark":{"0":"171421","1":"c01c28","2":"26a269","3":"a2734c","4":"12488b","5":"a347ba","6":"2aa1b3","7":"d0cfcc"},"bright":{"0":"5e5c64","1":"f66151","2":"33d17a","3":"e9ad0c","4":"2a7bde","5":"c061cb","6":"33c7de","7":"ffffff"}}} \ No newline at end of file diff --git a/halyde/config/terminal.json b/halyde/config/terminal.json new file mode 100644 index 0000000..a647b59 --- /dev/null +++ b/halyde/config/terminal.json @@ -0,0 +1,24 @@ +{ + "palette": { + "dark": { + "0": "0x0f0f0f", + "1": "0xcc2424", + "2": "0x339280", + "3": "0x996d00", + "4": "0x004980", + "5": "0x9949c0", + "6": "0x33b6c0", + "7": "0xc3c3c3" + }, + "bright": { + "0": "0x666d80", + "1": "0xff6d40", + "2": "0x33db80", + "3": "0xffb600", + "4": "0x336dff", + "5": "0xcc6dc0", + "6": "0x33dbc0", + "7": "0xffffff" + } + } +} \ No newline at end of file diff --git a/halyde/kernel/modules/terminal.lua b/halyde/kernel/modules/terminal.lua index 1651087..37415b6 100644 --- a/halyde/kernel/modules/terminal.lua +++ b/halyde/kernel/modules/terminal.lua @@ -15,6 +15,8 @@ function module.init() local serialize = require("serialize") local unicode = require("unicode") local event = require("event") + local fs = require("filesystem") + local json = require("json") local component = require("component") local gpu = component.gpu @@ -39,6 +41,19 @@ function module.init() table.insert(readHistory[id], hist) end + if not fs.exists("/halyde/config/terminal.json") then + fs.copy("/halyde/config/generate/terminal.json", "/halyde/config/terminal.json") + end + local config = "" + local tmpdata + local handle = fs.open("/halyde/config/terminal.json") + repeat + tmpdata = handle:read(math.huge) + config = config .. (tmpdata or "") + until not tmpdata + config = json.decode(config) + require("log").terminal.info("Loaded config file: " .. serialize(config, " ")) + local function getColorPalette(depth) if depth == 1 then return { @@ -91,7 +106,16 @@ function module.init() } end if depth == 8 then - return { + local palette = {["dark"] = {}, ["bright"] = {}} + for i = 0, 7 do + palette["dark"][i] = tonumber(config.palette.dark[tostring(i)], 16) + end + for i = 0, 7 do + palette["bright"][i] = tonumber(config.palette.bright[tostring(i)], 16) + end + require("log").terminal.info("Set color palette: " .. serialize(palette)) + return palette + --[[ return { ["dark"] = { [0] = 0x0f0f0f, -- black [1] = 0xcc2424, -- dark red @@ -112,7 +136,7 @@ function module.init() [6] = 0x33dbc0, -- cyan [7] = 0xffffff -- white } - } + } ]] end --[[ Original color palette: { @@ -146,8 +170,9 @@ function module.init() local cursor = { x = 1, y = 1, X = nil, Y = nil } -- X and Y are managed by ESC s and ESC u local printState = 0 -- 0:none 1:in ESC 2:in CSI - local DEFAULT_FG = ANSIColorPalette["bright"][7] -- TODO make configurable + local DEFAULT_FG = ANSIColorPalette["bright"][7] local DEFAULT_BG = ANSIColorPalette["dark"][0] + require("log").terminal.info("FG and BG: " .. DEFAULT_FG .. " " .. DEFAULT_BG) local fg = DEFAULT_FG local bg = DEFAULT_BG local gpuFg = nil