aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Gąsior2017-04-18 23:49:11 +0200
committerTomasz Gąsior2017-04-18 23:51:16 +0200
commite36caca3e322ac9df8ad3db6685918444f633106 (patch)
tree9fd2cb0a4390c4c498444250528b5e4f6182ba64
downloadaur-e36caca3e322ac9df8ad3db6685918444f633106.tar.gz
Initial.
-rw-r--r--.SRCINFO72
-rw-r--r--PKGBUILD99
-rw-r--r--README.md44
-rw-r--r--csd__appmenu-as-context-menu.patch30
-rw-r--r--csd__fix-duplicated-title.patch27
-rw-r--r--csd__hide-appmenu.patch10
-rw-r--r--csd__hide-close-button.patch26
-rw-r--r--csd__permanently-disable.patch26
-rw-r--r--dialogs__appearance-buttons.patch12
-rw-r--r--dialogs__appearance-margins.patch44
-rw-r--r--file-chooser__disable-other-locations.patch11
-rw-r--r--file-chooser__hide-xdg-dirs.patch19
-rw-r--r--file-chooser__single-click.patch10
-rw-r--r--general__always-show-scrollbars.patch11
-rw-r--r--gtk-query-immodules-3.0.hook11
-rw-r--r--gtk3.install3
-rw-r--r--print-dialog__appearance.patch23
-rw-r--r--print-dialog__default-previewer.patch11
-rw-r--r--settings.ini4
19 files changed, 493 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..723f64cbb3d5
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,72 @@
+pkgbase = gtk3-mushrooms
+ pkgdesc = GTK3 library with my modifications (see README)
+ pkgver = 3.22.12
+ pkgrel = 1
+ url = http://www.gtk.org/
+ install = gtk3.install
+ arch = i686
+ arch = x86_64
+ license = LGPL
+ makedepends = gobject-introspection
+ makedepends = libcanberra
+ makedepends = gtk-doc
+ makedepends = git
+ makedepends = colord
+ makedepends = rest
+ makedepends = libcups
+ makedepends = glib2-docs
+ depends = atk
+ depends = cairo
+ depends = libxcursor
+ depends = libxinerama
+ depends = libxrandr
+ depends = libxi
+ depends = libepoxy
+ depends = gdk-pixbuf2
+ depends = dconf
+ depends = libxcomposite
+ depends = libxdamage
+ depends = pango
+ depends = shared-mime-info
+ depends = at-spi2-atk
+ depends = wayland
+ depends = libxkbcommon
+ depends = adwaita-icon-theme
+ depends = json-glib
+ depends = librsvg
+ depends = wayland-protocols
+ depends = desktop-file-utils
+ depends = mesa
+ optdepends = libcanberra: gtk3-widget-factory demo
+ optdepends = gtk3-print-backends: Printing
+ provides = gtk3=3.22.12
+ conflicts = gtk3
+ source = csd__appmenu-as-context-menu.patch
+ source = csd__hide-appmenu.patch
+ source = csd__hide-close-button.patch
+ source = csd__permanently-disable.patch
+ source = file-chooser__disable-other-locations.patch
+ source = file-chooser__hide-xdg-dirs.patch
+ source = file-chooser__single-click.patch
+ source = general__always-show-scrollbars.patch
+ source = print-dialog__appearance.patch
+ source = print-dialog__default-previewer.patch
+ source = https://github.com/GNOME/gtk/archive/3.22.12.tar.gz
+ source = settings.ini
+ source = gtk-query-immodules-3.0.hook
+ sha256sums = d8214e11bfcee96552ce5911b1d172ce8076313685d5897f9bd0655df546341b
+ sha256sums = 2251f75f3fd8af92f71e7d31d616303e18596e37a59e293748521972ef185578
+ sha256sums = a4015d73585d97dc80f7b01cfc6960fd94e570d7abe3105aff7aed139b6513be
+ sha256sums = 676cff1d71c13600f4c0fba082cb6aba93e8c570063779a745851275d8a287c7
+ sha256sums = 3e91bb31dc3a34d9cd8388ee97d450ddb22c2ef74a75d9b3f0226ed7850755c7
+ sha256sums = 506a214562144912afc14d52b20a676c3ca0d34232c8db60e3b24f7ab22cb6cb
+ sha256sums = d3b0905b9f76afbe236f9c7091a2957d25e112abf9100707c48c948d6ddaf5e5
+ sha256sums = 3bfe58be30338daa30a9eacba82420ca4df6f8f5b5b2d0df5b9a77b018ab0cec
+ sha256sums = f14cd9983ada3fab3f22ce6ef7fcdd6afb9253f0bf5b9de20255fe0e8c56d685
+ sha256sums = 886f9ca521285974617eff66e5060b429c4be56b205444e457b6bfdd24f60ca4
+ sha256sums = bec9108c4892041988635f7e276724828b17a0522b211c190530a1f76f88cbae
+ sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202
+ sha256sums = de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845
+
+pkgname = gtk3-mushrooms
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..55f9c05c05c2
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,99 @@
+# Maintainer: Tomasz Gąsior <tomaszgasior.pl>
+
+pkgname=gtk3-mushrooms
+pkgver=3.22.12
+pkgrel=1
+conflicts=(gtk3)
+provides=("gtk3=$pkgver")
+pkgdesc="GTK3 library with my modifications (see README)"
+arch=(i686 x86_64)
+url="http://www.gtk.org/"
+install=gtk3.install
+depends=(atk cairo libxcursor libxinerama libxrandr libxi libepoxy gdk-pixbuf2 dconf
+ libxcomposite libxdamage pango shared-mime-info at-spi2-atk wayland libxkbcommon
+ adwaita-icon-theme json-glib librsvg wayland-protocols desktop-file-utils mesa)
+optdepends=('libcanberra: gtk3-widget-factory demo'
+ 'gtk3-print-backends: Printing')
+makedepends=(gobject-introspection libcanberra gtk-doc git colord rest libcups glib2-docs)
+license=(LGPL)
+source=(
+ "csd__appmenu-as-context-menu.patch"
+ "csd__hide-appmenu.patch"
+ "csd__hide-close-button.patch"
+ "csd__permanently-disable.patch"
+ "file-chooser__disable-other-locations.patch"
+ "file-chooser__hide-xdg-dirs.patch"
+ "file-chooser__single-click.patch"
+ "general__always-show-scrollbars.patch"
+ "print-dialog__appearance.patch"
+ "print-dialog__default-previewer.patch"
+
+ "https://github.com/GNOME/gtk/archive/$pkgver.tar.gz"
+ settings.ini
+ gtk-query-immodules-3.0.hook
+ )
+sha256sums=(
+ "d8214e11bfcee96552ce5911b1d172ce8076313685d5897f9bd0655df546341b"
+ "2251f75f3fd8af92f71e7d31d616303e18596e37a59e293748521972ef185578"
+ "a4015d73585d97dc80f7b01cfc6960fd94e570d7abe3105aff7aed139b6513be"
+ "676cff1d71c13600f4c0fba082cb6aba93e8c570063779a745851275d8a287c7"
+ "3e91bb31dc3a34d9cd8388ee97d450ddb22c2ef74a75d9b3f0226ed7850755c7"
+ "506a214562144912afc14d52b20a676c3ca0d34232c8db60e3b24f7ab22cb6cb"
+ "d3b0905b9f76afbe236f9c7091a2957d25e112abf9100707c48c948d6ddaf5e5"
+ "3bfe58be30338daa30a9eacba82420ca4df6f8f5b5b2d0df5b9a77b018ab0cec"
+ "f14cd9983ada3fab3f22ce6ef7fcdd6afb9253f0bf5b9de20255fe0e8c56d685"
+ "886f9ca521285974617eff66e5060b429c4be56b205444e457b6bfdd24f60ca4"
+
+ "bec9108c4892041988635f7e276724828b17a0522b211c190530a1f76f88cbae" # GTK package
+ "01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202"
+ "de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845"
+ )
+
+prepare() {
+ gtk_source="$srcdir/gtk-$pkgver/gtk"
+
+ # csd
+ patch "$gtk_source/gtkheaderbar.c" "csd__hide-appmenu.patch"
+ patch "$gtk_source/gtkheaderbar.c" "csd__hide-close-button.patch"
+ patch "$gtk_source/gtkwindow.c" "csd__permanently-disable.patch"
+ patch "$gtk_source/gtkwindow.c" "csd__appmenu-as-context-menu.patch"
+
+ # file chooser
+ patch "$gtk_source/gtkplacessidebar.c" "file-chooser__hide-xdg-dirs.patch"
+ patch "$gtk_source/gtkfilechooserwidget.c" "file-chooser__single-click.patch"
+ patch "$gtk_source/ui/gtkfilechooserwidget.ui" "file-chooser__disable-other-locations.patch"
+
+ # print dialog
+ patch "$gtk_source/gtksettings.c" "print-dialog__default-previewer.patch"
+ patch "$gtk_source/ui/gtkprintunixdialog.ui" "print-dialog__appearance.patch"
+
+ # general
+ patch "$gtk_source/gtkscrolledwindow.c" "general__always-show-scrollbars.patch"
+
+
+ cd "gtk-$pkgver"
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+ cd "gtk-$pkgver"
+
+ CXX=/bin/false ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-schemas-compile --enable-x11-backend --enable-wayland-backend
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=655517
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
+ make
+}
+
+package() {
+ cd "gtk-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm644 ../settings.ini "$pkgdir/usr/share/gtk-3.0/settings.ini"
+ install -Dm644 ../gtk-query-immodules-3.0.hook "$pkgdir/usr/share/libalpm/hooks/gtk-query-immodules-3.0.hook"
+
+ rm "$pkgdir/usr/bin/gtk-update-icon-cache"
+ rm -R "$pkgdir/usr/lib/gtk-3.0/3.0.0/printbackends"
+}
diff --git a/README.md b/README.md
new file mode 100644
index 000000000000..db530e34f377
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+GTK3-mushrooms
+===
+
+This is a set of patches for GTK3 library that makes it better for me and maybe for you too. ;-)
+It is based on official GTK3 package from Arch Linux (but compiles GTK3 without documentation and Broadway backend).
+I have not wide knowledge about programming in C, so quality of this patches can be not good.
+But it works! See list of patches below.
+
+CSD
+---
+
+* Totally and permanently disables CSD. All windows are decorated only by window manager.
+* Removes minimize/maximize/close buttons from headerbar.
+* Removes application menu button from headerbar.
+* Makes application menu accessible as context menu of headerbar.
+
+File chooser
+---
+
+* Removes "Other locations" button from places bar and shows all mounted devices and drives directly.
+* Disables very annoying single-click "feature" in file list. See: https://bugzilla.gnome.org/show_bug.cgi?id=766089
+* Removes XDG user directories (like Pictures, Downloads, Documents) from places sidebar. They can be added as bookmarks.
+
+Print dialog
+---
+
+* Makes appearance of print dialog less "gnomish".
+* Sets Atril instead of Evince as default previewer.
+
+General
+---
+
+* Scrollbars are always visible. Environment variable is not needed.
+
+--------
+
+In future
+---
+
+* Message dialogs: restore appearance like in GTK2.
+* CSD headerbar: remove application title when it is displayed in WM decoration.
+* Adwaita theme: make default controls (buttons, checkboxes etc.) smaller.
+* File chooser: restore typeahead feature in file list. See: https://aur.archlinux.org/packages/gtk3-typeahead
+* Menus: remove delay before show mnemonics.
diff --git a/csd__appmenu-as-context-menu.patch b/csd__appmenu-as-context-menu.patch
new file mode 100644
index 000000000000..d4219b12111b
--- /dev/null
+++ b/csd__appmenu-as-context-menu.patch
@@ -0,0 +1,30 @@
+--- src/gtk+/gtk/gtkwindow.c 2017-04-17 20:07:37.054580039 +0200
++++ modified_files/gtkwindow_context-menu-appmenu.c 2017-04-17 20:06:20.311242903 +0200
+@@ -9000,13 +9000,17 @@
+ iconified = (state & GDK_WINDOW_STATE_ICONIFIED) == GDK_WINDOW_STATE_ICONIFIED;
+ maximized = priv->maximized && !iconified;
+
+- priv->popup_menu = gtk_menu_new ();
++ if (gtk_application_get_app_menu (gtk_window_get_application (window)) == NULL)
++ return;
++ priv->popup_menu = gtk_menu_new_from_model (gtk_application_get_app_menu (gtk_window_get_application (window)));
+ gtk_style_context_add_class (gtk_widget_get_style_context (priv->popup_menu),
+ GTK_STYLE_CLASS_CONTEXT_MENU);
+
+ gtk_menu_attach_to_widget (GTK_MENU (priv->popup_menu),
+ GTK_WIDGET (window),
+ popup_menu_detach);
++ gtk_menu_popup_at_pointer (GTK_MENU (priv->popup_menu), (GdkEvent *) event);
++ return;
+
+ menuitem = gtk_menu_item_new_with_label (_("Restore"));
+ gtk_widget_show (menuitem);
+@@ -9092,7 +9096,7 @@
+ gtk_window_do_popup (GtkWindow *window,
+ GdkEventButton *event)
+ {
+- if (!gdk_window_show_window_menu (_gtk_widget_get_window (GTK_WIDGET (window)),
++ if (TRUE || !gdk_window_show_window_menu (_gtk_widget_get_window (GTK_WIDGET (window)),
+ (GdkEvent *) event))
+ gtk_window_do_popup_fallback (window, event);
+ }
diff --git a/csd__fix-duplicated-title.patch b/csd__fix-duplicated-title.patch
new file mode 100644
index 000000000000..69c863644561
--- /dev/null
+++ b/csd__fix-duplicated-title.patch
@@ -0,0 +1,27 @@
+--- src/gtk+/gtk/gtkheaderbar.c 2017-04-18 01:05:36.035465905 +0200
++++ modified_files/gtkheaderbar_remove-duplicated-title.c 2017-04-18 01:06:56.062136540 +0200
+@@ -1282,7 +1282,6 @@
+
+ if (priv->title_label != NULL)
+ {
+- gtk_label_set_label (GTK_LABEL (priv->title_label), priv->title);
+ gtk_widget_queue_resize (GTK_WIDGET (bar));
+ }
+
+@@ -1338,14 +1337,13 @@
+ g_free (priv->subtitle);
+ priv->subtitle = new_subtitle;
+
+- if (priv->subtitle_label != NULL)
++ if (priv->title_label != NULL && priv->subtitle_label != NULL)
+ {
+- gtk_label_set_label (GTK_LABEL (priv->subtitle_label), priv->subtitle);
++ gtk_label_set_label (GTK_LABEL (priv->title_label), priv->subtitle);
+ gtk_widget_set_visible (priv->subtitle_label, priv->subtitle && priv->subtitle[0]);
+ gtk_widget_queue_resize (GTK_WIDGET (bar));
+ }
+
+- gtk_widget_set_visible (priv->subtitle_sizing_label, priv->has_subtitle || (priv->subtitle && priv->subtitle[0]));
+
+ g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SUBTITLE]);
+ }
diff --git a/csd__hide-appmenu.patch b/csd__hide-appmenu.patch
new file mode 100644
index 000000000000..e61478fdfd2e
--- /dev/null
+++ b/csd__hide-appmenu.patch
@@ -0,0 +1,10 @@
+--- src/gtk+/gtk/gtkheaderbar.c 2017-04-17 16:59:04.494019524 +0200
++++ modified_files/gtkheaderbar_hideappmenu.c 2017-04-17 18:24:03.557605504 +0200
+@@ -369,6 +369,7 @@
+ menu != NULL &&
+ is_sovereign_window)
+ {
++ continue;
+ button = gtk_menu_button_new ();
+ gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+ gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
diff --git a/csd__hide-close-button.patch b/csd__hide-close-button.patch
new file mode 100644
index 000000000000..1147137124a0
--- /dev/null
+++ b/csd__hide-close-button.patch
@@ -0,0 +1,26 @@
+--- src/gtk+/gtk/gtkheaderbar.c 2017-04-16 00:01:55.743840000 +0200
++++ modified_files/gtkheaderbar.c 2017-04-16 20:39:12.850530576 +0200
+@@ -388,6 +388,7 @@
+ else if (strcmp (t[j], "minimize") == 0 &&
+ is_sovereign_window)
+ {
++ continue;
+ button = gtk_button_new ();
+ gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "titlebutton");
+@@ -407,6 +408,7 @@
+ gtk_window_get_resizable (window) &&
+ is_sovereign_window)
+ {
++ continue;
+ const gchar *icon_name;
+ gboolean maximized = gtk_window_is_maximized (window);
+
+@@ -429,6 +431,7 @@
+ else if (strcmp (t[j], "close") == 0 &&
+ gtk_window_get_deletable (window))
+ {
++ continue;
+ button = gtk_button_new ();
+ gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+ image = gtk_image_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU);
diff --git a/csd__permanently-disable.patch b/csd__permanently-disable.patch
new file mode 100644
index 000000000000..b02568bf26fc
--- /dev/null
+++ b/csd__permanently-disable.patch
@@ -0,0 +1,26 @@
+--- src/gtk+/gtk/gtkwindow.c 2017-04-17 18:09:24.420895281 +0200
++++ modified_files/gtkwindow_disable-csd.c 2017-04-17 18:06:38.944220414 +0200
+@@ -4119,6 +4119,7 @@
+ static void
+ gtk_window_enable_csd (GtkWindow *window)
+ {
++ return;
+ GtkWindowPrivate *priv = window->priv;
+ GtkWidget *widget = GTK_WIDGET (window);
+ GdkVisual *visual;
+@@ -6066,6 +6067,7 @@
+ static gboolean
+ gtk_window_should_use_csd (GtkWindow *window)
+ {
++ return;
+ GtkWindowPrivate *priv = window->priv;
+ const gchar *csd_env;
+
+@@ -9085,6 +9087,7 @@
+ g_signal_connect (G_OBJECT (menuitem), "activate",
+ G_CALLBACK (close_window_clicked), window);
+ gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
++ return;
+ gtk_menu_popup_at_pointer (GTK_MENU (priv->popup_menu), (GdkEvent *) event);
+ }
+
diff --git a/dialogs__appearance-buttons.patch b/dialogs__appearance-buttons.patch
new file mode 100644
index 000000000000..65b3b79f6a20
--- /dev/null
+++ b/dialogs__appearance-buttons.patch
@@ -0,0 +1,12 @@
+--- src/gtk+/gtk/gtkmessagedialog.c 2017-04-18 01:05:36.035465905 +0200
++++ modified_files/gtkmessagedialog.c 2017-04-18 01:04:38.112129705 +0200
+@@ -327,7 +327,8 @@
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+ action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
+ G_GNUC_END_IGNORE_DEPRECATIONS
+- gtk_button_box_set_layout (GTK_BUTTON_BOX (action_area), GTK_BUTTONBOX_EXPAND);
++ gtk_button_box_set_layout (GTK_BUTTON_BOX (action_area), GTK_BUTTONBOX_END);
++ gtk_box_set_spacing (GTK_BUTTON_BOX (action_area), 6);
+
+ settings = gtk_widget_get_settings (GTK_WIDGET (dialog));
+ g_object_get (settings, "gtk-keynav-use-caret", &use_caret, NULL);
diff --git a/dialogs__appearance-margins.patch b/dialogs__appearance-margins.patch
new file mode 100644
index 000000000000..028a99994abe
--- /dev/null
+++ b/dialogs__appearance-margins.patch
@@ -0,0 +1,44 @@
+--- src/gtk+/gtk/ui/gtkmessagedialog.ui 2017-04-18 01:05:36.038799239 +0200
++++ modified_files/gtkmessagedialog.ui 2017-04-18 01:04:56.592130620 +0200
+@@ -14,14 +14,15 @@
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="orientation">vertical</property>
+- <property name="spacing">20</property>
+- <property name="border-width">0</property>
++ <property name="spacing">2</property>
++ <property name="border-width">8</property>
+ <child>
+ <object class="GtkBox" id="box">
+ <property name="visible">1</property>
+- <property name="margin-start">30</property>
+- <property name="margin-end">30</property>
++ <property name="margin-start">1</property>
++ <property name="margin-end">1</property>
+ <property name="spacing">30</property>
++ <property name="border-width">0</property>
+ <child>
+ <object class="GtkBox" id="message_area">
+ <property name="visible">1</property>
+@@ -30,8 +31,9 @@
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="visible">1</property>
+- <property name="halign">center</property>
++ <property name="halign">start</property>
+ <property name="valign">start</property>
++ <property name="xalign">0</property>
+ <property name="wrap">1</property>
+ <property name="max-width-chars">60</property>
+ </object>
+@@ -43,8 +45,9 @@
+ <object class="GtkLabel" id="secondary_label">
+ <property name="no-show-all">1</property>
+ <property name="margin-bottom">2</property>
+- <property name="halign">center</property>
++ <property name="halign">start</property>
+ <property name="valign">start</property>
++ <property name="xalign">0</property>
+ <property name="wrap">1</property>
+ <property name="max-width-chars">60</property>
+ </object>
diff --git a/file-chooser__disable-other-locations.patch b/file-chooser__disable-other-locations.patch
new file mode 100644
index 000000000000..1d5457922efb
--- /dev/null
+++ b/file-chooser__disable-other-locations.patch
@@ -0,0 +1,11 @@
+--- src/gtk+/gtk/ui/gtkfilechooserwidget.ui 2017-04-16 00:01:55.880507000 +0200
++++ modified_files/gtkfilechooserwidget.ui 2017-04-16 19:56:37.100403946 +0200
+@@ -16,7 +16,7 @@
+ <property name="visible">1</property>
+ <property name="hscrollbar-policy">never</property>
+ <property name="local-only">1</property>
+- <property name="show-other-locations">1</property>
++ <property name="show-other-locations">0</property>
+ <style>
+ <class name="sidebar"/>
+ </style>
diff --git a/file-chooser__hide-xdg-dirs.patch b/file-chooser__hide-xdg-dirs.patch
new file mode 100644
index 000000000000..2a430f4cbaf7
--- /dev/null
+++ b/file-chooser__hide-xdg-dirs.patch
@@ -0,0 +1,19 @@
+--- src/gtk+/gtk/gtkplacessidebar.c 2017-04-16 00:01:55.777173000 +0200
++++ modified_files/gtkplacessidebar.c 2017-04-16 20:03:41.940424991 +0200
+@@ -596,6 +596,7 @@
+ static void
+ add_special_dirs (GtkPlacesSidebar *sidebar)
+ {
++ return;
+ GList *dirs;
+ gint index;
+
+@@ -1249,7 +1250,7 @@
+ root = sl->data;
+ is_native = g_file_is_native (root);
+
+- if (_gtk_bookmarks_manager_get_is_builtin (sidebar->bookmarks_manager, root))
++ if (FALSE && _gtk_bookmarks_manager_get_is_builtin (sidebar->bookmarks_manager, root))
+ continue;
+
+ if (sidebar->local_only && !is_native)
diff --git a/file-chooser__single-click.patch b/file-chooser__single-click.patch
new file mode 100644
index 000000000000..59743202b421
--- /dev/null
+++ b/file-chooser__single-click.patch
@@ -0,0 +1,10 @@
+--- src/gtk+/gtk/gtkfilechooserwidget.c 2017-04-16 00:01:55.737173000 +0200
++++ modified_files/gtkfilechooserwidget_singleclick.c 2017-04-16 21:20:06.970652173 +0200
+@@ -2423,6 +2423,7 @@
+
+ get_selection_modifiers (widget, event, &modify, &extend);
+ if (!is_touchscreen &&
++ FALSE &&
+ !modify && !extend &&
+ event->type == GDK_BUTTON_PRESS &&
+ event->button == GDK_BUTTON_PRIMARY &&
diff --git a/general__always-show-scrollbars.patch b/general__always-show-scrollbars.patch
new file mode 100644
index 000000000000..5a4e1f7f4137
--- /dev/null
+++ b/general__always-show-scrollbars.patch
@@ -0,0 +1,11 @@
+--- src/gtk+/gtk/gtkscrolledwindow.c 2017-04-16 00:01:55.797173000 +0200
++++ modified_files/gtkscrolledwindow.c 2017-04-16 20:14:27.297123638 +0200
+@@ -4412,7 +4412,7 @@
+
+ use_indicators = priv->overlay_scrolling;
+
+- if (g_strcmp0 (g_getenv ("GTK_OVERLAY_SCROLLING"), "0") == 0)
++ if (TRUE || g_strcmp0 (g_getenv ("GTK_OVERLAY_SCROLLING"), "0") == 0)
+ use_indicators = FALSE;
+
+ if (priv->use_indicators != use_indicators)
diff --git a/gtk-query-immodules-3.0.hook b/gtk-query-immodules-3.0.hook
new file mode 100644
index 000000000000..c7703cf432c1
--- /dev/null
+++ b/gtk-query-immodules-3.0.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/gtk-3.0/3.0.0/immodules/*.so
+
+[Action]
+Description = Probing GTK3 input method modules...
+When = PostTransaction
+Exec = /usr/bin/gtk-query-immodules-3.0 --update-cache
diff --git a/gtk3.install b/gtk3.install
new file mode 100644
index 000000000000..c0c44539de6f
--- /dev/null
+++ b/gtk3.install
@@ -0,0 +1,3 @@
+pre_remove() {
+ rm -f /usr/lib/gtk-3.0/3.0.0/immodules.cache
+}
diff --git a/print-dialog__appearance.patch b/print-dialog__appearance.patch
new file mode 100644
index 000000000000..2d7dfd4faa09
--- /dev/null
+++ b/print-dialog__appearance.patch
@@ -0,0 +1,23 @@
+--- src/gtk+/gtk/ui/gtkprintunixdialog.ui 2017-04-17 21:59:24.161579030 +0200
++++ modified_files/gtkprintunixdialog.ui 2017-04-17 22:00:21.684915214 +0200
+@@ -58,7 +58,7 @@
+ <property name="spacing">2</property>
+ <property name="border-width">0</property>
+ <style>
+- <class name="view"/>
++ <class name="renamed_class_view"/>
+ </style>
+ <child>
+ <object class="GtkBox" id="box1">
+@@ -68,7 +68,10 @@
+ <object class="GtkNotebook" id="notebook">
+ <property name="visible">1</property>
+ <property name="can-focus">1</property>
+- <property name="show-border">0</property>
++ <property name="show-border">1</property>
++ <property name="margin-left">12</property>
++ <property name="margin-right">12</property>
++ <property name="margin-top">12</property>
+ <child>
+ <object class="GtkBox" id="general_main_box">
+ <property name="visible">1</property>
diff --git a/print-dialog__default-previewer.patch b/print-dialog__default-previewer.patch
new file mode 100644
index 000000000000..75b402a9fdd9
--- /dev/null
+++ b/print-dialog__default-previewer.patch
@@ -0,0 +1,11 @@
+--- src/gtk+/gtk/gtksettings.c 2017-04-17 15:30:24.483755927 +0200
++++ modified_files/gtksettings.c 2017-04-17 15:57:50.107170798 +0200
+@@ -61,7 +61,7 @@
+ #ifdef GDK_WINDOWING_QUARTZ
+ #define PRINT_PREVIEW_COMMAND "open -a /Applications/Preview.app %f"
+ #else
+-#define PRINT_PREVIEW_COMMAND "evince --unlink-tempfile --preview --print-settings %s %f"
++#define PRINT_PREVIEW_COMMAND "atril --unlink-tempfile --preview --print-settings %s %f"
+ #endif
+
+ /**
diff --git a/settings.ini b/settings.ini
new file mode 100644
index 000000000000..921d1ddeec01
--- /dev/null
+++ b/settings.ini
@@ -0,0 +1,4 @@
+[Settings]
+gtk-icon-theme-name = Adwaita
+gtk-theme-name = Adwaita
+gtk-font-name = Cantarell 11