# Phosh Insights ## Links - https://phosh.mobi/ - https://puri.sm/posts/phosh-overview/ - https://gitlab.gnome.org/World/Phosh - https://www.gtk.org/ - https://gitlab.gnome.org/World/Phosh/phosh/-/wikis/home ## Components - **phosh** - **phoc** - wayland compositor - **squeekboard** - keyboard - **phosh.session** - **feedbackd** ![](https://i.imgur.com/JxjRtn7.png) ## Foundation Concepts ### How does a compositor work? ### How does display server work? ### How does GNOME and GTK+ ecosystem work? ![](https://i.imgur.com/NLM6Q2v.png) ## Building locally Packages to install if you are not in a gnome wayland environment (distro - arch + kde wayland) (install using pacman -Ss) ``` gnome-shell gnome-settings-daemon mutter gnome-desktop wlroots evince evince-lib-docs evolution-data-server libadwaita gnome-control-center ``` Packages found in AUR (install using any AUR provider like paru) ``` callaudiod feedbackd-git ``` While logging in select GNOME Wayland in whatever Display Manager you use to start the GNOME session good enough to run phosh properly. For SDDM the option is there in the bottom left. ## GNOME Development https://developer.gnome.org/ https://developer.gnome.org/documentation/tutorials/beginners.html https://www.geeksforgeeks.org/how-to-create-gui-in-c-programming-using-gtk-toolkit/ GTK dev leverages xml files to create UI in runtime https://wiki.gnome.org/action/show/Apps/Glade to develop UIs like QtCreator https://gitlab.gnome.org/GNOME/libhandy