Giter Site home page Giter Site logo

leo-arch / clifm Goto Github PK

View Code? Open in Web Editor NEW
1.2K 19.0 38.0 59.67 MB

The shell-like, command line terminal file manager: simple, fast, extensible, and lightweight as hell.

Home Page: https://github.com/leo-arch/clifm/wiki

License: GNU General Public License v2.0

Shell 5.52% C 89.13% Makefile 1.07% C++ 0.99% CMake 0.13% Python 3.17%
file-manager filemanager text-based cli command-line c console terminal file-browser file-preview

clifm's Introduction

CliFM logo

The Command Line File Manager

No GUI, no TUI, AND no menus. Just you and a powerful, file-management oriented command line.


GitHub release (latest by date)


demo


👾 Brief description

Clifm is a shell-like, text-based terminal file manager that sits on the command line.

Though fully-featured, powerful, and extensible, it is not so much about features, but about design, about the way in which you interact with your file system.

Most terminal file managers out there (if not all) are built using the TUI design principles, much like the superb Midnight Commander and Ranger. But clifm is built rather having the CLI design principles in mind: do not navigate through a big menu of files, just type it, exactly as you do in your regular shell, but easier and faster!

For this reason, clifm does not need to be better: it's just different! 😉

For a detailed description consult the introductory section of our Wiki.


✔️ Features

Click here to expand

Besides common file operations such as copy, move, remove, etc., clifm provides the following features:


Auto-suggestions in action


For a detailed explanation of each of these features, follow the corresponding links or consult the Wiki.


🎬 Introduction video

Alt text


💾 Installation

From a package manager

Packaging status Packaging status Packaging status

If running on Linux, binary packages are available for most major distributions via the OpenSUSE Build System.

From source (Linux/BSD)

Note: Dependencies are most likely already satisfied, but in any case consult the dependencies section.

git clone https://github.com/leo-arch/clifm.git
cd clifm
sudo make install

For more information/supported platforms consult the installation page.


💡 Getting started

To start using clifm you don't need to learn anything new: the usual shell commands will just work. However, there is much more than just shell commands...
✓ The help command gives you a quick introduction to clifm: once in the clifm prompt, enter help or ?.
✓ Type cmd<TAB> to get the list of available commands and a brief description.
✓ Type help <TAB> to get the list of available help topics. Select the one you want and press Enter.
✓ To jump into the COMMANDS section in the manpage, simply enter cmd or press F2.
✓ Press F1 to access the full manpage and F3 to access the keybindings help-page.
✓ To get help about some specific command just type CMD -h. For instance, s -h.

You can also take a look at some of both our FAQ and these basic usage-examples to get you started.
For a complete description please consult our Wiki.


📰 What's new?

Click here to expand

For more details consult the changelog file.


Support

Clifm runs on Linux, Termux (Android), FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS, Solaris/Illumos, Haiku, and Cygwin/MinGW, on x86, ARM, PowerPC, and RISC-V architectures.


License

This project is licensed GPL version 2 (or later). See the LICENSE file for details.


Contributing

Contributions are kindly welcome! Please see our contribution guidelines for details.


Community

Join our Gitter discussion room and let us know what you think: ideas, comments, observations and questions are always useful.

The Discussions section of this repo is also open to input.


Developer

Leo Abramovich <[email protected]>.

Special thanks to all those who have contributed to this project.

clifm's People

Contributors

archetypic avatar ath3 avatar chiheisen avatar ckafi avatar comradekingu avatar danfe avatar gitter-badger avatar icyflamingarrow avatar jeeger avatar jonathanspw avatar l2dy avatar leo-arch avatar mario-campos avatar sisco0 avatar slackadays avatar spenserblack avatar step- avatar sundaran1122 avatar theroboxx avatar timgates42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clifm's Issues

Which tool is used for previewing gifs?

Hi there! nice cli file manager :D . which tool is used for previewing gifs in clifm? ueberzug? all gif cli viewers I have seen convert the gif to ascii or some format . I have seen the demo video and clifm plays the gif in its original form , How did you do that.

ac/ad overrides 'lira' config

I have configured lira to open cbr/cbz files with zathura, and xopp with xournalpp, but as these files are basically archive clifm opens them using ac.
I think if there is association defined in mimelist.cfm it should be preferred.

