def __init__(self, ui=None, bookmarks=None, tags=None, paths=None): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) self.ui = ui if ui is not None else UI() self.start_paths = paths if paths is not None else ['.'] self.directories = dict() self.bookmarks = bookmarks self.current_tab = 1 self.tabs = {} self.tags = tags self.restorable_tabs = deque([], ranger.MAX_RESTORABLE_TABS) self.py3 = sys.version_info >= (3, ) self.previews = {} self.default_linemodes = deque() self.loader = Loader() self.copy_buffer = set() self.do_cut = False self.metadata = MetadataManager() self.image_displayer = None self.run = None self.rifle = None self.thistab = None try: self.username = pwd.getpwuid(os.geteuid()).pw_name except KeyError: self.username = '******' + str(os.geteuid()) self.hostname = socket.gethostname() self.home_path = os.path.expanduser('~') mimetypes.knownfiles.append(os.path.expanduser('~/.mime.types')) mimetypes.knownfiles.append(self.relpath('data/mime.types')) self.mimetypes = mimetypes.MimeTypes()
def __init__(self, ui=None, bookmarks=None, tags=None, paths=["."]): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) if ui is None: self.ui = UI() else: self.ui = ui self.start_paths = paths self.directories = dict() self.log = deque(maxlen=20) self.bookmarks = bookmarks self.current_tab = 1 self.tabs = {} self.tags = tags self.restorable_tabs = deque([], ranger.MAX_RESTORABLE_TABS) self.py3 = sys.version_info >= (3,) self.previews = {} self.loader = Loader() self.copy_buffer = set() self.do_cut = False try: self.username = pwd.getpwuid(os.geteuid()).pw_name except: self.username = "******" + str(os.geteuid()) self.hostname = socket.gethostname() self.home_path = os.path.expanduser("~") self.log.append("ranger {0} started! Process ID is {1}.".format(__version__, os.getpid())) self.log.append("Running on Python " + sys.version.replace("\n", "")) mimetypes.knownfiles.append(os.path.expanduser("~/.mime.types")) mimetypes.knownfiles.append(self.relpath("data/mime.types")) self.mimetypes = mimetypes.MimeTypes()
def execute(self): nl_sep = {'arg': '', 'split': '\n'} result_sep = nl_sep sxiv_args = [] selected_files = self.fm.thisdir.get_selection() if len(selected_files) > 1: images = selected_files else: images = [f for f in self.fm.thisdir.files if f.image or f.video] if not images: self.fm.notify("Can't find images or videos.") return # Open sxiv with current file, if it is in the selected files. if self.fm.thisfile in images: image_index = images.index(self.fm.thisfile) + 1 sxiv_args += ['-n %d' % image_index] # -o Write list of all marked files to standard output when quitting. # -t Start in thumbnail mode. # -- Separate flags and file list. sxiv_args += ['-o', '-t', '--'] sxiv_args += [ "/".join([ranger.args.cachedir, Actions.sha512_encode(i.path)]) if i.video else i.relative_path for i in images ] # Create subprocess for sxiv and pipeout in whatever process = subprocess.Popen(['sxiv'] + sxiv_args, universal_newlines=True, stdout=subprocess.PIPE) (pipe_out, _) = process.communicate() raw_out = pipe_out.split(result_sep['split']) # Delete empty marked_files = list(filter(None, raw_out)) self.fm.thisdir.mark_all(False) files_to_mark = [] if len(marked_files) >= 1: for fobj in images: filename = "/".join([ ranger.args.cachedir, Actions.sha512_encode(fobj.path) ]) if fobj.video else fobj.relative_path if filename in marked_files: if len(files_to_mark) == 0: self.fm.cd(fobj.path) if len(marked_files) > 1: files_to_mark.append(fobj) for fobj in files_to_mark: self.fm.thisdir.mark_item(fobj, True) self.fm.ui.redraw_window()
def __init__(self, ui=None, bookmarks=None, tags=None): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) self.ui = ui self.log = deque(maxlen=20) self.bookmarks = bookmarks self.tags = tags self.tabs = {} self.current_tab = 1 self.loader = Loader() self.log.append("Ranger {0} started! Process ID is {1}.".format(__version__, os.getpid())) self.log.append("Running on Python " + sys.version.replace("\n", ""))
def __init__(self, ui=None, bookmarks=None, tags=None): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) self.ui = ui self.log = deque(maxlen=20) self.bookmarks = bookmarks self.tags = tags self.tabs = {} self.py3 = sys.version_info >= (3, ) self.previews = {} self.current_tab = 1 self.loader = Loader() self.log.append('Ranger {0} started! Process ID is {1}.' \ .format(__version__, os.getpid())) self.log.append('Running on Python ' + sys.version.replace('\n', ''))
def __init__(self, ui=None, bookmarks=None, tags=None): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) self.ui = ui self.log = deque(maxlen=20) self.bookmarks = bookmarks self.tags = tags self.tabs = {} self.py3 = sys.version_info >= (3,) self.previews = {} self.current_tab = 1 self.loader = Loader() self.log.append("ranger {0} started! Process ID is {1}.".format(__version__, os.getpid())) self.log.append("Running on Python " + sys.version.replace("\n", "")) mimetypes.knownfiles.append(os.path.expanduser("~/.mime.types")) mimetypes.knownfiles.append(self.relpath("data/mime.types")) self.mimetypes = mimetypes.MimeTypes()
def __init__(self, ui=None, bookmarks=None, tags=None, paths=['.']): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) if ui is None: self.ui = UI() else: self.ui = ui self.start_paths = paths self.directories = dict() self.log = deque(maxlen=20) self.image_displayer = ImageDisplayer() self.bookmarks = bookmarks self.current_tab = 1 self.tabs = {} self.tags = tags self.restorable_tabs = deque([], ranger.MAX_RESTORABLE_TABS) self.py3 = sys.version_info >= (3, ) self.previews = {} self.default_linemodes = deque() self.loader = Loader() self.copy_buffer = set() self.do_cut = False self.metadata = MetadataManager() try: self.username = pwd.getpwuid(os.geteuid()).pw_name except: self.username = '******' + str(os.geteuid()) self.hostname = socket.gethostname() self.home_path = os.path.expanduser('~') self.log.append('ranger {0} started! Process ID is {1}.' \ .format(__version__, os.getpid())) self.log.append('Running on Python ' + sys.version.replace('\n','')) mimetypes.knownfiles.append(os.path.expanduser('~/.mime.types')) mimetypes.knownfiles.append(self.relpath('data/mime.types')) self.mimetypes = mimetypes.MimeTypes()
def __init__(self, ui=None, bookmarks=None, tags=None, paths=['.']): """Initialize FM.""" Actions.__init__(self) SignalDispatcher.__init__(self) if ui is None: self.ui = UI() else: self.ui = ui self.start_paths = paths self.directories = dict() self.log = deque(maxlen=20) self.image_displayer = ImageDisplayer() self.bookmarks = bookmarks self.current_tab = 1 self.tabs = {} self.tags = tags self.restorable_tabs = deque([], ranger.MAX_RESTORABLE_TABS) self.py3 = sys.version_info >= (3, ) self.previews = {} self.default_linemodes = deque() self.loader = Loader() self.copy_buffer = set() self.do_cut = False self.papermanager = PaperManager() try: self.username = pwd.getpwuid(os.geteuid()).pw_name except: self.username = '******' + str(os.geteuid()) self.hostname = socket.gethostname() self.home_path = os.path.expanduser('~') self.log.append('ranger {0} started! Process ID is {1}.' \ .format(__version__, os.getpid())) self.log.append('Running on Python ' + sys.version.replace('\n','')) mimetypes.knownfiles.append(os.path.expanduser('~/.mime.types')) mimetypes.knownfiles.append(self.relpath('data/mime.types')) self.mimetypes = mimetypes.MimeTypes()