1
0
mirror of https://github.com/artizirk/wdisplays.git synced 2025-09-06 23:30:58 +03:00

10 Commits

Author SHA1 Message Date
157b8c51e8 Release 1.1.3 2025-07-25 14:43:47 +03:00
79225e57a3 Merge pull request #13 from Aleksanaa/fixes
Fixed menu scaling issue by disabling the use of GTK popover
2025-07-25 12:53:02 +03:00
4257ef446b Release 1.1.2 2025-07-25 12:43:53 +03:00
cef925b96a Merge pull request #25 from ceamac/fix/C23
Fix C23 issues
2025-07-25 12:37:57 +03:00
Viorel Munteanu
6b7c637875 Fix C23 issues
gcc 15 is more strict and compiles C by default with C23.  `noop` is
used as a default null initializer, but now it must have the correct
type, so add a cast.

See also: https://bugs.gentoo.org/946954
2024-12-28 11:56:49 +02:00
aleksana
50e549465d Fixed menu scaling issue by disabling the use of GTK popover
This fixes https://github.com/artizirk/wdisplays/issues/9
2023-10-08 17:05:31 +08:00
6233901a88 Merge pull request #8 from alex-courtis/add-way-displays
add way-displays to readme
2023-07-26 15:42:56 +03:00
2c5e4d72b5 Merge pull request #7 from bhepple/patch-3
Update README.md - update fedora package location
2023-07-26 15:41:20 +03:00
Alexander Courtis
4cc1d2300d add way-displays to readme 2023-07-03 14:06:16 +10:00
Bob Hepple
7afc947f62 Update README.md - update fedora package location 2023-07-03 12:53:51 +10:00
6 changed files with 28 additions and 9 deletions

View File

@@ -6,6 +6,18 @@ This project tries to adhere to [Semantic Versioning][2].
## [Unreleased] ## [Unreleased]
## [1.1.3] - 2025-07-25
### Fixed
Fixed tiny GTK dropdown menu on Hyprland (Aleksanaa)
## [1.1.2] - 2025-07-25
### Fixed
Fixed compilation error with new GCC (ceamac)
## [1.1.1] - 2023-07-01 ## [1.1.1] - 2023-07-01
### Added ### Added
@@ -52,7 +64,9 @@ Update application ID and readme (Jason Francis)
[1]: https://keepachangelog.com/en/1.0.0/ [1]: https://keepachangelog.com/en/1.0.0/
[2]: https://semver.org/spec/v2.0.0.html [2]: https://semver.org/spec/v2.0.0.html
[Unreleased]: https://github.com/artizirk/wdisplays/compare/1.1.1...HEAD [Unreleased]: https://github.com/artizirk/wdisplays/compare/1.1.3...HEAD
[1.1.3]: https://github.com/artizirk/wdisplays/compare/1.1.2...1.1.3
[1.1.2]: https://github.com/artizirk/wdisplays/compare/1.1.1...1.1.2
[1.1.1]: https://github.com/artizirk/wdisplays/compare/1.1...1.1.1 [1.1.1]: https://github.com/artizirk/wdisplays/compare/1.1...1.1.1
[1.1]: https://github.com/artizirk/wdisplays/compare/1.0...1.1 [1.1]: https://github.com/artizirk/wdisplays/compare/1.0...1.1
[1.0]: https://github.com/artizirk/wdisplays/releases/tag/1.0 [1.0]: https://github.com/artizirk/wdisplays/releases/tag/1.0

View File

