summarylogtreecommitdiffstats
path: root/pkgbuild-manager.install
blob: ae861dc169f0f44ac44f3ecf2e109b572d460f73 (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
94
95
96
97
98
post_install() {
    echo ">>> PKGBUILD Manager installed."
    echo ">>> Right-click any PKGBUILD file to see the PKGBUILD submenu."
    echo ">>> Press Ctrl+Alt+P to open the menu settings panel."

    # Register Ctrl+Alt+P shortcut (GNOME only, only if slot is free)
    if command -v gsettings &>/dev/null; then
        _user="${SUDO_USER:-$USER}"
        _uid=$(id -u "$_user" 2>/dev/null)
        _env="DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${_uid}/bus"
        _gset="runuser -u $_user -- env $_env gsettings"
        _binding="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/pkgbuild-manager/"

        _current=$(${_gset} get org.gnome.settings-daemon.plugins.media-keys \
            custom-keybindings 2>/dev/null || echo "[]")

        if ! echo "$_current" | grep -q "pkgbuild-manager"; then
            # Append to existing list instead of overwriting
            _new=$(echo "$_current" | sed "s|]$|, '$_binding']|" | sed "s|\[\]|['$_binding']|")
            ${_gset} set org.gnome.settings-daemon.plugins.media-keys \
                custom-keybindings "$_new" 2>/dev/null || true
            ${_gset} set \
                org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:${_binding} \
                name "PKGBUILD Manager Settings" 2>/dev/null || true
            ${_gset} set \
                org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:${_binding} \
                command "pkgbuild-manager-settings" 2>/dev/null || true
            ${_gset} set \
                org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:${_binding} \
                binding "<Control><Alt>p" 2>/dev/null || true
            echo ">>> Keyboard shortcut Ctrl+Alt+P registered."
        fi
    fi

    # Detect installed file managers and show targeted hints
    _detected=0
    if command -v nautilus &>/dev/null; then
        _detected=1
        if ! pacman -Q python-nautilus &>/dev/null 2>&1; then
            echo ">>> Nautilus detected — install python-nautilus for right-click support:"
            echo ">>>   sudo pacman -S python-nautilus"
            echo ">>> Then run: nautilus -q"
        else
            echo ">>> Nautilus extension ready. Run: nautilus -q"
        fi
    fi
    if command -v nemo &>/dev/null; then
        _detected=1
        if ! pacman -Q nemo-python &>/dev/null 2>&1; then
            echo ">>> Nemo detected — install nemo-python for right-click support:"
            echo ">>>   sudo pacman -S nemo-python"
        else
            echo ">>> Nemo extension ready."
        fi
    fi
    if command -v caja &>/dev/null; then
        _detected=1
        if ! pacman -Q python-caja &>/dev/null 2>&1; then
            echo ">>> Caja detected — install python-caja for right-click support:"
            echo ">>>   sudo pacman -S python-caja"
        else
            echo ">>> Caja extension ready."
        fi
    fi
    if command -v dolphin &>/dev/null; then
        _detected=1
        echo ">>> Dolphin detected — right-click service menu installed automatically."
    fi
    if [ "$_detected" -eq 0 ]; then
        echo ">>> No supported file manager detected."
        echo ">>> Supported: Nautilus, Nemo, Caja, Dolphin."
    fi
}

post_upgrade() {
    _user="${SUDO_USER:-$USER}"
    _scripts="$(eval echo ~$_user)/.local/share/nautilus/scripts"
    if [ -d "$_scripts/PKGBUILD" ]; then
        rm -rf "$_scripts/PKGBUILD"
        echo ">>> Removed stale PKGBUILD symlink directory from previous version."
    fi
    post_install
}

post_remove() {
    if command -v gsettings &>/dev/null; then
        _user="${SUDO_USER:-$USER}"
        _uid=$(id -u "$_user" 2>/dev/null)
        _env="DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${_uid}/bus"
        _gset="runuser -u $_user -- env $_env gsettings"
        _binding="/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/pkgbuild-manager/"
        _current=$(${_gset} get org.gnome.settings-daemon.plugins.media-keys \
            custom-keybindings 2>/dev/null || echo "[]")
        _new=$(echo "$_current" | sed "s|, '$_binding'||" | sed "s|'$_binding', ||" | sed "s|'$_binding'||")
        ${_gset} set org.gnome.settings-daemon.plugins.media-keys \
            custom-keybindings "$_new" 2>/dev/null || true
    fi
}