phosh (0.21.1) experimental; urgency=medium

  [ Guido Günther ]
  * screen-saver-manager: Shorten DBus names.
    Make it match the PhoshDBusLoginSession proxy.
  * screensaver-manager: Use cancellable.
    This makes sure we cancel pending calls on shutdown and allows
    us to drop some refs/unrefs.
  * packaging: Ship NEWS.
    It's a short summary of upstream changes.
  * packaging: Update copyright.
    This got improved quite a bit so lets fetch this upstream too
    to minimize the delta.
  * packaging: Fix postinst interpreter
  * event-list: Use plain week day.
    This matches the designs and helps languages that would otherwise
    need a more complex pattern.
  * upcoming-events: Use ngettext for different plural forms
  * Update libcall-ui to 0.0.5.
    There aren't any breaking changes but the style refresh
    makes longer strings fit way better.
  * log: Track log domains instead of passing it to the handler as user data.
  * ci: Update cross image. This allows the i386 build to pass again
  * screen-saver-manager: Shorten DBus names.
  * shell: Avoid screen-saver singleton.
  * monitor-manager: Add method to set power-save mode of all monitors
  * Move blank on presence status change to screen-saver.
    This was on the LockscreenManager before but for blanking
    only we want it on the screensaver.

  [ Evangelos Ribeiro Tzaras ]
  * packaging: Mark phosh-doc as Multi-Arch:foreign (was all)
  * log: Guard against setting g_log_set_writer_func() multiple times.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/841
  * shell: Tweak phosh_shell_set_state() debug message

  [ Fiona Klute ]
  * util: Don't use G_REGEX_JAVASCRIPT_COMPAT.
    G_REGEX_JAVASCRIPT_COMPAT is unsupported as of glib 2.74 and
    not needed for the regex at hand.
    This works around a crash triggered by glib's switch to pcre2.
    See https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2920

  [ Sam Hewitt ]
  * style: Overview & appgrid fixes for high contrast

  [ Zurab Kargareteli ]
  * Update Georgian translation

  [ Danial Behzadi ]
  * Update Persian translation

  [ Anders Jonsson ]
  * Update Swedish translation

  [ Emin Tufan Çetin ]
  * Update Turkish translation

  [ Piotr Drąg ]
  * Update Polish translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Goran Vidović ]
  * Update Croatian translation

  [ Aleksandr Melman ]
  * Update Russian translation

  [ Vittorio Monti ]
  * Update Italian translation

  [ Марко Костић ]
  * Update Serbian translation

  [ Jiri Grönroos ]
  * Update Finnish translation

  [ Daniel Șerbănescu ]
  * Update Romanian translation

  [ Yosef Or Boczko ]
  * Update Hebrew translation

  [ Jürgen Benvenuti ]
  * Update German translation

  [ Rūdolfs Mazurs ]
  * Add Latvian translation

  [ Martin ]
  * Update Slovenian translation

 -- Guido Günther <agx@sigxcpu.org>  Mon, 26 Sep 2022 11:19:53 +0200

phosh (0.21.0) experimental; urgency=medium

  [ Evangelos Ribeiro Tzaras ]
  * Update libcall-ui.
    This brings some UX improvements for the call display and updated
    translations.

  [ Guido Günther ]
  * shell-manager: Simplify include
  * shell-manager: Report version over DBus.
    Use GNOME_PLATFORM_VERSION and phosh's version on recent GNOME and
    fall back to gnome-desktop XML for older versions.
    Thanks to Jeremy Bicha for bringing this up.
  * gitlab-ci: Update container.
    Drop several workarounds to fetch recent phoc and just get it from
    unstable until it migrates to testing.
  * ambient: Set array size to 0.
    A bit simpler than removing elements
  * ambient: Clear array when we unclaim the sensor.
    This makes sure we don't start with a partially filled array
    claiming it again
  * ambient: Make sure to stop callback and unref array.
    Otherwise we leak on shell shutdown.
  * ambient: Claim / unclaim the sensor on shell unblank / blank.
    This makes sure the sensor chip can sleep when the screen is off
    (and hence any theme switching is useless)
  * screenshot-manager: Capture all outputs.
    So far we only grabbed the primary one.
  * sceenshot-manager: Handle grabbing a screen area.
    This allows the "Selection" button in gnome-screenshot to work.
    We use the slurp tool for that.
  * d/control: Recommend slurp.
    Used for marking the screenshot area
  * tools: Add helper to take screenshots
  * screencopy-manager: Avoid stdout.
    This trips up alpine's compiler
  * screenshot-manager: Fall back to g_memdup for older glib.
    Can be removed once we can assume 2.68.
  * libcall-ui: Update libcall-ui.
    This unbreaks the lock screen by moving to a commit
    that includes
    https://gitlab.gnome.org/World/Phosh/libcall-ui/-/merge_requests/55
  * gitignore: Ignore packaging directories
  * build: Drop -DHAVE_CONFIG.H.
    Fixes b5b03b0c0 ("build: Rename config.h to phosh-config.h")
  * build/gtk-list-models: Make them available in other dirs.
    Use file() rather than relative paths and introduce variable
    for include directories.
  * build: Move app id to phosh-config.h.
    This makes it available for other services as well
  * ci: Update build-deps.
    Update the build deps for Debian builds so we catch new ones added in
    MRs.
    Things got a bit simpler now that recent phoc is in bookworm.
  * ci: Add eds-dev to alpine build-deps
  * Add gnome-shell's calendar server.
    Import the whole folder as of 2c89b62247cf65a806173c901334e18671f67440
    before making any changes.
  * calendar-server: Drop unused files
  * calendar-server: Fix build
  * calendar-server: Don't shadow local variable
  * calendar-server: Don't hardcode either phosh nor gnome-shell.
    Will hopefully allow to share the code in the future.
  * calendar-server: Handle NULL zone
  * calendar-server: Use SPDX-License-Identifier
  * calendar-server: Add color to events.
    We add them as additional hint to each event. Tracking color
    changes will be a follow up.
  * debian: Install calendar-server and it's dependencies
  * plugins: Add an upcoming events plugin.
    The upcoming-events plugin implements the phosh-lockscreen-widget
    extension point so it can be displayed on the lock screen. It shows the
    upcoming events during the next 7 days.  Includes style fixes by Sam
    Hewitt
  * tools: Enable upcoming-events plugin
  * tools: Don't use magic constant gtk style priority
  * main: Drop unused variable
  * ci: Exclude autogenerated and imported sources
  * plugin-loader: Add and use property getters.
    Eases adding tests
  * tests: Test plugin loader.
    We skip that under ASAN as plugins aren't found in the ASAN build.
  * ci: Drop Needs: for po and license checks.
    They don't need to wait for a build. This gives gitlab-ci more
    room to schedule jobs as it sees fit.
  * ci: Avoid artifact downloads for jobs that don't need it.
    This saves ci resources.
    Fixes: f4b8daec ("ci: Drop Needs: for po and license checks")
  * calendar: Add plugin information.
    This allows us to provide description, etc. Since we use keyfiles we can
    use the same keys as in desktop files to leverage the translation
    system.
  * debian: Install plugin info
  * upcoming-events: Drop underscore from plugin path.
    This makes it match the name.
  * upcoming-events: Add plugin information
  * widget-box: Don't load widgets twice
    phosh_widget_box_set_plugins() already loads them.
  * widget-box: Add a placeholder page when a plugin could not be found
  * widget-box: Drop define from printf
  * tools: Add a nonexistent plugin.
    This allows to easily check the missing plugin page

  [ Sebastian Krzyszkowiak ]
  * overview: Only focus an activity on page change if it's not focused.
    Fixes #818

  [ Emin Tufan Çetin ]
  * Update Turkish translation

  [ Balázs Úr ]
  * Update Hungarian translation

  [ Jiri Grönroos ]
  * Update Finnish translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Goran Vidović ]
  * Update Croatian translation

 -- Guido Günther <agx@sigxcpu.org>  Wed, 31 Aug 2022 11:33:08 +0200

phosh (0.20.0) experimental; urgency=medium

  [ Guido Günther ]
  * media-player: Don't forget to clear cancellable.
    We did cancel it but didn't dispose it yet.
  * Switch to HighContrast based on ambient sensor readings.
    Add an automatic high contrast toggle that allows to switch
    to HC automatically based on the current light level.
  * settings: Drop superfluous can-focus properties
  * shell: Move style sheet getter to seprate function.
  * tests: Add simple test to load stylesheet.
    Stylesheet changes trigger warnings ever so often, add a test
    to catch these early.
  * d/control: Bump phoc dependency.
    Needed for
    https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1115
    (Handle draggable-layer sizing on monitor mode changes)
  * home: Focus app search on application-view action.
    The application-view action (triggered by
    KEYBINDING_KEY_TOGGLE_APPLICATION_VIEW (super-a)) is supposed to focus
    the app search. This got broken when moving to dragable layer surfaces.
    Fixes: 22b03f7f2 ("home: Make it a draggable layer surface")

  [ Sebastian Krzyszkowiak ]
  * lockscreen: Use page-changed signal when appropriate
    notify::position sometimes ends up sending starting event with position
    of the page that's being switched away from, which made us execute handlers
    that should only be called when switching into a new page. Fix that by
    using page-changed signal when appropriate - timer handling still uses
    notify::position since it needs to react to scrolling just being started.
    Fixes #664
  * lockscreen: Allow show_unlock_page to execute mid-transition.
    Otherwise it feels like the key event is missed when the user starts typing
    while page switch is still being animated.
  * lockscreen: Clear input right away when pressing ESC.
    It gets cleared by page-changed handler, but that happens only at the end
    of the scroll animation. If the user presses ESC and then quickly starts
    to type again, we would counter-intuitively end up appending to already
    filled up entry.

  [ Sam Hewitt ]
  * style: Fix osd using hardcoded colors
  * style: Fix notifications in high contrast

 -- Guido Günther <agx@sigxcpu.org>  Wed, 03 Aug 2022 12:32:34 +0200

phosh (0.20.0~beta3) experimental; urgency=medium

  [ Guido Günther ]
  * lockscreen: Drop am/pm from time formats (Closes: #103)
  * data: Install and add icon to desktop file.
    This will allow us to use it in e.g. phosh-mobile-settings panels.
  * tests: Allow for phosh's icon.
  * build: Adjust to polkit version changes.
  * build: Rename config.h to phosh-config.h.
    Otherwise we end up including config.h from elsewhere e.g. gvc.
  * testlib: Kill compositor on SIG{ABRT,SEGV,TRAP}
  * drag-surface: Add threshold getter. For symmetrie with the setter.
  * drag-surface: Remove drag_surface_new (). The created object is not very
    useful as we need to setup layer-surface too.
  * drag-surface: Fix argument type. Fold margins are integers.
  * tests: Add drag surface test.
    This way we at test the setters and getters.
    Fixes: 578a666f7fb69553bdf82ff8ab390467ab25165f
  * tests: Don't change signal handlers when ASAN is in use.
    ASAN wants to tweak these so don't touch them in these cases.
  * build: Abort post-install on missing arguments.
  * gitignore: Ignore i18n related generated files
  * lockscreen: Avoid some keyboard filtering when not on unlock page.
    This allows for keyboard navigation with the upcoming lockscreen plugins
    and emergency call support.
  * Add widget box to lock screen.
    The widget box loads plugins that implement the phosh-lockscreen-widget
    extension point and puts them on the lock screen.
    Swiping to the left switches to the plugins if at least one is enabled.
  * build: Generate module cache on install
  * tools: Add standalone widget-box.
    This allows to test the lock screen plugins without
    running phosh itself.
  * plugins: Add minimalistic calendar plugin.
    It implements the phosh-lockscreen-widget extension point. It's
    main purpose is to have a minimalistic example.
  * debian: Install plugins.
    We use an extra binary package so people can easily get rid of
    plugins and their dependencies. It will also help splitting things
    into a separate repo later.
  * debian: Add trigger for plugin directory.
    Run gio-querymodules to build the cache. Most of this copied
    from Debian's glib package.
  * monitor-manager: Drop useless ref.
    We unref right away anyway (by automatic cleanup) at the end of the
    function
  * monitor-manager: Make different enum types explicit.
    PhoshMonitorTransform and wl_output_transform have the same values
    but don't convert implicitly.
  * monitor: Add helper to detect "tilted" transforms.
    We consider a transform to tilt the display if it changes the
    display orientation from portrait to landscape or vice versa.
  * head: Make header private.
    PhoshHead should only be used by PhoshMonitorManager (and tests).  We
    had it in the comments, reflect it in the file name too.
  * monitor-manager: Move transform setting to PhoshHead.
    It only affects the heads which will ease testing.
  * monitor-manager: Adjust layout when rotating an output.
    When rotating an output we need to adjust outputs left and below the
    rotated output to avoids gaps or overlaps in the layout.
    We shift all these heads whether they're currently enabled or not.

  [ Sam Hewitt ]
  * icons: Add symbolic icon for Phosh

  [ Sebastian Krzyszkowiak ]
  * tests/stubs: Add phosh_shell_get_docked
  * overview: Raise toplevels on activity scrolling.
  * shell: Don't fold the top panel and keyboard on unfolding home screen.
    This isn't necessary anymore.
  * ui/lockscreen: Set the PIN entry to be initially insensitive.
    We change sensitivity based on carousel page in C code, but
    the initial state stayed out of sync, which could cause
    the keyboard to pop up right after locking the screen.
    Fixes: 5300ba2ce ("lockscreen: Use entry focus to request OSK")
  * stylesheet: Remove background from keypad's focused buttons.
    Focus doesn't do much there as the lockscreen intercepts keyboard
    input by itself, so don't display any visible focus indication
    to not confuse users.
  * lockscreen: Focus PIN entry on carousel page change when OSK is on.
  * lockscreen: Focus PIN entry regardless of OSK status.
    Won't hurt, but seems like a good idea that may help accessibility tools.
  * stylesheet: Apply lockscreen PIN entry styles also to disabled state.
    Otherwise caret-color may end up being animated when toggling sensitivity.
  * home: Remove duplicated "unfold on no activities" handling.
    It's already taken care of by PhoshShell.
  * shell: Only fold the home screen when the first toplevel is added.
    Folding when any window appears can get annoying if the user unfolds
    the home screen while waiting for an app to launch (for example to launch
    another app simultaneously).
  * home: Don't (un)fold while being dragged.
    Don't forcefully pull the surface out from under the user's finger.
  * overview: Focus the activity on carousel page change.
    Without this, we may end up scrolling back to some previously
    focused activity on carousel focus if the active activity has
    changed while the carousel wasn't focused.
  * overview: Focus the activity right away when scrolling to it.
    This fixes the same issue as the previous commit, but in cases
    where scrolling has been invoked programmatically by phosh and
    the animation hasn't finished before PhoshHome gained focus.

  [ Alexander Mikhaylenko ]
  * docked-manager: Update gtk4 is-phone setting too.
    Since gtk4 needs to be parallel-installable with gtk3, it ships its own
    schema. Change it as well.

  [ Efstathios Iosifidis ]
  * Update Greek translation

  [ Vittorio Monti ]
  * Update Italian translation

  [ Мирослав Николић ]
  * Update Serbian translation

  [ Zurab Kargareteli ]
  * Update Georgian translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 19 Jul 2022 09:52:36 +0200

phosh (0.20.0~beta2) experimental; urgency=medium

  [ Guido Günther ]
  * screen-saver-manager: Lock screen when suspending.
    This avoids seeing the unlocked screen for a moment on resume.
  * run: Add --args when using gdb.
    This makes sure `-U` isn't parsed by gdb.
    Thanks to Adrien Plazas for pointing this out.
  * shell: Honor modal dialogs and full screen when raising top-bar.
    Just handling the fader isn't enough as we want full screen windows and
    modal dialogs to stretch over the top bar as well.
    We have some more cases like screenshost screen flash but that needs
    proper z-level which we can introduce once the layer-shell-effects is
    in. Same if we want system modal dialogs on the lock screen.
    Fixes: 55bbe5758ba947a1d77c4b75d4424ea8cf4ebac6
    Closes: https://gitlab.gnome.org/World/Phosh/phoc/-/merge_requests/370
  * shell: Don't try to close top-panel when not yet created.
    On start up there's no top-panel so don't try to close it
  * shell: Select top-panel layer based on lock state.
    When the panel gets created we want the overlay layer in case the screen
    is locked, otherwise top layer.
  * idle-manager: Drop primary monitor.
    We don't need it there and just hold a ref that we (so far) never gave
    up again.
  * tools: Add helper to submit a notification.
    Makes it simpler to test notifications style from the command line.
  * data: Indicate that we provide user feedback via audio, led and haptic.
    This will help setting apps to configure this.

  [ Evangelos Ribeiro Tzaras ]
  * Update libcall-ui to v0.0.3.
    Brings some UI tweaks, encryption indicator that is bound to calls
    `encrypted` property, fixes a small issue with libcallaudio usage and
    lots of updated or added translations.

  [ Linus Walleij ]
  * shell: Set monitor when creating rotation manager.
    I had an annoying bug on Samsung phones such as GT-I9070,
    GT-I8160 and GT-I8530 all using DPI displays that did not
    properly instantiate the rotation manager, while
    phones on the same platform using DSI would work fine.
    If the primary monitor has already arrived when the rotation
    manager is instantiated, the monitor does not get assigned to
    the rotation manager.
    This happens of phones such as Samsung GT-I9070 which use
    DPI displays on MCDE that arrive apparently very quickly.
    The same U8500 platforms with DSI displays does not have this
    problem, presumably because the primary monitor arrives
    later.
    This fix was developed working entirely on the target,
    compiling Phoc and Phosh natively on the GT-I9070 dual Cortex-A9
    and iteratively editing, recompiling and testing modifications
    to Phosh on the target itself.

  [ Sebastian Krzyszkowiak ]
  * activity: Emit "resized" signal
    size-allocate can fire despite of allocation not changing at all,
    so add our own signal that checks forchanges to get rid of
    extraneous thumbnail refreshes.
  * util: Add phosh_util_toggle_style_class
  * activity: Add "fullscreen" property
  * toplevel: Add "fullscreen" property
  * overview: Don't draw grey background around fullscreen window's thumbnail
  * top-panel: Crossfade between fold states
  * lockscreen: Use entry focus to request OSK.
    This allows the compositor to make informed decisions about
    when to elevate the keyboard surface above shell.
  * home: Reset overview at the beginning of unfolding.
    This prevents flicker at the end of unfolding animation.
  * overview: Request a thumbnail for foreground activity on reset.
    This reduces the amount of flickering when the thumbnail gets
    updated, especially when OSK hiding is involved.
  * overview: Don't update thumbnails when overview is unfolded.
    We don't do live updates of thumbnails yet, so having them update out of
    sudden but only in some situations makes it look unpolished. We still want
    to update when overview is folded in order to keep cache of thumbnails
    in state that was seen by the user the last time when windows change focus.
  * home: Update keyboard interactivity right away when user starts folding.
    This gets rid of keyboard flicker when folding animation finishes and
    an application that requested input method gets focus back.
  * home: Use a revealer to fade in/out the keyboard button
  * home: Hide the keyboard button right away when starting dragging
  * home: Don't hide the arrow when the surface is being dragged.
    Without this check, the arrow stays hidden during folding with
    no activities until the end of that animation.
  * top-panel: Disable keyboard interactivity while dragged.
    This allows OSK to pop back up earlier when folding, and makes it stay
    visible during unfolding animation or drag.

  [ Pablo Barciela ]
  * app-auth-prompt: Drop unused code
    add_choice_to_gvariant looks at the switch state not at data
    we store on the GObject so this code can go.

  [ Gerben Jan Dijkman ]
  * polkit-auth-agent: Scope cleanup function for PolkitAgentListener.
    Newer polkit defines a cleanup function so avoid it for polkit >= 0.121

  [ Sam Hewitt ]
  * notifications: Layout adjustments
    * put buttons in a horizontal alignment
    * update some label style classes

  [ Yosef Or Boczko ]
  * Update Hebrew translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Anders Jonsson ]
  * Update Swedish translation

  [ Piotr Drąg ]
  * Update Polish translation

  [ Daniel Șerbănescu ]
  * Update Romanian translation

  [ Danial Behzadi ]
  * Update Persian translation

  [ Jiri Grönroos ]
  * Update Finnish translation

  [ Jürgen Benvenuti ]
  * Update German translation

  [ Nathan Follens ]
  * Update Dutch translation

  [ Aleksandr Melman ]
  * Update Russian translation

 -- Guido Günther <agx@sigxcpu.org>  Wed, 15 Jun 2022 14:10:41 +0200