ihelp does not open correct line when MANPAGER is set.

Describe the bug
When opening the manpage with either ih or F1-F3, if clifm was started with the MANPAGER environment variable set, the man page does not open to the desired line.

To Reproduce
Steps to reproduce the behavior:

  1. Run export MANPAGER=less; clifm
  2. Select a topic from the ihelp plugin
  3. manpage opens at the top

fails to make on OpenBSD 6.9 AMD64

Describe the bug
#include <ereadline/readline/readline.h> file not found

added the /devel/readline from openbsd ports.

#EDIT after looking myself:

Changed the line "-lereadline" in the makefile and changed the the link to the readline.h file in src/keybinds.c to
"readline/readline.h"

a make install now gives me this:

`
HP-MH# make install
Detected operating system: OpenBSD
cc -o clifm src/*.c -O2 -pipe -I/usr/local/include -L/usr/local/lib -lreadline -lintl
src/keybinds.c:158:3: warning: implicit declaration of function 'rl_bind_keyseq' is invalid in C99 [-Wimplicit-function-declaration]
rl_bind_keyseq(find_key("show-manpage"), rl_manpage);

src/keybinds.c:252:3: warning: implicit declaration of function 'rl_bind_keyseq' is invalid in C99 [-Wimplicit-function-declaration]
rl_bind_keyseq("\eOP", rl_manpage);

2 warnings generated.
ld: error: undefined symbol: rl_bind_keyseq

referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced by keybinds.c
/tmp/keybinds-1a5042.o:(readline_kbinds)
referenced 124 more times
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error 1 in /home/gnunix/clifm (Makefile:33 'build')
`

Environment

  • OS: OpenBSD 6.9 -STABLE
  • Shell KSH
  • Terminal ST

autocommand

execute certain commands if predefined criteria is met with.

common example: sort files by time when current directory is $HOME/Downloads*

build failure

src/name_cleaner.c:323:13: error: 'curlen' undeclared (first use in this function); did you mean 'cur_len'?
  323 |         if (curlen == 3 && *p == '.' && *(p + 1) == '.' && !*(p + 2))
      |             ^~~~~~
      |             cur_len

using vis as editor

I did add vis to mimelist.cfm as

X:(^text/.*|application/json|inode/x-empty)=vis;micro;nano;vim;vi;emacs;ed;leafpad;mousepad;kate;gedit;pluma

This makes clifm wait on empty prompt. This issue is not present with vi, which seems to load alright.
I can start vis normally if I run it from clifm command prompt (vis <some_file>), but it doesn't work with Lira.

Feature Request: .Deb Packaging

Is your feature request related to a problem? Please describe.
It is not.

Describe the solution you'd like
I'd like to request a .deb package of this for Debian Based systems. This would simplify trying out the software, though I'll honestly say I'm not sure if it would negatively impact functionality of the software by doing so. Perhaps using something like this: Pkger

Describe alternatives you've considered
I've installed it on a command line only Arch install, which was okay, but running in a virtual environment. I also attempted to install it on Ubuntu 21.04 but the extra steps of installing the needed build tools kept producing errors that were hard to track down. I eventually got it, but it wasn't the most straightforward thing.


That aside, this is a really cool project, I love how lightweight it is and have never quite seen a File Manager like this. Thank you for working on it, It is a cool thing to see, and I'd love to use it on more machines.

replace x functions with libc versions

as of now the codebase uses a lot of these "x functions" eg xstrcmp, xstrcpy, xstrncpy etc. a lot of them appear to be useless. so replacing them with the libc version is better as that allows clifm to share code with other software running on the machine

Ueberzug does not display in the correct preview window when using fzfnav

Hello,

I tried the fzfnav plugin last night, pretty much using the out-of-the-box configuration. I set PDF="pdftoppm" and IMG="ueberzug" and put the preview cache directory to default. The pdf preview works but it is displayed on the left side of the screen, covering the entire fzf UI from view. Is this the desired default behaviour or am I missing something? I checked the fzfnav script to see if there is any obvious way to change this, if so it would be good to add something to the documentation. I am running the latest AUR build.

Thank you in advance for any help

Musl support

Hello, I get this error when executing make. I will be happy to troubleshoot and resolve it as I am currently learning C, but am still a novice.

plugins/ihelp.sh: manpage path is hardcoded

