Author SHA1 Message Date
tema5002 a5de781471 refactor: move source files to src/ directory 2026-09-19 12:30:33 +03:00
tema5002 d2ad6be236 Add telnet (kinda) 2026-08-08 20:16:59 +03:00
tema5002 ca65d252c9 acidentally messed up mcplayers changes :( also fuck you your code sucks ok sorry that was probably rude but still go fu 2026-07-19 11:47:30 +03:00
mcplayer3 fc184ea591 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
2026-07-19 11:47:23 +03:00
tema5002 8a76ca11c9 The last cutting-edge commit out of the lot making the terminal a lot nicer 2026-07-19 11:45:07 +03:00
tema5002 8a3a34efc0 Update halyde/kernel/modules/terminal.lua 2026-07-19 11:44:05 +03:00
tema5002 996d81129d I am a moron 2026-07-19 11:44:02 +03:00
tema5002 499dfd6843 Amiga Going Ball demo recreation 2026-07-19 11:43:58 +03:00
mcplayer3 8aa08814a1 Apparently I left in some unused variables that were supposed to be removed by Tema 2026-06-20 15:40:58 +03:00
mcplayer3 eaae852961 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
2026-06-20 15:40:51 +03:00
105 changed files with 114 additions and 4 deletions
View File
+60
View File
@@ -0,0 +1,60 @@
-- Despite the name it's not telnet
local component = require("component")
if not component.isAvailable("internet") then
terminal.write("telnet: this program requires an internet card to run\n")
return
end
local internet = component.internet
if not internet.isTcpEnabled() then
terminal.write("telnet: TCP disabled\n")
return
end
local arg = {...}
local host = arg[1]
local port = tonumber(arg[2])
local sock = internet.connect(host, port)
local connected = false
local err
for _ = 1, 5 do
local ok
ok, err = sock.finishConnect()
if ok then
connected = true
break
end
coroutine.yield()
end
if not connected then
print("telnet: " .. err)
return
end
print(("connected to %s:%d"):format(host, port))
while true do
local fromSocket = sock.read(math.maxinteger or math.huge)
if fromSocket == nil then
print("telnet: connection closed")
sock.close()
return
end
terminal.write(fromSocket)
terminal.flush()
local fromTerminal = terminal.read()
if fromTerminal == "" then
sock.close()
return
end
while fromTerminal ~= "" do
local nbytes, err = sock.write(fromTerminal .. "\r\n")
if err then
print("telnet: " .. err)
return
end
fromTerminal = fromTerminal:sub(nbytes + 1)
end
end
+1
View File
@@ -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"}}}
+24
View File
@@ -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"
}
}
}
@@ -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)])
end
for i = 0, 7 do
palette["bright"][i] = tonumber(config.palette.bright[tostring(i)])
end
require("log").terminal.info("Set color palette: " .. serialize(palette, nil))
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
@@ -567,7 +592,7 @@ function module.init()
local args = { ... }
local stringArgs = {}
for _, arg in pairs(args) do
if type(arg) == "table" then
if type(arg)=="table" then
table.insert(stringArgs, serialize(arg))
elseif tostring(arg) then
table.insert(stringArgs, tostring(arg))
View File
View File
View File
View File
View File

Some files were not shown because too many files have changed in this diff Show More