phosh (0.20.0~beta1) experimental; urgency=medium

  [ Guido Günther ]
  * This is a beta release
  * portal-access-manager Sync dialog visibility with locked state.
    Otherwise we can have the dialog pop up on the lock screen.
  * settings: Make ui file match the class name.
    Another ancient inconsistency cleaned up.
  * Add no-notifications icon
  * settings: Mark button label as translatable
  * settings: Add indication when there are no notifications
    (Closes: #744)
  * lockscreen: Fix typo
  * lockscreen: Remove unneeded packaging
  * lockscreen: Name clock and date labels.
    Rather than using a style class name this single instance.
    This allows us to attach style classes in less confusing ways.
  * lockscreen: Move call-ui down by top-panel's height.
    Since the top-bar now takes up space we don't want the back
    button to overlap the top-bar.
    We chose that approach instead of changing the lockscreens exclusive
    zone so that it keeps to extend below the top bar. This will make e.g. a
    transparent top bar work as the background can shine through and also
    make the "centered" property of GtkBoxes on the lock screen still center
    on the screen without having to care for additional padding.
  * top-panel: Move top-panel to overlay layer.
    This allows to show the indicators on the lock screen.
  * top-panel: Prevent unfold when locked.
    We'll enable quick settings access in a separate MR. This will be a bit
    more involved as we need to disable long press, hide notifications, etc.
  * top-panel: Hide clock when shell is locked.
    We have a clock on the lock screen already
  * lockscreen: Drop indicators
  * lockscreen: Adjust clock and data size based on notifications.
    If notifications are present use a smaller clock. (Closes: #640)
  * lockscreen: Add bottom margin to center clock and date
  * lockscreen: Use revealer to show/hide notifications
  * shell: Move lock setting to function.
    This way we can avoid setting it multiple times
  * shell: Use explicit notify for locked property.
    Avoids rerunning code when there aren't any changes.
  * proximity: Add property to track fader status.
    This allows other parts of the shell to perform actions based on
    that.
    We want to move the whole fader handling out of the proximity sensor at
    some point.
  * shell: Hide top-panel when proximity fader is on.
    Since the top-panel uses an exclusive zone and the fader doesn't, the
    top-panel is arranged on top of the fader. Due to this the top-panel
    would still accept input e.g. during phone calls which leads to odd
    results when typing with the ear.
    So hide the top-panel for the moment when the fader is active. Later on
    we can move it one layer down which is a bit nicer but needs the
    corresponding phoc patches to support that.
  * shell: Mirror docked property.
    Easier to access (read) in other places of the shell
  * shell: Document `locked` property
  * shell: Use getter for locked property.
    For consistency.
  * top-panel: Disconnect seat signals.
    Otherwise we might get called after dispose (e.g. after moving
    primary to a new output)
  * top-panel: Show keyboard indicator only in docked mode (Closes: #206)
  * top-panel: Remove packed from indicators box.
    Not needed there.
  * top-panel: Remove can-focus from indicators box.
    Not needed there.
  * batteryinfo: Fix indentation
  * feedbackinfo: Add muted property.
    This allows to hide the icon when 'full' profile is in effect.
  * top-panel: Show feedback indicator (Closes: #284)
  * util: Use GCC diagnostic push.
    This makes sure we restore the old value
  * settings: Add on-lockscreen property.
    Indicates whether settings are currently displayed on the lock screen
    or in the unlocked shell.
    This eases binding bindings in templates.
  * settings: Add a box for the elements not visible on the lock screen.
    Toggle these by the "on-lockscreen" property.
  * settings: Consolidate all g-c-c panel opening in a single location
  * settings: Ignore long press that leads to g-c-c.
    This won't work on lock screen. We can keep the long press on
    the rotation button as this doesn't spawn anything else.
  * settings: Reindent ui file.
    Do this as a separate commit to ease review and rebase
  * top-panel: Hide power button on lock screen.
    We might support that later on but just hide it for now. This will
    change anyway with gestures.
  * Revert "top-panel: Prevent unfold when locked"
    Let's allow for quick settings on the lock screen
    This reverts commit a5beb47745a8632ec3bab3377005a68b009ef2b4.
    (Closes: #603)
  * top-panel: Move power button.
    Move the power button out of the stack that has the size
    of the top-bar. This will allow us to style it properly.
  * top-panel: Style power button.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/331
  * top-panel: Add larger clock when panel is unfolded.
    See e.g. https://gitlab.gnome.org/World/Phosh/phosh/-/issues/331
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/717
  * top-panel: Use property binding for the clock.
    Less code.
  * top-panel: Add lock-screen button.
    See https://gitlab.gnome.org/World/Phosh/phosh/-/issues/331
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/331
  * top-panel: Add arrow.
    This makes it match the mockups more
  * top-panel: Disable power/user button when on lockscreen.
    We do this by introducing a "on-lockscreen" property.
  * top-panel: Remove <packing> from network box.
    Just use the defaults.
    We don't have outstanding changes there so it doesn't create any merge
    conflicts.
  * d/control: Add libxml-utils. This allows to strip blanks.
  * d/control: Add xwayland to test dependencies
  * d/control: Add librsvg2-common.
    This helps to load SVG icons in the tests
  * tests: Disable thumbnail releated test.
    Phoc currently doesn't support this with the headless backend.
    See https://gitlab.gnome.org/World/Phosh/phoc/-/issues/262
  * gitlab-ci: Only run unit test suite on alpine.
    This is more future proof than just skipping the screenshot tests
  * gitlab-ci: Build container without cache.
    This makes sure the container is rebuilt instead of just refreshed.
  * gitlab-ci: Use more caps when running docker container.
    This allows us to run gdb, etc. and we mostly want it for debugging.
  * gitlab-ci: Use newer docker file for builds and tests.
    This makes sure we build against GNOME 42.
  * layer-surface: Use namespace in debug messages.
    This greatly simplifies figuring out which surface this is about.
  * shell: Document phosh_get_usable_area ()
  * shell: Add helper to get whole screen area
  * top-panel: Fix namespace
  * top-panel: Use the full screen height for the top panel.
    For that we reduce the notification's scrolled window minimum height a
    bit as it will expand by itself.
    This prevents the settings menu from expanding beyond the lower screen
    edge in portrait mode (which happened so far when media player and
    notifications were shown).
    Using the fulls screen height is also in line with the designs -
    although it will be a bit black heavy in docked mode. We will need to
    compensate for that e.g. by using less black (and e.g. just blur the
    underlying screen space).
    This is in preparation for the gesture code as the draggable surface also
    uses the full screen height.
  * settings: Set vexpand on the notifications list box.
    Otherwise the initial notification might get cut off if it has multiple
    lines and an action.
  * top-panel: Ease UI file navigation.
    Add some comments
  * top-panel: Fix box_clock indentation.
    When moving elements around we wanted to have as little diff noise as
    possible, fix that up now.
  * proximity: Move fader handling to separate functions.
    Unclutters the code but also makes sure we always emit the notify
    signal. This wasn't the case in on_proximity_claimed before which
    resulted in the top-bar not showing up again.
  * meson: Add default prefix
  * dbus: Use default prefix for org.freedesktop.hostname1
  * dbus: Use default prefix for org.freedesktop.login1
  * top-panel: Fix inverted on-lockscreen logic
  * top-panel: Hide lock on lock-screen
  * gitlab-ci: Pull phoc 0.13.1 from Debian sid.
    We need that for the tests to pass
  * d/control: Require recent enough phoc.
    We want one that has layer-surface v2 support
  * protocol: Update layer-surface protocol to version 4.
    This is from phoc as of commit e86771e1ffccf216b2c016cf93226cc77e5caab5
  * wayland: Require layer-shell protocol version 2.
    We want to use set_layer.
  * layersurface: Allow to set layer
  * shell: Lower top-panel when proximity fader is on.
    Since the top-panel uses an exclusive zone and the fader doesn't the
    top-panel is arranged on top of the fader. Due to this the top-panel
    would still accept input e.g. during phone calls which leads to odd
    results when typing with the ear.
    Moving the top-panel to another layer is a bit nicer than just hiding
    it since we still have the layer around on the unlocked shell in
    case something goes wrong.
  * gitlab-ci: Deduplicate locale generation
  * home: Fix typo
  * settings: Fix typo
  * top-panel: Update doc string
  * shell: Drop outdated comment
  * build: Untabify tests meson build file
  * overview: Drop properties at their default values
  * layer-surface: Drop constructed()
    We can do all the work in init() which is there anyway.
  * layer-surface: Only emit configured when s.th. changed
  * Add draggable layer surfaces.
    They use the layer-shell-effects protocol to mark themselves draggable in
    one direction.
    Implementation is similar to layer-surface:
      - configure on mapped
      - guard all property setters so they don't fail with a NULL drag_surface
        which is the case during object creation
  * phosh-wayland: Require layer-shell-effects.
    We can't do anything useful without it.
  * phosh-wayland: Make it more clear what's missing
  * util: Add helper to distinguish touch from non touch press/release
  * top-panel: Remove superfluous can-focus properties from network box
  * top-panel: Make it a draggable layer-surface.
    Turn the top-panel into a draggable layer surface. This changes the
    behaviour from hiding/showing certain elements based on folded/unfoleded
    state to having all elements visible all the time having the DragSurface
    determine which bits are currently on screen.
    Since the DragSurfaces has folded and unfolded states by itself we can
    use that instead of keeping track of it on our own.
  * top-panel: Use full screen height.
  * top-panel: Don't trigger feedback.
    We don't want haptic feedback on swipe start and not on click either
    as that will be mouse only.
  * top-panel: Animate arrow
  * top-panel: Handle mouse click via gesture.
    We don't want to trigger fold/unfold on touch events as they'll
    be used for drag.
    This allows us to drop the button completely.
  * settings: Allow to retrieve a suitable drag handle offset.
    Based on the UI elements calculate a suitable draggable area.
    In follow ups we can take the notifications scroll position
    into account as well.
  * top-panel: Update drag-handle based on settings.
    Respect the drag area for touches settings informs us about.
  * home: Make it a draggable layer surface.
    Disable click related handling for now. Will be added
    back in a later commit.
  * home: Don't trigger feedback.
    We don't want haptic feedback on swipe start and not on click either
    as that will be mouse only.
  * home: Drop some unneeded properties.
    Eases GTK4 migration
  * home: Handle mouse click via gesture.
    We don't want to trigger fold/unfold on touch events as they'll
    be used for drag.
    Similar to what we do for the top-bar.
  * settings: Don't close when clearing all notifications.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/760
  * tests: Disable parallel tests with compositor.
    They currently fail when run in parallel. We'll investigate when phoc
    side is merged. Tests don't run much longer as those are quick.
  * gitlab-ci: Use a compositor that can handle gestures.
    Workaround the fact that the phoc side isn't merged yet by grabbing
    a suitable package from CI.
  * top-panel: Reindent ui file.
    Mechanical change now that
    https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/934 is
    merged.
  * home: Reindent ui file.
    Mechanical change now that
    https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/934 is
    merged.
  * bars: Add back 1px border in high contrast.
    Fixes 0ea0cccfd ("home: Handle mouse click via gesture")
  * top-panel: Drop phosh-top-bar style class.
    We have CSS by widget class and name already , we don't need styling per
    class too.
  * top-panel: Emit activated signal instead of folding/unfolding.
    Don't frees the top-panel from managing it's own state again.
    While at that make the signal and method names match our top-panel
    naming.
    Fixes 0ea0cccfd ("home: Handle mouse click via gesture")
  * top-panel: Fix comment
  * shell: Rename panel to top_panel.
    The "panel" term is from the times when we only had a single
    panel at the top but no home panel.
  * notify-manager: Move source layout closer to guidelines.
    We want the signals above the definition and the forward declaration
    for interface right above G_DEFINE_TYPE_WITH_CODE().
  * notify-manager: Drop SIGNAL_ from signal names.
    Consistent with other source files.
  * notify-manager: Emit "notification-activated"
    Emit a signal when a notification gets activated. This allows other
    parts of the shell to react on this.
  * shell: Fold top-panel on screen lock.
    This avoids that the user doesn't look at the (almost empty) settings
    when unblanking the screen.
  * shell: Fold top-panel when a notification gets activated.
    Otherwise we still cover the whole screen
  * util: Add helper to check if gnome-software is available
  * app-grid-button: Add "View Details" entry.
    Helps https://gitlab.gnome.org/World/Phosh/phosh/-/issues/549 as
    gnome-software offers an uninstall button there.
  * d/control: Bump phoc dependency.
    We require at least 0.20.0 due to phoc-layer-shell-effects
  * gitlab-ci: Use phoc 0.20.0.
    We'll update the base images once it migrated

  [ Sebastian Krzyszkowiak ]
  * hks-manager: Set rfkill IOChannel to non-buffered.
    Part of the kernel API is that the messages are delivered as
    separate reads. Buffering can mess it up, so disable it.
    This has been made apparent by kernel commit
    54f586a9153201c6cff55e1f561990c78bd99aa7,
    which makes the reads not exceed RFKILL_EVENT_SIZE_V1 by default.
    We are asking for more, so buffering was doing additional
    read calls on our behalf.
  * top-panel: Set drag theshold to 0.3 for consistency with PhoshHome
  * top-panel: Update PhoshArrow progress during surface drag
  * home: Update PhoshArrow progress during surface drag

  [ Arnaud Ferraris ]
  * phoc.ini: Drop no longer needed scale config.
    As `phoc` is now able to automatically compute the scaling factor based
    on the output's physical size, we no longer need to set this value in
    the default config: `DSI` output should return a correct physical size,
    while `X11` and `WL` outputs advertise a 0x0 mm size, leading phoc to
    fall back to the default scale value (`1`).

  [ Thomas ]
  * Rename call-inbound to call-added.
    Rename the call-inbound signal to call-added and remove the check to see
    whether a call is inbound and display the call independent from its call
    state. This is required for emergency calls to work in #615 and !904.

  [ Sam Hewitt ]
  * osd-window: Update to match new design
    - changes osd window from fullscreen to top-aligned bubble
  * settings: Polish layout when there are not notifications
  * lockscreen: Tweak clock animations
  * lockscreen: Tweak wwan and battery indicator style.
    Close: #272
  * top-panel: Style tweaks.
    Improve clock and button styling

  [ InsanePrawn ]
  * gitlab-ci: Add networkmanager to alpine deps

  [ Pablo Correa Gómez ]
  * monitor-manager: Mark SetOutputCTM call as unimplemented
  * monitor-manager: Implement ApplyMonitorsConfigAllowed property.
    Otherwise the monitor configuration will be locked and not editable
    by the user.
  * monitor: Add "n-gamma-entries" property.
    The gamma-size handling in wlr is inherintly asynchronous. Therefore,
    track the value of "n_gamma_entries" in a property, so consumers
    can be notified of changes
  * monitor-manager: Implement NightLightSupported property.
    Will be needed for GNOME Settings to avoid letting users modify
    Night Light when that is not available.
  * dbus: Pull latest org.gnome.Mutter.DisplayConfig interface

  [ Nathan Sherwood ]
  * build: Use libhandy 1.2 if used as a subproject

  [ Nathan Follens ]
  * Update Dutch translation

  [ Pablo Barciela ]
  * Update Spanish translation

  [ Balázs Úr ]
  * Update Hungarian translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Luna Jernberg ]
  * Update Swedish translation

  [ Vittorio Monti ]
  * Update Italian translation

  [ Emin Tufan Çetin ]
  * Update Turkish translation

  [ Piotr Drąg ]
  * Update Polish translation

  [ Yosef Or Boczko ]
  * Update Hebrew translation

  [ Daniel Șerbănescu ]
  * Update Romanian translation

  [ Danial Behzadi ]
  * Update Persian translation

  [ Quentin PAGÈS ]
  * Add and update Occitan translation

  [ Zurab Kargareteli ]
  * Add Georgian translation

  [ Jiri Grönroos ]
  * Update Finnish translation

  [ Hugo Carvalho ]
  * Update Portuguese translation

 -- Guido Günther <agx@sigxcpu.org>  Mon, 23 May 2022 11:11:56 +0200

phosh (0.17.0) experimental; urgency=medium

  [ Pablo Barciela ]
  * head: Variable 'float' instead 'int' for 'base_scaled_w'
    'floorf' returns 'float'
  * Fix [-Wignored-qualifiers] warnings.
  * meson: Avoid deprecated 'Dependency.get_pkgconfig_variable'
  * Update Spanish translation
  * wwan-info: Drop unused macro

  [ Guido Günther ]
  * layer-surface: Allow to fetch margins.
    This is a bit simpler than using g_object_get() directly.
  * layer-surface: Allow to fetch configured width and height.
    Avoid g_object_get() roundtrip
  * util: Move local_date() from lockscreen.
    It's useful in the top-panel too
  * arrow: Add doc string
  * home: Simplify osk button visibility setting
  * tests: Fix typo
  * wwan: Make source file name match PhoshWwanManager.
    We separate words by '-'.
  * vpn-manager: Drop property name prefix.
    Use the style from HACKING.md
  * settings: Include the abstract WWAN header.
    We don't use any backend specific code here.
  * docs: Add PhoshWwanManager
  * wwan-manager: Add data-enabled property.
    This allows to indicate whether mobile data is enabled
  * wwan-info: Make source file name match PhoshWWanInfo.
    We separate words by '-'.
  * wwan-info: Indicate status of mobile data.
    We use two arrays with icon names so we can still avoid allocations.
    (Closes: #721)
  * quick-settings: Follow g-c-c to Settings rename.
    We have another mention of org.gnome.ControlCenter in
    phosh_get_desktop_app_info_for_app_id() but let's keep that for one more
    iteration to ease upgrades. Settings now reports a sane app-id
    `org.gnome.Settings`.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/742
  * po: Drop es_ES.po. We have es.po
  * build: Document libphosh_{,tool_} sources
  * testlib: Clear heads and modes only when used.
  * debian: Install portal
  * ci: Simplify docker file for i386 builds.
    We don't need any packages from experimental anymore
  * ci: Use bookworm for i386 build too

  [ Sam Hewitt ]
  * data: Add no-data variant of cellular icons

  [ Kai Lüke ]
  * Emit WakeUpScreen signal and reset idle timers on resume.
    When the device resumes from suspend and there is no user input,
    gsd-power remains in the "sleep" state because there is no WakeUpScreen
    signal such that even when the new idle timer that gsd-power registered
    after resume triggers, the transition from "sleep" to "sleep" is
    ignored and the system does not suspend. A second difference to the
    behavior of Mutter/GNOME Shell is that on resume there is no reset of
    the registered idle timers which should also be fixed to ensure that
    Phosh behaves the same.
    Act on the logind PrepareForSleep signal (the resume case) to emit the
    WakeUpScreen signal and reset the idle timers.
    Fixes https://gitlab.gnome.org/World/Phosh/phosh/-/issues/686

  [ Florian Loers ]
  * portal: Add access api.
    Implements org.freedesktop.impl.portal
    Closes #49
  * data: Install phosh.portal.
    This makes xdg-desktop-portal use our access implementation.

  [ free software ]
  * po: Update Spanish translation

  [ Martin ]
  * Update Slovenian translation

  [ Jiri Grönroos ]
  * Update Finnish translation

  [ Мирослав Николић ]
  * Update Serbian translation

  [ Prasanta Hembram ]
  * Add Santali translation

  [ Hugo Carvalho ]
  * Update Portuguese translation

  [ Emin Tufan Çetin ]
  * Update Turkish translation

  [ Piotr Drąg ]
  * Update Polish translation
  * po: Remove .pot file.
    Damned Lies automatically generates one for us.

 -- Guido Günther <agx@sigxcpu.org>  Tue, 22 Mar 2022 15:53:19 +0100

phosh (0.16.0) experimental; urgency=medium

  [ Guido Günther ]
  * Doc updates
  * tools: Add helper to check OSD
  * osd: Drop superfluous packaging. Eases the GTK4 port.
  * osd: Rely on GTK focus defaults. Smaller UI file and eases GTK4 port.
  * gnome-shell-manager: Simplify AcceleratorInfo handling.
    It was allocated outside of grab_single_accelerator() but
    the details weren't ever needed by the callers so keep things
    local so we don't end up leaking again.
  * keypad: Drop superfluous receives-default properties
  * keypad: Drop superfluous can-focus properties
  * doap: Update description
  * sm.puri.OSK0: Name method argument.
    This generates slightly nicer bindings and documents the
    argument in one go.
  * Drop osk-stub.
    Since this grew more and more features and people accidentally installed
    it (#720) move it to a separate repo:
    https://gitlab.gnome.org/guidog/phosh-osk-stub/
  * tools: Build app-buttons when tests are enabled.
    The screenshot tests use it and abort with a timeout if not
    present.
  * editorconfig: Bump line length to 100.
    This is what we've been using for some time
  * background: Don't unref NULL pixbuf.
    If no background was ever set we'd generate a critical otherwise.
  * phosh-wayland: Make sure to destroy all globals.
    Doesn't matter much in practice as they only get created once
  * phosh-wayland: Destroy output globals.
    Otherwise we leak on output hotplug too.
    Since we destroy the output when removing from the hash table
    we no longer need to do so explicitly.
  * layer-surface: Use g_clear_pointer.  Less code and easier to read.
  * tests/timestamp-label: Don't leak str
  * testlib: Finalize PhocWayland before killing the compositor.
    Otherwise we try to cleanup on a dead connection.
  * top-panel: Don't leak action_names.
    We free when the bindings change but not on dispose.
  * monitor-manager: Drop unused variable
  * monitor-manager: Use casts.
    This will warn us if we get the types wrong
  * tests: Generate better backraces with ASAN.
    It makes the ASAN runs way slower but backtraces are more useful with
    `fast_unwind_on_malloc=0`
    Partially fixes 7d5d1c39 ("ci: Drop valgrind run until we have more RAM")
  * leak-suppress: Add GDK leaks.
    Some things aren't cleaned up by GDK in GTK3. Add these.
  * testlib: Drop unused variable
  * tests: Add a stub for head handling.
    Otherwise we'll produce head related leaks in the tests.
  * gitlab-ci: Run phoc based unit tests as well.
    This greatly improves the ASAN coverage
  * tests-monitor-manager: Remove unused variable
  * wifimanager: Don't leak ssid on shutdown
  * test-take-screenshot: Free virtual keyboard
  * tests: Add osd-window unit test
  * fading-label: Add constructor
  * Avoid gchar in multiple places
    We want to use standard C types where possible
  * tests: Add fading label unit test
  * build: Move app-auth-prompt to libphosh_tool. This makes it available in
    the tests
  * tests: Add test for app-auth-prompt
  * keypad: Allow to shuffle buttons. Allow them 0-9 to take random positions
    while any extra keys remain at fixed positions)
    (Closes: #431)
  * lockscreen: Allow to toggle shuffle via gsetting.
    Enable via
       gsettings set sm.puri.phosh.lockscreen shuffle-keypad true
  * channel-bar: Don't expose adjustment.
    Rather emit the change signal directly. This allows us to e.g.
    set the slider to zero on mute while still retaining the old
    adjustment value.
  * channel-bar: Don't emit volume-changed when muted.
    We want to keep the original volume on the stream for unumute
  * settings: Set is-muted when channel is muted.
    This moves the volume slider to zero but unmute still restores the old
    volume.
  * channel-bar: Drop zero adjustment.
    This should have tracked the volume when muted but never did
  * monitor-manager: Fix fd leak.
    See https://gitlab.gnome.org/World/Phosh/phoc/-/issues/257
  * docs: Drop wayand protocols.
    Since they're not using gtk-doc parsing always gave heaps of errors and
    the generated don't have much to say either.
    It would be great to have them documented (e.g. by linking to the
    upstream docs) but we can do that with the switch to gi-docgen.
  * build: Bump meson version to 0.54.0. We'll use the fs module
  * protocols: Use custom_target.
    This reduces the number of targets from ~3700 to ~2500.
  * lockscreen-manager: Fix argument type
  * settings: Fix argument type
  * call: Use PROP_ID to override id, not PROP_DISPLAY_NAME.
    And the other way around.
    Fixes: 70dd1f2825d18a23337fb56dad9c469f2858bc29
  * call: Store all param specs.
    We'll store one in the follow up commit but let's not have
    an array with holes in it.
  * call: Handle active-time property.
    This makes sure the call time doesn't get reset when locking/unlocking
    the shell and call times are in sync with the calls application (except
    when the shell restarts). For that we update to libcall-ui 0.0.2
    Closes: https://gitlab.gnome.org/GNOME/calls/-/issues/322
  * Update libcall-ui to latest main.
    This picks up some fixes on top of 0.0.2 that eases the build
    for downstreams.
  * d/gbp.conf: Ignore Marge-Bot's Part-of:
    We don't want to clutter the changelog with that

  [ Adrien Plazas ]
  * Add PhoshClamp. This will be used to clamp the natural size request of
    buttons.
  * app-grid-button: Limit the natural width request.
    This uses a PhoshClamp to limit the natural width request of the button
    in pixels rather than limiting the label's maximum width in characters.
    This dissociates the width from the font size, giving us more control
    over the button's size, and this allows the button's labels to take more
    width if available.
    This purposefully leaves the indentation broken to ease review. It will
    be fixed in the next commit.
  * app-grid-button: Fix the indentation.
    It was purposefully left broken in the previous commit.
  * Add fribidi dependency.
    This will be used to create a fading label.
  * Add direction helpers using fribidi.
    This will be used to create a fading label. This is copied from
    libhandy, which itself copied it from GTK.
  * Add PhoshFadingLabel.
    This is copied from Libhandy.
  * app-grid-button: Use a fading label.
    This gives the title a single line as desired by the designers to match
    GNOME Shell and iOS, while making more of the title visible and being
    less aggressive than an ellipsis.

  [ Sam Hewitt ]
  * osd-window: Update the layout and refresh the style.
    Reorders the layout of things in the UI and simplify CSS.
  * shell: Update lockscreen and notification styles
    - puts all the styling for the notifications together
    - improved :focus, :active and :hover styles for all buttons
    - update notification bubble style

  [ Pablo Barciela ]
  * notifications: Reduce the scope of some variables
  * phosh-wwan-mm: Reduce the scope of variable 'modem_object_path'
  * layersurface: Reduce the scope of variable 'gdk_window'
  * util: Reduce the scope of variable 'fd'
  * gnome-shell-manager: Fix memory leak.
  * gnome-shell-manager: Assert on action id.
    Makes things more obvious and the static analyzer happy.
  * head: Fix [-Wbad-function-cast] warnings.
  * head: Compare float variables with G_APPROX_VALUE
  * test-head: Compare float variables with G_APPROX_VALUE

  [ Evangelos Ribeiro Tzaras ]
  * gnome-shell-manager: Protect against overflow.
    If we overflow we must not allow for any new grabs since
    we'd otherwise risk to overwrite old ones.

  [ Danial Behzadi ]
  * Update Persian translation

  [ Matheus Barbosa ]
  * Update Brazilian Portuguese translation

  [ Fran Dieguez ]
  * Add Galician translation

  [ Yosef Or Boczko ]
  * Update Hebrew translation

  [ Marc Riera ]
  * Update Catalan translation

  [ Daniel Șerbănescu ]
  * Update Romanian translation

 -- Guido Günther <agx@sigxcpu.org>  Wed, 23 Feb 2022 16:57:35 +0100

phosh (0.15.0) experimental; urgency=medium

  [ Guido Günther ]
  * wifimanager: Create NetworkAgent async.
    This avoids a `g_main_loop_run` in the sync init.
  * monitor: Fix indentation
  * doc-check: Allow to specify dir to check
  * doc-check: Avoid whitespace that breaks the check
  * wl-buffer: Move create_shm_file to utils.
    This can be used in multiple places
  * monitor-manager: Use phosh_create_shm_file.
    This fixes a missing error check for the returned fd as well.
  * toplevel-thumbnail: Use phosh_shm_file ()
  * run-command-manager: Fix section name and log domain.
    Drop the additional "dialog-" which is not part or the class name.
  * media-player: Only load file URIs.
    Data from the network needs to be fetched async since it
    can stall. (Closes: #583)
  * testlib: Ignore warnings and criticals from the compositor.
    (avoids test failures with older phoc)
  * gitlab-ci: No need to forcibly remove lcov anymore.
    Debian's gcovr doesn't depend on lcov anymore
    (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987818)
  * gitlab-ci: Use newer docker image.
    This doesn't forcibly remove lcov anymore which makes e.g. adding
    packages easier.
  * system-prompt: Handle mnemonic in choice label.
    Some of the prompt use it (e.g. gpg prompts for "save in password
    manager"). Otherwise we'd just get a leading '_'.
    Fixes: de1b395e ("system-prompt: Make sure the choice label wraps")
  * system-prompt: Use consistent spacing.  We use 6px between label and
    button.
  * toplevel-thumnail: Drop flag check
    phoc <= 0.10.0 sent y_invert although we didn't use it. Phoc
    >= 11.0 doesn't send it triggering the critical so drop it.
  * run: Drop gnome session setup.
    Most of the time people want phosh+phoc so the session just causes
    trouble. We can drop it and people can needing a session can just fire
    it up. Adjust the README accordingly.
  * run: Always start unlocked.
    Running nested is the main use case and one usually wants an
    unlocked shell there so run unlocked by default.
    If people want to run locked they can pass '-L'.
    Adjust docs accordingly
  * README: Drop install step.  One can run fine out of the source tree and
    this avoids spreading files all over /usr/local.
  * README: Make phoc config the first argument.
    Makes it easier to edit phosh's run options
  * README: Use a screenshot of the unlocked shell.
    Since this is what we're launching in the example above.
  * run: Make it simple to override debugging.
    While full debugging is often useful sometimes one wants to limit to
    certain modules so honor a set `G_MESSAGES_DEBUG`.
  * README: Use ```sh for shell snippets.
    Be consistent. Also drop leading whitespace to ease copy/paste.
  * README: Fix path to gitlab-ci file
  * README: Drop section on libhandy.  It can be used as a subproject
  * run-command-dialog: Split submitted and cancelled signal.
    This will simplify processing when we handle errors better.
  * run-command-manager: Fix indentation
  * run-command-manager: Return success/failure when running command.
    Swap success/failure case while at that to avoid a negated expression.
  * run-command-dialog: Drop unneeded can-focus properties
  * run-command-{dialog,manager}: Show error message when command failed
  * run-command-dialog: Use on_ prefix consistently.  We allow for both
    (prefering `on_`) but don't want to mix in the same class.
  * background: Allow absolute paths too.
    When e.g. gnome-photos sets a background it uses an absolute path.
  * util: Add helper to markup escape text.
    This either escapes all markup or preserves elements allowed
    via the notification spec in a notification body. Based on
    what gnome-shell does as of commit
    919c4cf3d5657dd93f0c14c21a30071b8e90f6e2. Bugs introduced are
    my own.
  * notify-manager: Escape notification bodies.
    Otherwise bodies with markup would silently be dropped.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/690
  * system-modal-dialog: Mark swipe-away-bin as vertical
  * stylesheet: Sort colors alphabetically.
    Makes things easier when we add more
  * gitla-ci.yml: Don't build tests when building the docs.
    This brings down compilation time and resource usage and
    the tests don't contribute to the docs atm.
  * system-prompt: Don't access priv before checking the type
  * tests: Name screenshot suite as such.
    The tests aren't manual anyway since they're run by default.
  * Move network-auth related bits out of wifi-manager.
    Other connections types such as VPN want to do auth too
  * network-auth-prompt: Remove unused nmclient
  * network-auth-prompt: Drop custom Esc-key handler.
    Rather only use the one from system-auth-prompt since that is also
    wired up to properly cancel the network-auth request via
    `on_dialog_canceled()`.
    Otherwise e.g. VPN auth prompts can hang up to timeout
  * network-auth-manager: Use cancellable for agent registration too.
    We want to cancel this in case of e.g. early shutdown.
  * network-auth-manager: Use a separate cancellable for registration.
    NM doesn't like if we cancel a successful operation later on rather
    crahes in NMSecrentAgentOld's _register_cancelled_cb since the task data
    is already freed.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/673
  * newtork-auth-manager: Drop unused nmclient.
    Now that network-auth-prompt dropped it we can drop it here too after
    fixing cancellation.
  * contrib: Add vpn plugin related bits.
    Bring over the VPN plugin related bits as from gnome-shell's
    shell-network-agent as of 919c4cf3d5657dd93f0c14c21a30071b8e90f6e2.
  * network-auth-{manager,prompt}: Support VPN authentication.
    Heavily inspired by what NetworkManager's secret handling. Errors
    introduced are my own.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/630
  * network-auth-prompt: Use request_id to check if we're done
  * network-auth-prompt: Don't allow to reuse prompt.
    This allows the the auth-manager to figure out if we're already
    busy.
  * network-auth-manager: Cancel overlapping requests.
    Don't drop them to floor silently anymore. Later on we
    should just put them on a queue and process them one
    after another.
  * wifimanager: Drop unused set_property
  * Add vpn-manager to track the vpn status.
    Minimal implementation, will be expanded once we add a quick setting.
    It will later be used in the quick setting to toggle VPN on/off, etc.
  * shell: Spawn vpn-manager
  * Add vpn-info to display VPN state.
    Minimal implementation, will be expanded once we add a quick setting.
  * top-panel: Add VPN indicator.
    This displays the VPN state in the top-bar.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/631
  * vpn-manager: Handle wireguard connections as VPN connections
  * gitlab-ci: Set defaults.  Let's retry jobs on infra changes, make them
    interruptible and not run "forever".
  * gitlab-ci: Indicate it's a remote include.
  * gitlab-ci: Add MR sanity checks.
    These are taken from mesa and spot things like unsquashed fixups, etc.
    The commit-rules are based on what gnome-shell does.
  * README: Update to match reality.
    The XMPP channel and mailing list are unused so drop these
    together with the broken reference to developer.puri.sm which
    lost some redirects when it got moved recently.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/705
  * session: Swap entries
    xdg-desktop-portal does a left to right lookup - this makes sense as we
    go from specific to generic. So swap the entries.
  * build: Make it easy to build osk-stub conditionally.
    This avoids people installing it accidentally, messing
    up their installs.
  * osk-stub: Uncrustify.
    Reformat so further changes are simple
  * osk-stub: Remove unused variable.
  * osk-stup: Use EXIT_FAILURE.
  * osk-stub: Init gtk and listen to registry.
    This will allow us to hook up the input-metnod protocol
  * osk-stub: Add input-method stub.
    This allows us to trace input-method requests
  * osk-stub: Add an input surface.
  * osk-stub: Animate show/hide of the input surface.
    Do this when it is actually committed
  * osk-stub: Add debug output to intput-surface.
    This makes it easy to see ongoing changes
  * osk-stub: Add force-show debug flag.
    Usually we want to hide the surface when not used. Add a flag to
    always show it so we can trace activate/deactivate better.
  * build: Allow to disable the tools build.
    They are rarely needed but add on the build time so don't
    build them by default but in CI.
  * osk-stub: Indicate GNOMEs screen-keyboard-enabled setting.
  * app-grid-button: Drop unused variable.
  * activity: Allow to activate by keyboard.
    Activate the selected activity when hitting return
    (Closes: #701)
  * settings: Hide docked quick setting when not docked.
    It's only useful when we're there's enough hardware for docked
    mode.
  * settings: Hide torch quick setting when no hardware is found.
    We need to add the flowbox child for that since just hiding the
    QuickSetting won't make the FlowBox give up on the FlowBox Child's
    space.
  * data: Move icons into subdirectory.
    This unclutters data/
  * data: Add icon for disabled vpn.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/979>
  * vpn-manager: Track present and last connection.
    We indicate VPN presence when at least one VPN is configured.
  * settings: Add VPN quick setting.
    We only show it if there's at least on VPN configured. Toggling
    the quick setting either shuts down an active VPN or activates
    the last active one.
  * osd-window: Disable keyboard interactivity.
    We don't want keyboard inut in the OSD anyway but this
    additionally makes sure the focused client doesn't reenable
    text-input potentially unfolding a manually hidden keyboard.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/706
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1001>
  * settings: Print panel name on error.
    We free it in the callback now than after invoking the
    DBus call.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * quick-setting: Use const char * for panel.
    This indicates that we don't transfer any ownership
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * quick-setting: Check return value.
    When the return value is `NULL` an error occured.
    This also tricks the compiler in not treating the variable
    as unused.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * gnome-shell-manager: Drop NULL check
    g_new0() terminates the application if allocation fails
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * monitor-manager: Drop unused variable.
    Fixes a6bab85e ("Allow to switch output configurations")
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * status-icon: Don't leak icon-name.
    When getting the property we phosh_status_icon_get_icon_name()
    which is transfer-full.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * run-command-manager: Avoid unnecessary copy.
    There's no need to build a GPtrArray and turn that into a GStrv
    when we can use the GStrv directly (which also leaked).
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * top-panel: Avoid unnecessary copy.
    There's no need to build a GPtrArray and turn that into a GStrv
    when we can use the GStrv directly.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * tests/mount-notification: Don't leak name.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * tests/util: Don't leak.
    Make sure we free the allocated markup and add macro to make things
    more concise while at that.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * tests/status-icon: Don't leak icon name.
    It's returned as transfer-full.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * tests/notification: Fix leaks.
    The values returned from `g_object_get()` are always allocated.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * tests/notification-source: Fix leak.
    The values returned from `g_object_get()` are always allocated.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * meson: Pass ASAN leak suppression automatically.
    No need handle these manually.
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>
  * gitlab-ci: Run unit tests under ASAN too.
    We currently only run the "pure" unit tests since the other
    ones need more cleanup.
    Partially fixes 7d5d1c39 ("ci: Drop valgrind run until we have more RAM")
    Part-of: <https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/999>

  [ Sebastian Krzyszkowiak ]
  * Switch to wlr-gamma-control protocol (Closes: #62)
  * app-grid: Debounce app search.
  * settings: Set/unset mute when setting output stream volume.

  [ Daniel Șerbănescu ]
  * Update Romanian translation

  [ Rafael Fontenelle ]
  * Update Brazilian Portuguese translation

  [ Pablo Barciela ]
  * Fix [-Wmissing-field-initializers] warnings inside GActionEntry.
  * shell-network-agent: Fix [-Wmissing-field-initializers] warnings.
  * GActionEntry: use designated initializers.

  [ Hugo Carvalho ]
  * Update Portuguese translation

  [ Evangelos Ribeiro Tzaras ]
  * gitlab-ci: docker: Fix conditional.

  [ Fabio Tomat ]
  * Update Friulian translation

  [ PanzerSajt ]
  * lockscreen: Allow to show OSK to enter passwords.
    Add a button to the keypad that unfolds the osk and shows
    a text Entry. This allows for arbitrary passwords

  [ Anders Jonsson ]
  * Update Swedish translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Nathan Follens ]
  * Update Dutch translation

  [ Alexander Mikhaylenko ]
  * swipe-away-bin: Add hide() and reveal()
    Support programmatic revealing and not just removing.
  * swipe-away-bin: Make orientable
  * swipe-away-bin: Add property to allow swipes in the other direction
  * swipe-away-bin: Add reserve-size property
  * panel: Use GtkGestureMultiPress and released signal for closing.
    Make sure we don't interfere with swipes in future.
  * notification-frame: Reimplement activation via GtkGestureMultiPress.
    Unfortunately, in GTK 3 it's not possible to use single click row
    activation together with swipes; they will interfere. Meanwhile, we still
    need activation for keynav, so switch to double click activation and
    implement it manually instead. Use this chance to unify click handling with
    the header.
  * notification-frame: Support swipe-to-remove

  [ Sam Hewitt ]
  * settings: Use speakers icon for volume slider
  * settings: Move media player above notifcations box
  * settings: Add name property to clear all button
  * settings: Add style class to notifications header box
  * media-player: add style class to art
  * lockscreen: Add style classes to icons and text
  * lockscreen: Use full width for noifications and media player
  * stylesheets: GTK overrides for sliders.
    Make them look more like in the current mockups.
  * settings: Adjust quicksettings radii
  * lockscreen: Give the date and time more weight
  * stylesheet: Adjust modal dialogs to mockups.
    Most notably add a margin.
  * overview: remove background and borders from shell scrollbars
    hides unneeded gtk stylings from the scrollbar troughs mainly in the
    overview.
  * overview: Add focus style to the search box
    - remove some gtk styling
    - mirror the focus styling of the search box on desktop shell
  * overview: Improve grid separator styling
    - Add margin to the separator for better visuals
    - Use named colour to draw it so it isn't lost on light theme

  [ Danial Behzadi ]
  * Update Persian translation

  [ Vittorio Monti ]
  * Update Italian translation

  [ Matej Urbančič ]
  * Update Slovenian translation

 -- Guido Günther <agx@sigxcpu.org>  Sun, 23 Jan 2022 13:37:35 +0100

phosh (0.14.1) experimental; urgency=medium

  [ Guido Günther ]
  * Fixup margin-{start,end} vs margin-{left,right}.  The later ones are
    deprecated and complicate the GTK4 migration.
  * osk-manager: Drop `PHOSH_OSK_` prefix from property enum.
    Make it match what we use in HACKING.md
  * osk-manager: Use shell to listen for lock status.
  * osk-button: Make sure we disconnect signals when button goes away.
    When the button gets destroyed we need to disconnect the signals
    from osk-manager.
  * ui: Drop all glade markers.
    These are spread around although files aren't glade edited.
  * wifimanager: Don't drop unimplemented prompts silently.
    Instead of just doing nothing cancel the request so NM doesn't
    end up waiting until we hit a timeout. This mostly affects
    VPN prompts. This makes sure we don't interfere with e.g.
       nmcli c up <myvpnconnection>
    Related https://gitlab.gnome.org/World/Phosh/phosh/-/issues/630
  * app-grid: Ellipsize app filter button.
    This prevents horizontal scrolling when users select large fonts.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/645
  * lockscreen: Remove out of place '>'
    Fixes: 316a65c7 ("lockscreen: Allow to accept incoming calls")
  * Bring over HdyKeypad from libhandy 1.2.2.
    Adjust by dropping unused features. We do this in one commit to keep
    bisection intact. We use phosh-keypad as CSS class to not conflict with
    libhandy's keypad css class.
  * keypad: Derive from GtkGrid.
    GtkBin does not exist in Gtk4 so derive from GtkGrid directly.
    It's o.k. to expose the grid/container API here since this isn't
    a shared lib. This simplifies the GTK4 migration.
    While at that drop make it a non-derivable type for now.
  * dbus: Update calls DBus interface.
    Taken from calls commit 8f9f7311fa7095492c2c900a23610e3b86a874dd
  * call: Add avatar-icon property
  * tests: Use avatar in screenshots.
    We use cat.jpg from gnome-control-center
    License is GPL-2+ which is compatible with the demo app.
  * tests: Screenshot uk locale too.
    It's usually very complete and uses we get a
    good idea about cyrillic language layout.
  * subprojects: Forward to latest libcall-ui.
    This includes the textdomain fixes.
  * tests: Fix translations for call related screen shots
  * debian: Don't install libcall-ui translations.
    They're shipped by calls.
  * d/copyright: Flip sections.
    This makes lintian happy.
  * notify-manager: Set urgency.
    Don't forget to set the urgency when parsing the hints.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/653
  * notify-manager: Don't use a fallback icon for critical notifications.
    See Tobias comment in
    https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/938
  * docked-manager: Ensure mode_changed_cb() sets all values on startup.
    If can_dock is False the mode_changed_cb() triggered from
    docked_manager_constructed() exits early letting the GSettings at their
    previous values. Make sure we always set these initially since we mode
    before e.g.  device shutdown might be different from the mode on boot.
  * build: Drop glib fallback.
    Since we don't require more recent glib than 2.62 we can also drop the
    fallback.
    Fixes: 8f37b6c9 ("tests: Drop g_test option")
  * layersurface: Make debug message more useful
  * shell: Add and use phosh_shell_set_builtin_monitor()
    More descriptive than `on_monitor_added()` and the later will
    do more soon.
  * shell: Simplify by using g_set_object.
    Move clearing and setting to one step that will also handle NULL
    correctly.
  * Allow the primary monitor to be NULL.
    This can happen when all monitors are gone.
    We basically need to make sure we don't create surfaces on gone devices
    but add them once a new monitor shows up.
  * shell: Remove primary-monitor startup workaround.
    Since we handle NULL now we can just catch up once a primary monitor is
    there.
  * shell: Trigger selection of a fallback monitor when all went away.
    When all monitors went away we need to select a new one to enable.
  * shell: Move find_builtin_monitor upwards.
    We'll use it from phosh_set_builtin_monitor soon.
  * shell: Rename phosh_set_builtin_monitor
    use phosh_shell_ prefix as with other methods
  * shell: Update builtin monitor in on_monitor_removed as well.
  * shell: Make sure we pick a new builtin monitor.
    Since monitors get removed at the very end of their live from the list
    of monitors we need to make sure we don't pick the same one when looking
    them up.
  * shell: Move compositor state notification to its own method
  * shell: Use compositor notifications on primary flips.
    When there's no primary monitor left let the compositor know we're in a
    recovering state and notify it when things went back to normal. This
    allows it to fade us in properly.
  * monitor: Split finalize and dispose
  * monitor-manager: Release wayland resources sooner.
    Start disposal of the monitor early so wayland resources are already
    released and hence can be readded when e.g. a display of the same name
    shows up again. This mostly affects wlr-output-power.
  * monitor-manager: Clear pending head states on errors.
    Makes sure there are no pending head state changes when aborting
    a config, this might otherwise leak to other head changes in the
    future e.g. via phosh_monitor_manager_set_monitor_transform().
  * monitor-manager: Make it clear that the we were invoked with invalid data.
    The issue is not that we didn't get a primary monitor but rather that
    the sender didn't specify one.
  * monitor-manager: Fix protocol name in debug message
  * monitor-manager: Allow to select primary that is currently disabled.
  * ci: Always print error logs on failure.
    Makes debugging easier
  * testlib: Print compositor startup message.
    This helps to figure out when it started
  * testlib: Terminate comopsitor on SIGTRAP.
    Currenlty meson tests time out since the test/shell process ends on e.g.
    a SIGTRAP caused by a g_critical () while the compositor process keeps
    running making meson wait until it hits the timeout.
  * po: Remove panel.c from POTFILES.in too.
    Fixes: 08db8d89 ("Rename panel top top-panel")
  * po: Fix POTFILES.skip.
    The syntax didn't make `intltool -m` happy causing the
    check-po test to fail silently.
    Fixes: 0343af09 ("po: Use wildcard to ignore subprojects")
  * run-command: Use 'activate' signal.
    Avoids GDK event filtering.
  * system-prompt: Make sure the choice label wraps.
    Use a separate label where we can set the "wrap" property.

  [ Pablo Barciela ]
  * gnome-shell-manager: Fix show error, inside 'on_bus_acquired' function
  * app-tracker: Fix dereference of a null pointer.
  * notification-content: avoid duplicate break

  [ Hunman ]
  * app-grid: Sort with collation

  [ Dorota Czaplejewicz ]
  * gitlab: Improve bug report template

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Luna Jernberg ]
  * Update Swedish translation

  [ Florian Loers ]
  * Add run-command dialog with Alt+F2 shortcut.
    Closes #610

  [ Anders Jonsson ]
  * Update Swedish translation

  [ Sebastian Krzyszkowiak ]
  * activity: Fix cut out thumbnails.
    Since 117e397da924093573e8dec57649b8615a7b079e, thumbnails were
    often cut out at the bottom. This was because get_scale function
    was checking size of a different widget than before refactoring.
  * ui: Move Activity's 6px bottom margin from GtkButton to Overview's
    Carousel.
    For thumbnail sizing to work correctly, PhoshActivity shouldn't have other
    margins than the ones defined by GtkDrawingArea.
  * overview: Use phosh_shell_get_usable_area for activity aspect ratio.
    Previously we effectively used the aspect ratio of PhoshOverview itself,
    which wasn't exactly the same as the ratio of most maximized applications.
  * activity: Take margin into account in get_preferred_width_for_height.
    The aspect ratio we're interested in is the one of GtkDrawingArea, so to
    get the aspect ratio of whole PhocActivity need to compensate for drawing
    area's margins.
  * activity: Add phosh_activity_get_thumbnail_allocation
  * overview: Request thumbnails based on GtkDrawingArea's size.
    Previously we used the size of whole PhoshActivity there, which isn't the
    same as we now have a bottom margin on GtkDrawingArea.
  * activity: Use GtkDrawingArea's context to determine its background.
    Using PhoshActivity doesn't make much sense there since it can
    already draw its own background.
  * activity: Use CSS to apply background for maximized windows
  * activity: Rename CSS classes, use widget name where possible

  [ Evangelos Ribeiro Tzaras ]
  * subprojects: Forward to latest libcall-ui.
    This includes the UI tweaks and fixes.
  * call: Reindent
  * dbus: Update calls DBus interface.
    From calls revision a28d6946238e46d37d1a750fb9bde70d3254d74b
  * call: Hook up CanDtmf property.
    This controls whether CuiDisplay allows revealing the dialpad.
  * call: Hook up SendDtmf DBus method.
    This sends the dtmf tone to Calls.
  * css: lockscreen: DTMF keypad should respect phoshs background color.
    The keypad is a child of a GtkActionBar in CuiCallDisplay which has the
    background style class set. Setting the background color for the GtkActionBar
    in CSS ensures that phoshs styling is respected.

 -- Guido Günther <agx@sigxcpu.org>  Wed, 01 Dec 2021 18:22:30 +0100

phosh (0.14.0) experimental; urgency=medium

  [ Mohammed Sadiq ]
  * wifimanager: Use hotspot icon if wifi hotspot is active

  [ Guido Günther ]
  * notify-manager: Move schema paths and key defines to header.
    Fixes the leftover from a4a338b70c12a6d0187d7bf9ae9227abf46b767e
  * osd: Hide label when empty.
    This avoids having the OSD out of center when the label is empty.
  * phosh.service: Reduce boot flicker.
    Take over tty1. We currently don't take over quitting plymouth
    but we'll do so once we wire in a display manager.
  * torch-manager: Don't emit a warning when no torch is found.
    This makes running with G_DEBUG=fatal-warnings harder than necessary.
  * system-modal-dialog: Drop `can-focus` proprties that use default value
  * util: Add helper to strip '.desktop' from app_id.
    Needed in several places
  * Add PhoshSplash.
    Splash screen for launching applications. It times out after
    5 seconds if not closed.
  * Add marshalers list.
    We want special marshalers for more complex signal arguments.
  * phosh-private: Update phosh-private protocol from phoc.
    This gives us some more information when apps launch.
  * phosh-private: Emit signals when we receive startup-ids.
    This will allow other parts of the shell to track application
    start.
  * phosh-wayland: Allow to retrieve phosh_private protocol version
  * wayland: Use defines instead of hard coding protocol versions.
    We have multiple places where we check versions of phosh_private,
    use proper defines for readability
  * Add app-tracker.
    This keeps track of spawned apps (via glib's g_app_info) and
    corresponding startup_id's (mostly via gtk_shell1 protcol).
    Additionall we track org.gtk.gio.DesktopAppInfo on DBus
    This allows us to show splash screens for apps that are spawned by other
    processes than the shell itself. E.g.
        gtk4-launch gnome-control-center.desktop
    or when opening a file in nautilus. We only do something if we get a
    desktop file name and a startup id (the later is e.g. not the case when
    processes are spawned via 'gio launch' or gnome-contacts).
  * app-grid-button: Use app-tracker for app launching.
    A button shouldn't care about the details of app launching. Let
    the app-tracker handle that.
  * Add splash-manager.
    The SplashManager listens to app-tracker events and shows/hides
    splash screens as needed.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/183
  * shell: Add and parse debug flags.
    This makes it simpler to test certain aspects of the shell.
  * splash-manager: Only show splash when not docked
  * splash: Allow to prefer dark theme.
    Allow to set the dark/light theme preference during construction.
  * splash-manager: Honor global dark theme preference.
    Although apps can still opt out this way the splash is way more likely
    going to match the launched apps color scheme.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/618
  * monitor: Treat wlroots virtual connector as such`
    The wayland, x11 and headless backends don't correspond to real
    hardware so treat their connectors as virtual.
  * mode-manager: Unclutter external monitor check.
    This makes future additions simpler
  * mode-manager: Handle virtual monitor.
    If a system has a single output and that is virtual we treat it as not
    having external display hardware. This allows to test the undocked
    case more easily with virtual wayland backends like headless, x11 or
    wayland.
    If we want to test docked mode we can add a second output.
  * docked-manager: Treat unknown hardware as undocked.
    If modem-manager doesn't have enough information to set a hardware
    type (no logind, etc) assume undocked rather than docked since
    we want to default to phone mode.
  * tools: Fix paths to CSS.
  * d/control: Add more recommends.
    Add proper fonts and the SVG renderer. This is useful on minimal
    installs like in containers.
  * tests: Use the correct flags when creating DBus proxy.
    There's nothing object manager related there and we create a
    GDBusProxy in the end.
  * build: Add a suite to all tests.
    Ignore manual tests on the alpine build
  * gitlab-ci: Collect junit test reports
    gitlab can handle those for better test failure output.
  * build: Bump required meson to 0.52.0.
    This avoids a warning and 0.56.0 is in Debian stable.
  * media-player: Use cancellable.
    Don't hold a ref across async calls but rather check if the
    operation was cancelled. This makes sure we can properly
    dispose and don't end up in half finished async calls.
  * tests: Drop g_test option.
    Rather check if we're using recent enough glib at runtime
  * screenshot-manager: Assert on g_file_test.
    Just calling it isn't enough.
  * gitlab-ci: Use meson to run the tests.
    Ignore manual tests on alpine
  * README: Update test instructions.
    The manual tests need extra setup so skip those, we also don't
    need extra gtest invocation since some time.
  * tests: Use minimal device resolution for phoc.
    This makes screenshots, etc more useful
  * tests: full-shell tests: Use temporary file for XDG_RUNTIME_DIR.
    This allows to run tests in parallel. They were previosly racing for the
    wayland socket.
  * tests: Run more tests in parallel.
  * gitlab-ci: Switch Debian builds to bookworm.
    We keep the cross build at bullseye for the moment to
    stay out of dependency problems.
  * gitlab-ci: Generate locales needed for the screenshot tests
  * gitlab-ci: Fix registry URL.
    We want the one from the blessed repo not a user's fork.
  * testlib: Init libcallui as well.
    We should init all libs used phosh (that for the "normal" shell get
    inited in phosh's main)
  * testlib: Allow to send modifiers via virtual keyboard as well.
    We use keycodes for those too so users only have to worry about
    KEY_* and not a mixture of wl_keyboard modifiers and keycodes.
  * top-panel: Handle toggle-message-tray keybinding.
    This brings up the settings menu (which contains the message tray)
  * tests: Take screenshots.
    Take screenshots for different locales during CI. This allows for quicker
    validation of how things look in different locales.
  * gitlab-ci: Expose test results and screenshots prominently.
    Add a separate job that takes the screenshots and use a container that has
    some more dependencies so we get the fonts right and images rendered
    correctly.
  * batteryinfo: Show missing battery icon when we can't connect to upower.
    This makes the quick settings look less odd in e.g. tests.
  * batteryinfo: Make widget insensitive without battery.
    No point in having it look available.
  * wifimanager: Always return an icon name.
    We have the `present` property to figure out if wifi is actually
    there so always return a sensible icon name to make it simpler
    for consumers to show something useful.
  * gitlab-ci: Condense all screenshots of a locale into a single image.
    This makes it simpler to get a quick overview.
  * calls-manager: Drop out early on duplicate call ids.
    Should we ever see this we better not reconnect signals etc
    but rater ignore the dupliate id.
  * testlib: Add a simple call mock.
    This can be used whenever we need an incoming call
  * app-tracker: Adjust to "launch-started" DBus API.
    GLib 2.72 emits "launch-started" for spawned and DBus activated apps.
    Track this too and use that instead of "launched" to bring up the splash
    since the later is emitted only once the app is up which is too late for a
    splash.
    There's some backward compatibility code to try get reasonable results
    with current released glib but for DBus acivated apps you really need
    2.72.0.
  * app-trcker: Handle timeouts.
    So far we'd not properly dispose AppState if the app never
    showed up nor failed.
    With this we can drop the timeout handling from the splash.
  * splash: Remove timeout.
    This is now handled by the app-tracker.
  * notifications: Reduce spacing between content and header.
    Fixes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/286
  * monitor: Take mode into account for fractional scale.
    Thanks Pablo Correa Gomez for the analysis
  * splash-manager: Don't leak schema
  * settings: Use headphone icons when headphone is plugged
  * settings: Stop media player playback when headphone gets unplugged.
    We do this form settings since this is always around.
  * media-player: Use rounded buttons
  * Move adaptive apps filter to the bottom.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/628
  * splash: Use same icon shadow in light and dark mode
  * wifimanager: Simplify switch.
  * wifimanager: Use g_set_object to set dev.
    Just so we use the same throughout this file
  * wifimanager: Unref connection on update.
    When there's a new connection make sure we unref the old one and
    disconnect signals. So far we would leak the ref here.
  * wifimanager: Unref connection when there's no active one.
    So far we would leak the ref here. We can also drop the dev->dev check
    since `cleanup_device ()` checks that too and if we cleanup the device we
    want to clean up the AP too since that is bound to the device.
  * media-player: Reset artist/title/url without metadata.
    If we can't get any metadata reset to the defaults. So far
    we'd only reset if we got partial data at least.
  * media-player: Don't clear title and artist when player stops.
    Some players like Shortware don't send new metadata when resuming
    playing after stop if it didn't change. This makes sure we have it still
    around.
    (We also failed to reset the icon)
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/375
  * call: Drop unused include
  * shell: Fix callback signature.
    We don't use that param but it's better to be correct here.
  * protocol: Update to latest phosh-private
  * shell: Notify compositor that shell is ready.
    We still have some blocking calls and fetching all the apps isn't async
    either yet. So delay for a second until we signal to the outer world.
  * d/control: Depend on phoc > 0.9.0.
    This one supports '-S' to wait for the shell.
  * session: Enable shell mode.
    Make phoc wait until phosh attaches before unblanking
    the screen.
  * media-player: Make play button circular
  * media-player: Don't use `-1` as icon size.
    This triggers warnings. Since we want to avoid passing
    GTK_ICON_SIZE invalid or encode in two places set the
    property directly. Upside is that this also works with
    GTK4.
  * media-player: Make play/pause icon a bit smaller.
    Use 24px instead of 32px. The other icons are 16px.
    Closes: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/632
  * activity: Use the correct background style for drawing the background.
    The grey border looks odd otherwise which is even more pronounced in
    high contrast mode.
    Helps: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/629
  * activity: Move the close button over the thumnail.
    Before the mouse hovered close button be outside the thumnail since
    windows aren't all the same width in e.g. docked mode. This calculates
    the margin from the allocated width and the thumbnail's size.
  * activity: Always align thumnails to the top.
    This doesn't affect maximized windows but makes sure the close
    button is on top of the window.

  [ Vittorio Monti ]
  * po: Update Italian translation

  [ Evangelos Ribeiro Tzaras ]
  * proximity: Only act on changes if we claimed the sensor.
    Fixes #624

  [ Oliver Smith ]
  * editorconfig: treat *.ui like xml
  * media-player: add seek buttons.

  [ Florian Loers ]
  * activity: Drop activity labels.
    Remove the label in the activity overlay and move the icon into a centered
    position. Fixes: #330
  * activity: Remove title field.
  * activity: Add icon-dropshadow to activity icon.

  [ Sebastian Krzyszkowiak ]
  * util: Introduce phosh_get_desktop_app_info_for_app_id.
    This replaces phosh_fix_app_id and allows for logic in PhoshActivity
    and PhoshAppTracker to become a bit simpler.
    We get rid of "org.gnome." prefix handling (with one exception of
    g-c-c which apparently keeps non-revDNS desktop filename for
    backwards compatibility) as phoc will now forward application ID
    obtained via gtk-shell, which is used by GTK 3 applications.
    However, we now also check the last component alone and a lowercase
    version in order to increase compatibility with legacy X11 and
    non-GTK applications. Examples of apps that now get correctly
    matched thanks to that include Mumble, Audacity, Blender, Jamulus
    and Darktable.
  * phosh_get_desktop_app_info_for_app_id: Add gnome-usage to mappings

  [ Danial Behzadi ]
  * Update Persian translation

  [ Nathan Follens ]
  * Update Dutch translation

  [ Zander Brown ]
  * Update British English translation

  [ Goran Vidović ]
  * Add Croatian translation

  [ Hugo Carvalho ]
  * Update Portuguese translation

  [ Matej Urbančič ]
  * Add Slovenian translation

  [ Jiri Groenroos ]
  * Update Finnish translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 19 Oct 2021 14:31:17 +0200

phosh (0.13.1) experimental; urgency=medium

  [ Guido Günther ]
  * d/gbp.conf: Switch development branch to main
  * d/control: Bump breaks on gnome-calls.
    Not strictly necessary but makes missing deps easier to detect
  * ci: Add font to alpine image.
    This fixes the overview test crash since pango needs at least
    on font in some versions. Thanks to InsanePrawn for the backtrace.
  * notification-frame: Align timestamp to the end.
    The current center leaves too much space to the right.
  * notify-manager: Add method to close all notifications
  * settings-menu: Add heading to notifications list-box
  * Add callback to clear all notifications (Closes: #570)
  * build: libcall-ui moved to /World/Phosh too.
    Adjust the submodule URL
  * ci: Be verbose when installing alpine deps.
    This makes identifying breackage due to changed versions easier.
  * media-player: Fix button order
  * media-player: Move navigation buttons into a box.
    This makes {first,last}-child styling way simpler
  * media-player: Drop receives-default properties
  * media-player: Remove margin.
    This makes it the same width as notifications instead of slightly
    smaller which looked very odd.
  * media-player: Use the same border radius than notifications.
    Looks odd otherwise
  * media-player: Switch artist and title.
    Left align and dim artist to get closer to designs
    https://gitlab.gnome.org/World/Phosh/phosh/-/issues/543
  * media-player: Drop lockscreen styling.
    Style it the same way we style in settings menu and the notifications.
    Closer to designs in https://gitlab.gnome.org/World/Phosh/phosh/-/issues/543
  * media-player: Improve button layour and styling.
    Use larger play/pause button, move ff and rev a bit closer
    to the center.
    Closer to designs in https://gitlab.gnome.org/World/Phosh/phosh/-/issues/543
  * media-player: Use larger icon.
    Center text artist / song verticaly to it. This looks odd
    with Firefox since it tries to be clever and use 16:9 which
    the gicon aligns renders to the top instead of centered.
  * lockscreen: Use less margin between elements.
    Lower the margin between icons and media player and media player and
    notifications quiet a bit to safe space and look more consistent.
  * Add initial PhoshMountOperation.
    This implements GMountOperation's ask-password to handle th UI bits for
    e.g. encrypted volumes. We can add other methods like `ask_question`
    later on.
  * mount-manager: Use PhoshMountOperation.
    This allows allow for interactive prompts to ask for passwords
    of encrypted volumes.
    With this encrypted volumes can be mounted without going through
    nautilus first. (Closes: #573)
  * shell: Use fractional scale for phosh_shell_get_usable_area too.
    Otherwise fractional scaling is off on the primary display.
    Fixes: 540c85c83e6634a7cf90a4f4276339003f10a352
  * overview: Use fractional monitor scale.
    This will allow us to drop the integer scale completely.
  * monitor: Drop integer scale
  * tests: Add test for head scale calculations
  * monitor-manager: Support fractional scale DisplayConfig.
    This allows to set fractional scale in Settings too. The actual
    calculation is based on what mutter does. (Closes: #479)
  * Revert "monitor-manager: Flip transform"
    This reverts commit 75cad1aaeb76f75b1cd6066392f956e083f6f5ec.
    There's no need to flip the transform with recent wlroots/phoc, we
    end up flipping the upside down in landscape mode otherwise when
    e.g. changing scale.
  * Rename panel top top-panel.
    This makes it match the ui file
  * top-panel: Drop priv.
    No need for that when we're never going to derive.
    Related: #378
  * home: Don't pass on <return> to search bar
    otherwise we end up activating from the search bar twice thus
    launching the apps two times (which  most of the times doesn't
    matter due to the apps single instance pattern but e.g. Firefox
    shows the issue).
    Fixes 60f6a2e157e60a38ad8b8913882ff1e6fea548a3

  [ Mohammed Sadiq ]
  * d/rules: Disable building tests if 'nocheck' set.
    Not building tests reduces the binaries to build by more than half

  [ Pablo Correa Gómez ]
  * feedback-manager: Rotate profiles on touch to quick settings.
    Currently, there exist three different feedback profiles:
    "full", "quiet", "silent", but quick settings touch only
     switches in-between "full" and "silent". Instead, rotate
     from "full" to "quiet" to "silent" and back to "full"

  [ Marc Riera ]
  * Update Catalan translation

  [ Kristjan SCHMIDT ]
  * Update Esperanto translation

  [ Daniel Șerbănescu ]
  * Update Romanian translation

  [ Michael Oppliger ]
  * Update German translation

 -- Guido Günther <agx@sigxcpu.org>  Sat, 28 Aug 2021 08:19:53 +0200

phosh (0.13.0) experimental; urgency=medium

  [ Arnaud Ferraris ]
  * torch-manager: use logind instead of upower for toggling the torch.
    The previous version relies on a downstream upower extension which was
    rejected by upstream[1].
    In order to avoid having to carry downstream packages, this patch
    provides a new implementation, based on udev for device discovery, and
    logind for enabling/disabling the torch.
    [1]: https://gitlab.freedesktop.org/upower/upower/-/merge_requests/50
  * dbus: remove upower torch protocol.
    This is no longer needed with the new torch manager implementation
  * d/control: add build dependency on libgudev.
    This is required by the new torch manager implementation.
  * gitlab-ci: add missing dependency for alpine-based jobs

  [ Guido Günther ]
  * doap: Add gnome userids
  * shell: Select a different style sheet for HighContrast theme.
    The stylesheet is the same as the default one except that
    it has foreground and background colors swapped. This
    allows us to use a high contrast light theme.
    Closes: https://source.puri.sm/Librem5/phosh/-/issues/523
  * css: Drop .phosh-settings-row and .phosh-settings-listboxrow.
    Code using that was removed in
    5e214df154f733088283d2de6406c2d18dc90548
  * css: Drop duplicated properties
  * css: HighContrast: Use a 1px border for panel buttons.
    This makes the shell chrome easy to identify.
  * home: Make keyboard handling a bit more standard.
    Use GDK_EVENT_{PROPAGATE,STOP} and gdk_event_get_keyval and a template
    callback.
  * overview: Focus search when user starts typing (Closes: #564)
  * gitlab-ci: Drop unused vars
  * gitlab-ci.yml: Drop and adjust tags.
    Adjust tags to GNOME's CI
  * gitlab-ci: Publish docs
  * gitlab-ci: Speed up package build.
    Drop the docs now that we have gitlab pages
  * Change URLs to gitlab.gnome.org.
    We also adjust the URLs of projects that are bound to move soon like phoc.
  * README: mention API docs
  * Add dockerfile to create image.
    The image has all the build-deps to speed up build and tests. Based
    on what libadwaita does.
    Use
     .gitlab-ci/run-docker.sh --base=debian-cross build--version 0.0.<date>
     .gitlab-ci/run-docker.sh --base=debian-cross push --version 0.0.<date>
    to update.
  * gitlab-ci: Use custom docker image for most jobs.
    This also does away with the global `before_script:`
  * gitlab-ci: Use prebuilt image for 32bit build too
  * dbus: Update calls protocol.
    This adds the needed bit to accept calls on the lock screen.
  * Add libcall-ui as submodule.
    This allows us to share the call ui between calls and
    phosh without coupling them further.
    To build we also need libcallaudio-dev since that's a
    dependency of libcall-ui.
  * main: Initialize libcall-ui
  * phosh-call: Add DBus based implementation of the call-ui-call interface.
    This wraps the DBus interface in a PhoshCall's object that implements
    CuiCall so it can be used with CuiCallDisplay.
  * lockscreen: Allow to accept incoming calls.
    Use CuiCallDisplay to handle incoming calls.
    Relevent mockups: https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/mobile-shell/lockscreen-calls.png
  * call: Handle can-dtmf.
    This makes sure we keep the dialpad disabled until the
    DBus interface handles it. libcall-ui has all the bits
    already and adding DBus support will be backward compatible.
  * schema: Calls moved to org.gnome.
    Adjust the favorite.
  * Move the calls DBus interface to org.gnome.Calls.
    This changed with the move to upstream GNOME.
  * monitor: Allow to get fractional scale.
    This is derived from the logical size as described in
    https://wayland.app/protocols/xdg-output-unstable-v1#zxdg_output_v1:event:logical_size
  * background: Scale by fractional output scale.
    Scale the background by logical scale instead of what we get
    from xdg_output->scale. This allows the background to scale
    with fractional scaling. (Closes: #338)
  * tests: Stub phosh_shell_get_locked()
    This will be used by PhoshNotifyFeedback and is hence needed
    in the standalone notification (test) server.
  * Move feedback for notifications to a separat class.
    It was o.k. to have it in settings since that was the only long term
    notification store and we just used a single feedback event with
    - notifications also being on the lock screen
    - sending different event feedback
    we don't want to add more complexity to that single notification
    display. This also stops abusing the ListBox's create_row callback to
    handle feedback events.
  * notify-feedback: Adjust event name based on notification category.
    Adjust the emitted feedback based on the notification category¹. We could
    use the sound-name instead but that has the problem that the application
    sometimes has a hard time to figure out what the appropriate event is.
    E.g. `message-missed-instant` and `message-new-instant` are hard to tell
    apart from an application PoV.
    1: https://specifications.freedesktop.org/notification-spec/notification-spec-latest.html
  * panel: Connect to "setting-done" only once.
    No need to connect on every unfold.
  * tests: Add stubs for notify-server-standalone.
    This keeps things compiling
  * notification-content: Allow to show/hide body and actions
  * notification-frame: Add show-body property.
    This allows to show/hide the bodies of contained notifications
  * lockscreen-manager: Allow to scroll to a lock screen page programatically.
    This will be used to scroll to the unlock page when the user activates a
    notification.
  * lockscreen: Display notification summary
  * lockscreen: Add missing guard to public function
  * notify-manager: Trigger scroll to unlock page if shell is locked.
    If the user activates a notification and the shell is locked scroll
    to the unlock page.
  * lockscreen: Handle "show-in-lock-screen" gsetting
  * gresources: Sort icons alphabetically
  * feedback-manager: Use separate icon for quiet mode.
    This makes the current mode easier to identify

  [ Mohammed Sadiq ]
  * panel: Hide power popover on tapping topbar if open.
    If the user taps on the notification bar/panel,
    hide power popover (if open) instead of hiding the panel.
  * panel: Return GDK_EVENT_PROPAGATE in button-press-event handler.
    GDK_EVENT_PROPAGATE documents the purpose better than FALSE

  [ Pablo Correa Gómez ]
  * feedback-manager: Rotate profiles on touch to quick settings.
    Currently, there exist three different feedback profiles:
    "full", "quiet", "silent", but quick settings touch only
     switches in-between "full" and "silent". Instead, rotate
     from "full" to "quiet" to "silent" and back to "full"

  [ Zander Brown ]
  * notifications: Dim icon.
    See https://source.puri.sm/Librem5/phosh/issues/286
  * notifications: Use a bit less space between icon and title.
    See https://source.puri.sm/Librem5/phosh/issues/286

  [ Anders Jonsson ]
  * Update Swedish translation

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Efstathios Iosifidis ]
  * Update Greek translation

  [ Rafael Fontenelle ]
  * Update Brazilian Portuguese translation

  [ Мирослав Николић ]
  * Update Serbian translation

  [ Vittorio Monti ]
  * po: Update Italian translation

 -- Guido Günther <agx@sigxcpu.org>  Mon, 09 Aug 2021 11:06:16 +0200

phosh (0.12.1) byzantium; urgency=medium

  [ Guido Günther ]
  * d/control: Bump phoc recommends.
    Recommend a version that allows us to bind all the interesting
    keys.
  * rotation-manager: Clarify debug message.
    Otherwise it can be confused with the rotation mode
  * rotation-manager: Don't claim accelerometer with orientation-lock.
    This reduces the work for iio-sensor-proxy a lot improving battery life.
  * shell: Move public functions to the end of the file.
    This makes it consistent with HACKING.md
  * shell: Add guards to public functions
  * shell: Protect against lockscreen-manager not being up yet.
    We get the monitors very early and the lockscreen_manager is not yet
    created. Avoid a critical (and potential crash if we wiggle code around
    later on).
  * overview: Only lookup activity if needed.
    No need to lookup the activity if the toplevel didn't get activated.
  * overview: Change activity type.
    This avoids some casting
  * overview: Unset activity when toplevel goes away.
    This prevents us from trying to set a focus on an
    inexistent activity in phosh_overview_reset.
    Fixes: 009177fac12b41d780ffc255bbb1105915407ead
  * location-manager: Unref dbus proxy
  * bt-manager: Unref dbus proxy
  * wwan-mm: Unref modem dbus proxies
  * wwan-mm: Simplify chain up.
    Use same pattern as elsewhere
  * lockscreen-manager Unref session-presence proxy
  * screenshot-manager: Don't hold ref when acquiring the bus.
    Otherwise we never dispose since the ref would only be dropped
    on g_bus_unown_name which is called in dispose.
    Since the manager stays around until shell shutdown this isn't a
    problem.
  * location-manager: Don't hold a ref during name watching.
    Since the unwatch happens in dispose only we'd never drop that ref.
    Since the manager stays around during the shell's lifetime this
    is not a problem.
  * torch-manager: Cancel proxy creation on dispose.
    This makes sure there's no lingering async callbacks.
  * monitor-manager: Adjust DBus naming.
    Use DBus instead of Dbus as with all other protocols and drop
    use PhoshDBus as namespace which we want to use for all protocols
    that don't need an object manager.
    Reindent the interface function arguments while at that.
    Fixes: a749990f0c37c7e361f6c1df945053b0432d0415
  * mode-manager: Avoid warning when DBus operation got cancelled
  * tests: Fix alphabetic ordering
  * testlib: Simplify getting a useful shell object.
    This adds functions to get a compositor, shell and isolated
    session bus for testing which allows us to deduplicate some
    code.
  * test-notify-manager: Use testlib helpers.
    Simplifies the code.
  * test-monitor-manager: Use testlib helpers
  * test-screenshot-manager: Use testlib helpers
  * calls-manager: Move state enum to header file.
    This makes it useable in the tests
  * calls-manager: Don't clear calls hash when name owner goes away
    gio's object-manager sends us proper remove signals for each object.
  * gcovr: Exclude subprojects from coverage.
    We don't bother about glib or gvc test coverate
  * Add support for using glib as a subproject.
    This allows us to run the tests that have our object manager fixes.
  * gitlab-ci: Run extended tests on bullseye.
    Don't bother for the crossbuild since we don't run tests there and this
    would just make build times longer.
    Since we dont't want to build documentation for glib we need to do an
    extra build for gtk-doc that uses system glib.
    This gets simpler again once the next glib is released.
  * calls-manager: Add test.
    We need to preserve DISPLAY for xvfb and set XDG_RUNTIME_DIR since
    g_test_dbus_up unsets those via g_test_dbus_unset.
    This needs https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2120
    to not deadlock.
  * build: It's phosh, not libhandy
  * phosh-wwan: Return NULL not boolean.
    The operator is a string.
  * check-po: Check for ui files too.
    Use an extended regexp so we don't miss ui files
  * po: Add gtk-mount-prompt.ui
  * po: Use wildcard to ignore subprojects.
    This makes sure we don't have to catch up when the subproject changes
  * docs: Add calls DBus protocol
  * HACKING: document that we prefer css names over style classes
  * lockscreen: Drop style class.
    We use gtk_widget_class_set_css_name so don't need an additional
    style class.
  * lockscreen: Use enum for page names.
    It quickly becomes confusing otherwise
  * lockscreen: Fix indentation.
    Bring this in line with current coding standards.
  * lockscreen: Use g_clear_handle_id ()

  [ Sebastian Krzyszkowiak ]
  * Revert "data: Update adaptive app defaults"
    The commit intended to update adaptive app list, but it actually
    changed the default favorites.
    This reverts commit 19ebe2ec3a0df741b6935ac37de610b3c5e01117.
  * data/phosh.service: Add Phosh to XDG_CURRENT_DESKTOP.
    Commit 86dad1dfcc20b56add8a1dff5c4637ce51a0ec69 has already done
    that for the Wayland session, but missed adding a similar change
    to the systemd service.
  * style: Adjust search bar spacing.
    This brings it back to how it looked before introducing
    app filtering, which was closer to the mockups.

  [ Vittorio Monti ]
  * po: Update Italian translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Anders Jonsson ]
  * po: Update Swedish translation

 -- Guido Günther <agx@sigxcpu.org>  Mon, 12 Jul 2021 16:01:37 +0200

phosh (0.12.0) byzantium; urgency=medium

  [ Guido Günther ]
  * data: Add gsd-wwan to required components.
    This makes sure it's also started in systemd mode so the PIN request
    happens.
  * tests: Remove smoke test.
    It served us well initally but since we can now tests against
    the headless compositor without extra setup.
  * overview: Don't set CSS name twice
  * protocol: Sort wayland protocols alphabetically
  * phosh-wayland: Sort wayland protocol headers alphabetically
  * shell: Sort manager objects.
    Sort the ones that get created by the shell and those created on the fly
    into separate sections and sort those alphabetically. Ideally we want
    to distingiush the getters by name at some point.
    (There's a third type (singletons) which we dont' bother about here and
    which we're reducing bit by bit)
  * phosh-wayland: Get virtual-keyboard-manager.
    This is only used in the tests.
  * tests: Allow to inject virtual keyboard events.
    That's fairly minimal at the moment but sufficient to test
    dialogs, etc.
  * system-modal-dialog: Allow to get and remove buttons.
    Add API to query the current buttons and remove them. This just
    proxies to GtkContainer.
  * Implement most parts of org.Gtk.MountOperationHandler.
    This allows to mount e.g. LUKS encrypted volumes via nautilus.
    (Closes: #158)
  * data: Add Phosh to DestkopNames.
    This adds 'Phosh' to XDG_CURRENT_DESKTOP
  * data: Only apply gsetting overrides to Phosh session.
    This makes sure we don't e.g. messup settings for GNOME like
    enabling the OSK.
  * screenshot-manager: Remove opaque handler in dispose
  * screenshot-manager: Actually set fader_id.
    It got cleared but never set.
  * lockscreen-manager: Shorten property enum values.
    This is what we recommend in Hacking.md.
  * proximity: Fix function spacing
  * lockscreen: Drop style class.
    We set it in the ui file already.
  * Drop HANDY_USE_UNSTABLE_API.
    Libhany's API isn't unstable anymore
  * Add calls manager.
    This tracks ongoing calls via the sm.puri.Calls DBus interface.
    This can be used to (e.g. activate the proximity sensor and to
    unblank the screen on incoming calls).
  * lockscreen-manager: Unblank on incoming calls.
    Do it here instead of in lockscreen-manager since
    is where we'd also switch to the calls page later on.
  * proximity: Only use proximity sensor on active calls.
    See https://source.puri.sm/Librem5/calls/-/issues/175
  * debian: Add breaks relationship on older calls.
    This makes sure calls we don't try to run against a calls without
    the DBus interface.
  * libhandy API isn't unstable anymore.
    So drop HANDY_USE_UNSTABLE_API.
  * overview: sort includes
  * shell: Shorten property names.
    This is what we recommend in HACKING.md
  * overview: Add missing G_{BEGIN,END}_DECLS
  * app-grid: Unref sorted model.
    The following gtk_filter_list_model_new() takes a ref on its own.
  * gitlab-ci: Build against PureOS byzantium.
    Debian currently lacks recent enough kernel headers
  * data: Always set `hidden_under_systemd`
    This avoids a meson warning
  * build: Set include dirs explicitly.
    Otherwise we might end up with the toplevel include dir pretty late in
    the search path and pick up GVCs config.h.
  * build: Drop -I. from project_arguments
    root_inc handles this for us.
  * hks-manager: Fix typo
  * hks-manager: Don't assert but rather use unknown opration type.
    Getting odd info from /dev/rfkill is not worth crashing the shell.
  * build: Write config.h later.
    This allows us to use more results from feature detection.
  * hks-manager: Use rfkill_event_ext when available.
    This makes sure we parse two consecutive results correctly. If the
    header is not available fall back to rfkill_event which works correctly
    on kernels that don't expose this field.
  * debian: Build-depend on recent kernel headers.
    These provide rfkill_event_ext
  * hks-manager: Don't leak list.
    Allthough we had a `_and_free()` funciton we didnt' clean it up.
    Instead of cleaning up within that rather use automatic cleanup.
  * home: Reveal whole home-bar instead of only arrow.
    This gives us 40px more vertical space when there's no open applications
    and removes the somewhat odd looking black bar.
  * home: Add getter for overview
  * overview: Add getter for the app-grid
  * app-grid: Allow to filter for adaptive apps only
  * app-grid: Allow for a configured list of adaptive apps.
    This will help to avoid frustration until apps are tagged as such.
  * app-grid: Move signal enum above class.
    This makes it match the proposed layout in HACKING.md
  * app-grid: Allow to toggle adaptive app filtering via setter and property.
    This allows other parts of the shell to turn adaptive app filtering on
    or off.
  * app-grid: Move object cleanup to dispose()
    Otherwise we get a reference cycle between self->actions and
    and self disposal which keeps the app-grid around a bit longer
    and just long enough to make app-list-model emit another items-changed.
    Since `priv->search` is then gone we fail the 'priv->search != NULL'
    check in search_apps.
  * app-grid: Add menu button to toggle adaptive app filtering.
    Add a menu next to the search bar that allows to filter adaptive apps
  * shell: Sync adaptive app filtering with docked mode
  * Allow to toggle app filtering globally.
    This allows to turn of adaptive app filtering completely.
  * data: Update adaptive app defaults.
    Add those from phosh's default set that aren't marked yet
    but are adaptive and drop those that are and had a release.
  * Add NEWS file

  [ ZenWalker ]
  * brightness: 'g_warning' instead 'g_error'

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 29 Jun 2021 09:56:16 +0200

phosh (0.11.0) byzantium; urgency=medium

  [ Guido Günther ]
  * d/control: Mark build-deps as nocheck
  * gitlab-ci: Avoid some build-deps for cross-builds.
    They're not needed since we just check if the build works.
  * system-promper: Cleanup properly.
    Unref the prompter and make sure we don't unregister if not registered.
  * idle-manager: Guard against disposing multiple times
  * polkit-auth-agent: Indentation fixups
  * polkit-auth-agent: Don't leak error in error path
  * build: Use files()
    This avoids having path prefixes in some places and not in others
    and makes it simpler to use these from other directories.
  * test-app-grid-button: Drop test for expected message.
    We catch that in the output of the subprocess and it's a noop
    when running with `-DG_LOG_USE_STRUCTURED`.
  * d/control: Add dbus-x11.
    Needed for the shell test
  * build: add static phosh lib too.
    This contains the whole phosh without main() allowing reuse in
    tests. By using `both_libraries()` we can munge that into the
    shared lib build and unconditionalize this without increasing
    the number of targets.
  * tests: Create shell object.
    This creats the shell object making sure we create most of
    the objects that aren't created in the idle callback()
  * d/control: Add more schemas.
    The tests bring up more of the shell now so we need those schamas
    during tests too.
  * tests: Make shell enter main loop.
    This brings up all the manager objects
  * gitlab-ci: Drop the one output smoke-test.
    The test-shell unit test basically covers this.
  * gitlab-ci: Use gcovr instead of lcov.
    This creates a bit nicer reports but more importantly supports
    a gcovr.cfg in _build/ so we can exclude autogenerated files
    in the future.
    This needs some hackery due to
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987818
    but since this only affects this project and not e.g. downstreams
    it should be o.k. for the time being.
  * Add gcovr configuration.
    This allows us to exclude autogenerated files. It needs to go
    toplevel for gcovr to find it.
  * Bump glib requirement to 2.62.
    This is in byzantium/bullseye and will allow us to use
    g_clear_signal_handler() and friends.
  * Use g_clear_signal_handler.
    We can rely on glib 2.62 now.
  * brightness: Use simpler g_clear_object
  * mode-manager: Use correct type.
    Unused so far so the compiler didn't spot it.
  * home: Use correct type.
    Unnoticed by the compiler since the type was unused so far.
  * monitor: Use proper cast.
    This helps detecting bad types.
  * gnome-shell-manager: Run parent constructor first.
    This makes it consistent with other classes
  * media-player: Unconditionally dispose DBus connection.
    The connection is independent from the signal subscription.
  * system-prompter: Always unown DBus name.
    Don't bother if we ever acquired it, it's important if we tried
    (and hence got a > 0 id).
  * idle-manager: Unown DBus name.
    We should clean up properly on dispose.
  * monitor-manager: Unown DBus name.
    We should clean up properly on dispose.
  * notify-manager: Unown DBus name.
    We should clean up properly on dispose.
  * screen-saver-manager: Unown DBus name.
    We should clean up properly on dispose.
  * gnome-shell-manager: Unown DBus name.
    We should clean up properly on dispose.
  * shell: Dispose keyboard_events past gnome-shell-manager
    gnome-shell-manager invokes phosh_shell_remove_global_keyboard_action_entries()
    when disposing it's keybindings.
  * gnome-shell-manager: Properly free grabbed keybindings.
    We shouldn't remove elements form the GList of keys while looping over
    it. Fixing this makes sure we actually fee the entries (and is less
    code).
  * gnome-shell-manager: Handle DBus skeleton export error
  * screensaver-manager: Dup lockscreen-manager.
    We unref it on dispose so we need to take a reference.
  * on_bus_acquired: Use proper cast with type check.
    Seems this got copy pasted all around and should.
  * location-manager: Unwatch name on dispose.
    We don't want to be called after going away.
  * location-manager: Unexport the interface
  * gnome-shell-manager: Unexport the interface
  * monitor-manager: Unexport the interface
  * notify-manager: Unexport the interface
  * screen-saver-manager: Unexport the interface
  * screenshot-manager: Don't opencode g_clear_handle_id
  * screenshot-manager: Unexport the interface
  * session-manager: Unexport the interface
  * lockscreen: Move player to center widget.
    This makes the player centered with the indicators and clock
    See https://source.puri.sm/Librem5/phosh/-/issues/543
  * screenshot-manager: Only flash screen on success.
    Don't flash screen when taking the screenshot failed.
  * shell: Remove some trailing whitespace
  * tests: Use define for startup-timeout magic constant
  * util: Add helper for the common async callback error checking.
    A canceled operation error should not print a warning while all others
    should.
  * connectivity-info: Cancel nmclient acquisition on dispose.
    Otherwise we might access already freed data. We reorder the ready
    handler to not access self when the operation is cancelled.
  * wifimanager: Cancel nmclient acquisition on dispose.
    Otherwise we might access alrady freed data. We reorder the ready
    handler to not access self when the operation is cancelled.
  * session-manager: Cancel session registration on dispose.
    Otherwise we might access already freed data. We reorder the ready
    handler to not access self when the operation is cancelled.
  * brightness: Cancel proxy creation on dispose.
    This makes sure there's no lingering async callbacks.
  * gnome-shell-manager: Don't ref self when trying to own name.
    If the shell quits and the async g_bus_own_name didn't finish then
    `dispose` will not be run with when a ref is held and the name won't be
    given up. This prevents us from freeing up properly.
  * monitor-manager: Don't ref self when trying to own name.
    If the shell quits and the async g_bus_own_name didn't finish then
    `dispose` will not be run with when a ref is held and the name won't be
    given up. This prevents us from freeing up properly
  * modem-manager: Cancel proxy acquisition.
    Instead of holding a ref on self make sure we cancel the operation in
    dispose. This allows the object to dispose properly.
  * background: Cancel async operation on dispose
  * rotation-manager: Cancel async operation on dispose.
    Instead of holding a ref during the async operation we cancel it in
    dispose. Otherwise we might not properly dispose the object while an
    async operation is pending.
    We shuffle the code around to not access self prior to checking if the
    operation was canceled since it might not be existent anymore.
  * wwan-mm: Cancel async operation.
    This makes sure we don't use self although already disposed. Lower
    warning to `g_message` to not trip up tests when mm is not present
    or the operation gets canceled.
  * Add PhoshManager.
    This adds a common base class for managers that currently derive
    from GObject.
  * mode-manager: Use manager.
    This ensures the idle callback gets removed on dispose.
  * bt-manager: Move functions between class_init and init upwards.
    Matches our recommended layout and needed for the next commit.
  * bt-manager: Use manager.
    This ensures the idle callback gets removed on dispose.
  * torch-manager: Move functions between class_init and init upwards.
    Matches our recommended layout and needed for the next commit.
  * torch-manager: Use manager.
    This ensures the idle callback gets removed on dispose.
  * status-icon: Add idle_init virtual method.
    This allows for easier idle setup and makes sure we properly
    remove the callback.
  * torch-info: Use status-icon's idle_init.
    Instead of opencoding use the parent's class functionality which
    also makes sure the handler gets properly removed.
  * wwaninfo: Use status-icon's idle_init.
    Instead of opencoding use the parent's class functionality.
  * bt-info: Use status-icon idle_init.
    Instead of opencoding use the parent's class functionality.
  * docked-info: Use status-icon idle_init.
    Instead of opencoding use the parent's class functionality.
  * wifiinfo: Use status-icon idle_init.
    Instead of opencoding use the parent's class functionality.
  * home: Drop idle callback.
    Binding to settings is save and won't trigger excessive object
    creation.
  * media-player: Cancel idle callback in dispose.
    Cancel idle callback on dispose so we don't run it if we're already
    disposed.
  * Replace some g_warning()s with g_message()
    Some hardware is not required so reduce the log level. This helps
    tests and since those messages still end up in logs by default don't
    make debugging harder.
  * batteryinfo: Use g_autoptr
  * polkit: better error message
  * polkit: Lower warning when we fail to get session.
    This is likey due to no polkit at all.
  * Move DBus connect failures from warning to debug.
    When the DBus service is not even there no need to print a warning since
    the shell just disables that part.
    This helps to have warnings enabled in tests.
  * tests: Drain event loop in shell test.
    This make sure there's no lingering async/idle callbacks
    of disposed objects.
  * screensaver-manager: Cancel idle callback in dispose
  * screensaver-manager: Don't hold ref on self during g_bus_own_name.
    This avoids cancelation and hence proper cleanup. It's also not
    needed since we unown the name in dispose.
  * wifimanager: Don't use warning when failing to register agent.
    Lower to `g_message` to not trip up tests. It's not fatal anyway.
  * wifimanager: Don't use warning when failing to connect to NM.
    Lower to `g_message` to not trip up tests. It's not fatal anyway.
  * wifimanager: Unref access point.
    We need to disconnect the signals manually since
    nm_device_wifi_get_active_access_point is transfer none.
  * background-manager: Allow to retrieve backgrounds.
    Used in tests.
  * shell: Allow to retrieve background-manager.
    Makes it more symmetric with other managers, used in tests only atm.
  * notify-manager: Don't hold ref when owning dbus name.
    We unown the name in dispose. Holding the ref prevents proper cleanup.
  * test-shell: Simplify shell setup and tear down.
    This makes it reusable in other tests. We don't move that to testlib
    since that does not link against shell.c atm but stubs the shell object.
  * test-shell: Add test with two outputs.
    We need a 2nd fixture since setting up the 2nd output in the
    test itself is too late, the compositor is already running.
  * gitlab-ci: Drop two-output test.
    We run that via ninja now making it easier to use during local
    development.
  * ui: Remove receive-default properties from check buttons
    'False' is the default anyway.
  * system-modal-dialog: Drop unused dispose
  * polkit-auth-prompt: Simplify by using template_callback.
    Less code.
  * polkit-auth-prompt: Use correct cast.
    It's a label not an entry.
    Fixes: 3b60ed8fa4d08c18978e4b90ddf29e1cfd537c2b
  * polkit-auth-prompt: Drop receives-default.
    Otherwise moving the focus via tab to cancel and hitting
    <return> activates 'ok' instead of 'cancel'.
    Also drop the deprecated double-buffered property.
    Fixes: 3b60ed8fa4d08c18978e4b90ddf29e1cfd537c2b
  * system-prompt: Drop property descriptions.
    We have doc strings which allow for more context and don't
    end up eating space in the binary.
  * system-prompt: Simplify by using template_callback.
    Less code.
  * system-prompt: Drop receives-default.
    Otherwise moving the focus via tab to cancel and hitting
    <return> activates 'ok' instead of 'cancel'.
    Fixes: f2feed05d89bddf440685589b3c5f85bc61bd5f6
  * network-auth-prompt: Drop receives-default.
    Otherwise moving the focus via tab to cancel and hitting
    <return> activates 'ok' instead of 'cancel'.
    Fixes: 5ec5a932461fad35b3a9830fba3b23abe2a97050
  * app-auth-prompt: Drop receives-default.
    Otherwise moving the focus via tab to cancel and hitting
    <return> activates 'ok' instead of 'cancel'.
    Fixes: 14a763b094630cd326b4d7b09a834cd0e15a5973
  * end-session-dialog: Drop receives-default.
    Otherwise moving the focus via tab to cancel and hitting
    <return> activates 'ok' instead of 'cancel'.
    Fixes: fb4c5e1d3493865be3d84d00c3dc9859ea9bf107
  * end-session-dialog: Set focus.
    Make this explicit as in other modal dialogs
  * end-session-dialog: Avoid creating a row.
    Since we don't need to disable focus anymore we can just use
    gtk_list_box_insert ().
  * end-session-dialog: Make listbox insensitive.
    The list of inhibited apps should just be avoided when using keyboard
    focus however just setting can-focus = False on the listbox and the
    rows only makes it swallow the cursor completely. Mark the widget
    as insenitive instead. This dims the widgets in the listbox so
    undo that via CSS.
    With that using tab to cycle through the dialog works as expected (only
    switches bestween the buttons).
  * mode-manager: Don't use wl before we checked the async operation.
    Otherwise this can cause problems when the async calls is cancelled
    in dispose and PhoshWayland already got disposed since we'd trigger
    recreating the singleton.
  * wifimanager: Don't check type before async error check
    self might already be gone if the async call got cancelled in dispose.
  * docs: Drop coverage report.
    Using a gitlab badge is nicer since it doesn't clutter the the docs.
  * wwan: Move wwan DBus sources to src/dbus.
    This gets them ignored when calcualting coverage but also gets us closer
    to have all DBus generation in once directory and meson variable.
    We keep file and interface names unchanged for minimal diff noise and
    just rename the interface definitions.
  * monitor: Move DisplayConfig DBus sources to src/dbus.
    This gets them ignored when calcualting coverage but also gets us closer
    to have all DBus generation in once directory and meson variable.
    We keep file and interface names unchanged for minimal diff noise.
  * osk: Move OSK0 DBus sources to src/dbus.
    This gets them ignored when calcualting coverage but also gets us closer
    to have all DBus generation in once directory and meson variable.
    We keep file and interface names unchanged for minimal diff noise and
    just rename the interface definitions.
  * osk: Move to src/
    No point to have a directory for single file.
  * tests: testlib: Unregister timeout handler.
    Otherwise it might fire at a later invocation.
  * tests: testlib: Don't fetch outputs early.
    This can cause trouble when using this to bring up the shell since we
    might otherwise miss wayland events in the shell (see
    phosh_shell_constructed).
  * tests: Always run idle-manager test.
    Now that we can use PhoshShell in tests use that
    in a thread plus a spawned compositor to always
    run the idle tests instead of requiring a running
    shell upfront.
    For that we need to fix resource leaks to not reuse
    DBus proxys on already gone shells, etc.
    We mark DBus session bus using tests as not being run in parallel for
    now since test clients might otherwise get confused.
  * tests: Add initial screenshot-manager test.
    Takes a screenshot and makes sure it ends up in the right location
    on disk.
  * Add initial monitor-manager test.
    Just queries the current state.
  * tests: Add initial notify-manager test.
    Since we want notifications on the lock screen soonish we better
    test this a bit.
  * gitlab-ci: Use libglade-common from experimental too.
    This fixes the build until bullseye gets unfrozen
  * po: ja: Fix printf format in translation.
    It swapped to arguments without marking as such.
  * po: ja: Remove second plural forms.
    Japanese uses nplurals=1
  * gitlab-ci: Install gettext.
    Needed for po file check
  * Move po check from gitlab-ci to a tools/
    This allows for easy local checking
  * tools/check-po: Check po files via msgfmt.
    This makes sure we don't end up with incorrect plural forms
    or broken format strings.
  * top-panel: Indicate disabled state for wifi and bt.
    The top panel so far handled disabled the same as missing for wifi and
    bt.
  * settings: Add torch brightness slider.
    This adds brightness slider when the torch is enabled. (Closes: #386)
  * debian: Switch to debhelper 13.
    This makes us fail on missing files
  * hacking: Fix property function names.
    We always use the singular form
  * Add css names to info widgets.
    This eases styling and makes things consistent with other widgets
  * top-panel: Add css name.
    Instead of using a CSS class on the top-panel and the widget name
    for home make this consistent.
    We use 'top-panel' since this is what is should be named (pending
    a source file and class rename).
  * top-panel: Always use bold font for indicators.
    We always want to use bold font on the right indicator box
  * batteryinfo: Drop superfluous NULL checks
    g_clear_object() does this for us.
  * batteryinfo: Add optional label with battery percentage
  * panel: Honor show-battery-percentage.
    This allows to show the battery percentage in the top bar
    Closes: https://source.puri.sm/Librem5/phosh/-/issues/268
  * debian: Use systemd.
    Use systemd for the CI debs and simplify installation (we don't
    need any enablement)
  * notify-manager: Fix docstring
  * notifications: Expand docs a bit.
    I always need to look up the relationship of the classes. Add some
    docs to make this simpler.
  * notification-content: Make sure we disconnect on dispose.
    Use g_signal_connect_object() instead of g_signal_connect()
    so that if self goes away the signal handler gets disconnected.
    The notification might live way longer than the content, e.g. when a
    banner expires but the notification is still in the notification list.
    Closes: https://source.puri.sm/Librem5/phosh/-/issues/321
  * shell: Emit signal when shell is fully up
  * tests: Test shell ready
  * main: Measure startup time
  * main: Inform systemd we're up
  * systemd: Inform systemd we support notify.
    Closes: https://source.puri.sm/Librem5/phosh/-/issues/568
  * tests: Don't hardcode version

  [ ZenWalker ]
  * layersurface: avoid redundant assignment
  * end-session-dialog: avoid redundant assignment

  [ Pablo Correa Gómez ]
  * settings: Remove duplicated assignment after check

  [ Dylan Van Assche ]
  * proximity: faster proximity fading.
    Fades out faster when in proximity.
    This improves the user experience when placing a call
    as the phone blanks faster. The user isn't 'afraid'
    anymore to accidentally touch a button with
    his/her/their ear when placing a call for example.

  [ lajonss ]
  * settings.c: quick settings Wi-Fi and BT toggle.
    Quick settings Wi-fi and BT buttons
    were opening the corresponding settings panel.
    This commit introduces new behaviour for
    Wi-Fi and BT quick settings:
    - toggling enabled state on clicked event
    - opening settings panel on long_pressed event
    This commit introduces "button-pressed" feedback
    on opening settings panels.
    Concerns: #372 (Quick toggles open settings panels)
  * settings: wwan quick toggle.
    Changes behaviour of wwan quick settings from:
    - opening settings panel on click,
    to:
    - toggling wwan enabled on click,
    - opening settings panel on long press.
    Introduces PhoshWWanManager - base class for WWan
    backends. Used for backend-agnostic nm operations.
    Concerns: #372

  [ Zhaofeng Li ]
  * data: Generate required session components from an array
  * Add systemd user units.
    This allows Phosh to be started with `gnome-session --systemd`, with
    most session components managed by systemd.
  * Allow the compositor path to be overridden in a Meson option.
    However, `/usr/bin/phoc` will still be used if it exists.
  * Add environment variable to support overriding the gnome-session executable

  [ Vittorio Monti ]
  * po: Update Italian translation

 -- Guido Günther <agx@sigxcpu.org>  Sun, 30 May 2021 12:22:27 +0200

phosh (0.10.2) byzantium; urgency=medium

  [ Sebastian Krzyszkowiak ]
  * docked-manager: Check whether docked mode can be enabled.

  [ Guido Günther ]
  * dbus: Fix indentation
  * Add screenshot manager.
    This, for now, just captures the primary display which is the main
    use case on mobile.
  * css: Fix indentation
  * system-modal-dialogs: Add box shadow.
    This makes sure the dialog gets visually distinct e.g. on dark-mode
    apps.
    Closes: https://source.puri.sm/Librem5/phosh/-/issues/538
  * proximity: Make sure we destroy the fader when we unclaim the sensor.
    We must never blank screen when not tracking proximity.
  * home: Fix use after free
  * system-modal: Drop unused struct member
  * fader: Simplify fader.
    No need to bother all layers with the wayland details, just
    pass in a monitor.
  * fader: Allow to set style class.
    This allows to use animations of any kind.
  * screenshot-manager: Copy to clipboard if filename is empty.
  * screenshot-manager: Use fader for screen flashing
  * Various style and consistency cleanups

  [ Mohammed Sadiq ]
  * meson: Fix build with tests disabled.
  * panel: Hide popover before folding top panel.
    Otherwise the popover shall re-orient to adapt with the parent
    widget before it's hidden
  * style: Use tabular font for clocks.
    So that the text has same size allocated and thus the text won't move
    when the value changes, which is very much visible when clock shows
    seconds
  * top-panel: Update power button style to match design

  [ Anders Jonsson ]
  * po: Update Swedish translation

  [ Evangelos Ribeiro Tzaras ]
  * monitor-manager: fix typo.

  [ scootergrisen ]
  * po: Update Danish translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Daniel Șerbănescu ]
  * po: Update Romanian translation

  [ 寮 ]
  * po: Update Japanese translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 27 Apr 2021 10:21:21 +0200

phosh (0.10.1) byzantium; urgency=medium

  [ Guido Günther ]
  * rotateinfo: Fix indentation
  * monitor-manager: Fix doc string.
    Make function name match the actual definition.
  * torch: Make debug statement more useful.
    We want to what things changed not only that s.th. happened.
  * proximity: Handle NULL builtin monitor.
    There might be no builtin monitor at all or it could be disabled.
  * shell: Create sensor-manager early.
    We want that before the panels since those might use other
    managers that need the sensor-manager (e.g. rotation-manager)
  * shell: Don't bother with accelerometer.
    Rotation-manager takes care of that
  * shell: Decruft builtin monitor setup.
    Just look it up on start since it can't change.
  * Avoid sensor-proxy singleton.
    Treat it as regular initable that is fetched from the shell
    like other managers.
  * Add rotation-manager.
    The rotation manager listens to device orientation changes
    and adjusts the primary display accordingly.
    This interfaces with lockscreen, iio-sensor-proxy and
    gsettings to figure out the correct screen orientation.
    The manager has two modes: off (don't rotate any output) and sensor
    (adjust due to sensor values).
  * rotateinfo: Display either rotation lock or orientation.
    Based on the rotation managers mode dislay appropriate information.
    (Closes: #18)
  * settings: Add orientation lock to rotate quick setting.
    Long press switches between potrait/landscape and rotation lock.
  * settings: Don't close menu when toggling rotation lock.
    This makes it consistent with other toggles like feedback toggle.
  * Move Lockscreen rotation fixup to rotation-manager.
    No need to have several objects involved. This avoids
    lockscreen and rotation manager racing since we can
    do it past the unclaim of the accelerometer.
  * rotateinfo: Use monitor from rotation-manager consistently.
    So far this was dependent on mode and incorrectly tracked the primary
    monitor for manual toggle.
  * shell: Drop transform handling.
    This is done by the rotation-manager which always acts on the
    given monitor. (Closes: #56)
  * rotation-manager: Mess with transform as little as possible.
    On phones when we're already using portrait orientation don't bother
    fixing this up. This allows for e.g. upside down operation.
  * monitor: Update org.gnome.Mutter.DisplayConfig.
    This is from mutter's 331b5f356311f1dcfc1b580e349a60d25fc0e34f
  * monitor-manager: Drop supports-mirroring prop.
    It got removed with the DisplayConfig interface update. Mutter doesn't
    use it anymore, g-c-c still parses it but doesn't use it in 3.38.
  * monitor-manager: Handle panel-orientation-managed (Closes: #540)
  * monitor-manager: Delay 'monitor-added' until monitor is configured.
    This makes is simpler for other parts of the shell since they don't
    need to track this on their own.
    While at that make phosh_monitor_manager_add_monitor private since
    this should only happen within monitor-manager.
  * shell: Handle builtin monitor dynamically.
    It e.g. goes away when disabled in docked mode
  * rotation-manager: Update tracked monitor.
    Update tracked monitor when builtin changes. We do this explicitly
    rather than listening to changes on monitor-manager since this way
    the rotation-manager doesn't need to be aware that it's tracking
    a built-in monitor. It just tracks what's passed in.
  * rotateinfo: Make insensitive when built-in monitor is disabled
  * end-session-dialog: Drop debug leftover
  * lockscreen-manager: Remove unused timeout property.
    Unused since d3028d50686a1fba7876355ea3272def281ad030
  * lockscreen-manager: Document phosh_lockscreen_manager_set_locked.
    Use a better argument name while at that.
  * lockscreen: Fix signal name
  * monitor-manager: Clarify doc string
  * screen-saver-manager: Clarify debug message.
    Make it obvious we're sending out the DBus signal
  * shell: Look at the right manager.
    Don't check torch manager when we want location.
  * shell: Don't create loctation manager twice.
    Since the panels are constructed before the init in the shell's
    idle_cb we'd construct twice since priv->location_manager is still
    NULL. USe the getter instead to be independent from init order.
  * location-manager: Translate location accuracy levels.
    Geoclue uses something different then the desktop schemas.
    Thanks to Dylan Van Assche for the report

  [ Clayton Craft ]
  * meson: bump version to 0.10.0.
    Seems like this was missed when 0.10.0 was tagged.

  [ Daniel Șerbănescu ]
  * po: Update Romanian translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Emin Tufan Çetin ]
  * po: Update Turkish translation

  [ Jan Jasper de Kroon ]
  * po: Update Dutch translation

 -- Guido Günther <agx@sigxcpu.org>  Sat, 10 Apr 2021 09:18:33 +0200

phosh (0.10.0) byzantium; urgency=medium

  [ Guido Günther ]
  * osd-window: Drop padding around levelbar.
    This avoids a thin black border noticeable on light backgrounds
  * wwan-iface: Add 'enabled' property.
    This indicates if the modem is enabled.
  * wwan-mm: Complete PhoshMMModemState.
    This matches MMModemState
  * wwan-mm: Handle 'enabled' property
  * wwan-ofono: Handle enabled property.
    We always return TRUE here to not break existing users.
  * wwaninfo: Correctly indicate disabled state.
    So far we used the signal-strength 0 icon which is confusing.
  * Add geoclue DBus interface files.
    This were taken from gnome-shell as of
    1dc971d76025416249598f9b8e5a12e37c9dec22
  * Add geoclue location manager.
    This honors the 'org.gnome.system.location enabled' GSetting for global
    access to location services.
    To work it needs an entry for phosh in /etc/geoclue/geoclue.conf.
    (Closes: #153)
  * Add "location service in use" indicator.
    This indicates that the location sevice is in use via the status bar.
    (Closes: #527)
  * location-manager: Reject all per app auth requests.
    Reject auth by default for the per-app case until we implemented per app
    location permissions (#524).
    It currently doesn't hurt us badly since the current test in geoclue
    whether there should be an auth request is based on
    gclue_client_info_get_xdg_id() returning !NULL. Due to /proc/%u/cgroup
    not containining '1:name=systemd:' this isn't the case and hence apps
    are authorized by geoclue by default.
  * polkit-auth-prompt: Make buttons use the whole width
  * polkit-auth-prompt: Move auth button creation into ui file.
    This makes it simpler to maintain with the reset of the code
  * polkit-auth-prpmopt: Move info label next to icon.
    This makes it more consistent with the other dialogs.
  * polkit-auth-agent: Make buttons a bit larger.
    This makes them easier to use on mobile. We add a style class
    so we can reuse that in other modal dialogs.
  * style.css: Move spacing to content area.
    This allows buttons to go to the very bottom of the dialog box.
  * system-modal: Document the style classes
  * system-prompt: Use system-modal style classes
  * network-auth-prompt: Use system-modal style classes
  * system-modal: Use ultrabold font for title.
    Introduce a style class for that. The other dialogs
    need more work since they don't use a generic title yet.
    See #201
  * top-panel: Add some spacing between the entries.
    Helps #331
  * polkit-auth-prompt: Remove the button border.
    This gets this dialog in line with the buttons of other modal dialogs.
  * system-modal: Adjust button layout to designs
  * system-modal: Adjust dialog color to designs (Closes: #201)
  * system-prompt: Adjust to designs.
    Drop the icon and center message texts
  * network-auth-prompt: Adjust to designs.
    Drop the icon and center message texts
  * system-prompt: Add missing G_{BEGIN,END}_DECLS
  * app-auth-prompt: Used to authorize app permissions
  * location-manager: Use app-auth-manager to ask for geoclue permissions
    (Closes: #524, #532)
  * dir-locals: Don't use tabs in ui files
  * test: Move get_monitor() to testlib.
    Useful for other layer-surface tests as well
  * Add system-modal-dialog class.
    This can serve as base for sytem modal dialogs
  * polkit-auth-prompt: Use PhoshSystemModalDialog
  * polkit-auth-prompt: Use SystemModalDialog's `dialog-canceled` signal
  * polkit-auth-prompt: Adjust to designs.
    Center text and icons. We need to use a label instead of
    putting the placeholder text into the password entry since
    GTK3 only allows for a placeholder text when the entry does
    not have the focus.
  * system-modal-dialog: Allow to swipe away.
    Allow to cancel dialogs by swiping them away
  * system-modal-dialog: Limit width to 400px.
    Add a clamp so the dialog keeps a sane width to height ratio.
  * app-auth-prompt: Use system-modal-dialog (Closes: #536)
  * system-prompt: Switch to system-modal-dialog.
    Less code and more consistency.
  * network-auth-prompt: Switch to system-modal-dialog.
    Less code and more consistency.
  * network-auth-dialog: Remove unused system-prompt-grid.
    Takes up vertical space but isn't used.
  * style.css: Remove now unused styling.
    All dialogs use PhoshSystemModalDialog now
  * batteryinfo: Don't leak string
  * head: Don't reassign product.
    Use model as intended
  * system-modal-dialog: Tweak system-modal-dialog CSS
    - Use slightly darker background
    - Use 2px separator between buttons
    - Use 2px separator to dialog content
    See: #537
  * dir-locals: Use 2 spaces for css indent
  * gnome-shell-manager: Properly name variable.
    Looks like a c'n'p from PhoshNotifyManager
  * docs: Add PhoshSystemModalDialog
  * app-list-model: Prefix timer with [phosh]
    This makes it consistent with other timers
  * dbus: Add org.gnome.SessionManager.EndSessionDialog protocol.
    This will be needed for the 'end session' dialog
  * panel: Drop workarounds
  * tools: Add script to check end-session-dialog
  * Add PhoshEndSessionDialog.
    This dialog will be invoked by PhoshSessionManager to present
    logout/reboot/restart requests.
  * session: Export end-session-dialog.
    Export the end-session-dialog DBus API used by gnome-session. Upon
    invocation it will spawn PhoshEndSessionDialog. (Closes: #54, #520)
  * home: Don't reuse bindings
    g_settings_get_strv() is transfer-full so reusing it before freeing
    it beforehand leaks the data.
  * background: Don't leak slideshow.
    We need to unref it before reassigning a new one.
  * gnome-shell-manager: Don't leak GVariantIter

  [ Evangelos Ribeiro Tzaras ]
  * shell: Use G_PARAM_STATIC_STRINGS for all properties
  * phosh_shell_get_state: Use enum value instead of magic constant
  * phosh_shell_get_state: Use `Removing from` instead of `Removing to` in
    debug message
  * shell: make `shell_state` a property.
    This allows to bind the new GnomeShellManager:action_mode property.
    For that we move the initial call to `phosh_gnome_shell_manager_get_default`
    to `PhoshShell`'s `setup_idle_cb()` (which is nicer anyway since we do
    less work on startup).
    Closes #513

  [ Sebastian Krzyszkowiak ]
  * style.css: Disable PhoshActivity's button transitions.
    Adwaita sets `transition: all 200ms $ease-out-quad;` for all
    GtkButtons. In our case, the transitions being animated are
    not visible at all, but they still cause redraws, which can
    be rather heavy when window thumbnails are involved.

  [ Andy Holmes ]
  * screen-saver-manager: fix type name in idle callback.
    Type name was PhoshTorchManager instead of PhoshScreenSaverManager

  [ Jan Jasper de Kroon ]
  * po: Update dutch translation

  [ Emin Tufan Çetin ]
  * po: Update Turkish translation

  [ Jaroslav Svoboda ]
  * po: Update Czech translation

  [ Balázs Meskó ]
  * po:Update Hungarian translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 30 Mar 2021 16:02:47 +0200

phosh (0.9.0) byzantium; urgency=medium

  [ Sebastian Krzyszkowiak ]
  * PhoshHome: Hide overview when fully folded.
    This prevents useless rendering work from happening offscreen on window
    focus or activator list changes.
  * PhoshHome: Fix jumping position when reversing an active animation
    `1.0 - self->animation.progress` assumes linear interpolation; however,
    cubic ease out is used for animating home view position, so the new
    reversed position needs to be adjusted for that in order to start from
    the same place on the screen.

  [ Evangelos Ribeiro Tzaras ]
  * minor: Fix typos, indendation and code style issues
  * shell-manager: Honor action modes
  * lockscreen: Set shell state.
    And allow querying the shown page
  * gnome-shell-manager: Distinguish lock and unlock screen
  * gnome-shell-manager: Pretty print grabMode mismatch
  * shell: Pretty print shell state changes
  * prompts: Update PhoshShellState
  * home: Update PhoshShellState
  * shell: screen blanking: Update PhoshShellState

  [ Guido Günther ]
  * settings: Ref output stream.
    The 'default' in gvc_mixer_control_get_default_sink () made
    me believe the object would stick around but it doesn't so
    we need to hold a ref. (Closes: #510)
  * Add PhoshHksManager.
    This tracks the state of hardware kill switches (rfkill
    hardblocked devices)
  * shell: Add PhoshHksManager.
    RFKILL code heavily borowed from g-s-d
  * data: Add icons for disabled camera and mic.
    These can be dropped once we can rely on GNOME 3.38.
  * Add PhoshHksInfo.
    This can be used to display info about the different HKS devices
  * top-panel: Add camera and microphone hks info
  * ci: Drop support for Debian buster and PureOS amber-phone.
    Drop support for Debian buster/PureOS amber-phone since we can't
    sensibly support these for CI builds since the packages in buster
    are too old and amber-phone lags so we have to wait too long for
    migrations.
    amber-phone will be handled via pkg-phosh. Bullseye will switch
    to bookworm once that's open.
  * gitlab-ci: Drop CI repo remanents.
    It's not being filled since ages
  * gitlab-ci: Fetch libhandy-1 from Debian experimental.
    We'll need this until either Byzantium catches up or Bookworm opens
  * dbus: Shell: Add showOSD and add stub
  * Add PhoshOsdWindow.
    This finally adds OSD information. (Closes: #33)

  [ Pierre Michel Augustin ]
  * po: Add Creole Haitian translation

  [ Alexander Mikhaylenko ]
  * Bump libhandy version to 1.1.90.
    This will be required to use #HdyCarousel:allow-long-swipes.
  * overview: Use long swipes.
    Allow to swipe multiple pages at once.

 -- Guido Günther <agx@sigxcpu.org>  Tue, 02 Mar 2021 14:52:00 +0100

phosh (0.8.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * shell: Simplify css loading
  * shell: Don't use magic constant for CSS provider priority
  * settings: Ensure types in shell.
    We use widgets at various places. Make sure we make the types known
    in a single location since otherwise there's duplication.
  * panel: Ensure types in shell.
    We use widgets at various places. Make sure we make the types known
    in a single location since otherwise there's duplication.
  * lockscreen: Ensure types in shell.
    We use widgets at various places. Make sure we make the types known
    in a single location since otherwise there's duplication.
  * shell: Move type setup to class_init.
    Doing it on the class level is enough. The shell is a singleton
    so this doesn't change anything in practice.
  * shell: Always use g_type_ensure.
    Older code used `<type>_get_type ()`
  * top-panel: Remove duplicate properties
  * top-panel: Untabify.
    It was a mixture of tabs and spaces
  * ui: Untabify all files.
    We want spaces there. The top-panel was the first offender
    but let's get the others correct too.
  * service: Always restart
    gnome-session prefers exit status 0 - even on errors. So restart in this
    case too.
  * monitor: Add getter for wl_output
  * build: Move monitor sources to tool's lib.
    This allows usage in tests and tools. This will be needed by
    the system-modal tests.
  * notification-banner: Always use primary output.
    This makes sure notification banners end up where the top bar is.
  * layersurface: Don't make props construct-only.
    This allows us to override in the derived classes constructor.
  * Add PhoshSystemModal.
    Abstract class for system-model dialogs. This allows all system modal
    dialogs to use the same base class avoiding leaking layer-surface
    details up into the class that initially builds the dialog.
  * system-modal: Add minimal tests
  * system-prompt: Use PhoshSystemModal
  * polkit-auth-prompt: Use PhoshSystemModal
  * network-auth-prompt: Use PhoshSystemModal
  * network-auth-prompt: Focus password entry.
    Similar in spirit to 0098cdfc9d791b56f580cc76ea1f8e42a31efbdb
  * system-modal: Add style class.
    This allow to remove it from 3 ui files

  [ Sebastian Krzyszkowiak ]
  * gitlab-ci: Use http URI for amber-phone repos.
    Otherwise initial apt-get update fails because of missing ca-certificates.
  * settings: Add a long-press shortcut to g-c-c display panel on "Docked" icon

  [ Elias Rudberg ]
  * Add toplevels_pending array and keep toplevel pointers
    (Closes: #407)

 -- Guido Günther <agx@sigxcpu.org>  Mon, 08 Feb 2021 20:43:29 +0100

phosh (0.8.0) amber-phone; urgency=medium

  [ xam ina ]
  * po: Update French translation

  [ Guido Günther ]
  * keyboard-events: Drop newlines from `g_warning()`
    g_warning newline terminates on it's own.
  * d/control: Update from debian.
    This typos and package sections
  * d/control: Update dependencies/recommends from Debian.
    We don't pull them in on amber and we want them for byzantium
    anyway.
  * gitlab-ci: Drop test-package stage.
    Since we have PureOS packaging mostly separate drop the
    last pipeline stage since that is run there. This brings
    down build times and uses fewer runners.
  * Move overrides to data.
    This makes it simpler for downstreams to track changes.
  * Move systemd service to data/
    This makes it simpler to track for downstreams.
  * lockscreen: Drop leading space in day of month (Closes: #225)
  * po: Adjust locales to string change.
    This avoids breaking all locales
  * notify-manager: Don't leak notifiation.
    A ref is taken when added to the list so no need to keep
    it around
  * settings: Make sure we rotate clockwise
    wlroots as of 0.11.0 changed rotation correction. Adapt to that,
    we don't bother what older versions do - downstream can just
    revert.
  * shell: Properly sync lock property.
    The shell's locked property did not really reflect the state of
    lockscreen-manager's "locked" property. Fix this by binding those two.
    This will also simplify things like the rotation manager since we
    don't need to pass the lockscreen-manager around anymore.
  * polkit-auth-agent: Disable verbose debugging.
    We don't want cookies, etc to end up in the logs
  * polkit-auth-prompt: Unref session too.
  * polkit-auth-agent: Toggle auth prompt with lockscreen visibility
  * wifimanager: Toggle network auth prompt with lockscreen visibility
    (Closes: #299)
  * system-prompter: Toggle system auth prompt with lockscreen visibility
  * monitor-manager: Clarify physical and logical monitors
  * monitor-manager: Use head for physical monitors in get_current_state
  * monitor-manager: Don't bother setting up modes in GetResources.
    Only the ones from CurrentState are relevant.
  * monitor-manager: Make sure to bump serial on config changes
  * monitor-manager: Notify DBus listeners about config changes
  * monitor: Add description.
    We'll use that to match up with heads
  * head: Add connector information.
    Needed to switch monitor-manager to use heads.
  * Allow to switch output configurations.
    This allows to disable heads and turn them back on which is useful for
    docked mode)
  * monitor-manager: Flip transform.
    The transform we get from the DBus protocol is flipped
    regarding Waylands view on it. This is similar to what
    was done in wlroots to preserve config changes.
  * protocols: Update wlr-output-management
    v2 supports make/model/serial.
  * head: Use v2 of wlr-output-management.
    This allows for vendor/product/serial again.
  * monitor-manager: Improve display name.
    We have the necessary info in the heads now. Code
    inspired from what's done in mutter.
  * head: Add a mode name and lookup.
    We don't bother with a hash map since e.g. removal would mean
    iteration too so just do a linear search when needed.
  * monitor-manager: Set output resolution as well (Closes: #140)
  * head: Allow to fetch supported scales.
    We only do integer scaling and use the same limits than mutter
    (max 400%).
  * monitor-manager: Allow to set scaling too
  * mode-manager: Improve external output detection.
    If there's a single output and it's not built-in it's an external
    one. (Closes: #436)
  * head: Allow for smaller logical area in portrait.
    This allows to set the scaling e.g. on the Librem 5.
  * head: Allow to easily clear all pending state.
    Instead of having this in different places add a single helper.
  * polkit-auth-prompt: Grab focus on every request.
    Otherwise the input field isn't refocused after a failed attempt.
    (Closes: #470)
  * system-prompter: Focus confirmation entry.
    Select the confirmation entry when showing a confirmation prompt.
  * system-prompter: Focus password entry.
    Refocus the password entry when the prompt is shown. Otherwise
    the focus is on the button after failed password attempt when
    using touch.
  * timestamp-label: Introduce phosh_time_diff_in_words.
    This is mostly to make things easily testable
  * timestamp-label: Unbreak relative days and months.
    Phones have a long uptime so fall back to pure date printing
    after 1y.
  * timestamp-label: Unbreak relative years.
    So far there always was fallback, drop that.
  * timestamp-label: Add more flexibility to formats.
    Some languages want to have 'almost' and 'over' past the numbers.
  * po: Update pot file

  [ Anders Jonsson ]
  * po: Update Swedish translation

  [ Tomasz ]
  * Update Polish translation
    po: update Polish translation

  [ Timo Jyrinki ]
  * po: Update Finnish translation

  [ Sebastian Krzyszkowiak ]
  * gitlab-ci: Don't use global before_script for package jobs.
    It used to work accidentally because pipeline definitions
    had been overriding before_script, which isn't the case anymore.
  * gitlab-ci: Simplify package:deb-pureos-amber job.
    Thanks to librem5-ci!14 our before_script doesn't have to
    do the apt preparations anymore.
  * gitlab-ci: Use "needs" keyword instead of "dependencies" for test+docs stage.
    This allows for better paralelism in the pipeline.

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ 寮 ]
  * po: Update Japanese translation
  * docked-info: Mark 'Undocked' as translatable too
    "Docked" and "Undockd" are user visible strings and
    only the former was marked as translatable so far

 -- Guido Günther <agx@sigxcpu.org>  Sun, 17 Jan 2021 17:46:56 +0100

phosh (0.7.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * background: Correctly chain up in dispose.
    This fixes a crash when unplugging a 2nd screen.
    Fixes 8828176f6c98a4bde94c9f6daa46d0a87a3c8d20
  * Add initial stubs for org.gnome.Shell DBus protocoll.
    This will be needed for OSD, monitor labels and grabs
  * activity: Allow to focus.
    This fixes the toggle-overview keybinding
    Fixes 20c3a79fb888e876f30d1a590084c87cb1c16591
  * home: Hide arrow when there are no activities
    (Closes: #261)
  * Handle logind's Lock and Unlock.
    This allow 'loginctl lock|unlock <session-number>' to work.
  * phosh.service: Set session type and name.
    This way we can match the right session via phosh_find_systemd_session
    even when not using a window manager. We can drop the XDG_SESSION_TYPE
    once phoc switches to newer wlroots which takes care of it since 0.12.0.

  [ Evangelos Ribeiro Tzaras ]
  * shell-manager: Implement keygrabbing.
    Ungrabbing is only allowed for the client who originally grabbed
  * settings: get rid of explicit volume key handling.
    With the DBus interface org.gnome.Shell now supported, g-s-d/media key
    plugin now handles volume keys for us

  [ Sebastian Krzyszkowiak ]
  * Remove custom drawing in system prompts.
    Custom drawing doesn't seem necessary. Fixes unwanted background in
    popovers.

  [ Arnaud Ferraris ]
  * data: add 'System' category to desktop entries

  [ Andika Triwidada ]
  * po: Add Indonesian translation

 -- Guido Günther <agx@sigxcpu.org>  Thu, 17 Dec 2020 12:46:29 +0100

phosh (0.7.0) amber-phone; urgency=medium

  [ Guido Günther ]
  * Add session-manager.
    This adds a proper object - current session.c doens't have that
    making it hard to use signals, etc.
  * Add mount-manager. This automounts new volumes
  * notify-manager: Add method to submit notifiations.
    This will allow to submit notifications from other parts of
    the shell. Use it for the DBus part too.
  * notification: Allow for a NULL timestamp.
    This just uses the current time.
  * timstamp-label: Use 'now' instead of <15s.
    It looks odd when new notifications print '<15s' right away.
  * notify-manager: Allow derived classes to use different action handlers.
    We can turn the current 'default' notfication into a
    PhoshDBusNotification to make that even more pronounced at some point.
  * Add PhoshMountNotification.
    A notification that displays information about newly mounted
    file systems.
  * mount-manager: Indicate mounts via notifiations.
    We add a single action that opens the containing folder.
  * mount-notification: Only add action if we have a handler.
    Since nautilus is not adaptive don't add an action if
    it's not available.
  * Add PhoshDBusNotification.
    This allows us to have notification just do the right thing.
  * notification: Move do_action into dbus-notifiation.
    This avoids the special case in the notification manager.
  * data/phosh: Print version with `--version` (Closes: #425)
  * run: Simplify oneshot gdb.
    Often we just want to run phosh and get a backtrace e.g.
    for G_DEBUG=fatal-criticals:
       PHOSH_AUTO_GDB=1 SKIP_GNOME_SESSION=1  _build/run
    does this.
  * gitlab-ci: Make it simple to get a backtrace.
    This can be done by passing $SMOKE_PARAMS='-c' to gitlab-ci.
  * background: Add initial support for Background XML.
    Many 'slideshows' are just a fixed single image so handle that
    as a start. This allows us to use Debian's/PureOS background
    data (as per desktop-base package)
  * network-auth-prompt: Handle "sae" for WPA3 support.
    This unbreaks authenticating to WPA3 networks which
    so for ended in "not supported".
  * shell: Only show banners for apps with show-banners on

  [ Evangelos Ribeiro Tzaras ]
  * meson: bump version to 0.50

  [ Alexander Mikhaylenko ]
  * Slide back windows that failed to close.
    Closes: #429
  * Use easeOutBounce interpolator for the slide back animation.
    Make it a little fancier.

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

 -- Guido Günther <agx@sigxcpu.org>  Thu, 10 Dec 2020 13:58:42 +0100

phosh (0.6.0) amber-phone; urgency=high

  [ Guido Günther ]
  * run: Prepend current schema dir.
    This allows phosh to e.g. find phoc's schema if that also uses run.in
  * run.in: Use memory GSettings backend.
    This makes sure we don't mess with systems settings.
    Sine this affects testing docked mode we allow to override it.
  * gitlab-ci: Build bullseye packages as well.
    This helps testing MRs against PureOS byzantium and Debian Bullseye
  * d/control: Update package description
  * debian: Add phosh-mobile-tweaks.
    We have this in Debian and it's useful overall since it minimizes
    librem5-base and makes it simpler to track changes for downstreams.
  * Rename notify dbus interface class to PhoshNotifyDBus.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * Rename idle dbus interface class to PhoshIdleDBus.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * Rename screensaver dbus interface class to PhoshScreenSaverDBus.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * layer-surface: Add debugging when a surface goes away.
    This helps tracing the order of events
  * lockscreen-manager: Explain purpose
  * lockscreen-manager: No need to disconnect signals from lockscreen.
    We're about to destroy the lockscreen object a couple of lines later
  * lockscreen-manager: Move lock screen when output goes away.
    We move the lock screen in case the monitor it's on goes away.
    (Closes: #385)
  * monitor: Add phosh_monitor_get_power_save_mode.
    Simple getter
  * lockscreen-manager: Handle transform only on power mode changes.
    This makes sure we rotate correctly when the screen unblanks and
    we don't operate on disabled outputs which trips up phoc.
  * lockscreen-manager: Don't rotate external screens.
    We keep the transform there as well assuming the lock screen fits.
  * home: Handle osk-button visibility.
    This was currently split between the button and the home
    bar which resulted in the button being shown although
    it should stay hidden because the OSK was disbled. (Closes: #403)

  [ Alexander Mikhaylenko ]
  * build: Compile gschemas on install
  * overview: Enable carousel reveal animation
  * feedback-manager: Stop using deprecated signals.
    This will be useful when PhoshActivity stops subclassing GtkButton.
  * Add PhoshAnimation.
    This will help us to have less verbose code later.
  * Add PhoshSwipeAwayBin.
    Implement a simple widget for swipe-to-remove pattern. It's always
    vertical and changes the child's position and opacity during the swipe.
  * activity: Implement swipe-to-close.
    Stop subclassing GtkButton, instead contain a PhoshSwipeAwayBin
    and a GtkButton inside. Pass through the clicked signal from the button.
    Make close button animate the swipe bin so that closing is animated too.
  * activity: Show close button only on hover.
    Now that we have another way to close apps on touch, let's hide the button
    and show it only on hover. This essentially makes it pointer-only.
  * Require libhandy 1.0.2

  [ Arnaud Ferraris ]
  * shell: add an accessor for the mode manager.
    Other modules should be able to query the device type too.
  * lockscreen-manager: undo transform only for phones.
    If the display is large enough to make the keypad usable even when
    rotated, we should not try to rotate it back to the default orientation.

 -- Guido Günther <agx@sigxcpu.org>  Sun, 15 Nov 2020 11:35:52 +0100

phosh (0.5.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * debian: Depend on gnome-shell-common.
    We use that schema for the keybindings.
  * ci: Don't depend on gnome-session.
    This would have avoided the missing schema regression
  * osk-button: Remove unused defines
  * Don't hide OSK on lock screen.
    Let is pop up if requested, only hide it when locking.
    Closes: #406
  * osk-manager: Fix availability->visibility sync.
    Things like osk-button should look unpressed when the dbus name
    goes away.

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Марко М. Костић (Marko M. Kostić) ]
  * po: Update Serbian translation

  [ Arnaud Ferraris ]
  * docked-manager: make tablets dockable too.
    The current code considers that only phones are dockable. This patch
    improves the device mode check so that tablets also benefit from auto mode
    switch (tested on the PineTab).

 -- Guido Günther <agx@sigxcpu.org>  Tue, 03 Nov 2020 17:18:48 +0100

phosh (0.5.0) amber-phone; urgency=medium

  [ Guido Günther ]
  * build: Sort enums alphabetically
  * enums: Sort types alphabetically
  * torch-manager: Cleanup DBus proxy
  * feedback-manager: Chain up constructed
  * shell: Don't show notification when settings menu is open.
    This avoids a notification banner when the notificaiton list
    is already open.
  * settings: Use g_signal_connect_object.
    The panel might go away (e.g. when moved between outputs). This
    makes sure the notification list does not send to an already
    disposed object.
  * settings: Make sure we fill the notification list initially.
    Otherwise it remains empty e.g. when we move the primary display.
  * lockscreen-manager: Use correct level for debug message
  * wayland: Drop unused property setter
  * settings: Enforce four quick settings per row.
    We allowed to go down to three which makes things look bad when quick
    settings information gets too wide (e.g. wifi SSID).
  * debian: Support nodoc build profile.
    The doc build takes ages and it's often not needed on the device
  * monitor: Drop duplicate setting of wl_output_done
  * wayland: Drop priv
    for less code. And rather check for the right type in public methods
    instead.
  * osk-button: Show/hide depending on a11y setting.
    This makes sure we don't show the button even though
    squeekboard would not unfold. (Closes: #363)
  * osk-manager: Simplify on_osk_show
  * osk-manager: Fix lockscreen_manager typo
  * osk-manager: Use g_autoptr
  * osk-manager: Only hide the keyboard when we lock the screen.
    So far we hid it on every state change.
  * osk-manager: Handle visibility property directly.
    This makes the visibility property r/o and makes sure
    it gets updated when the corresponding DBus property actually changes
    (after the async call or when we're told it changed from the OSK).
    This makes sure they stay in sync. This is also simpler since we don't
    need to bother with variant parsing, etc.
  * overview: Focus current activity.
    This allows to keyboard navigate on the home screen
  * Switch keyboard-events to GAction.
    This allows to register global keyboard events from different
    parts of the shell easily and moves it's handling out of
    the overcrowded settings.
  * keyboard-events: Ungrab accelerator when GAction is removed
  * overview: Move public functions past `_new`
    As per coding style
  * app-grid: Move public functions past `_new`
    As per conding style.
  * overview: Add helper to focus app search
  * settings: Ungrab keyboard events (Closes: #398)
  * home: Bind key to show overview.
    We use org.gnome.shell.keybindings `toggle-overview` and
    `toggle-application-view` to focus the application switcher
    and app search respectively.
  * d/control: Depend on phoc that doesn't crash when unbinding keyboard grabs
  * shell: Create toplevel manager early.
    So far we were lucky that no wl_display_roundtrip () would let
    us miss existing toplevels.
  * shell: Process all pending wayland events on startup.
    This is needed to get reliable monitor information.
  * shell: Pick correct built in monitor.
    Simplify the code now that we know we have all the monitor
    information (Closes: #392)
  * panel: Fix typo
  * monitor-manager: Add property for number of monitors.
    This allows to listen to a single signal when the number
    of monitors changed.
  * monitor-manager: move DBus setup into idle callback.
    This makes sure we expose the DBus interface past setting
    up all the monitor related wayland protocol listeners
  * wayland: Add G_{BEGIN,END}_DECLS
  * wayland: Provide seat capabilities.
    We don't bother to introduce a separate PhoshWlSeat object
    for that yet.
  * dbus: Add org.freedesktop.hostname1 interface.
    So we can cherry the chassis type
  * data: Add symbolic phone icons.
    From
    https://gitlab.gnome.org/Teams/Design/icon-development-kit/
    as of
    0831cbb900e02aaa37bd270a25171c1751394cb8
  * Add mode-manager to handle different device modes.
    This uses logind's chassis type and informtion about
    connected hardware to dermine the device type and
    what the device acts like (e.g. a phone with monitor
    and keyboard/mouse should be handled like a desktop).
  * Add 'docked' quick setting and manager.
    Docked manager figures out if a device has enough
    hardware around to be treated as desktop/laptop.
    If so it sets the corresponding settings like
    floating windows, etc.
    The quick setting allows to override this.
  * status-bar: Add docked icon when docked.
    Show no icon when undocked
  * osk-button: Show/hide depending on a11y setting.
    This makes sure we don't show the button even though
    squeekboard would not unfold. (Closes: #363)
  * schema: Add adaptive apps filter entry.
    This will allow the shell to have a positive list of adaptive
    apps in case their desktop files aren't up to date yet.

  [ Марко М. Костић (Marko M. Kostić) ]
  * po: Update Serbian translation

 -- Guido Günther <agx@sigxcpu.org>  Tue, 27 Oct 2020 10:13:19 +0100

phosh (0.4.5) amber-phone; urgency=medium

  [ Anders Jonsson ]
  * po: Update Swedish translation

  [ Guido Günther ]
  * phosh.desktop: Add 'DesktopNames'
    Handle it where it's supposed to be handled.
  * shell: Drop env setup.
    The session manager is supposed to handle this.
  * d/phosh.service: Set XDG_CURRENT_DESKTOP.
    Do it here until we run a display manager.
  * gitlab-ci: Use libhandy1 for alpine builds.
    This fixes the CI builds
  * po: Rename pt_PT.po to pt.po.
    This allows to fall back for other Portugese translations.
  * feedback-manager: Drop TODO.
    We use the correct icons since some time
  * keyboard-events: Move comment to signal description.
    The comment confused gtk-doc since it stared with /** and the signal has
    a clearer gtk-doc string already.
  * feedback-manager: Fix gtk-doc strings
  * home: Fix gtk-doc strings
  * home: Properly document enum values.
    This allows gtk-doc to pick it up.
  * monitor: Make declaration match definition.
    We call the object we act on self.
  * layersurface: Fix gtk-doc strings.
    Document the function parameters
  * phosh-wwan-iface: Document interface.
    This makes gtk-doc happy.
  * phosh-wwan-mm: Mention ModemManager.
    Now that we have two implementations mention MM here.
  * docs: Add some missing client protocols.
    This brings down the number of warnings significantly.
  * quick-setting: Fix class names.
    Several lacked the Phosh prefix and hence did not turn into links.
  * connectivity-info: Fix class name
  * bt-info: Fix property separator.
    It's ':' for props not '::'.
  * shell: Make definition match declaration.
    Fixes several gtk-doc warnings
  * wwaninfo: Fix class name.
    Fixes another gtk-doc warning.
  * shell: Add missing parameter docs
  * layser-surface: Document configured signal
    and fix typos related to that.
  * thumbnail: Add class doc.
    Avoids another gtk-doc warning.
  * panel: Properly document enum.
    Use gtk-doc strings to avoid warning and make them show up in
    the documentation.
  * tools: Add a tool to check for gtk-doc warnings.
    This ignores warnings from the generated DBus and wayland
    protocols for the moment but reduces the noise so we avoid
    errors in new code.
  * system-prompter: Unlink PhoshSystemPromtper.
    It's not a class, so we can't link to it.
  * session: Unlink PhoshSession.
    It's not a class, so we can't link to it. Update the doc
    string while at it.
  * polkit-auth-prompt: Unlink PolkitAgentSession.
    Polkitsdocumentation does not end up in /u/s/gtk-doc
    on Debian so the reference can't be resolved.
  * layersuface: Add missing G_{BEGIN,END}_DECLS
  * network-auth-prompt: Add missing G_{BEGIN,END}_DECLS
  * docs: Drop gi ref.
    We don't use it.
  * d/control: Add doc packages.
    Needed to get the cross references right
  * doc-check: Ignore linke to NMClient|NMConnection.
    They can' be properly linked to even with the docs installed
    due to their odd type.
  * monitor: Document PhoshMonitorConnectorType
  * notification: Document PhoshNotificationUrgency
  * notification: Document PhoshNotificationReason
  * shell-network-agent: Stub enum doc.
    Use a minimal change since this file is in contrib/.
  * gitlab-ci: Run documentation check.
    This avoids regression on the generated documentation. We
    ignore errors from generated files.
  * Rename session presence dbus interface class to  PhoshSessionPresenceDBusPresence.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * Rename sensor-proxy dbus interface class to PhoshDBusSensorProxyProxy.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * Rename rfkill dbus interface class to PhoshRfkillDBus.
    We have mixed Dbus vs DBus spelling in several interfaces but we want to
    use the later.
  * docs: Sort in keyboard-events alphabetically
  * monitor-manager: Add missing G_{BEGIN,END}_DECLS
  * monitor-manager: Use g_autoptr.
    Eases upcoming additions
  * monitor: Add missing G_{BEGIN,END}_DECLS
  * monitor: Make debugging more useful
  * shell: Don't allow to set rotation property.
    It's marked as read-only
  * monitor-manager: Add sections.
    This makes it easier to figure out where to add new
    private methods.
  * Wire up zwlr_output_management_v1.
    This does the minimum to maintain a list of heads. A
    head represents a display device that might or might
    not be part of the current compositor space.
  * monitor: Add monitor transforms.
    This allows us to not leak the wayland transforms to classes
    outside PhoshMonitor and PhoshMonitorManager.
  * phosh-head: Add pending state.
    This will allow monitor-manager to prepare pending configuration
    updates.
  * PhoshMonitorManager: Allow to apply state changes.
    This adds the methods to change and apply new
    configuration state.
  * Switch from primary monitor rotation to transform.
    Use the output transform in instead of a degree value.
    This will allow us to handle flipped configuraitons correctly.
  * shell: Use wlr-output-management instead of phosh private protocol.
    This gives us better control which output to rotate and does
    away with one more private protocol.
  * monitor-manager: Get modes from head instead of monitor
    wlr-output-management has all the modes listed while wlroots only
    gives us the current mode via xdg_output.
  * monitor-manager: Don't apply non persistent config changes.
    This makes sure we don't switch the primary display right away
    but rather on 'apply'.
  * quick-settings: Don't leak panel in error path
  * quick-settings: Keep DBus proxy around long enough
    g_dbus_proxy_call does not take a ref so we were just lucky
    that proxy was still valid in `call_dbus_cb` so far.
  * Move helpers to tools/
    There's no clear distinction between them.
  * gresources: Sort icons alphabetically
  * bt-manager: Fix typo
  * settings: Fix indentation error
  * settings: Fix misaligned function definitions
  * settings: Sort type_ensures and template bindings alphabetically
  * settings: Don't let settings_constructed grow out of bounds.
    Use separate `setup_` functions for individual widgets. This
    helps shuffling stuff around later on and we can drop
    create_vol_channel_bar.
  * dbus: Add (not yet merged) UPower Torch interface
  * Add initial torch support.
    Add a simple torch quick setting.
  * shell: Fix typo
  * shell: Update primary monitor when it goes away (Closes: #382)
  * lockscreen-manager: Drop PhoshLockscreenManagerPrivate.
    It's a finaly type so no need for priv (and it's very unlikely
    we'll ever derive here)
  * lockscreen-manager: Fix up indentation.
    Since we created enough churn in the previous commit let's
    fix the indentation too.
  * tests: Drop unused test.
    It's neither built nor run
  * tests: Don't include bad-props.h when unused
  * tests: Rework tests using g_test_expect_message.
    This no longer works with structured logging so use
    g_test_trap_assert_stderr() as recomended by glib docs.
  * Use structured logging.
    This will pick a suitable log writer automatically and
    pass on structed information when e.g. logging to the journal.
  * Add a custom log handler.
    This is to a large extend what glib does but we don't read the levels
    from the environment but allow to set them when setting the handler.
    Resetting the handler instead of just adjusting the domains has the
    advantage that we can pass in new user_data. Otherwise we'd have to keep
    the current log domains around and protect them by an additional mutex
    to not corrupt the log domains of handlers running in other threads.
    When setting the handler glib handles that for us since handler
    replacement is already mutex protected.
  * main: Toggle debug messages on SIGUSR1.
    We need to use a custom log handler to stay clear
    of modifying the env var.
  * d/gbp.conf: Automatically bump meson.build version.
    No more manual editing.

  [ Juliano de Souza Camargo ]
  * po: Update Portuguese translation

  [ Emin Tufan Çetin ]
  * po: Update Turkish translation

  [ Julian Sparber ]
  * docs: add info about the env GTK_INSPECTOR_DISPLAY

  [ Tobias Bernard ]
  * Add torch icons

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

 -- Guido Günther <agx@sigxcpu.org>  Sun, 11 Oct 2020 13:50:48 +0200

phosh (0.4.4) amber-phone; urgency=medium

  [ Guido Günther ]
  * gitlab-ci: Add i386 cross build.
    This ensures we don't break 32bit again. We allow failure
    though since we need to pull packages from Debian for that
    that might not always be up to date.
  * timestamp-label: Unbreak build on 32 bit platforms.
    Use a G_ format specifier for GTimeSpan.
  * gitlab-ci: Don't use Immediate-Configure.
    This confuses apt like.
  * media-player: Clarify some translatable strings
  * media-player.ui: Match ui strings with the ones in the code
  * wwaninfo: Disambiguate 'cellular'
  * po: Update pot file
  * Drop zanata.xml.
    We're using GNOME's translation infrastructure
  * README: update description.
  * d/rules: Work around failed doc build on install.
    This works around a problem where an invocation
    of `meson-install` does not generate all docs. See
    https://github.com/mesonbuild/meson/issues/2831
  * docs: Split out homepage url
  * debian: Build-depend on pandoc for the deb build
  * Add gtk-markdown-to-docbook (taken from GTK)
  * docs: Add some context
  * data/phosh.in: Be a bit more friendly when asked for help
  * po: Add initial Korean translation. Thanks Seong-ho Cho
  * doap: Add Zander Brown.
  * debian: Install all phosh related schema files.
    Otherwise we lack the enums and fail to start
  * Switch to libhandy 1.0
  * treewide: Replace HdyColumn by HdyClamp
  * lockscreen: Adjust to HdyKeypad API changes
  * treewide: libhandy API is stable now
  * lockscreen: Use HdyCarousel instead of HdyPaginator
  * overview: Use HdyCarousel instead of HdyPaginator
  * style: Adust to HdyKeypad internal changes.
    The grid is now embeded in the widget.
  * gitlab-ci: Use libhandy-1 in smoketests too

  [ Zander Brown ]
  * l10n: disambiguate timestamp strings
  * po: Update British English translation
  * general: update license headers.
    Make sure all our license headers match the style in HACKING.md
  * ci: validate license headers
  * treewide: Use two empty lines between functions.
  * arrow: Use G_PI instead of M_PI
  * treewide: Don't use C++ style comments. As per coding style.
  * general: use char instead of gchar.
    Usage of gchar is discouraged in projects such as glib/gtk
    In gtk4 all usage of gchar has been dropped
    Closes: #364
  * general: use int/double/float instead of gint etc.
    Usage of gint,gdouble,gfloat is discouraged in projects such as glib/gtk
    In gtk4 all usage of gint/gdouble/gfloat has been dropped
    Closes: #364
  * keyboard-events: drop unused props global

  [ anteater ]
  * wwan-mm: cleanups for style/consistency
  * wwan-mm: use Ugly_Case to correct MMDBus codegen
  * wwan: build: reformat
    make things more like other meson.build files and avoid rightward drift
  * wwaninfo: use PHOSH_WWAN interface to access wwan object
    This is more flexible and PhoshWwanInfo doesn't care about the
    implementing type
  * wwaninfo: reorder includes
  * wwan: add PhoshWWanOfono
  * shell: add missing whitespace
  * shell: clean up dispose, fixing leaks
  * shell: reorder includes
  * Add and use wwan-backend setting

  [ Luís Fernando Stürmer da Rosa ]
  * po: Update Brazilian Portuguese translation

  [ Sebastian Spaeth ]
  * po: Fix German translation of Phone Shell.

  [ Nikola Pavlica ]
  * po: Add Serbian (Cyrilic) translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Emin Tufan Çetin ]
  * po: Update Turkish translation

  [ Fabio Tomat ]
  * po: Add friulian translations

  [ scootergrisen ]
  * po: Update Danish translation

  [ Марко М. Костић (Marko M. Kostić) ]
  * po: Update Serbian translation

 -- Guido Günther <agx@sigxcpu.org>  Fri, 18 Sep 2020 13:37:36 +0200

phosh (0.4.3) amber-phone; urgency=medium

  [ Darren R ]
  * Add timestamp-label. The PhoshTimeStamp label display relative times and
    will be used in notifications.

  [ chefe ]
  * po: Merge all german translations together

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Guido Günther ]
  * po: Update pot file

  [ Evangelos Ribeiro Tzaras ]
  * Add keyboard forwarding protocol. This will allow the
    Volume Buttons to work with recent phoc.

  [ Daniel Mustieles ]
  * po: Update Spanish translation

 -- Guido Günther <agx@sigxcpu.org>  Sun, 02 Aug 2020 18:47:19 +0200

phosh (0.4.2) amber-phone; urgency=medium

  [ Guido Günther ]
  * shell: Add phosh_shell_get_locked ()
    This makes it symmetric with `phosh_shell_set_locked ()`.
  * settings: Emit feedback when notifications get added.
    We only to so when the screen is locked. The feedback is ended
    when the list is cleared.

  [ Marc Riera Irigoyen ]
  * po: Update Catalan translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Tim Sabsch ]
  * po: Update German translation

  [ Daniel Șerbănescu ]
  * po: Update Romanian translation

  [ Arnaud Ferraris ]
  * d/control: drop Recommends: phoc
    phoc is now a dependency, it shouldn't appear in the `Recommends:`
    section anymore

  [ Luca Weiss ]
  * panel: implement restart action.
    Fixes #241

 -- Guido Günther <agx@sigxcpu.org>  Fri, 24 Jul 2020 10:55:08 +0200

phosh (0.4.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * wifimanager: Make variable name match property.  Otherwise it's confusing
    what it refers too.
  * wifimanager: Compare to the old state rather than the probed state.  Emit
    property changes when the old and new state differ not when our state
    differs from detected devices.
  * shell: Attach to primary monitors configured signal.  This allows us to
    emit the 'rotated' signal when it really happened.
  * rotateinfo: Mark orientations as translatable
  * rotateinfo: Take display geometry into account.
    We assumed portrait from the very beginning but that's not correct
    on laptops and TVs. (Closes: #326)
  * shell: Undo rotation on startup.
    This makes sure we get an unrotated shell in any case
    (e.g. if phosh crashes in landscape mode) (Closes: #265)
  * monitor: Fix several gtk-doc strings.
    This fixes some of the warnings during doc generation
  * background: Load image async.
    This avoids blocking on I/O.
  * background: Avoid updating the background twice.
    Only update the settings on layer-surface configure but wait for the
    monitor::configured signal before drawing anything.
    This avoids drawing the background twice on each rotation causing even
    more flicker.
  * background-manager: Tell background about it's scale
    gtk_widget_get_scale_factor gives us the wrong value with multiple
    outputs of different scale.
  * background: Skip any image loading if layer surface isn't configured.
    There's no point to waste resources and we don't have valid dimensios
    and it breaks the tests.
  * wifiinfo: Sync initial state.
    The downside of not using a property binding is that we need to
    do that on our own.
  * monitor-manager: Set logical position.
    This makes the monitor layout in g-c-c match what the compositor thinks
    it is so monitors are displayed next to each other rather than over
    each other.
  * build: Move all dependency() calls to top level build file
  * Bluetooth quick setting and status indicator
  * background: Avoid warning on NULL pixbuf.
  * wwan-mm: Connect to modem async
  * wwaninfo: Use operator name as detail.
    This gives us the operator name in quick settings

  [ Julian Sparber ]
  * AppGrid: Don't set the focus to AppGridButton when clicking on them.
    Set the property `focus-on-click` to TRUE so that we don't show the blue
    border and don't set the focus to the AppGridButton when clicking on
    them.

  [ Emin Tufan Çetin ]
  * po: Update Turkish translation

  [ Daniel Șerbănescu ]
  * po: Update Romanian translation

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ scootergrisen ]
  * po: Update Danish translation

  [ Balázs Meskó ]
  * po: Update Hungarian translation

  [ Sebastian Krzyszkowiak ]
  * overview: Clean up unneeded size checks.

 -- Guido Günther <agx@sigxcpu.org>  Mon, 06 Jul 2020 10:25:20 +0200

phosh (0.4.0) amber-phone; urgency=high

  [ Guido Günther ]
  * feedbackinfo: Add translation note.
    Link to feedbackd's theme description to help translators
  * media-player: Don't act on every name change.
    We were looking at all vanished DBus names instead of only players. This
    lead to a slight flicker of the widget e.g. on audio events or
    notifications (which was especially noticeable on the lock screen).
  * PhoshLayerSurface: Add missing sentinel
  * Add small testlib allowing for wayland based tests using phosh-wayland
    and spawning a phoc instance. Add two initial tests using that.
  * monitor: Properly invaliate wl_output_done.
    On `wl_output` configuration changes invalidate the done flag
    so another `configured` signal is emitted once all changes
    are processed. So far we only handled the initial configure.
  * phosh-wayland: Clarify ownership of phosh_wayland_get_wl_outputs
  * shell: Do nothing when primary monitor does not change
  * shell: Don't clear faders when we dispose the panels
  * status-icon: Drop show-always (Closes: #312)
  * Add WWAN quicksetting
  * gitlab-ci: be more robust when using xvfb
  * background-manager: Avoid recreating backgrounds too often
    Only do so initially and let PhoshBackground adjust to configuration
    changes notified by PhoshBackground intead.
  * background: Skip image loading when using colored mode.
    There's no need to even try to load an image if we're not using
    it later on.
  * tests: Add a simple background test.
  * d/rules: Depend on phoc >= 0.4.0.
    While we can run with older versions this makes sure people
    pull in a recent enough version for all the feaures.

  [ Daniel Șerbănescu ]
  * po: Update Romanian Translation

  [ Sebastian Krzyszkowiak ]
  * PhoshHome: Use PhoshLayerSurface signals and props to handle resizing.
    This fixes the issue with disappearing bottom bar when output dimensions
    change and it actually more in line with what we wanted to achieve there.
  * PhoshWayland: Don't require phosh_private interface in latest version.
    We can still deal with earlier ones.
  * Render window thumbnails in the overview
  * wwaninfo: Use network-cellular-disabled-symbolic when no hw is present
  * background: Stop listening to `rotation`
    PhoshMonitor now signals rotation correctly

  [ marty1885 ]
  * monitor: prevent sending multiple event in one monitor configuration
    change
  * background: recreate background on monitor geometry change

  [ Julian Sparber ]
  * wifimanager: Use disabled icon for unknown states.
  * Add Wifi quicksetting

 -- Guido Günther <agx@sigxcpu.org>  Tue, 30 Jun 2020 14:14:27 +0200

phosh (0.3.1) amber-phone; urgency=medium

  [ Sebastian Krzyszkowiak ]
  * PhoshOverview: Add haptic feedback when clicking on activity
  * feedback-manager: Add a helper to trigger feedback on button press/release

  [ Daniel Șerbănescu ]
  * po: Add Romanian translation

  [ Rafael Fontenelle ]
  * Update Brazilian Portuguese translation

  [ Guido Günther ]
  * feedback-manager: Make 'connect_feedback' specific to buttons.
    Those have 'clicked' and 'released' signals.
  * app-grid-button: Make sure we unref the allocated gesture
  * build: Bump version
  * lockscreen: Drop HDY_DISABLE_DEPRECATION_WARNINGS.
    We're not using any deprecated widgets
  * lockscreen: Add G_{BEGIN,END}_DECLS
  * Lots of gtk-doc fixups
  * Build documentation via gtk-doc.
    We need a shared lib for gtk-doc, only build this
    when building Documentation.
    Closes: #88
  * debian: Add phoc-doc.
    This makes the documentation useable via devhelp.
  * gitlab-ci: Build documentation
  * docs: Document C file layout
  * gitlabci: Move coverage gathering to different step
    Fixes spurious build failures.
  * phoc.ini: Drop cursor config.
    Phoc does not care anymore and with one output it does not match
    anyway. So people with multiple outputs and touch need to run
    the latest phoc release. This avoids a warning on phoc startup.
  * phosh: Indicate connectivity state.
    We show no icon if we're connected but indicate the lack of a connection
    (or if we have a connection and can't reach the internet)
    Closes: #229
  * brightness: Connect async to g-s-d.
    Shell startup sometimes stalls for a longer period of time. Connect
    async to g-s-d to avoid at least one stall spotted with gdb.
    It also fixes a leaked DBus connection.
  * css cleanups
  * tests: Don't try to spawn atk bridge.
  * Add media-player widget.
    This interfaces with mpris Mediaplayer2 based players
    Closes: #94
  * settings: Add media player.
    Will only be shown when a player is present
  * lockscreen: Add media player widget
  * po: Update pot file.
    This introduces the new translatable strings for the music player.
  * layer-surface: Add the configured width and height to debug message.
    We have that anyway so make it more useful
  * layer-surface: Fix indentation
  * layer-surface: Add a section header
  * top-panel: Drop useless placeholder
  * top-panel: Remove extra vertical padding from power button
  * gitlab-ci: Skip po and doc when using PKG_ONLY
  * media-player: Wire up Can{Go{Forward,Previous},Play}
    This makes sure we don't enable ui elements the player can't handle
  * media-player: Add a playable property.
    The player might be stopped or not have a song list. Add a playable
    property so the container has a better idea if it's worth showing
    the player.
  * lockscreen: Use playable property of media player.
    We don't need a widget for a stopped or unusable player.
  * settings: Use playable property of media player.
    We don't need a widget for a stopped or unusable player.
    Closes: #315
  * feedbackinfo: Listen for feedback changes.
    When switching from silent to quiet (and back) the icon name does not
    change so we need to listen to profile name changes to update the
    text below the icon.

  [ Zander Brown ]
  * app-list-model: phantom launcher.
    At last a fix for the missing item problem

  [ Yuri Chornoivan ]
  * po: Update Ukrainian translation

  [ Alexander Mittermeier ]
  * Remove reference to rootston as the link was broken and the project is
    deprecated. https://github.com/swaywm/rootston

 -- Guido Günther <agx@sigxcpu.org>  Mon, 22 Jun 2020 16:27:59 +0200

phosh (0.3.0) amber-phone; urgency=medium

  [ Arnaud Ferraris ]
  * monitor: add "power-mode" property.
    In order to be able to notify other objects when the power state of a
    monitor changes, this commit adds a `power-mode` property to the monitor
    class.
  * shell: lock screen when builtin monitor is powered off
  * src: fix typos
  * phosh.service: don't hardcode user name.
    In order to allow the user to change the default username, use the UID
    instead of the username.
  * po: fix French translation.
    This patch fixes the long date format on the lockscreen.

  [ Mohammed Sadiq ]
  * polkit-auth-prompt: Use symbolic icon

  [ Guido Günther ]
  * settings: Drop PhoshSettingsPrivate.
    We'll never derive from that widget so drop the indirections.
  * settings: Ensure types during class_init.
    No need to do so during each instance creation.
  * panel: Drop unused height getter
  * shell: Move settings into top bar widget.
    This will allow us to drop the xdg popup code.
    (Closes: #155, #216)
  * shell: Drop xdg popup handling.
    We don't use it atm and if we need popups again we want to wrap
    them in proper objects.
  * panel: Set keyboard interactivity.
    This allows us for keyboard navigation in the settings menu
  * panel: Disallow focus on panel widgets.
    We only want to keyboard navigate settings
  * settings: Fix QuickSetting keyboard focus behaviour.
    We set each QuickSetting to not-focusable since we otherwise
    have to press TAB twice on each button: once for the flowbox
    focus and one for the button focus.
    To trigger the QuickSetting we wire up the FlowBox's `child-activated`
    signal.
  * panel: Close settings menu on ESC and when clicking/touching into empty
    area.
  * smoketest: Keep phoc around.
    Phoc changed to exit after the session exited but the smoke tests rely on
    a running compositor so keep it around to parse some parameters.
  * po: Last time sync from zanata.
    We're switching to GNOME infra.
  * README: Point to GNOMEs translation system
  * panel: Drop superfluous gettext define.
    We have gi18n.h for that.
  * monitor: Allow to set power save mode.
    This allows to set a monitors power save mode:
    OFF: monitor is turned off
    ON: monitor is turned on
    We don't use the constants from the wayland protocol
    to not leak the implementation.
  * Process enums for monitor.h too.
    They will be used in the following commit
  * shell: Add method to turn on power saving.
    This method can be used to turn power saving on or off.
    Currently it only turn on power saving for the display but
    this can be extended in the future.
  * monitor: Use PhoshMonitorPowerSaveMode enum.
    This makes sure we treat the wayland protocol enum as internal
    to the monitor implementation.
  * monitor-manager: Remove unused PowerSaveMode
  * panel: Add a GtkStack to switch top bar.
    The top bar has a different content when the settings menu is
    unfolded. Add a stack for that.
  * panel: Move shutdown to power popover
  * Move power off from settings menu to top bar
  * Move lock screen button to power popover
  * session: Add logout.
    Since we don't have a logout dialog yet we don't ask gnome-session
    to show one either.
  * panel: Wire up logout (Closes: #234)
  * settings: Drop button to launch settings.
    This frees up space for the notification area.
  * panel: Keep settings widget around.
    This avoids e.g. a jumpy volume slider when unfolding the
    settings menu. We manage it outside the stack for later gesture support.
  * wifimanager: Avoid excessive g_strdup() on signal strength changes.
    Suggested by Zander Brown.
  * wwaninfo: Avoid excessive g_strdup() on signal strength changes
  * status-icon: Don't leak icon name
    phosh_status_icon_get_icon_name() returns a copy so we need to
    free it and also can't compare by address.
  * tests: Test phosh_status_icon_set_icon_name()
  * gitlab-ci: Barf on files with translations but not in POTFILES.in
  * po: Add files not needing translations to POTFILES.skip
  * po: Sort POTFILES.in alphabetically
  * po: Add missing source file (Closes: #305)
  * po: Update pot file
  * gitlab-ci: Allow to skip build and test.
    Sometimes we just want a package (e.g. when only changing the packaging or
    when we're sure(tm) we didn't break anything). Hence allo to skip the
    build and test stages via `PKG_ONLY = 1`
  * data: Rename compositor config to phoc.ini.
  * data: phoc.ini: Don't fall back to rootston.
    This gives confusing error messages when e.g. phoc is not installed.
  * data: phoc.ini: Honor WLR_BACKENDS.
  * settings: Hide notification box when empty
  * notification-tray: Move style closer to designs.
    Use a gray background for the tray and no drop shadows for individual
    bubbles.
  * settings: Close settings after acting on the last notification
  * feedback-manager: Add helper to trigger async feedback.
    We don't pass the manager itself since it's not needed.
  * home: Emit feedback event on home bar press
  * overview: Trigger feedback on window close
  * panel: Trigger feedback when top bar is clicked.
    This can go away once we have gestures in place.
  * app-grid: Provide haptic feedback on app launch
  * shell: Avoid signal emission when shell is already locked.
    LockscreenManager got this right but the shell would emit a signal on
    every invcation although the state would not change.
  * MonitorManager: Use wlr-power-manager to set handle GNOMEs power_save_mode
    requests. This allows the screen to blank when g-s-d thinks so.
  * shell: powersave: Just lock the screen.
    With the monitor-manager's PowerSaveMode wired up it's enough to lock
    the screen to make g-s-d then tell us to blank the screen.
    This makes sure compositor, shell and g-s-d have the same idea about
    the screen state.

  [ Efstathios Iosifidis ]
  * Update Greek translation

  [ Rafael Fontenelle ]
  * phosh.doap: fix URL to source code repository
  * Update Brazilian Portuguese translation

  [ Danial Behzadi ]
  * Add Persian Translation
  * Add Persian to Linguas

  [ Zander Brown ]
  * utils: phosh_clear_handler, g_clear_handler for older GLib.
    This can go away once we dep on 2.62
  * notification-frame: fix a leak when header tapped
    get_item returns a reference which we weren't dropping causing some
    notifications to live forever
  * notification: store the urgency/transient/resident/category hints
    urgency/transient/resident modify the behaviour of the message tray
    category is included for completeness, we may never use it
    (sound hints are still ignored as we don't declare support for it)
  * notifications: a model for notifications from a single source
  * notifications: keep a list of notifications
  * tests: test the new notification models
  * notifications: maintain a message list
    expired notifications are no longer automatically dismissed
  * notifications: add list to settings drop-down
  * tools: explain notify-[blocks/server-standalone] use

  [ Yuri Chornoivan ]
  * Update Ukrainian translation

  [ Yi-Jyun Pan ]
  * i18n: zh_TW: update translation
    https://l10n.gnome.org/vertimus/phosh/master/po/zh_TW/

 -- Guido Günther <agx@sigxcpu.org>  Tue, 19 May 2020 08:08:34 +0200

phosh (0.2.2) amber-phone; urgency=medium

  [ Guido Günther ]
  * wwan: use interface prefix.  This shortens the function names
  * WWan: Connect to ModemManager async.
    The rest is all propert access which is async.
    (Closes: #289)
  * wwan: Free GDBusObjects too. We only freed the list itself so far.
  * lockscreen: Drop unused variables
  * settings-menu: Drop expand from feedback button.
    This makes sure we don't use up extra space when other elements get
    hidden (like the music player)
  * shell: Avoid gtk_widget_show_all.
    This is needed in preparation for #155 anyway.
  * lockscreen: Fix unlock page type.
    It's a grid not a box
  * network-auth-prompt: Inform user about unknown auth types.
    This avoids another empty dialog similar to #292.

  [ Arnaud Ferraris ]
  * wifimanager: create network-auth-prompt only for WiFi connections.
    While the network-auth-prompt only supports only WiFi connections, it
    would still show (empty) if NM sends a secrets request for WWAN.
    This patch makes sure the prompt isn't created if the connection type
    isn't WiFi. (Closes: #292)

 -- Guido Günther <agx@sigxcpu.org>  Fri, 03 Apr 2020 11:26:01 +0200

phosh (0.2.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * feedbackinfo: Use 'On' for the 'full' feedback theme.
    See: #276
  * wwaninfo: Don't overwrite sim missing status.
    This allows the sim-missing status to be displayed. (Closes: #281)
  * monitor: Wire up zwlr_output_power_management.
  * protocol: Generate protocol with private code.
    That's sufficient since we don't want to export anything
  * po: Update translations from zanata
    Thanks to all the translators!
  * Settings: wire up feedback setting long press.
    This opens the notifications panel now that we can configure
    feedback there.
  * Shell: Don't access variable before type check
  * Feedbackinfo: Toggle to silent instead of quiet.
    Also turn of vibra with the quick setting. Vibra can be turned on via
    g-c-c.
  * gitlab-ci: Run xvfb-run with no-reset.
    This avoids spurious test failures.

  [ Rasmus Thomsen ]
  * gitlab-ci: pull in feedbackd on Alpine too
    fixes #278

  [ Julian Sparber ]
  * Wifimangager: set icon-name always via the same function.

  [ Zander Brown ]
  * protocols: generate with public-code not code
    public-code does the same thing but without logging warnings
  * app-list: fix lookup cache.
    We never invalidated the cache leaving us in an invalid state after
    install/remove
    This potentially explains the missing icons that turn up after reboot
    (probably) fix https://source.puri.sm/Librem5/phosh/issues/213
  * apps: use a common placeholder icon (Closes: #197)

  [ Darren R ]
  * README: Explain how to skip gnome-session setup.
    This avoids spawning unintended services.

  [ Sebastian Krzyszkowiak ]
  * panel: Clean up unused widget references

 -- Guido Günther <agx@sigxcpu.org>  Thu, 19 Mar 2020 19:07:18 +0100

phosh (0.2.0) amber-phone; urgency=medium

  [ Guido Günther ]
  * Upload to amber-phone (since amber has no feedbackd yet)
  * phosh: Register the session late so calls sees the right status
    Closes: https://source.puri.sm/Librem5/calls/issues/126
  * Proximity sensor support
    Closes: #120
  * Add Feedback quick settings to toggle current feedback status.
  * wifimanager: consistently update icon on enable/disable/kill switch
  * Fix build with meson 0.53
  * Fix build with tests disabled
  * build: Allow to build libfeedback as subproject.
  * phosh: Use drm backend by default to help wlroots 0.10.0 and hence phoc
    0.1.6.
  * Update translations including 7 completely new ones. Thanks everyone! 

  [ Sebastian Krzyszkowiak ]
  * ui: Adjust the icon margin of backlight slider in settings menu.

  [ Julian Sparber ]
  * Improve lockscreen unlock button styling
  * Introduce QuickSetting base class for quicksettings
  * Introduce StatusIcon base class for top bar icons and
    quicksettings
  * Groundwork for WWan and Wifi quicksettings
  * Add BatteryInfo quick setting and show percentage
    Closes: #268
  * Make rotation a quick setting

  [ Zander Brown ]
  * Groundwork for future notification improvements:
    - split out notification content from banner
    - split the frame from the banner.
    - track notifications not widgets as preparation
    - introduce NotificationFrame
  * editorconfig: strip whitespace.

 -- Guido Günther <agx@sigxcpu.org>  Wed, 26 Feb 2020 09:34:47 +0100

phosh (0.1.8) amber; urgency=medium

  [ Julian Sparber ]
  * Lockscreen: Replace submit btn with unlock btn
  * Fader: fade completely to black on shutdown.
    Closes: #257
  * Fix brightness slider being jumpy while sliding.
    Closes: #258
  * StatusIcon: Introduce base class for status icons
    and use for top panel icons.

  [ Guido Günther ]
  * phosh-system-prompt: Toggle ok button sensitivity.
    Pressing <return> so far caused to send e.g. an empty pin to a smart card
    and we'd rather not run out of retries so require a non empty password.
  * build: Bump version to 0.1.8
  * build: Use libhandy 0.x branch if used as a subproject.
    Closes: #264

  [ Zander Brown ]
  * build: bump glib dep.
    We where using stuff from 2.54 already and buster ships 2.58
  * notifications: seperate the data and widget.
    Move notification information into a seperate class from the banner,
    moving forward this will ease lockscreen/notification drawer
    implementatinon

 -- Guido Günther <agx@sigxcpu.org>  Sat, 08 Feb 2020 13:44:20 +0100

phosh (0.1.7) amber; urgency=medium

  [ Darren R ]
  * Update meson.build to show version 0.1.6

  [ Guido Günther ]
  * phosh.in: Use builtin session handling.
    Until we can rely on a newer gnome-session use the builtin session
    handling everywhere for now instead of systemd. (Closes: #181)
  * gitlab-ci: Build an arm64 deb
  * wifi-manager: Rework connection handling.
    So far we gave up early when the currently active connection did not
    have any devices. It seems this can happen early up in the connection
    process of *new* connections. Hence always redo the device check on
    connection state changes.
  * wifimanager: Consolidate device cleanup.
  * wifimanager: Clean up device state when (de)activating a connection.
    Don't use the device and access point information before we're
    actually associted. Otherwise we show strength information from
    outdated access points. (Closes: #202)
  * lockscreen-manager: Undo rotation when locking the screen.
    This makes sure we don't leave the user with a screen that can't be
    unlocked. (Closes: #73)
  * auth: Drop pin length limitation.  (Closes: #233, #234)
  * network-auth-prompt: Allow to toggle password visibility.
    This makes entering wifi passwords a bit simpler. Inspired by
    GTK4's GtkPasswordEntry.

  [ Julian Sparber ]
  * Lockscreen: add submit button, allows arbitrary pin lengths.
    This also adds the emergency button but for now it is hidden, because
    emergency calls don't work yet.

 -- Guido Günther <agx@sigxcpu.org>  Thu, 09 Jan 2020 15:34:36 +0100

phosh (0.1.6) amber; urgency=medium

  [ Julian Sparber ]
  * Lockscreen: replace HdyDialer with HdyKeypad.
    The new Keypad uses a GtkEntry to store the entered pin/password.
  * Lockscreen: use GcrSecureEntryBuffer for the pin entry.
  * BatteryInfo: drop private data for gobject.
    Since the BatteryInfo is a final it can't be subclassed, therefore it
    doesn't need private data.

  [ Guido Günther ]
  * background: Plug leak
  * home: Plug leak
  * topevel: Avoid NULL check
  * toplevel: Don't leak app_id and title
  * toplevel: Guard handle from being destroyed multiple times
  * wwaninfo: Seperate access tec and signal srength (Closes: #118)
  * top-panel: Adjust label margins.
    Use the same margins as for other text in the top panel.
  * top-panel: Use only right margins.

  [ Darren R ]
  * lockscreen: Use show_symbols False

 -- Guido Günther <agx@sigxcpu.org>  Fri, 27 Dec 2019 23:05:07 +0100

phosh (0.1.5) amber; urgency=medium

  [ Guido Günther ]
  * rootston.ini: Drop keyboard config section.
    Not parsed anymore by phoc, uses GSettings now
  * Turn on autorestart.
    Mitigates #212
  * gitlab-ci: Switch to shared gitlab-ci jobs.
    This gives us more tests with less code.
  * debian: Add trivial autopkgtest.
    This makes sure we at least install correctly
  * wifimanager: Don't leak icon name
  * d/control: Depend on the used gsettings schema
  * gitlab-ci: Test pureos against staging.
  * build: Make libhandy dep explicit
  * wwan-mm: Give up if we can't get proxy.
    Just printing a warning is no enough.
  * wwaninfo: Only show wwan icon if a modem is present
    (Closes: #64)

  [ Julian Sparber ]
  * Bump libhandy to 0.0.12

  [ Alexander Mikhaylenko ]
  * lockscreen: Allow mouse dragging for lockscreen.
    See https://source.puri.sm/Librem5/libhandy/merge_requests/344

 -- Guido Günther <agx@sigxcpu.org>  Fri, 13 Dec 2019 17:43:41 +0100

phosh (0.1.4) amber; urgency=medium

  * activity: Add title setter
  * activity: Set app_name on title changes.
    So far we only did this in the constructor.
  * toplevel: Emit signal when properties change.
    So far we emitted signals when a new toplevel shows up. Add
    a signal that is emitted when a already 'configured' toplevel
    gets configured event. This will allow to e.g. check for
    title changes.
  * overview: Adjust title in overview when the toplevel changes title.
    We take a detour via the overview since the link between
    activity and topleve happens there. We can avoid this
    once the activity properly owns the toplevel.
  * tests: Avoid duplicate config target
    otherwise we fail with meson 0.49.
  * gitlab-ci: Build pureos amber package as well
  * panel: Move decision if we need a lang label into one place.
    This makes sure we do the same on input source changes and keyboard
    connect/disconnect.
  * debian/gbp.conf: Sign tags by default

 -- Guido Günther <agx@sigxcpu.org>  Fri, 22 Nov 2019 17:16:45 +0100

phosh (0.1.3) amber; urgency=medium

  [ Guido Günther ]
  * main: Simplify signal handling
  * main: Handle SIGINT as well.
  * main: Don't initially lock screen when we were started by gdm
  * main: Add -L to force a locked shell.
  * brightness: Fix brightness setting.
  * top-panel: Display current keyboard layout if a keyboard is connected.
    This makes tings less conusing when using/testing different layouts
    The layout is only displayed when a keyboard is connected to the
    seat.
  * session: Unset DESKTOP_AUTOSTART_ID.
    This makes sure we don't leak it to child processes.

  [ Sebastian Krzyszkowiak ]
  * activity: Handle apps with "gnome-" prefix in their app ID.
    Otherwise we end up with "org.gnome.Gnome-software" kind of names.
  * util: Move app_id fix up code to separate function
  * toplevel: Rename phosh_toplevel_raise to _activate for consistency
  * app-grid-button: Activate existing window instead of trying to relaunch.
    Fixes #102

  [ Zander Brown ]
  * build: only rebuild generated sources when linking tests/tools.
    This avoids extra (wasted) build steps for tools/tests/etc
  * app-button: don't emit app-launched when an error is set.
    Previously we emited even when GLib reports an error
  * app-button: store favourites in a model, add action menu.
  * tests: improve testing of app-button.
  * tests: add tests for the favourites model.
  * favourites: use en_US spelling.

 -- Guido Günther <agx@sigxcpu.org>  Fri, 15 Nov 2019 01:54:40 +0100

phosh (0.1.2) amber; urgency=medium

  [ Bart Ribbers ]
  * gitlab-ci: don't build test coverage for Alpine Linux

  [ Guido Günther ]
  * Add wayland session file.
    This allows to run phosh directly from e.g. gdm which makes testing
    on GNOME way easier
  * Recommend phoc. We don't make it a hard dependency since we can run with
    other compositors as well.
  * Drop all rootston fallbacks. rootston is unmaintained and has only very
    limited functionality while phoc had a release.
  * debian: Bump compat to 12.
    This makes some things simpler like dh_nissing and it moves
    phosh to /u/libexec where it should have always been.
  * debian: Add install file for phosh.
    This makes us pick up the right files when we add more binary packages
  * build: move glib/gio dependency to toplevel meson file.
    This and assigining it to variables makes it simpler for
    other meson files to use.
  * Add keyboard stub.
    This helps to fulfil gnome-session dependencies on desktops where we
    don't have squeekboard (yet) and where it should not unfold
  * layer-surface: Emit signals on width/height changes.
    We missed signals on phosh_layer_surface_set_size().
  * layer-surface: Don't make width/height construct only.
  * po: Update translatable files
  * po: Update translations from zanata

  [ Dorota Czaplejewicz ]
  * layersurface: remove phosh-wayland include.
    This makes the file copy-portable again.
  * layer-surface: Distinguish requested and configured width/height
    {width,height} represent the user request while
    configured_{width,height} represent what the compositor sent us.
    This allows clients to see how their size request matches the
    actual surface size.

  [ Mohammed Sadiq ]
  * Add shell-network-agent.
  * Add network agent. Network agent is responsible for requesting credentials
    when connecting to networks that requires credentials

 -- Guido Günther <agx@sigxcpu.org>  Fri, 25 Oct 2019 21:07:24 +0200

phosh (0.1.1) amber-phone; urgency=medium

  [ Guido Günther ]
  * lockscreen: Use proper ellipsis.
    Use '…' instead of '...'
  * session: Drop org.gnome.SettingsDaemon.Clipboard.
    It was unused anyway. (Closes: #195)
  * notify-manager: ignore errors closing inexistent notifications.
    This trips up qt 5.11 otherwise
  * debian: Don't restart session on package upgrades.
    Otherwise a logged in user will get logged out. (Closes: #193)
  * gitlab-ci: Make current image explicit
  * gitlab-ci: Build and unit test for Debian Bullseye as well.
    We keep the smoketests at buster for the moment
  * debian: Add gbp.conf.
    This makes `gbp tag` do the right thing.
  * Update translations from zanata

  [ Hysterical Raisins ]
  * AppGrid: Live update search when using an input method.

  [ Bart Ribbers ]
  * gitlab-ci: Build and unit test for Alpine Linux edge as well

 -- Guido Günther <agx@sigxcpu.org>  Fri, 11 Oct 2019 11:54:52 +0200

phosh (0.1.0) amber-phone; urgency=medium

  [ Zander Brown ]
  * app-grid: align top
  * overview: focus styling, follow focus
  * app-grid: enter activates first app search result.
    Fix https://source.puri.sm/Librem5/phosh/issues/171
  * app-grid: hint app that will launch on enter
  * notifications: support images, bring styles close to design
  * notifications: add actions.
    This means firefox doesn't complain anymore and actions are clickable
  * notifications: handle display scaling and rotation
  * notifications: slide down from top
  * tools: test notification sender
  * notifications: emit notify::app-info
  * apps: display name not display name.
    This makes sure apps have the same name as in shell

  [ Alexander Mikhaylenko ]
  * overview: Remove close on click.
    It's triggered wher swiping PhoshPaginator. I'm not sure this is wanted
    from design standpoint anyway, so remove it for now.
  * overview: Use paginator for switching apps

  [ Guido Günther ]
  * polkit-auth-agent: Allow to cancel dialog via escape key.
    I've seen gnome-shell users hitting that a lot.
  * system-prompt: Allow to cancel dialog via escape key.
    I've seen gnome-shell users hitting that a lot.
  * notify-manager: Handle org.gnome.desktop.notifications show-banners.
    This allows to globally enable / disable message bunners aka
    'notification popups' as gnome-control-center calls them. (Closes: #167)
  * build: sort source alphabetically
  * session: Reindent.
    Reindent according to coding style
  * Add fader that fades from transparent to almost black.
    We might want to make this more flexible later so we can also use
    it for the fade in animation on startup.
  * session: Use fader on shutdown.
    This gives immediate visual feedback.
  * main: Fade out on sigterm
  * po: Update translatable files
  * session: Only show fader on EndSession.
    QueryEndSession only asks for a shutdown, we don't want to fade
    in that case.
  * Kill fader after 15 seconds
    if we can't shut down promptly kill the fader instead of leaving
    the shell in an unusable state.
  * auth: Unconditionally set pamh to NULL.
    Don't do it only in the successful case since the handle is
    not useful afterwards and later calls might otherwise reuse the handle.
    Also don't use the handle in the error path after pam_end.
  * rootston.ini: Remove 'binding' section.
    This is now handled via gsettings and triggers a warning
    on phoc startup.
  * po: Update translatable files
  * po: Update translations from zanata

  [ Julian Sparber ]
  * Lockscreen: Give visual feedback on wrong password.
    This makes the dots shake when the user enters a wrong password
  * Lockscreen: add hack to remove # and * form the keypad
  * Lockscreen: Style keypad buttons.
    Fixes: phoc#18
  * AppGrid: make search case insensitive.
    Fixes: #186
  * AppGrid: Make line below favorites darker and thiner
    fixes #182
  * AppGrid: use a revealer to hide the favorites when search is started
    fixes: #185
  * AppGrid: increase spacing around line below favorites

  [ Sebastian Krzyszkowiak ]
  * PhoshBackgroundManager: Divide the background size by scale.
    Without this the background surface buffer is needlessly oversized,
    putting unnecesary load on the GPU.
  * toplevel: Add "activated" property and its getter
  * overview: Scroll to currently focused activity
  * style: Remove unnecessary blending.
    GTK uses software rendering and pixman isn't optimized on aarch64.
    This makes blending huge surfaces pretty expensive - and there's
    no reason to do that if we're blending black on black anyway.
    This makes fullscreen scrolling in app drawer way smoother.

  [ Hysterical Raisins ]
  * AppGrid: hide favorites on search
    - conserve vertical screen space (which will be at a premium when both osk
      and overview are visible at the same time)
    - blend in favorites when searching
    Fixes phosh#177
  * NotifyManager: plug a leak in variant iteration
  * AppGrid: Don't activate first item unless search has focus.
    Fixes #177 (for real this time)
  * AppGrid: Correct return types for focus events
  * AppGrid: plug casefold leaks.
    Fixes #190

  [ Tobias Bernard ]
  * Style: prettier search bar
    - Minor styling changes (rounded corners, more padding)
    - Add placeholder text
  * Style: adjust margins around search bar and favorites.
    Fixes an issue with icons being cut-off only on the sides
    when scrolling.
  * Minor: fix ellipsis and string in search placeholder

 -- Guido Günther <agx@sigxcpu.org>  Mon, 30 Sep 2019 10:54:01 +0200

phosh (0.0.4) purple; urgency=medium

  [ Guido Günther ]
  * PhoshLayerShell: Don't realize layer shell's right away.
    This allows us to create them early and keep them around. It also
    makes them behave more like regular Gtk widgets. (Closes: #91)
  * system-prompt: Use a template instead of builder.
    This makes this prompt consistent with all the other layer surfaces we
    have.
  * debian: We can act as polkit auth agent
  * debian: Update description a bit
  * po: Update LINGUAS
  * system-prompt: Wrap on word boundary.
    Otherwise we overflow on small screen sizes
  * system-prompt: Add a border.
    This makes sure we don't have text and buttons pressed to the left and
    right screen edges.
  * lockscreen: Add date (Closes: #101)
  * Update pot file with new strings.
    The date format needs a string to be printed correctly in the
    different locales.
  * lockscreen: Move date, time and icons into a common box.
    This allows spacing.
  * po: Update translations from zanata
  * favorites: Drop labels.
    This makes the "overview issue" go away with up to 8 favorites.
    This improves the status quo until we fixe #89 and merged !187.
  * favorites: Trim down app list.
    These are the ones that the focus is on atm. (Closes: #100)
  * css: Drop HdyArrow css.
    We're currently not using this widget
  * css: Make polkit auth agent's background black too
  * SystemPrompt: Set grid alignment in the ui file
  * system-prompt: Right align labels.
    Following https://developer.gnome.org/hig/stable/visual-layout.html.en
  * system-prompt: Move checkbox below text inputs
  * system-prompt: Adjust spacing.
    Following https://developer.gnome.org/hig/stable/visual-layout.html.en
  * polkit-auth-prompt: Right align labels.
    Following https://developer.gnome.org/hig/stable/visual-layout.html.en
  * polkit-auth-prompt: Adjust spacing.
    Following https://developer.gnome.org/hig/stable/visual-layout.html.en
  * polkit-auth-prompt: Use bold font for user name
  * polkit-auth-prompt: Remove empty row
  * PolkitAuthAgent: Remove duplicate gtk_widget_show ()
  * PolkitAuthPrompt: Translate most common request
  * po: Update translatable files
  * po: Update pot file
  * shell: Activate background again
    https://github.com/swaywm/wlroots/issues/897 is true independent if
    there's background surface or not so we're not making matters worse
    by enabling it. (Closes: #76)
  * PhoshPanel: Make signal handlers consistent
  * PhoshLockscreen: include locale.h.
    Fixes build with -O0
  * PoshBackground: Drop things now handled by PhoshLayerSurface
  * PhoshBackground: Use g_autoptr instead of explicit unref
  * PhoshBackground: Get width and height from layer surface
  * PhoshBackground: Drop pointless defaults from init
  * PhoshBackground: Validate signal handler signatures
    while at that move 'self' first like in the rest of the codebase.
  * PhoshBackground: unref settings
  * lockscreen: Set wifi icon visible by default (Closes: #111)
  * PhoshBackground: Drop priv.
    Less code and consistent with other new code.
  * PhoshBackground: Listen to configured signal.
    This is simpler then g_signal_override_class_handler()
  * lockscreen: Deterine wifi status on idle.
    This makes sure we determine the wifi status after the widget set up.
    Otherwise the widget might sometimes stay invisible.
  * PhoshShell: Make background surface span the whole output.
    The background will make sure to not draw over/under panels. (Closes: #6)
  * PhoshBackground: Implement zoom style.
    Listen for picture-option and handle scaled (as already implemented)
    and zoom. If the style is unknown default to zoom like gnome-shell.
    Code taken from GnomeBG.
  * PhoshBackgroundManager: Add manager to handle multiple outputs.
    This handles multiple output making sure we update the backgrounds
    on output changes. (Closes: #113)
  * PhoshBackground: Use g_object_connect
  * PhoshBackground: Use defines for setting keys.
    We need them in several places.
  * PhoshBackground: Don't hardode grey as color.
    This allows to set the background color from gsettings.
  * PhoshFavorites: Scale icon images to 64px
  * favorites: Don't scale by output scale.
    Otherwise icons are way to large.
  * favorites: Use gtk_image_set_pixel_size.
    This leaves the scaling to gtk.
  * PhoshWWanInfo: Set pixel_size when setting widget size
  * PhoshWWanInfo: Don't round trip through pixbuf when using theme icons.
    There's no need to roundtrip through a pixbuf when we're using theme
    icons. This removes blur from the no-sim and sim locked case.
    See: #118
  * favorites: Drop custom drawing
  * service: Restart on compositor crashes.
    So far we wanted to keep the state around for debuggig but it's stable
    enough now that we can restart.
  * layersurface: Use phosh_wayland_get_default() everywhere.
    This makes it consistent with _mapped()
  * Add editorconfig.
    Prompted by tabs in ui files.
  * PolkitAuthPrompt: Make background app paintable.
    This makes it consistent with the gcr system modal dialogs.
  * Use the same style class for gcr and polkit prompts.
    This makes sure they stay visually consistent.
  * PhoshSystemPrompt: Swap ok and cancel.
    Conform to GNOME HIG.
  * PolkitAuthPrompt: Swap ok and cancel.
    Conform to GNOME HIG.
  * app: Add close button.
    Emit a 'app-closed' signal when that button is clicked.
  * Update phosh private protocol to v3
  * PhoshFavorites: Close application on 'app-close' signal (Closes: #67)
  * tests: Use phoc instead of rootston.
    This is our primary compositor and while the usage of the phosh-private
    protocol is optional if we bind to it we require at least version 3
    which is not supported by our rootston fork.
  * PhoshLayerSurface: Destroy layer surface on unmap.
    This and moving some of the initilization from `realized` to `mapped`
    allows us to properly `gtk_widget_{show,hide}()` layer surface widgets.
    This is brought over from squeekboard
    c3a54595ea72638fbc7b65ffc3c26966de772e15
  * PhoshHome: Drop priv.
    This makes the code smaller and esier to read.
  * build: Fix indentation.
    We want two spaces.
  * Use glib-mkenums.
    This will allow us to use enums as types.
  * PhoshLayerSurface: Allow to set size of the layer surface.
    This can be useful to fold/unfold surfaces.
  * PhoshHome: Clarify PHOSH_HOME_HEIGHT.
    Rename to PHOSH_HOME_BUTTON_HEIGHT since to not confuse the home button
    with the home screen (which takes the full screen except for the panel).
  * PhoshHome: Track folded/unfolded state.
    We fold/unfold the surface on home button clicks.
    We use an enum since we might end up with half folded states
    or a different state when using app switch via swipe.
    This surface will later on have the app drawer. (Closes: #89)
  * PhoshHome: Show favorites on home screen.
    Instead of making PhoshFavorites a separate layer surface popup show the
    widget on the home screen by deriving from GtkBox instead of GtkWindow.
  * PhoshActivity: Rename activity-closed signal.
    The name is misleading since the signal is emitted when the close
    button is clicked not when the actual activity is being closed.
    Rename to 'close-clicked' to make that obvious.
  * favorites: Replace assert by g_return_if_fail ()
  * favorites: Use g_return_if_fail in type check.
    This makes sure we don't silently ignore the error.
  * PhoshTopLevelManager: Move function assignments to top.
    This makes it consistent with other classes.
  * PhoshTopLevelManager: Move public methods to the bottom.
    This makes it consistent with other classes.
  * PhoshToplevelManager: Add num-toplevels property.
    This allows us to keep track about opened toplevels.
  * PhoshShell: Unfold home screen when no application is running.
    When we don't have any wayland toplevels show the overview. (Closes: #99)
  * PhoshActivity: Remove unused defaults
  * PhoshAcivities: Drop superfluous braces
  * PhoshActivities: Match property defaults to what's set in `_init()`
  * PhoshActivities: Mark properties as G_PARAM_EXPLICIT_NOTIFY.
    Because they are.
  * PhoshAcitivity: Avoid superfluous object emission and resizes.
    No need to do anything if the propoerty does not change.
  * PhoshLayerSurface: Be verbose when acking configure.
    This is an important event when surface properties change.
  * Add gtk4's list model.
    This is from commit ddc74a08bea170c73effe6eddca45a077bf130a7
  * PhoshHome; Make Image a child of the button.
    This allows for more fine grained styling.
  * PhoshHome: Use CSS animations to change home button arrow direction
  * PhoshHome: Set initial arrow state to 'up'
    Intially the surface is folded. That doesn't matter when starting up
    but it matters when phosh restarts with windows already open.
  * PhoshFavorites: Rename to create_favorite.
    We create a widget but don't add it to the flowbox yet.
  * PhoshFavorites: Use g_auto()
  * PhoshFavorites: Show created favorite.
    This makes sure changing favorites refreshes without restarting phosh.
    This wasn't a problem when favorites was a pop up since the widget
    got recreated when opened.
    Brokey-by: bc2198f6bbe8d3132d711cfa30719578eada5473
  * PhoshFavorites: Avoid gtk_widget_show_all()
    All widgets are being gtk_widget_show()n correctly now.
  * home: Drop superfluous gtk_widget_{show,hide}
  * Settings: Add type checks to callbacks
    while debugging it became obvious that we don't type check
    here which makes life cycle issue fixing harder then necessary.
  * Settings: Swap signal emission and lock trigger.
    The lock trigger brings up new surfaces which discards the popup so the
    object might not exist anymore once we want to emit the signal.
    Fixes
    (phosh:5485): GLib-GObject-WARNING **: 17:11:59.262: instance with invalid (NULL) class pointer
    (phosh:5485): GLib-GObject-CRITICAL **: 17:11:59.262: g_signal_emit_valist: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
    Broken-by: cb7b20ebf94177199d6a7347d5fe48b144bf81f0
  * Settings: rotation_changed_cb: Move self in front.
    This makes it match the other call backs.
  * LockscreenManager: Only lock session when we go idle.
    So far we locked on any status change which didn't matter since we
    only get the idle information. Now that we get org.gnome.ScreenSaver
    we get other states reported as well.
  * LockScreen: Emit signal when the output should be woken up.
    This is useful to indicate that  the output used by the lock screen
    should be woken up e.g.  on keypress.
  * LockScreenManager: Remember activation time.
    Save the point in time the lock screen gets activated, this will
    be used by the screen saver manager.
  * LockscreenManager: Emit signal when all screens should be woken up.
    This is mostly meant for org.gnome.ScreenSaver
  * Add PhoshScreenSaverManager.
    This adds the skeletion for the org.gnome.ScreenSaver
    DBus API that allows applications get the lock state
    and ask for screen lock.
  * ScreensaverManager: Hook up to LockscreenManager.
    Implement org.gnome.ScreenSaver by invoking the appropriate methods
    on our Lockscreenmanager and listen to it's releveant signals.
    We keep this in a separte object to keep the lock screen code
    separte from the DBus interaction.
    We inject the lock screen manager instead of fetching the singleton
    to make the code more self contained.
  * helpers: Add script to check screen saver state
  * Lockshield: Use type as parent, not class
  * LockShield: Drop unneeded custom rendering.
    We don't need a drawing area and no custom rendering when we just
    want to render a black background.
  * tests: Test AppGridButton
  * AppGridButton: Remove superfluous initializers
  * AppGridButton: Rename pspec to props.
    Just cosmetics to make it consistent with the other classes.
  * AppGridButton: Whitespace cleanups
  * AppGridButton: Use getters and setters for GAppInfo.
    This makes the property hander sway smaller
  * PhoshAppInfo: Add tests for new methods and constructor
  * gitlab-ci: Add coverage information
  * README: coverage badge.
    This is a bit misleading since it only covers unit test coverage and
    even that dosn't run all the tests.
  * tests: Add app-list-model tests
  * tools/app-scroll: Fix activity scaling.
    Otherwise activities are just as large as the close button.
  * tools/app-scroll: Drop max-* properties.
    They were dropped from app-grid-button as well.
    Spotted-by: Zander Brown
  * Overview: Rename overview evbox and flowbox to apps.
    This contains the application (favorites and later on installed
    applications).
  * lockscreen: Slide lockscreen down on timeout.
    This makes the lock screen slide down instead of coming back up after
    timeout. (Closes: #105)
  * layer-surface: Allow to set keyboard interactivity
  * home: Move fold/unfold logic into a single if/else
  * home: Allow keyboard input when unfolded.
    This allows application search to receive keyboard input and will
    e.g. allow keyboard based window switching later on.
  * defaults: Drop terminal from favorites.
    With the app drawer it's easily accessible and we're back
    to one line of favorites which looks way better.
  * Update translations from zanata
  * build: bump version.
    We released 0.0.3 a while ago
  * Add PhoshNotifyManager.
    This will handle the org.freedestkop.Notifications DBus protocol
  * phosh-notification: Add notification widget.
    This is a layer surface that handles displaying a single notification.
    When adding notifications to the lock screen, etc. we will likel make
    this a data only type that is consumed by the various implementations
    but that depends on how the designs for this will look like.
  * notify-manager: Create basic notifications.
    Activities, animating slide in/out, showing notification on the lock
    screen, do not disturb mode and silencing individual application are
    left as follow-ups.
  * debian: Provide notification-daemon.
    We provide the DBus daemon and basic functionality
  * Bump libhandy requirement.
    The arrows need 0.0.11
  * notifications: Don't leak app_icon
  * Release phosh 0.0.4

  [ Tobias Bernard ]
  * Top panel: move clock down a tiny bit
  * Lockscreen: improve spacing on clock, date, icons
  * Minor: lockscreen.ui indentation
  * Lockscreen: Stop arrow animation after 15 cycles.
    This should mitigate #108 somewhat.
  * Settings: make circular button styling specific to settings
  * Favorites: remove button styling and circular shape, add icon shadow.
    This also makes 4 icons fit into onto the screen at 360px.
  * Favorites: highlight on click, instead of hover
  * App switcher: No margin and border radius on the title overlay
  * Fake app placeholder: round top corners
  * App Switcher: styling for temporary close button

  [ Dorota Czaplejewicz ]
  * session: Use the default OSK instead of Virtboard

  [ Sebastian Krzyszkowiak ]
  * PolkitAuthAgent: fix build with Polkit >= 0.114.
    Polkit 0.114 introduced bunch of predefined g_autoptr cleanups, which
    leads to compilation failure due to duplicate cleanup definition for
    PolkitSubject. Note that even the latest polkit doesn't have a cleanup
    for PolkitAgentListener defined, so it's left there unguarded.
  * PhoshBackground: Draw the wallpaper at full resolution on HiDPI screens
  * background: Unescape the URI of the background file.
    Fixes #130
  * Use wlr-foreign-toplevel-management instead of private protocol.
    Introduces PhoshToplevelManager and PhoshToplevel classes for
    managing and representing toplevel surfaces.
    Thanks to that:
     - it doesn't match the window to close via its title or app id,
       always trying to close the correct window instead
     - it removes the window from the overview only after it really got
       closed - which is especially noticable in case of windows that
       refuse to be closed
     - it updates the list automatically as the changes happen, without
       having to close and open the overview back again
    Closes #37
  * PhoshApp: Rename to PhoshActivity.
    Single application can be represented by multiple PhoshApps. It's also
    not a window, as in the future, multiple windows may be represented
    as a single PhoshApp as well - therefore, PhoshActivity seems to be
    the most fitting name to this entity.
  * PhoshHome: Hide the keyboard button when unfolded
  * PhoshHome: Don't set the width of the home bar.
    When setting 0 as width value, the compositor will set the width
    automatically according to anchors.
    This fixes an issue of folded home bar size not being updated after screen
    rotation until it's unfolded.
  * PhoshLayerSurface: Allow to set anchor margins of the surface
  * PhoshLayerSurface: Allow to change the exclusive zone value
  * PhoshHome: (Un)folding animation.
    Uses layer-surface margins to animate the unfolding without resizing
    the surface.
  * PhoshHome: Adjust arrow transition duration to match unfolding time
  * PhoshHome: Show correct arrow orientation with GTK animations disabled
  * shell: Fold home screen when a new toplevel appears.
    Closes #154
  * home: Fold on Escape key press.
    This doesn't matter much for phone, but makes the interaction much
    more pleasant on desktop.
  * overview: Hide the list of activities when there are none.
    This allows the app launcher to take all available space.
  * phosh-wayland: Don't require wlr-foreign-toplevel-manager extension.
    It's not very widely implemented yet and it's considered a privileged
    protocol that's unlikely to be exposed by default anyway.
    Closes #144
  * layersurface: Add phosh_layer_surface_wl_surface_commit function
  * home: Remove gtk_widget_queue_draw from (un)folding animation.
    This was causing a massive performance drop on the devkit, while a surface
    commit is all that's really needed there.
  * home: Reset the app grid state when unfolding.
    This includes clearing the search field and scrolling the list to the top.
  * shell: Fold the home screen when unfolding settings screen
  * shell: Hide the keyboard when unfolding the home screen
  * app-grid: Use g_auto cleanup macros
  * app-grid: Store the list of favorites.
    This will allow to skip allocate/free cycle per every entry when filtering.
  * app-grid: Don't show favorites on the app list.
    Fixes #164

  [ Zander Brown ]
  * build: use the kwarg for PIE
  * switcher: Rework app switcher.
    This moves the window title and application icons to the bottom of the
    running application widget and uses a fake window where the actual app
    conent will go later on.
  * build: handy as a subproject.
    Some of us don't want to install handy master globally
  * general: ignore VSCode settings/metadata
  * build: split some components into static lib
    makes tests/demos simpler
  * tools: app-scroll demo.
    Simple demo of PhoshApp
  * tests: use the full name not just the first letter.
    Meson being too clever for it's own good
  * favorites: Switch to kgx (Closes: #133)
  * gtk-list-model: Adjust to build out of gtk4's tree
  * Add PhoshAppGridButton.
    This will be used in the app drawer for launchers
  * Favorites: Use PhoshAppGridButton.
    This will be used in the app drawer for all launchers but for now it's
    just favourites
  * launcher: force wrapping of long titles
  * app-grid-button: handle NULL app-info
  * launcher: import app-list-model.
    Taken from my maynard fork
  * overview: rename PhoshFavorites now it's funcation has changed.
    The overview is the widget that contains the
     - activities (running applications)
     - the favorites
     - the app drawer
  * app-grid: AppGrid widget to launch installed applications
  * overview: Add app-grid
  * tools: Add wrapper to run standalone tools.
    Similar to phosh's run to set e.g. the schema dir
  * tools: Add tool to show app-grid outside the shell.
    Provider wrapper to setup env to run tools
  * overview: Move favorites launchers into app-grid.
    They inetract closely, e.g. on search so it makes sense to have them in
    the same widget.
    TODO: the css name change from phosh-favorites to phosh-overview should
    go in a separte commit (Closes: #38)

  [ Adrien Plazas ]
  * system-prompt: Style overhaul.
    This makes system prompts look more like part of the shell than part of
    apps.

  [ Sybolt de Boer ]
  * Use g_value_set_int() to set an int

  [ Heather Ellsworth ]
  * Add Contacts to list of favorites

  [ Alexander Mikhaylenko ]
  * favorites: Resize apps before size allocation.
    Instead of connecting to 'size-allocate' signal on evbox_running_apps,
    override size_allocate vfunc on the window itself, then do the resizing
    before chaining up.
    This will allow to avoid glitches with paginator.
  * activity: Simplify sizing.
    Follow window aspect ratio without minimum width and height. Switch to
    width-for-height geometry management.
    When favorites widget is allocated, set window width and height from
    favorites's own allocation before chaining up, this avoids any glitches
    on the first allocation.
    Remove now unused max-width and max-height properties.
  * Introduce PhoshArrow.
    An animated arrow. This will be used for home/overview transition.
  * home: Use PhoshArrow for animation
  * home: Use libhandy animation functions.
    See https://source.puri.sm/Librem5/libhandy/merge_requests/308
  * meson: Bump libhandy version to 0.0.11
  * lockscreen: Fix indentation in xml
  * lockscreen: Hide dialer action buttons in xml.
    There's no point in doing this only on swipe up.
  * lockscreen: Follow finger when swiping.
    Pack the two pages into a PhoshPaginator. This also allows to swipe back
    from keypad to the info screen.
    Remove the GtkEventBox around the info page, as the paginator is already
    a subclass of GtkEventBox.

  [ Hysterical Raisins ]
  * LayerSurface: constructed() needs to be chained up

 -- Guido Günther <agx@sigxcpu.org>  Sat, 07 Sep 2019 01:36:19 -0700

phosh (0.0.3) purple; urgency=medium

  [ Guido Günther ]
  * IdleManager: Use G_GUINT64_FORMAT.
    We missed that one. This breaks the build on armhf.
  * Monitor: Save transform too
  * Monitor: Allow to detect flipped outputs
  * Monitor: Allow to get rotation by degrees
  * Shell: Determine usable area by output transform.
    Instead of looking at our rotation property look at the monitors actual
    transform instead. (Closes: #55)
  * MonitorMnager: Report transform too
  * MonitorManager: Fix formatting
  * Shell: Fix type of 'rotation' property
  * Shell: Derive rotation property from primary monitor's rotation.
    This way they can never get out of sync.
  * Shell: Setup a primary monitor after probing outputs.
    This way we don't have to make any assumptions. We don't do this via
    set_primary_monitor since we don't want to trigger panel recreation to
    avoid flickering.
  * Settings: Switch shutdown and lockscreen.
    This matche gnome-shell's layout.
  * Settings: Make sure the buttons stay circular
  * MonitorManager: Specify integer types in g_variant_builder_add.
    This makes sure we treat guint64 correctly.
  * App: Don't print title if it's identical to the appplications name.
    This avoids printing the same thing twice.
  * rooston.ini: Drop scale=2.
    We had this for the testing the OLED displays. The devkit has a separte
    HDMI to attach large screens.
  * gitignore tag files
  * Fix URLs and copyright holder.
    We moved repos a while ago
  * rootston.ini: Scale rootston on DSI-1 output.
    The devkit's LCD panel is DSI-1 and we want scaled output there.
  * session: Remove incorrect error parameter in DBus call
  * run: Allow to skip gnome-session.
    It's not always needed and floods the CI logs
  * ci: Skip gnome-session for valgrind run.
    This makes the logs better readable and we don't need it there.
  * meson: Print phosh version as well
  * run: Use glib's valgrind suppressions as well
  * settings: Add separate meson file.
    It's better to track sources per directory.
  * Settings: Simplify rotate evaluation
  * Add gvc submodule.
    This submodule will be used for volume control. It's also used
    by gnome-shell and g-c-c.
  * Wire up output volume control.
    Based on gvc-channel-bar from gnome-control-center. We'll split this out
    of settings.c once we handle more volume controls.
  * ci: Drop valgrind run until we have more RAM.
    It seems the build node drops out atm
  * settings: Make settings use the full screen width.
    Wrap it in a HdyColumn for that to not look totally out of place
    on large screens.
  * Remove some unused components from the session.
    This brings down the number of X11 dependencies and drops things that
    crash frequently (although unused). We can add these back later once
    needed and when the necessary wayland protocols are in place.
  * Favorites: Use a GtkBox instead of a GtkFloxBox for running apps.
    This allows to scroll vertically
  * rootston.ini: Map seat to DSI-1 instead of HDMI.
    This makes rotation work and it's far more likely to be used on the LCD
    atm. This needs a proper fix in the compositor to be better at input
    mapping (https://source.puri.sm/Librem5/wlroots/issues/23).
  * gitlab-ci: Build debs too
  * shell: Prefer dark theme.
    See: https://source.puri.sm/Librem5/librem5-base/issues/6
  * PhoshWayland: Add and use phosh_wayland_roundtrip.
    Based on a patch by Simon Ser.
  * PhoshLockscreenManager: Add missing chain up in constructed()
  * PhoshLockscreenManager: Drop unused parent
  * PhoshWwanInfo: Fix callback signature.
    We don't use the other params but it's better to have this correct.
  * PhoshWwanInfo: Simplify signal handler disconnects
  * PhoshPanel: Fix element order.
    This makes glade happy so we get no diff when saving.
  * top-panel.ui: Fix indentation
  * PhoshShell: Delay gui setup.
    If we do it in an idle callback we're sure the shell object is already
    there so we have all the managers at our disposal to e.g. connect
    widgets to them.
  * PhoshShell: Make custom widget types known.
    This makes sure we can use them in UI files independent from any loading
    order.
  * Add PhoshWifiManager.
    This keeps track of the wifi devices by interfacing with NetworkManager
    and gets the current signal ruality. We delay it's creation until it's
    needed.
    We can later on add support for ad-hoc networks.
  * Add PhoshWifiInfo widget.
    This connects to the wifi manager to display the current wifi state.
    Using it in the panel is then just a matter of adding it to the ui file.
  * PhoshLockScreen: Display wifi status.
    Hook the wifi status into the lockscreen too
    Use the WifiInfo widget here too. (Closes: #10)
  * d/control: Build-dep on at-spi2-core.
    On the devkit we don't pull in recommends but GTK+ wants it to run the
    tests in a meaningfull way.
  * Add HACKING to clarify coding style and other matters
  * README: Add pipeline status
  * README: Make sure build-deps are up to date.
    Use the tested list from d/control instead of hardcoding it.
  * PhoshMonitor: Emit signal when monitor is fully configured.
    Emit a signal when we received all of the configuration data from
    the compositor.
  * PhoshMonitor: Update comment
  * PhoshMonitorManager: Fix function declartion.
    Use a better variable name.
  * PhoshWayland: Maintain outputs in hash table.
    This duplicates the static wl_ouput GPtrArray which will be removed
    at the end of this series.
  * PhoshWayland: listen for outputs going away
  * PhoshWayland: Add functions to query outputs
  * PhoshMonitorManager: Pick up changed wl_outputs
    and signal when we added/removed a monitor. (Closes: #46)
  * Move initial handling from PhoshShell to PhoshMonitorManager.
    This move wl_output processing into the one place that has a way better
    idea what to do.
  * PhoshWayland: Kill the GPtrArray in favour of the GHashTable
  * LockScreenManager: Listen for monitor changes (Closes: #51)
  * PhoshLockscreenManager: simplify signal disconnects
  * Use #pragma in all headers
  * Add PhoshOskManager.
    Class to handle OSK interaction.
  * PhoshShell: Add PhoshOskManager
  * PhoshOskButton: Use PhoshOskManager.
    Don't dupliate code that is in PhoshOskManager and keep the DBus
    interaction in one place.
  * PhoshOskButton: Drop private data
  * PhoshShell: Add getter for lockscreen manager
  * PhoshOskManager: Hide keyboard on screen lock (Closes: #75)
  * PhoshShell: Close OSK when displaying favorites or settings (Closes: #81)
  * README: Prefer wlroot's X11 backend when nested.
    This one gets the window size right.
  * rooston.ini: Use the phone's resolution with the X11 backend
  * PhoshLockScreen: Only show clock on the lock screen.
    We don't want date or weekday there. (Closes: #85)
  * helpers: Make it simple to use glade with PhoshLayerShells.
    Temporarily replace the PhoshLayerShell by a GtkWindow known to glade.
    We could extend the glade-catalog but this way doesn't require any
    special setup.
  * rootston.ini: Don't scale X11 display.
    This helps people with screens that don't have 1440 vertical pixels.
  * phosh.in: Prefer phoc over rootston
  * PhoshLayerSurface: Don't use gtk_widget_show_all()
    gtk_widget_show ought to be enough. Widgets need to setup themselfes
    properly.
  * Become a policy kit authentiation agent.
    Somewhat based on gnome-shell's implementation. (Closes: #22)
  * debian: Add dependency so we can be a polkit auth agent
  * pot: Update translatable strings
  * Update translations from zanata
  * rootston.ini: Fix horizontal resolution.
    We have 360 not only 320 pixels.
    Thanks to Zander Brown
  * Lockshield: Use black background too
  * Lockscreen: Make arrows a bit thinner
  * Home: Make center button expand again.
    This unbreaks clicking the home bar. Otherwise only the image
    itself would be sensitive.
  * css: Add unit to font size.
    Silences a gtk warning.
  * PhoshWWanInfo: Drop priv.
    We're not going to derive from it and this makes the code simpler.
  * PhoshWWanInfo: Allow to set icon size
  * rooston.ini: Set window size for wayland as well
  * README: Fix some wording
  * README: Don't special case running nested on x11
    wayland works too.

  [ Dorota Czaplejewicz ]
  * build: Use the right path to the source.
    Tests wouldn't build if the build directory was outside of the source
    tree.
  * build: Remove duplicated gio dependency

  [ emersion ]
  * Update the wlr-layer-shell-unstable-v1 protocol
  * PhoshWayland: Add wlr_output_manager v1 protocol.
    We don't make the lack of that protocol fatal atm since the rootston
    currently on the devkit doesn't have that code yet.

  [ Zander Brown ]
  * Make top and home-bar black.

  [ Tobias Bernard ]
  * Top panel: equal spacing on icons on left and right
  * Top panel: make time bold
  * Settings menu: Black background, simplified styling
  * Lock screen: black background, margin fixes, thinner clock font
  * Minor: Change "PIN" to "Passcode"
  * Home bar: use custom, wider swipe arrow icon
  * Home bar: move keyboard button to the right
  * Home bar: rounded, smaller OSK button
  * Lockscreen: replace HdyArrows with a an image + CSS animation
  * Settings menu: add button outlines, improve spacing
  * Minor: better top bar clock style class name
  * Top bar: make status icons 16px

 -- Guido Günther <agx@sigxcpu.org>  Wed, 19 Jun 2019 09:07:57 +0200

phosh (0.0.2) purple; urgency=medium

  [ Guido Günther ]
  * Update translations from zanata
  * home: Add keyboard button.
    Add a keyboard button to the home buttons bar. This will allow to unfold
    the OSK.
  * monitor-manager: Use output names.
    This allows us to give the monitors more meaningful names instead of
    made up numbers and to correctly identify built in displays.
  * shell: Move panels on primary monitor change.
    When a new primary monitor is set move the panels around.
    This also fixes the home panel not being disposed.
  * system-prompter: Pass on the wl_output and not the monitor to new
    prompters.  This makes sure they always end up on the primary monitor.
  * Add basic org.gnome.Mutter.Idle DBus protocol support.
    This allows e.g. g-s-d power to track our idle time for e.g. dimming the
    display.
  * LockscreenManager: Rely on gnome-session for idle detection.
    This makes us properly respect idle inhibitors e.g. when watching movies.
  * Favorites: Drop weston terminal.
    Don't hardcode weston terminal anymore since gnome-terminal now also on
    the dev boards.
  * Settings menu: Add shutdown button

  [ David Boddie ]
  * Updated Debian package dependencies and .ini file location.

 -- Guido Günther <agx@sigxcpu.org>  Sat, 01 Dec 2018 17:59:07 +0100

phosh (0.0.1) unstable; urgency=medium

  * Initial release

 -- Guido Günther <agx@sigxcpu.org>  Wed, 31 Jan 2018 15:02:24 +0100
