aboutsummarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 16434641a4006ee0f3c3ceaf869debf43a27f0ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Maintainer: Twilight0 <twilight0@vivaldi.net>

pkgname=cinnamon-no-nemo
pkgver=6.6.9
pkgrel=1
pkgdesc="Cinnamon desktop environment repackaged without Nemo dependency (uses Dory)"
arch=('x86_64')
url="https://github.com/linuxmint/cinnamon"
license=('GPL-2.0-or-later')
depends=('accountsservice' 'at-spi2-core' 'bash' 'cairo' 'cinnamon-control-center'
         'cinnamon-desktop' 'cinnamon-menus' 'cinnamon-screensaver' 'cinnamon-session'
         'cinnamon-settings-daemon' 'cinnamon-translations' 'cjs' 'dconf'
         'evolution-data-server' 'gcr' 'gdk-pixbuf2' 'glib2' 'glibc'
         'gnome-backgrounds' 'gnome-themes-extra' 'gsound' 'gstreamer' 'gtk3'
         'hicolor-icon-theme' 'libgcc' 'libgirepository' 'libglvnd' 'libibus'
         'libical' 'libkeybinder3' 'libnm' 'libnotify' 'libsecret' 'libx11'
         'libxfixes' 'libxml2' 'muffin' 'network-manager-applet' 'pango'
         'papirus-icon-theme' 'polkit' 'python' 'python-cairo' 'python-gobject'
         'python-pam' 'python-pexpect' 'python-pillow' 'python-psutil'
         'python-pyinotify' 'python-pytz' 'python-requests'          'python-setproctitle'
         'python-tinycss2' 'python-xapp' 'sound-theme-freedesktop' 'timezonemap'
         'upower' 'xapp' 'xdg-desktop-portal-xapp')
makedepends=()
optdepends=('blueman: Bluetooth support'
            'cinnamon-translations: i1n'
            'gnome-terminal: X terminal emulator'
            'gnome-panel: fallback mode'
            'ibus: input method support'
            'metacity: fallback mode'
            'switcheroo-control: GPU offloading'
            'system-config-printer: printer settings'
            'touchegg: touch gestures'
            'wget: cover download support in audio applet')
conflicts=('cinnamon' 'nemo')
provides=("cinnamon=$pkgver")
backup=('etc/xdg/cinnamon-session/sessions/cinnamon.session')
source=("cinnamon-$pkgver-$pkgrel-x86_64.pkg.tar.zst::https://archlinux.org/packages/extra/x86_64/cinnamon/download"
        'cinnamon.session'
        'gwl-grouping-heuristics.patch'
        'inline-reply-notifications.patch')
sha256sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP')

# Disable strip and debug to speed up repackaging
options=('!strip' '!debug' 'emptydirs')

prepare() {
  # Extract the official package
  mkdir -p extracted
  cd extracted
  tar -xf "$srcdir/cinnamon-$pkgver-$pkgrel-x86_64.pkg.tar.zst"

  # Apply custom PR patches
  patch -Np1 -i "$srcdir/gwl-grouping-heuristics.patch"
  patch -Np1 -i "$srcdir/inline-reply-notifications.patch"
}

package() {
  # Copy extracted files
  cp -a extracted/* "$pkgdir/"

  # Replace cinnamon.session with dory version
  install -Dm644 "$srcdir/cinnamon.session" \
    "$pkgdir/etc/xdg/cinnamon-session/sessions/cinnamon.session"

  # Also install to usr/share as fallback
  if [ -d "$pkgdir/usr/share/cinnamon-session/sessions" ]; then
    install -Dm644 "$srcdir/cinnamon.session" \
      "$pkgdir/usr/share/cinnamon-session/sessions/cinnamon.session"
  fi

  # Remove nemo-related files if any exist
  rm -f "$pkgdir/usr/share/applications/nemo.desktop" 2>/dev/null || true
  rm -f "$pkgdir/usr/share/applications/nemo-autostart.desktop" 2>/dev/null || true
  rm -f "$pkgdir/usr/share/applications/nemo-autorun-software.desktop" 2>/dev/null || true
  rm -f "$pkgdir/etc/xdg/autostart/nemo-autostart.desktop" 2>/dev/null || true

  # Disable GTK portal usage - use native file chooser (Dory) instead
  install -Dm644 /dev/stdin "$pkgdir/etc/profile.d/gtk-no-portal.sh" << 'EOF'
export GTK_USE_PORTAL=0
EOF

  # Patch cs_actions.py to use Dory layout editor instead of Nemo
  sed -i \
    -e 's|nemo-action-layout-editor|dory-action-layout-editor|' \
    -e 's|nemo/layout-editor|dory/layout-editor|' \
    -e 's|nemo_action_layout_editor|dory_action_layout_editor|' \
    -e 's|NemoActionsOrganizer|DoryActionsOrganizer|' \
    -e 's|\.local/share/nemo/actions|.local/share/dory/actions|' \
    "$pkgdir/usr/share/cinnamon/cinnamon-settings/modules/cs_actions.py"
}