{"id":18058188,"url":"https://github.com/spigs/myte","last_synced_at":"2026-04-28T18:35:39.669Z","repository":{"id":258728036,"uuid":"865726949","full_name":"SPIGS/MyTE","owner":"SPIGS","description":"A simple graphical text editor","archived":false,"fork":false,"pushed_at":"2024-10-24T00:42:14.000Z","size":1843,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-24T14:55:30.308Z","etag":null,"topics":["freetype2","opengl","syntax-highlighting","text-editor","themes"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SPIGS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-01T02:57:16.000Z","updated_at":"2024-10-24T00:42:17.000Z","dependencies_parsed_at":"2024-10-24T03:31:45.231Z","dependency_job_id":"87747bb4-252c-4f72-9abf-e2aa123af326","html_url":"https://github.com/SPIGS/MyTE","commit_stats":null,"previous_names":["spigs/myte"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPIGS%2FMyTE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPIGS%2FMyTE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPIGS%2FMyTE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SPIGS%2FMyTE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SPIGS","download_url":"https://codeload.github.com/SPIGS/MyTE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325699,"owners_count":20920714,"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":["freetype2","opengl","syntax-highlighting","text-editor","themes"],"created_at":"2024-10-31T03:05:28.834Z","updated_at":"2026-04-28T18:35:39.637Z","avatar_url":"https://github.com/SPIGS.png","language":"C","readme":"# MyTE - My Text Editor\n\n![Preview of Myte](/../screenshots/screenshots/preview.png?raw=true \"Preview of Myte\")\n\nMyTE (rhymes with byte) is **My** **T**ext **E**ditor. It is a small graphical text editor written in C. It was originally created as a learning exercise and was inspired by [ded](https://github.com/tsoding/ded).\n\n## Features\n\nMyTE is currently a work in progress and missing some crucial features (clipboard manipulation, multiple buffers/panes/tabs). Despite this, MyTE still has some advanced features that some more basic text editors lack:\n\n- Syntax highlighting support for various languages (and a straight-forward means of adding more)\n- Rudimentary user theming/color schemes (also pretty straight-forward to create)\n- User configuration/theme hot reloading\n- Smooth animations\n- Mouse controls\n- Text selection\n\n## Controls\n\nMyTE currently has two modes - an editor mode and a file browsing mode. The editor mode is default and works mostly how one would expect. File browsing mode presents a simple file browser in the vein of vim or emacs. \n\n- **Editor Mode**\n    - typing inserts characters into the buffer\n    - arrow keys move the cursor around the buffer\n    - `CTRL + left/right` move the cursor back/forward one whole word.\n    - `CTRL + BACKSPACE/DELETE` backspaces/deletes a whole word.\n    - `CTRL + O` opens file browsing mode\n    - `CTRL + S` saves the current file to disk\n    - `CTRL + SHIFT + S` opens a save dialog to save a new file.\n    - `MOUSE LEFT` moves to the cursor to the position you clicked in the buffer\n    - `MOUSE SCROLL` scrolls the buffer\n    - `SHIFT + arrows/mouse` selects text\n- **File Browsing Mode**\n    - `up/down` moves the selection up and down the directory listing.\n    - `ENTER` opens the selected directory/file\n    - `ESCAPE` closes the file browser and goes back to editor mode.\n - **Special global shortcuts**\n    - `F5` completely hot reloads the application (user configs, themes, and the current file)\n  \n## Configuration\n\nAll configuration - including user settings, highlighting rules, and colorschemes - are done via TOML files. These are loaded into the program at startup and can be changed and hot-reloaded while the program is running. The formats for them are pretty self-explanatory and it should be easy to edit them.\n\n## Installation\n\nMyTE currently only builds on Linux and has 3 dependencies.\n\nTo build MyTE just clone this repo, install the dependencies via your package manager (`glew glfw3 freetype2`), and run `make all`. The program should be built in the newly created `build` folder.\n\n## References\n\n- [easy-renderer](https://github.com/PixelRifts/easy-renderer): a basic OpenGL renderer by PixelRifts. Used as the basis for the renderer for this project.\n- [tomlc99](https://github.com/cktan/tomlc99): a TOML file loading library written in C by cktan. Used for loading syntax highlighting configs.\n    - [TOML v1.0.0 standard](https://toml.io/en/v1.0.0): the TOML standard for the tomlc99 library.\n- [ded](https://github.com/tsoding/ded): a text editor by tsoding. An inspiration for this project; [YouTube Playlist](https://www.youtube.com/playlist?list=PLpM-Dvs8t0VZVshbPeHPculzFFBdQWIFu)\n- [Pico](https://github.com/jon-lipstate/pico): editor by John Lipstate. Helpful during the starting phases of this project; [YouTube Playlist](https://www.youtube.com/playlist?list=PLqN23W-K4Tn2LdgSCJOCFFiPO26mvsXm3); [Video on Ropes vs Gap Buffers](https://www.youtube.com/watch?v=xhFzu3Wm0Qs)\n- [Programming a text editor from scratch](https://www.youtube.com/watch?v=oDv6DfQxhtQ): by Bitwise; [Part 2](https://www.youtube.com/watch?v=nLyBzD4_Z_4); [Part 3](https://www.youtube.com/watch?v=cgd_qGekPdI): helpful during the starting phases of this project.\n- [Space Duck Color Theme](https://github.com/pineapplegiant/spaceduck): the colorscheme for this editor.\n- [Gruvbox](https://github.com/morhetz/gruvbox): another colorscheme used in this editor.\n- [Iosevka](https://github.com/be5invis/Iosevka): the default font for this editor.\n- [GNU Free Mono](https://www.gnu.org/software/freefont/): another font used in this editor.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspigs%2Fmyte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspigs%2Fmyte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspigs%2Fmyte/lists"}