Skip to content

Instantly share code, notes, and snippets.

@wbond
Created November 23, 2011 02:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wbond/1387749 to your computer and use it in GitHub Desktop.
Save wbond/1387749 to your computer and use it in GitHub Desktop.
Got sick of the terrible handling of application shortcuts by window managers, so here are some rough steps to build a custom version of Chromium that works with Gnome Shell on Gnome 3 for Fedora Core 16
# Based on:
# http://hacktux.com/fedora/source/rpm
# http://fedoraproject.org/wiki/Chromium
# http://codereview.chromium.org/7562022/patch/1/2
# as root
cd /etc/yum.repos.d/
wget http://repos.fedorapeople.org/repos/spot/chromium-stable/fedora-chromium-stable.repo
yum -y install yum-utils rpmdevtools elfutils-libeld-devel libXt-devel
exit
echo "%_topdir %(echo $HOME)/rpmbuild
%_smp_mflags -j2
%__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}" > ~/.rpmmacros
/usr/bin/rpmdev-setuptree
cd ~/rpmbuild/SRPMS/
yumdownloader --source chromium
sudo yum-builddep chromium-*
rpm -ivh chromium-*
echo "--- chromium-15.0.874.106/chrome/browser/ui/gtk/browser_window_gtk.cc.expirimental 2011-11-22 20:51:44.148280987 -0500
+++ chromium-15.0.874.106/chrome/browser/ui/gtk/browser_window_gtk.cc 2011-11-22 20:52:52.524910241 -0500
@@ -300,7 +300,7 @@
void SetWindowCustomClass(GtkWindow* window, const std::string& wmclass) {
gtk_window_set_wmclass(window,
wmclass.c_str(),
- gdk_get_program_class());
+ wmclass.c_str());
// Set WM_WINDOW_ROLE for session management purposes.
// See http://tronche.com/gui/x/icccm/sec-5.html ." > ~/rpmbuild/SOURCES/chromium-15.0.874.106-wm-class.patch
echo "--- a/chromium.spec 2011-11-22 21:14:44.263679384 -0500
+++ b/chromium.spec 2011-11-22 21:14:03.886708662 -0500
@@ -189,6 +189,9 @@ Patch56: chromium-14.0.827.10-fix-webkit
# Add missing include for header that provides OVERRIDE definition
Patch57: chromium-15.0.874.106-OVERRIDE-define-fix.patch
+# Change custom WM_CLASS to override both so application shortcuts work with Gnome Shell
+Patch58: chromium-15.0.874.106-wm-class.patch
+
# OLD: Use chromium-daily-tarball.sh to generate tarball from svn.
# New: Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -460,6 +463,8 @@ mv src/* .
%patch57 -p1 -b .OVERRIDE
+%patch58 -p1 -b .wm-class
+
# We need this because icu changed its pkg-config files in F16+
%if 0%{?fedora} >= 16
sed -i 's|icu)|icu-i18n)|g' build/linux/system.gyp" > ~/rpmbuild/SPECS/chromium.spec.patch
cd ~/rpmbuild/SPECS
patch -p1 < chromium.spec.patch
cd ~/rpmbuild/
rpmbuild -bb SPECS/chromium.spec
@lfryc
Copy link

lfryc commented Jul 28, 2012

Hey will, seems great!

Have you tried to get this patch into Chrome RPM packages?

@wbond
Copy link
Author

wbond commented Jul 30, 2012

Actually, I don't think I ever got the correct gnome 3 integration working. Sorry!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment