├── .github └── workflows │ ├── deploy.yml │ └── test.yml ├── .gitignore ├── .vscode ├── doc-snippets.code-snippets ├── extensions.json └── settings.json ├── README.md ├── babel.config.js ├── blog ├── authors.yml └── package-lock.json ├── docs ├── apps │ ├── MinimalApps │ │ ├── Files │ │ │ ├── Classification.mdx │ │ │ ├── _category_.json │ │ │ ├── about-files.mdx │ │ │ ├── context-menu.mdx │ │ │ ├── different-views.mdx │ │ │ ├── file-color-tagging.mdx │ │ │ ├── file-context-menu.mdx │ │ │ ├── file-sharing.mdx │ │ │ ├── icons-for-each-file-type.mdx │ │ │ ├── path-on-top.mdx │ │ │ ├── searching-capabilities.mdx │ │ │ ├── sorting-capabilities.mdx │ │ │ └── undo-redo-an-action.mdx │ │ └── _category_.json │ └── apps-intro.mdx ├── avdanos │ ├── contributing │ │ ├── _category_.json │ │ ├── design │ │ │ ├── _category_.json │ │ │ └── design_guidelines │ │ │ │ ├── _category_.json │ │ │ │ ├── intro.mdx │ │ │ │ ├── kde-guidelines.mdx │ │ │ │ └── website.mdx │ │ ├── development │ │ │ ├── _category_.json │ │ │ ├── code_guidelines │ │ │ │ ├── _category_.json │ │ │ │ ├── c-guidelines.mdx │ │ │ │ ├── cpp-guidelines.mdx │ │ │ │ └── rust-guidelines.mdx │ │ │ └── submitting-changes.mdx │ │ └── documentation │ │ │ ├── _category_.json │ │ │ ├── guidelines.mdx │ │ │ ├── index.mdx │ │ │ └── submitting-changes.mdx │ ├── faq.md │ ├── gui │ │ ├── _category_.json │ │ ├── animations.mdx │ │ ├── appearance.mdx │ │ ├── cursor.mdx │ │ ├── dock.mdx │ │ └── widgets.mdx │ └── intro.mdx ├── demo │ ├── demo-backrooms │ │ ├── _category_.json │ │ ├── how-it-works.mdx │ │ ├── libdemo.mdx │ │ ├── libdrag.mdx │ │ ├── libwin.mdx │ │ ├── loadAdd.mdx │ │ └── usage.mdx │ ├── demo-intro.mdx │ ├── libdemo │ │ ├── Placeholder │ │ │ ├── _category_.json │ │ │ └── about.mdx │ │ ├── Player │ │ │ ├── _category_.json │ │ │ ├── about.mdx │ │ │ ├── getDuration.mdx │ │ │ ├── getIndex.mdx │ │ │ ├── getList.mdx │ │ │ ├── getTime.mdx │ │ │ ├── getVolume.mdx │ │ │ ├── next.mdx │ │ │ ├── paused.mdx │ │ │ ├── prev.mdx │ │ │ ├── reload.mdx │ │ │ ├── setIndex.mdx │ │ │ ├── setTime.mdx │ │ │ ├── setVolume.mdx │ │ │ └── toggle.mdx │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── widget-template.mdx │ │ └── window-template.mdx │ ├── libdrag │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── add.mdx │ │ ├── click.mdx │ │ ├── drop.mdx │ │ ├── dropAll.mdx │ │ ├── get.mdx │ │ ├── listen.mdx │ │ └── wipe.mdx │ └── libwin │ │ ├── Appbar │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── get.mdx │ │ └── set.mdx │ │ ├── ContextMenu │ │ ├── _category_.json │ │ └── about.mdx │ │ ├── Keylogger │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── getKeys.mdx │ │ ├── getList.mdx │ │ ├── press.mdx │ │ └── unpress.mdx │ │ ├── Layer │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── get.mdx │ │ └── inc.mdx │ │ ├── Scrollbar │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── get.mdx │ │ └── set.mdx │ │ ├── Window │ │ ├── _category_.json │ │ ├── about.mdx │ │ ├── close.mdx │ │ ├── closeTab.mdx │ │ ├── get.mdx │ │ ├── inc.mdx │ │ ├── make.mdx │ │ └── merge.mdx │ │ ├── Workspace │ │ ├── _category_.json │ │ ├── add.mdx │ │ ├── get.mdx │ │ └── set.mdx │ │ ├── _category_.json │ │ └── about.mdx ├── intro.md ├── nadva │ └── navda-intro.mdx └── navda │ ├── multitasking │ ├── _category_.json │ ├── intro.mdx │ ├── tabs.mdx │ ├── tiling.mdx │ └── virtual-desktops.mdx │ ├── navda-intro.mdx │ └── personalization │ ├── _category_.json │ ├── appearance-schedule.mdx │ └── themes.mdx ├── docusaurus.config.js ├── i18n └── en │ ├── code.json │ ├── docusaurus-plugin-content-blog │ └── options.json │ ├── docusaurus-plugin-content-docs-nadva │ └── current.json │ ├── docusaurus-plugin-content-docs │ └── current.json │ └── docusaurus-theme-classic │ ├── footer.json │ └── navbar.json ├── package-lock.json ├── package.json ├── sidebar ├── apps.js ├── avdanos.js ├── demo.js └── navda.js ├── src ├── components │ ├── HomepageFeatures │ │ ├── index.js │ │ └── styles.module.css │ ├── media │ │ ├── autoplay.js │ │ └── youtube-embed.js │ └── notices │ │ ├── incomplete.js │ │ └── index.js ├── css │ └── custom.css ├── pages │ ├── index.js │ ├── index.module.css │ └── markdown-page.md └── theme │ └── MDXComponents.js ├── static ├── .nojekyll ├── img │ ├── card-navda.png │ ├── card-tinan.png │ ├── card-website.png │ ├── classification.png │ ├── context_menu_1.png │ ├── context_menu_2.png │ ├── context_menu_pie.png │ ├── cursor-1.png │ ├── cursor-2.png │ ├── demo-window.png │ ├── desktop-widgets.png │ ├── desktop.png │ ├── dock.png │ ├── docks.png │ ├── docusaurus.png │ ├── favicon.ico │ ├── file_color_tag.png │ ├── file_explorer.png │ ├── logo.png │ ├── logo.svg │ ├── placeholder-template.png │ ├── sorting_files.png │ ├── summoned-widgets-1.png │ ├── summoned-widgets-2.png │ ├── taskbar-widgets-1.png │ ├── taskbar-widgets-2.png │ ├── taskbar-widgets-3.png │ ├── taskbar-widgets-4.png │ ├── themes-1.png │ ├── themes-2.png │ ├── undraw_docusaurus_mountain.svg │ ├── undraw_docusaurus_react.svg │ ├── undraw_docusaurus_tree.svg │ ├── views.png │ └── win-template.png └── vid │ ├── animation-1.webm │ ├── appearance-schedule.webm │ ├── desktops.webm │ ├── macbook-air.webm │ ├── side-by-side.webm │ ├── synthetic-tabs.webm │ ├── tabs.webm │ └── themes.webm ├── tsconfig.json └── types └── index.d.ts /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy Docs site 2 | 3 | on: 4 | push: 5 | branches: ["main"] 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | strategy: 10 | matrix: 11 | node-version: [16.x] # Are you are missing this specification? 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: Use Node.js ${{ matrix.node-version }} 15 | uses: actions/setup-node@v2 16 | with: 17 | node-version: ${{ matrix.node-version }} 18 | cache: "npm" 19 | cache-dependency-path: "**/package-lock.json" # THIS PATTERN did the trick for me. 20 | - run: npm install && npm run build && touch build/.nojekyll 21 | - name: Deploy 🚀 22 | uses: JamesIves/github-pages-deploy-action@v4.2.5 23 | with: 24 | folder: build 25 | branch: gh-pages # The branch the action should deploy to. 26 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test Build (docs) 2 | on: 3 | # Triggers the workflow on push or pull request events but only for the "main" branch 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | strategy: 13 | matrix: 14 | node-version: ["16.x"] # [12.x, 14.x, 16.x] 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | ref: dev 19 | - name: Use Node.js ${{ matrix.node-version }} 20 | uses: actions/setup-node@v3 21 | with: 22 | node-version: ${{ matrix.node-version }} 23 | - run: npm install 24 | - run: npm run build --if-present 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | yarn.lock -------------------------------------------------------------------------------- /.vscode/doc-snippets.code-snippets: -------------------------------------------------------------------------------- 1 | { 2 | // Place your docsite workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and 3 | // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope 4 | // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is 5 | // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: 6 | // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. 7 | // Placeholders with the same ids are connected. 8 | // Example: 9 | // "Print to console": { 10 | // "scope": "javascript,typescript", 11 | // "prefix": "log", 12 | // "body": [ 13 | // "console.log('$1');", 14 | // "$2" 15 | // ], 16 | // "description": "Log output to console" 17 | // } 18 | "🚧 Under Construction": { 19 | "scope": "markdown,markdown-react", 20 | "prefix": ["@notice/progress", "@notice/wip", "@notice/construction", "@notice/incomplete"], 21 | "body": [ 22 | "" 23 | ], 24 | "description": "Place 'under construction' notice" 25 | }, 26 | "Tip": { 27 | "scope": "markdown,markdown-react", 28 | "prefix": "@docs/tip", 29 | "body": [ 30 | ":::tip", 31 | "$1", 32 | ":::" 33 | ] 34 | }, 35 | "Caution": { 36 | "scope": "markdown,markdown-react", 37 | "prefix": "@docs/caution", 38 | "body": [ 39 | ":::caution", 40 | "$1", 41 | ":::" 42 | ] 43 | }, 44 | "Info": { 45 | "scope": "markdown,markdown-react", 46 | "prefix": "@docs/info", 47 | "body": [ 48 | ":::info", 49 | "$1", 50 | ":::" 51 | ] 52 | }, 53 | "Note": { 54 | "scope": "markdown,markdown-react", 55 | "prefix": "@docs/note", 56 | "body": [ 57 | ":::note", 58 | "$1", 59 | ":::" 60 | ] 61 | }, 62 | "Danger": { 63 | "scope": "markdown,markdown-react", 64 | "prefix": "@docs/danger", 65 | "body": [ 66 | ":::danger", 67 | "$1", 68 | ":::" 69 | ] 70 | }, 71 | "Auto Play Video": { 72 | "scope": "markdown,markdown-react", 73 | "prefix": "@docs/vid", 74 | "body": [ 75 | "import AutoPlay from \"@site/src/components/media/autoplay.js\";", 76 | "", 77 | "" 78 | ] 79 | } 80 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. 3 | // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp 4 | 5 | // List of extensions which should be recommended for users of this workspace. 6 | "recommendations": [ 7 | "streetsidesoftware.code-spell-checker", 8 | "yzhang.markdown-all-in-one", 9 | "JounQin.vscode-mdx" 10 | ], 11 | // List of extensions recommended by VS Code that should not be recommended for users of this workspace. 12 | "unwantedRecommendations": [ 13 | 14 | ] 15 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "Avdan", 4 | "avdanos", 5 | "documentors", 6 | "Navda", 7 | "WEBM" 8 | ], 9 | "cSpell.enableFiletypes": [ 10 | "mdx" 11 | ] 12 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AvdanOS docsite 2 | > **Alert** 3 | > For the time being the docsite is no longer the main focus of the project this means pull requests here will not be reviewed as often. Please see the DE and wayland compositor repos 4 | 5 | 6 | > **Warning** 7 | > Use NPM instead of Yarn, and make PR's instead of direct commits. 8 | 9 | This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. You can find the website [here.](https://docs.avdanos.com/) 10 | 11 | ``` 12 | $ npm install 13 | ``` 14 | 15 | ### Local Development 16 | 17 | ``` 18 | $ npm run start 19 | ``` 20 | 21 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. 22 | 23 | ### Build 24 | 25 | ``` 26 | $ npm run build 27 | ``` 28 | 29 | This command generates static content into the `build` directory and can be served using any static contents hosting service. 30 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /blog/authors.yml: -------------------------------------------------------------------------------- 1 | StoneMc: 2 | name: StoneMc 3 | title: Manger 4 | url: https://github.com/StoneMcYT 5 | image_url: https://github.com/StoneMcYT.png 6 | 7 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/Classification.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 6 3 | --- 4 | # Classification 5 | 6 | ### There are three types of menus on the side : 7 | 8 | - **Favorites** (most used *category* of files) 9 | - **Pinned** (files that have been pinned through the [File Context Menu (Left-click)](/apps/MinimalApps/Files/File_Context_Menu)) 10 | - **Color Tags** (not sure about this one) 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Files", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Files" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/about-files.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # About files 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/context-menu.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 11 3 | --- 4 | # Context menu based on the type of file 5 | 6 | 7 | 8 | 9 | 10 | >🧠 It can be invoked through a **left-click**, and the choice of the **Get Info option on the file [File Context Menu (Left-click)](https://www.notion.so/File-Context-Menu-Left-click-84e162b3a94d4d66b9b2ea65fef2ea84).** 11 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/different-views.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 9 3 | --- 4 | # Different Views 5 | 6 | In Explorer windows, files and folders appear sorted or grouped by different attributes, such as name or type, in the different views, such as : 7 | 8 | 9 | 10 | This is the one present in Windows 11 11 | 12 | - **Icons (Extra large, Large, Medium, or Small),** 13 | - **List,** 14 | - **Details,** 15 | - **Tiles,** 16 | - **Content.** -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/file-color-tagging.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | 5 | # File Color Tagging 6 | 7 | ### The 5 colors will be : 8 | 9 | - Sea **Green** 10 | - Peach **Orange** 11 | - Vivid **Pink** 12 | - Magic **Purple** 13 | - Pineapple **Yellow** 14 | 15 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/file-context-menu.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 12 3 | --- 4 | # File Context Menu 5 | 6 | 7 | 8 | Thus, we have multiple features to implement, when it comes to the pie file context menu. 9 | 10 | ### That is: 11 | 12 | - **Get information** on the file ([Context menu based on the type of file](https://www.notion.so/Context-menu-based-on-the-type-of-file-622656d865b14f828466d36949417a68)) 13 | - **Share** it with others 14 | - **Rename** the file 15 | - **Delete** the file (moving it into the [Garbage Bin](https://www.notion.so/Garbage-Bin-d8cde2592b6041b3ad0aa214840a642f)) 16 | - **Duplicate** it (i.e. copy and paste it into the same place, while giving it a slightly different name) 17 | - **Copy** the File 18 | - **Pin it** to the Folder or Place it’s currently in 19 | - [**File Color Tagging** (see bottom left)](https://www.notion.so/File-Color-Tagging-see-bottom-left-f5c98edaf1b64775897dda0d176d5775) 20 | - **Open in a new Tab** 21 | - Just **Open the File** (new window) 22 | 23 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/file-sharing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 5 3 | --- 4 | 5 | # File sharing 6 | Integrated into the browser and the Office Suite of products -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/icons-for-each-file-type.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # Icons for each file type 6 | This is a design thing mostly, so this page is for them. 7 | 8 | >🧠 If the file is empty, then we will show the empty folder icon, but if it isn’t empty, then we will show the filled file icon. 9 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/path-on-top.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 7 3 | --- 4 | # Path on top 5 | copying it and going back -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/searching-capabilities.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 8 3 | --- 4 | # Searching capabilities -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/sorting-capabilities.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Sorting capabilities 6 | 7 | We will give the user the ability to sort their file in *ascending and descending order* : 8 | 9 | - By **size** 10 | - By file **type** (.mp3, .docx, .ppt …) 11 | - By **date of creation** 12 | - **Last time opened** / changed 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/apps/MinimalApps/Files/undo-redo-an-action.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 10 3 | --- 4 | # Undo / Redo an Action -------------------------------------------------------------------------------- /docs/apps/MinimalApps/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Minimal Apps", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Minimal Apps" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/apps/apps-intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Apps 6 | This section contains all the apps of Avdan AvdanOS -------------------------------------------------------------------------------- /docs/avdanos/contributing/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Contributing to AvdanOS Project", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Contributing to AvdanOS Project" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/design/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Design", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Design" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/design/design_guidelines/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Design Guidelines", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Design Guidelines" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/design/design_guidelines/intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | title: Introduction 4 | description: AvdanOS Design Guidelines Documentation 5 | --- 6 | # Introduction 7 | 8 | 9 | 10 | 11 | Consistent Design is key in order to create an optimal user experience. 12 | 13 | In this part of the AvdanOS docs, we will state the design guidelines and ideas we have for AvdanOS. 14 | 15 | :::danger 16 | TODO: @TechStudent11 17 | ::: 18 | 19 | 20 | _Written by (mostly) TechStudent11 (TechStudent10#0821)_ 21 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/design/design_guidelines/kde-guidelines.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | title: KDE Human Interface Guidelines (HIG) 4 | description: The KDE Human Interface Guidelines 5 | --- 6 | 7 | # KDE Human Interface Guidelines 8 | 9 | The **KDE Human Interface Guidelines (HIG)** offer designers and developers a set of recommendations for producing beautiful, usable and consistent user interfaces for convergent desktop and mobile applications and workspace widgets. They aim to improve the experience for users by making application and widget interfaces more consistent and hence more intuitive and learnable. 10 | 11 | ## Design Vision 12 | 13 | KDE's design vision focuses on two attributes of KDE software that connect its future to its history. 14 | 15 | > 🧠 **_Simple by default, powerful when needed._** 16 | 17 | ### Simple by default 18 | 19 | > 🧠 **_Simple and inviting._** _KDE software is pleasant to experience and easy to use._ 20 | 21 | - **Make it easy to focus on what matters** — Remove or minimize elements not crucial to the primary or main task. Use spacing to keep things organized. Use color to draw attention. Reveal additional information or optional functions only when needed. 22 | 23 | - **I know how to do that!** — Make things easier to learn by reusing design patterns from other applications. Other applications that use good design are a precedent to follow. 24 | 25 | - **Do the heavy lifting for me** — Make complex tasks simple. Make novices feel like experts. Create ways in which your users can naturally feel empowered by your software. 26 | 27 | ### ... Powerful when needed 28 | 29 | > 🧠 **_Power and flexibility._** _KDE software allows users to be effortlessly creative and efficiently productive._ 30 | 31 | - **Solve a problem** — Identify and make very clear to the user what need is addressed and how. 32 | 33 | - **Always in control** — It should always be clear what can be done, what is currently happening, and what has just happened. The user should never feel at the mercy of the tool. Give the user the final say. 34 | 35 | - **Be flexible** — Provide sensible defaults but consider optional functionality and customization options that don't interfere with the primary task. 36 | 37 | > 🧠 **Note:** KDE encourages developing and designing for customization while providing good default settings. Integrating into other desktop environments is also a virtue, but ultimately we aim for perfection within our own Plasma desktop environment with the default themes and settings. This aim should not be compromised. 38 | 39 | _Written by TechStudent11 (TechStudent10#0821)_ 40 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/design/design_guidelines/website.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Website Design Ideas 3 | description: A couple of design ideas for the AvdanOS website. 4 | --- 5 | 6 | import AutoPlay from "@site/src/components/media/autoplay.js" 7 | 8 | ## Website Ideas 9 | 10 | Here we have some different website ideas that are cool but yet to be implemented; 11 | 12 | ### Parallax Effect 13 | _Parallax scrolling_ is a computer graphics technique used by web designers to create a faux-3D effect. As users scroll down a webpage, different layers of content or backgrounds move at different speeds, and this creates an optical illusion. 14 | 15 | --- 16 | 17 | Using Apple as an example, we can see that they use the Parallax Effect heavily on their product pages; 18 | 19 | 20 | 21 | Here's a page with some of the best parallax scrolling pages: https://www.impactplus.com/blog/what-is-parallax-scrolling 22 | 23 | A tutorial from Fireship: 24 | 25 | 26 | 27 | --- 28 | 29 | ### Day & Night Mode Cycle (Auto Dark Mode) 30 | 31 | Just like in the concept, the AvdanOS website could have an auto-dark mode. We can use the `Date()` API in JavaScript to get the current time of day and change the site to either light or dark mode. 32 | 33 | --- 34 | 35 | ### Shader implementation 36 | 37 | Interactive visualization of noises, data, etc. 38 | 39 | Example: 40 | 41 | https://cineshader.com/view/WslGWl 42 | 43 | --- 44 | 45 | ### User-agent targeted marketing 46 | 47 | We can check the user's `user agent` to show a targeted message. User Agent detection should also be used for optimizing the download workflow. Using an API, we can understand the operating system the user is currently running on their computer (and maybe use a poll) and use it to target key distinguishing factors between the user's OS and AvdanOS. 48 | 49 | _Written by TechStudent11 (TechStudent10#0821)_ 50 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Development", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Contributing to AvdanOS Development" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/code_guidelines/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Code Guidelines", 3 | "position": 1, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Code Guidelines" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/code_guidelines/c-guidelines.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # C Code Guidelines 5 | 6 | 7 | 8 | ## Names 9 | 10 | #### Use pascal case for structs and snake case for variables and functions. 11 | 12 | :::tip 13 | 14 | When defining a const variable always write it in UPPERCASE 15 | 16 | ::: 17 | 18 | 19 | **Do ✅**: 20 | 21 | ```c 22 | struct Example; 23 | size_t example_t; 24 | void example_func(); 25 | int example_var; 26 | const EXAMPLE_VAR; 27 | ``` 28 | 29 | **Don't ❌**: 30 | 31 | ```c 32 | struct example; 33 | size_t exampleT; // size_t exampleSize; 34 | void ExampleFunc(); // void exampleFUNC(); 35 | int exampleVar; 36 | const example_var; 37 | ``` 38 | 39 | #### Use full words, except when the variable name is too long. 40 | 41 | **Do ✅**: 42 | 43 | ```c 44 | int my_var; 45 | int length; 46 | char width; 47 | ``` 48 | 49 | **Don't ❌**: 50 | 51 | ```c 52 | int my_variable; 53 | int len; 54 | char width; 55 | ``` 56 | 57 | :::caution 58 | 59 | When declaring a constant use always CONST and not PREPROCESSOR DIRECTIVES 60 | 61 | ::: 62 | 63 | #### Use descriptive names in functions. 64 | 65 | **Do ✅**: 66 | 67 | ```c 68 | char convert_to_ascii(int); 69 | ``` 70 | 71 | **Don't ❌**: 72 | 73 | ```c 74 | char to_ascii(int); 75 | ``` 76 | 77 | #### Leave useless variable names out of function declarations. 78 | 79 | **Do ✅**: 80 | 81 | ```c 82 | char my_character(char); 83 | ``` 84 | 85 | **Don't ❌**: 86 | 87 | ```c 88 | char my_character(char character); 89 | ``` 90 | 91 | ## Switch 92 | 93 | #### In switch cases don't indent another level. 94 | 95 | **Do ✅**: 96 | 97 | ```c 98 | switch (foo) { 99 | case 1: 100 | printf("bread"); 101 | case 2: 102 | printf("akane"); 103 | default: 104 | printf("akane cat"); 105 | } 106 | ``` 107 | 108 | **Don't ❌**: 109 | 110 | ```c 111 | switch (foo) { 112 | case 1: 113 | printf("bread"); 114 | case 2: 115 | printf("akane"); 116 | default: 117 | printf("akane cat"); 118 | } 119 | ``` 120 | 121 | ## Headers 122 | 123 | #### Use ```#pragma once``` for header files. Why? Because ```#pragma once``` is less prone to making mistakes and it is less code to type. 124 | 125 | **Do ✅**: 126 | 127 | ```c 128 | #pragma once 129 | ``` 130 | 131 | **Don't ❌**: 132 | 133 | ```c 134 | #ifndef FILE_H 135 | #define FILE_H 136 | 137 | /* 138 | * code 139 | */ 140 | 141 | #endif // FILE_H 142 | ``` 143 | 144 | #### Include libraries first, then include local headers. 145 | 146 | **Do ✅**: 147 | 148 | ```c 149 | #include 150 | 151 | #include "file.h" 152 | ``` 153 | 154 | **Don't ❌**: 155 | 156 | ```c 157 | #include "file.h" 158 | 159 | #include 160 | ``` 161 | 162 | ## Blocks 163 | 164 | #### When writing a function, or a for cycle, don't write curly braces at the beginning of a new line. 165 | 166 | **Do ✅**: 167 | 168 | ```c 169 | int my_function(int a, int b) { 170 | // code 171 | } 172 | 173 | for (int i = 0; i <= 10; i++) { 174 | printf("%d\n", i); 175 | } 176 | ``` 177 | 178 | **Don't ❌**: 179 | 180 | ```c 181 | int my_function(int a, int b) 182 | { 183 | // code 184 | } 185 | 186 | for (int i = 0; i <= 10; i++) 187 | { 188 | printf("%d\n", i); 189 | } 190 | ``` 191 | 192 | #### Use 4 spaces as tab instead of 2. 193 | 194 | **Do ✅**: 195 | 196 | ```c 197 | int my_function(int a, int b) { 198 | // code 199 | 200 | if (my_statement == true) 201 | { 202 | // code 203 | } 204 | else 205 | { 206 | return 1; 207 | } 208 | } 209 | ``` 210 | 211 | **Don't ❌**: 212 | 213 | ```c 214 | int my_function(int a, int b) { 215 | // code 216 | 217 | if (my_statement == true) 218 | { 219 | // code 220 | } 221 | else 222 | { 223 | return 1; 224 | } 225 | } 226 | ``` 227 | 228 | ## Statements 229 | 230 | #### Use conditional operators instead of if else statements. 231 | 232 | **Do ✅**: 233 | 234 | ```c 235 | my_variable % 2 == 0 ? printf("even") : printf("odd"); 236 | ``` 237 | 238 | **Don't ❌**: 239 | 240 | ```c 241 | if (my_variable % 2 == 0) { 242 | printf("even"); 243 | } else { 244 | printf("odd"); 245 | } 246 | ``` 247 | 248 | #### When the statement is too long, go to a new line. 249 | 250 | **Do ✅**: 251 | 252 | ```c 253 | my_variable % 2 == 0 && my_variable2 % 4 == 0 ? printf("foo") : \ 254 | my_variable3 % 6 == 0 && my_variable4 % 8 == 0 ? printf("fee") : printf("fuu"); 255 | ``` 256 | 257 | **Don't ❌**: 258 | 259 | ```c 260 | my_variable % 2 == 0 && my_variable2 % 4 == 0 ? printf("foo") : my_variable3 % 6 == 0 && my_variable4 % 8 == 0 ? printf("fee") : printf("fuu"); 261 | ``` 262 | 263 | ## Types 264 | 265 | #### Delete ```int``` when using an ```unsigned``` modifier, and don't use a ```signed``` modifier. 266 | 267 | **Do ✅**: 268 | 269 | ```c 270 | unsigned my_variable; 271 | int my_variable2; 272 | ``` 273 | 274 | **Don't ❌**: 275 | 276 | ```c 277 | unsigned int a; 278 | signed b; 279 | signed int c; 280 | ``` 281 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/code_guidelines/cpp-guidelines.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # C++ Code Guidelines 5 | 6 | 7 | 8 | ## Names 9 | 10 | #### Use pascal case for structs and snake case for variables and functions. 11 | 12 | :::tip 13 | 14 | When defining a const variable always write it in UPPERCASE 15 | 16 | ::: 17 | 18 | 19 | **Do ✅**: 20 | 21 | ```cpp 22 | struct Example; 23 | size_t example_t; 24 | void example_func(); 25 | int example_var; 26 | const EXAMPLE_VAR; 27 | ``` 28 | 29 | **Don't ❌**: 30 | 31 | ```cpp 32 | struct example; 33 | size_t exampleT; // size_t exampleSize; 34 | void ExampleFunc(); // void exampleFUNC(); 35 | int exampleVar; 36 | const example_var; 37 | ``` 38 | 39 | #### Use full words, except when the variable name is too long. 40 | 41 | **Do ✅**: 42 | 43 | ```cpp 44 | int my_var; 45 | int length; 46 | char width; 47 | ``` 48 | 49 | **Don't ❌**: 50 | 51 | ```cpp 52 | int my_variable; 53 | int len; 54 | char width; 55 | ``` 56 | 57 | :::caution 58 | 59 | When declaring a constant use always CONST and not PREPROCESSOR DIRECTIVES 60 | 61 | ::: 62 | 63 | #### Use descriptive names in functions. 64 | 65 | **Do ✅**: 66 | 67 | ```cpp 68 | char convert_to_ascii(int); 69 | ``` 70 | 71 | **Don't ❌**: 72 | 73 | ```cpp 74 | char to_ascii(int); 75 | ``` 76 | 77 | #### Leave useless variable names out of function declarations. 78 | 79 | **Do ✅**: 80 | 81 | ```cpp 82 | char my_character(char); 83 | ``` 84 | 85 | **Don't ❌**: 86 | 87 | ```cpp 88 | char my_character(char character); 89 | ``` 90 | 91 | ## Switch 92 | 93 | #### In switch cases don't indent another level. 94 | 95 | :::tip 96 | 97 | Same thing for classes! 98 | 99 | ::: 100 | 101 | **Do ✅**: 102 | 103 | ```cpp 104 | switch (foo) { 105 | case 1: 106 | printf("bread"); 107 | case 2: 108 | printf("akane"); 109 | default: 110 | printf("akane cat"); 111 | } 112 | ``` 113 | 114 | **Don't ❌**: 115 | 116 | ```cpp 117 | switch (foo) { 118 | case 1: 119 | printf("bread"); 120 | case 2: 121 | printf("akane"); 122 | default: 123 | printf("akane cat"); 124 | } 125 | ``` 126 | 127 | ## Headers 128 | 129 | #### Use ```#pragma once``` for header files. Why? Because ```#pragma once``` is less prone to making mistakes and it is less code to type. 130 | 131 | **Do ✅**: 132 | 133 | ```cpp 134 | #pragma once 135 | ``` 136 | 137 | **Don't ❌**: 138 | 139 | ```cpp 140 | #ifndef FILE_H 141 | #define FILE_H 142 | 143 | /* 144 | * code 145 | */ 146 | 147 | #endif // FILE_H 148 | ``` 149 | 150 | #### Include libraries first, then include local headers. 151 | 152 | **Do ✅**: 153 | 154 | ```cpp 155 | #include 156 | 157 | #include "file.h" 158 | ``` 159 | 160 | **Don't ❌**: 161 | 162 | ```cpp 163 | #include "file.h" 164 | 165 | #include 166 | ``` 167 | 168 | ## Blocks 169 | 170 | #### When writing a function, or a for cycle, don't write curly braces at the beginning of a new line. 171 | 172 | **Do ✅**: 173 | 174 | ```cpp 175 | int my_function(int a, int b) { 176 | // code 177 | } 178 | 179 | for (int i = 0; i <= 10; i++) { 180 | printf("%d\n", i); 181 | } 182 | ``` 183 | 184 | **Don't ❌**: 185 | 186 | ```cpp 187 | int my_function(int a, int b) 188 | { 189 | // code 190 | } 191 | 192 | for (int i = 0; i <= 10; i++) 193 | { 194 | printf("%d\n", i); 195 | } 196 | ``` 197 | 198 | #### Use 4 spaces as tab instead of 2. 199 | 200 | **Do ✅**: 201 | 202 | ```cpp 203 | int my_function(int a, int b) { 204 | // code 205 | 206 | if (my_statement == true) 207 | { 208 | // code 209 | } 210 | else 211 | { 212 | return 1; 213 | } 214 | } 215 | ``` 216 | 217 | **Don't ❌**: 218 | 219 | ```cpp 220 | int my_function(int a, int b) { 221 | // code 222 | 223 | if (my_statement == true) 224 | { 225 | // code 226 | } 227 | else 228 | { 229 | return 1; 230 | } 231 | } 232 | ``` 233 | 234 | ## Statements 235 | 236 | #### Use conditional operators instead of if else statements. 237 | 238 | **Do ✅**: 239 | 240 | ```cpp 241 | my_variable % 2 == 0 ? printf("even") : printf("odd"); 242 | ``` 243 | 244 | **Don't ❌**: 245 | 246 | ```c 247 | if (my_variable % 2 == 0) { 248 | printf("even"); 249 | } else { 250 | printf("odd"); 251 | } 252 | ``` 253 | 254 | #### When the statement is too long, go to a new line. 255 | 256 | **Do ✅**: 257 | 258 | ```cpp 259 | my_variable % 2 == 0 && my_variable2 % 4 == 0 ? printf("foo") : \ 260 | my_variable3 % 6 == 0 && my_variable4 % 8 == 0 ? printf("fee") : printf("fuu"); 261 | ``` 262 | 263 | **Don't ❌**: 264 | 265 | ```cpp 266 | my_variable % 2 == 0 && my_variable2 % 4 == 0 ? printf("foo") : my_variable3 % 6 == 0 && my_variable4 % 8 == 0 ? printf("fee") : printf("fuu"); 267 | ``` 268 | 269 | ## Types 270 | 271 | #### Delete ```int``` when using an ```unsigned``` modifier, and don't use a ```signed``` modifier. 272 | 273 | **Do ✅**: 274 | 275 | ```cpp 276 | unsigned my_variable; 277 | int my_variable2; 278 | ``` 279 | 280 | **Don't ❌**: 281 | 282 | ```cpp 283 | unsigned int a; 284 | signed b; 285 | signed int c; 286 | ``` 287 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/code_guidelines/rust-guidelines.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Rust Code Guidelines 5 | 6 | 7 | 8 | ## Names 9 | 10 | #### Use pascal case for structs and snake case for variables and functions. 11 | 12 | :::tip 13 | 14 | When defining a const variable always write it in UPPERCASE 15 | 16 | ::: 17 | 18 | 19 | **Do ✅**: 20 | 21 | ```rs 22 | struct Example; 23 | fn example_func() -> &str; 24 | let example_var: i32; 25 | const EXAMPLE_VAR; 26 | ``` 27 | 28 | **Don't ❌**: 29 | 30 | ```rs 31 | struct example; 32 | fn ExampleFunc() -> &str; // fn exampleFUNC() -> &str; 33 | let exampleVar: i32; 34 | const example_var; 35 | ``` 36 | 37 | #### Use full words, except when the variable name is too long. 38 | 39 | **Do ✅**: 40 | 41 | ```rs 42 | let my_var: i64; 43 | let length: u8; 44 | let character: char; 45 | ``` 46 | 47 | **Don't ❌**: 48 | 49 | ```rs 50 | let my_variable: i64; 51 | let len: u8; 52 | let character: char; 53 | ``` 54 | 55 | #### Use descriptive names in functions. 56 | 57 | **Do ✅**: 58 | 59 | ```rs 60 | fn convert_to_ascii(let my_var: i32) -> char; 61 | ``` 62 | 63 | **Don't ❌**: 64 | 65 | ```rs 66 | fn to_ascii(let my_var: i32) -> i32; 67 | ``` 68 | 69 | ## Variables 70 | 71 | #### Declare EXPLICITLY the type of a variable. 72 | 73 | :::caution 74 | 75 | Explicit types are not obligatory, but are recommended 76 | 77 | ::: 78 | 79 | **Do ✅**: 80 | 81 | ```rs 82 | let var: f64 = 7.42; 83 | ``` 84 | 85 | **Don't ❌**: 86 | 87 | ```rs 88 | let var = 7.42 89 | ``` 90 | 91 | #### When printing a simple variable value don't do it the traditional way. Why? Because it's less write time 92 | 93 | **Do ✅**: 94 | 95 | ```rs 96 | let x = 4; 97 | println!("{x}"); 98 | ``` 99 | 100 | **Don't ❌**: 101 | 102 | ```rs 103 | let x = 4; 104 | println!("{}", x); 105 | ``` 106 | 107 | ## Statements 108 | 109 | #### If the code is not too long, write the statement in a single line 110 | 111 | **Do ✅**: 112 | 113 | ```rs 114 | loop { println!("This phrase never stops!") } 115 | 116 | let x = 5; 117 | let y = if x == 5 { 10 } else { 20 }; 118 | ``` 119 | 120 | **Don't ❌**: 121 | 122 | ```rs 123 | loop { 124 | println!("This phrase never stops!") 125 | } 126 | 127 | let x = 5; 128 | let y = if x == 5 { 129 | 10 130 | } else { 131 | 20 132 | }; 133 | ``` 134 | 135 | ## Functions 136 | 137 | #### When returning a value just type the name of deleting the return keyword 138 | 139 | **Do ✅**: 140 | 141 | ```rs 142 | fn function(x: i32) -> i32 { 143 | x 144 | } 145 | ``` 146 | 147 | **Don't ❌**: 148 | 149 | ```rs 150 | fn function(x: i32) -> i32 { 151 | return x; 152 | } 153 | ``` 154 | 155 | ## Imports 156 | 157 | #### When importing multiple variables separate any library into multiple lines 158 | 159 | :::tip 160 | 161 | Sort the imports by name and always add a `,` at the end of a library 162 | 163 | ::: 164 | 165 | 166 | **Do ✅**: 167 | 168 | ```rs 169 | use clap::{ 170 | Arg, 171 | ArgAction, 172 | Command, 173 | }; 174 | ``` 175 | 176 | **Don't ❌**: 177 | 178 | ```rs 179 | use x::{Command, Arg, ArgAction}; 180 | ``` 181 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/development/submitting-changes.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Submitting Changes 5 | 6 | 7 | 8 | :::danger 9 | Before contributing read [Tech stack](https://docs.avdanos.com/docs/faq) 10 | ::: 11 | 12 | # Step 1: Clone a repo 13 | For cloning a repo type `git clone https://github.com/Avdan-OS/repo` or download the files from the github site, and then unzip the downloaded repo later. 14 | 15 | # Step 2: Write code 16 | After you cloned the repo, write some code 17 | 18 | :::tip 19 | When writing code always follow code guidelines, it's really important for code readability and consistency 20 | ::: 21 | 22 | # Step 3: Fork the repo 23 | After you made the changes, fork the repo you worked on 24 | 25 | # Step 4: Publish changes to your fork and make a pr 26 | After you cloned the repo, make the changes (if you wrote a lot of code or made a big contribution, use the command line for pushing changes), and submit a pr 27 | 28 | # Step 5: You're done! 29 | Congratulations! You contributed for the first time to the AvdanOS project! Now you have just to wait for sr. devs to review your code! 30 | -------------------------------------------------------------------------------- /docs/avdanos/contributing/documentation/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Documentation", 3 | "position": 1, 4 | "link": { 5 | "type": "doc", 6 | "id": "index" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/avdanos/contributing/documentation/guidelines.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Documentation Guidelines 5 | 6 | 7 | 8 | As with any project, the documentation is very important to keep it organized. 9 | This section will go through the guidelines of our documentation. 10 | 11 | 12 | ## 1. Use Clear Language 13 | 14 | Our documentation should use clear language to be understood 15 | using correct terminology where fitting. 16 | 17 | ### 1 (a) Use English 18 | 19 | As it is intended for an international audience, all documentation should be written 20 | in standard English. Keep any spelling consistent. 21 | 22 | :::tip 23 | Use a spellchecker extension in your IDE/code editor if it doesn't have one in-built, such as [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) for VS Code. 24 | ::: 25 | 26 | ### 1 (b) Be on Point 27 | 28 | Do not waste both your or any readers' time by writing too much in any section. 29 | If you need to, split your ideas into multiple paragraphs, or even multiple documents if necessary. 30 | 31 | Try not to explore more than one main topic on a single page. 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 46 | 49 | 50 | 51 |
Do ✅Don't ❌
43 |

