From 2d93974e6a10bac767e6c2591757ea34a98973fd Mon Sep 17 00:00:00 2001 From: "kepler155c@gmail.com" Date: Tue, 26 Sep 2017 01:40:02 -0400 Subject: [PATCH] better startup --- sys/apis/opus.lua | 13 ++++--------- sys/apps/Overview.lua | 7 +++++++ sys/apps/multishell | 22 +++++++++------------- sys/apps/shell | 3 ++- sys/boot/multishell.boot | 32 ++++++++++++++++++++++++++------ 5 files changed, 48 insertions(+), 29 deletions(-) diff --git a/sys/apis/opus.lua b/sys/apis/opus.lua index 9d9166f..02e9b81 100644 --- a/sys/apis/opus.lua +++ b/sys/apis/opus.lua @@ -1,6 +1,6 @@ local Opus = { } -local function runDir(directory, desc, open) +local function runDir(directory, open) if not fs.exists(directory) then return true end @@ -37,18 +37,13 @@ local function runDir(directory, desc, open) return success end -function Opus.loadExtensions() - --return runDir('sys/extensions', '[ ext ] ', shell.run) - return true -end - function Opus.loadServices() - return runDir('sys/services', '[ svc ] ', shell.openHiddenTab) + return runDir('sys/services', shell.openHiddenTab) end function Opus.autorun() - local s = runDir('sys/autorun', '[ aut ] ', shell.run) - return runDir('usr/autorun', '[ aut ] ', shell.run) and s + local s = runDir('sys/autorun', shell.run) + return runDir('usr/autorun', shell.run) and s end return Opus diff --git a/sys/apps/Overview.lua b/sys/apps/Overview.lua index 0f195da..9d6e2b8 100644 --- a/sys/apps/Overview.lua +++ b/sys/apps/Overview.lua @@ -134,6 +134,7 @@ local page = UI.Page { accelerators = { r = 'refresh', e = 'edit', + f = 'files', s = 'shell', l = 'lua', [ 'control-l' ] = 'refresh', @@ -337,6 +338,12 @@ function page:eventHandler(event) focused = true, }) + elseif event.type == 'files' then + multishell.openTab({ + path = 'sys/apps/Files.lua', + focused = true, + }) + elseif event.type == 'focus_change' then if event.focused.parent.UIElement == 'Icon' then event.focused.parent:scrollIntoView() diff --git a/sys/apps/multishell b/sys/apps/multishell index f5947a5..b271cf8 100644 --- a/sys/apps/multishell +++ b/sys/apps/multishell @@ -37,23 +37,23 @@ local tabsDirty = false local config = { standard = { + textColor = colors.lightGray, + tabBarTextColor = colors.lightGray, focusTextColor = colors.white, + backgroundColor = colors.gray, + tabBarBackgroundColor = colors.gray, focusBackgroundColor = colors.gray, - textColor = colors.gray, - backgroundColor = colors.lightGray, - tabBarTextColor = colors.black, - tabBarBackgroundColor = colors.lightGray, }, color = { - focusTextColor = colors.white, - focusBackgroundColor = colors.black, textColor = colors.lightGray, - backgroundColor = colors.black, tabBarTextColor = colors.lightGray, - tabBarBackgroundColor = colors.black, + focusTextColor = colors.white, + backgroundColor = colors.gray, + tabBarBackgroundColor = colors.gray, + focusBackgroundColor = colors.gray, }, -- path = '.:/apps:' .. shell.path():sub(3), - path = 'usr/apps:sys/apps:' .. shell.path(), + path = shell.path(), } Config.load('multishell', config) @@ -463,10 +463,6 @@ end) local function startup() local hasError - --if not Opus.loadExtensions() then - -- hasError = true - --end - local overviewId = multishell.openTab({ path = 'sys/apps/Overview.lua', focused = true, diff --git a/sys/apps/shell b/sys/apps/shell index 630d2f6..8d3c92a 100644 --- a/sys/apps/shell +++ b/sys/apps/shell @@ -1,13 +1,14 @@ local parentShell = shell local shell = { } +local multishell = multishell or { } local sandboxEnv = setmetatable({ }, { __index = _G }) for k,v in pairs(getfenv(1)) do sandboxEnv[k] = v end sandboxEnv.shell = shell -sandboxEnv.multishell = multishell or { } +sandboxEnv.multishell = multishell requireInjector(getfenv(1)) diff --git a/sys/boot/multishell.boot b/sys/boot/multishell.boot index a5286b9..31b657f 100644 --- a/sys/boot/multishell.boot +++ b/sys/boot/multishell.boot @@ -1,17 +1,33 @@ -- Loads the Opus environment regardless if the file system is local or not local w, h = term.getSize() -local str = 'Opus OS' +local str = 'Loading Opus...' term.setTextColor(colors.white) if term.isColor() then term.setBackgroundColor(colors.cyan) -else - term.setBackgroundColor(colors.lightGray) + term.clear() + local opus = { + '9999900', + '999907000', + '9900770b00 4444', + '99077777444444444', + '907777744444444444', + '90000777444444444', + '070000111744444', + '777770000', + '7777000000', + '70700000000', + '077000000000', + } + for k,line in ipairs(opus) do + term.setCursorPos((w - 18) / 2, k + (h - #opus) / 2) + term.blit(string.rep(' ', #line), string.rep('a', #line), line) + end end -term.setCursorPos((w - #str) / 2, h / 2) -term.clear() + +term.setCursorPos((w - #str) / 2, h) term.write(str) -term.setCursorPos(1, h / 2 + 2) +term.setCursorPos(w, h) local GIT_REPO = 'kepler155c/opus/develop' local BASE = 'https://raw.githubusercontent.com/' .. GIT_REPO @@ -37,6 +53,8 @@ local function run(file, ...) end if not s then +-- term.setBackgroundColor(colors.black) +-- term.clear() printError('Error loading ' .. file) error(m) end @@ -54,6 +72,8 @@ local function runUrl(file, ...) return fn(...) end end +-- term.setBackgroundColor(colors.black) +-- term.clear() error('Failed to download ' .. url) end