f2-commander


Namef2-commander JSON
Version 0.5.1 PyPI version JSON
download
home_pagehttps://github.com/candidtim/f2-commander
SummaryF2 Commander is an orthodox file manager for the modern world.
upload_time2024-12-27 23:18:18
maintainerNone
docs_urlNone
authorTimur Rubeko
requires_python<4.0,>=3.9
licenseMPL-2.0
keywords file manager commander
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # F2 Commander

F2 Commander is an orthodox file manager for the modern world.

![F2 Commander Showcase](docs/img/f2.png "F2 Commander Showcase")

## Installation

From PyPI:

    pipx install f2-commander

From source:

    poetry build
    pipx install [--force] dist/f2_commander-0.5.1.tar.gz

This software is designed to work in Linux and macOS. It should also work in
WSL (Windows Subsystem for Linux).

## Usage

 - Start by running `f2` in your terminal emulator
 - Hit `?` to see the built-in help
 - Hit `q` to quit

## About

F2 Commander exists to bring the experience of an orthodox file manager into
the world of modern computing.

A "file system" can be anything that can seem to contain files and directories,
(a local disk, a BLOB storage, a Cloud drive, a compressed file, etc.).

Finally, it is designed to be discoverable: making file systems easy to
navigate, and making the F2 Commander itself obvious to use.

F2 Commander is an overgrown personal project, may contain bugs, and is
provided "as is", without warranty of any kind.

## Features

Below is a short summary. For a complete list of features, existing and
planned, see the [complete feature list](docs/features.md). Some features are a
work-in-progress as indicated below.

 - [x] Works in Linux, macOS
 - [ ] Works in WSL (should work, but to be extensively tested)
 - [x] An orthodox two-panel interface with a footer menu
 - [x] Vi-like key bindings
 - [ ] Classic Fn key bindings, and configurable key bindings
 - [x] Command Palette (Ctrl-P)
 - [x] Rich and flexible file listing (file attributes, ordering options,
       filtering with glob, hidden files toggle, compute directory size,
       and more)
 - [x] Incremental search (type to search, fuzzy matching)
 - [ ] Recursive file search. Find in (text) files.
 - [x] Integration with native OS applications (open a directory in a file
       manager, open a file with a default program)
 - [x] File and directory manipulation (copy, move, move to trash,
   etc.)
 - [x] Multiple file selection
 - [x] View and edit files
 - [x] Configurable bookmarks. Quick "Go to path".
 - [x] Preview panel
 - [x] Drop to shell
 - [x] User-level configuration file
 - [x] Extensive "Remote File systems" support. A non-extensive list
       includes: AWS S3, GCP GCS, Azure ADLS, OCI, OSS, DVC, LakeFS, HDFS,
       Dropbox, Google Drive, FTP/FTPS, SFTP, SMB, WebDAV, and many more.
       Custom implementations are possible through other
       [fsspec](https://github.com/fsspec/filesystem_spec) implementations and
       plugins. \*\*See also the note below.
 - [x] Read and write archives and compressed files. A non-exhaustive
       list includes: ZIP, TAR, XAR, LHA/LZH, ISO 0660 (optical disc files),
       cpio, mtree, shar, ar, pax, RAR, MS CAB, 7-Zip, WARC, and more -
       everything supported by [libarchive](https://github.com/libarchive/libarchive).
 - [x] Multiple color themes
 - [x] Built-in help

> \*\*Note: Remote file systems are in *preview*. All features are available,
> but not extensively tested. Connection dialog is rather crude, but is
> otherwise functional. Connections can be preconfigured in a configuration
> file using raw `fsspec` key-value format (see built-in help for more deatils).

And, hopefully, a polished up user experience that you'd normally expect from
a robust file manager. Feel free to submit any issues to make F2 Commander
even better!

See also a [list of known bugs](docs/testing.md).

## Development environment

This project uses Poetry for dependency management and as a build tool. The
configuration is conventional, use as usual:

    poetry install --with dev

It also uses black, flake8, isort, mypy and pytest. An IDE or an LSP should
pick up their configuration, or they can be executed with poetry. For example:

    poetry run pytest

To run all code quality controls and linters:

    ./check

To run the application from source code:

    poetry run f2

To run the application with dev tools:

    poetry run textual console [-v -x SYSTEM -x EVENT -x DEBUG -x INFO]  # this first!
    poetry run textual run --dev f2.app:F2Commander

To run tests in all target Python versions (typically before a release):

    pipx install nox
    nox [-r]  # -r == --reuse-existing-virtualenvs

## About (continued)

"F2" is a loose interpretation of "a **F**ile manager with **2** side-by-side
panels", and "Commander" is an homage to the old-school orthodox file managers.

"F2 Commander" is a personal project that has grown into a full-fledged file
manager and is now open-sourced. Being a personal project means that:
a) my intent is to continue the development of the features outlined above, but
   the development and bug fixing may be irregularly-paced and priorities may
   shift;
b) my intent is to keep F2 Commander stable, but future versions may include
   backward-incompatible changes where that would seem pragmatic.