Right now, manpage path is hardcoded to /usr/share/man/man1/clifm.1.gz which probably works on GNU/Linux systems, as they usually (ab)use /usr prefix for third-party software, but won't work on e.g. FreeBSD, which uses /usr/local, or NetBSD, which uses /usr/pkg prefixes for that purpose. I reckon it's better not to assume any particular prefix, but obtain one from the plugin script itself, something like this:

-manpage="/usr/share/man/man1/clifm.1.gz"
+sharedir=`readlink -f "$(dirname "$0")/../.."`
+manpage="$sharedir/man/man1/clifm.1.gz"

Heredar funciones preexistentes

Hola, muy interesante este programa.

Consulta: seria posible que clifm use funcionalidades que ya tengo configuradas en mi shell? en un principio el prompt, pero tambien tengo configurado colores y autocompletado con tab y seria medio engorroso tener que configurar todo 2 veces o bien aprenderme 2 maneras de hacer las cosas y tener que acordarme cual es cual.

Gracias

Support more formats when importing aliases

Is your feature request related to a problem? Please describe.
I have a file containing alias definitions.
I wanted to import this file to CliFM.
However, because I used double quotes instead of single quotes this did not work.

Describe the solution you'd like
I want CliFM to import aliases regardless of whether they were defined with single quotes or double quotes.
Feedback that an alias couldn't be imported due to formatting would also be useful.

Describe alternatives you've considered
Just editing them to fit the required format.
In my case it's not that much work.

Why does clifm only display in a single column, regardless of enable/disable multi-columns.

Regardless of multi-columns being enabled or disabled, or which terminal emulator is used, clifm always displays the contents of a directory in a single column. I cannot stress how difficult this makes navigating through the file system and use the file manager. Is there anything that can be done to change this problematic behavior? Is there a terminal setting that needs altering?

Running current release of clifm, and attempted clifm both on mlterm and kitty.

MacOS port

Any chance of getting this working on MacOS?

issues in using m (move) command

