{"id":13804547,"url":"https://github.com/ttytm/emoji-mart-desktop","last_synced_at":"2025-05-06T21:03:38.533Z","repository":{"id":186573836,"uuid":"675372485","full_name":"ttytm/emoji-mart-desktop","owner":"ttytm","description":"An emoji picker created with V, webview and SvelteKit.","archived":false,"fork":false,"pushed_at":"2024-05-26T00:41:27.000Z","size":134,"stargazers_count":21,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-04T23:48:32.586Z","etag":null,"topics":["desktop-app","emoji-picker","gtk","gui","linux","macos","svelte","sveltekit","v","webview","webview2","windows"],"latest_commit_sha":null,"homepage":"","language":"V","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ttytm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-06T17:40:14.000Z","updated_at":"2024-12-13T23:38:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"20a2adaf-e737-4cdf-9a0d-0dae3abe8d62","html_url":"https://github.com/ttytm/emoji-mart-desktop","commit_stats":null,"previous_names":["ttytm/emoji-mart-desktop"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Femoji-mart-desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Femoji-mart-desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Femoji-mart-desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttytm%2Femoji-mart-desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttytm","download_url":"https://codeload.github.com/ttytm/emoji-mart-desktop/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252769396,"owners_count":21801375,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-app","emoji-picker","gtk","gui","linux","macos","svelte","sveltekit","v","webview","webview2","windows"],"created_at":"2024-08-04T01:00:49.896Z","updated_at":"2025-05-06T21:03:38.474Z","avatar_url":"https://github.com/ttytm.png","language":"V","funding_links":[],"categories":["Applications"],"sub_categories":["Utilities"],"readme":"# Emoji Mart Desktop App\n\nAn emoji picker desktop application - it serves as an example of using [webview](https://github.com/ttytm/webview) with a modern web framework.\nNonetheless, it is a real and capable application, and nothing should stop you from simply using it.\n\n## Contents\n\n- [Application / Usage](#application--usage)\n  - [Installation](#installation)\n  - [Config](#config)\n- [Webview Example / Building and Development](#webview-example--building-and-development)\n  - [Preparation](#preparation)\n  - [Building](#building)\n  - [Building and Running in a Development Context](#building-and-running-in-a-development-context)\n- [Credits](#credits)\n\n## Application / Usage\n\n\u003ctable align=\"center\"\u003e\n\u003ctr\u003e\n  \u003cth\u003eLinux\u003c/th\u003e\n  \u003cth\u003eWindows\u003c/th\u003e\n  \u003cth\u003emacOS\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr align=\"center\"\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"400\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/bce465bb-9d72-4c96-af94-e3a758657bc3\"\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"340\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/2a7b86d5-9f85-4a8f-afc6-2bbb7f4a6ffe\"\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"450\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/7c75c993-5445-4d1e-9090-a6d8de02c90e\"\u003e\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr align=\"center\"\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"400\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/b01099d8-6883-4c4b-9346-975bf675b0a4\"\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"340\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/dbc3eba3-cd42-4d3a-831a-5ce431a519e4\"\u003e\n  \u003c/td\u003e\n  \u003ctd\u003e\n    \u003cimg width=\"450\" src=\"https://github.com/ttytm/emoji-mart-desktop/assets/34311583/c92964e0-0200-4838-920f-bb9c905ea355\"\u003e\n  \u003c/td\u003e\n\u003c/table\u003e\n\n### Installation\n\n- The projects [GitHub releases page](https://github.com/ttytm/emoji-mart-desktop/releases) provides prebuilt binaries for GNU/Linux, Windows and macOS.\n\n### Config\n\nConfig values that are set via the in-app menu are saved for the next run.\n\n```toml\n# Lin: ~/.config/emoji-mart/\n# Mac: ~/Library/Application Support/emoji-mart/\n# Win: %USERPROFILE%/AppData/Roaming/emoji-mart/\n\n# Default values\naudio = true # enable audio hint on emoji-selection\nfrequent = true # display frequently used emojis\n```\n\n## Webview Example / Building and Development\n\n### Preparation\n\n- V - [Installing V from source](https://github.com/vlang/v#installing-v-from-source)\n\n- npm - [npm/cli](https://github.com/npm/cli)\n\n- emoji-mart-desktop\n\n```sh\n# Clone the repisitory\ngit clone https://github.com/ttytm/emoji-mart-desktop.git\ncd emoji-mart-desktop\n# Install dependencies\nv install --once\n\n# If you haven't used it before, prepare the webview library.\n# Linux/macOS\n~/.vmodules/webview/build.vsh\n# Windows PowerShell\nv $HOME/.vmodules/webview/build.vsh\n```\n\n### Building\n\nIf you just want to build the application for usage you can now run `./build.vsh`.\n\n- The `dist/` directory will contain the build output.\n\n### Building and Running in a Development Context\n\nSince we use web technologies for the UI, a good part of the frontend-work can likely be done via the browser, just like working on a regular web application.\nHowever, there comes a point where we want to connect our V program and the UI.\n\n#### Example 1 - run a vite dev server and connect to it\n\nWhen connecting to a vite dev server features like hot reloading are preserved.\nJust like in the browser most changes on the UI will be immediately reflected in the application window.\n\n- Run the app with the `dev` flag - this runs a vite dev server and connects to its localhost instance\n\n  ```sh\n  # Install the node modules beforehand if it's the first run.\n  npm i --prefix ui/\n  ```\n\n  ```sh\n  v -d dev run .\n  ```\n\n  ```sh\n  # On Windows, it is recommended to use `gcc` for compilation.\n  v -cc gcc -d dev run .\n  ```\n\n#### Example 2 - serve the prebuilt site\n\nThis is the regular build approach and how our final app is working.\n\n- Build the UI - this uses SvelteKit as a static site generator\n\n  ```sh\n  # Install the node modules beforehand if it's the first run.\n  npm i --prefix ui/\n  ```\n\n  ```sh\n  npm run build --prefix ui/\n  ```\n\n- Run the app - this uses vweb to serve the previously build files locally and connect to it via webview\n\n  ```sh\n  v run .\n  ```\n\n  ```sh\n  # Windows\n  v -cc gcc run .\n  ```\n\n\u003cbr\u003e\n\nI hope this quick start guide and the examples in the repositories source code help on the way to release your own UI project.\n\n## Related Projects\n\n- [webview](https://github.com/ttytm/webview) - V module that allows to create a system level application, while using modern web technologies for the UI.\n- [LVbag](https://github.com/ttytm/LVbag) - CLI tool to generate embedded file lists.\n\n## Credits\n\n- The app uses on the great work of [missive/emoji-mart](https://github.com/missive/emoji-mart)\n- The icon used for the AppImage comes from [microsoft/fluentui-emoji](https://github.com/microsoft/fluentui-emoji)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttytm%2Femoji-mart-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttytm%2Femoji-mart-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttytm%2Femoji-mart-desktop/lists"}