not1mm 24.4.26__tar.gz → 24.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. {not1mm-24.4.26 → not1mm-24.5.1}/PKG-INFO +57 -50
  2. {not1mm-24.4.26 → not1mm-24.5.1}/README.md +56 -49
  3. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/__main__.py +55 -150
  4. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/bandmap.py +28 -81
  5. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/checkwindow.py +23 -35
  6. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/configuration.ui +5 -5
  7. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/cat_interface.py +28 -0
  8. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/cwinterface.py +18 -6
  9. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/settings.py +6 -1
  10. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/version.py +1 -1
  11. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/logwindow.py +37 -50
  12. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/radio.py +9 -0
  13. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/vfo.py +26 -38
  14. not1mm-24.5.1/not1mm/voice_keying.py +100 -0
  15. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/PKG-INFO +57 -50
  16. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/SOURCES.txt +1 -0
  17. {not1mm-24.4.26 → not1mm-24.5.1}/pyproject.toml +1 -1
  18. {not1mm-24.4.26 → not1mm-24.5.1}/LICENSE +0 -0
  19. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/__init__.py +0 -0
  20. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
  21. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/MASTER.SCP +0 -0
  22. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/about.ui +0 -0
  23. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/alpha bravo charlie delta.txt +0 -0
  24. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/bandmap.ui +0 -0
  25. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/check.png +0 -0
  26. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/checkwindow.ui +0 -0
  27. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/contests.sql +0 -0
  28. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/cty.json +0 -0
  29. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/cwmacros.txt +0 -0
  30. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/donors.html +0 -0
  31. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/editcontact.ui +0 -0
  32. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/editmacro.ui +0 -0
  33. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/greendot.png +0 -0
  34. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/k6gte-not1mm.desktop +0 -0
  35. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/k6gte.not1mm-128.png +0 -0
  36. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/k6gte.not1mm-32.png +0 -0
  37. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/k6gte.not1mm-64.png +0 -0
  38. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/logwindow.ui +0 -0
  39. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/logwindowx.ui +0 -0
  40. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/main.ui +0 -0
  41. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/new_contest.ui +0 -0
  42. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/not1mm.html +0 -0
  43. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/opon.ui +0 -0
  44. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/0.wav +0 -0
  45. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/1.wav +0 -0
  46. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/2.wav +0 -0
  47. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/3.wav +0 -0
  48. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/4.wav +0 -0
  49. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/5.wav +0 -0
  50. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/6.wav +0 -0
  51. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/7.wav +0 -0
  52. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/73.wav +0 -0
  53. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/8.wav +0 -0
  54. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/9.wav +0 -0
  55. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/a.wav +0 -0
  56. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/again.wav +0 -0
  57. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/b.wav +0 -0
  58. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/c.wav +0 -0
  59. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/contest.wav +0 -0
  60. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/cq.wav +0 -0
  61. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/d.wav +0 -0
  62. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/e.wav +0 -0
  63. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/f.wav +0 -0
  64. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/g.wav +0 -0
  65. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/h.wav +0 -0
  66. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/i.wav +0 -0
  67. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/j.wav +0 -0
  68. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/k.wav +0 -0
  69. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/k6gte.wav +0 -0
  70. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/l.wav +0 -0
  71. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/m.wav +0 -0
  72. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/mynumber.wav +0 -0
  73. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/n.wav +0 -0
  74. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/nil.wav +0 -0
  75. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/o.wav +0 -0
  76. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/p.wav +0 -0
  77. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/q.wav +0 -0
  78. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/r.wav +0 -0
  79. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/roger.wav +0 -0
  80. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/s.wav +0 -0
  81. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/space.wav +0 -0
  82. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/t.wav +0 -0
  83. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/thankyou.wav +0 -0
  84. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
  85. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/u.wav +0 -0
  86. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/v.wav +0 -0
  87. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/w.wav +0 -0
  88. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/x.wav +0 -0
  89. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/y.wav +0 -0
  90. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/yourcall.wav +0 -0
  91. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/phonetics/z.wav +0 -0
  92. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/pickcontest.ui +0 -0
  93. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/radio_green.png +0 -0
  94. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/radio_grey.png +0 -0
  95. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/radio_red.png +0 -0
  96. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/reddot.png +0 -0
  97. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/settings.ui +0 -0
  98. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/ssbmacros.txt +0 -0
  99. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/data/vfo.ui +0 -0
  100. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/fsutils.py +0 -0
  101. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/__init__.py +0 -0
  102. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/about.py +0 -0
  103. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/database.py +0 -0
  104. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/edit_contact.py +0 -0
  105. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/edit_macro.py +0 -0
  106. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/edit_opon.py +0 -0
  107. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/edit_station.py +0 -0
  108. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/ft8_watcher.py +0 -0
  109. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/ham_utility.py +0 -0
  110. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/lookup.py +0 -0
  111. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/multicast.py +0 -0
  112. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/n1mm.py +0 -0
  113. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/new_contest.py +0 -0
  114. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/plugin_common.py +0 -0
  115. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/select_contest.py +0 -0
  116. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/super_check_partial.py +0 -0
  117. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/lib/versiontest.py +0 -0
  118. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/10_10_fall_cw.py +0 -0
  119. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/10_10_spring_cw.py +0 -0
  120. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/10_10_summer_phone.py +0 -0
  121. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/10_10_winter_phone.py +0 -0
  122. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/__init__.py +0 -0
  123. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_10m.py +0 -0
  124. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_dx_cw.py +0 -0
  125. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_dx_ssb.py +0 -0
  126. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_field_day.py +0 -0
  127. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_rtty_ru.py +0 -0
  128. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_ss_cw.py +0 -0
  129. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_ss_phone.py +0 -0
  130. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_vhf_jan.py +0 -0
  131. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_vhf_jun.py +0 -0
  132. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/arrl_vhf_sep.py +0 -0
  133. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/canada_day.py +0 -0
  134. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_160_cw.py +0 -0
  135. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_160_ssb.py +0 -0
  136. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_wpx_cw.py +0 -0
  137. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_wpx_ssb.py +0 -0
  138. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_ww_cw.py +0 -0
  139. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cq_ww_ssb.py +0 -0
  140. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/cwt.py +0 -0
  141. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/general_logging.py +0 -0
  142. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/iaru_hf.py +0 -0
  143. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/jidx_cw.py +0 -0
  144. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/jidx_ph.py +0 -0
  145. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/naqp_cw.py +0 -0
  146. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/naqp_ssb.py +0 -0
  147. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/phone_weekly_test.py +0 -0
  148. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/stew_perry_topband.py +0 -0
  149. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm/plugins/winter_field_day.py +0 -0
  150. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/dependency_links.txt +0 -0
  151. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/entry_points.txt +0 -0
  152. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/requires.txt +0 -0
  153. {not1mm-24.4.26 → not1mm-24.5.1}/not1mm.egg-info/top_level.txt +0 -0
  154. {not1mm-24.4.26 → not1mm-24.5.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: not1mm
3
- Version: 24.4.26
3
+ Version: 24.5.1
4
4
  Summary: NOT1MM Logger
5
5
  Author-email: Michael Bridak <michael.bridak@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/mbridak/not1mm
@@ -31,6 +31,7 @@ Requires-Dist: appdata
31
31
  Requires-Dist: Levenshtein
32
32
 
33
33
  # Not1MM
34
+ <!-- markdownlint-disable MD001 MD033 -->
34
35
 
35
36
  ![logo](https://github.com/mbridak/not1mm/raw/master/not1mm/data/k6gte.not1mm.svg)
36
37
 
@@ -55,16 +56,16 @@ Requires-Dist: Levenshtein
55
56
  - [Common installation recipes for Ubuntu and Fedora](#common-installation-recipes-for-ubuntu-and-fedora)
56
57
  - [Ubuntu 22.04 LTS](#ubuntu-2204-lts)
57
58
  - [Ubuntu 23.04](#ubuntu-2304)
58
- - [Ubuntu 24.04](#ubuntu-2404)
59
+ - [Ubuntu 24.04 LTS](#ubuntu-2404-lts)
59
60
  - [Fedora 38 \& 39](#fedora-38--39)
60
61
  - [Fedora 40](#fedora-40)
61
62
  - [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
62
63
  - [Bootstrapping pipx](#bootstrapping-pipx)
63
64
  - [Installing with pipx](#installing-with-pipx)
65
+ - [Installing from GitHub source](#installing-from-github-source)
64
66
  - [After the install](#after-the-install)
65
67
  - [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
66
68
  - [Or this fan favorite](#or-this-fan-favorite)
67
- - [Installing from GitHub source](#installing-from-github-source)
68
69
  - [Various data file locations](#various-data-file-locations)
69
70
  - [Data](#data)
70
71
  - [Config](#config)
@@ -179,22 +180,7 @@ I wish to thank those who've contributed to the project.
179
180
 
180
181
  ## Recent Changes
181
182
 
182
- - [24-4-25-1] Reduce delta time to poll. Reorder poll_radio callback. Remove unused CAT lib from main.
183
- - [24-4-25] Limited loop in radio.py, reducing clock cycles used. Moved Log window to the top of the logger.
184
- - [24-4-24] Placed CAT control into a thread so disconnecting the radio wouldn't lock up the interface.
185
- - [24-4-17] Trap OSError if no sound device. Stop fsutils/appdata from creating useless .not1mm and .username folder structures on Linux platforms.
186
- - [24-4-15] checkwindow.py Tighter results. Changed the call selection to use a single click.
187
- - [24-4-9-4] Check for portaudio instead of crash boom. Removed empty dockwidget. Tested on Plasma 6.
188
- - [24-4-9-3] Ugh. It's not a real day unless you forget to test.
189
- - [24-4-9-2] Put back the floatable dock widgets, 'cause Wayland strikes again.
190
- - [24-4-9-1] Removed DockWidgetFloatable from the dock widgets since my wee brain can't figure out how to add a dragable window frame to them once they are floating. Added a minimum size for the VFO LCD digits. Defaulted bandmap window to the right.
191
- - [24-4-9] Fixed Checkwindow not showing calls from logged contacts.
192
- - [24-4-7] Added FT8Watcher class to prep for FT8 support.
193
- - [24-4-4-1] Made docking widgets open state persistent.
194
- - [24-4-4] Added per-contest echange hint when adding new contest.
195
- - [24-4-2] Migrated to PyQt6. I'm sure there are broken things.
196
- - [24-4-1-2] Added color text indicators to the Check Partial window. Poached the code from @kyleboyle. Thanks! Fixed the Log, VFO and Check Partial windows to be actual docking widgets. Refocus call field after double clicking on item in the check partial window.
197
- - [24-4-1] Removed some un-needed loops and widgets from the check window. Fixed docking to the left side.
183
+ - [24-5-1] Moved the voice keying into it's own thread.
198
184
 
199
185
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
200
186
 
@@ -217,6 +203,10 @@ through your distribution's package manager before continuing.
217
203
  I've taken the time to install some common Linux distributions into a VM and
218
204
  noted the minimum steps needed to install not1mm.
219
205
 
206
+ <details>
207
+
208
+ <summary><b>Ubuntu 22.04 LTS, 23.04 and 24.04 LTS</b></summary>
209
+
220
210
  #### Ubuntu 22.04 LTS
221
211
 
222
212
  ```bash
@@ -236,7 +226,7 @@ pipx install not1mm
236
226
  pipx ensurepath
237
227
  ```
238
228
 
239
- #### Ubuntu 24.04
229
+ #### Ubuntu 24.04 LTS
240
230
 
241
231
  ```bash
242
232
  sudo apt update
@@ -246,6 +236,12 @@ pip install --break-system-packages not1mm
246
236
  source .profile
247
237
  ```
248
238
 
239
+ </details>
240
+
241
+ <details>
242
+
243
+ <summary><b>Fedora 38, 39 and 40</b></summary>
244
+
249
245
  #### Fedora 38 & 39
250
246
 
251
247
  ```bash
@@ -262,6 +258,9 @@ sudo dnf install python3-pip python3-pyqt6 portaudio
262
258
  pip install not1mm
263
259
  ```
264
260
 
261
+ </details>
262
+ <br>
263
+
265
264
  You can now open a new terminal and type not1mm. On it's first run, it may or
266
265
  may not install a lovely non AI generated icon, which you can later click on to
267
266
  launch the application.
@@ -313,6 +312,40 @@ If you need to later update not1mm, you can do so with:
313
312
  pipx upgrade not1mm
314
313
  ```
315
314
 
315
+ <details>
316
+ <summary><b>Installing from GitHub source.</b></summary>
317
+
318
+ ### Installing from GitHub source
319
+
320
+ Since this is packaged for PyPI, if you want to work on your own source branch,
321
+ after cloning from github you would:
322
+
323
+ ```bash
324
+ pip install --upgrade pip
325
+ pip install setuptools
326
+ pip install build
327
+ source rebuild.sh
328
+ ```
329
+
330
+ from the root directory. This installs a build chain and a local editable copy
331
+ of not1mm.
332
+
333
+ There's two ways to launch the program from the local editable copy.
334
+
335
+ You can either be in the root of the source directory and type:
336
+
337
+ ```bash
338
+ python not1mm
339
+ ```
340
+
341
+ or be in some other directory and just type:
342
+
343
+ ```bash
344
+ not1mm
345
+ ```
346
+
347
+ </details>
348
+
316
349
  ## After the install
317
350
 
318
351
  You can now open a new terminal and type `not1mm`. On it's first run, it may or
@@ -344,35 +377,6 @@ For a more permanent solution you can place the line
344
377
  `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then
345
378
  after logging out and back in you should be able to launch it normally.
346
379
 
347
- ### Installing from GitHub source
348
-
349
- Since this is packaged for PyPI, if you want to work on your own source branch,
350
- after cloning from github you would:
351
-
352
- ```bash
353
- pip install --upgrade pip
354
- pip install setuptools
355
- pip install build
356
- source rebuild.sh
357
- ```
358
-
359
- from the root directory. This installs a build chain and a local editable copy
360
- of not1mm.
361
-
362
- There's two ways to launch the program from the local editable copy.
363
-
364
- You can either be in the root of the source directory and type:
365
-
366
- ```bash
367
- python not1mm
368
- ```
369
-
370
- or be in some other directory and just type:
371
-
372
- ```bash
373
- not1mm
374
- ```
375
-
376
380
  ## Various data file locations
377
381
 
378
382
  ### Data
@@ -482,7 +486,10 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
482
486
 
483
487
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
484
488
  `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
485
- port `8000`. Or `None`, if you want to Morse it like it's 1899.
489
+ `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
490
+ as I can tell rigctld does not support setting the radios internal keyer speed. So
491
+ the CW speed control widget will not be functional and you'd need to control the
492
+ keyer speed thru the radios interface.
486
493
 
487
494
  ### Cluster
488
495
 
@@ -1,4 +1,5 @@
1
1
  # Not1MM
2
+ <!-- markdownlint-disable MD001 MD033 -->
2
3
 
3
4
  ![logo](https://github.com/mbridak/not1mm/raw/master/not1mm/data/k6gte.not1mm.svg)
4
5
 
@@ -23,16 +24,16 @@
23
24
  - [Common installation recipes for Ubuntu and Fedora](#common-installation-recipes-for-ubuntu-and-fedora)
24
25
  - [Ubuntu 22.04 LTS](#ubuntu-2204-lts)
25
26
  - [Ubuntu 23.04](#ubuntu-2304)
26
- - [Ubuntu 24.04](#ubuntu-2404)
27
+ - [Ubuntu 24.04 LTS](#ubuntu-2404-lts)
27
28
  - [Fedora 38 \& 39](#fedora-38--39)
28
29
  - [Fedora 40](#fedora-40)
29
30
  - [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
30
31
  - [Bootstrapping pipx](#bootstrapping-pipx)
31
32
  - [Installing with pipx](#installing-with-pipx)
33
+ - [Installing from GitHub source](#installing-from-github-source)
32
34
  - [After the install](#after-the-install)
33
35
  - [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
34
36
  - [Or this fan favorite](#or-this-fan-favorite)
35
- - [Installing from GitHub source](#installing-from-github-source)
36
37
  - [Various data file locations](#various-data-file-locations)
37
38
  - [Data](#data)
38
39
  - [Config](#config)
@@ -147,22 +148,7 @@ I wish to thank those who've contributed to the project.
147
148
 
148
149
  ## Recent Changes
149
150
 
150
- - [24-4-25-1] Reduce delta time to poll. Reorder poll_radio callback. Remove unused CAT lib from main.
151
- - [24-4-25] Limited loop in radio.py, reducing clock cycles used. Moved Log window to the top of the logger.
152
- - [24-4-24] Placed CAT control into a thread so disconnecting the radio wouldn't lock up the interface.
153
- - [24-4-17] Trap OSError if no sound device. Stop fsutils/appdata from creating useless .not1mm and .username folder structures on Linux platforms.
154
- - [24-4-15] checkwindow.py Tighter results. Changed the call selection to use a single click.
155
- - [24-4-9-4] Check for portaudio instead of crash boom. Removed empty dockwidget. Tested on Plasma 6.
156
- - [24-4-9-3] Ugh. It's not a real day unless you forget to test.
157
- - [24-4-9-2] Put back the floatable dock widgets, 'cause Wayland strikes again.
158
- - [24-4-9-1] Removed DockWidgetFloatable from the dock widgets since my wee brain can't figure out how to add a dragable window frame to them once they are floating. Added a minimum size for the VFO LCD digits. Defaulted bandmap window to the right.
159
- - [24-4-9] Fixed Checkwindow not showing calls from logged contacts.
160
- - [24-4-7] Added FT8Watcher class to prep for FT8 support.
161
- - [24-4-4-1] Made docking widgets open state persistent.
162
- - [24-4-4] Added per-contest echange hint when adding new contest.
163
- - [24-4-2] Migrated to PyQt6. I'm sure there are broken things.
164
- - [24-4-1-2] Added color text indicators to the Check Partial window. Poached the code from @kyleboyle. Thanks! Fixed the Log, VFO and Check Partial windows to be actual docking widgets. Refocus call field after double clicking on item in the check partial window.
165
- - [24-4-1] Removed some un-needed loops and widgets from the check window. Fixed docking to the left side.
151
+ - [24-5-1] Moved the voice keying into it's own thread.
166
152
 
167
153
  See [CHANGELOG.md](CHANGELOG.md) for prior changes.
168
154
 
@@ -185,6 +171,10 @@ through your distribution's package manager before continuing.
185
171
  I've taken the time to install some common Linux distributions into a VM and
186
172
  noted the minimum steps needed to install not1mm.
187
173
 
174
+ <details>
175
+
176
+ <summary><b>Ubuntu 22.04 LTS, 23.04 and 24.04 LTS</b></summary>
177
+
188
178
  #### Ubuntu 22.04 LTS
189
179
 
190
180
  ```bash
@@ -204,7 +194,7 @@ pipx install not1mm
204
194
  pipx ensurepath
205
195
  ```
206
196
 
207
- #### Ubuntu 24.04
197
+ #### Ubuntu 24.04 LTS
208
198
 
209
199
  ```bash
210
200
  sudo apt update
@@ -214,6 +204,12 @@ pip install --break-system-packages not1mm
214
204
  source .profile
215
205
  ```
216
206
 
207
+ </details>
208
+
209
+ <details>
210
+
211
+ <summary><b>Fedora 38, 39 and 40</b></summary>
212
+
217
213
  #### Fedora 38 & 39
218
214
 
219
215
  ```bash
@@ -230,6 +226,9 @@ sudo dnf install python3-pip python3-pyqt6 portaudio
230
226
  pip install not1mm
231
227
  ```
232
228
 
229
+ </details>
230
+ <br>
231
+
233
232
  You can now open a new terminal and type not1mm. On it's first run, it may or
234
233
  may not install a lovely non AI generated icon, which you can later click on to
235
234
  launch the application.
@@ -281,6 +280,40 @@ If you need to later update not1mm, you can do so with:
281
280
  pipx upgrade not1mm
282
281
  ```
283
282
 
283
+ <details>
284
+ <summary><b>Installing from GitHub source.</b></summary>
285
+
286
+ ### Installing from GitHub source
287
+
288
+ Since this is packaged for PyPI, if you want to work on your own source branch,
289
+ after cloning from github you would:
290
+
291
+ ```bash
292
+ pip install --upgrade pip
293
+ pip install setuptools
294
+ pip install build
295
+ source rebuild.sh
296
+ ```
297
+
298
+ from the root directory. This installs a build chain and a local editable copy
299
+ of not1mm.
300
+
301
+ There's two ways to launch the program from the local editable copy.
302
+
303
+ You can either be in the root of the source directory and type:
304
+
305
+ ```bash
306
+ python not1mm
307
+ ```
308
+
309
+ or be in some other directory and just type:
310
+
311
+ ```bash
312
+ not1mm
313
+ ```
314
+
315
+ </details>
316
+
284
317
  ## After the install
285
318
 
286
319
  You can now open a new terminal and type `not1mm`. On it's first run, it may or
@@ -312,35 +345,6 @@ For a more permanent solution you can place the line
312
345
  `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then
313
346
  after logging out and back in you should be able to launch it normally.
314
347
 
315
- ### Installing from GitHub source
316
-
317
- Since this is packaged for PyPI, if you want to work on your own source branch,
318
- after cloning from github you would:
319
-
320
- ```bash
321
- pip install --upgrade pip
322
- pip install setuptools
323
- pip install build
324
- source rebuild.sh
325
- ```
326
-
327
- from the root directory. This installs a build chain and a local editable copy
328
- of not1mm.
329
-
330
- There's two ways to launch the program from the local editable copy.
331
-
332
- You can either be in the root of the source directory and type:
333
-
334
- ```bash
335
- python not1mm
336
- ```
337
-
338
- or be in some other directory and just type:
339
-
340
- ```bash
341
- not1mm
342
- ```
343
-
344
348
  ## Various data file locations
345
349
 
346
350
  ### Data
@@ -450,7 +454,10 @@ onscreen icon for CAT status. Green good, Red bad, Grey neither.
450
454
 
451
455
  Under the `CW` TAB, There are three options. `cwdaemon`, which normally uses IP
452
456
  `127.0.0.1` and port `6789`. `pywinkeyer` which normally uses IP `127.0.0.1` and
453
- port `8000`. Or `None`, if you want to Morse it like it's 1899.
457
+ `CAT` which if your radio supports it, sends Morse characters via rigctld. As far
458
+ as I can tell rigctld does not support setting the radios internal keyer speed. So
459
+ the CW speed control widget will not be functional and you'd need to control the
460
+ keyer speed thru the radios interface.
454
461
 
455
462
  ### Cluster
456
463