* Return Linux version codename if no version ID
* Use underscores and put version at start
* Use `-` instead of `.` for version
* Use more consistent arch names in filenames
* Update ChangeLog
* Dirty dirty hack so that beta testers can try Wayland on server ahead of libportal 0.8.x distribution
* Install deps for subprojects that are added with --meson-no-system
* Use `RuntimeError`
* Remove `packagefiles` from `.gitignore`
* Add ignored packagefiles
* Improve comment
* Update ChangeLog
* Add warnings for libei and libportal
* Add warning about experimental Wayland support
* Update ChangeLog
* Move GUI res files to root res dir
* Fixed crazy qrc shenanigans
* Move Wayland warning logic, add tests, improve core retry
* Also install py modules with pip since meson can be in venv
* Throw error when no libei
* Add warnings when no libportal
* Allow failure then success to show related to Wayland (for switching modes)
* Fixed formatting
* Fixed includes
* Simplify warning message
* Add log hint
* Show warning when error already shown
* Only check for Wayland if X or libei
* Add error message when quitting dur to remote desktop error
* Improve consistency of portal log lines
* Add CLI11 lib
* Use newer arg parser for to add --config-toml arg
* Fix bug where coco doesn't run in elevated console
* Improve macro names
* Fixed incorrect macro name
* Improve coverage for TOML config load
* Allow legacy args and use toml config arg in launch.json
* Update ChangeLog
* Fail coverage workflow on integ test fail
* Remove line break
* Only wait for elevated script to exit when required
* Add missing space and only create lock file if wait enabled
* Update ChangeLog
* Fixed case for wait_for_exit
* Use .venv as Python venv dir
* Update refs to Python venv dir and use action to cache and setup
* Add missing shell: bash
* Source for Python deps
* Exclude .venv from lint
* Update ChangeLog
* Add cache-key arg for init-python
* Add missing "
* Use workflow specific Python cache names
* Fixed cache key for Linux
* Use bash if to make output clearer in case of skipping.
* Clearer debug output
* Add check for cache key
* Add missing shell
* Add SonarCloud and Valgrind venv cache
* Fixed typo
* Add experimental BSD job to CI
* Remove container
* cd into ` synergy/synergy/`
* Change unix to bsd
* Use only run param and not prepare
* Install python3 on FreeBSD
* Add missing command to prepare param
* Add all the Unix-like BSD-derived
* Use latest python3 for NetBSD and DragonFly BSD
* Use env for cmd and correct prepare commands
* Add deps config for unix-like
* Install Python deps on Unix-like
* Return matching entry in `get_unix_like_os`
* Add cmake dep for cmakelang py module
* Back out Unix-like support in `install_deps.py` (Python is tricky on BSD)
* Back out BSD from config
* Create install_deps.sh script for BSD-derived
* Use .sh script instead of .py for BSD-derived
* Add other case and fixed syntax
* Use /usr/bin/env
* Use more available sh
* Restore debian command
* Fixed syntax error
* Remove prepare args
* Remove space
* Use which instead of command
* Add libX11 dep
* Add other BSD-derivatives
* Set CMAKE_REQUIRED_INCLUDES
* Fixed bad separator for CMAKE_REQUIRED_INCLUDES
* Add debug lines
* Set CMAKE_REQUIRED_LIBRARIES to lib names
* use CMAKE_REQUIRED_QUIET
* Set CMAKE_REQUIRED_FLAGS for BSD
* Message for BSD packaging
* Make PKG_CONFIG_FOUND optional
* Move debug to all OS
* Remove solaris for now, too many missing packages
* Add missing override to XWindowsScreen.h
* Add PC_GLIB_INCLUDE_DIRS
* Fixed glib include
* Make libnotify optional
* Set CMAKE_LIBRARY_PATH
* Only run tests if toml++ available
* Also run integ tests
* Remove DragonFly (C++ version too old)
* Fixed NetBSD command
* Aww sucks. Well, I tried. Patches welcome
* Update ChangeLog
* Fixed README for OpenBSD, NetBSD, DragonFly BSD, Solaris
* Add missing case for SunOS
* Drop redundant virtual specifiers
* Print libs on FreeBSD
* Restore link_directories
* Beef up to ubuntu-24.04-16-core-x64, export QT_QPA_PLATFORM, improve comment
* Remove debug line
* Simplify debug text
* Restore ubuntu-latest
* Fixed really stupid typo
* Beef up with ubuntu-22.04-16-core-x64
* Revert "Beef up with ubuntu-22.04-16-core-x64"
This reverts commit 3de5773ef6c6eea99b93d3ee8448b0b95dc00dde.
* Add missing name
* Make .sh file primary deps file
* Tweaked deps instruction label
* Fixed OpenSSL exe dir to use tools dir
* Simplify vcpkg caching and use system vcpkg
* Only use ref for version when ref is a tag
* Add condition for event input
* Add restore keys for vcpkg cache
* Improve step name for vcpkg_installed
* Use `windows-2022` runner
* Update ChangeLog
* Revert "Use `windows-2022` runner"
This reverts commit f9e00cbcb3588e58914d2b9e73b3c5734a12d329.
* Brighter red
* Move openssl to vcpkg.exe
* Revert "Move openssl to vcpkg.exe"
This reverts commit 36f39d916f3cc2c8ce779442bd964bd6af7edd69.
* Add missing copyright
* Fix copyright dates
* Remove openssl from choco
* Install openssl using vcpkg
* Add deps for vcpkg
* Add missing vcpkg manifest
* Revert "Add deps for vcpkg"
This reverts commit c266d29c2cec4474a181b89c2f759b62ed67db10.
* Make vcpkg Windows only
* Improve comment about vcpkg
* Remove unused var
* Add caching for vcpkg
* Reorg launch.json
* Remove static env var for openssl on Windows
* Add openssl dep to vcpkg
* Update ChangeLog
* Add OpenSSL include dir
* Remove pointless choco cache
* Remove vcpkg downloads
* Remove wixtoolset for CI already installed on GitHub runners
* Use `Remove-Item` instead of `rmdir`
* Move cmake and ninja out of choco
* Revert "Move cmake and ninja out of choco (winget not supported on GitHub runner)"
This reverts commit a65c02d275e58705b8cd86fac72629284191d737.
* Move cmake and ninja to winget and don't use choco on CI
* Remove winget action
* Use scoop on CI and winget locally
* Use `seanmiddleditch/gha-setup-ninja` for Ninja
* Improve comments
* Install Ninja before deps
* Use system vcpkg if installed
* Revert "Use system vcpkg if installed"
This reverts commit 4ddee1c66e8cace458c047285a70d2f98cf9d82c.
* Add comment about why we're using local vcpkg
* Fixed comment about VC++
* Improve config comments
* Delete dead code
* Improve comment about vcpkg/buildtrees
* Link against local libei and libportal and use main for both
* Change to `--meson-no-system`
* Add missing libportal dep
* Python trick I learned from Peter Hutterer :D
* Remove qt6-base-private-dev not needed
* Remove unused HAVE_LIBEI_SEQUENCE_NUMBER
* Add hack to force all libportal functions on for local build
* Always wipe instead of reconfigure
* Fixed function name in deps
* Update ChangeLog
* Fixed formatting
* Load args from .toml file
* Remove .toml files
* Handle _ arg as no key
* Remove dotenv-cpp
* Treat special last arg specially
* Improve restart warning
* Remove rogue include
* Move TOML config loader to new class
* Merge config files into one
* Add override to virtual functions
* Tidy up App decl and add missing overrides
* Add comments to organize function types
* Fixed: config.h doesn't work on Windows
* Move var position
* Improve includes in app classes
* Update ChangeLog
* Restore position of configure_file call
* Remove new entries in .in file
* Only show error/success conditionally
* Make choco install more robust
* Improve deps script to remind about restarting shells
* Add note about Mac Qt
* Update ChangeLog
* Add libei and libportal
* Port libei and libportal code by Peter Hutterer and Olivier Fourdan
* Add Peter Hutterer and Olivier Fourdan to important devs list
* Improve error handling for libei and libportal builds
* Checkout libportal tags/0.7.1
* Hack out the gi-docgen clone
* Remove new submodules in favor of using ExternalProject_Add
* Remove submodule dirs
* Use ExternalProject_Add instead of submodules
* Fixed namespace
* Hack to work around type libportal causing type conflicts
* Add log helper functions
* Use original log functions
* Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency
* Restore a few events (much more work required)
* Add TODOs for supporting multiple lib versions
* Revert "Switch to FetchContent, use libportal a1530a9 (unreleased) and use camelCase member names for consistency"
This reverts commit 610cebb5b6a08282eee68f4424fcdbe9eaab4bf9.
* Simplify cmake config by removing builds for libei and libportal (will do this in `install_deps.py` instead)
* Remove submodules
* Remove .gitmodules
* Use meson to build subprojects
* Update copyright with Peter Hutterer's guidance
* Use meson for installing deps
* Fixed typo in tag name
* Remove submodules
* Remove old submodules
* Fixed libei name
* Defaults for pugixml and gtest depending on whether source exists in subprojects
* Ignore some subproject dirs
* Make deps OS-specific
* Move python deps to pyproject
* Only compile and install on Linux with Meson
* Revert "Move python deps to pyproject"
This reverts commit 92c8a287b8376a4d166058c85f1d6081f6fdb423.
* Add ninja to brewfile
* Add python3-attr
* Restore original coverage config
* Add ninja for meson
* Include meson in same try-except
* Fixed ninja dep name
* Move libs to correct oS
* Fixed include for wintoast
* Disable docs for libportal
* More options for libei and libportal
* Fixed option for libei
* Use ninja directly to install
* Revert "Use ninja directly to install"
This reverts commit c926d78ba483406a55acd10fb157c39e13f90b71.
* Meson install verbose
* Prints stdout/stderr
* Remove `from None`
* Remove submodules that somehow crept back in?!
* Prepend sudo if exists
* Add libei deps for all distros
* Fixed Fedora package name
* Add more deps for other distros
* Add more libs (including pugixml)
* Fix lib name
* Drop -u from pacman
* Add vala to rhel
* Make libportal optional
* Make portal link optional
* Remove example code
* Always use system pugixml
* Disable interactive apt through install_deps.py
* Revert "Disable interactive apt through install_deps.py"
This reverts commit 5bbc8fd689182447c79b81db16c961b98361a292.
* Set DEBIAN_FRONTEND in workflows
* Set DEBIAN_FRONTEND in CodeQL workflow
* Add gtest dep
* Add bundled libei dep
* Add libei dep to Arch
* Use `googletest` on openSUSE
* Add gmock dep
* Remove gtest dep from openSUSE
* Add libei on Fedora
* Bundle libei for older Linux distros
* Disable libei dep for RPM
* Also bundle symlink to .so
* Use ${CMAKE_INSTALL_LIBDIR}
* Rename libei to fix openSUSE
* List installed files
* Add libei-devel to openSUSE
* Add googletest-devel to openSUSE
* Remove manual deps (probably resolved automatically)
* Remove googletest from openSUSE (doesn't provide google mock)
* Only add Portal* if libportal found
* WIP - Partial work on using old events system :'(
* Add deps install commands for subprojects
* Solved more compile issues related to events system, threads, etc
* Fixed bad config for adding x, ei, portal sources
* Remove redundant deps
* Remove (another) redundant dep
* Fixed pacman command
* Add Ubuntu and Linux Mint libei deps
* Fixed Ubuntu and Linux Mint libei deps aliases
* Only iterate subprojects if not None
* Add rhel, rocky, and alma for libei
* Make rhel-like deps same as fedora again
* Build libportal on rhel-like
* Re-enable meson rhel-like for libportal
* Remove dbus-python
* Make libportal optional (for rhel-like)
* Handle ei event queue results
* Re-introduce libportal
* Print libei and libportal versions
* Add ei/portal args and client screen
* Switch --use args to --no
* Don't build libei/libportal on older distros as it's pointless
* Make libei and libportal optional
* Add Debian 13 runner
* Make some packages optional
* Remove subprojects
* Improve comment
* Add comment for libportal
* Improve comment
* Add Debian 13 runner
* Make optional... optional
* Change continuation stripper to remove newline and continuation char
* Make command strip more uniform
* Fixed help var syntax
* Fixed libei linking
* Ensure `kHelpNoWayland` is always defined
* Improve help message
* Fixed Debian 13 runner name
* Include sstream and use const var
* Update ChangeLog
* Remove Wayland block
* Return new timer
* Make tray icon logging verbose
* Fixed arg parser for wayland args
* Fixed init of EI screen
* Fixed lint issues
* Update README to indicate Wayland support in GNOME 46
* Add missing word
* Fixed comment positions
* Automate CI env
* Tone down debug log messages
* Add missing comma
* Remove redundant log line
* Update config.yaml to support Linux Mint build target
Linux Mint is a Debian downstream, and it should be supported as such
* Update ChangeLog
---------
Co-authored-by: Nick Bolton <nick@symless.com>
* Swap assert for warning log lines
* Flush on IPC write
* Flush on cleanup instead of write
* Record core started setting
* Show server first start message
* Show message when active scope is read-only
* Show read only message on change
* Show read only on window show
* Try to improve main window size policy
* Revert addition of resizer
* Remove redundant file path fiddling
* Remove dead code and fixed missing const
* Print path and use queued connection
* Improve read-only message on Windows
* Only show toggle warning when dialog visible
* Update ChangeLog
* Fixed include
* Add reset settings menu action and env var
* Delete profile and config dirs, reduce duplication with TLS dir and various other paths, fixed bug in new client dialog, move TLS arg to server
* Better filename
* Make method const
* Update ChangeLog
* Remove include
* Make param const
* Stop core process on reset
* Fixed: reset menu action causes config to be pulled from app/server config
* Center main window in middle of screen
* Update fingerprint on load
* Update TLS controls enabled
* Use official Qt way to detect dark mode and clean up dead code
* Add missing includes
* Simplify dark mode code
* Check app config dir for .env
* Use app config dir for .env
* Don't check for existence of file
* Resolve orgDir
* Add missing example env
* Fixed example
* Update ChangeLog
* Improve trusted fingerprint message
* Fixed typo
* Improve grammar
* Simplify logging output
* Only show close reminder if not quitting
* Migrate old settings on macOS
* Raise main window when showing
* Raise critical error above main window
* Coverage for config scopes
* Fixed new client prompt
* Remove unused includes
* Further coverage for config scopes
* Update ChangeLog
* Load .env from app dir
* Use `OutputDebugStringA` on Windows
* Improved string manipulation in logger and better use of OutputDebugStringA
* Use noquote for path
* Apply TLS setting after activation
* Restart after activation
* Move skip debug message to correct place
* Only print settings path on create, not shown
* Merge common and global libs
* Reduce code duplication around constants, version, etc
* Simplify sprintf code
* Use snprintf
* Add error test menu
* Coverage for dotenv
* Coverage for Logger
* Add missing include
* Add init when no Git SHA
* Update ChangeLog
* Add spellings
* Set debugging on for release build
* Remove unused variable
* Remove bad comment
* Fixed copyright date
* Remove import
* Move URL const back to GUI
* Remove dead code and duplication
* Fixed/ignored lint warnings
* Rename controls and improve setting enable logic
* Move settings dialog to new lib
* Rename dialog to dialogs
* Include .ui files for GUI lib and include autogen headers in exe
* Unit test settings dialog
* Fix lint errors
* Update ChangeLog
* Fixed test name
* Add debug messages
* Tweak message
* Logging for CI issue
* Revert "Logging for CI issue"
This reverts commit 124b2c1acd778f1e422057e203436582fe12d147.
* Revert "Add debug messages"
This reverts commit 39b6a06c716965e0a8199bf34b6652861874cb28.
* Add Windows compiler error
* Exclude test on Windows
* Fixed menus
* Parse string to long for date
* Change time limited logic
* Restore time limit logic
* Remove qglobal.h includes
* Remove warning
* Fixed tests to work with 0 value
* Update ChangeLog
* Move screen config files to new GUI lib
* Fixed bugs in config dialog related to service checkbox
* Test status tip
* Revert "Test status tip"
This reverts commit d11ad5bc22dab7edcf7ef0b3baada2fce240398a.
* Explain why service disabled
* Corrected client error message (written by non-native English writer) to make the message easier to understand for native English speakers
* Clearer logic
* Improve readability
* Coverage for 'add client' and client error messages
* Coverage for `Screen` class
* Clarify test names
* Use `const QString &` for backward compatibility
* Fixed lint warnings
* Prevent return paths after qFatal
* Use auto and abort to solve lint warnings
* Remove unused fake error
* Make operator hidden friend
* Remove redundant access specifier
* Convert int explicitly
* Swap && logic for linter
* Update ChangeLog
* Also ignore `command_pre` for Fedora itself
* Improve warning message
* Fixed layout issues on main window
* Restore fusion theme for Windows dark mode
* Further correct main window layout
* Set CWD for launch on Windows to same dir as .env
* Use signals for tray icon instead of callback
* Reduce complexity for setting tray icon
* Further reduce tray icon complexity
* Reduce tray retry time
* Fixed tray not showing on macOS
* Refactor function names
* Move tray icon to lib
* Decouple server connection class
* Move server connection to lib
* Move client config to lib
* Remove redundant forward declarations
* Fixed some namespaces in the new lib
* Move core process code to new class
* Improve member names on new process class
* Remove copy/pasta code
* Move OSX helpers to lib
* Add .mm to lib config
* Fixed copyright
* Improve reliability of log line handling
* Fixed TLS certificate generate bugs
* Remove client list
* Refactor core process handling to fix various problems
* Fixed process/connection status bugs
* Fixed function signature issue on macOS
* Fixed override warnings
* Fixed string format warning
* Save `wasStarted` state and use that instead
* Use only filename in dialog
* Use lambda for simple slot
* Scroll to bottom if at bottome
* Set value based on position before text added and set horizontal scroll too
* Add 1px tollerance for Linux
* Simplify start/stop mutex
* Always stop service on restart
* Increase scroll bottom threshold to 2
* Log warning instead of critical
* Fixed long-standing dir CD-up hack
* Remove include
* Remove include
* Fixed rogue dumbisense includes
* Account for optional distro_like
* Add QAction include to solve incomplete type
* Remove rogue #pragma
* Static cast log value
* Solve event queue delete warning
* Fixed integ test on Windows 10
* Reduce enum verbosity
* Use static instance instead of global
* Make function const
* Use unique_ptr instead of new and delete, and made some functions const
* Fixed smart pointer use
* Fixed variable shadowing
* Fixed wrong use of using
* Fixed missing namespace using
* Simplify TLS error handling
* Improve UX around certificate errors and success
* Decouple app config from core process through interface
* First iteration of core process test
* Mark dtor as override
* Rename attach launch entry
* Add TODO
* Create proxy for process
* Move IPC client to deps
* Fixed warnings
* Reorganize new GUI lib dir structure
* Update includes to reflect new paths
* Reorg GUI tests
* Abstract IPC client
* Refactor about screen
* Fixed .ui warnings
* Remove redundant include
* Fixed typo
* Fixed typos and add spelling
* Fixed misleading function name
* Improve comment
* Improve code coverage for core process
* Remove noisy log line
* Make global const
* Use default dtor
* Use vector instead of new
* Make ctor explicit
* Make ctor explicit (2)
* Use enum class
* Fixed bad enum
* Stub out core tool
* Stub out dir operation
* Extract byte functions
* Add missing return path
* Simplify byte/int functions
* Fix truncation
* Use ctor member assignment
* Fixed segfault in process proxy
* Fixed print warning
* Make function const
* Cleanup header
* Fixed missing name
* Update ChangeLog
* Make more functions const
* Add RHEL image
* Use Fedora config for RHEL
* Use script to activate RHEL
* Mirror mount args
* Set RHEL username and password
* Pass RHEL build args
* Pass RHEL login by file
* Use RHEL 9 for newer Python
* Source RHEL login
* Add case for RHEL Python deps
* Add `--deactivate`
* Do PIP user install
* Upgrade PIP
* Add RHEL config
* Introduce 'command-pre'
* Inherit fedora deps for RHEL and only strip sudo on non-empty command
* Add RHEL 9 runner
* Use RHEL 9 codeready
* Add AlmaLinux EL9
* Add support for RHEL-like
* Add EPEL for Alma
* Enable power tools on Alma
* Fix missing semicolon
* Install EPEL before power tools
* Inherit Alma deps from RHEL
* Switch from `powertools` to `crb`
* Abandon RHEL for now (no Qt 6 support)
* Don't pass required when getting distro key
* Correct key name for Rocky Linux
* Add Repology badge
* Restore original `build-push-action`
* Exclude unsupported Repology entries
* Update ChangeLog
* WIP: Show dev thanks message
* Improve error messages and guard license code
* Print core command
* Allow license tests when licensing disabled by default
* Don't check invalid serial key
* Fixed typo
* Add error checking
* Use shared ptr instead of static deps
* Actually save and load the setting
* Add dev thanks vars to CI
* Show thanks message after connected
* Refactor hack-job of local/global save/load to remove coupling and use Qt events system
* Simplify config loading
* Overloads for optionals
* Fixed global config scope not loaded
* Save message state before showing to avoid multiple messages
* Update ChangeLog
* Fixed lint warnings
* Make function const
* Reduce verbosity
* Remove dead code, show version on start, tidy up lint warnings
* Make product name code safer
* Connect on enter press
* Only show server specific wording when on server
* Add emit commands
* Log info and error
* Remove deaad code
* Remove test member
* Disable start context menu action unless usable
* Show more relvant connect message
* Fixed close to tray not applied, and simplified restart core logic
* Remove redundant include
* Add QML and QtQuick deps
* Keep only Qt declarative
* Fixed delcarative package name
* Use `qt6-qtdeclarative` on OpenSUSE
* Fixed warnings
* Introduce tabs for settings and make some settings easier to understand
* Further reorganization of settings UI
* Revert config.yml
* Show Qt version in config
* Remove custom font
* Improve wording of elevate privs
* Fixed window sizes and default tabs
* Save main window size and position
* Fixed slot warning
* Fixed hacky use of validators
* Make activation cancel more intuitive
* Save window state in dtor and add try-catch to prevent exceptions propagating
* Fixed consistency of fatal messages
* Improve color conssitency and add tooltip
* Clean up styles and weird layout
* Move config files to new gui lib
* Core interface integ tests
* Rename `Config` to `ConfigScopes`
* Add 'Schoeneman' to cspell
* Fixed incorrect `Config` (should be `ConfigScopes`)
* Fixed typo
* Missed a spot
* Delete accidentally re-added file
* Fixed formatting
* Add short opt
* Coverage for `AppConfig`
* Update ChangeLog
* Remove redundant includes
* Fixed date
* Remove rogue include
* Move integ test to corredt place and re-enable tests
* Depend on `poll.h` (removes support for non-POSIX systems)
* Only build tests for each arch
* Move back to unit tests (poll is mocked)
* Better error message for valgrind not found
* Simplify dependency injection for BSD sockets poll test
* Improve test readability for BSD net poll
* Split out 2-in-1 test for `isAnyAddr`
* Stub out sleep function
* Improve coverage for pollSocket
* Use gmock ON_CALL instead of manual mock
* Remove unused function signature
* Use conventional deps struct instead of std functional
* Add test for socket data FD set to -1
* Add assertation for adding unblock pipe
* Use older style array alloc
* Less precision around `getNetworkDataForThread` value
* Use `ssize_t` for `ignore`
* Remove unused var
* Update ChangeLog
* Assert `n > 0`
* Add `num > 0` to top assert
* Update ChangeLog
* Only run assert test in debug
* Move integ test to corredt place and re-enable tests
* Depend on `poll.h` (removes support for non-POSIX systems)
* Only build tests for each arch
* Move back to unit tests (poll is mocked)
* Better error message for valgrind not found
* Simplify dependency injection for BSD sockets poll test
* Improve test readability for BSD net poll
* Split out 2-in-1 test for `isAnyAddr`
* Stub out sleep function
* Improve coverage for pollSocket
* Use gmock ON_CALL instead of manual mock
* Remove unused function signature
* Use conventional deps struct instead of std functional
* Add test for socket data FD set to -1
* Add assertation for adding unblock pipe
* Use older style array alloc
* Less precision around `getNetworkDataForThread` value
* Use `ssize_t` for `ignore`
* Remove unused var
* Update ChangeLog