not1mm 24.3.21__tar.gz → 24.3.24__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.
- {not1mm-24.3.21 → not1mm-24.3.24}/PKG-INFO +64 -55
- {not1mm-24.3.21 → not1mm-24.3.24}/README.md +63 -54
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/__main__.py +2 -2
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/bandmap.py +63 -52
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/checkwindow.py +14 -9
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/cty.json +1 -1
- not1mm-24.3.24/not1mm/fsutils.py +63 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/super_check_partial.py +3 -1
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/version.py +1 -1
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/logwindow.py +30 -29
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/vfo.py +10 -9
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/PKG-INFO +64 -55
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/SOURCES.txt +0 -1
- {not1mm-24.3.21 → not1mm-24.3.24}/pyproject.toml +1 -1
- not1mm-24.3.21/not1mm/data/vfo2.ui +0 -84
- not1mm-24.3.21/not1mm/fsutils.py +0 -38
- {not1mm-24.3.21 → not1mm-24.3.24}/LICENSE +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/__init__.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/JetBrainsMono-Regular.ttf +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/MASTER.SCP +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/about.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/alpha bravo charlie delta.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/bandmap.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/check.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/checkwindow.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/configuration.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/contests.sql +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/cwmacros.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/donors.html +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/editcontact.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/editmacro.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/greendot.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/k6gte-not1mm.desktop +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/k6gte.not1mm-128.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/k6gte.not1mm-32.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/k6gte.not1mm-64.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/logwindow.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/main.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/new_contest.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/not1mm.html +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/opon.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/0.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/1.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/2.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/3.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/4.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/5.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/6.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/7.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/73.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/8.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/9.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/a.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/again.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/b.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/c.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/contest.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/cq.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/d.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/e.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/f.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/g.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/h.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/i.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/j.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/k.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/k6gte.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/l.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/m.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/mynumber.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/n.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/nil.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/o.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/p.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/q.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/r.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/roger.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/s.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/space.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/t.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/thankyou.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/thankyouqrz.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/u.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/v.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/w.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/x.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/y.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/yourcall.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/phonetics/z.wav +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/pickcontest.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/radio_green.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/radio_grey.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/radio_red.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/reddot.png +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/settings.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/ssbmacros.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/data/vfo.ui +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/__init__.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/about.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/cat_interface.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/cwinterface.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/database.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/edit_contact.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/edit_macro.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/edit_opon.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/edit_station.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/ham_utility.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/lookup.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/multicast.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/n1mm.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/new_contest.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/plugin_common.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/select_contest.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/settings.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/lib/versiontest.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/10_10_fall_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/10_10_spring_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/10_10_summer_phone.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/10_10_winter_phone.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/__init__.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_10m.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_dx_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_dx_ssb.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_field_day.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_rtty_ru.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_ss_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_ss_phone.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_vhf_jan.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_vhf_jun.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/arrl_vhf_sep.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/canada_day.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_160_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_160_ssb.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_wpx_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_wpx_ssb.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_ww_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cq_ww_ssb.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/cwt.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/general_logging.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/iaru_hf.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/jidx_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/jidx_ph.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/naqp_cw.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/naqp_ssb.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/phone_weekly_test.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/stew_perry_topband.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/plugins/winter_field_day.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/fakeflrig.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/flrigclient.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/multicast_listener.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/n1mm_listener.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/simulant.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm/testing/test.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/dependency_links.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/entry_points.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/requires.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/not1mm.egg-info/top_level.txt +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/setup.cfg +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/testing/detectdark.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/testing/test.py +0 -0
- {not1mm-24.3.21 → not1mm-24.3.24}/usb_vfo_knob/code.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: not1mm
|
3
|
-
Version: 24.3.
|
3
|
+
Version: 24.3.24
|
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
|
@@ -48,19 +48,16 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
48
48
|
- [Our Code Contributors ✨](#our-code-contributors-)
|
49
49
|
- [List of should be working contests](#list-of-should-be-working-contests)
|
50
50
|
- [Recent Changes](#recent-changes)
|
51
|
-
- [
|
52
|
-
- [Python and
|
53
|
-
- [
|
54
|
-
|
55
|
-
|
56
|
-
|
51
|
+
- [Installation](#installation)
|
52
|
+
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
53
|
+
- [Bootstrapping pipx](#bootstrapping-pipx)
|
54
|
+
- [Installing with pipx](#installing-with-pipx)
|
55
|
+
- [Installing portaudio](#installing-portaudio)
|
56
|
+
- [After install](#after-install)
|
57
57
|
- [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
|
58
58
|
- [Or this fan favorite](#or-this-fan-favorite)
|
59
|
-
- [Updating with pip/pipx](#updating-with-pippipx)
|
60
|
-
- [Other Libraries](#other-libraries)
|
61
|
-
- [Dark mode on Ubuntu](#dark-mode-on-ubuntu)
|
62
59
|
- [Wayland Compositor](#wayland-compositor)
|
63
|
-
|
60
|
+
- [Running from source](#running-from-source)
|
64
61
|
- [Various data file locations](#various-data-file-locations)
|
65
62
|
- [Data](#data)
|
66
63
|
- [Config](#config)
|
@@ -71,13 +68,14 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
71
68
|
- [Revisiting an old friend](#revisiting-an-old-friend)
|
72
69
|
- [Station Settings dialog (REQUIRED)](#station-settings-dialog-required)
|
73
70
|
- [Changing station information](#changing-station-information)
|
74
|
-
- [
|
75
|
-
|
76
|
-
|
71
|
+
- [Selecting a contest (REQUIRED)](#selecting-a-contest-required)
|
72
|
+
- [Selecting a new contest](#selecting-a-new-contest)
|
73
|
+
- [Selecting an existing contest as the current contest](#selecting-an-existing-contest-as-the-current-contest)
|
74
|
+
- [Editing existing contest parameters](#editing-existing-contest-parameters)
|
77
75
|
- [Configuration Settings](#configuration-settings)
|
78
76
|
- [Lookup](#lookup)
|
79
77
|
- [Soundcard](#soundcard)
|
80
|
-
- [CAT](#cat)
|
78
|
+
- [CAT Control](#cat-control)
|
81
79
|
- [CW Keyer interface](#cw-keyer-interface)
|
82
80
|
- [Cluster](#cluster)
|
83
81
|
- [N1MM Packets](#n1mm-packets)
|
@@ -90,7 +88,7 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
90
88
|
- [Other uses for the call field](#other-uses-for-the-call-field)
|
91
89
|
- [Windows](#windows)
|
92
90
|
- [The Main Window](#the-main-window)
|
93
|
-
|
91
|
+
- [Keyboard commands](#keyboard-commands)
|
94
92
|
- [Log Display](#log-display)
|
95
93
|
- [Editing a contact](#editing-a-contact)
|
96
94
|
- [Recalulate Mults](#recalulate-mults)
|
@@ -169,6 +167,8 @@ I wish to thank those who've contributed to the project.
|
|
169
167
|
|
170
168
|
## Recent Changes
|
171
169
|
|
170
|
+
- [24-3-24] Reworked fsutil.py to correct directory paths for Linux.
|
171
|
+
- [24-3-23] Yanked version 24-3-21, too many bugs for existing userbase.
|
172
172
|
- [24-3-21] Merged PR from @kyleboyle for docking windows. MacOS and Windows support.
|
173
173
|
- [24-3-19] Removed some useless bloat causing slow interface on FreeBSD 13/14 and maybe others.
|
174
174
|
- [24-3-16] Add Save/Fail confirmation dialogs when saving ADIF of Cabrillo files.
|
@@ -181,43 +181,64 @@ I wish to thank those who've contributed to the project.
|
|
181
181
|
|
182
182
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
183
183
|
|
184
|
-
##
|
184
|
+
## Installation
|
185
185
|
|
186
|
-
### Python and
|
186
|
+
### Python, PyPI, pip and pipx
|
187
187
|
|
188
|
-
This software is a Python package hosted on
|
188
|
+
This software is a Python package hosted on PyPI, and installable with the pip or pipx command. If this is your first exposure to Python packaging you can get all the details from:
|
189
189
|
|
190
|
-
|
190
|
+
- [The PyPA](https://packaging.python.org/en/latest/tutorials/installing-packages/)
|
191
|
+
- [Install packages in a virtual environment using pip and venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
|
192
|
+
- [Installing stand alone command line tools](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/)
|
191
193
|
|
192
|
-
|
194
|
+
In short, You should install stuff into a Python virtual environment. Newer Linux distros will make you do this unless you include a command line argument akin to '--break-my-system' when using pip. I'm not telling you to use pipx. But... **Use pipx**.
|
193
195
|
|
194
|
-
|
196
|
+
### Bootstrapping pipx
|
197
|
+
|
198
|
+
Assuming you have only Python installed, your path to pipx is:
|
195
199
|
|
196
200
|
```bash
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
pip
|
201
|
+
# First get pip installed. Either with apt or dnf, or the ensurepip command.
|
202
|
+
python3 -m ensurepip
|
203
|
+
|
204
|
+
# Update the pip that was just installed.
|
205
|
+
python3 -m pip install --upgrade pip
|
206
|
+
|
207
|
+
# Install pipx
|
208
|
+
python3 -m pip install --user pipx
|
209
|
+
python3 -m pipx ensurepath
|
201
210
|
```
|
202
211
|
|
203
|
-
|
212
|
+
### Installing with pipx
|
213
|
+
|
214
|
+
Then installing not1mm is as simple as:
|
204
215
|
|
205
216
|
```bash
|
206
|
-
|
207
|
-
sudo apt upgrade
|
208
|
-
sudo apt install -y libportaudio2 adwaita-qt pipx
|
217
|
+
# Install not1mm
|
209
218
|
pipx install not1mm
|
210
|
-
pipx ensurepath
|
211
219
|
```
|
212
220
|
|
213
|
-
|
221
|
+
If you need to later update not1mm, you can do so with:
|
222
|
+
|
223
|
+
```bash
|
224
|
+
# Update not1mm
|
225
|
+
pipx upgrade not1mm
|
226
|
+
```
|
227
|
+
|
228
|
+
### Installing portaudio
|
229
|
+
|
230
|
+
not1mm uses portaudio to play audio. You can install it with:
|
214
231
|
|
215
232
|
```bash
|
216
|
-
|
233
|
+
# Ubuntu
|
234
|
+
sudo apt install -y libportaudio2
|
235
|
+
|
236
|
+
# Fedora
|
217
237
|
sudo dnf install python3-pip portaudio
|
218
|
-
pip install not1mm
|
219
238
|
```
|
220
239
|
|
240
|
+
## After install
|
241
|
+
|
221
242
|
You can now open a new terminal and type `not1mm`. On it's first run, it may or may not install a lovely non AI generated
|
222
243
|
icon, which you can later click on to launch the application.
|
223
244
|
|
@@ -244,27 +265,13 @@ To avoid this you can export an environment variable and launch the app like thi
|
|
244
265
|
|
245
266
|
For a more permanent solution you can place the line `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then after logging out and back in you should be able to launch it normally.
|
246
267
|
|
247
|
-
### Updating with pip/pipx
|
248
|
-
|
249
|
-
I've been posting updates just about everyday. Sometimes multiple times a day. It's early days, so there is much to do. You can check for and install updates with `pip install -U not1mm` or if installed with pipx `pipx upgrade not1mm`.
|
250
|
-
|
251
|
-
## Other Libraries
|
252
|
-
|
253
|
-
The audio library used, uses pipewire/portaudio. You may need to install portaudio. Ubuntu: `sudo apt install libportaudio2`
|
254
|
-
|
255
|
-
### Dark mode on Ubuntu
|
256
|
-
|
257
|
-
I believe I figured out dark mode in Ubuntu and have it working on my shack PC that runs Ubuntu 22.04. The secret sauce seems to be installing adwaita-qt with apt, and setting an environment variable `QT_STYLE_OVERRIDE` to `Adwaita-Dark`. I set the environment variable in the start of the program if running on a Gnome platform. So you don't need to do that part.
|
258
|
-
|
259
|
-
Or see this discussion [darkmode](https://github.com/mbridak/not1mm/discussions/60).
|
260
|
-
|
261
268
|
## Wayland Compositor
|
262
269
|
|
263
270
|
One side effect of Wayland is that we are not able to request for a window to regain or retain focus. So if you were to click on a spot in the bandmap window to tune to that spot, you would have to then click on the main window to continue entering contest data. I'm aware of this, but I can not change it.
|
264
271
|
|
265
|
-
|
272
|
+
### Running from source
|
266
273
|
|
267
|
-
Since this is packaged for
|
274
|
+
Since this is packaged for PyPI, if you want to work on your own source branch, after cloning from github you would:
|
268
275
|
|
269
276
|
```bash
|
270
277
|
pip install --upgrade pip
|
@@ -333,19 +340,21 @@ You can fill. You can fill. Everyone look at your keys.
|
|
333
340
|
|
334
341
|
Station information can be changed any time by going to `File` > `Station Settings` and editing the information.
|
335
342
|
|
336
|
-
##
|
343
|
+
## Selecting a contest (REQUIRED)
|
344
|
+
|
345
|
+
### Selecting a new contest
|
337
346
|
|
338
347
|
Select `File` > `New Contest`
|
339
348
|
|
340
349
|

|
341
350
|
|
342
|
-
|
351
|
+
### Selecting an existing contest as the current contest
|
343
352
|
|
344
353
|
Select `File` > `Open Contest`
|
345
354
|
|
346
355
|

|
347
356
|
|
348
|
-
|
357
|
+
### Editing existing contest parameters
|
349
358
|
|
350
359
|
You can edit the parameters of a previously defined contest by selecting it as the current contest. Then select `File` > `Edit Current Contest`. Click `OK` to save the new values and reload the contest. `Cancel` to keep the existing parameters.
|
351
360
|
|
@@ -365,7 +374,7 @@ For callsign lookup, Two services are supported. QRZ and HamQTH. They require a
|
|
365
374
|
|
366
375
|
Choose the sound output device for the voice keyer.
|
367
376
|
|
368
|
-
### CAT
|
377
|
+
### CAT Control
|
369
378
|
|
370
379
|
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
|
371
380
|
|
@@ -448,7 +457,7 @@ After this, a request is made to QRZ for the gridsquare of the callsign. If ther
|
|
448
457
|
|
449
458
|

|
450
459
|
|
451
|
-
|
460
|
+
### Keyboard commands
|
452
461
|
|
453
462
|
| Key | Result |
|
454
463
|
| -------------- | --- |
|
@@ -17,19 +17,16 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
17
17
|
- [Our Code Contributors ✨](#our-code-contributors-)
|
18
18
|
- [List of should be working contests](#list-of-should-be-working-contests)
|
19
19
|
- [Recent Changes](#recent-changes)
|
20
|
-
- [
|
21
|
-
- [Python and
|
22
|
-
- [
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
- [Installation](#installation)
|
21
|
+
- [Python, PyPI, pip and pipx](#python-pypi-pip-and-pipx)
|
22
|
+
- [Bootstrapping pipx](#bootstrapping-pipx)
|
23
|
+
- [Installing with pipx](#installing-with-pipx)
|
24
|
+
- [Installing portaudio](#installing-portaudio)
|
25
|
+
- [After install](#after-install)
|
26
26
|
- [You may or may not get a warning message like](#you-may-or-may-not-get-a-warning-message-like)
|
27
27
|
- [Or this fan favorite](#or-this-fan-favorite)
|
28
|
-
- [Updating with pip/pipx](#updating-with-pippipx)
|
29
|
-
- [Other Libraries](#other-libraries)
|
30
|
-
- [Dark mode on Ubuntu](#dark-mode-on-ubuntu)
|
31
28
|
- [Wayland Compositor](#wayland-compositor)
|
32
|
-
|
29
|
+
- [Running from source](#running-from-source)
|
33
30
|
- [Various data file locations](#various-data-file-locations)
|
34
31
|
- [Data](#data)
|
35
32
|
- [Config](#config)
|
@@ -40,13 +37,14 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
40
37
|
- [Revisiting an old friend](#revisiting-an-old-friend)
|
41
38
|
- [Station Settings dialog (REQUIRED)](#station-settings-dialog-required)
|
42
39
|
- [Changing station information](#changing-station-information)
|
43
|
-
- [
|
44
|
-
|
45
|
-
|
40
|
+
- [Selecting a contest (REQUIRED)](#selecting-a-contest-required)
|
41
|
+
- [Selecting a new contest](#selecting-a-new-contest)
|
42
|
+
- [Selecting an existing contest as the current contest](#selecting-an-existing-contest-as-the-current-contest)
|
43
|
+
- [Editing existing contest parameters](#editing-existing-contest-parameters)
|
46
44
|
- [Configuration Settings](#configuration-settings)
|
47
45
|
- [Lookup](#lookup)
|
48
46
|
- [Soundcard](#soundcard)
|
49
|
-
- [CAT](#cat)
|
47
|
+
- [CAT Control](#cat-control)
|
50
48
|
- [CW Keyer interface](#cw-keyer-interface)
|
51
49
|
- [Cluster](#cluster)
|
52
50
|
- [N1MM Packets](#n1mm-packets)
|
@@ -59,7 +57,7 @@ The worlds #1 unfinished contest logger <sup>*According to my daughter Corinna.<
|
|
59
57
|
- [Other uses for the call field](#other-uses-for-the-call-field)
|
60
58
|
- [Windows](#windows)
|
61
59
|
- [The Main Window](#the-main-window)
|
62
|
-
|
60
|
+
- [Keyboard commands](#keyboard-commands)
|
63
61
|
- [Log Display](#log-display)
|
64
62
|
- [Editing a contact](#editing-a-contact)
|
65
63
|
- [Recalulate Mults](#recalulate-mults)
|
@@ -138,6 +136,8 @@ I wish to thank those who've contributed to the project.
|
|
138
136
|
|
139
137
|
## Recent Changes
|
140
138
|
|
139
|
+
- [24-3-24] Reworked fsutil.py to correct directory paths for Linux.
|
140
|
+
- [24-3-23] Yanked version 24-3-21, too many bugs for existing userbase.
|
141
141
|
- [24-3-21] Merged PR from @kyleboyle for docking windows. MacOS and Windows support.
|
142
142
|
- [24-3-19] Removed some useless bloat causing slow interface on FreeBSD 13/14 and maybe others.
|
143
143
|
- [24-3-16] Add Save/Fail confirmation dialogs when saving ADIF of Cabrillo files.
|
@@ -150,43 +150,64 @@ I wish to thank those who've contributed to the project.
|
|
150
150
|
|
151
151
|
See [CHANGELOG.md](CHANGELOG.md) for prior changes.
|
152
152
|
|
153
|
-
##
|
153
|
+
## Installation
|
154
154
|
|
155
|
-
### Python and
|
155
|
+
### Python, PyPI, pip and pipx
|
156
156
|
|
157
|
-
This software is a Python package hosted on
|
157
|
+
This software is a Python package hosted on PyPI, and installable with the pip or pipx command. If this is your first exposure to Python packaging you can get all the details from:
|
158
158
|
|
159
|
-
|
159
|
+
- [The PyPA](https://packaging.python.org/en/latest/tutorials/installing-packages/)
|
160
|
+
- [Install packages in a virtual environment using pip and venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)
|
161
|
+
- [Installing stand alone command line tools](https://packaging.python.org/en/latest/guides/installing-stand-alone-command-line-tools/)
|
160
162
|
|
161
|
-
|
163
|
+
In short, You should install stuff into a Python virtual environment. Newer Linux distros will make you do this unless you include a command line argument akin to '--break-my-system' when using pip. I'm not telling you to use pipx. But... **Use pipx**.
|
162
164
|
|
163
|
-
|
165
|
+
### Bootstrapping pipx
|
166
|
+
|
167
|
+
Assuming you have only Python installed, your path to pipx is:
|
164
168
|
|
165
169
|
```bash
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
pip
|
170
|
+
# First get pip installed. Either with apt or dnf, or the ensurepip command.
|
171
|
+
python3 -m ensurepip
|
172
|
+
|
173
|
+
# Update the pip that was just installed.
|
174
|
+
python3 -m pip install --upgrade pip
|
175
|
+
|
176
|
+
# Install pipx
|
177
|
+
python3 -m pip install --user pipx
|
178
|
+
python3 -m pipx ensurepath
|
170
179
|
```
|
171
180
|
|
172
|
-
|
181
|
+
### Installing with pipx
|
182
|
+
|
183
|
+
Then installing not1mm is as simple as:
|
173
184
|
|
174
185
|
```bash
|
175
|
-
|
176
|
-
sudo apt upgrade
|
177
|
-
sudo apt install -y libportaudio2 adwaita-qt pipx
|
186
|
+
# Install not1mm
|
178
187
|
pipx install not1mm
|
179
|
-
pipx ensurepath
|
180
188
|
```
|
181
189
|
|
182
|
-
|
190
|
+
If you need to later update not1mm, you can do so with:
|
191
|
+
|
192
|
+
```bash
|
193
|
+
# Update not1mm
|
194
|
+
pipx upgrade not1mm
|
195
|
+
```
|
196
|
+
|
197
|
+
### Installing portaudio
|
198
|
+
|
199
|
+
not1mm uses portaudio to play audio. You can install it with:
|
183
200
|
|
184
201
|
```bash
|
185
|
-
|
202
|
+
# Ubuntu
|
203
|
+
sudo apt install -y libportaudio2
|
204
|
+
|
205
|
+
# Fedora
|
186
206
|
sudo dnf install python3-pip portaudio
|
187
|
-
pip install not1mm
|
188
207
|
```
|
189
208
|
|
209
|
+
## After install
|
210
|
+
|
190
211
|
You can now open a new terminal and type `not1mm`. On it's first run, it may or may not install a lovely non AI generated
|
191
212
|
icon, which you can later click on to launch the application.
|
192
213
|
|
@@ -213,27 +234,13 @@ To avoid this you can export an environment variable and launch the app like thi
|
|
213
234
|
|
214
235
|
For a more permanent solution you can place the line `export QT_QPA_PLATFORM=wayland` in your home directories .bashrc file. Then after logging out and back in you should be able to launch it normally.
|
215
236
|
|
216
|
-
### Updating with pip/pipx
|
217
|
-
|
218
|
-
I've been posting updates just about everyday. Sometimes multiple times a day. It's early days, so there is much to do. You can check for and install updates with `pip install -U not1mm` or if installed with pipx `pipx upgrade not1mm`.
|
219
|
-
|
220
|
-
## Other Libraries
|
221
|
-
|
222
|
-
The audio library used, uses pipewire/portaudio. You may need to install portaudio. Ubuntu: `sudo apt install libportaudio2`
|
223
|
-
|
224
|
-
### Dark mode on Ubuntu
|
225
|
-
|
226
|
-
I believe I figured out dark mode in Ubuntu and have it working on my shack PC that runs Ubuntu 22.04. The secret sauce seems to be installing adwaita-qt with apt, and setting an environment variable `QT_STYLE_OVERRIDE` to `Adwaita-Dark`. I set the environment variable in the start of the program if running on a Gnome platform. So you don't need to do that part.
|
227
|
-
|
228
|
-
Or see this discussion [darkmode](https://github.com/mbridak/not1mm/discussions/60).
|
229
|
-
|
230
237
|
## Wayland Compositor
|
231
238
|
|
232
239
|
One side effect of Wayland is that we are not able to request for a window to regain or retain focus. So if you were to click on a spot in the bandmap window to tune to that spot, you would have to then click on the main window to continue entering contest data. I'm aware of this, but I can not change it.
|
233
240
|
|
234
|
-
|
241
|
+
### Running from source
|
235
242
|
|
236
|
-
Since this is packaged for
|
243
|
+
Since this is packaged for PyPI, if you want to work on your own source branch, after cloning from github you would:
|
237
244
|
|
238
245
|
```bash
|
239
246
|
pip install --upgrade pip
|
@@ -302,19 +309,21 @@ You can fill. You can fill. Everyone look at your keys.
|
|
302
309
|
|
303
310
|
Station information can be changed any time by going to `File` > `Station Settings` and editing the information.
|
304
311
|
|
305
|
-
##
|
312
|
+
## Selecting a contest (REQUIRED)
|
313
|
+
|
314
|
+
### Selecting a new contest
|
306
315
|
|
307
316
|
Select `File` > `New Contest`
|
308
317
|
|
309
318
|

|
310
319
|
|
311
|
-
|
320
|
+
### Selecting an existing contest as the current contest
|
312
321
|
|
313
322
|
Select `File` > `Open Contest`
|
314
323
|
|
315
324
|

|
316
325
|
|
317
|
-
|
326
|
+
### Editing existing contest parameters
|
318
327
|
|
319
328
|
You can edit the parameters of a previously defined contest by selecting it as the current contest. Then select `File` > `Edit Current Contest`. Click `OK` to save the new values and reload the contest. `Cancel` to keep the existing parameters.
|
320
329
|
|
@@ -334,7 +343,7 @@ For callsign lookup, Two services are supported. QRZ and HamQTH. They require a
|
|
334
343
|
|
335
344
|
Choose the sound output device for the voice keyer.
|
336
345
|
|
337
|
-
### CAT
|
346
|
+
### CAT Control
|
338
347
|
|
339
348
|
Under the `CAT` TAB, you can choose either `rigctld` normally with an IP of `127.0.0.1` and a port of `4532`. Or `flrig`, IP normally of `127.0.0.1` and a port of `12345`. `None` is always an option, but is it really? There's an onscreen icon for CAT status. Green good, Red bad, Grey neither.
|
340
349
|
|
@@ -417,7 +426,7 @@ After this, a request is made to QRZ for the gridsquare of the callsign. If ther
|
|
417
426
|
|
418
427
|

|
419
428
|
|
420
|
-
|
429
|
+
### Keyboard commands
|
421
430
|
|
422
431
|
| Key | Result |
|
423
432
|
| -------------- | --- |
|
@@ -3,7 +3,7 @@
|
|
3
3
|
NOT1MM Logger
|
4
4
|
"""
|
5
5
|
# pylint: disable=unused-import, c-extension-no-member, no-member, invalid-name, too-many-lines, no-name-in-module
|
6
|
-
# pylint: disable=logging-fstring-interpolation, logging-not-lazy, line-too-long
|
6
|
+
# pylint: disable=logging-fstring-interpolation, logging-not-lazy, line-too-long, bare-except
|
7
7
|
|
8
8
|
# alt cluster hamqth.com 7300
|
9
9
|
|
@@ -123,7 +123,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
|
123
123
|
"contest": "",
|
124
124
|
"multicast_group": "239.1.1.1",
|
125
125
|
"multicast_port": 2239,
|
126
|
-
"interface_ip": "
|
126
|
+
"interface_ip": "0.0.0.0",
|
127
127
|
"send_n1mm_packets": False,
|
128
128
|
"n1mm_station_name": "20M CW Tent",
|
129
129
|
"n1mm_operator": "Bernie",
|