I found some difficulties in using m command to change file name.

  1. Once you start changing file name, with m there is no way to cancel and go back to original name, other than typing it again.
  2. Sometimes ( I don't know how to reproduce), after m <file>, when I move to the beginning or middle of filename and start deleting/editing characters, suddenly cursor appears at different location editing something else in the filename.

Opensuse Build System (OBS)

We really need an automated build system to deliver binary packages. I was playing around with Opensuse build system, added all the necessary files (for Archlinux, Debian/Ubuntu, and Opensuse), and managed to successfully build a package for Arch. But Debian and Opensuse builds keep failing.

It seems to be some issue with the Makefile (though it works fine on my testing environments, when executed manually, so to say). After compiling successfully, the error I get from the OBS logs is this:

install: cannot create regular file '/usr/bin/clifm': Permission denied

Help with this issue would be greatly appreciated.

Archcrack

Update: The above issue is solved. OBS produces packages for Arch, Opensuse, and Debian/Ubuntu with no issue. However, most of these resulting packages just don't work: the binary, once execute, crashes. It doesn't happen when the same package is built locally.

Update: Everything seems to be working fine now. Let's wait for users feedback to make sure.

Doesn't build on OpenBSD 6.9 i386

Describe the bug
Can't compile clifm in OpenBSD i386 version 6.9 due to readline error:

$ doas make install       
Detected operating system: OpenBSD
cc -o clifm src/*.c -O2 -pipe   -I/usr/local/include -L/usr/local/lib -lereadline -lintl
In file included from src/keybinds.c:30:
/usr/local/include/ereadline/readline/readline.h:677:8: error: unknown type name
      'rl_cpvfunc_t'
extern rl_cpvfunc_t *rl_completion_word_break_hook;
       ^
1 error generated.
*** Error 1 in /home/ffuentes/clifm (Makefile:33 'build')

To Reproduce
Steps to reproduce the behavior:

  1. git clone the project and cd to it
  2. doas make install

Expected behavior

The program is installed.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS: [e.g. OpenBSD]
  • Program version [git version]
  • Shell [ksh]
  • Terminal [sakura]
  • Version [3.7.1]

Additional context
Add any other context about the problem here.

only 2 lines with fzftab

With fzftab activated, only 2 lines of possible completion are shown, regardless of the --height option of fzf.

hangs at startup

shows nothing, not even a prompt
recognizes TERM signal

os : linux 5.15
if i'm not wrong, commit 37ad74d introduced this issue

below is the diff between the default config and the one I use

if you have other questions, I will be able to answer next week

--- /usr/local/share/clifm/clifmrc	2021-12-30 09:06:37.275370306 +0100
+++ ../clifm/profiles/default/clifmrc	2021-12-30 08:47:42.066541359 +0100
@@ -1,3 +1,5 @@
+# vim: set filetype=conf:
+
 		###########################################
 		#                  CLIFM                  #
 		#      The command line file manager      #
@@ -8,14 +10,14 @@
 # Color schemes are stored in the colors directory. By default,
 # the 'default' color scheme is used. Visit
 # 'https://github.com/leo-arch/clifm-colors' to get a few more
-ColorScheme=default
+ColorScheme=golden-night
 
 # The amount of files contained by a directory is informed next
 # to the directory name. However, this feature might slow things down
 # when, for example, listing files on a remote server. The files counter
 # can be disabled here, via the --no-files-counter option, or using the
 # 'fc' command while in the program itself.
-FilesCounter=true
+FilesCounter=false
 
 # The character(s) used to construct the line dividing the list of files
 # and the prompt. If '0', print just an empty line; if only one char, this
@@ -36,7 +38,7 @@
 DirhistMap=false
 
 # Use a regex expression to filter file names when listing files.
-# Example: !.*~$ to exclude backup files (ending with ~), or ^\. to list 
+# Example: !.*~$ to exclude backup files (ending with ~), or ^\. to list
 # only hidden files. Do not quote the regular expression
 Filter=
 
@@ -84,10 +86,27 @@
 # add color to the prompt line
 # \]: End a sequence of non-printing characters
 
-Prompt="\[\e[0m\][\[\e[0;36m\]\S\[\e[0m\]]\l \A \u:\H \[\e[0;36m\]\w\n\[\e[0m\]<\z\[\e[0m\]> \[\e[0;34m\]\$ \[\e[0m\]"
+Prompt="\[\e[0m\] \n[\S] \l \u@\H : \p\n\n\d, \A \$ "
 
-# Default prompt, but colorless
-#Prompt="\[\e[0m\][\S]\l \A \u:\H \w\n<\z\[\e[0m\]> \$ "
+#Prompt="\S\l \A \u:\H \w\n\z \$ "
+#Prompt="\[\e[0m\][\[\e[0;36m\]\S\[\e[0m\]]\l \A \u:\H \[\e[00;36m\]\w\n\[\e[0m\]\z\[\e[0;34m\] \$\[\e[0m\] "
+# Default
+#Prompt="[\[\e[0;36m\]\S\[\e[0m\]]\l \A \u:\H \[\e[00;36m\]\w\n\[\e[0m\]\z \[\e[0;34m\]\$\[\e[0m\] "
+# Simple
+#Prompt="[\u@\H] \w \$ "
+
+# The following prompts are built using a patched Nerdfont
+
+# Fireplace
+#Prompt="\[\e[00;31m\]┏\[\e[00;31m\]\[\e[00;37;41m\]\A\[\e[00;31;43m\]\[\e[00;30;43m\] \u:\H\[\e[00;33;41m\]\[\e[00;37;41m\] \w\[\e[00;31m\]\[\e[0m\]\n\[\e[00;31m\]┗ "
+# Cold winter
+#Prompt="\[\e[00;37;100m\] \A \[\e[00;90;46m\]  \[\e[0;30;46m\]\u:\H \[\e[0;36;100m\]  \[\e[00;37;100m\]\w \[\e[00;90;40m\] \n \[\e[1;90m\]\[\e[0m\] "
+# Spot
+#Prompt="\[\e[00;38;5;0;48;5;178m\] \A \u:\H \w \[\e[00;38;5;178;48;5;0m\]\[\e[0;40m\]\n\[\e[0;38;5;254;48;5;53m\] \$ \[\e[0;38;5;53;48;5;0m\] \[\e[0m\] "
+# Artic particles
+#Prompt="\[\e[00;37;44m\] \A \[\e[00;34;47m\]  \u:\H \[\e[00;37;44m\] \w \[\e[00;34;40m\] \n\[\e[00;37;44m\] \$ \[\e[00;34;40m\] "
+# Green Beret
+#Prompt=" ╭─\[\e[0;38;5;239;48;5;232m\]\[\e[0;38;5;15;48;5;239m\]  \A \[\e[0;38;5;239;48;5;70m\]\[\e[0;38;5;0;48;5;70m\] \w \[\e[0;38;5;70;48;5;232m\]\n \[\e[0;40m\]╰──\[\e[0;38;5;70;48;5;0m\]▸\[\e[0;40m\] "
 
 # If set to 'default', CliFM state information (selected files,
 # trashed files, current workspace, messages, and stealth mode) will be
@@ -97,35 +116,36 @@
 PromptStyle=default
 
 # A warning prompt to warn the user about invalid command names
+
 WarningPrompt=true
 
 # String to be used by the warning prompt. The color of this prompt
 # can be customized using the 'wp' code in the color scheme file
-WarningPromptStr="(!) > "
+WarningPromptStr="(invalid command !) > "
 
 # TAB completion mode: either 'standard' (default) or 'fzf'
-TabCompletionMode=standard
+#TabCompletionMode=standard
+TabCompletionMode=fzf
 
 # If FZF TAB completion mode is enabled, pass these options to fzf.
-# --height, --margin, +i/-i,--read0, --query, and --ansi will be appended
-# to set up the completions interface. Set this value to 'none' to pass
-# no option, to the empty string to load the default values (same as those
-# specified below), or to any other custom value. Unless set to 'none',
-# values set here will override FZF_DEFAULT_OPTS.
-FzfTabOptions="--color='16,prompt:6,fg+:-1,pointer:4,hl:5,hl+:5,gutter:-1,marker:2' --bind tab:accept,right:accept,left:abort --inline-info --layout=reverse-list"
-
-# MaxPath is only used for the /p option of the prompt: the current
-# working directory will be abbreviated to its basename (everything after
-# the last slash) whenever the current path is longer than MaxPath.
+# --height, --margin, +i/-i, and --query will be appended to set up the
+# completions interface.
+#FzfTabOptions="--color='dark,prompt:6,fg+:-1,pointer:2,hl:5,hl+:5' --bind tab:accept,right:accept,left:abort --inline-info --layout=reverse-list --ansi"
+#FzfTabOptions='--exact --cycle --layout=reverse --color=bw --ansi'
+
+FzfTabOptions='none'
+
+# MaxPath is only used for the /p option of the prompt: the current working
+# directory will be abbreviated to its basename (everything after last slash)
+# whenever the current path is longer than MaxPath.
 MaxPath=40
 
-WelcomeMessage=true
+WelcomeMessage=false
 
 # Print CliFM's logo screen at startup
 SplashScreen=false
 
-ShowHiddenFiles=false
-
+ShowHiddenFiles=true
 # List files properties next to file names instead of just file names
 LongViewMode=false
 
@@ -140,12 +160,12 @@
 
 # When a directory rank in the jump database is below MinJumpRank, it
 # will be forgotten
-MinJumpRank=10
+MinJumpRank=1
 
 # When the sum of all ranks in the jump database reaches MaxJumpTotalRank,
 # all ranks will be reduced 10%, and those falling below MinJumpRank will
 # be deleted
-MaxJumpTotalRank=100000
+MaxJumpTotalRank=300000
 
 # Should CliFM be allowed to run external, shell commands?
 ExternalCommands=true
@@ -153,10 +173,10 @@
 # Write the last visited directory to $XDG_CONFIG_HOME/clifm/.last to be
 # later accessed by the corresponding shell function at program exit.
 # To enable this feature consult the manpage.
-CdOnQuit=false
+CdOnQuit=true
 
 # If set to true, a command name that is the name of a directory or a
-# file is executed as if it were the argument to the the 'cd' or the 
+# file is executed as if it were the argument to the the 'cd' or the
 # 'open' commands respectivelly: 'cd DIR' works the same as just 'DIR'
 # and 'open FILE' works the same as just 'FILE'.
 Autocd=true
@@ -167,22 +187,21 @@
 
 # The following checks will be performed in the order specified
 # by SuggestionStrategy. Available checks:
-# a = Aliases names\n\
-# b = Bookmarks names\n\
-# c = Possible completions\n\
 # e = ELN's
-# f = File names in current directory\n\
-# h = Commands history\n\
-# j = Jump database\n\
-# Use a dash (-) to skip a check. Ex: 'ehfj-ac' to skip the bookmarks
-# check
+# h = Commands history
+# f = File names in current directory
+# j = Jump database
+# b = Bookmarks names
+# a = Aliases names
+# c = Possible completions
+# Use a dash (-) to skip a check. Ex: 'ehfj-ac' to skip the bookmarks check
 SuggestionStrategy=ehfjbac
 
 # If set to true, suggest file names using the corresponding file type
 # color (set via the color scheme file)
 SuggestFiletypeColor=false
 
-SyntaxHighlighting=true
+SyntaxHighlighting=false
 
 # If set to true, expand bookmark names into the corresponding bookmark
 # path: if the bookmark is "name=/path", "name" will be interpreted
@@ -196,7 +215,7 @@
 # is readable by the current user, if it is executable, SUID, SGID, if a
 # symlink is broken, and so on. The file extension check is ignored as
 # well, so that the color per extension feature is disabled.
-LightMode=false
+LightMode=true
 
 # If running with colors, append directory indicator to directories. If
 # running without colors (via the --no-colors option), append file type
@@ -219,8 +238,8 @@
 # application. If not set, 'lira', CLiFM's built-in opener, is used.
 Opener=
 
-# Only used when opening a directory via a new CliFM instance (with the
-# 'x' command), this option specifies the command to be used to launch a
+# Only used when opening a directory via a new CliFM instance (with the 'x'
+# command), this option specifies the command to be used to launch a
 # terminal emulator to run CliFM on it.
 TerminalCmd='xterm -e'
 
@@ -229,7 +248,6 @@
 # (name if note available) 8 = extension, 9 = inode, 10 = owner,
 # 11 = group
 Sort=1
-
 # By default, CliFM sorts files from less to more (ex: from 'a' to 'z' if
 # using the "name" method). To invert this ordering, set SortReverse to
 # true (you can also use the --sort-reverse option or the 'st' command)
@@ -243,7 +261,7 @@
 # Enable case sensitive listing for files in the current directory
 CaseSensitiveList=false
 
-# Enable case sensitive lookup for the directory jumper function (via 
+# Enable case sensitive lookup for the directory jumper function (via
 # the 'j' command)
 CaseSensitiveDirJump=false
 
@@ -254,23 +272,21 @@
 CaseSensitiveSearch=false
 
 Unicode=true
-
 # Enable Mas, the files list pager (executed whenever the list of files
 # does not fit in the screen)
 Pager=false
-
 # Maximum file name length for listed files. Names larger than
 # MAXFILENAMELEN will be truncated at MAXFILENAMELEN using a tilde
 # When running in long mode, this setting is overriden by MinFilenameTrim
 MaxFilenameLen=
 
 MaxHistory=1000
-MaxDirhist=100
+MaxDirhist=1000
 MaxLog=500
 DiskUsage=false
 
 # If set to true, always print the list of selected files. Since this
-# list could become quite extensive, you can limit the number of printed 
+# list could become quite extensive, you can limit the number of printed
 # entries using the MaxPrintSelfiles option (-1 = no limit, 0 = auto
 # (never print more than half terminal height), or any custom value)
 PrintSelfiles=false
@@ -289,13 +305,12 @@
 
 # If set to true, the 'r' command executes 'trash' instead of 'rm' to
 # prevent accidental deletions.
-TrashAsRm=false
+TrashAsRm=true
 
 # Set readline editing mode: 0 for vi and 1 for emacs (default).
 RlEditMode=1
 
-# ALIASES
-#alias ls='ls --color=auto -A'
+#END OF OPTIONS
 
 # PROMPT COMMANDS
 # Write below the commands you want to be executed before each prompt. Ex:
@@ -303,8 +318,34 @@
 #promptcmd date | awk '{print $1", "$2,$3", "$4}'
 
 # AUTOCOMMANDS
-# Control CliFM's settings on a per directory basis. For more information
-# consult the manpage
+# Control CliFM settings on a per directory basis. For more information consult
+# the manpage
 #autocmd /media/remotes/** lm=1,fc=0
 #autocmd ~/important !printf "Keep your fingers outta here!\n" && read -n1
 #autocmd ~/Downloads !/usr/share/clifm/plugins/fzfnav.sh
+
+autocmd /usr/bin mf=100,pg=1
+autocmd /media/** lm=1,fc=0
+autocmd / lv=0,st=5
+
+#ALIASES
+#alias ls='ls --color=auto -A'
+
+# Write below the commands you want to be executed before the prompt.
+# Ex:
+#/usr/share/clifm/plugins/git_status.sh
+#date | awk '{print $1", "$2,$3", "$4}'
+
+#END OF PROMPT COMMANDS
+
+# Aliases added automatically by
+#
+# alias import
+#
+# in clifm
+
+alias ?='ih'
+alias uf='filter unset'

libreadline.so.8: cannot open shared object file:

Describe the bug
A clear and concise description of what the bug is.

I've installed the clifm-1.1-x86_64.deb
Im trying clifm from EXWM in Emacs (dont know if that part of the issue)

I get this error when I try to launch clifm

$ clifm
clifm: error while loading shared libraries: libreadline.so.8: cannot open shared object file: No such file or directory

I also have the libreadline installed

libreadline-dev/stable,now 7.0-5 amd64 [installed,automatic]
  GNU readline and history libraries, development files

OS: MX 19.4 (patito feo) x86_64 based Debian GNU/Linux 10 (buster)
SysV init version: 2.96
Kernel: 5.10.0-5mx-amd64

Use CliFM as the primary shell

Is your feature request related to a problem? Please describe.
I want to use CliFM for some time as my primary shell to figure out whether I like it better than Zsh.
Ideally I would just type chsh -s /usr/bin/clifm and start with a CliFM shell on login.
However, CliFM is not registered as a shell.
Manually editing /etc/shells leads to a broken shell :( .

Describe the solution you'd like
Register CliFM as a usable shell and fix it.

Describe alternatives you've considered
Just adding clifm $PWD to the end of my .zshrc file essentially does what I want but it's not ideal.

How to tell the ad command to mount an archive ?

The doc mention the possibility, but it doesn't specify how, or maybe I've missed something.

Edit : Just tried, it asks for it in a menu:

[e]xtract [E]xtract-to-dir [l]ist [m]ount [r]epack [q]uit

Issued closed.

drive label with space

media and mp commands have trouble when mounted drive have space in their label.
udevil mounts this drive creating folder under /media with label name (e.g., /media/data\ 1), but clifm fails to change directory to mounted folder. Manual cd works but media and mp fails to change directory to mountpoint.

`columns on`: file listing by lines instead of columns

The command columns on (the default) is a bit confusing as the entries are listed by lines rather than columns:

1 2 3
4 5 6
7 8 9

instead of

1 4 7
2 5 8
3 6 9

(just like the difference between ls -x (lines) and ls -C (columns))

I suggest to follow the ls command and list the files in columns by default. The columns command should be changed to something like listing-style [columns, lines, 1].

fzfnav.sh abort key

In the fzfnav plugin the abort key is q so that it is impossible to match q. I would suggest just to delete that line since there are already other keys with the same effect (C-c, C-g, C-q). Or is there any reason why q should be bound to that action?

bm bookmarkName : no such bookmark

When I try to access a bookmark by its name, its fails with the message:

Bookmarks: /book/mark/dir: No such bookmark

It works fine when I use the shortcut however. Any idea to solve this ?

Additional steps for Konsole shortcuts

I'm using Konsole and I made the changes described in the man page regarding shift+left and shift+right.
This was not enough however.
On Konsole those shortcuts by default switch to the tab on the left/right of the current tab and need to be unbound first via Settings -> Configure Keyboard Shortcuts...

CliFM needs a decent logo

Looking for a logo/icon

Yes, I already designed a logo, but it sucks, badly. Since I know near nothing about digital design and multimedia stuff, I ask anyone willing to contribute for help. Some ideas to start the discussion:

CliFM is file manager half way between the command line and traditional TUI/curses file managers (a few images are in the README file): It provides all the features and advantages of the latter but without relying on the curses interface (just a shell-like prompt and text). It is intended to be fast and lightweight, but also full-featured and extensible. So, the logo should be:

  • Something representative of the command line (an image/logo representing non-images, so to say)
  • Something transmitting power and speed
  • Modern and good looking (this would be the only eye-candy stuff in this program): some simple and flat image would be nice.
  • Colors? It could be (CliFM relies a lot on colors after all). But I really prefer something black and white. Perhaps some monochrome design that reminds us of the old good CRT monitors (green or amber (My first monitor was amber indeed)).
  • Needless to say, the logo license must be free and open-source.

These are just a few suggestions. Feel free to propose your owns.

Thank you very much in advance!
Archcrack

clifm should respect the user's `$EDITOR`

clifm seems to always edit text files using nano despite my globally having configured $EDITOR to launch vim. The $EDITOR variable is supported by many programs, and has been a CLI standard for years. clifm should respect the users choice if they have $EDITOR set, and if not, then fall back to nano. Most notably git respects the $EDITOR variable, and I imagine a lot of people have this set because of that.

More info: https://bash.cyberciti.biz/guide/$EDITOR_variable

make this available for void also !!!!!

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Spelling

If working with the command-line, your workflow is not affected at all, but just enriched with file management functionalities: automatic fles listing, files selection,

That comes from the first lines of README.md. I think you mean file listing.

Wonderful approach to terminal productivity! I just twitted about (see https://twitter.com/hectormonacci/status/1456198940563582979)

override this file prompt issue

Describe the bug
A clear and concise description of what the bug is.

Hello @leo-arch

I tried to copy a file where that file already exist.
The override this file prompt shows up but I cant type anything.
Therefore, im stuck there.
Perharps, y/n is not what we should be typing ?

Expected behavior

Typing y/n

To Reproduce
Steps to reproduce the behavior:

Im running kitty 0.13.3 terminal. Not sure if that can be part of the issue.

clifm_1.1-1_amd64.deb
OS: MX 19.4 (patito feo) x86_64 based Debian GNU/Linux 10 (buster)
SysV init version: 2.96
Kernel: 5.10.0-5mx-amd64

Output corruption with long japanese folder name

Describe the bug
Any directory above a certain length corrupts the output in an increasing manner. This only happens in paths with japanese characters (I haven't tried any other non latin script) from what I can tell. Leaving the directory restores the expected behavior if it's not completely broken.

To Reproduce
Steps to reproduce the behavior:

  1. mkdir 'あああああああああああああああああああああああああああああ', and cd into it with clifm. Here you'll start noticing the corruption. The space after $ is missing.
  2. mkdir 'あああああああああああああああああああああああああああああああ', $ is gone.
  3. mkdir 'ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ', output completely corrupted, at this point nothing really works except holding ctrl+c and q'ing out.

Note: 1. even repros the bug when you create the folder on /, so it's not the total length, but the length of the folder you're currently in. Creating a folder with repeating a's until the fs complains does not repro the behaviour, even if pwd | wc -c
reports a higher bytecount.
(E.g.: 3 is 198 bytes, a path I made with just aaaa's is 241 and does not trigger it)

Expected behavior
No terminal output corruption.

Environment (please complete the following information):

  • OS: Arch
  • Program version: master, built with bc8fc15
  • Shell: bash and zsh
  • Terminal: tried kitty, alacritty, foot

(Sidenote, ELNs really make working with annoying to type paths such as japanese extremely easy.)

Add FreeBSD support

I've added CliFM to the FreeBSD Ports Collection, and while porting had to provide alternative code paths which do not use /proc files specific to GNU/Linux. Please consider merging the patch (and feel free to change according to your taste).

We need a cool, nice-looking demo video

I'm just a dev; I know nothing about video editing and stuff like that. But, a demo video is no doubt a good way of letting the world know what CliFM is. So, it would be really nice to have one.

The idea is to quickly show/describe the interface, some basic file operations (including files selection, workspaces, bookmarks, completion, suggestions), and a bit of eye-candy: showing how icons, files preview, color schemes, prompt customization, the FZF mode for TAB completion, and a few more things, work. The ugly monster I created could be used as a starting point.

Any help will be highly appreciated! Thanks in advance,

Archcrack

Add a command to edit the selection box in editor

Is your feature request related to a problem? Please describe.
When I have a lot of files selected, viewing and editing (i.e., removing entries) the selection box with sb and ds is clunky.

Describe the solution you'd like
Ideally, sb would offer an additional command (besides number ranges and *) that just opens the selection box in my editor, where I could quickly remove lines. This is quite similar to the existing bulk rename feature.

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.