ixlab-sshui 1.2.1__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.1 → ixlab_sshui-1.2.2}/PKG-INFO +5 -1
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/README.md +4 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/PKG-INFO +5 -1
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/pyproject.toml +1 -1
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/__init__.py +31 -1
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/LICENSE +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/SOURCES.txt +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/dependency_links.txt +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/entry_points.txt +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/requires.txt +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/ixlab_sshui.egg-info/top_level.txt +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/setup.cfg +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/about_dialog.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/constants.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/host_panel.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/key_content_dialog.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/key_dialog.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/key_panel.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/main_window.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/option_dialog.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/sshui.svg +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/tag_dialog.py +0 -0
- {ixlab_sshui-1.2.1 → ixlab_sshui-1.2.2}/sshui/terminal_window.py +0 -0
- {ixlab_sshui-1.2.1 → 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,10 @@ 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
|
+
|
|
22
26
|
## What's New in 1.2.1
|
|
23
27
|
|
|
24
28
|
- **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
|
|
@@ -2,6 +2,10 @@
|
|
|
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
|
+
|
|
5
9
|
## What's New in 1.2.1
|
|
6
10
|
|
|
7
11
|
- **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
|
|
@@ -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,10 @@ 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
|
+
|
|
22
26
|
## What's New in 1.2.1
|
|
23
27
|
|
|
24
28
|
- **Application icon** — the app now ships and displays its own icon (window, dock/taskbar, and system tray).
|
|
@@ -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
|