spakis / mc Goto Github PK
View Code? Open in Web Editor NEWThis project forked from migueldeicaza/mc
C# based curses file manager
License: Other
This project forked from migueldeicaza/mc
C# based curses file manager
License: Other
This is a C# version of the Midnight Commander that I am using as a testbed for Mono-Curses. - Miguel de Icaza This new version is called "Mouseless Commander[1]", to bring back the original name. [1] With mouse support. History ======= This is a C# reimplementation of the Midnight Commander (originally, the MouseLess Commander, later the MouseLess Commander With Mouse Support) in C#. Unix Evolves ------------ The C version of the Midnight Commander was started some time in 1991 or 1992 and many of the features in the code base had to deal with Unix as it used to be back then. Since then, Unix has changed extensively and this rewrite takes advantage of how Unix evolved since then. Plenty of older Unix systems that MC supported no longer exist, so none of the supporting code for those systems is replicated here. Curses Evolves -------------- Back then, curses was mostly broken so the code supported three backends: curses, slang and a built-in version of slang. Over time, ncurses became a standard and addressed the bugs and limitations that existed back then. These days ncurses has mouse support built right into the API, so many of the hacks that used to exist in MC are no longer necessary. When MC was originally developed, not only curses was broken, but terminal settings could be wrong, terminfo and termcap databases were often wrong and in general things were consistely broken. The old midnight commander had its own Learn-the-keys system, and its own system for mapping escape sequences to function keys. None of this is necessary anymore ncurses support Unicode output, so this codebase takes advantage of this and the built-in viewer uses the .NET powered Encoding class to render files, allowing not only various common formats to be viewed, but will easily allow various fringe character set encodings to be supported with little effort. Virtual File Systems -------------------- The original Midnight Commander was the first Unix file manager that had a virtual file system (VFS) interface. This virtual file system was later adopted by KDE and Gnome. But application-specific virtual file systems are no longer necessary as both Linux and MacOS now support FUSE as a kernel-supported user-pluggable file system interface. The Mouseless Commander no longer ships its own VFS, and instead will integrate with the operating system FUSE functionality to provide access to archives and remote storage facilities. Features and Usability ---------------------- Many features that were added to Midnight Commander over the years in retrospect were not very good ideas. SOme of the dialog boxes grew to become too complicated, and not only was it hard to explain to users what they did, I could not even remember how to use some of the most advanced features like pattern renaming (common in DOS). Many of the file copying options were advanced features that I never changed or switched in the past 18 years. At the time, it probably made sense that we might have wanted to control with precision how files were copied, or moved, but the solution we came up with was poorly designed. The dialog boxes became cluttered, and the tab-order was downright odd due to all of those features. So none of that complexity is available here. Although MC had an hex editor, very few people knew how to activate it (Open viewer, activate hex mode, hit Edit).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.