{"id":13680697,"url":"https://github.com/agzam/exwm-edit","last_synced_at":"2025-04-15T06:53:25.856Z","repository":{"id":32528366,"uuid":"133619358","full_name":"agzam/exwm-edit","owner":"agzam","description":"Edit mode for EXWM","archived":false,"fork":false,"pushed_at":"2024-04-18T21:50:15.000Z","size":603,"stargazers_count":124,"open_issues_count":4,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T06:53:20.758Z","etag":null,"topics":["emacs","exwm","linux","melpa","window-manager"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agzam.png","metadata":{"files":{"readme":"readme.org","changelog":"changelog.org","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":"2018-05-16T06:17:29.000Z","updated_at":"2025-01-22T15:59:38.000Z","dependencies_parsed_at":"2024-04-18T08:30:42.833Z","dependency_job_id":"ff7e615a-36e4-44d7-ae33-53d6946d1076","html_url":"https://github.com/agzam/exwm-edit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agzam%2Fexwm-edit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agzam%2Fexwm-edit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agzam%2Fexwm-edit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agzam%2Fexwm-edit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agzam","download_url":"https://codeload.github.com/agzam/exwm-edit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023711,"owners_count":21199958,"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":["emacs","exwm","linux","melpa","window-manager"],"created_at":"2024-08-02T13:01:20.661Z","updated_at":"2025-04-15T06:53:25.841Z","avatar_url":"https://github.com/agzam.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"* Description\n  Edit mode for [[https://github.com/ch11ng/exwm][EXWM]]\n\n  Similar to [[https://github.com/alpha22jp/atomic-chrome][atomic-chrome]]\n\n  except this package is made to work with EXWM\n  and it works with any editable element of any app\n\n  The idea is very simple - when you invoke the edit,\n  it simulates =C-a= + =C-c= (select all \u0026 copy), or simply =C-c= if you already have something pre-selected.\n  Then it opens a buffer and yanks (pastes) the content so you can edit it,\n  after you done - it grabs (now edited text) and pastes back to where it's started\n\n[[file:howitworks.gif]]\n\n  Now that opens interesting possibilities, for example:\n  - when typing in ChromeDevTools console, you can initiate exwm-edit, then change major mode to whatever your favorite javascript mode is, have all the JS syntax highlighting, flycheck, etc;\n  - you can edit GitHub issues and wiki pages using markdown-mode and use your syntax checker and thesaurus;\n  - quickly modify url in browser address bar using multiple-cursors and regexp-replace things;\n  - edit and modify code snippets with ease in Slack;\n  - etc. and etc.\n\n* Customization\n\nIn your ~init.el~ file, put the following ~use-package~ declaration before\nthe call to ~exwm-enable~, since adjustments to ~exwm-input-global-keys~\nonly take effect before EXWM is enabled.\n\n#+begin_src emacs-lisp\n  (use-package exwm-edit\n    :config\n    ;; Edit text in an *exwm-edit* buffer\n    (add-to-list 'exwm-input-global-keys '([?\\C-c ?\\'] . exwm-edit--compose))\n    (add-to-list 'exwm-input-global-keys '([?\\C-c ?\\'] . exwm-edit--compose))\n\n    ;; You can use hooks to, e.g., set desired mode:\n    (defun ag-exwm/on-exwm-edit-compose ()\n      (spacemacs/toggle-visual-line-navigation-on)\n      (funcall 'markdown-mode))\n\n    (add-hook 'exwm-edit-compose-hook 'ag-exwm/on-exwm-edit-compose))\n#+end_src\n\n* Keybindings\n\nIn the ~*exwm-edit*~ buffer, you can use ~C-c '~, ~C-c C-'~, ~C-c C-c~, or\nwhatever key you have bound to ~save-buffer~ to insert the buffer\ncontents into the X program.  To discard the contents of the\n~*exwm-edit*~ buffer and go back to the X program, press ~C-c C-k~.\n\n* Changelog\n\n** v0.0.4-pre\n\nNothing new yet...\n\n** v0.0.3\n\n- Autoload ~exwm-edit--compose~ and ~exwm-edit--compose-minibuffer~\n- Just loading ~exwm-edit~ no longer binds any keys\n- Window display now uses standard ~display-buffer~ actions.\n  Customize ~exwm-edit-display-buffer-action~ instead of\n  ~exwm-edit-split~.\n- Require Emacs 27.1 or later\n- Bug fixes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagzam%2Fexwm-edit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagzam%2Fexwm-edit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagzam%2Fexwm-edit/lists"}