{"id":21406001,"url":"https://github.com/jes/pugsender","last_synced_at":"2025-09-06T06:43:03.357Z","repository":{"id":218124544,"uuid":"745563188","full_name":"jes/pugsender","owner":"jes","description":"G-code sender that gets out of the way","archived":false,"fork":false,"pushed_at":"2024-03-05T11:30:22.000Z","size":334,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T02:45:43.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/jes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-19T15:56:51.000Z","updated_at":"2024-03-27T22:32:08.000Z","dependencies_parsed_at":"2024-02-17T11:26:51.933Z","dependency_job_id":"5a2303c2-a68e-4142-92f2-efdef953a5c9","html_url":"https://github.com/jes/pugsender","commit_stats":null,"previous_names":["jes/pugs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jes/pugsender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jes%2Fpugsender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jes%2Fpugsender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jes%2Fpugsender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jes%2Fpugsender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jes","download_url":"https://codeload.github.com/jes/pugsender/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jes%2Fpugsender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273868158,"owners_count":25182423,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-22T16:30:02.616Z","updated_at":"2025-09-06T06:43:03.337Z","avatar_url":"https://github.com/jes.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pugsender\n\n**G-code sender that gets out of the way. Work-in-progress.**\n\nThe GUI will be mostly keyboard-driven and aims to be frustration-free.\n\nI would rather leave the MDI activated and trust the user not to abuse it, than\nmake the user wait before they're allowed to type in the MDI like UGS does. In particular I want to allow MDI usage while a job is running (!) even though it will go at a \"random\" point in the stream, if for no other reason than to allow sending `M3 S5000` if I forgot to put that in the program. [done]\n\nI want keyboard jogging to work as well as it would in a video game, and I want\nto change jog increment and feed rate without breaking the flow.\n\nI want to set the work offset with no clicking and a minimum of keystrokes. [done]\n\nI want it to find a Grbl and connect automatically, instead of making me guess\nthe name of the serial device like UGS does. [done]\n\nI want it to remember the coordinate system across a disconnect or restart. [done]\n\nI want it to indicate the probe pin state in the GUI [done]\n\nI want a frustration-free file selector, keyboard-first \u0026 with tab-completion.\n\nI want previews of G-code files in the file selector.\n\nI want accurate cycle time estimates (i.e. preprocess the G-code and take the distances and feed rates into\naccount, not just the number of lines).\n\nI don't ever want g-code processing or toolpath rendering to block the GUI (if it is taking a long\ntime to render something then *that thing* can get laggy, but the rest of the GUI should run at full\nspeed). [done]\n\nInstalling dependencies (Fedora 39):\n\n  $ sudo dnf install golang libX11-devel libXcursor-devel libXfixes-devel libwayland-client-devel libxkbcommon-devel libxkbcommon-x11-devel mesa-libEGL-devel vulkan-headers wayland-devel\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjes%2Fpugsender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjes%2Fpugsender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjes%2Fpugsender/lists"}