Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/szos/clfm
Common Lisp File Manager
https://github.com/szos/clfm
Last synced: 21 days ago
JSON representation
Common Lisp File Manager
- Host: GitHub
- URL: https://github.com/szos/clfm
- Owner: szos
- License: gpl-3.0
- Created: 2020-03-12T20:14:00.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-03T23:22:29.000Z (over 3 years ago)
- Last Synced: 2023-10-20T23:19:15.319Z (over 1 year ago)
- Language: Common Lisp
- Size: 700 KB
- Stars: 12
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+TITLE: 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=.