## Special Thanks

F2 Commander is made with [Textual](https://github.com/textualize/textual/)
framework, [fsspec](https://github.com/fsspec/filesystem_spec) and other great
packages. Many features are made possible or stem directly from these, and I
encourage F2 Commander users to support them.

## Contributions

Bug reports, feature requests and pull requests are welcome.

If you plan to contribute to the source code, see the "Development environment"
above and, please, note that:

 - contributed source code must pass the `./check`,
 - in this repository, contributed source code is only accepted under Mozilla
   Public License 2.0 and should include according file headers.

## License

This application is provided "as is", without warranty of any kind.

Mozilla Public License, v. 2.0.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/candidtim/f2-commander",
    "name": "f2-commander",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "file, manager, commander",
    "author": "Timur Rubeko",
    "author_email": "timcandid@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/7a/69/f958a92c4b0728da132e20e93baa59afcd678c8ff208e0d69b34c1a84d16/f2_commander-0.5.1.tar.gz",
    "platform": null,
    "description": "# F2 Commander\n\nF2 Commander is an orthodox file manager for the modern world.\n\n![F2 Commander Showcase](docs/img/f2.png \"F2 Commander Showcase\")\n\n## Installation\n\nFrom PyPI:\n\n    pipx install f2-commander\n\nFrom source:\n\n    poetry build\n    pipx install [--force] dist/f2_commander-0.5.1.tar.gz\n\nThis software is designed to work in Linux and macOS. It should also work in\nWSL (Windows Subsystem for Linux).\n\n## Usage\n\n - Start by running `f2` in your terminal emulator\n - Hit `?` to see the built-in help\n - Hit `q` to quit\n\n## About\n\nF2 Commander exists to bring the experience of an orthodox file manager into\nthe world of modern computing.\n\nA \"file system\" can be anything that can seem to contain files and directories,\n(a local disk, a BLOB storage, a Cloud drive, a compressed file, etc.).\n\nFinally, it is designed to be discoverable: making file systems easy to\nnavigate, and making the F2 Commander itself obvious to use.\n\nF2 Commander is an overgrown personal project, may contain bugs, and is\nprovided \"as is\", without warranty of any kind.\n\n## Features\n\nBelow is a short summary. For a complete list of features, existing and\nplanned, see the [complete feature list](docs/features.md). Some features are a\nwork-in-progress as indicated below.\n\n - [x] Works in Linux, macOS\n - [ ] Works in WSL (should work, but to be extensively tested)\n - [x] An orthodox two-panel interface with a footer menu\n - [x] Vi-like key bindings\n - [ ] Classic Fn key bindings, and configurable key bindings\n - [x] Command Palette (Ctrl-P)\n - [x] Rich and flexible file listing (file attributes, ordering options,\n       filtering with glob, hidden files toggle, compute directory size,\n       and more)\n - [x] Incremental search (type to search, fuzzy matching)\n - [ ] Recursive file search. Find in (text) files.\n - [x] Integration with native OS applications (open a directory in a file\n       manager, open a file with a default program)\n - [x] File and directory manipulation (copy, move, move to trash,\n   etc.)\n - [x] Multiple file selection\n - [x] View and edit files\n - [x] Configurable bookmarks. Quick \"Go to path\".\n - [x] Preview panel\n - [x] Drop to shell\n - [x] User-level configuration file\n - [x] Extensive \"Remote File systems\" support. A non-extensive list\n       includes: AWS S3, GCP GCS, Azure ADLS, OCI, OSS, DVC, LakeFS, HDFS,\n       Dropbox, Google Drive, FTP/FTPS, SFTP, SMB, WebDAV, and many more.\n       Custom implementations are possible through other\n       [fsspec](https://github.com/fsspec/filesystem_spec) implementations and\n       plugins. \\*\\*See also the note below.\n - [x] Read and write archives and compressed files. A non-exhaustive\n       list includes: ZIP, TAR, XAR, LHA/LZH, ISO 0660 (optical disc files),\n       cpio, mtree, shar, ar, pax, RAR, MS CAB, 7-Zip, WARC, and more -\n       everything supported by [libarchive](https://github.com/libarchive/libarchive).\n - [x] Multiple color themes\n - [x] Built-in help\n\n> \\*\\*Note: Remote file systems are in *preview*. All features are available,\n> but not extensively tested. Connection dialog is rather crude, but is\n> otherwise functional. Connections can be preconfigured in a configuration\n> file using raw `fsspec` key-value format (see built-in help for more deatils).\n\nAnd, hopefully, a polished up user experience that you'd normally expect from\na robust file manager. Feel free to submit any issues to make F2 Commander\neven better!\n\nSee also a [list of known bugs](docs/testing.md).\n\n## Development environment\n\nThis project uses Poetry for dependency management and as a build tool. The\nconfiguration is conventional, use as usual:\n\n    poetry install --with dev\n\nIt also uses black, flake8, isort, mypy and pytest. An IDE or an LSP should\npick up their configuration, or they can be executed with poetry. For example:\n\n    poetry run pytest\n\nTo run all code quality controls and linters:\n\n    ./check\n\nTo run the application from source code:\n\n    poetry run f2\n\nTo run the application with dev tools:\n\n    poetry run textual console [-v -x SYSTEM -x EVENT -x DEBUG -x INFO]  # this first!\n    poetry run textual run --dev f2.app:F2Commander\n\nTo run tests in all target Python versions (typically before a release):\n\n    pipx install nox\n    nox [-r]  # -r == --reuse-existing-virtualenvs\n\n## About (continued)\n\n\"F2\" is a loose interpretation of \"a **F**ile manager with **2** side-by-side\npanels\", and \"Commander\" is an homage to the old-school orthodox file managers.\n\n\"F2 Commander\" is a personal project that has grown into a full-fledged file\nmanager and is now open-sourced. Being a personal project means that:\na) my intent is to continue the development of the features outlined above, but\n   the development and bug fixing may be irregularly-paced and priorities may\n   shift;\nb) my intent is to keep F2 Commander stable, but future versions may include\n   backward-incompatible changes where that would seem pragmatic.\n\n## Special Thanks\n\nF2 Commander is made with [Textual](https://github.com/textualize/textual/)\nframework, [fsspec](https://github.com/fsspec/filesystem_spec) and other great\npackages. Many features are made possible or stem directly from these, and I\nencourage F2 Commander users to support them.\n\n## Contributions\n\nBug reports, feature requests and pull requests are welcome.\n\nIf you plan to contribute to the source code, see the \"Development environment\"\nabove and, please, note that:\n\n - contributed source code must pass the `./check`,\n - in this repository, contributed source code is only accepted under Mozilla\n   Public License 2.0 and should include according file headers.\n\n## License\n\nThis application is provided \"as is\", without warranty of any kind.\n\nMozilla Public License, v. 2.0.\n",
    "bugtrack_url": null,
    "license": "MPL-2.0",
    "summary": "F2 Commander is an orthodox file manager for the modern world.",
    "version": "0.5.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/candidtim/f2-commander/issues",
        "Homepage": "https://github.com/candidtim/f2-commander",
        "Repository": "https://github.com/candidtim/f2-commander"
    },
    "split_keywords": [
        "file",
        " manager",
        " commander"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "357403aad544b85d1216d078359736bd13a281020c0c6749495e08cd477a38ad",
                "md5": "e29d194a0853c1ef16005303a9c781cd",
                "sha256": "6e4da6a9ed3f4c0a3990ccd078e2e313b312599dc5c41b210c8bb2c0f8a0ae49"
            },
            "downloads": -1,
            "filename": "f2_commander-0.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e29d194a0853c1ef16005303a9c781cd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 42159,
            "upload_time": "2024-12-27T23:18:16",
            "upload_time_iso_8601": "2024-12-27T23:18:16.329651Z",
            "url": "https://files.pythonhosted.org/packages/35/74/03aad544b85d1216d078359736bd13a281020c0c6749495e08cd477a38ad/f2_commander-0.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a69f958a92c4b0728da132e20e93baa59afcd678c8ff208e0d69b34c1a84d16",
                "md5": "2318821de104f77f364f4971ee85a453",
                "sha256": "8f0a16bfa293b00825ff501800c3d3ef5a515002c86e250495bc050defaf1179"
            },
            "downloads": -1,
            "filename": "f2_commander-0.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2318821de104f77f364f4971ee85a453",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 36831,
            "upload_time": "2024-12-27T23:18:18",
            "upload_time_iso_8601": "2024-12-27T23:18:18.891812Z",
            "url": "https://files.pythonhosted.org/packages/7a/69/f958a92c4b0728da132e20e93baa59afcd678c8ff208e0d69b34c1a84d16/f2_commander-0.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-27 23:18:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "candidtim",
    "github_project": "f2-commander",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "f2-commander"
}
        
Elapsed time: 0.41387s