Igor Timofeev 26b0e52a43 )))))
2018-05-19 02:41:17 +03:00
2018-05-19 02:39:39 +03:00
2018-03-11 10:25:13 +03:00
2017-02-06 10:30:19 +03:00
2018-04-22 16:56:13 +03:00
2018-04-25 02:16:12 +03:00
2018-05-19 02:39:39 +03:00
2018-05-13 00:05:09 +03:00
2017-12-25 07:33:54 +03:00
2017-11-29 10:05:14 +03:00
2017-02-06 10:17:08 +03:00
2018-05-19 02:41:17 +03:00
))
2018-05-19 02:25:46 +03:00

About

MineOS is half the operating system and half the graphical environment for OpenOS, which comes in OpenComputers mod by default. It has following features:

  • Multitasking
  • Windowed interface with double buffered graphics context
  • Animations, wallpapers, screensavers and color schemes
  • Language packs and software localization
  • User authorization by password and biometrics
  • Support for file sharing over the local network via modems
  • Support for client connection to real FTP servers
  • Error reporting system with the possibility to send information to developers
  • Store applications with the possibility to publish their own creations and a system of user ratings
  • An integrated IDE with a debugger and a significant amount of applications
  • Open source system API and detailed illustrated documentations
  • Custom EEPROM firmware with the possibility to select/format the boot volume and Internet recovery
  • Almost complete compatibility with OpenOS software

Installation

Make sure that your computer meets the minimum configuration before installation:

Device Tier Count
Computer case 3 1
Screen 3 1
Keyboard - 1
CPU 3 1
GPU 3 1
RAM 3.5 2
Internet card - 1
EEPROM (Lua BIOS) - 1
OpenOS floppy - 1

It is also recommended to add a wireless modem to connect computers to the home network. Now you can turn on the computer. By default, the OpenOS boots from the inserted floppy, you just have to install it on your hard disk, similar to installing a real OS. Use the install command:

After the installation is complete, you will be prompted to make the hard disk bootable, and restart the computer. After rebooting, you can start installing MineOS. To do this, enter the following command in the console:

pastebin run 0nm5b1ju

The computer will be analyzed for compliance with the minimum requirements, after which a pretty installer will be launched. You can change some system options to your taste, and, agreeing with the license agreement, install MineOS.

How to develop MineOS applications

Each MineOS application is a directory with .app extension, which has the following contents:

The Main.lua file is launched on application start, and Icon.pic is used to display application icon. The easiest way to create an application is to click on the corresponding option in the context menu:

You will be asked to choose the name of your application, as well as its icon. If the icon is not choosen, then the system icon will be used. To modify the source code of an application, just edit the Main.lua file.

MineOS uses the most advanced libraries to create UI applications. Below is a table with illustrated documentation for libraries that are highly recommended for reading:

Library Documentation
GUI https://github.com/IgorTimofeev/GUI
DoubleBuffering https://github.com/IgorTimofeev/DoubleBuffering
Image https://github.com/IgorTimofeev/Image
Color https://github.com/IgorTimofeev/Color

The next step is using MineOSInterface library that comes bundled with MineOS. It implements the main system widgets, and is also responsible for all windows manipulations. It has following public methods:

MineOSInterface.addWindow( window ): table mainContainer, table window

Type Parameter Description
table window Pointer to the window object

Adds the window object create via GUI library to the MineOS environment, registers its icon in the Dock and add event handlers to it. First returned value is the MineOS main container that handles all event data and the second one is a pointer to your window object.

Here is nice example of tabbed window that can change it "brightness" in real time.:

local color = require("color")
local GUI = require("GUI")
local MineOSInterface = require("MineOSInterface")

-------------------------------------------------------------------------------

-- Create a tabbed window and register it in MineOS environment
local mainContainer, window = MineOSInterface.addWindow(GUI.tabbedWindow(1, 1, 88, 25))
-- Add some stuff into it's tab bar
window.tabBar:addItem("Tab 1")
window.tabBar:addItem("Tab 2")
window.tabBar:addItem("Tab 3")
window.tabBar:addItem("Yay another tab")
-- Add a single cell layout to window
local layout = window:addChild(GUI.layout(1, 4, window.width, window.height - window.tabBar.height, 1, 1))
-- Add a horizontal slider to layout
local slider = layout:addChild(GUI.slider(1, 1, 26, 0x66DB80, 0x0, 0x009200, 0xAAAAAA, 0, 100, 100, false, "Brightness: ", "%"))
-- Attach callback-function .onValueChanged to it
slider.onValueChanged = function()
	-- Calculate "brightness" color value
	local channelValue = math.floor(slider.value / slider.maximumValue * 255)
	local newColor = color.RGBToInteger(channelValue, channelValue, channelValue)
	-- Set new color to all required widgets
	window.backgroundPanel.colors.background = newColor
	window.tabBar.colors.selected.background = newColor
	window.tabBar.colors.selected.text = 0xFFFFFF - newColor
	-- Draw changes on screen
	mainContainer:drawOnScreen()
end
-- Call this function once to calculate brightess and draw data on screen
slider.onValueChanged()

Result:

Description
Home of MineOS and it's software for OpenComputers mod
Readme JSON 28 MiB
Languages
Lua 70.7%
Roff 29.3%