{"id":32677762,"url":"https://github.com/DreamMaoMao/mangowc","last_synced_at":"2025-11-01T08:03:11.296Z","repository":{"id":275608678,"uuid":"926616051","full_name":"DreamMaoMao/mangowc","owner":"DreamMaoMao","description":"wayland compositor base wlroots and scenefx(dwm but wayland)","archived":false,"fork":false,"pushed_at":"2025-10-29T05:43:11.000Z","size":3005,"stargazers_count":1060,"open_issues_count":25,"forks_count":45,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-10-29T07:11:35.589Z","etag":null,"topics":["compositor","wayland","wayland-compositor","wlroots"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DreamMaoMao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-03T15:16:36.000Z","updated_at":"2025-10-29T06:55:11.000Z","dependencies_parsed_at":"2025-02-20T09:26:19.330Z","dependency_job_id":"25441000-6e70-4402-8eff-1ad597d99185","html_url":"https://github.com/DreamMaoMao/mangowc","commit_stats":null,"previous_names":["dreammaomao/plumewm","dreammaomao/maomaowm","dreammaomao/mango","dreammaomao/mangowc"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/DreamMaoMao/mangowc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamMaoMao%2Fmangowc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamMaoMao%2Fmangowc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamMaoMao%2Fmangowc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamMaoMao%2Fmangowc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DreamMaoMao","download_url":"https://codeload.github.com/DreamMaoMao/mangowc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DreamMaoMao%2Fmangowc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282113247,"owners_count":26616006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-01T02:00:06.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compositor","wayland","wayland-compositor","wlroots"],"created_at":"2025-11-01T08:01:13.967Z","updated_at":"2025-11-01T08:03:11.290Z","avatar_url":"https://github.com/DreamMaoMao.png","language":"C","funding_links":[],"categories":["others","C","Window Manager"],"sub_categories":["Dynamic"],"readme":"# MangoWC\n\n\u003cimg width=\"255\" height=\"256\" alt=\"mango-transparency-256\" src=\"https://github.com/user-attachments/assets/54caff2c-932f-4998-a090-2a5292ebbfa4\" /\u003e\n\n\nThis project's development is based on [dwl](https://codeberg.org/dwl/dwl/).\n\n\n1. **Lightweight \u0026 Fast Build**\n\n   - _Mango_ is as lightweight as _dwl_, and can be built completely within a few seconds. Despite this, _Mango_ does not compromise on functionality.\n\n2. **Feature Highlights**\n   - In addition to basic WM functionality, Mango provides:\n     - Excellent xwayland support.\n     - Base tags not workspaces (supports separate window layouts for each tag)\n     - Smooth and customizable complete animations (window open/move/close, tag enter/leave,layer open/close/move)\n     - Excellent input method support (text input v2/v3)\n     - Flexible window layouts with easy switching (scroller, master-stack, monocle,center-master, etc.)\n     - Rich window states (swallow, minimize, maximize, unglobal, global, fakefullscreen, overlay, etc.)\n     - Simple yet powerful external configuration(support shortcuts hot-reload)\n     - Sway-like scratchpad and named scratchpad\n     - Ipc support(get/send message from/to compositor by external program)\n     - Hycov-like overview\n     - Window effects from scenefx (blur, shadow, corner radius, opacity)\n\nMaster-Stack Layout\n\nhttps://github.com/user-attachments/assets/a9d4776e-b50b-48fb-94ce-651d8a749b8a\n\nScroller Layout\n\nhttps://github.com/user-attachments/assets/c9bf9415-fad1-4400-bcdc-3ad2d76de85a\n\nLayer animaiton\n\nhttps://github.com/user-attachments/assets/014c893f-115c-4ae9-8342-f9ae3e9a0df0\n\n\n# Our discord\n[mangowc](https://discord.gg/CPjbDxesh5)\n\n# Supported layouts\n\n- tile\n- scroller\n- monocle\n- grid\n- deck\n- center_tile\n- vertical_tile\n- vertical_grid\n- vertical_scroller\n\n# Installation\n\n## Dependencies\n\n- glibc\n- wayland\n- wayland-protocols\n- libinput\n- libdrm\n- libxkbcommon\n- pixman\n- git\n- meson\n- ninja\n- libdisplay-info\n- libliftoff\n- hwdata\n- seatd\n- pcre2\n\n## Arch Linux\nThe package is in the Arch User Repository and is availble for manual download [here](https://aur.archlinux.org/packages/mangowc-git) or through a AUR helper like yay:\n```bash\nyay -S mangowc-git\n\n```\n\n## Gentoo Linux\n\nThe package is in the community-maintained repository called GURU.\nFirst, add GURU repository:\n\n```bash\nemerge --ask --verbose eselect-repository\neselect repository enable guru\nemerge --sync guru\n```\n\nThen, add `gui-libs/scenefx` and `gui-wm/mangowc` to the `package.accept_keywords`.\n\nFinally, install the package:\n\n```bash\nemerge --ask --verbose gui-wm/mangowc\n```\n\n## Other\n\n```bash\ngit clone -b 0.19.1 https://gitlab.freedesktop.org/wlroots/wlroots.git\ncd wlroots\nmeson build -Dprefix=/usr\nsudo ninja -C build install\n\ngit clone https://github.com/wlrfx/scenefx.git\ncd scenefx\nmeson build -Dprefix=/usr\nsudo ninja -C build install\n\ngit clone https://github.com/DreamMaoMao/mangowc.git\ncd mangowc\nmeson build -Dprefix=/usr\nsudo ninja -C build install\n```\n\n## Suggested Tools\n\n### integrated component\n- [dms-shell](https://github.com/AvengeMedia/DankMaterialShell)\n\n### Independent component\n- Application launcher (rofi, bemenu, wmenu, fuzzel)\n- Terminal emulator (foot, wezterm, alacritty, kitty, ghostty)\n- Status bar (waybar, eww, quickshell, ags), waybar is preferred\n- Wallpaper setup (swww, swaybg)\n- Notification daemon (swaync, dunst,mako)\n- Desktop portal (xdg-desktop-portal, xdg-desktop-portal-wlr, xdg-desktop-portal-gtk)\n- Clipboard (wl-clipboard, wl-clip-persist, cliphist)\n- Gamma control/night light (wlsunset, gammastep)\n- Miscellaneous (xfce-polkit, wlogout)\n\n## Some Common Default Keybindings\n\n- alt+return: open foot terminal\n- alt+space: open rofi launcher\n- alt+q: kill client\n- alt+left/right/up/down: focus direction\n- super+m: quit mango\n\n## My Dotfiles\n\n### Daily\n- Dependencies\n\n```bash\nyay -S rofi foot xdg-desktop-portal-wlr swaybg waybar wl-clip-persist cliphist wl-clipboard wlsunset xfce-polkit swaync pamixer wlr-dpms sway-audio-idle-inhibit-git swayidle dimland-git brightnessctl swayosd wlr-randr grim slurp satty swaylock-effects-git wlogout sox\n```\n\n### Dms\n- Dependencies\n```bash\nyay -S foot xdg-desktop-portal-wlr swaybg wl-clip-persist cliphist wl-clipboard xfce-polkit sway-audio-idle-inhibit-git brightnessctl grim slurp satty matugen-bin dms-shell-git\n\n```\n- use my dms config\n\n```bash\ngit clone -b dms https://github.com/DreamMaoMao/mango-config.git ~/.config/mango\n```\n- use my daily config\n\n```bash\ngit clone https://github.com/DreamMaoMao/mango-config.git ~/.config/mango\n```\n\n\n## Config Documentation\n\nRefer to the [wiki](https://github.com/DreamMaoMao/mango/wiki/)\n\n# NixOS + Home-manager\n\nThe repo contains a flake that provides a NixOS module and a home-manager module for mango.\nUse the NixOS module to install mango with other necessary components of a working Wayland environment.\nUse the home-manager module to declare configuration and autostart for mango.\n\nHere's an example of using the modules in a flake:\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    home-manager = {\n      url = \"github:nix-community/home-manager\";\n      inputs.nixpkgs.follows = \"nixpkgs\";\n    };\n    flake-parts.url = \"github:hercules-ci/flake-parts\";\n    mango.url = \"github:DreamMaoMao/mango\";\n  };\n  outputs =\n    inputs@{ self, flake-parts, ... }:\n    flake-parts.lib.mkFlake { inherit inputs; } {\n      debug = true;\n      systems = [ \"x86_64-linux\" ];\n      flake = {\n        nixosConfigurations = {\n          hostname = inputs.nixpkgs.lib.nixosSystem {\n            system = \"x86_64-linux\";\n            modules = [\n              inputs.home-manager.nixosModules.home-manager\n\n              # Add mango nixos module\n              inputs.mango.nixosModules.mango\n              {\n                programs.mango.enable = true;\n              }\n              {\n                home-manager = {\n                  useGlobalPkgs = true;\n                  useUserPackages = true;\n                  backupFileExtension = \"backup\";\n                  users.\"username\".imports =\n                    [\n                      (\n                        { ... }:\n                        {\n                          wayland.windowManager.mango = {\n                            enable = true;\n                            settings = ''\n                              # see config.conf\n                            '';\n                            autostart_sh = ''\n                              # see autostart.sh\n                              # Note: here no need to add shebang\n                            '';\n                          };\n                        }\n                      )\n                    ]\n                    ++ [\n                      # Add mango hm module\n                      inputs.mango.hmModules.mango\n                    ];\n                };\n              }\n            ];\n          };\n        };\n      };\n    };\n}\n```\n\n\n# Sponsor\n\nMy current device is a bit outdated and doesn't support certain features like HDR or VRR. If you'd like to support this project, here's how you can help. Thanks!\n\n![Screenshot_2025-10-13-20-06-49-26_ee1cec40dcf6eb3](https://github.com/user-attachments/assets/240a0727-9eb5-4212-a84c-10fa9f093147)\n\n\n# Packaging mango\n\nTo package mango for other distributions, you can check the reference setup for:\n\n- [nix](https://github.com/DreamMaoMao/mangowc/blob/main/nix/default.nix)\n- [arch](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=mangowc-git).\n- [gentoo](https://data.gpo.zugaina.org/guru/gui-wm/mangowc)\n\nYou might need to package `scenefx` for your distribution, check availability [here](https://github.com/wlrfx/scenefx.git).\n\nIf you encounter build errors when packaging `mango`, feel free to create an issue and ask a question, but\nRead The Friendly Manual on packaging software in your distribution first.\n\n# Thanks to These Reference Repositories\n\n- https://gitlab.freedesktop.org/wlroots/wlroots - Implementation of Wayland protocol\n\n- https://github.com/dqrk0jeste/owl - Basal window animation\n\n- https://codeberg.org/dwl/dwl - Basal dwl feature\n\n- https://github.com/swaywm/sway - Sample of Wayland protocol\n\n- https://github.com/wlrfx/scenefx - Make it simple to add window effect.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDreamMaoMao%2Fmangowc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDreamMaoMao%2Fmangowc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDreamMaoMao%2Fmangowc/lists"}