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.

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: bc2198f6

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: 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.

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.

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

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.

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.

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.

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.

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 (wlroots#23).

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 quality. 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: 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.