Giter VIP home page Giter VIP logo

deepin-mutter's Introduction

Deepin Mutter

Description: Base window manager component for Deepin.

Mutter is a window manager for the X Window System, and is in the process of becoming a Wayland compositor; it became the default window manager in GNOME 3, replacing Metacity which uses GTK+ for rendering, while Mutter uses a graphics library called Clutter, and through it also supports OpenGL.

Mutter is extensible with plugins and supports numerous visual effects. For example, deepin-wm is written as a plugin to Mutter.

This project is a fork of Mutter to avoid DDE depending on GNOME with some special hacking work, include applying some patches, using the gsettings under com.deepin.wrap.gnome instead of org.gnome, etc. And Deepin Mutter just could coexists with Mutter to make the porting work easier.

Dependencies

Build dependencies

  • debhelper (>= 9)
  • intltool (>= 0.41)
  • gtk-doc-tools (>= 1.15)
  • gobject-introspection (>= 1.41.3)
  • gsettings-desktop-schemas (>= 3.15.92)

Runtime dependencies

  • cairo (>= 1.10.0)
  • clutter-1.0 (>= 1.21.3)
  • clutter-wayland-1.0
  • clutter-wayland-compositor-1.0
  • cogl-1.0 (>= 1.17.1)
  • deepin-desktop-schemas
  • gbm (>= 10.3)
  • glib2.0 (>= 2.35.1)
  • gnome-desktop-3.0 (>= 3.10)
  • gnome-themes-standard
  • gobject-introspection-1.0 (>= 0.9.12)
  • gtk+-3.0 (>= 3.9.11)
  • gudev-1.0
  • ice
  • json-glib-1.0 (>= 0.13.2)
  • libcanberra-gtk3
  • libinput
  • libstartup-notification-1.0 (>= 0.7)
  • libsystemd (>= 212)
  • pango (>= 1.2.0)
  • sm
  • upower-glib (>= 0.99.0)
  • wayland-server (>= 1.6.90)
  • x11
  • x11-xcb
  • xcb-randr
  • xcomposite (>= 1:0.2)
  • xcursor
  • xdamage
  • xext
  • xfixes
  • xi (>= 2:1.6.0)
  • xinerama
  • xkbcommon (>= 0.4.3)
  • xkbcommon-x11
  • xkbfile
  • xrandr
  • xrender
  • xt
  • zenity

Installation

Debian 8.0 (jessie)

Install prerequisites

$ sudo apt-get install \
               cdbs \
               debhelper \
               gnome-pkg-tools \
               dh-autoreconf \
               intltool \
               gtk-doc-tools \
               gobject-introspection \
               gsettings-desktop-schemas-dev \
               deepin-desktop-schemas \
               deepin-desktop-schemas \
               gnome-themes-standard \
               libcairo2-dev \
               libcanberra-gtk3-dev \
               libclutter-1.0-dev \
               libcogl-dev \
               libgbm-dev \
               libgirepository1.0-dev \
               libglib2.0-dev \
               libgnome-desktop-3-dev \
               libgtk-3-dev \
               libgudev-1.0-dev \
               libice-dev \
               libinput-dev \
               libjson-glib-dev \
               libpam0g-dev \
               libpango1.0-dev \
               libsm-dev \
               libstartup-notification0-dev \
               libsystemd-dev \
               libupower-glib-dev \
               libwayland-dev \
               libx11-dev \
               libx11-xcb-dev \
               libxcb-randr0-dev \
               libxcomposite-dev \
               libxcursor-dev \
               libxdamage-dev \
               libxext-dev \
               libxfixes-dev \
               libxi-dev \
               libxinerama-dev \
               libxkbcommon-dev \
               libxkbcommon-x11-dev \
               libxkbfile-dev \
               libxrandr-dev \
               libxrender-dev \
               libxt-dev \
               xkb-data \
               zenity

Build

$ ./autogen.sh --prefix=/usr \
               --libexecdir=/usr/lib/deepin-mutter \
               --sysconfdir=/etc \
               --enable-gtk-doc \
               --disable-schemas-compile \
               --enable-wayland \
               --enable-native-backend \
               --enable-compile-warnings=minimum
$ make

If you have isolated testing build environment (say a docker container), you can install it directly

$ sudo make install

Or, generate package files and install Deepin Mutter with it

$ debuild -uc -us ...
$ sudo dpkg -i ../deepin-mutter-*deb

Usage

Run Deepin Mutter to replace current window manager with the command below

$ deepin-mutter --replace &

Getting help

Any usage issues can ask for help via

Getting involved

We encourage you to report issues and contribute changes

License

Deepin Mutter is licensed under GPLv3.

deepin-mutter's People

Contributors

bpeel avatar cgwalters avatar changwoo avatar danwinship avatar dmustieles avatar dooteo avatar fmuellner avatar frandieguez avatar garnacho avatar gcampax avatar halfline avatar havocp avatar jadahl avatar kelemeng avatar khaledhosny avatar magcius avatar marnanel avatar mtrmac avatar newren avatar owtaylor avatar pclouds avatar pesder avatar piotrdrag avatar readams avatar recursive-rat4 avatar rib avatar ricotz avatar rtcm avatar sorensp avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deepin-mutter's Issues