@@ -20,7 +20,7 @@ Check your distro for a `wdisplays` package. Known distro packages:
- [Alpine](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/wdisplays) - [Alpine](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/wdisplays)
- [Arch](https://aur.archlinux.org/packages/wdisplays-git/) - [Arch](https://aur.archlinux.org/packages/wdisplays-git/)
- [Debian](https://packages.debian.org/sid/wdisplays) - [Debian](https://packages.debian.org/sid/wdisplays)
- [Fedora](https://copr.fedorainfracloud.org/coprs/wef/wdisplays/) - [Fedora](https://packages.fedoraproject.org/pkgs/wdisplays/wdisplays)
- [FreeBSD](https://svnweb.freebsd.org/ports/head/x11/wdisplays/) - [FreeBSD](https://svnweb.freebsd.org/ports/head/x11/wdisplays/)
- [Nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/graphics/wdisplays) - [Nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/graphics/wdisplays)
- [OpenSUSE](https://build.opensuse.org/package/show/home%3AMWh3/wdisplays) - [OpenSUSE](https://build.opensuse.org/package/show/home%3AMWh3/wdisplays)
@@ -70,7 +70,8 @@ It's intended to be the Wayland equivalent of an xrandr GUI, like [ARandR].
Sway, like i3, doesn't save any settings unless you put them in the config Sway, like i3, doesn't save any settings unless you put them in the config
file. See man `sway-output`. If you want to have multiple configurations file. See man `sway-output`. If you want to have multiple configurations
depending on the monitors connected, you'll need to use an external program depending on the monitors connected, you'll need to use an external program
like [kanshi]. Integration with that and other external daemons is planned. like [kanshi] or [way-displays]. Integration with that and other external
daemons is planned.
### How do I add support to my compositor? ### How do I add support to my compositor?
@@ -79,6 +80,7 @@ get support for this in wlroots compositors. See the diff here for a sample
implementation on top of tinywl: [tinywl-output-management]. implementation on top of tinywl: [tinywl-output-management].
[kanshi]: https://github.com/emersion/kanshi [kanshi]: https://github.com/emersion/kanshi
[way-displays]: https://github.com/alex-courtis/way-displays
[Sway]: https://swaywm.org [Sway]: https://swaywm.org
[Wayfire]: https://wayfire.org [Wayfire]: https://wayfire.org
[ARandR]: https://christian.amsuess.com/tools/arandr/ [ARandR]: https://christian.amsuess.com/tools/arandr/

View File

@@ -3,7 +3,7 @@
project('network.cycles.wdisplays', 'c', project('network.cycles.wdisplays', 'c',
license: 'GPL-3.0-or-later', license: 'GPL-3.0-or-later',
version: '1.1.1' version: '1.1.3'
) )
conf = configuration_data({ conf = configuration_data({

View File

@@ -195,6 +195,7 @@ static void wd_head_form_init(WdHeadForm *form) {
g_menu_append(rotate_menu, "Rotate 180°", "head.rotate(180)"); g_menu_append(rotate_menu, "Rotate 180°", "head.rotate(180)");
g_menu_append(rotate_menu, "Rotate 270°", "head.rotate(270)"); g_menu_append(rotate_menu, "Rotate 270°", "head.rotate(270)");
gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(priv->rotate_button), G_MENU_MODEL(rotate_menu)); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(priv->rotate_button), G_MENU_MODEL(rotate_menu));
gtk_menu_button_set_use_popover(GTK_MENU_BUTTON(priv->rotate_button), false);
static const GVariantType * const mode_types[] = { static const GVariantType * const mode_types[] = {
G_VARIANT_TYPE_INT32, G_VARIANT_TYPE_INT32,
@@ -255,6 +256,7 @@ void wd_head_form_update(WdHeadForm *form, const struct wd_head *head,
g_menu_append_item(mode_menu, item); g_menu_append_item(mode_menu, item);
} }
gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(priv->mode_button), G_MENU_MODEL(mode_menu)); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(priv->mode_button), G_MENU_MODEL(mode_menu));
gtk_menu_button_set_use_popover(GTK_MENU_BUTTON(priv->mode_button), false);
// Mode entries // Mode entries
int w = head->custom_mode.width; int w = head->custom_mode.width;
int h = head->custom_mode.height; int h = head->custom_mode.height;

View File

@@ -1039,6 +1039,7 @@ static void activate(GtkApplication* app, gpointer user_data) {
g_menu_append(main_menu, "_Show Screen Contents", "app.capture-screens"); g_menu_append(main_menu, "_Show Screen Contents", "app.capture-screens");
g_menu_append(main_menu, "_Overlay Screen Names", "app.show-overlay"); g_menu_append(main_menu, "_Overlay Screen Names", "app.show-overlay");
gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(state->menu_button), G_MENU_MODEL(main_menu)); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(state->menu_button), G_MENU_MODEL(main_menu));
gtk_menu_button_set_use_popover(GTK_MENU_BUTTON(state->menu_button), false);
g_signal_connect(state->info_bar, "response", G_CALLBACK(info_response), state); g_signal_connect(state->info_bar, "response", G_CALLBACK(info_response), state);
/* first child of GtkInfoBar is always GtkRevealer */ /* first child of GtkInfoBar is always GtkRevealer */

View File

@@ -526,7 +526,7 @@ static void output_manager_handle_done(void *data,
static const struct zwlr_output_manager_v1_listener output_manager_listener = { static const struct zwlr_output_manager_v1_listener output_manager_listener = {
.head = output_manager_handle_head, .head = output_manager_handle_head,
.done = output_manager_handle_done, .done = output_manager_handle_done,
.finished = noop, .finished = (void (*)(void *, struct zwlr_output_manager_v1 *))noop,
}; };
static void registry_handle_global(void *data, struct wl_registry *registry, static void registry_handle_global(void *data, struct wl_registry *registry,
uint32_t name, const char *interface, uint32_t version) { uint32_t name, const char *interface, uint32_t version) {
@@ -553,7 +553,7 @@ static void registry_handle_global(void *data, struct wl_registry *registry,
static const struct wl_registry_listener registry_listener = { static const struct wl_registry_listener registry_listener = {
.global = registry_handle_global, .global = registry_handle_global,
.global_remove = noop, .global_remove = (void (*)(void *, struct wl_registry *, uint32_t))noop,
}; };
void wd_add_output_management_listener(struct wd_state *state, struct void wd_add_output_management_listener(struct wd_state *state, struct
@@ -603,10 +603,10 @@ static void output_name(void *data, struct zxdg_output_v1 *zxdg_output_v1,
static const struct zxdg_output_v1_listener output_listener = { static const struct zxdg_output_v1_listener output_listener = {
.logical_position = output_logical_position, .logical_position = output_logical_position,
.logical_size = noop, .logical_size = (void (*)(void *, struct zxdg_output_v1 *, int32_t, int32_t))noop,
.done = noop, .done = (void (*)(void *, struct zxdg_output_v1 *))noop,
.name = output_name, .name = output_name,
.description = noop .description = (void (*)(void *, struct zxdg_output_v1 *, const char *))noop
}; };
void wd_add_output(struct wd_state *state, struct wl_output *wl_output, void wd_add_output(struct wd_state *state, struct wl_output *wl_output,