summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
6 daysbuild(deps): bump actions/checkout from 6 to 7HEADmasterdependabot[bot]2-2/+2
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
11 daysChange default icon from preferences-desktop-theme to application-x-executableMystia-Izakaya1-1/+1
The preferences-desktop-theme icon is really annoying and confusing as the default icon for windows which do not have an icon. I suggest using application-x-executable as a more visually consistent alternative.
2026-05-28window: sync up command line option and code behavior.Mihai Moldovan1-1/+1
The description for --no-force-fullscreen explicitly states that it disabled forcing fullscreen mode on windows that have *no* decorations and are screen-sized. Up until now, the code directly contradicted that by running the part only if either the decorations where *enabled* or no CSD being used. That causes multiple problems. For once, modern video players, which can certainly not be regarded as "legacy applications", that try to show the video window as big as possible and hence set the extents to exactly the screen size, including using static gravity (so that borders are NOT removed from the window size automatically) but still request a border are wrongly forced into fullscreen mode by this hack. Changing the gravity would work around that problem because the window size is effectively lowered, but we can't expect applications to work around bugs in marco. Secondly, the check for window decorations (or not) gets completely cancelled out by the OR'd check for no CSD. According to the original commit message, this hasn't been the intention, but rather to NOT force fullscreen mode on windows that have no decorations and are CSD. It was meant well, but the logic behind the change failed to do what it was supposed to do. Hence, fix that by checking if an application explicitly disabled window decorations *AND* is not CSD. This syncs up the help description and code behavior and fixes the CSD part, but note that, naturally, it also changes the general behavior. Specifically, this might break cases in which applications were supposed to be forced into fullscreen mode even though they didn't explicitly disable window decorations. I'd argue that such behavior would rather be a bug and not a feature, though.
2026-05-27display: Add settings for Alt+Tab window placementVictor Kareh5-64/+131
Add user settings to control how minimized and urgent windows are ordered during Alt+Tab. 1. alt-tab-minimized-placement: - 'mru': Mix minimized windows in MRU order - 'end': Show minimized windows last (current behavior, default) - 'hidden': Exclude minimized windows from Alt+Tab 2. alt-tab-urgent-placement: - 'start': Show all urgent windows first (current behavior, default) - 'mru': Mix urgent windows in MRU order Fixes #824 Closes #819
2026-05-27window: Resize adjacent tiled windows when dragging shared edgeVictor Kareh4-0/+190
When two windows are tiled side-by-side or in complementary quarter-tile positions, dragging the shared inside edge now resizes both windows simultaneously. Fixes #615
2026-05-27window: focus modal dialogs whose ancestor is focusedSaverio Miroddi1-0/+8
Fixes #784. Commit 6ea23df ("window: do not unfocus on new window") imported the Metacity bf17c79 / Mutter 998d921d behavior for GNOME Bugzilla #773210: when a new transient maps without taking focus, keep focus on the parent so GTK popup and completion windows and VLC fullscreen controls do not steal keyboard focus. That blanket change also affected modal dialogs whose parent already has focus. Electron and GTK file chooser dialogs can reach meta_window_show() with takes_focus_on_map false because their _NET_WM_USER_TIME is missing or stale. Since 6ea23df, such dialogs are mapped above the parent but keyboard focus stays on the parent, so typing goes to the wrong window. Keep the bf17c79-equivalent behavior for non-modal transients, but when the new window is a META_WINDOW_MODAL_DIALOG whose ancestor is the current focus window, force takes_focus_on_map so the blocking dialog receives keyboard focus immediately.
2026-05-27frame: Preserve client position when removing decorationsVictor Kareh1-2/+21
Windows using StaticGravity (like Qt apps) would shift up and left by the visible frame border size each time they were hidden to system tray and restored. The position drift compounded with each cycle. This changes those windows to use the client's actual root position. Fixes #534
2026-05-27screen: Use larger font for wireframe size popupVictor Kareh1-2/+2
The wireframe resize/move popup used the "fixed" font, which is 13px and quite small for modern displays. This changes it to "10x20", which is 20px and is included as part of the same Xorg fonts package.
2026-05-27window: Exclude invisible borders from wireframe rectangleVictor Kareh1-5/+8
The wireframe drawn in reduced-resources mode included invisible resize borders, making it larger than the visible window. This removes the invisible borders from the xor rect calculation. Fixes #532
2026-04-29fix invalid po filesOlivier Schneider1-1/+1
2026-04-29remove empty po filesOlivier Schneider30-70170/+0
2026-04-29remove invalid po filesOlivier Schneider9-18734/+0
2026-04-29add translation coverage badgeOlivier Schneider1-0/+2
2026-04-29retrieve last transifex translationsOlivier Schneider79-2426/+147500
2026-04-29weblate migrationOlivier Schneider4-403/+443
2026-03-16display: Use global MRU list for switch-windows-allVictor Kareh3-39/+57
When using switch-windows-all to cycle through windows across all workspaces, marco was grouping windows by workspace rather than using a global MRU (most-recently-used) list. This caused several issues: - Sticky windows appeared multiple times, once per workspace - Window order was confusing (since they were grouped by workspace number) - Behavior was different from other window managers Fixed by collecting all windows, sorting them by recency, then building the tab list from this global list. Fixes #286
2026-02-09fix switch-windows-all hotkeyDenis Gorodnichev2-7/+8
pass focus to window if it is on another workspace
2026-01-21window: Fix corner-tiled windows becoming maximized on reloadVictor Kareh1-3/+7
Corner-tiled windows were being treated as maximized horizontally, which is wrong. Instead, we clear all maximized flags to make sure their size is respected on reload. Fixes #710
2025-12-15build(deps): bump actions/cache from 4 to 5dependabot[bot]1-1/+1
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2025-11-25build(deps): bump actions/checkout from 5 to 6dependabot[bot]2-2/+2
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2025-11-01keybindings: Add area screenshot keyboard shortcutVictor Kareh6-4/+25
Add Shift+Print keybinding to trigger 'mate-screenshot --area' for interactive area selection. This gives users a dedicated keybinding for area screenshots in addition to the existing Print (screen) and Alt+Print (window) shortcuts. Fixes mate-desktop/marco#157
2025-11-01keybindings: Release keyboard grab on screenshot commandsVictor Kareh3-4/+14
This prevents race conditions with applications like mate-screenshot that need to grab input (e.g. for area selection). Fixes mate-desktop/mate-utils#37
2025-11-01keybindings: Fix command spawning to use posix_spawnVictor Kareh1-16/+9
Replace putenv-based child setup with glib environment functions. This enables posix_spawn for keybindings and it fixes an old memory leak with not being able to free the string we added to putenv.
2025-11-01keybindings: Fix move-to-center calculationVictor Kareh3-8/+22
There was a 10px difference in the calculation between the (correct) center-new-windows placement and the (incorrect) move-to-center keybinding. By using the same function in both places we can make sure the calculation is consistent.
2025-11-01theme: Include shadow and resize bordersVictor Kareh8-31/+126
Extend MetaFrameBorders to include shadow and resize borders to calculate invisible border size. Also added border caching to prevent recalculating borders on every frame operation. This is a backport of the following commits from Metacity: - https://gitlab.gnome.org/GNOME/metacity/-/commit/21e664af - https://gitlab.gnome.org/GNOME/metacity/-/commit/3c6e269b - https://gitlab.gnome.org/GNOME/metacity/-/commit/700e87ea
2025-10-06Add dynamic workspaces supportVictor Kareh6-22/+305
Adds GNOME3-style dynamic workspace management. Workspaces are created when no empty ones exist and removed when multiple empty workspaces are present, maintaining exactly one empty workspace at the end. Fixes #406
2025-10-03screen: Add dynamic HiDPI scale change supportVictor Kareh1-0/+62
This allows marco to respond to HiDPI scale changes without requiring a restart. When the scale changes, marco now automatically updates all icons (windows, xprops, alt+tab, etc.) and mouse cursor to be at the correct scale factor. Window decorations are handled through an internal GDK signal triggered from XSettings changes, and so already work out of the box.
2025-09-22Release 1.29.1v1.29.1lukefromdc3-4/+9
2025-09-22update translationslukefromdc21-315/+2982
2025-09-22ci: Trigger full release on new tagVictor Kareh2-2/+27
Whenever there's a new v* tag, GitHub will use distcheck to generate tarballs, create a proper release, and trigger the mate-desktop.org webhook.
2025-09-11Release 1.29.0v1.29.0lukefromdc3-3/+22
2025-09-09window: Add configurable mouse actions for titlebarVictor Kareh5-15/+166
Adds support for configurable mouse actions on window titlebars, including middle-click and scroll wheel events. New actions added: - close: Close the window - raise: Raise window to top - toggle_stick: Toggle sticky state (all workspaces) - toggle_above: Toggle always-on-top state Fixes #425 Fixes #787 Note: requries matching mate-control-center changes to work properly
2025-09-05theme: Fix left-side Fitt's LawVictor Kareh1-11/+6
When calculating the clickable area on the left-most button of a maximized window, we need to take into account the layout components, not just the button size. Fixes mate-desktop/mate-themes#318
2025-09-02theme: Extend button clickable area to edge of screenVictor Kareh1-2/+23
Apply Fitt's law to corner window buttons by extending the clickable area all the way to the edge of the screen on maximized/tiled windows. This means that a user moving the pointer all the way to the top-right corner and clicking, will close the maximized (or right-tiled) window. The same applies for top-left on maximized and left-tiled windows.
2025-08-29build(deps): bump actions/cache from 3 to 4dependabot[bot]1-1/+1
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2025-08-21build(deps): bump actions/checkout from 4 to 5dependabot[bot]2-2/+2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]>
2025-08-03build(deps): bump dev-hanz-ops/install-gh-cli-action from 0.1.0 to 0.2.1dependabot[bot]1-1/+1
Bumps [dev-hanz-ops/install-gh-cli-action](https://github.com/dev-hanz-ops/install-gh-cli-action) from 0.1.0 to 0.2.1. - [Release notes](https://github.com/dev-hanz-ops/install-gh-cli-action/releases) - [Commits](https://github.com/dev-hanz-ops/install-gh-cli-action/compare/v0.1.0...v0.2.1) --- updated-dependencies: - dependency-name: dev-hanz-ops/install-gh-cli-action dependency-version: 0.2.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
2025-07-28GitHub action (#795)Wu Xiaotian11-296/+570
* CI: use github action * CI: Drop travis CI
2025-07-27Fix GTK deprecations (#798)Victor Kareh4-40/+42
* menu: replace gtk_menu_popup() with gtk_menu_popup_at_rect() Replace deprecated gtk_menu_popup() with gtk_menu_popup_at_rect(). This provides the same menu positioning calculation while eliminating deprecation warnings. * ui: replace gtk_widget_get_realized() with gtk_widget_get_mapped() Replace deprecated gtk_widget_get_realized() with gtk_widget_get_mapped(). Since mapped widgets are guaranteed to be realized, and we only care about widget visibility, this change eliminates deprecation warnings while maintaining the same functionality. * frames: replace gdk_window_process_all_updates() with gdk_display_flush() Replace deprecated gdk_window_process_all_updates() with gdk_display_flush(). Both functions ensure pending updates are processed, but gdk_display_flush is more general for all display requests.
2025-04-02window: Parse _BAMF_DESKTOP_FILE propertyVictor Kareh8-20/+79
In systems with bamfdaemon running, windows get this property for finding the dekstop spec file of an application. This can be used to find the defined icon for any application window that reports this attribute and provider much better icon matching.
2025-04-02iconcache: Add GDesktopAppInfo lookup as an icon caching strategyVictor Kareh5-53/+66
Looking up GDesktopAppInfo from the GTK Application ID we can get a much better match for the icon and load it at the appropriate scale. This results in matching icons to straneous windows and better looking icons overall.
2025-04-02window: Parse _GTK_APPLICATION_ID propertyVictor Kareh4-1/+31
GTK+ has support for the application ID property. This will allow Marco to reconstruct the path to the desktop spec file and so have access to all internal attributes (e.g. name, icon, etc.)
2025-02-11window-props: remove incorrect mask checkColomban Wendling1-5/+4
Based off Metacity 's commit 7c1cc3ca1d8131499b9cf2ef50b295602ffd6112 [1]. [1] https://gitlab.gnome.org/GNOME/metacity/-/commit/7c1cc3ca1d8131499b9cf2ef50b295602ffd6112
2025-02-11window-props: Fix check for XResQueryClientIds() successColomban Wendling1-3/+3
X's Success return value is 0, not a boolean, so the check was effectively inverted.
2024-06-18ci: fix travis deploylukefromdc1-2/+4
2024-02-26tabpopup: Stop spamming the ATs with label changes at startupColomban Wendling1-7/+9
2024-02-26tabpopup: Report the window as active to a11y when it's showingColomban Wendling1-1/+69
The switcher windows aren't actually "active" per GTK's meaning because they do not have actual keyboard focus, but they are controlled by the internal grabs so it's effectively the same as if they were active. Reporting them as such helps the ATs understanding what's going on. Fixes #771.
2024-02-16release 1.28.1v1.28.1raveit653-2/+6
2024-02-16themes/eOS/meson.build: Install missing PNGsBobby Rong1-0/+2
Follow-up of 4a2a5dc092814bfe ("eOS theme: Add single button backgrounds") Without this fix these PNGs are installed when using autotools but not using meson.
2024-02-14release 1.28.0v1.28.0raveit653-3/+8