Repository navigation
Port Jiffshot capture and editing to Linux - #18
Merged
Marc-André Moreau (mamoreau-devolutions) merged 13 commits intoNov 1, 2026
Merged
Conversation
Marc-André Moreau (mamoreau-devolutions)
requested a review
from a team
as a code owner
October 31, 2026 14:44
Add portal-based capture and recording, Linux desktop integrations, and native distribution packages. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marc-André Moreau (mamoreau-devolutions)
force-pushed
the
copilot/linux-port
branch
from
October 31, 2026 14:58
5860aac to
502717b
Compare
Move platform implementations into linux and win directories while preserving shared canvas and capture APIs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Derive package identities from all bundled ELF files, validate six release assets, and test native Ubuntu and Fedora packages on both architectures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Use a harmless installed executable for the hidden desktop override because GLib validates Exec even when Jiffshot is not on PATH. Preserve the existing GUI parse assertion and pin the disabled executable. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Update architecture references for Windows backends and distinguish Linux portal workflows from the Windows capture engine. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Fix the CI-exposed interval GUI coordinate race while retaining portal closure and mutual-exclusion assertions. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Enable verified free codec providers and verify PipeWire, OCR data and fonts before native workspace tests on x64 and ARM64. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Share real AAC factory selection across recording and video editing, preserve AAC-LC and bitrate settings, and verify decoded audio and capability failures. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Support Fedora DejaVu package directories, retain Ubuntu and Windows lookup order, and require visible default and DejaVu rasterization in Linux tests. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Count actual source samples, drain VisualOn lookahead, preserve continuous encoder input, finalize bounded MP4 presentation metadata after EOS, and use stream-time offsets when editing. Verify exact decoded duration, source boundaries and repeated-edit alignment with both real encoders. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Port all Linux end-to-end drivers, the frame-rate portal runner, and the Linux packaging/assembly/validation scripts from Python to pwsh. A shared C# shim (LinuxE2E.cs) built on Tmds.DBus.Protocol provides the D-Bus, X11, PNG, process, and OCR primitives used by the PowerShell modules. Packaging unit tests move to Pester, CI installs a pinned pwsh via a local setup-pwsh action, and the docs describe the new commands. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Reading stops at the tar end marker, so closing the pipe early made dpkg-deb fail with a broken pipe on slower runners. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marc-André Moreau (mamoreau-devolutions)
merged commit Nov 1, 2026
e8f0550
into
master
14 checks passed
Marc-André Moreau (mamoreau-devolutions)
deleted the
copilot/linux-port
branch
November 1, 2026 01:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
app/src/linux/andapp/src/win/, with suffix-free filenames and thin dispatch. Shared canvas/document code remains shared. Windows capture backends live incrates/jiffshot-capture/src/win/, with existing public APIs preserved..tar.gz,.deb, and.rpmfor both Linux x64 and ARM64. Detect architecture from the executable and every bundled runtime ELF; reject mixed/unsupported inputs and relabeling. Release assembly requires and verifies all six packages.voaacenc, support Fedorafdkaacenc, preserve AAC-LC/raw framing and 128 kbit/s, and surface capability/creation errors without aliases or silent fallback. Count actual source samples, retain codec packets and finalize MP4 presentation edits to exclude priming/padding. Preserve source tails, continuous segment encoding and presentation-time offsets across edits.LinuxE2Emodules over a C# shim using a SHA256-pinnedTmds.DBus.Protocol), the packaging/assembly/validation scripts, and Pester unit tests. CI installs a pinned, hash-verified pwsh via.github/actions/setup-pwshand no longer installspython3-dbus-next/python3-gi.Validation
a14a984: complete Ubuntu x64 and ARM64 jobs passed, including GUI, tar/DEB content checks and portable smoke. Windows x64/ARM64 and MSI/MSIX jobs passed. Both Fedora jobs reached runtime tests but failed three AAC timing and three font-dependent cases; package-install rows were consequently skipped.5f4fb47. Both real VisualOn and private upstream FDK encoders pass 13 AAC, 39 video and 6 recording-pipeline tests each locally (116 targeted executions, no failures/skips). FDK execution was on Ubuntu x64/GStreamer 1.24.2, not native Fedora or ARM. Exact duration, waveform alignment, source boundaries/tails, repeated-edit sync and byte-preserving MP4 edits are tested; duration assertions were strengthened, not widened.full_document_recognition_drives_conservative_smart_redactionpass locally.test_mock_recording_cancel_closes_portal_sessionverifies the labelled control closes the recording portal session without requesting another source.d5ec759passed all 14 jobs: Ubuntu x64/ARM64 build, all GUI e2e drivers, Pester package tests and portable smoke; Fedora x64/ARM64 RPM builds; DEB/RPM install on x64 and ARM64; Windows x64/ARM64 and MSI/MSIX. This includes the interval-cancel and ARM64 autostart cases that failed in 41221973567.pwsh -Filereturns exit 1 when a driver throws.assemble-release.ps1verified all six downloaded CI packages, then refused with exit 1 and no output when one RPM artifact was missing.selected_encoder_negotiates_lc_stereo_and_decodes_a_resampled_tone: 47,999 actual resampled frames equal decoded frames, contiguous timestamps and waveform correlation >0.98trimming_preserves_the_corresponding_audio_from_each_source_interval: 72,000 frames;cutting_preserves_audio_before_and_after_the_removed_range: 96,000 frames, with short source-boundary tone checkssource_tone_boundaries_and_end_survive_aac_segment_changes;repeated_trimming_keeps_source_tone_boundaries_without_accumulating_aac_delayfinalization_retains_every_compressed_byte_and_file_offset;malformed_or_unsupported_timing_preserves_the_entire_filelinux_system_fonts_render_default_and_dejavu_text;interactive_effects_capture_info_band_preserves_content_and_undoes;interactive_effects_capture_info_rejects_narrow_images_without_changing_document;full_document_recognition_drives_conservative_smart_redactionLimitations
jiffshot-cliautomation is Windows-only; Linux retainsjiffshotcapture options. The Windows workflow engine remains injiffshot-workflow, with Linux workflows underapp/src/linux/.-RealPortal) were ported but not run; they need a real desktop portal. The PowerShell frame-rate timed portal is a plain mock, and saved images are checked with the shared PNG decoder rather than GStreamer.