Navda is the display server of the AvdanOS project, implemented in Wayland.

44 |

Wayland is an alternative to the older X Server standard which lets...

45 |
47 |

Navda is the display server of the AvdanOS project, implemented in Wayland. Wayland is a protocol alternative to the older X Server standard which lets...

48 |
52 | 53 | ## 2. Be Helpful 54 | When reading documentation, users may often want to learn more about the 55 | various topics mentioned on the page or may want further clarification. We can help make the documentation 56 | easier to read by doing the following: 57 | 58 | ### 2 (a) Highlight Keywords 59 | Use *italics* or **bold** to help make keywords stand out. 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 74 | 78 | 79 | 80 |
Do ✅Don't ❌
71 |

Navda is the display server of the AvdanOS project, implemented in Wayland.

72 |

The Wayland protocol is an alternative to the older X Server standard which lets...

73 |
75 |

Navda is the display server of the AvdanOS project, implemented in Wayland.

76 |

Wayland is a protocol alternative to the older X Server standard which lets.

77 |
81 | 82 | ### 2 (b) Link to external sources 83 | External links help guide users to places with more specificity on certain topics. 84 | You must make sure the source is trustworthy. 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 99 | 103 | 104 | 105 |
Do ✅Don't ❌
96 |

Navda is the display server of the AvdanOS project, implemented in Wayland.