Deepin-mutter crashes on execution after build from source

Hello,

I tried to build and execute this project from scratch but it failed to run mutter due to missing schemas from deepin-desktop-schemas

Steps to reproduce
$ git clone https://github.com/linuxdeepin/deepin-desktop-schemas.git && cd deepin-desktop-schemas
$ git checkout release/3.0 && make install
$ cd .. && git clone https://github.com/linuxdeepin/deepin-mutter.git
$ git checkout release/3.20
$ apt-get install <prerequisites (excluding deepin-desktop-schemas, can not be found in Ubuntu repositories, thats why I downloaded directly from source) >
$
$ make && sudo make install

Output

~/deepin-src/deepin-mutter$ deepin-mutter 

(deepin-mutter:2102): GLib-GIO-ERROR **: Settings schema 'com.deepin.wrap.gnome.desktop.peripherals.mouse' is not installed

Trace/breakpoint trap (core dumped)

Thank you for your time.

Missing include in compositor/blur-utils.c

When compiling on a Gentoo system, I see the following output:

compositor/blur-utils.c:16:17: warning: incompatible implicit declaration of built-in function 'powf'

Adding in a

#include <math.h>

Fixes it up - this is with a 6.4.0 compiler.

build error with gcc 4.9

I try to porting DDE to Gento distribution, but I got build errors for deepin-mutter 3.20.x with gcc 4.9.

......
compositor/meta-blur-effect.c: in function ‘build_gaussian_blur_kernel’:
compositor/meta-blur-effect.c:69:5: error:‘for’ loop initial declarations are only allowed in C99 or C11 mode
......
compositor/meta-blurred-background-actor.c: in function ‘build_gaussian_blur_kernel’:
compositor/meta-blurred-background-actor.c:88:5: error:‘for’ loop initial declarations are only allowed in C99 or C11 mode
......

If I add "-std=c11" in CFLAGS, it complained that "unknown type name 'uint'".
......
backends/meta-cursor.c: in function ‘meta_cursor_sprite_load_from_xcursor_image’:
backends/meta-cursor.c:134:3: error:unknown type name ‘uint’
......

Since backends/meta-cursor.c is from original mutter source, and compositor/meta-blur-*.c are created by Deepin. Could you please initial i outside the "for" loop in these source files?

undefined reference to `cogl_texture_copy_sub_image' build error Kubuntu 19.04

Hi folks! Love Deepin!

I'm trying to compile deepin-mutter but I'm running into the following issue:

/usr/bin/ld: ./.libs/libdeepin-mutter.so: undefined reference to `cogl_texture_copy_sub_image'
collect2: error: ld returned 1 exit status

I've installed all prerequisites listed, but the error persists. This happens on the release/3.20 branch, and maintain/15.5pro branch.

Here is more of the make text:

make  all-recursive
make[1]: Entering directory '/home/sputnik/deepin/deepin-mutter'
Making all in data
make[2]: Entering directory '/home/sputnik/deepin/deepin-mutter/data'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/sputnik/deepin/deepin-mutter/data'
Making all in src
make[2]: Entering directory '/home/sputnik/deepin/deepin-mutter/src'
make  all-recursive
make[3]: Entering directory '/home/sputnik/deepin/deepin-mutter/src'
Making all in compositor/plugins
make[4]: Entering directory '/home/sputnik/deepin/deepin-mutter/src/compositor/plugins'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/sputnik/deepin/deepin-mutter/src/compositor/plugins'
make[4]: Entering directory '/home/sputnik/deepin/deepin-mutter/src'
  CCLD     deepin-mutter
