Giter Club home page Giter Club logo

clfm's Introduction

the Common Lisp File Manager

Demo

./clfm-demo-picture.png see demo.mp4 for a video

Running

There are two options for running this application, make an executable or open it from a running lisp image. There is a script included called make-executable.sh, which creates a standalone executable that you can copy wherever youd like. To make an executable one requires SBCL and Quicklisp installed, and the script will check for this and exit if they aren’t found. If you wish to install CLFM, I recommend creating a symbolic link to a location in your path - I use ~/.bin. This allows you to rebuild the binary at any time without having to copy it.

A File Manager Written in Common Lisp

This is a very regular file manager. It is mainly mouse driven, but the plan is to make it more keyboard oriented.

Init file

CLFM reads from an init file at ~/.clfm.d/init.lisp.

Opening files and entering directories

clicking on an item will either open it via xdg-open, or if its a directory it is entered.

Clicking

Clicking on a file or directory invokes the primary operation. This can be set with the functions set-file-command-order and set-directory-command-order. Right clicking opens a menu of all possible operations.

Marks and Operations

CLFM lets you mark any file or directory and run batch operations on them. By default marking an item is not the primary operation. It can be made such with the functions file-prefer-marks and directory-prefer-marks. Once items are marked one can open the Operate/Marks menu and select Select Operation. You will be prompted for an operation to on all marks.

Operations

Operations are defined by the macro define-operation. It works just like defining a function, but they arent callable like a general function. Each operation takes two arguments - the item to operate upon, and a finished argument. When running an operation on the marks, it is funcalled on every mark with finished as nil. After all marks are finished, it is called with the item as nil and finished as t.

Quirks

  • In order to leverage the feature of opening another pane as root, CLFM must be in the $PATH.

clfm's People

Contributors

szos avatar

Stargazers

Kilian M. Haemmerle avatar  avatar  avatar David.Gao avatar Joachim F. avatar Ákos Kiss avatar Józef Piątkiewicz avatar Pierre Neidhardt avatar Zhao Xiaohong avatar vindarel avatar modula t. avatar Karsten Johansson avatar

Watchers

James Cloos avatar vindarel avatar  avatar

clfm's Issues

TODO: rework file/directory differences

In CLFM files and directories are handled separately - separate commands, separate presentations, etc. It should be reworked to use one presentation type, and one command per operation. This command should differentiate between files and directories and call the appropriate function to handle each. This should allow for things like Shift-clicking to mark multiple items.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.