Package Details: insync-nemo

Git Clone URL: (read-only, click to copy)
Package Base: insync-nemo
Description: Nemo integration for insync
Upstream URL:
Keywords: dive extension file google insync insynchq manager nemo onedrive
Licenses: custom:insync
Submitter: markzz
Maintainer: sToRmInG
Last Packager: sToRmInG
Votes: 7
Popularity: 0.000000
First Submitted: 2015-10-15 22:02
Last Updated: 2021-01-01 14:22

Dependencies (2)

Required by (0)

Sources (1)

Latest Comments

sToRmInG commented on 2021-01-01 14:23

Again new maintainer and a new version. Please try it out and let me know if something does not work.

erikdubois commented on 2019-09-29 04:57

New maintainer - new version - try out and let me know if it does not work

martinsjr65 commented on 2019-03-24 06:09

Please update /usr/share/nemo-python/extensions/ as follows:

print('loading insync nemo plugin..')
from gi.repository import GObject
from gi.repository import Nemo
import importlib
import traceback

DEV_MODE = False

import json import os import socket import sys import urllib.request, urllib.parse, urllib.error

if sys.getdefaultencoding() != 'utf-8': importlib.reload(sys) sys.setdefaultencoding('utf-8') # pylint: disable=E1101

def ipc_insync(**kw): if DEV_MODE: print('<ipc-insync>',kw) data = json.dumps( kw ) socket_file = '/tmp/insync%r.sock' % os.getuid() if not os.path.exists(socket_file): if DEV_MODE: print('WARN: insync socket not found') return None sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) sock.settimeout(0.5) try: sock.connect(socket_file) sock.send(data.encode()) res = sock.recv(4096) sock.close() except: if DEV_MODE: traceback.print_exc() return None if res.strip(): return json.loads(res.strip()) else: if DEV_MODE: print("else") return None

_EMBLEM_KEYS = { 'SYNCED': 'emblem-insync-synced', 'SYNCING': 'emblem-insync-syncing', 'ERROR': 'emblem-insync-error', }

class InsyncMenuProvider(GObject.GObject, Nemo.MenuProvider, Nemo.InfoProvider):

def init(self): self.file_list = dict()

def get_background_items(self, window, file): return None

def get_file_items(self, window, files): if DEV_MODE: print('get file items', files)

if len(files) != 1: # TODO what can we do with mutiple files here return None

file = files[0] if file.get_uri_scheme() != 'file': return None

path = os.path.realpath(urllib.parse.unquote(file.get_uri()[len('file://'):])) path = str(path) if DEV_MODE: print(path) is_dir = os.path.isdir(path)

cm_info = ipc_insync(command='CONTEXT-MENU-ITEMS', full_path=path)

if cm_info: title, cm_items = cm_info tip = 'Insync folder actions' if is_dir else 'Insync file actions' item = Nemo.MenuItem( name='Insync:' + title, label=title, tip=tip, icon='insync' ) sub_menu = Nemo.Menu() item.set_submenu(sub_menu)

item_id = 0 for text, cmd in cm_items: if text == 'separator': text = '\u2015' * 10 name = 'Insync:separator:' + str(item_id) else: name = 'Insync:%s:%d' % (text, item_id) item_id += 1 menu_item = Nemo.MenuItem(name=name, label=text, tip=text) if cmd: menu_item.connect('activate', self.do_action, file, cmd) else: menu_item.sensitive = False sub_menu.append_item(menu_item)

return [item] return None

def do_action(self, menu, file, method): path = urllib.parse.unquote( file.get_uri()[len('file://'):] ) ipc_insync( method=method, full_path=path)

def update_file_info(self, file): if file.get_uri_scheme() != 'file': return

filename = urllib.parse.unquote(file.get_uri()[len('file://'):]) filename = os.path.realpath(filename) status = ipc_insync(command='GET-FILE-STATUS', full_path=filename) if DEV_MODE: print("status", filename, status) if status and status != 'UNKNOWN': emblem = _EMBLEM_KEYS[status] if os.path.isdir(filename): is_shared = ipc_insync(command='IS-FILE-SHARED', full_path=filename) if is_shared: emblem += '-shared' file.add_emblem(emblem) old_emblem = self.file_list.get(filename) self.file_list[filename] = emblem if old_emblem != emblem: file.invalidate_extension_info() elif self.file_list.pop(filename, None): file.invalidate_extension_info()

See Thank you!

Kr1ss commented on 2018-12-13 17:13

Thx a lot for maintaining this.

Unfortunately, the recent update leads to an error in case of a modified $BUILDDIR or $SRCDEST (e.g. to point to a temp folder) :

In package(), the patch command tries to access ../python3.patch from inside $srcdir, which doesn't exist if $srcdir is not in the same location as the source files.

So if u'd consider patching the PKGBUILD in a way like :

diff --git i/PKGBUILD w/PKGBUILD
index 468f44f..ed868da 100644
@@ -4,7 +4,7 @@

 pkgdesc="Nemo integration for insync"
@@ -19,6 +19,6 @@ sha256sums=('e3b9ac6be0a2f0488aea05753c37b271763cc2f145ff860f5615a79bf2dc2113'
 package() {
   cd "${srcdir}"
   tar -zxf data.tar.gz
-  patch -Np1 -i ../python3.patch
+  patch -Np1 -i ./python3.patch
   cp -r usr "${pkgdir}"

the python3.patch file would be found, b/c makepkg automatically creates symlinks inside $srcdir pointing to each of the source files.

markzz commented on 2016-05-30 05:58

For one thing, one comment is needed to let me know since I made a small mistake by not updating that array. Also, you should be able to modify the PKGBUILD yourselves in the meantime (read the wiki if you don't know how). It is fixed now, but there's little reason to make more than one comment on the {md5,sha256,sha512}sums array not being correct for any pkgbase.

deimon commented on 2016-05-29 22:39


work fine!

JethroTux commented on 2016-05-29 10:51

Same error here, cannot validate pkg with sha256sums.

Sam-Burgos commented on 2016-05-29 01:36

Validating source files with sha256sums...
insync-nemo- ... FAILED
==> ERROR: One or more files did not pass the validity check!

Trying to do the upgrade today, may I bother you to fix it?

markzz commented on 2015-10-16 19:51


dustigroove commented on 2015-10-16 19:45

I think there may be a typo and incorrect depends in there... pkgver should end in .35136 and not .35316, and the depends should be nemo-python and not python2-nemo. Cheers!