{"id":18512454,"url":"https://github.com/funnyguy9796/filo","last_synced_at":"2025-07-29T14:10:08.073Z","repository":{"id":250799367,"uuid":"835508324","full_name":"FunnyGuy9796/filo","owner":"FunnyGuy9796","description":"Filo is a new web-based operating system that aims to be both user-friendly and lightweight.","archived":false,"fork":false,"pushed_at":"2024-10-10T18:44:49.000Z","size":2467,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-17T03:17:34.121Z","etag":null,"topics":["web","web-based-os","web-os"],"latest_commit_sha":null,"homepage":"","language":"EJS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FunnyGuy9796.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T01:43:49.000Z","updated_at":"2024-10-10T18:44:53.000Z","dependencies_parsed_at":"2024-07-30T06:17:06.174Z","dependency_job_id":"c28a9789-bbd9-4b6a-9c36-295bce7210cf","html_url":"https://github.com/FunnyGuy9796/filo","commit_stats":null,"previous_names":["funnyguy9796/filo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FunnyGuy9796%2Ffilo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FunnyGuy9796%2Ffilo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FunnyGuy9796%2Ffilo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FunnyGuy9796%2Ffilo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FunnyGuy9796","download_url":"https://codeload.github.com/FunnyGuy9796/filo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140769,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["web","web-based-os","web-os"],"created_at":"2024-11-06T15:34:12.370Z","updated_at":"2025-05-14T12:13:06.293Z","avatar_url":"https://github.com/FunnyGuy9796.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e Filo is in an early developmental state, while each feature is tested before being released issues may still arise upon use. The developers of Filo or any related software are not responsible for anything that may occur to the host system or any other software or hardware components.\n# Filo\nFilo is a new web-based operating system that aims to be both user-friendly and lightweight.\n## Goal\nFilo was created with the goal of being a possible choice for a daily driver. The design is centered around portability and usability in order to provide a system suited for almost every use-case.\n## Possible Use-Cases\n- Running on a remote server or local machine and being used through a web browser\n- Running on a remote server or local machine and being used through a custom Debian-based Linux distro in a web-wrapper\n  - Essentially the main desktop environment for the system\n## Installation Instructions\n1. Clone this repository\n     ```\n     git clone https://github.com/FunnyGuy9796/filo.git\n     cd filo\n     ```\n2. Configure the system by editing `config.json`\n   - `port` - Defines which port Filo will run on\n   - `services_path` - Defines where Filo services will be located on the host system\n   - `apps_path` - Defines where Filo applications will be located on the host system\n   - `network_required` - Defines whether a network connection is required to run Filo\n3. After ensuring proper configurations run the following commands\n     ```\n     npm install\n     npm start\n     ```\n![Console startup](public/images/console_startup.png)\n4. Once the system has booted ensure that all components have started successfully and navigate to the URL printed to the terminal\n![Desktop](public/images/desktop.png)\n## API Documentation - WIP\nIncluding the Filo API in your project is as simple as include a script tag in your .ejs file.\n#### `\u003cscript src=\"/js/filo-api.js\"\u003e\u003c/script\u003e`\n### UI\n#### filo.ui.launchApp()\nAllows you to dynamically launch another app from within your app.\n#### Syntax\n```\nfilo.ui.launchApp()\nfilo.ui.launchApp(appId)\nfilo.ui.launchApp(appId, args)\nfilo.ui.launchApp(args)\n```\n#### Parameters\n##### appId `(String)`\nID of the app. If not provided, a new instance of the current app will be launched.\n##### args `(Object)`\nArguments to decide how the app is launched.\n- `x` - The X position of the app window. `(in pixels)`\n- `y` - The Y position of the app window. `(in pixels)`\n- `width` - The width of the app window. `(in pixels)`\n- `height` - The height of the app window. `(in pixels)`\n- `isMax` - Determines whether the app should start maximized or not `(boolean)`\n#### filo.ui.notify()\nAllows you to display a notification on the desktop.\n#### Syntax\n```\nfilo.ui.notify(title, body)\nfilo.ui.notify(title, body, actionText, action)\n```\n#### Parameters\n##### title `(String)`\nTitle to be displayed in the notification.\n##### body `(String)`\nBody to be displayed in the notification.\n##### actionText `(String)`\nText to be displayed in the action button.\n##### action `(Function)`\nA function to be called when the action button is clicked.\n- If no action is provided the action button will not be visible.\n#### filo.ui.tooltip()\nAllows you to display a tooltip above an HTML element.\n#### Syntax\n```\nfilo.ui.tooltip(object, text)\n```\n#### Parameters\n##### object `(DOM Element)`\nThe HTML element the tooltip is assigned to.\n##### text `(String)`\nThe text displayed in the tooltip.\n### MEM - TODO\n### FS - TODO\n### SYS - TODO","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunnyguy9796%2Ffilo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunnyguy9796%2Ffilo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunnyguy9796%2Ffilo/lists"}