{"id":20690314,"url":"https://github.com/ftl/hellocontest","last_synced_at":"2026-01-04T10:14:51.168Z","repository":{"id":56466074,"uuid":"134963474","full_name":"ftl/hellocontest","owner":"ftl","description":"A simple ham radio contest log for Linux, written in Go","archived":false,"fork":false,"pushed_at":"2025-07-26T20:33:50.000Z","size":2615,"stargazers_count":7,"open_issues_count":8,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-26T20:46:33.851Z","etag":null,"topics":["adif","amateur-radio","amateurradio","cabrillo","contest","contest-logger","contesting","cwdaemon","gotk3","ham-radio","hamlib","hamradio","hf-contest-log","tci"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ftl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":"ftl","custom":["https://paypal.me/thecodingflow"]}},"created_at":"2018-05-26T13:25:50.000Z","updated_at":"2025-07-26T15:10:16.000Z","dependencies_parsed_at":"2023-09-30T19:30:54.563Z","dependency_job_id":"b363b8ca-01f7-450d-99cd-d85d98fc2690","html_url":"https://github.com/ftl/hellocontest","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/ftl/hellocontest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Fhellocontest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Fhellocontest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Fhellocontest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Fhellocontest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftl","download_url":"https://codeload.github.com/ftl/hellocontest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Fhellocontest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270770263,"owners_count":24642110,"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-08-16T02:00:11.002Z","response_time":91,"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":["adif","amateur-radio","amateurradio","cabrillo","contest","contest-logger","contesting","cwdaemon","gotk3","ham-radio","hamlib","hamradio","hf-contest-log","tci"],"created_at":"2024-11-16T23:12:37.245Z","updated_at":"2026-01-04T10:14:51.163Z","avatar_url":"https://github.com/ftl.png","language":"Go","funding_links":["https://github.com/sponsors/ftl","https://paypal.me/thecodingflow"],"categories":[],"sub_categories":[],"readme":"[![CI-Build](https://github.com/ftl/hellocontest/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ftl/hellocontest/actions/workflows/ci.yml)\n\n\n# Hello Contest\nA simple amateur radio contest log for Linux, written in Go using [gotk3](https://github.com/gotk3) for the UI. The main focus is on CW contests on HF, but it should also work for SSB or RTTY contests.\n\n![main window with qso data](https://github.com/ftl/hellocontest/blob/master/docs/screenshots/main_window_filled.png?raw=true)\n\nHere are some highlights:\n* Enter your contacts simple and fast using the keyboard.\n* Use the popular [\"enter sends message\"](https://github.com/ftl/hellocontest/wiki/Main-Window#enter-sends-message-aka-esm) method to enter your contacts.\n* Show the current rate of QSOs, points, and multis in a [comprehensive graphic](https://github.com/ftl/hellocontest/wiki/QSO-Rate).\n* Calculate your points, multis, and [score](https://github.com/ftl/hellocontest/wiki/Score) both per band and overall. The calculation is done using the [conval](https://github.com/ftl/conval) library. You can select the contest definition in the [settings dialog](https://github.com/ftl/hellocontest/wiki/Contest-Settings) (File \u003e Settings).\n* Send and receive QTCs (for example in the Worked All Europe DX Contest).\n* Export the logbook as [Cabrillo](https://wwrof.org/cabrillo/), [ADIF](http://adif.org), CSV, or call history file.\n* Get additional information about the entered callsign from the [DXCC](http://www.country-files.com) and [super check partial](http://supercheckpartial.com) databases, or a call history file.\n* Use a call history file from a former contest to predict the exchange for the currently entered callsign.\n* Use a dx cluster or a local CW skimmer and show the spotted stations in a [spot list](https://github.com/ftl/hellocontest/wiki/Spots).\n* Define different [CW macros](https://github.com/ftl/hellocontest/wiki/Main-Window#cw-macros) for the running and the search\u0026pounce working mode.\n* Connect to your transceiver through the [Hamlib network protocol](https://github.com/Hamlib/Hamlib) to keep the band and mode information in sync.\n* Use the [Hamlib daemon](https://github.com/Hamlib/Hamlib) or the [cwdaemon](https://github.com/acerion/cwdaemon) to transmit CW macros.\n* Show the currently worked station on [F5UII's HamDXMap](https://dxmap.f5uii.net/).\n\nYou can find the detailed documentation of all features in the [wiki](https://github.com/ftl/hellocontest/wiki).\n\n## Install\nSee also the [installation](https://github.com/ftl/hellocontest/wiki/Installation) wiki page for more details.\n\n### AppImage\nDownload the AppImage of the latest release [here](https://github.com/ftl/hellocontest/releases/latest/).\n\n### Debian, Ubuntu, etc.\nDownload the Debian package of the latest release [here](https://github.com/ftl/hellocontest/releases/latest/).\n\n### Arch\nThe latest release of *Hello Contest* is available as AUR package: [hellocontest](https://aur.archlinux.org/packages/hellocontest).\n\n## Build\n\nBuild *Hello Contest* using the included Makefile by simply running\n\n```\nmake\n```\n\nThe following libraries are required:\n\n* libgtk-3-0\n* libgtk-3-dev\n* libpango-1.0-0\n* libpango1.0-dev\n* libpangocairo-1.0-0\n\n### gtk+3.0\nTo build the software on your system with the gotk3 library, you may need to set a tag with the version number of gtk+3.0 that is installed on your system:\n\n```\n# find out the version number\npkg-config --modversion gtk+-3.0\n\n# build Hello Contest (example for gtk+ 3.22.30)\ngo build -tags gtk_3_22\n```\n\n### Protobuf\n*Hello Contest* uses Google's [protocol buffers](https://developers.google.com/protocol-buffers/) to define the data format of the log data stored on disk. The proto definition of the data format resides in the `core/pb` package. This package also contains the generated Go code to access the binary logbook data according to the proto definition. If you make any changes to the proto definition, you need to regenerate this code. The code generation is done using Google's `protoc` compiler for protocol buffers (see Google's [documentation on protocol buffers](https://developers.google.com/protocol-buffers/) for more information about how to install this tool). To run the code generation simply execute\n\n```\nmake generate\n```\n\nThis will generate the Go code to access the binary data in the logbook files into the `core/pb` package.\n\n### Glade\nThe UI is defined using a Glade file. This file is automatically integrated into the executable by the Go compiler, using Go's `embed` package (new in 1.16).\n\n## Known Issues\nIn combination with wayland, the \"new contest\" dialog does not work properly *sometimes*: you cannot select anything and the entry field for the contest name does not respond to any input. I found no hint so far, what the causes this behavior. If you have problems running *Hello Contest* in combination with wayland, please switch to X11. If you have any hints, what could be the cause of this behavior, please don't hesitate to contact me.\n\n## License\nThis software is published under the [MIT License](https://www.tldrlegal.com/l/mit).\n\nCopyright [Florian Thienel](http://thecodingflow.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftl%2Fhellocontest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftl%2Fhellocontest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftl%2Fhellocontest/lists"}