about summary refs log blame commit diff stats
path: root/Makefile
blob: b38889bc56f27f27e4aed36e25e8c7ac23eed83c (plain) (tree)
1
ranger 1.9.3

Build Status latest packaged version(s)

ranger is a console file manager with VI key bindings. It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with rifle, a file launcher that is good at automatically finding out which program to use for what file type.

screenshot

For mc aficionados there's also the multi-pane viewmode.

two panes multiple panes

This file describes ranger and how to get it to run. For instructions on the usage, please read the man page (man ranger in a terminal). See HACKING.md for development-specific information.

For configuration, check the files in ranger/config/ or copy the default config to ~/.config/ranger with ranger --copy-config (see instructions).

The examples/ directory contains several scripts and plugins that demonstrate how ranger can be extended or combined with other programs. These files can be found in the git repository or in /usr/share/doc/ranger.

A note to packagers: Versions meant for packaging are listed in the changelog on the website.

About

  • Authors: see AUTHORS file
  • License: GNU General Public License Version 3
  • Website: https://ranger.github.io/
  • Download: https://ranger.github.io/ranger-stable.tar.gz
  • Bug reports: https://github.com/ranger/ranger/issues
  • git clone https://github.com/ranger/ranger.git

Design Goals

  • An easily maintainable file manager in a high level language
  • A quick way to switch directories and browse the file system
  • Keep it small but useful, do one thing and do it well
  • Console-based, with smooth integration into the unix shell

Features

  • UTF-8 Support (if your Python copy supports it)
  • Multi-column display
  • Preview of the selected file/directory
  • Common file operations (create/chmod/copy/delete/...)
  • Renaming multiple files at once
  • VIM-like console and hotkeys
  • Automatically determine file types and run them with correct programs
  • Change the directory of your shell after exiting ranger
  • Tabs, bookmarks, mouse support...

Dependencies

  • Python (>=2.6 or >=3.1) with the curses module and (optionally) wide-unicode support
  • A pager (less by default)

Optional dependencies

For general usage:

  • file for determining file types
  • chardet (Python package) for improved encoding detection of text files
  • sudo to use the "run as root" feature
  • python-bidi (Python package) to display right-to-left file names correctly (Hebrew, Arabic)

For enhanced file previews (with scope.sh):

  • img2txt (from caca-utils) for ASCII-art image previews
  • w3mimgdisplay, ueberzug, mpv, iTerm2, kitty, terminology or urxvt for image previews
  • convert (from imagemagick) to auto-rotate images
  • rsvg-convert (from
    # gridwm - grid window manager
    #   (C)opyright MMVI Anselm R. Garbe
    
    include config.mk
    
    WMSRC = bar.c client.c cmd.c draw.c event.c key.c util.c wm.c
    WMOBJ = ${WMSRC:.c=.o}
    MENSRC = menu.c draw.c util.c
    MENOBJ = ${MENSRC:.c=.o}
    SELSRC = gridsel.c util.c
    SELOBJ = ${SELSRC:.c=.o}
    MAN1 = gridwm.1 gridmenu.1
    BIN = gridwm gridmenu gridsel 
    
    all: config gridwm gridmenu gridsel
    	@echo finished
    
    config:
    	@echo gridwm build options:
    	@echo "LIBS     = ${LIBS}"
    	@echo "CFLAGS   = ${CFLAGS}"
    	@echo "LDFLAGS  = ${LDFLAGS}"
    	@echo "CC       = ${CC}"
    
    .c.o:
    	@echo CC $<
    	@${CC} -c ${CFLAGS} $<
    
    ${WMOBJ}: wm.h draw.h config.h util.h
    
    gridmenu: ${MENOBJ}
    	@echo LD $@
    	@${CC} -o $@ ${MENOBJ} ${LDFLAGS}
    
    gridwm: ${WMOBJ}
    	@echo LD $@
    	@${CC} -o $@ ${WMOBJ} ${LDFLAGS}
    
    gridsel: ${SELOBJ}
    	@echo LD $@
    	@${CC} -o $@ ${SELOBJ} ${LDFLAGS}
    
    clean:
    	rm -f gridwm gridmenu *.o core
    
    dist: clean
    	mkdir -p gridwm-${VERSION}
    	cp -R Makefile README LICENSE config.mk *.h *.c ${MAN} gridwm-${VERSION}
    	tar -cf gridwm-${VERSION}.tar gridwm-${VERSION}
    	gzip gridwm-${VERSION}.tar
    	rm -rf gridwm-${VERSION}
    
    install: all
    	@mkdir -p ${DESTDIR}${PREFIX}/bin
    	@cp -f ${BIN} ${DESTDIR}${PREFIX}/bin
    	@echo installed executable files to ${DESTDIR}${PREFIX}/bin
    	@mkdir -p ${DESTDIR}${MANPREFIX}/man1
    	@cp -f ${MAN1} ${DESTDIR}${MANPREFIX}/man1
    	@echo installed manual pages to ${DESTDIR}${MANPREFIX}/man1
    
    uninstall:
    	for i in ${BIN}; do \
    		rm -f ${DESTDIR}${PREFIX}/bin/`basename $$i`; \
    	done
    	for i in ${MAN1}; do \
    		rm -f ${DESTDIR}${MANPREFIX}/man1/`basename $$i`; \
    	done