so what is a FS eh? A tough question. i remember my days from CP/M vc and nc:) core idea: provide interface for user to view and manipulate with filesystems in most efficient way,but requesting him to know some (someone called generic knowledge or KISS designs) efficient interaction commands that provided by this software. types of FM's: panel(or two-panel) managers list icon based managers(nautilus etc..) shortcut('places') managers other types like visual(3D,graphs etc..) design: file managers must work on different displays. Core rule is like 'strech' design in web developing there are fixed size areas(that will not render in place if screen is too small for other windows,but instead will be placed on next available space row) and 'strech' areas each type of view have min required screen width/height some like lists have max width/height too to be space efficient. FM's currently used on devices with touchscreens,touchpad,mouse,keyboards. ability for user to hide/show/drag to another place design elements on demand every element can be instanced multiple times tech aspects: core module must be standalone with bare minimum dependencies (i would even prefer command line/port server) modular design. yes even drawing module must be a plugin! provide GLOBAL functions to abstract interactions between plugins,plugins must have ability to extend global list,calculate bare minimum global list (operation,property etc..) because operating with filesystems can be quite slow FM must aggregate data in background possibly in separate thread. almost every action must be operable by command-line or message bus, this is requirement to support modern input devices and complex features.. every view have own set of options: view type,current directory and possibly other stuff features: themes + view config with exact directory/place :) yes thats it .. i find quite usefull windows style desktop.ini and folder.* files except they make a lot of this files in fs.. it's better to keep default::options , DIR::options in one file in some fm config dir + limit filesize to lets say 64Kb + binary tree to not make huge speed+memory impact. btw a good feature will be ability to view theme just entering it's directory in themes/themename. plugin config manager:config,disable,download plugins gestures and shortcuts Bare minimum plugins/features: history,tags navigation: bookmarks,breadcrumbs,navigation line panel view type: panel,list,icons, operations type: copy,move,rename,delete,'buffer'(clipboard) ops,make shortcut identity ops: find what app can operate with this object type(extension,xdg tools etc..),filesize,tags etc.. input: key bindings,mouse events,system events, external commands network connections like ssh,sftp,ftp,smb very easy to add/port plugins from other FM's text or xml based configs batch jobs 'generic' hotkeys operations support (ctrl+c/v/x/w/t,F2,shift+ins etc..)
-- ubuntu-desktop mailing list ubuntu-desktop@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop