Skip to content

Commit 52415aa

Browse files
committed
feat: position PhotoDock as an image viewer
1 parent 4304911 commit 52415aa

9 files changed

Lines changed: 100 additions & 70 deletions

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ All notable changes follow Keep a Changelog-style sections.
66

77
### Changed
88

9+
- Repositioned PhotoDock as an Omarchy photo and image viewer first, with safe
10+
camera-media import as an optional companion workflow.
911
- Renamed the pre-release product from Shutter Bar to PhotoDock, including the
1012
plugin ID, repository, Python package, command, IPC, systemd, and XDG
1113
identities. The installed prototype data is migrated conservatively.

Panel.qml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ Item {
679679
ColumnLayout {
680680
spacing: 1
681681
Text { text: "PhotoDock"; color: Color.foreground; font.pixelSize: 24; font.weight: Font.DemiBold }
682-
Text { text: "Omarchy image-file viewer and safe photo ingest"; color: Color.muted; font.pixelSize: 12 }
682+
Text { text: "Photo viewer for Omarchy · Safe photo ingest"; color: Color.muted; font.pixelSize: 12 }
683683
}
684684
Item { Layout.fillWidth: true }
685685
Controls.Button {
@@ -780,38 +780,38 @@ Item {
780780
spacing: 7
781781
Text {
782782
Layout.fillWidth: true
783-
text: "Bring your photos in safely."
783+
text: "View photos on Omarchy."
784784
color: Color.foreground
785785
font.pixelSize: 18
786786
font.weight: Font.DemiBold
787787
wrapMode: Text.WordWrap
788788
}
789789
Text {
790790
Layout.fillWidth: true
791-
text: "Insert an SD card, CFexpress card, supported USB mass-storage camera, or card reader. PhotoDock will review the source before anything is copied."
791+
text: "Choose a photo folder, or insert an SD card, CFexpress card, supported USB mass-storage camera, or card reader. Browse photos before deciding what to import."
792792
color: Color.muted
793793
wrapMode: Text.WordWrap
794794
}
795795
Text {
796796
Layout.fillWidth: true
797-
text: root.sourceBusy ? "Reviewing source media" : "Waiting for camera media…"
797+
text: root.sourceBusy ? "Loading photos" : "Waiting for photos or camera media…"
798798
color: Color.accent
799799
font.weight: Font.DemiBold
800800
}
801801
RowLayout {
802802
Layout.fillWidth: true
803803
Controls.Button {
804804
id: emptySourceButton
805-
text: "Choose Source Folder"
805+
text: "Choose Photo Folder"
806806
highlighted: true
807807
enabled: root.effectiveService && !root.sourceBusy
808808
KeyNavigation.backtab: closeButton
809809
onClicked: root.openDirectoryPicker("source")
810-
Accessible.name: "Choose a mounted local source folder"
810+
Accessible.name: "Choose a mounted local photo folder to view"
811811
}
812812
Text {
813813
Layout.fillWidth: true
814-
text: "You can also import from a mounted local folder."
814+
text: "View locally. Import only when you choose."
815815
color: Color.muted
816816
font.pixelSize: 11
817817
wrapMode: Text.WordWrap
@@ -827,7 +827,7 @@ Item {
827827
}
828828
}
829829

830-
Text { visible: root.sources.length > 0; text: "1 · CHOOSE SOURCE"; color: Color.muted; font.pixelSize: 11; font.weight: Font.DemiBold }
830+
Text { visible: root.sources.length > 0; text: "1 · CHOOSE PHOTO SOURCE"; color: Color.muted; font.pixelSize: 11; font.weight: Font.DemiBold }
831831
RowLayout {
832832
Layout.fillWidth: true
833833
visible: root.sources.length > 0
@@ -906,7 +906,7 @@ Item {
906906

907907
RowLayout {
908908
Layout.fillWidth: true
909-
Text { text: "MEDIA BROWSER"; color: Color.muted; font.pixelSize: 11; font.weight: Font.DemiBold }
909+
Text { text: "PHOTO & MEDIA VIEWER"; color: Color.muted; font.pixelSize: 11; font.weight: Font.DemiBold }
910910
Text {
911911
Layout.fillWidth: true
912912
horizontalAlignment: Text.AlignRight

README.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
# PhotoDock
22

3-
**Safe photo ingest for Omarchy.**
3+
**View photos and safely import camera media on Omarchy.**
44

5-
> **Connect → ReviewConfigure → Import → Verify → Back Up → Eject**
5+
> **Connect → ViewSelect → Import → Verify → Back Up → Eject**
66
7-
PhotoDock is a local-first Omarchy image-file viewer and photography plugin for
8-
moving photos and videos from camera cards and removable media into durable
9-
local storage. It detects supported media, reviews file counts and RAW/JPEG
10-
pairs, imports without overwriting, verifies requested copies, can create an
11-
independent second-device backup, and safely ejects the source when you ask.
7+
PhotoDock is a local-first photo and image viewer for Omarchy. Open a mounted
8+
folder or camera card to browse thumbnails, switch between Grid and List views,
9+
and open a large photo view—even when you only want to look at photos and do not
10+
want to import them. When you are ready, PhotoDock can safely move selected
11+
photos and videos into durable local storage, verify the copies, create an
12+
optional independent backup, and eject the source when you ask.
1213

1314
**PhotoDock never deletes, renames, edits, or formats files on source media.**
1415

1516
## What PhotoDock does
1617

18+
- Opens photos directly on Omarchy from mounted folders, camera cards, card
19+
readers, and supported USB mass-storage cameras
20+
- Provides responsive Grid and List browsing plus a large keyboard-accessible
21+
photo view
1722
- Detects supported camera cards, card readers, and USB mass-storage cameras
1823
- Reviews eligible images, videos, file classes, sizes, and RAW/JPEG pairs
1924
- Builds a clear destination plan before copying begins
@@ -23,6 +28,16 @@ independent second-device backup, and safely ejects the source when you ask.
2328
- Recovers safely from interruption, disconnects, and partial failures
2429
- Keeps settings, history, previews, and diagnostics local
2530

31+
## Use PhotoDock as a photo viewer
32+
33+
Viewing does not require an import. Choose a mounted local photo folder or
34+
camera-media source, browse it in Grid or List mode, and open any supported
35+
image in the large detail view. PhotoDock prepares privacy-minimal local
36+
previews and leaves the source files untouched. Import controls remain
37+
available only when you decide to copy selected files. This gives the Omarchy
38+
desktop a dedicated photo-viewer surface instead of requiring a separate app
39+
just to open and inspect an image.
40+
2641
## Current status
2742

2843
This repository is an unreleased v0.1 implementation candidate. Synthetic

Service.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ Item {
3737
: sources.length > 0 ? String(sources.length) : ""
3838
readonly property string tooltipText: activeJob
3939
? "PhotoDock — " + String(activeJob.state || "working").split("_").join(" ")
40-
: sources.length > 0 ? "PhotoDock " + sources.length + " source" + (sources.length === 1 ? "" : "s")
41-
: engineAvailable ? "PhotoDock · No media connected" : "PhotoDock — engine unavailable"
40+
: sources.length > 0 ? "PhotoDock · " + sources.length + " photo source" + (sources.length === 1 ? "" : "s") + " ready to view"
41+
: engineAvailable ? "PhotoDock · Choose photos to view" : "PhotoDock — engine unavailable"
4242

4343
signal snapshotChangedFromEngine()
4444

0 commit comments

Comments
 (0)