/usr/bin/ld: ./.libs/libdeepin-mutter.so: undefined reference to `cogl_texture_copy_sub_image'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:1723: deepin-mutter] Error 1
make[4]: Leaving directory '/home/sputnik/deepin/deepin-mutter/src'
make[3]: *** [Makefile:2116: all-recursive] Error 1
make[3]: Leaving directory '/home/sputnik/deepin/deepin-mutter/src'
make[2]: *** [Makefile:1224: all] Error 2
make[2]: Leaving directory '/home/sputnik/deepin/deepin-mutter/src'
make[1]: *** [Makefile:476: all-recursive] Error 1
make[1]: Leaving directory '/home/sputnik/deepin/deepin-mutter'
make: *** [Makefile:406: all] Error 2

I found these two links:
[1] link 1
[2] link 2
which reference this cogl_texture as well as this bugzilla issue on Gnome. This lead me to believe that I am missing some Gnome deps, so I installed gnome-core gnome-desktop3-data and gnome-devel but the error still persists!

Any help in solving this would be great!

Thanks Deepin team! 🍻

Vintage apps in full screen render the desktop unusable

HOW TO REPRODUCE:
Execute a low res vintage application in full resolution, for example dosbox or uqm.

RESULT:
The desktop is shown blank, or glitchy. At that point the only way to recover is to reboot.

SYSTEM DETAILS:

  • Kernel: Linux 4.13.11
  • Graphic card: Radeon HD 5870
  • Graphic driver: Mesa 17.2.4
  • Graphic server: Xorg 1.19.5
  • Window manager: Deepin Mutter 3.20.24

Unable to create debian build from source code

Hello, I was trying to build this package for debian by following the instructions in the project's README but I got the following error:

~/deepin-src/deepin-mutter$ debuild -uc -us ...
debuild: fatal error at line 633:
cannot find readable debian/changelog anywhere!
Are you in the source code tree?

I cloned the repo and built the project without a problem its just the packaging step which seems to fail.

update of gnome-desktop to 3.28 broke deepin-mutter

Basically the title.

Both my systems with arch linux and DDE broke updating the system to gnome 3.28. To update the system it was required to downgrade deepin-mutter to 3.20.28-2 and deepin-wm to 1.9.23-2.

Afterwards i went back to gnome-desktop 3.26.2-2, deepin-mutter 3.20.29-1, deepin-wm 1.9.24-1 and everything went back to normal

64bit portability issue

编译通过,但是 OBS 最后测试失败, 被最后的 E: deepin-mutter 64bit-portability-issue core/prefs.c:1314 block。可以修复这部分 warning/error 吗? @sonald

%configure \
    --libexecdir=%{_libexecdir}/%{name} \
    --enable-gtk-doc \
%if 0%{?suse_version} >= 1330
    --enable-wayland \
%endif
    --disable-native-backend \
    --disable-static \
    --disable-schemas-compile \
    --enable-compile-warnings=minimum
[  138s] Wrote: /home/abuild/rpmbuild/SRPMS/deepin-mutter-3.20.21-20.1.src.rpm
[  140s] Wrote: /home/abuild/rpmbuild/RPMS/x86_64/deepin-mutter-3.20.21-20.1.x86_64.rpm
[  141s] Wrote: /home/abuild/rpmbuild/RPMS/x86_64/deepin-mutter-debugsource-3.20.21-20.1.x86_64.rpm
[  141s] Wrote: /home/abuild/rpmbuild/RPMS/x86_64/deepin-mutter-devel-3.20.21-20.1.x86_64.rpm
[  143s] Wrote: /home/abuild/rpmbuild/RPMS/x86_64/deepin-mutter-debuginfo-3.20.21-20.1.x86_64.rpm
[  143s] Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.oL0rVs
[  143s] + umask 022
[  143s] + cd /home/abuild/rpmbuild/BUILD
[  143s] + cd deepin-mutter-3.20.21
[  143s] + /usr/bin/rm -rf /home/abuild/rpmbuild/BUILDROOT/deepin-mutter-3.20.21-20.1.x86_64
[  143s] + exit 0
[  143s] ... checking for files with abuild user/group
[  143s] ... running 00-check-install-rpms
[  143s] ... installing all built rpms
[  143s] Preparing packages...
[  143s] deepin-mutter-3.20.21-20.1.x86_64
[  143s] deepin-mutter-devel-3.20.21-20.1.x86_64
[  143s] deepin-mutter-debugsource-3.20.21-20.1.x86_64
[  144s] deepin-mutter-debuginfo-3.20.21-20.1.x86_64
[  144s] ... running 01-check-debuginfo
[  144s] ... testing for empty debuginfo packages
[  144s] ... running 02-check-gcc-output
[  144s] ... testing for serious compiler warnings
[  144s]     (using /usr/lib/build/checks-data/check_gcc_output)
[  144s]     (using //.build.log)
[  144s] 
[  144s] I: Program is using implicit definitions of functions getting
[  144s]    pointers or implemented by macros. These functions need to use their
[  144s]    correct prototypes to allow correct argument passing on e.g. x86_64 .
[  144s]      - Implicit memory/string functions need #include <string.h>.
[  144s]      - Implicit *printf functions need #include <stdio.h>.
[  144s]      - Implicit *printf functions need #include <stdio.h>.
[  144s]      - Implicit *read* functions need #include <unistd.h>.
[  144s]      - Implicit *recv* functions need #include <sys/socket.h>.
[  144s] W: deepin-mutter implicit-pointer-decl compositor/meta-blurred-background-actor.c:301
[  144s] 
[  144s] I: A function uses a 'return;' statement, but has actually a value
[  144s]    to return, like an integer ('return 42;') or similar.
[  144s] W: deepin-mutter voidreturn compositor/meta-blur-actor.c:359
[  144s] E: deepin-mutter 64bit-portability-issue core/prefs.c:1314

https://build.opensuse.org/public/build/home:1dot75cm:branches:X11:Deepin/openSUSE_Tumbleweed/x86_64/deepin-mutter/_log

opensuse_Tumbleweed_with_disable-native-backend.log

deepin-mutter 3.20 crashes at startup

I built it from source (https://github.com/linuxdeepin/deepin-mutter/tree/release/3.20) and crashes immediately after deepin-mutter --replace & with the following:

alex@alex-PC:~$ 
** (deepin-mutter:73501): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
alex@alex-PC:~$ Window manager warning: mlockall failed: Cannot allocate memory

I use Deepin 15.5 with all updates installed

As I can see @sonald is the maintainer of this tree. Do you have the same problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.