97 |

The Wayland protocol is an alternative to the older X Server standard which lets...

98 |
100 |

Navda is the display server of the AvdanOS project, implemented in Wayland.

101 |

Wayland is a protocol alternative to the older X Server standard which lets.

102 |
106 | 107 | ### 2 (c) Provide Examples 108 | Examples show users how to achieve a specific goal. They should be specific, and any code featured should both be easy to read and also behave as described. 109 | 110 | :::tip 111 | Reference [this Docusaurus Section](https://docusaurus.io/docs/markdown-features/code-blocks) to learn more about putting code blocks into your documentation. 112 | ::: 113 | 114 | **Do ✅**: 115 | 116 | ```js title="Stats API — Get the number of AvdanOS downloads" 117 | fetch("https://api.avdanos.com/stats/downloads", 118 | { 119 | method: "GET", 120 | headers: { 121 | "Content-Type": "application/json", 122 | "Authorization": "Bearer " + token, // <--- AvdanOS API token 123 | }, 124 | } 125 | ) 126 | .then(res => res.json()) 127 | .then(console.log); 128 | ``` 129 | 130 | **Don't ❌**: 131 | 132 | ```js 133 | fetch("https://api.avdanos.com/stats/downloads", { method: "GET", headers: { "Content-Type": "application/json", "Authorization": "Bearer " + token, /* <--- AvdanOS API token */ },}).then(res => res.json()).then(console.log); 134 | ``` 135 | 136 | ### 2 (d) Use Multimedia 137 | > A picture is worth a thousand words. 138 | 139 | Sometimes, it may be helpful to include pictures and/or videos on a page to help further visualize an idea. 140 | These media must not take too long to load, or hinder the user experience. 141 | 142 | | Do ✅ | Don't ❌ | 143 | | ----- | --------- | 144 | | Include relevant media. | Include media that is too long, not relevant to the topic, or too big in file size. | 145 | 146 | :::tip 147 | Process your content before including it in your documentation such as by compressing it. 148 | 149 | Tools like [FFmpeg](https://ffmpeg.org/) are especially useful when processing video. 150 | 151 | An example command: 152 | ```bash title="Take 1:40 to 1:50 of input.mp4, remove audio, and compress the clip to WEBM." 153 | ffmpeg -i 'input.mp4' -ss 1:40 -t 0:10 -vf scale=1920:1080 -c:v vp9 -an output.webm 154 | ``` 155 | ::: 156 | 157 | :::tip 158 | Use newer efficient file formats such as [WebM](https://en.wikipedia.org/wiki/WebM) for video or [MP3](https://en.wikipedia.org/wiki/MP3) for audio, or [WebP](https://en.wikipedia.org/wiki/WebP) for images. 159 | ::: 160 | 161 | ## Use Kebab case 162 | Use only kebab case for all the file names. 163 | 164 | :::tip 165 | For File Names Like "Submitting Changes" The Kebab Case for that is "submitting-changes" 166 | The words should be in lower case and separated by a "-" 167 | ::: -------------------------------------------------------------------------------- /docs/avdanos/contributing/documentation/index.mdx: -------------------------------------------------------------------------------- 1 | # Documentation 2 | 3 | 4 | 5 | :::note 6 | Some of our repositories may contain their own documentation and code guidelines, so 7 | we encourage you to read them in addition to the main guidelines. 8 | ::: -------------------------------------------------------------------------------- /docs/avdanos/contributing/documentation/submitting-changes.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Writing Documentation 5 | 6 | 7 | 8 | > So, you want to write documentation? hmmm... 9 | 10 | ## 1. Create a fork 11 | To get started, fork [our docs repo](https://github.com/Avdan-OS/docsite) on GitHub. 12 | 13 | ## 2. Clone your fork 14 | Clone your fork to your local machine. Then, switch to the `dev` branch. 15 | 16 | ```bash title="You can use these Git commands, or alternatively use the source control menus in your IDE." 17 | git clone https://github.com//docsite.git 18 | git checkout dev 19 | ``` 20 | 21 | :::tip 22 | Make sure to keep your fork up to date with the latest changes by periodically syncing it with ours. 23 | ::: 24 | 25 | :::caution 26 | Our `dev` branch is for documentation that is under work in progress. 27 | **Do not** commit your changes to the `main` branch. 28 | ::: 29 | 30 | ## 3. Make some changes 31 | To preview your changes live on your local machine, you'll need to set up a development environment. 32 | ### 3 (a) Setting up the development environment 33 | From here on, you'll need to have **NodeJS** and **NPM** or another suitable package manager installed. 34 | 35 | 1. First, install all the dependencies. 36 | ```bash title="Installing dependencies with NPM" 37 | npm install 38 | ``` 39 | 40 | 2. Start the dev server. 41 | ```bash 42 | npm run start 43 | ``` 44 | 45 | Now, you should be able to edit the doc files and have them automatically reload in the browser. 46 | 47 | ### 3 (b) Writing Documentation 48 | 49 | :::tip 50 | If you use VS Code, you can use our snippets to help you along the way. 51 | ::: 52 | 53 | 54 | Now it's time for the fun part: write some documentation to your fork. 55 | 56 | Make sure to follow [our guidelines](./guidelines). 57 | 58 | 59 | ## 4. Commit and push your changes 60 | Commit and push your changes to your fork. 61 | 62 | ## 5. Submit a pull request 63 | Submit a pull request to our [`Avdan-OS/docsite`](https://github.com/Avdan-OS/docsite) repo. 64 | We'll get around to reviewing your changes and if they fit our guidelines we'll merge them into the main repo. 65 | 66 | ## 6. Publication 67 | If all goes well, your docs will eventually be live on this very site. How cool is that? -------------------------------------------------------------------------------- /docs/avdanos/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 4 3 | --- 4 | # FAQ 5 | 6 | 7 |
Bread?? 8 | In the AvdanOS Community Discord Server bread is a big, big meme, we currently have a thread dedicated to bread! 🍞👍 9 |
10 | 11 | 12 |
Tech Stack 13 | First, for the Wayland Compositor, which will allow us to add a lot of awesome features, we will use Rust and more specifically the Smithay lib. Meanwhile for the UI toolkit we'll use Rust with an easy and extensible UI library named egui 14 | 15 | Second of all, we might use other languages, such as C++ with their respective GUI libraries (for C++ it's Qt or Raylib... there are a lot of other options). 16 | 17 | 18 | 19 | 20 | 21 | And, finally, we all need to keep in mind, that there is no "one-fits-all solution": every action needs a tool to perform it. And those tools can be different. So wait for more news regarding the tech stack. We will surely inform you of any updates on our Discord server. 22 |
23 | 24 |
Rust Resources 25 | Here are some amazing sites to get started on rust! 26 | 27 | Rust Book: https://doc.rust-lang.org/book/ 28 | 29 | Some rust Youtube videos: 30 | - https://youtu.be/br3GIIQeefY 31 | - https://youtu.be/iU21KZ4i6bU 32 | - https://youtu.be/5C_HPTJg5ek 33 | - https://youtu.be/ygL_xcavzQ4 34 | 35 | Some rust Youtube playlists: 36 | - https://youtube.com/playlist?list=PLai5B987bZ9CoVR-QEIN9foz4QCJ0H2Y8 37 | 38 |
39 | -------------------------------------------------------------------------------- /docs/avdanos/gui/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "The AvdanOS GUI", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "The GUI" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docs/avdanos/gui/animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Animations 3 | --- 4 | 5 | import AutoPlay from "@site/src/components/media/autoplay.js" 6 | 7 | We want AvdanOS to feel as sleek and as easy-to-use as possible. That's why animations are really important when it comes to creating an operating system. By showing and using animations, we can show the user how to perform actions, and important information and just make the OS feel nice to use in general. 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/avdanos/gui/appearance.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Appearance (Themes) 3 | --- 4 | 5 | :::danger 6 | TODO: @TechStudent11 7 | ::: 8 | 9 | Later on, we can add some variety to the UI, by creating themes. Themes will change the **entire color palette of the OS**. There will also be **light and dark modes** for each theme. All of that is to maximize user UI customizability. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/avdanos/gui/cursor.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Cursor 3 | --- 4 | 5 | The cursor needs to be sleek and reliably adapted to the OS. 6 | 7 | 8 | 9 | There are two different styles of cursors; black with a white contour and white with a black contour. Additionally, when choosing or selecting an object, it will turn into a pointing hand, allowing the user to have a little more accuracy while using the cursor. 10 | 11 | Like any other OS, when the cursor chooses text or just glides over it, the cursor will turn into a text caret. 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/avdanos/gui/dock.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dock (aka Taskbar) 3 | --- 4 | 5 | :::danger 6 | TODO: @TechStudent11 7 | ::: 8 | 9 | The Dock will be **rectangular with slightly rounded edges**. In addition to just the app icons, there will also be a **customizable widget** (it can be weather, mail, calendar, or your calls). There will be a **main area** (with the search and main menu) and a control area (battery, Wi-Fi connection, audio, Bluetooth, etc.) 10 | 11 | 12 | Multiple AvdanOS Docks 13 | AvdanOS Dock 14 | AvdanOS Desktop 15 | 16 | ## App Area 17 | 18 | The App Area is pretty much what you would expect; it's just **apps being aligned in a Dock area**. You can re-arrange and change them however you want with the possibility to have them connected with separators or completely disconnected from one another. 19 | 20 | ## Main Area 21 | 22 | This is the bar in the middle of the second photo, which is similar to the leftmost part of a Windows 10 (or 11 if you have your taskbar aligned to the left) Taskbar. The content of the bar is not limited to: 23 | - The Main Menu Button (which would act like the Windows Start Menu) 24 | - A Search Button (for searching for files) 25 | - A Virtual Desktop Button (for switching Virtual Desktops) 26 | - Summon Dynamic Widgets [Go to docs](/docs/gui/widgets) 27 | 28 | ## App Widgets Area 29 | 30 | :::danger 31 | TODO: @TechStudent11 32 | ::: 33 | 34 | ## Extended Info Section (Control Area) 35 | 36 | :::danger 37 | TODO: @TechStudent11 38 | ::: 39 | -------------------------------------------------------------------------------- /docs/avdanos/gui/widgets.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Widgets 3 | --- 4 | 5 | Our widgets are similar to what you see on newer versions of macOS. They allow you to see quick information on your calendar, your mail, work, etc. 6 | 7 | 8 | ### 3 types of widgets: 9 | - The **desktop widgets** (first) are **always present**. They are pinned to the **desktop** and are added by the user in the Settings application. 10 | - The **taskbar widgets** (second) are present on the taskbar widget menu and can be opened by left-clicking them. 11 | - The **summoned widgets** (third) are present when you click on the widget button on the Dock (kind of like hidden widgets that are summoned to the screen). 12 | 13 | > 🧠 We need to figure out how to cohesively mash them together so that they wouldn't interfere with each other (**coordinate them somehow**). 14 | 15 | ## Desktop Widgets 16 | 17 | 18 | 19 | ## Dock/Taskbar Widgets 20 | 21 | 22 | 23 | 24 | 25 | 26 | ## Summoned Widgets 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /docs/avdanos/intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # AvdanOS Overview 5 | 6 | Hello and welcome to the AvdanOS Docs! 7 | 8 | ## What is AvdanOS? 9 | ## The Concept 10 | AvdanOS is a design concept released by design YouTuber [Avdan](https://www.youtube.com/c/Avdan). 11 | 12 | This project is an attempt to implement the features showcased in the video *Introducing AvdanOS (Concept)*: 13 | 14 | import YTEmbed from "@site/src/components/media/youtube-embed"; 15 | 16 | 17 | 18 | And also *AvdanOS Pro*: 19 | 20 | 21 | 22 | ## The Implementation 23 | ### Desktop Environment 24 | This project aims to implement AvdanOS first as a [Linux](https://en.wikipedia.org/wiki/Linux) [Desktop Environment (DE)](https://en.wikipedia.org/wiki/Desktop_environment), with its Display Server, System UI, and applications. 25 | 26 | ### Linux Distribution 27 | The current plans are to base AvdanOS on [Arch Linux](https://archlinux.org/). 28 | Moving on, the ambition would be to then package this DE and include it with an Arch ISO to make a full standalone Linux distribution. -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "How it works?", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "How it works?" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/how-it-works.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Logic behind demo 5 | 6 | The Demo website is fully written from scratch using `HTML/CSS/JS`, so it's near enough to the webdriver to implement any possible feature if you're skilled enough. 7 | 8 | It has 3 main layers: 9 | 1. [Demo library](libdemo) 10 | 2. [Window library](libwin) 11 | 3. [Drag library](libdrag) 12 | 13 | Lower layers can't use upper layers, but upper layers can call lower layers. 14 | 15 | All the class methods, that aren't supposed to return certain information, will return parent or expanded class. 16 | 17 | Let's discover, how all that works. -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/libdemo.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Demo library 5 | 6 | Here takes place content generation and preparations. 7 | 8 | That's the uppermost library, that adds extra functionality to the demo and defines the standard constructors and features. 9 | 10 | More info [here](../libdemo/about.mdx) 11 | 12 |
13 | Library classes: 14 | 15 | - [Player](../libdemo/Player/about.mdx) 16 | - [Placeholder](../libdemo/Placeholder/about.mdx) 17 | 18 |
-------------------------------------------------------------------------------- /docs/demo/demo-backrooms/libdrag.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Drag&Drop library 5 | 6 | That's the lowest library, that controls drag&drop events. 7 | 8 | It manipulates directly the objects through CSS `transform`, so all transform changes can be applied only to the other elements except dragged one (may change with library upgrades). 9 | 10 | All dragged objects are stored in `dragList` _(private array variable)_ as __Objects__ (info). More info about it is [here](../libdrag/about) 11 | 12 | `CurrentTarget` is an object, that can be impacted, and `target` is the object that's being moved. 13 | 14 | Example: topbar - `currentTarget`, window - `target` 15 | 16 | Explaining simpler: `add -> listen -> drop` 17 | 18 |
19 | Library functions: 20 | 21 | - [add](../libdrag/add) 22 | - [listen](../libdrag/listen) 23 | - [drop](../libdrag/drop) 24 | - [dropAll](../libdrag/dropAll) 25 | - [click](../libdrag/click) 26 | - [get](../libdrag/get) 27 | - [wipe](../libdrag/wipe) 28 | 29 |
30 | 31 | All the examples are only examples, you can use this library in the way you want, limited only by your creativity and skills. -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/libwin.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Window library 5 | 6 | This library is used to create windows, store functions and generate dock elements. 7 | 8 |
9 | Global variables: 10 | 11 | - __demo_body__ 12 | - global `Object` that defines the demo body element 13 | - is used to set an embedded demo on a page 14 | 15 |
16 | 17 |
18 | Library classes: 19 | 20 | - [Window](../libwin/Window/about.mdx) 21 | - [Appbar](../libwin/Appbar/about.mdx) 22 | - [Scrollbar](../libwin/Scrollbar/about.mdx) 23 | - [Workspace](../libwin/Workspace/add.mdx) 24 | - [Layer](../libwin/Layer/about.mdx) 25 | - [Keylogger](../libwin/Keylogger/about.mdx) 26 | 27 |
28 | -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/loadAdd.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Add new static HTML, CSS styles, or script 5 | 6 | All load settings are stored in `index.html`, so to disable something or add, you just have to set it in the `` tag. -------------------------------------------------------------------------------- /docs/demo/demo-backrooms/usage.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Usage 5 | 6 |
7 | Tabs: 8 | 9 | - Double click to close 10 | - Click to change to the tab 11 | - Hold Ctrl and click to tile 12 | - Drag to swap places (content also swaps) 13 | - Drag out to recreate the window 14 | - Drag out and drop in another window to add it there and tile 15 | - Drag out and drop in another window's topbar to add without tilling 16 | 17 | The first tab is unmovable, can't be closed with a double click and can't be swapped with other tabs (it's the window base tab). 18 | 19 | Tab position shows the content position, so to swap or add tilling just swap tabs. Fast and simple. 20 | 21 | `New tab` can't be moved, can't be dragged out, but can be double-clicked. After choosing an app it becomes a simple dynamic `win-tab`. 22 | 23 |
24 | 25 |
26 | Dock: 27 | 28 | - Drag and swap dock element's place 29 | - Drop in new space to set a new position 30 | - Drop in another dock element to merge 31 | - Drag out to the left or to the right to unmerge 32 | 33 |
34 | 35 |
36 | Appbar: 37 | 38 | - Drag and swap icon's place 39 | - Set the icon's position on the right side to be able to hide it 40 | - Click underline to minimalize/show back window 41 | 42 |
43 | 44 |
45 | Scrollbar: 46 | 47 | - hold Shift and scroll to swap the widget 48 | 49 |
50 | 51 |
52 | Window inserting: 53 | 54 | - drop a window in insert mode in another window to add as tab and tile 55 | - drop a window in insert mode in another window's topbar to add as tab without tilling 56 | 57 |
-------------------------------------------------------------------------------- /docs/demo/demo-intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Intro to the Demo site 5 | 6 | Installing an OS on a computer is a great step forward with a lot of difficulties. That's why a lot of people want to test an OS to be sure, that it's what they are looking for. 7 | 8 | [This demo website](https://avdan-os.github.io/Demo/) is created to show the advantages of AvdanOS and to give an opportunity for the community to try its light version in a browser or launch it on a PC without any preparations. 9 | 10 | That's why the demo website should be _lightweight_, _fast_, _multifunctional_ and _fail-safe_. 11 | 12 | In this documentation, you'll find out, how the demo website works and how you can contribute or modify it. -------------------------------------------------------------------------------- /docs/demo/libdemo/Placeholder/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Placeholder Class", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Placeholder Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libdemo/Placeholder/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Placeholder 5 | 6 | `Placeholder` is used to create default window content. It's easy to use to save place in code and CSS if there's currently no content for a window. 7 | 8 | To add a placeholder, edit the code in `demo.js`. 9 | 10 | Example: 11 | ```js 12 | var MyApp = new Placeholder("MyApp", "src/images/demo/icons/Apps/MyAppIconName.png"); 13 | 14 | apps_list = [ 15 | // ... 16 | 17 | MyApp, 18 | 19 | // ... 20 | ] 21 | ``` 22 | 23 | ![MyApp](../../../../static/img/placeholder-template.png) -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Player Class", 3 | "position": 4, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Player Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Player 5 | 6 | `Player` is used to control music in the demo. It has a list of audios, that it uses to play music, set icons and show duration. -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/getDuration.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getDuration 5 | 6 | ```js 7 | static getDuration = () 8 | ``` 9 | 10 | `Player.getDuration` returns an integer of the current audio's duration. 11 | 12 | Example: 13 | ```js 14 | var duration = Player.getDuration(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/getIndex.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getIndex 5 | 6 | ```js 7 | static getIndex = () 8 | ``` 9 | 10 | `Player.getIndex` returns the current audio index. It may be used with `getList` to see more info about current audio. 11 | 12 | Example: 13 | ```js 14 | var audio_info = Player.getList()[Player.getIndex()]; 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/getList.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getList 5 | 6 | ```js 7 | static getList = () 8 | ``` 9 | 10 | `Player.getList` returns an array with audio information. 11 | 12 | Example: 13 | ```js 14 | var audio_list = Player.getList(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/getTime.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getTime 5 | 6 | ```js 7 | static getTime = () 8 | ``` 9 | 10 | `Player.getTime` returns the current time position of the audio. 11 | 12 | Example: 13 | ```js 14 | var current_time = Player.getTime(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/getVolume.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getVolume 5 | 6 | ```js 7 | static getVolume = () 8 | ``` 9 | 10 | `Player.getVolume` returns player volume. 11 | 12 | Example: 13 | ```js 14 | var volume = Player.getVolume(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/next.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # next 5 | 6 | ```js 7 | static next = () 8 | ``` 9 | 10 | `Player.next` starts the next audio in the list. If it was the last audio, it will launch the first from the list. 11 | 12 | Example: 13 | ```js 14 | Player.next(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/paused.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # paused 5 | 6 | ```js 7 | static paused = () 8 | ``` 9 | 10 | `Player.paused` will return the current audio state. 11 | 12 | Example: 13 | ```js 14 | if (Player.paused()) { 15 | // ... 16 | } 17 | else { 18 | // ... 19 | } 20 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/prev.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # next 5 | 6 | ```js 7 | static next = () 8 | ``` 9 | 10 | `Player.prev` starts previous audio in the list. If it was the first audio, it will launch the last from the list. 11 | 12 | Example: 13 | ```js 14 | Player.prev(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/reload.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # reload 5 | 6 | ```js 7 | static reload = () 8 | ``` 9 | 10 | `Player.reload()` reloads the player, player widget and music windows. 11 | 12 | Example: 13 | ```js 14 | Player.setIndex(0).reload(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/setIndex.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # setIndex 5 | 6 | ```js 7 | static setIndex = pos 8 | ``` 9 | 10 | `Player.setIndex` gets an integer and sets the audio index if the integer is in the list range. 11 | 12 | To apply changes you should force reload the player. 13 | 14 | Example: 15 | ```js 16 | Player.setIndex(0).reload(); 17 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/setTime.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # setTime 5 | 6 | ```js 7 | static setTime = time 8 | ``` 9 | 10 | `Player.setVolume` sets player time in seconds with a given integer (0..audio.duration). 11 | 12 | Example: 13 | ```js 14 | Player.setTime(70); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/setVolume.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # setVolume 5 | 6 | ```js 7 | static setVolume = volume 8 | ``` 9 | 10 | `Player.setVolume` sets player volume with a given integer (1..100). 11 | 12 | Example: 13 | ```js 14 | Player.setVolume(70); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/Player/toggle.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # toggle 5 | 6 | ```js 7 | static toggle = () 8 | ``` 9 | 10 | `Player.toggle` is used to play/pause the player. 11 | 12 | Example: 13 | ```js 14 | Player.toggle(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdemo/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Demo library and info", 3 | "position": 5, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Demo library" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libdemo/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # About demo library 5 | 6 | Here is stored all the content and are called all generation functions. 7 | 8 | The Main last layer's calls are placed in `demo.js`. All of the window's content is split into `CSS/JS` files, like `lale.js/lale.css` and is loaded before `demo.js`. 9 | 10 | The best option is to create a class with info. For more info, you may look through existing classes. -------------------------------------------------------------------------------- /docs/demo/libdemo/widget-template.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Widget template & Adding your widget to the dock 5 | 6 | -------------------------------------------------------------------------------- /docs/demo/libdemo/window-template.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Window content template & Adding your app to the dock 5 | 6 | Here you can see a simple app template. You may create your app using it. 7 | 8 | ```js 9 | class MyApp { 10 | 11 | static content; // content holder 12 | static title = "MyApp"; // app title 13 | static src = "src/images/demo/icons/Apps/MyAppIconName.png"; // your app icon path 14 | static extraClass = ["my-app", "extra-size", ]; // some extra CSS classes for your window 15 | static contextMenu = [ // context menu for your app (optional) 16 | ...ContextMenu.defaultMenu, 17 | { 18 | "type" : "plain", 19 | "icon" : ContextIcons.download, 20 | "text" : "Download" 21 | }, 22 | { 23 | "type" : "split", 24 | }, 25 | { 26 | "type" : "plain", 27 | "icon" : ContextIcons.close, 28 | "text" : "Close" 29 | }, 30 | ] 31 | 32 | 33 | static { 34 | // some JS code to fill the 'content' variable 35 | 36 | // Example 37 | var my_app_content = document.createElement("div"); 38 | my_app_content.classList.add("my-app-content"); 39 | my_app_content.innerHTML = "Hello, world!"; 40 | 41 | var my_date = document.createElement("div"); 42 | my_date.classList.add("date-now"); 43 | 44 | my_app_content.appendChild(my_date); 45 | 46 | my_app_content.classList.add("noselect"); 47 | MyApp.content = my_app_content; 48 | } 49 | 50 | static async onclone(content) { 51 | // some dynamic elements loading or event listeners adding 52 | 53 | // Example 54 | var date = new Date; 55 | content.querySelector(".date-now").innerHTML = `My Time: ${date.toString()}`; 56 | } 57 | 58 | } 59 | ``` 60 | 61 | Here's our app. 62 | 63 | ![MyApp](../../../static/img/win-template.png) 64 | 65 | ### onclone works with clones 66 | 67 | By default, dock uses cloning to open multiple apps each with its own context, so `onclone` is needed to load dynamic elements, while `content` is just a static template. 68 | 69 | `onclone` gets a cloned `content` as an argument, so it's a clone of your static template, not your initial `content` variable from class. 70 | 71 | ## Adding your app to dock 72 | 73 | There are 2 steps to add your app to the demo (ex.: dock): 74 | 75 | 1. Load JS script 76 | 77 | Open `index.html`, go to the `head` tag, and add your JS script like: 78 | 79 | ```html 80 | 81 | 82 | // ... 83 | 84 | 85 | // ... 86 | 87 | 88 | 89 | // ... 90 | 91 | 92 | // ... 93 | 94 | 95 | 96 | // ... 97 | 98 | 99 | // ... 100 | 101 | 102 | 103 | //... 104 | 105 | // ... 106 | 107 | 108 | ``` 109 | 110 | 2. Place it in dock 111 | 112 | As an example, our app will be added to dock. We need to open `demo.js`, find there `apps_list` array and place there our app. 113 | 114 | All apps are loaded from the first to the last, so your position depends on the place you've chosen. 115 | 116 | ```js 117 | var apps_list = [ 118 | // some apps 119 | 120 | MyApp, 121 | 122 | // some apps 123 | ] 124 | ``` 125 | 126 | ## Reserve your app 127 | 128 | If you want to create a specific app, but you haven't written your code yet, then you may use a [placeholder](Placeholder/about.mdx). -------------------------------------------------------------------------------- /docs/demo/libdrag/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Drag&Drop Library", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Drag&Drop Library" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libdrag/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # About Drag&Drop 5 | 6 | `DragAndDrop` contains all functionality to move and drop Objects. 7 | 8 | It has a [listener](listen), that controls `dragList` and moves Objects, that are added there. 9 | 10 | To add an Object you can use [add](add) function and to drop also [drop](drop). 11 | 12 | More info is in this documentation section. -------------------------------------------------------------------------------- /docs/demo/libdrag/add.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # add 5 | 6 | ```js 7 | static add = (e, currentTarget, target, currentTarget_in_f, target_in_f, currentTarget_f, target_f, currentTarget_out_f, target_out_f, drop_f, modify_X = true, modify_Y = true, extraX, extraY) 8 | ``` 9 | 10 | `DragAndDrop.add` builds `info` Object and pushes it in `dragList`. This `info` Object contains all information to manipulate the drag process. 11 | 12 |
13 | 14 | Info: 15 | 16 | - `currentTarget` (id/class) 17 | - `target` (id/class) 18 | - `currentTarget_in_f` (start drag function) 19 | - `target_in_f` (start drag function) 20 | - `currentTarget_f` (while drag function) 21 | - `target_f` (while drag function) 22 | - `currentTarget_out_f` (end drag function) 23 | - `target_out_f` (end drag function) 24 | - `drop_f` (out of bounds function) 25 | - `modifyX` (default true) (flag to block X axis movement) 26 | - `modifyY` (default true) (flag to block Y axis movement) 27 | - `extraX` (default 0) (extra X offset (for resize purposes)) 28 | - `extraY` (default 0) (extra Y offset (for resize purposes)) 29 | 30 |
31 | 32 | It also executes start drag functions for `currentTarget` and `target`. 33 | 34 | Simple drag event: 35 | ```js 36 | currentTarget.addEventListener("mousedown", e => { 37 | DragAndDrop.add(e, `#${currentTarget.id}`, `#${target.id}`); 38 | }); 39 | ``` 40 | In this example, you can make an object movable without callback functions. 41 | 42 | Return function example: 43 | ```js 44 | const returnExample = (e, target, info) => { 45 | target.style.transition = "transform 0.1s ease-in-out"; 46 | target.style.transform = null; 47 | } 48 | ``` 49 | 50 | Every callback function gets `e` (event), `target` (`currentTarget/target` Object), `info` (`info` Object of target) 51 | 52 | This function smoothly returns an object to its position, but excludes smoothness on drag start. 53 | 54 | ```js 55 | const dropTransition = (e, target, info) => { 56 | target.style.transition = null; 57 | } 58 | ``` 59 | 60 | Now we can upgrade our code: 61 | ```js 62 | currentTarget.addEventListener("mousedown", e => { 63 | DragAndDrop.add(e, `#${currentTarget.id}`, `#${target.id}`, undefined, dropTransition, undefined, undefined, undefined, returnExample); 64 | }); 65 | ``` 66 | 67 | If there's no function, just set it as `undefined`. 68 | 69 | `currentTarget` must be child of the `target` or even `target` itself. Otherwise, it can cause unpredictable behavior. Also, it's a possibility to create a remote manipulation functionality. -------------------------------------------------------------------------------- /docs/demo/libdrag/click.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Click 5 | 6 | ```js 7 | static click = (e, target, currentTarget_f, target_f) 8 | ``` 9 | 10 | `DragAndDrop.click` is just an extended click event, that executes a function for `target` and `currentTarget` when `currentTarget` is clicked. Rarely used. 11 | 12 | An example directly from demo website: 13 | ```js 14 | win_fullsize.addEventListener("click", e => { 15 | DragAndDrop.click(e, `#${win.id}`, undefined, fullsize); 16 | }); 17 | ``` 18 | 19 | When you click the fullscreen button on the window, it becomes bigger. 20 | 21 | This function just makes sometimes code faster and smaller. -------------------------------------------------------------------------------- /docs/demo/libdrag/drop.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # drop 5 | 6 | ```js 7 | static drop = (e, target) 8 | ``` 9 | 10 | `DragAndDrop.drop` is executed on `mouseup` event and uses `info` to end drag. 11 | 12 | `target` is required to catch `info` Object from `dragList`. 13 | 14 | Example: 15 | ```js 16 | window.addEventListener("mouseup", e => { 17 | DragAndDrop.drop(e, `#${target}`); 18 | }); 19 | ``` 20 | 21 | The second argument should be the same as the third in `add`. -------------------------------------------------------------------------------- /docs/demo/libdrag/dropAll.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # dropAll 5 | 6 | ```js 7 | static dropAll = e 8 | ``` 9 | 10 | `DragAndDrop.dropAll` is used to drop all objects as if it was `drop` for every `dragList` item, but in `add` you can specify a `drop_f` function, that will be executed only in that case. 11 | 12 | It's mostly used to drop all objects if the cursor leaves the page while dragging something to exclude unexpected behavior. 13 | 14 | Example: 15 | ```js 16 | demo_body.addEventListener("mouseleave", DragAndDrop.dropAll}); 17 | ``` -------------------------------------------------------------------------------- /docs/demo/libdrag/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `DragAndDrop.get` is used to get private `dragList` to view all currently dragged Objects. 11 | 12 | Example: 13 | ```js 14 | var dragList = DragAndDrop.get(); // a clone of the private list 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libdrag/listen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # listen 5 | 6 | ```js 7 | static listen = e 8 | ``` 9 | 10 | `DragAndDrop.listen` controls all movements iterating through `dragList`. Theoretically, it can move many objects at the same time as long as they are in `dragList`. 11 | 12 | To drop all objects without end drop functions, you can `DragAndDrop.wipe()`, but better don't do it. 13 | 14 | To enable dragging on a page you have to specify drag listener. 15 | 16 | Example: 17 | ```js 18 | window.addEventListener("mousemove", DragAndDrop.listen); 19 | ``` 20 | 21 | That's all. There should exist only one global drag listener. It can be any object, but remember, that all drag events will be possible only inside this object, so `window` is the best option. 22 | 23 | This function also executes real-time drag functions for `currentTarget` and `target` Object every move. These functions are stored in `dragList`, which you can [get](get) with a function. -------------------------------------------------------------------------------- /docs/demo/libdrag/wipe.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # wipe 5 | 6 | ```js 7 | static wipe = () 8 | ``` 9 | 10 | `DragAndDrop.wipe` is used to wipe `dragList`. This is a hard variation of the `dropAll` method and it shouldn't be used directly from the code. 11 | 12 | Example: 13 | ```js 14 | DragAndDrop.wipe(); // all Objects just will be dropped in the place, where they were brought 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Appbar/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Appbar Class", 3 | "position": 4, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Appbar Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Appbar/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Appbar 5 | 6 | `Appbar` class is used to fill the appbar and control apps in the dock. 7 | 8 | `set` is used to set apps in the appbar and `get` is used to get the list of the current apps. 9 | 10 | It also has two extra variables: 11 | 12 | 1. `Appbar.Split` is a variable, that holds a template for a split line. 13 | 14 | Example: 15 | 16 | ```js 17 | var apps_list = [ 18 | // some apps before the line 19 | 20 | Appbar.Split, 21 | 22 | // some apps after the line 23 | ] 24 | ``` 25 | 26 | 2. `Appbar.appbar` contains a string reference to the appbar element. 27 | 28 | Use it with `querySelector`. -------------------------------------------------------------------------------- /docs/demo/libwin/Appbar/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `Appbar.get` returns an array of apps and their info. 11 | 12 | Example: 13 | ```js 14 | var apps_list = Appbar.get(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Appbar/set.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # set 5 | 6 | ```js 7 | static set = list_l 8 | ``` 9 | 10 | `Appbar.set` looks for an Object defined in `Appbar.app_bar` and fills it with app Objects. It gets a list of apps with generation configs for each one. 11 | 12 | Example from the demo: 13 | ```js 14 | var apps_list = [ 15 | { 16 | "title" : Filemanager.title, // window title 17 | "src" : Filemanager.src, // appbar/window icon 18 | "content" : Filemanager.content, // content for the window 19 | "extraClass" : Filemanager.extraClass // extra classes for window (optional) 20 | }, 21 | { 22 | "content" : "hr" 23 | }, 24 | { 25 | "title" : Messages.title, 26 | "src" : Messages.src, 27 | "content" : Messages.content, 28 | "listenerAdder" : Messages. // dynamic function for cloned apps 29 | } 30 | } 31 | 32 | Appbar.set(apps_list); 33 | ``` 34 | 35 | It sets the internal apps list with the given list to use it via `get` independent from the initial variable and origin. -------------------------------------------------------------------------------- /docs/demo/libwin/ContextMenu/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "ContextMenu Class", 3 | "position": 4, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "ContextMenu Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/ContextMenu/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About ContextMenu 5 | 6 | `ContextMenu` class is used to create a custom context menu for your app. It can be applied to any element or window, so you may create specific menus for any window and elements inside it. 7 | 8 | It can't be directly accessed. For more information and examples of how to add a context menu to the app, go [here](../../libdemo/window_template). 9 | 10 | Adding a context menu to an element: 11 | ```js 12 | anyElement.contextMenu = [ 13 | ...ContextMenu.defaultMenu, 14 | { 15 | "type" : "plain", // type 16 | "icon" : ContextIcons.download, // icon object (svg) 17 | "text" : "Download" // text for label 18 | }, 19 | { 20 | "type" : "split", 21 | }, 22 | { 23 | "type" : "plain", 24 | "icon" : ContextIcons.close, 25 | "text" : "Close" 26 | }, 27 | ] 28 | ``` 29 | 30 | If there's no context menu for the element, `ContextMenu` loop will check the next element in the path. 31 | 32 | Example: 33 | Element -> Element Holder -> Your App -> Workspace -> Demo 34 | 35 | It will loop through the path array till it finds any context menu. By default, Demo will have a default context menu applied. -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Keylogger Class", 3 | "position": 8, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Keylogger Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Keylogger 5 | 6 | `Keylogger` class is used to check, which keys are held or to add some general keybindings. 7 | 8 | It also has `Keylogger.showKeys` variable. Set it `true` via console to see events info. -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/getKeys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getKeys 5 | 6 | ```js 7 | static getKeys = () 8 | ``` 9 | 10 | `Keylogger.getKeys` returns an array of currently held keys. 11 | 12 | Example: 13 | ```js 14 | Keylogger.getKeys().includes(16); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/getList.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # getList 5 | 6 | ```js 7 | static getList = () 8 | ``` 9 | 10 | `Keylogger.getList` returns an array of currently added key events. 11 | 12 | Example: 13 | ```js 14 | var actions_list = Keylogger.getList(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/press.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | 5 | # press 6 | 7 | ```js 8 | static press = (keyCode, ...args) 9 | ``` 10 | 11 | `Keylogger.press` adds a new action to the private list. 12 | 13 | You can add multiple functions per call. 14 | 15 | Functions from `...args` get `e` as event information and `info` as information about this actions configs. 16 | 17 | Example: 18 | 19 | ```js 20 | const sayHi = (e, info) => { 21 | var keys = Keylogger.getKeys(); 22 | if (keys.includes(16)) { 23 | console.log(`Hi, you pressed Ctrl and ${e.code}`); 24 | } 25 | }; 26 | 27 | const someonesSayHi = (e, info) => { 28 | var keys = Keylogger.getKeys(); 29 | if (keys.includes(17)) { 30 | console.log(`Hi, you pressed Shift and ${e.code}`); 31 | } 32 | }; 33 | 34 | Keylogger.press(32, sayHi, someonesSayHi); // on Ctrl + Space or Shift + Space it will output message 35 | ``` 36 | 37 | Better avoid splitting actions into multiple functions too much. 38 | -------------------------------------------------------------------------------- /docs/demo/libwin/Keylogger/unpress.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # unpress 5 | 6 | ```js 7 | static unpress = (keyCode, ...args) 8 | ``` 9 | 10 | `Keylogger.unpress` is used to remove all actions with a key. You may add references to the functions you want to remove to save other actions. 11 | 12 | Example; 13 | ```js 14 | Keylogger.press(23, sayHi, someonesSayHi); 15 | 16 | // ... 17 | 18 | // Example 1 (remove all) 19 | Keylogger.unpress(23); 20 | 21 | // Example 2 (only sayHi) 22 | Keylogger.unpress(23, sayHi); 23 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Layer/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Layer Class", 3 | "position": 7, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Layer Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Layer/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Layer 5 | 6 | `Layer` class is used to control the `z-index` value to set window visibility. 7 | 8 | `inc` is used to increment the current value and `get` is used to get it for your purposes. 9 | 10 | Don't forget to increment layer value after you finish. -------------------------------------------------------------------------------- /docs/demo/libwin/Layer/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `Layer.get` returns an integer for `z-index`. 11 | 12 | Example: 13 | ```js 14 | win.style.zIndex = Layer.get(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Layer/inc.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # inc 5 | 6 | ```js 7 | static inc = () 8 | ``` 9 | 10 | `Layer.inc` is used to increment the `z-index` value. It should be used at the end of the window impact function. 11 | 12 | Example: 13 | ```js 14 | Layer.inc(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Scrollbar/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Scrollbar Class", 3 | "position": 5, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Scrollbar Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Scrollbar/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Scrollbar 5 | 6 | The `Scrollbar` class is used to control the third dock element with widgets. 7 | 8 | `set` is used to set a widget in the scrollbar and `get` is used to get the current scrollbar list. 9 | 10 | It also has two extra variables: 11 | 12 | 1. `Appbar.scroll_bar` contains a string reference to the scrollbar element. 13 | 14 | Use it with `querySelector`. -------------------------------------------------------------------------------- /docs/demo/libwin/Scrollbar/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `Scrollbar.get` returns an Object with the current widget index as `pos` and an array of widgets. 11 | 12 | Example: 13 | ```js 14 | var scroll_list = Scrollbar.get(); 15 | var current_widget = scroll_list[scroll_list.pos]; 16 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Scrollbar/set.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # set 5 | 6 | ```js 7 | static set = list_l 8 | ``` 9 | 10 | `Scrollbar.set` looks for Object defined in `Scrollbar.scroll_bar` and fills dock element with a widget from `items` due to `pos` index. 11 | 12 | It also has a `wheel` event, that refreshes the scrollbar every time it's scrolled with Shift Holden. 13 | 14 | Example from the demo: 15 | ```js 16 | var scroll_list = { 17 | "pos" : 0, 18 | "items" : [ 19 | weather_time, 20 | player_holder, 21 | ] 22 | } 23 | 24 | Scrollbar.set(scroll_list); 25 | ``` 26 | 27 | It sets the internal widgets list with the given list to use it in `window.js` via `get` independent from the initial variable and origin. 28 | 29 | Scrollbar scrolling just changes `pos` and recreates the scrollbar. -------------------------------------------------------------------------------- /docs/demo/libwin/Window/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Window Class", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Window Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Window/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # About Window 5 | 6 | `Window` is used to control window spawning. It controls the main id to unite elements with windows and wraps content in windows. 7 | 8 | `get` is used to get the current id and `inc` is used as increment id, `make` creates a window Object and `close` is used to close a window. -------------------------------------------------------------------------------- /docs/demo/libwin/Window/close.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # close 5 | 6 | ```js 7 | static close = (e, ...args) 8 | ``` 9 | 10 | `Window.close` is used to close windows. If Object is not a window, it will throw an `Error`. 11 | 12 | Example: 13 | ```js 14 | Window.close(e, win1, win2, ...); // e - event (can be undefined) 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Window/closeTab.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # closeTab 5 | 6 | ```js 7 | static closeTab = (...args) 8 | ``` 9 | 10 | `Window.closeTab` is used to merge some windows into a single one. If any object from `...args` is not a tab, it will finish the loop and throw an `Error`. 11 | 12 | Example: 13 | ```js 14 | Window.closeTab(tab1, tab2, ...); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Window/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `Window.get` returns current window id. 11 | 12 | ```js 13 | var current_id = Window.get(); 14 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Window/inc.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # inc 5 | 6 | ```js 7 | static inc = () 8 | ``` 9 | 10 | `Window.inc` is used to increment window id. It's used after window creation. 11 | 12 | Example: 13 | ```js 14 | Window.inc(); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Window/make.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # make 5 | 6 | ```js 7 | static make = (content, icon_src, title, extraClass, contextMenu, makeClone, addPanel = true, addResize = true, onclone = async content => {}) => { 8 | ``` 9 | 10 | `Window.make` returns a window Object, that can be added to the page. Before adding it you can modify it. 11 | 12 | ## Arguments: 13 | 14 |
15 | Content 16 | 17 | `content` can be any element like 18 | ```js 19 | var content = document.createElement("div"); 20 | ``` 21 | You can modify it and send it as an argument. 22 | 23 | For more details check the template sections in the demo library. 24 | 25 |
26 | 27 |
28 | Icon Source 29 | 30 | `icon_src` is an URL to the app icon. 31 | 32 |
33 | 34 |
35 | Title 36 | 37 | Window title. 38 | 39 |
40 | 41 |
42 | Extra Classes 43 | 44 | `extraClass` is an array of strings. All strings will be added to the generated window as classes. 45 | ```js 46 | ["filemanager-window", "wide-window"] 47 | ``` 48 | 49 |
50 | 51 |
52 | Context menu 53 | 54 | Any window may have a custom context menu. It's optional. 55 | 56 | If there's no context menu, demo will use the default one. 57 | 58 | Example: 59 | ```js 60 | [ 61 | ...ContextMenu.defaultMenu, 62 | { 63 | "type" : "plain", 64 | "icon" : ContextIcons.download, 65 | "text" : "Download" 66 | }, 67 | { 68 | "type" : "split", 69 | }, 70 | { 71 | "type" : "plain", 72 | "icon" : ContextIcons.close, 73 | "text" : "Close" 74 | }, 75 | ] 76 | ``` 77 | 78 |
79 | 80 |
81 | Make Clone 82 | 83 | Bool flag. It's used to clone content and add it to multiple windows. (cloning objects makes them static and drops events). 84 | 85 | For more details check `Listener Adder`. 86 | 87 |
88 | 89 |
90 | Add Panel 91 | 92 | Bool flag. `false` to disable topbar. It will also change window class from `window` to `static-window`. 93 | 94 |
95 | 96 |
97 | Add Resize 98 | 99 | Bool flag. `false` to disable resizing. 100 | 101 |
102 | 103 |
104 | Listener Adder 105 | 106 | `listenerAdder` is a function, that gets `content` (after cloning). You can modify this content and it will be applied to the generated window. 107 | 108 | It allows us to overpass cloning limitations and make windows dynamic. 109 | 110 |
111 | 112 | Simple window example: 113 | 114 | ```js 115 | Window.make(filemanager_content, "src/image/filemanager.jpg", "Filemanager"); 116 | ``` 117 | 118 | Adding window to the `body`: 119 | ```js 120 | Workspace.add(Window.make(filemanager_content, "src/image/filemanager.jpg", "Filemanager")); 121 | ``` 122 | 123 | For more info about how to create an app, go to the template sections in the demo library. -------------------------------------------------------------------------------- /docs/demo/libwin/Window/merge.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # merge 5 | 6 | ```js 7 | static merge = (main_win, ...args) 8 | ``` 9 | 10 | `Window.merge` is used to merge some windows into a single one. If `main_win` is not a window, it will throw an `Error`. 11 | 12 | You may mix windows with boolean flags to change tilling visibility after merging. 13 | 14 | By default, all merged windows are visible. 15 | 16 | Example: 17 | ```js 18 | // Merge win1 and win2 with main_win 19 | 20 | // win1 will be visible after merging and win2 will be hidden, but may be accessed via a tab in a top bar 21 | Window.merge(main_win, win1, false, win2, ...); 22 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Workspace/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Workspace Class", 3 | "position": 6, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Workspace Class" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/Workspace/add.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # add 5 | 6 | ```js 7 | static add = (..args) 8 | ``` 9 | 10 | `Workspace.add` can add multiple windows to the current workspace. 11 | 12 | ```js 13 | Workspace.add(anyWindow1, anyWindow2, ...); 14 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Workspace/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # get 5 | 6 | ```js 7 | static get = () 8 | ``` 9 | 10 | `Workspace.get` returns current workspace number. It can be used with id. 11 | 12 | Example: 13 | ```js 14 | var workspace = document.querySelector(`#workspace${Workspace.get()}`); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/Workspace/set.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # set 5 | 6 | ```js 7 | static set = ws_num 8 | ``` 9 | 10 | `Workspace.set` creates or switches to the workspace by `ws_num` number. If the workspace is empty, it will be erased, otherwise, it will switch to an existing one. 11 | 12 | Example: 13 | ```js 14 | Workspace.set(2).add(anyWindow); 15 | ``` -------------------------------------------------------------------------------- /docs/demo/libwin/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Window Library", 3 | "position": 4, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Window Library" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/demo/libwin/about.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # About windows 5 | 6 | Any Object can be considered as a window if it has a `win-tab`, `content-holder` and `icon-block` and all with the same `win_num_g` id number. 7 | 8 | You can spawn embedded windows using this by calling `makeWindow` and modifying its output. 9 | 10 | All `content-holder` Objects are in the window's `container`. This gives a tilling opportunity. 11 | 12 | All `icon-block` Objects are between `container` and `wl`. 13 | 14 | All `win-tab` Objects are in the `tab-holder` inserted before the `tab-add` Object. 15 | 16 | Dock underlines are connected with windows via `win_id` id, which is used while generation in `Appbar`. 17 | 18 | Every window generation means incrementing this variable (`win_id`). 19 | 20 | ![Window image](../../../static/img/demo-window.png) 21 | 22 | `icon-block` Objects are used to show icons in insert mode. They can be blank. 23 | 24 | `content-holder` is used to limit the content size and to give the possibility to move it in different windows. 25 | 26 | `win-tab` is used to manipulate the window in inserted mode. -------------------------------------------------------------------------------- /docs/intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | 5 | # Tutorial Intro 6 | 7 | Let's discover **Docusaurus in less than 5 minutes**. 8 | 9 | ## Getting Started 10 | 11 | Get started by **creating a new site**. 12 | 13 | Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. 14 | 15 | ### What you'll need 16 | 17 | - [Node.js](https://nodejs.org/en/download/) version 14 or above: 18 | - When installing Node.js, you are recommended to check all checkboxes related to dependencies. 19 | 20 | ## Generate a new site 21 | 22 | Generate a new Docusaurus site using the **classic template**. 23 | 24 | The classic template will automatically be added to your project after you run the command: 25 | 26 | ```bash 27 | npm init docusaurus@latest my-website classic 28 | ``` 29 | 30 | You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. 31 | 32 | The command also installs all necessary dependencies you need to run Docusaurus. 33 | 34 | ## Start your site 35 | 36 | Run the development server: 37 | 38 | ```bash 39 | cd my-website 40 | npm run start 41 | ``` 42 | 43 | The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there. 44 | 45 | The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/. 46 | 47 | Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes. 48 | -------------------------------------------------------------------------------- /docs/nadva/navda-intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Intro to Navda 5 | 6 | 7 | 8 | *Navda* is AvdanOS' [Wayland compositor](https://wayland.freedesktop.org). 9 | 10 | In Avdan's [concept video](https://www.youtube.com/watch?v=tXFEiw1aJTw), 11 | you can see windows interacting in ways that can reminisce both traditional [tiling](https://en.wikipedia.org/wiki/Tiling_window_manager) window managers, 12 | and [floating](https://en.wikipedia.org/wiki/Stacking_window_manager) window managers. -------------------------------------------------------------------------------- /docs/navda/multitasking/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Multitasking in AvdanOS", 3 | "position": 2, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Multitasking" 7 | } 8 | } -------------------------------------------------------------------------------- /docs/navda/multitasking/intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Multitasking 5 | 6 | 7 | :::danger 8 | TODO: @Sammy99jsp 9 | ::: 10 | 11 | Multitasking in AvdanOS can be done in multiple ways: 12 | * Side-by-side (Tiled) 13 | * Tabs 14 | -------------------------------------------------------------------------------- /docs/navda/multitasking/tabs.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Tabs 5 | 6 | 7 | 8 | import AutoPlay from "@site/src/components/media/autoplay.js"; 9 | 10 | 11 | 12 | ## Expected Behavior 13 | Most applications will be able to be displayed as a tab. 14 | Examples would include: 15 | * Office applications (which use separate windows for each document) 16 | * Media players 17 | 18 | ## Further Suggestions 19 | :::caution 20 | ### ❔ Unofficial Feature(s) ❔ 21 | This section of the documentation is a suggestion and is not part of the original specification. 22 | 23 | The need for these/this feature(s) is still up for debate. 24 | ::: 25 | ### "Synthetic" Tab API 26 | 27 | 28 | 29 | Tabs are also a common pattern inside applications themselves. 30 | But, if we want to display the application's tabs as AvdanOS Tabs, 31 | we need to implement a way for the application to do so. 32 | 33 | Types of applications that would benefit: 34 | * Browsers 35 | * Code Editors 36 | 37 | #### What is a Synthetic Tab? 38 | A synthetic tab is a tab that is not a real application, which belongs 39 | to a parent application. 40 | 41 | 1. A user clicks on a synthetic tab. 42 | 2. The parent application is notified. 43 | 3. The parent application will change its view, and display content. 44 | 4. The synthetic tab is marked as active. -------------------------------------------------------------------------------- /docs/navda/multitasking/tiling.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # Tiling View 5 | 6 | 7 | 8 | import AutoPlayVid from "@site/src/components/media/autoplay.js"; 9 | 10 | -------------------------------------------------------------------------------- /docs/navda/multitasking/virtual-desktops.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 3 3 | --- 4 | # Virtual Desktops 5 | 6 | 7 | 8 | import AutoPlay from "@site/src/components/media/autoplay.js"; 9 | 10 | -------------------------------------------------------------------------------- /docs/navda/navda-intro.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Intro to Navda 5 | 6 | 7 | 8 | *Navda* is AvdanOS' [Wayland compositor](https://wayland.freedesktop.org). 9 | 10 | In Avdan's [concept video](https://www.youtube.com/watch?v=tXFEiw1aJTw), 11 | you can see windows interacting in ways that can reminisce both traditional [tiling](https://en.wikipedia.org/wiki/Tiling_window_manager) window managers, 12 | and [floating](https://en.wikipedia.org/wiki/Stacking_window_manager) window managers. -------------------------------------------------------------------------------- /docs/navda/personalization/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Personalization", 3 | "position": 3, 4 | "link": { 5 | "type": "generated-index", 6 | "title": "Theming and customizing the OS." 7 | } 8 | } -------------------------------------------------------------------------------- /docs/navda/personalization/appearance-schedule.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 2 3 | --- 4 | # Appearance Schedule 5 | 6 | import AutoPlay from "@site/src/components/media/autoplay.js"; 7 | 8 | 9 | 10 | ## Expected Behavior 11 | 12 | 13 | 14 | The Appearance Scheduling feature allows users to change the active theme based on the time of day. 15 | 16 | ### Implementation 17 | Requirements 18 | * Navda must be able to change the active theme smoothly. 19 | * Navda must occasionally check system time. 20 | * This data must be included in the config file. 21 | 22 | #### For Sunrise/Sunset 23 | This feature would require the user to give their location via: 24 | * GPS, or; 25 | * Manually entering their location. 26 | 27 | ## Further Suggestions 28 | :::caution 29 | ### ❔ Unofficial Feature(s) ❔ 30 | This section of the documentation is a suggestion and is not part of the original specification. 31 | 32 | The need for these/this feature(s) is still up for debate. 33 | ::: 34 | ### Time-based background changes 35 | A feature that allows the user to change their desktop background based on the time of day. 36 | -------------------------------------------------------------------------------- /docs/navda/personalization/themes.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | # Themes 5 | 6 | 7 | 8 | import AutoPlay from "@site/src/components/media/autoplay.js"; 9 | 10 | -------------------------------------------------------------------------------- /docusaurus.config.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | // Note: type annotations allow type checking and IDEs autocompletion 3 | 4 | const lightCodeTheme = require('prism-react-renderer/themes/github'); 5 | const darkCodeTheme = require('prism-react-renderer/themes/dracula'); 6 | 7 | /** @type {import('@docusaurus/types').Config} */ 8 | const config = { 9 | title: 'AvdanOS Documentation', 10 | tagline: 'All the docs of AvdanOS', 11 | url: 'https://avdanos.github.io/docs', 12 | baseUrl: '/', 13 | onBrokenLinks: 'throw', 14 | onBrokenMarkdownLinks: 'warn', 15 | favicon: 'img/favicon.ico', 16 | 17 | // GitHub pages deployment config. 18 | // If you aren't using GitHub pages, you don't need these. 19 | organizationName: 'Avdan-OS', // Usually your GitHub org/user name. 20 | projectName: 'docsite', // Usually your repo name. 21 | 22 | // Even if you don't use internalization, you can use this field to set useful 23 | // metadata like html lang. For example, if your site is Chinese, you may want 24 | // to replace "en" with "zh-Hans". 25 | i18n: { 26 | defaultLocale: 'en', 27 | locales: ['en'], 28 | }, 29 | 30 | presets: [ 31 | [ 32 | 'classic', 33 | /** @type {import('@docusaurus/preset-classic').Options} */ 34 | ({ 35 | docs: { 36 | sidebarPath: require.resolve('./sidebar/avdanos.js'), 37 | path: "docs/avdanos" 38 | // Please change this to your repo. 39 | // Remove this to remove the "edit this page" links. 40 | // editUrl: 41 | // 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', 42 | }, 43 | blog: { 44 | showReadingTime: true, 45 | // Please change this to your repo. 46 | // Remove this to remove the "edit this page" links. 47 | // editUrl: 48 | // 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', 49 | }, 50 | theme: { 51 | customCss: require.resolve('./src/css/custom.css'), 52 | }, 53 | }), 54 | ], 55 | ], 56 | 57 | plugins: [ 58 | [ 59 | '@docusaurus/plugin-content-docs', 60 | { 61 | id: 'navda', 62 | path: 'docs/navda', 63 | routeBasePath: 'navda', 64 | sidebarPath: require.resolve('./sidebar/navda.js'), 65 | // ... other options 66 | }, 67 | ], 68 | [ 69 | '@docusaurus/plugin-content-docs', 70 | { 71 | id: 'demo', 72 | path: 'docs/demo', 73 | routeBasePath: 'demo', 74 | sidebarPath: require.resolve('./sidebar/demo.js'), 75 | // ... other options 76 | }, 77 | ], 78 | ], 79 | 80 | themeConfig: 81 | /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ 82 | ({ 83 | colorMode: { 84 | defaultMode: 'dark', 85 | }, 86 | navbar: { 87 | title: 'AvdanOS Docs', 88 | logo: { 89 | alt: 'Avdan OS Docs Logo', 90 | src: 'img/logo.svg', 91 | }, 92 | items: [ 93 | { 94 | type: 'doc', 95 | docId: 'intro', 96 | position: 'left', 97 | label: 'Project AvdanOS', 98 | }, 99 | { 100 | to: 'navda/navda-intro', 101 | position: 'left', 102 | label: 'Navda', 103 | }, 104 | { 105 | to: 'demo/demo-intro', 106 | position: 'left', 107 | label: 'Demo', 108 | }, 109 | { 110 | href: 'https://github.com/Avdan-OS', 111 | position: 'right', 112 | className: 'header-github-link', 113 | }, 114 | { 115 | type: 'localeDropdown', 116 | position: 'right', 117 | dropdownItemsAfter: [ 118 | { 119 | type: 'html', 120 | value: '
', 121 | }, 122 | { 123 | href: 'https://github.com/Avdan-OS/docsite', 124 | label: 'Help Us Translate', 125 | }, 126 | ], 127 | }, 128 | ], 129 | }, 130 | footer: { 131 | style: 'dark', 132 | links: [ 133 | { 134 | title: 'Docs', 135 | items: [ 136 | { 137 | label: 'Overview', 138 | to: '/docs/intro', 139 | }, 140 | { 141 | label: 'Navda', 142 | to: '/navda/navda-intro', 143 | }, 144 | { 145 | label: 'Demo', 146 | to: '/demo/demo-intro', 147 | }, 148 | ], 149 | }, 150 | { 151 | title: 'Community', 152 | items: [ 153 | { 154 | label: 'Discord', 155 | href: 'https://avdanos.org/discord', 156 | }, 157 | { 158 | label: 'YouTube', 159 | href: 'https://www.youtube.com/channel/UCHLCBj83J7bR82HwjhCJusA', 160 | }, 161 | { 162 | label: 'Twitter', 163 | href: 'https://twitter.com/avdan_os', 164 | }, 165 | { 166 | label: 'Instagram', 167 | href: 'https://www.instagram.com/avdanos_/', 168 | }, 169 | { 170 | label: 'Reddit', 171 | href: 'https://www.reddit.com/r/AvdanOS/', 172 | }, 173 | ], 174 | }, 175 | { 176 | title: 'More', 177 | items: [ 178 | // { 179 | // label: 'Blog', 180 | // href: '/blog', 181 | // }, 182 | { 183 | label: 'Our Website', 184 | href: 'https://avdanos.com/', 185 | }, 186 | { 187 | label: 'GitHub', 188 | href: 'https://github.com/Avdan-OS/', 189 | }, 190 | { 191 | label: 'Download', 192 | href: 'https://avdanos.com/downloads', 193 | }, 194 | ], 195 | }, 196 | ], 197 | copyright: `Copyright © ${new Date().getFullYear()} Avdan OS Community. Built with Docusaurus.`, 198 | }, 199 | prism: { 200 | theme: lightCodeTheme, 201 | darkTheme: darkCodeTheme, 202 | }, 203 | }), 204 | }; 205 | 206 | module.exports = config; 207 | -------------------------------------------------------------------------------- /i18n/en/code.json: -------------------------------------------------------------------------------- 1 | { 2 | "Get Started!": { 3 | "message": "Get Started!" 4 | }, 5 | "Everyone knows dock/task bar. We got a brand new dock, with more features than ever before.": { 6 | "message": "Everyone knows dock/task bar. We got a brand new dock, with more features than ever before." 7 | }, 8 | "Drag and drop is the easiest way to transfer anything on your computer. We make it intuitive and easy to use.": { 9 | "message": "Drag and drop is the easiest way to transfer anything on your computer. We make it intuitive and easy to use." 10 | }, 11 | "This file manager keeps you organized and productive. Find your files the instant you need it.": { 12 | "message": "This file manager keeps you organized and productive. Find your files the instant you need it." 13 | }, 14 | "Want to do many tasks at a time? We know you and we got you. It's now not only multitasking, it's organized multitasking.": { 15 | "message": "Want to do many tasks at a time? We know you and we got you. It's now not only multitasking, it's organized multitasking." 16 | }, 17 | "Context menu didn't change for multiple decades now. We are tired of a long list of items, and hey why not make it a circle? Don't like it? You can switch it back in settings!": { 18 | "message": "Context menu didn't change for multiple decades now. We are tired of a long list of items, and hey why not make it a circle? Don't like it? You can switch it back in settings!" 19 | }, 20 | "With a list of presets determined from you apps, easily get to work with the perfect window layout. Not enough? Change it in the settings.": { 21 | "message": "With a list of presets determined from you apps, easily get to work with the perfect window layout. Not enough? Change it in the settings." 22 | }, 23 | "theme.ErrorPageContent.title": { 24 | "message": "This page crashed.", 25 | "description": "The title of the fallback page when the page crashed" 26 | }, 27 | "theme.ErrorPageContent.tryAgain": { 28 | "message": "Try again", 29 | "description": "The label of the button to try again when the page crashed" 30 | }, 31 | "theme.NotFound.title": { 32 | "message": "Page Not Found", 33 | "description": "The title of the 404 page" 34 | }, 35 | "theme.NotFound.p1": { 36 | "message": "We could not find what you were looking for.", 37 | "description": "The first paragraph of the 404 page" 38 | }, 39 | "theme.NotFound.p2": { 40 | "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.", 41 | "description": "The 2nd paragraph of the 404 page" 42 | }, 43 | "theme.AnnouncementBar.closeButtonAriaLabel": { 44 | "message": "Close", 45 | "description": "The ARIA label for close button of announcement bar" 46 | }, 47 | "theme.blog.archive.title": { 48 | "message": "Archive", 49 | "description": "The page & hero title of the blog archive page" 50 | }, 51 | "theme.blog.archive.description": { 52 | "message": "Archive", 53 | "description": "The page & hero description of the blog archive page" 54 | }, 55 | "theme.BackToTopButton.buttonAriaLabel": { 56 | "message": "Scroll back to top", 57 | "description": "The ARIA label for the back to top button" 58 | }, 59 | "theme.blog.paginator.navAriaLabel": { 60 | "message": "Blog list page navigation", 61 | "description": "The ARIA label for the blog pagination" 62 | }, 63 | "theme.blog.paginator.newerEntries": { 64 | "message": "Newer Entries", 65 | "description": "The label used to navigate to the newer blog posts page (previous page)" 66 | }, 67 | "theme.blog.paginator.olderEntries": { 68 | "message": "Older Entries", 69 | "description": "The label used to navigate to the older blog posts page (next page)" 70 | }, 71 | "theme.blog.post.readingTime.plurals": { 72 | "message": "One min read|{readingTime} min read", 73 | "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" 74 | }, 75 | "theme.blog.post.readMoreLabel": { 76 | "message": "Read more about {title}", 77 | "description": "The ARIA label for the link to full blog posts from excerpts" 78 | }, 79 | "theme.blog.post.readMore": { 80 | "message": "Read More", 81 | "description": "The label used in blog post item excerpts to link to full blog posts" 82 | }, 83 | "theme.blog.post.paginator.navAriaLabel": { 84 | "message": "Blog post page navigation", 85 | "description": "The ARIA label for the blog posts pagination" 86 | }, 87 | "theme.blog.post.paginator.newerPost": { 88 | "message": "Newer Post", 89 | "description": "The blog post button label to navigate to the newer/previous post" 90 | }, 91 | "theme.blog.post.paginator.olderPost": { 92 | "message": "Older Post", 93 | "description": "The blog post button label to navigate to the older/next post" 94 | }, 95 | "theme.blog.post.plurals": { 96 | "message": "One post|{count} posts", 97 | "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" 98 | }, 99 | "theme.blog.tagTitle": { 100 | "message": "{nPosts} tagged with \"{tagName}\"", 101 | "description": "The title of the page for a blog tag" 102 | }, 103 | "theme.tags.tagsPageLink": { 104 | "message": "View All Tags", 105 | "description": "The label of the link targeting the tag list page" 106 | }, 107 | "theme.colorToggle.ariaLabel": { 108 | "message": "Switch between dark and light mode (currently {mode})", 109 | "description": "The ARIA label for the navbar color mode toggle" 110 | }, 111 | "theme.colorToggle.ariaLabel.mode.dark": { 112 | "message": "dark mode", 113 | "description": "The name for the dark color mode" 114 | }, 115 | "theme.colorToggle.ariaLabel.mode.light": { 116 | "message": "light mode", 117 | "description": "The name for the light color mode" 118 | }, 119 | "theme.docs.breadcrumbs.home": { 120 | "message": "Home page", 121 | "description": "The ARIA label for the home page in the breadcrumbs" 122 | }, 123 | "theme.docs.breadcrumbs.navAriaLabel": { 124 | "message": "Breadcrumbs", 125 | "description": "The ARIA label for the breadcrumbs" 126 | }, 127 | "theme.docs.DocCard.categoryDescription": { 128 | "message": "{count} items", 129 | "description": "The default description for a category card in the generated index about how many items this category includes" 130 | }, 131 | "theme.docs.paginator.navAriaLabel": { 132 | "message": "Docs pages navigation", 133 | "description": "The ARIA label for the docs pagination" 134 | }, 135 | "theme.docs.paginator.previous": { 136 | "message": "Previous", 137 | "description": "The label used to navigate to the previous doc" 138 | }, 139 | "theme.docs.paginator.next": { 140 | "message": "Next", 141 | "description": "The label used to navigate to the next doc" 142 | }, 143 | "theme.docs.tagDocListPageTitle.nDocsTagged": { 144 | "message": "One doc tagged|{count} docs tagged", 145 | "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" 146 | }, 147 | "theme.docs.tagDocListPageTitle": { 148 | "message": "{nDocsTagged} with \"{tagName}\"", 149 | "description": "The title of the page for a docs tag" 150 | }, 151 | "theme.docs.versionBadge.label": { 152 | "message": "Version: {versionLabel}" 153 | }, 154 | "theme.docs.versions.unreleasedVersionLabel": { 155 | "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", 156 | "description": "The label used to tell the user that he's browsing an unreleased doc version" 157 | }, 158 | "theme.docs.versions.unmaintainedVersionLabel": { 159 | "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", 160 | "description": "The label used to tell the user that he's browsing an unmaintained doc version" 161 | }, 162 | "theme.docs.versions.latestVersionSuggestionLabel": { 163 | "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).", 164 | "description": "The label used to tell the user to check the latest version" 165 | }, 166 | "theme.docs.versions.latestVersionLinkLabel": { 167 | "message": "latest version", 168 | "description": "The label used for the latest version suggestion link label" 169 | }, 170 | "theme.common.editThisPage": { 171 | "message": "Edit this page", 172 | "description": "The link label to edit the current page" 173 | }, 174 | "theme.common.headingLinkTitle": { 175 | "message": "Direct link to heading", 176 | "description": "Title for link to heading" 177 | }, 178 | "theme.lastUpdated.atDate": { 179 | "message": " on {date}", 180 | "description": "The words used to describe on which date a page has been last updated" 181 | }, 182 | "theme.lastUpdated.byUser": { 183 | "message": " by {user}", 184 | "description": "The words used to describe by who the page has been last updated" 185 | }, 186 | "theme.lastUpdated.lastUpdatedAtBy": { 187 | "message": "Last updated{atDate}{byUser}", 188 | "description": "The sentence used to display when a page has been last updated, and by who" 189 | }, 190 | "theme.navbar.mobileVersionsDropdown.label": { 191 | "message": "Versions", 192 | "description": "The label for the navbar versions dropdown on mobile view" 193 | }, 194 | "theme.common.skipToMainContent": { 195 | "message": "Skip to main content", 196 | "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" 197 | }, 198 | "theme.tags.tagsListLabel": { 199 | "message": "Tags:", 200 | "description": "The label alongside a tag list" 201 | }, 202 | "theme.blog.sidebar.navAriaLabel": { 203 | "message": "Blog recent posts navigation", 204 | "description": "The ARIA label for recent posts in the blog sidebar" 205 | }, 206 | "theme.CodeBlock.copied": { 207 | "message": "Copied", 208 | "description": "The copied button label on code blocks" 209 | }, 210 | "theme.CodeBlock.copyButtonAriaLabel": { 211 | "message": "Copy code to clipboard", 212 | "description": "The ARIA label for copy code blocks button" 213 | }, 214 | "theme.CodeBlock.copy": { 215 | "message": "Copy", 216 | "description": "The copy button label on code blocks" 217 | }, 218 | "theme.CodeBlock.wordWrapToggle": { 219 | "message": "Toggle word wrap", 220 | "description": "The title attribute for toggle word wrapping button of code block lines" 221 | }, 222 | "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { 223 | "message": "Toggle the collapsible sidebar category '{label}'", 224 | "description": "The ARIA label to toggle the collapsible sidebar category" 225 | }, 226 | "theme.navbar.mobileLanguageDropdown.label": { 227 | "message": "Languages", 228 | "description": "The label for the mobile language switcher dropdown" 229 | }, 230 | "theme.TOCCollapsible.toggleButtonLabel": { 231 | "message": "On this page", 232 | "description": "The label used by the button on the collapsible TOC component" 233 | }, 234 | "theme.docs.sidebar.collapseButtonTitle": { 235 | "message": "Collapse sidebar", 236 | "description": "The title attribute for collapse button of doc sidebar" 237 | }, 238 | "theme.docs.sidebar.collapseButtonAriaLabel": { 239 | "message": "Collapse sidebar", 240 | "description": "The title attribute for collapse button of doc sidebar" 241 | }, 242 | "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { 243 | "message": "← Back to main menu", 244 | "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" 245 | }, 246 | "theme.docs.sidebar.expandButtonTitle": { 247 | "message": "Expand sidebar", 248 | "description": "The ARIA label and title attribute for expand button of doc sidebar" 249 | }, 250 | "theme.docs.sidebar.expandButtonAriaLabel": { 251 | "message": "Expand sidebar", 252 | "description": "The ARIA label and title attribute for expand button of doc sidebar" 253 | } 254 | } 255 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-plugin-content-blog/options.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": { 3 | "message": "Blog", 4 | "description": "The title for the blog used in SEO" 5 | }, 6 | "description": { 7 | "message": "Blog", 8 | "description": "The description for the blog used in SEO" 9 | }, 10 | "sidebar.title": { 11 | "message": "Recent posts", 12 | "description": "The label for the left sidebar" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-plugin-content-docs-nadva/current.json: -------------------------------------------------------------------------------- 1 | { 2 | "version.label": { 3 | "message": "Next", 4 | "description": "The label for version current" 5 | }, 6 | "sidebar.tutorialSidebar.category.Multitasking in AvdanOS": { 7 | "message": "Multitasking in AvdanOS", 8 | "description": "The label for category Multitasking in AvdanOS in sidebar tutorialSidebar" 9 | }, 10 | "sidebar.tutorialSidebar.category.Multitasking in AvdanOS.link.generated-index.title": { 11 | "message": "Multitasking", 12 | "description": "The generated-index page title for category Multitasking in AvdanOS in sidebar tutorialSidebar" 13 | }, 14 | "sidebar.tutorialSidebar.category.Personalization": { 15 | "message": "Personalization", 16 | "description": "The label for category Personalization in sidebar tutorialSidebar" 17 | }, 18 | "sidebar.tutorialSidebar.category.Personalization.link.generated-index.title": { 19 | "message": "Theming and customizing the OS.", 20 | "description": "The generated-index page title for category Personalization in sidebar tutorialSidebar" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-plugin-content-docs/current.json: -------------------------------------------------------------------------------- 1 | { 2 | "version.label": { 3 | "message": "Next", 4 | "description": "The label for version current" 5 | }, 6 | "sidebar.tutorialSidebar.category.Contributing to AvdanOS Project": { 7 | "message": "Contributing to AvdanOS Project", 8 | "description": "The label for category Contributing to AvdanOS Project in sidebar tutorialSidebar" 9 | }, 10 | "sidebar.tutorialSidebar.category.Contributing to AvdanOS Project.link.generated-index.title": { 11 | "message": "Contributing to AvdanOS Project", 12 | "description": "The generated-index page title for category Contributing to AvdanOS Project in sidebar tutorialSidebar" 13 | }, 14 | "sidebar.tutorialSidebar.category.Development": { 15 | "message": "Development", 16 | "description": "The label for category Development in sidebar tutorialSidebar" 17 | }, 18 | "sidebar.tutorialSidebar.category.Development.link.generated-index.title": { 19 | "message": "Contributing to AvdanOS Development", 20 | "description": "The generated-index page title for category Development in sidebar tutorialSidebar" 21 | }, 22 | "sidebar.tutorialSidebar.category.Code Guidelines": { 23 | "message": "Code Guidelines", 24 | "description": "The label for category Code Guidelines in sidebar tutorialSidebar" 25 | }, 26 | "sidebar.tutorialSidebar.category.Code Guidelines.link.generated-index.title": { 27 | "message": "Code Guidelines", 28 | "description": "The generated-index page title for category Code Guidelines in sidebar tutorialSidebar" 29 | }, 30 | "sidebar.tutorialSidebar.category.Documentation": { 31 | "message": "Documentation", 32 | "description": "The label for category Documentation in sidebar tutorialSidebar" 33 | }, 34 | "sidebar.tutorialSidebar.category.Documentation.link.generated-index.title": { 35 | "message": "Contributing to AvdanOS Documentation", 36 | "description": "The generated-index page title for category Documentation in sidebar tutorialSidebar" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-theme-classic/footer.json: -------------------------------------------------------------------------------- 1 | { 2 | "link.title.Docs": { 3 | "message": "Docs", 4 | "description": "The title of the footer links column with title=Docs in the footer" 5 | }, 6 | "link.title.Community": { 7 | "message": "Community", 8 | "description": "The title of the footer links column with title=Community in the footer" 9 | }, 10 | "link.title.More": { 11 | "message": "More", 12 | "description": "The title of the footer links column with title=More in the footer" 13 | }, 14 | "link.item.label.Overview": { 15 | "message": "Overview", 16 | "description": "The label of footer link with label=Overview linking to /docs/intro" 17 | }, 18 | "link.item.label.Contribute": { 19 | "message": "Contribute", 20 | "description": "The label of footer link with label=Contribute linking to /docs/category/contributing-to-avdanos-project" 21 | }, 22 | "link.item.label.FAQ": { 23 | "message": "FAQ", 24 | "description": "The label of footer link with label=FAQ linking to /docs/faq" 25 | }, 26 | "link.item.label.Navda": { 27 | "message": "Navda", 28 | "description": "The label of footer link with label=Navda linking to /navda/navda-intro" 29 | }, 30 | "link.item.label.Multitasking": { 31 | "message": "Multitasking", 32 | "description": "The label of footer link with label=Multitasking linking to /navda/category/multitasking-in-avdanos" 33 | }, 34 | "link.item.label.Personalization": { 35 | "message": "Personalization", 36 | "description": "The label of footer link with label=Personalization linking to /navda/category/personalization" 37 | }, 38 | "link.item.label.Discord": { 39 | "message": "Discord", 40 | "description": "The label of footer link with label=Discord linking to https://discord.gg/avdanos" 41 | }, 42 | "link.item.label.YouTube": { 43 | "message": "YouTube", 44 | "description": "The label of footer link with label=YouTube linking to https://www.youtube.com/channel/UCHLCBj83J7bR82HwjhCJusA" 45 | }, 46 | "link.item.label.Twitter": { 47 | "message": "Twitter", 48 | "description": "The label of footer link with label=Twitter linking to https://twitter.com/avdan_os" 49 | }, 50 | "link.item.label.Instagram": { 51 | "message": "Instagram", 52 | "description": "The label of footer link with label=Instagram linking to https://www.instagram.com/avdanos_/" 53 | }, 54 | "link.item.label.Reddit": { 55 | "message": "Reddit", 56 | "description": "The label of footer link with label=Reddit linking to https://www.reddit.com/r/AvdanOS/" 57 | }, 58 | "link.item.label.Blog": { 59 | "message": "Blog", 60 | "description": "The label of footer link with label=Blog linking to /blog" 61 | }, 62 | "link.item.label.Our Website": { 63 | "message": "Our Website", 64 | "description": "The label of footer link with label=Our Website linking to https://avdanos.com/" 65 | }, 66 | "link.item.label.GitHub": { 67 | "message": "GitHub", 68 | "description": "The label of footer link with label=GitHub linking to https://github.com/Avdan-OS/" 69 | }, 70 | "link.item.label.Download": { 71 | "message": "Download", 72 | "description": "The label of footer link with label=Download linking to https://avdanos.com/downloads" 73 | }, 74 | "copyright": { 75 | "message": "© Copyright Avdan OS Contributors 2023. Built with Docusaurus.", 76 | "description": "The footer copyright" 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /i18n/en/docusaurus-theme-classic/navbar.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": { 3 | "message": "AvdanOS Docs", 4 | "description": "The title in the navbar" 5 | }, 6 | "item.label.Project AvdanOS": { 7 | "message": "Project AvdanOS", 8 | "description": "Navbar item with label Project AvdanOS" 9 | }, 10 | "item.label.Navda": { 11 | "message": "Navda", 12 | "description": "Navbar item with label Navda" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "avdan-os-docs", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "docusaurus start", 8 | "build": "docusaurus build", 9 | "swizzle": "docusaurus swizzle", 10 | "deploy": "docusaurus deploy", 11 | "clear": "docusaurus clear", 12 | "serve": "docusaurus serve", 13 | "write-translations": "docusaurus write-translations", 14 | "write-heading-ids": "docusaurus write-heading-ids" 15 | }, 16 | "dependencies": { 17 | "@docusaurus/core": "2.0.0-beta.21", 18 | "@docusaurus/preset-classic": "2.0.0-beta.21", 19 | "@mdx-js/react": "^1.6.22", 20 | "clsx": "^1.1.1", 21 | "prism-react-renderer": "^1.3.3", 22 | "react": "^17.0.2", 23 | "react-dom": "^17.0.2" 24 | }, 25 | "devDependencies": { 26 | "@docusaurus/module-type-aliases": "2.0.0-beta.21" 27 | }, 28 | "browserslist": { 29 | "production": [ 30 | ">0.5%", 31 | "not dead", 32 | "not op_mini all" 33 | ], 34 | "development": [ 35 | "last 1 chrome version", 36 | "last 1 firefox version", 37 | "last 1 safari version" 38 | ] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /sidebar/apps.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Creating a sidebar enables you to: 4 | - create an ordered group of docs 5 | - render a sidebar for each doc of that group 6 | - provide next/previous navigation 7 | The sidebars can be generated from the filesystem, or explicitly defined here. 8 | Create as many sidebars as you want. 9 | */ 10 | 11 | // @ts-check 12 | 13 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 14 | const sidebars = { 15 | // By default, Docusaurus generates a sidebar from the docs folder structure 16 | tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], 17 | 18 | // But you can create a sidebar manually 19 | /* 20 | tutorialSidebar: [ 21 | { 22 | type: 'category', 23 | label: 'Tutorial', 24 | items: ['hello'], 25 | }, 26 | ], 27 | */ 28 | }; 29 | 30 | module.exports = sidebars; -------------------------------------------------------------------------------- /sidebar/avdanos.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creating a sidebar enables you to: 3 | - create an ordered group of docs 4 | - render a sidebar for each doc of that group 5 | - provide next/previous navigation 6 | 7 | The sidebars can be generated from the filesystem, or explicitly defined here. 8 | 9 | Create as many sidebars as you want. 10 | */ 11 | 12 | // @ts-check 13 | 14 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 15 | const sidebars = { 16 | // By default, Docusaurus generates a sidebar from the docs folder structure 17 | tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], 18 | 19 | // But you can create a sidebar manually 20 | /* 21 | tutorialSidebar: [ 22 | { 23 | type: 'category', 24 | label: 'Tutorial', 25 | items: ['hello'], 26 | }, 27 | ], 28 | */ 29 | }; 30 | 31 | module.exports = sidebars; 32 | -------------------------------------------------------------------------------- /sidebar/demo.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Creating a sidebar enables you to: 3 | - create an ordered group of docs 4 | - render a sidebar for each doc of that group 5 | - provide next/previous navigation 6 | 7 | The sidebars can be generated from the filesystem, or explicitly defined here. 8 | 9 | Create as many sidebars as you want. 10 | */ 11 | 12 | // @ts-check 13 | 14 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 15 | const sidebars = { 16 | // By default, Docusaurus generates a sidebar from the docs folder structure 17 | tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], 18 | 19 | // But you can create a sidebar manually 20 | /* 21 | tutorialSidebar: [ 22 | { 23 | type: 'category', 24 | label: 'Tutorial', 25 | items: ['hello'], 26 | }, 27 | ], 28 | */ 29 | }; 30 | 31 | module.exports = sidebars; -------------------------------------------------------------------------------- /sidebar/navda.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Creating a sidebar enables you to: 3 | - create an ordered group of docs 4 | - render a sidebar for each doc of that group 5 | - provide next/previous navigation 6 | 7 | The sidebars can be generated from the filesystem, or explicitly defined here. 8 | 9 | Create as many sidebars as you want. 10 | */ 11 | 12 | // @ts-check 13 | 14 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 15 | const sidebars = { 16 | // By default, Docusaurus generates a sidebar from the docs folder structure 17 | tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], 18 | 19 | // But you can create a sidebar manually 20 | /* 21 | tutorialSidebar: [ 22 | { 23 | type: 'category', 24 | label: 'Tutorial', 25 | items: ['hello'], 26 | }, 27 | ], 28 | */ 29 | }; 30 | 31 | module.exports = sidebars; 32 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import clsx from 'clsx' 3 | import styles from './styles.module.css' 4 | import Translate, { translate } from '@docusaurus/Translate' 5 | import navda_img from '../../../static/img/card-navda.png' 6 | import website_img from '../../../static/img/card-website.png' 7 | const ReposList = [ 8 | { 9 | title: 'Official Website', 10 | description: 11 | 'All the new Updates and Information about AvdanOS and Support.', 12 | imageUrl: website_img, 13 | githubUrl: 'https://github.com/Avdan-OS/Website', 14 | docUrl: '/website/website-overview', 15 | }, 16 | { 17 | title: 'Wayland Compositor', 18 | description: 'Meet Navda, the official Wayland Compositor for AvdanOS.', 19 | imageUrl: navda_img, 20 | githubUrl: 'https://github.com/Avdan-OS/Compositor', 21 | docUrl: '/navda/navda-intro', 22 | }, 23 | ] 24 | 25 | const RepoCard = ({ title, description, imageUrl, githubUrl, docUrl }) => { 26 | return ( 27 |
28 | {title} 29 |
30 |

{title}

31 |
{description}
32 | 33 | 34 | Link To GitHub 35 | 36 | See Docs 37 |
38 |
39 | ) 40 | } 41 | 42 | export default function HomepageFeatures() { 43 | return ( 44 |
45 |
46 |
47 | {ReposList.map((props, idx) => ( 48 | 49 | ))} 50 |
51 |
52 |
53 | ) 54 | } 55 | -------------------------------------------------------------------------------- /src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 2rem 0; 5 | width: 100%; 6 | justify-content: space-between; 7 | } 8 | 9 | .card{ 10 | width: 20rem; 11 | margin: 1rem; 12 | padding: 1rem; 13 | border-radius: 0.5rem; 14 | box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.5); 15 | } 16 | .repo_list{ 17 | display: flex; 18 | align-content: space-between; 19 | justify-content: space-evenly; 20 | width: 100%; 21 | padding: 2rem 0; 22 | flex-wrap: wrap; 23 | } 24 | .repo_desc{ 25 | margin: 10px; 26 | } 27 | .cardImg{ 28 | width: 400px; 29 | height: 200px; 30 | border-radius: 0.5rem; 31 | } 32 | 33 | /* Make the repo list colum when in 728px */ 34 | @media screen and (max-width: 728px) { 35 | .repo_list{ 36 | flex-direction: column; 37 | align-content: center; 38 | } 39 | } -------------------------------------------------------------------------------- /src/components/media/autoplay.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function AutoPlay({src}) { 4 | React.useEffect(() => { 5 | const video = document.querySelectorAll('video'); 6 | video.forEach(vid => { 7 | vid.play(); 8 | }); 9 | }, []); 10 | 11 | return ( 12 | <> 13 | 17 | 18 | ) 19 | } -------------------------------------------------------------------------------- /src/components/media/youtube-embed.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export default function AutoPlay({src}) { 4 | React.useEffect(() => { 5 | const video = document.querySelectorAll('video'); 6 | video.forEach(vid => { 7 | vid.play(); 8 | }); 9 | }, []); 10 | 11 | return ( 12 |
13 | 22 |
23 | ) 24 | } -------------------------------------------------------------------------------- /src/components/notices/incomplete.js: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import React from "react"; 3 | import Admonition from "@theme/Admonition"; 4 | 5 | export default ({url}) => ( 6 | 11 | This section of the documentation is not formalized and may change.
12 | Help us by contributing to it on our GitHub. 13 |
14 | ); -------------------------------------------------------------------------------- /src/components/notices/index.js: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import React from "react"; 3 | import IncompleteNotice from "./incomplete"; 4 | const NOTICE_TYPES = { 5 | // Adding support for multiple aliases 6 | // @ts-ignore 7 | [["progress", "incomplete", "wip", "construction"]]: IncompleteNotice, 8 | _ : () => { throw new Error("AvdanOS Docs Notice: Unknown type!"); } 9 | }; 10 | 11 | export default function notice({type, ...rest}) { 12 | console.group("NOTICE DEBUG:") 13 | 14 | let [key] = Object.keys(NOTICE_TYPES) 15 | .map(k => k.split(",")) 16 | .filter(aliases => { 17 | console.log({aliases, type}) 18 | return aliases.indexOf(type) > -1 19 | }); 20 | 21 | 22 | return NOTICE_TYPES[key?.join(",") ?? "_"]({...rest}); 23 | } -------------------------------------------------------------------------------- /src/css/custom.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Inter&display=swap'); 2 | /** 3 | * Any CSS included here will be global. The classic template 4 | * bundles Infima by default. Infima is a CSS framework designed to 5 | * work well for content-centric websites. 6 | 7 | 8 | Color Reference: https://coolors.co/8000ff-6600cc-5200a3-3d007a-a347ff 9 | */ 10 | 11 | /* You can override the default Infima variables here. */ 12 | :root { 13 | --ifm-color-primary: #A347FF; 14 | --ifm-color-primary-dark: #AC59FF; 15 | --ifm-color-primary-darker: #8B54FF; 16 | --ifm-color-primary-darkest: #9932FF; 17 | --ifm-color-primary-light: #8F1FFF; 18 | --ifm-color-primary-lighter: #9933FF; 19 | --ifm-color-primary-lightest: #A347FF; 20 | --ifm-code-font-size: 95%; 21 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); 22 | 23 | --ifm-font-family-base: 'Inter', sans-serif; 24 | 25 | } 26 | 27 | /* For readability concerns, you should choose a lighter palette in dark mode. */ 28 | [data-theme='dark'] { 29 | /* --ifm-color-primary: #8000FF; 30 | --ifm-color-primary-dark: #6600CC; 31 | --ifm-color-primary-darker: #5200A3; 32 | --ifm-color-primary-darkest: #3D007A; 33 | --ifm-color-primary-light: #8F1FFF; 34 | --ifm-color-primary-lighter: #9933FF; 35 | --ifm-color-primary-lightest: #A347FF; */ 36 | 37 | --ifm-color-primary: #ca95ff; 38 | --ifm-color-primary-dark: #5200A3; 39 | --ifm-color-primary-darker: #5200A3; 40 | --ifm-color-primary-darkest: #3D007A; 41 | --ifm-color-primary-light: #8F1FFF; 42 | --ifm-color-primary-lighter: #9933FF; 43 | --ifm-color-primary-lightest: #A347FF; 44 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); 45 | } 46 | 47 | .hero__title, 48 | .hero__subtitle 49 | { 50 | color: #ffffff; 51 | } 52 | 53 | .footer__link-item{ 54 | text-decoration: none; 55 | background-size: 0% 3px; 56 | background-repeat: no-repeat; 57 | background-image: linear-gradient(90deg, #57a2ff, #7f05ff); 58 | background-position: left bottom; 59 | transition: background-size 400ms ease; 60 | } 61 | 62 | .footer__link-item:hover{ 63 | background-size: 100% 3px; 64 | color: white; 65 | text-decoration: none; 66 | } 67 | 68 | .navbar__link{ 69 | text-decoration: none; 70 | background-size: 0% 3px; 71 | background-repeat: no-repeat; 72 | background-image: linear-gradient(90deg, #57a2ff, #7f05ff); 73 | color: white !important; 74 | background-position: left bottom; 75 | transition: background-size 400ms ease; 76 | } 77 | 78 | .navbar__link:hover{ 79 | background-size: 100% 3px; 80 | color: white !important; 81 | color: initial; 82 | text-decoration: none; 83 | } 84 | 85 | [data-theme='light'] .navbar__link{ 86 | color: black !important; 87 | } 88 | 89 | [data-theme='light'] .navbar__link:hover{ 90 | color: black !important; 91 | } 92 | 93 | .header-github-link:hover { 94 | opacity: 0.6; 95 | background-size: 0% 3px !important; 96 | } 97 | 98 | .header-github-link::before { 99 | content: ''; 100 | width: 24px; 101 | height: 24px; 102 | display: flex; 103 | background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") 104 | no-repeat; 105 | } 106 | 107 | [data-theme='dark'] .header-github-link::before { 108 | background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") 109 | no-repeat; 110 | } -------------------------------------------------------------------------------- /src/pages/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import clsx from 'clsx'; 3 | import Link from '@docusaurus/Link'; 4 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 5 | import Layout from '@theme/Layout'; 6 | import HomepageFeatures from '@site/src/components/HomepageFeatures'; 7 | import Translate, {translate} from '@docusaurus/Translate'; 8 | import styles from './index.module.css'; 9 | 10 | function HomepageHeader() { 11 | const {siteConfig} = useDocusaurusContext(); 12 | return ( 13 |
14 |
15 |

{siteConfig.title}

16 |

{siteConfig.tagline}

17 |
18 | 21 | Get Started! 22 | 23 |
24 |
25 |
26 | ); 27 | } 28 | 29 | export default function Home() { 30 | const {siteConfig} = useDocusaurusContext(); 31 | return ( 32 | 35 | 36 |
37 | 38 |
39 |
40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS files with the .module.css suffix will be treated as CSS modules 3 | * and scoped locally. 4 | */ 5 | 6 | .heroBanner { 7 | padding: 4rem 0; 8 | text-align: center; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | 13 | 14 | .buttons { 15 | display: flex; 16 | align-items: center; 17 | justify-content: center; 18 | } 19 | -------------------------------------------------------------------------------- /src/pages/markdown-page.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Markdown page example 3 | --- 4 | 5 | # Markdown page example 6 | 7 | You don't need React to write simple standalone pages. 8 | -------------------------------------------------------------------------------- /src/theme/MDXComponents.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | // Import the original mapper 3 | import MDXComponents from '@theme-original/MDXComponents'; 4 | import Notice from '@site/src/components/notices/index.js'; 5 | export default { 6 | // Re-use the default mapping 7 | ...MDXComponents, 8 | Notice, 9 | }; -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/.nojekyll -------------------------------------------------------------------------------- /static/img/card-navda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/card-navda.png -------------------------------------------------------------------------------- /static/img/card-tinan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/card-tinan.png -------------------------------------------------------------------------------- /static/img/card-website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/card-website.png -------------------------------------------------------------------------------- /static/img/classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/classification.png -------------------------------------------------------------------------------- /static/img/context_menu_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/context_menu_1.png -------------------------------------------------------------------------------- /static/img/context_menu_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/context_menu_2.png -------------------------------------------------------------------------------- /static/img/context_menu_pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/context_menu_pie.png -------------------------------------------------------------------------------- /static/img/cursor-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/cursor-1.png -------------------------------------------------------------------------------- /static/img/cursor-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/cursor-2.png -------------------------------------------------------------------------------- /static/img/demo-window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/demo-window.png -------------------------------------------------------------------------------- /static/img/desktop-widgets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/desktop-widgets.png -------------------------------------------------------------------------------- /static/img/desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/desktop.png -------------------------------------------------------------------------------- /static/img/dock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/dock.png -------------------------------------------------------------------------------- /static/img/docks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/docks.png -------------------------------------------------------------------------------- /static/img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/docusaurus.png -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/file_color_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/file_color_tag.png -------------------------------------------------------------------------------- /static/img/file_explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/file_explorer.png -------------------------------------------------------------------------------- /static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/logo.png -------------------------------------------------------------------------------- /static/img/placeholder-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/placeholder-template.png -------------------------------------------------------------------------------- /static/img/sorting_files.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/sorting_files.png -------------------------------------------------------------------------------- /static/img/summoned-widgets-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/summoned-widgets-1.png -------------------------------------------------------------------------------- /static/img/summoned-widgets-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/summoned-widgets-2.png -------------------------------------------------------------------------------- /static/img/taskbar-widgets-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/taskbar-widgets-1.png -------------------------------------------------------------------------------- /static/img/taskbar-widgets-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/taskbar-widgets-2.png -------------------------------------------------------------------------------- /static/img/taskbar-widgets-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/taskbar-widgets-3.png -------------------------------------------------------------------------------- /static/img/taskbar-widgets-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/taskbar-widgets-4.png -------------------------------------------------------------------------------- /static/img/themes-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/themes-1.png -------------------------------------------------------------------------------- /static/img/themes-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/themes-2.png -------------------------------------------------------------------------------- /static/img/undraw_docusaurus_mountain.svg: -------------------------------------------------------------------------------- 1 | 2 | Easy to Use 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /static/img/undraw_docusaurus_tree.svg: -------------------------------------------------------------------------------- 1 | 2 | Focus on What Matters 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /static/img/views.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/views.png -------------------------------------------------------------------------------- /static/img/win-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/img/win-template.png -------------------------------------------------------------------------------- /static/vid/animation-1.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/animation-1.webm -------------------------------------------------------------------------------- /static/vid/appearance-schedule.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/appearance-schedule.webm -------------------------------------------------------------------------------- /static/vid/desktops.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/desktops.webm -------------------------------------------------------------------------------- /static/vid/macbook-air.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/macbook-air.webm -------------------------------------------------------------------------------- /static/vid/side-by-side.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/side-by-side.webm -------------------------------------------------------------------------------- /static/vid/synthetic-tabs.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/synthetic-tabs.webm -------------------------------------------------------------------------------- /static/vid/tabs.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/tabs.webm -------------------------------------------------------------------------------- /static/vid/themes.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Avdan-OS/Docsite/023d592867da327763d6c7300dbe08bff1245e1b/static/vid/themes.webm -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noEmit": true, 4 | "skipLibCheck": true, 5 | "allowJs": true, 6 | "checkJs": true, 7 | "baseUrl": ".", 8 | "paths": { 9 | "@site/*": ["./*"], 10 | }, 11 | "lib": ["ES2015", "DOM"], 12 | "module": "ES6", 13 | "moduleResolution": "node", 14 | "jsx": "react-jsx", 15 | "noUnusedLocals": true, 16 | "esModuleInterop": true, 17 | "typeRoots": [ 18 | "types" 19 | ] 20 | }, 21 | "exclude": [ 22 | "node_modules" 23 | ], 24 | "include": [ 25 | "src/**/*", 26 | "types/**/*.d.ts" 27 | ] 28 | } -------------------------------------------------------------------------------- /types/index.d.ts: -------------------------------------------------------------------------------- 1 | interface AdmonitionProps { 2 | type : "note" | "tip" | "danger" | "info" | "caution", 3 | icon ?: string, 4 | title : string, 5 | children: unknown[] 6 | } 7 | 8 | declare module "@theme/Admonition" { 9 | const A : React.FunctionComponent; 10 | export default A; 11 | } 12 | 13 | declare module "@theme-original/MDXComponents" { 14 | const A : unknown[]; 15 | export default A; 16 | } 17 | 18 | declare module "@docusaurus/router" { 19 | const useLocation : () => Location; 20 | export {useLocation}; 21 | } --------------------------------------------------------------------------------