ixlab-sshui 1.2.0__tar.gz → 1.2.2__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 (24) hide show
  1. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/PKG-INFO +16 -1
  2. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/README.md +15 -0
  3. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/PKG-INFO +16 -1
  4. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/pyproject.toml +1 -1
  5. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/__init__.py +31 -1
  6. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/LICENSE +0 -0
  7. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/SOURCES.txt +0 -0
  8. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/dependency_links.txt +0 -0
  9. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/entry_points.txt +0 -0
  10. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/requires.txt +0 -0
  11. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/top_level.txt +0 -0
  12. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/setup.cfg +0 -0
  13. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/about_dialog.py +0 -0
  14. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/constants.py +0 -0
  15. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/host_panel.py +0 -0
  16. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_content_dialog.py +0 -0
  17. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_dialog.py +0 -0
  18. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_panel.py +0 -0
  19. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/main_window.py +0 -0
  20. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/option_dialog.py +0 -0
  21. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/sshui.svg +0 -0
  22. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/tag_dialog.py +0 -0
  23. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/terminal_window.py +0 -0
  24. {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/text_prompt_dialog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ixlab-sshui
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: PyQt6 UI for browsing and tagging SSH configs via sshcore.
5
5
  Author-email: Iacopo Palazzi <iacopo.palazzi@gmail.com>
6
6
  License: MIT
@@ -19,6 +19,21 @@ Dynamic: license-file
19
19
 
20
20
  `sshui` is a PyQt6-based graphical frontend for the `sshcore` engine. It gives you a fast, tag-aware explorer for SSH configuration files, complete with host grouping, editing dialogs, and quick copy of SSH commands—without touching the command line.
21
21
 
22
+ ## What's New in 1.2.2
23
+
24
+ - **macOS Dock icon** — the app icon now also shows in the macOS Dock (set via AppKit at startup), not just the menu-bar tray.
25
+
26
+ ## What's New in 1.2.1
27
+
28
+ - **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
29
+
30
+ ## What's New in 1.2.0
31
+
32
+ - **Key content viewer** — select a key in the Keys tab and click the **View** button on a Path row to open a read-only window with the file content and a one-click Copy to Clipboard action.
33
+ - **Redesigned app icon** — new 32×32 icon with transparent padding, rounded corners, and the `>SSH` logotype in pixel font.
34
+ - Fixed `TypeError: 'type' object is not iterable` on startup with newer `cryptography` releases.
35
+ - Fixed `XPM pixels missing on image line 15` warning logged on every launch.
36
+
22
37
  ## What's New in 1.1.0
23
38
 
24
39
  - **Key Management**: A dedicated panel for viewing, adding, and deleting SSH keys.
@@ -2,6 +2,21 @@
2
2
 
3
3
  `sshui` is a PyQt6-based graphical frontend for the `sshcore` engine. It gives you a fast, tag-aware explorer for SSH configuration files, complete with host grouping, editing dialogs, and quick copy of SSH commands—without touching the command line.
4
4
 
5
+ ## What's New in 1.2.2
6
+
7
+ - **macOS Dock icon** — the app icon now also shows in the macOS Dock (set via AppKit at startup), not just the menu-bar tray.
8
+
9
+ ## What's New in 1.2.1
10
+
11
+ - **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
12
+
13
+ ## What's New in 1.2.0
14
+
15
+ - **Key content viewer** — select a key in the Keys tab and click the **View** button on a Path row to open a read-only window with the file content and a one-click Copy to Clipboard action.
16
+ - **Redesigned app icon** — new 32×32 icon with transparent padding, rounded corners, and the `>SSH` logotype in pixel font.
17
+ - Fixed `TypeError: 'type' object is not iterable` on startup with newer `cryptography` releases.
18
+ - Fixed `XPM pixels missing on image line 15` warning logged on every launch.
19
+
5
20
  ## What's New in 1.1.0
6
21
 
7
22
  - **Key Management**: A dedicated panel for viewing, adding, and deleting SSH keys.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ixlab-sshui
3
- Version: 1.2.0
3
+ Version: 1.2.2
4
4
  Summary: PyQt6 UI for browsing and tagging SSH configs via sshcore.
5
5
  Author-email: Iacopo Palazzi <iacopo.palazzi@gmail.com>
6
6
  License: MIT
@@ -19,6 +19,21 @@ Dynamic: license-file
19
19
 
20
20
  `sshui` is a PyQt6-based graphical frontend for the `sshcore` engine. It gives you a fast, tag-aware explorer for SSH configuration files, complete with host grouping, editing dialogs, and quick copy of SSH commands—without touching the command line.
21
21
 
22
+ ## What's New in 1.2.2
23
+
24
+ - **macOS Dock icon** — the app icon now also shows in the macOS Dock (set via AppKit at startup), not just the menu-bar tray.
25
+
26
+ ## What's New in 1.2.1
27
+
28
+ - **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
29
+
30
+ ## What's New in 1.2.0
31
+
32
+ - **Key content viewer** — select a key in the Keys tab and click the **View** button on a Path row to open a read-only window with the file content and a one-click Copy to Clipboard action.
33
+ - **Redesigned app icon** — new 32×32 icon with transparent padding, rounded corners, and the `>SSH` logotype in pixel font.
34
+ - Fixed `TypeError: 'type' object is not iterable` on startup with newer `cryptography` releases.
35
+ - Fixed `XPM pixels missing on image line 15` warning logged on every launch.
36
+
22
37
  ## What's New in 1.1.0
23
38
 
24
39
  - **Key Management**: A dedicated panel for viewing, adding, and deleting SSH keys.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ixlab-sshui"
3
- version = "1.2.0"
3
+ version = "1.2.2"
4
4
  description = "PyQt6 UI for browsing and tagging SSH configs via sshcore."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import sys
6
6
  from pathlib import Path
7
7
 
8
- from PyQt6.QtCore import QTimer
8
+ from PyQt6.QtCore import QTimer, QBuffer, QByteArray
9
9
  from PyQt6.QtGui import QIcon, QAction
10
10
  from PyQt6.QtWidgets import QApplication, QSystemTrayIcon, QMenu
11
11
 
@@ -34,6 +34,35 @@ def _patch_macos_app_menu(name: str) -> None:
34
34
  print(f"[sshui] could not patch macOS app menu: {exc}", file=sys.stderr)
35
35
 
36
36
 
37
+ def _set_macos_dock_icon(icon: QIcon) -> None:
38
+ """Set the macOS Dock icon.
39
+
40
+ ``QApplication.setWindowIcon`` does not affect the Dock for a console-script
41
+ app, so we hand the icon to AppKit explicitly. The SVG is rendered through
42
+ Qt to PNG bytes because ``NSImage`` does not read SVG reliably.
43
+ """
44
+ if sys.platform != "darwin":
45
+ return
46
+ try:
47
+ from AppKit import NSApplication, NSImage
48
+
49
+ pixmap = icon.pixmap(512, 512)
50
+ if pixmap.isNull():
51
+ return
52
+ data = QByteArray()
53
+ buffer = QBuffer(data)
54
+ buffer.open(QBuffer.OpenModeFlag.WriteOnly)
55
+ pixmap.save(buffer, "PNG")
56
+ buffer.close()
57
+
58
+ ns_image = NSImage.alloc().initWithData_(bytes(data))
59
+ if ns_image is None:
60
+ return
61
+ NSApplication.sharedApplication().setApplicationIconImage_(ns_image)
62
+ except Exception as exc: # pragma: no cover - platform/runtime guard
63
+ print(f"[sshui] could not set macOS dock icon: {exc}", file=sys.stderr)
64
+
65
+
37
66
  def main() -> int:
38
67
  """Entry point used by the `sshui` console script."""
39
68
  app = QApplication(sys.argv)
@@ -43,6 +72,7 @@ def main() -> int:
43
72
  icon_path = Path(__file__).parent / "sshui.svg"
44
73
  icon = QIcon(str(icon_path))
45
74
  app.setWindowIcon(icon)
75
+ _set_macos_dock_icon(icon)
46
76
 
47
77
  window = MainWindow()
48
78
  window.setWindowIcon(icon)
File without changes
File without changes
File without changes