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.
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/PKG-INFO +16 -1
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/README.md +15 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/PKG-INFO +16 -1
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/pyproject.toml +1 -1
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/__init__.py +31 -1
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/LICENSE +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/SOURCES.txt +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/dependency_links.txt +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/entry_points.txt +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/requires.txt +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/top_level.txt +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/setup.cfg +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/about_dialog.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/constants.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/host_panel.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_content_dialog.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_dialog.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/key_panel.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/main_window.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/option_dialog.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/sshui.svg +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/tag_dialog.py +0 -0
- {ixlab_sshui-1.2.0 → ixlab_sshui-1.2.2}/sshui/terminal_window.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|