Here are my few suggestions to make better desktop (making it simple but powerful). Most of them are for Gnome and related applications but for other desktop environments and applications could be also useful.
This suggestions are not of type make it faster (what is also important) but of type make it more useful. Some of them are my own thoughts but some suggestions are inspired by existing programs. And even some are not real suggestions.
If you found any mistake here or have any other suggestion please drop me line and send e-mail to suggestionschabada.sk. If you thing that these suggestion are realy usefull and you know a developer who might to implement some of them send him/her link to this page.
My english is far away from perfect so try to imagine what I meant. I applogize for that inconvenience.
Better properties dialog
Properties dialog can be very powerful tool if wisely designed. It can show metadata but it could be able to modify metadata (id3 tags, image comments...). Some most useful metadata information should be on first tab. Note/comment will nobody use until it will be on first tab. Note (and other metadata) should be also searchable (e.g. in Beagle). On image thumbnail could be two arrows (or two buttown) to make lossless image rotation...
Now Gnome completely miss feature of multirename when user can rename selected files from "something.JPEG" to "*.jpg" or renaming vacation photos from camera format "DSC000000.JPG" to more human "Vacation ###.jpg" (which will expand to "Vacation 001.jpg", "Vacation 002.jpg"... on multiple files). For advanced users there could be full regular expressions support.
And even more if user tries to rename "image.jpg" to "image.png" why not offer conversion (if file was really jpeg and not mistakenly named file)? Same for renaming "sound.wav" to "music.ogg" or even video files. Of course warn user if conversion means loss of quality and ask for conversion parameters (and ask whether to keep original). Ability for simple but quality resize should be also fine.
Don't forget about properties of multiple selected files. On all selected files you can change artist or album tag once, you can rotate multiple images and even you can rename/convert multiple files! Renaming (with conversion) on multiple files should be able not only from properties but also directly from Nautilus.
Date fields should understand values such as "+ 2 hours", "+30s" or "-one day". For one file it seems to be unnecessary but for multiple files it can be useful. Maybe it would be nicer if fields become editable when get focus or on mouse over event.
There should be possibility to change properties for root-owned files including changing file owner. System will simple ask for password (with gksudo or gksu for real file owner). Sometimes can user want that, so make it easy.
Nautilus improvements
Browsing through files in nautilus with keyboard right arrow key should not have "hard" edges and should allow user go to next row.
Keeping user interface simple shouldn't lacks information about files. In statusbar or in tooltips should be more information - filename and size is not enough. Filename is shown bellow file's icon so in statusbar should be size, modification date and if there is place metadata information (image resolution, data from ID3 tag...). In tooltips should be permissions and owner.
Image icons should use exif preview instead of image itself. I'm not sure if it is implemented or not, but subjectively showing previews from digital still camera is slower than in Windows. Maybe I am wrong.
Because of image thumbnails Nautilus works as a image browser so there should be way (icon or context menu) for lossless image rotation.
For some types of folders should be in toolbar one context icon for most common task. Some examples: start slideshow for images, play folder as playlist for audio and video files, import photos for digital still camera, eject for removable media...
There should be undo function. If you accidentally rename or delete (to trash) some file you could get back.
Multi-seat desktop
Modern computers are able to host multiple terminals. With dualhead graphic card, two displays, two keyboards and two mouses connected to one computer, it should be possible to setup two terminals so two users could work on one computer in same time.
Best way should be easy. If system detects possibility for multiple terminals wizard with two questions (press key X, click on Y) should be enough to pair devices and everyone will be happy.
Xorg 6.9/7.0 provides multi-seat capability. There is only missing GUI. This might be "killer" application for certain purpose use, e.g. in schools or in internet cafes.
Look also on linuxgazette.net/124/smith.html.
Pivot
Many today's LCDs are able to rotate display. It is called pivot. Linux can do that, but Gnome lacks easy way to make it. Keyboard shortcut should be fine too because it is the most common way to invoke pivot.
Note 3D applications (e.g. screensavers) moreover does not know correct screen resolution when pivot is used (this is really a bug).
Burning
Burning in Gnome is intuitive and good enough for many people. But some people like standalone application for burning. Gnomebaker is suitable burning application for Gnome desktop. In same cases is loading full user interface not necessary (e.g. copying disk, blanking disk...). I suggest using launchpad with most common tasks at application startup. Also there should be simplification in terms that for user shouldn't be difference between copying audio or data disk, between burning CD or DVD image... Everything necessary should be done by application. If user tries to burn CD image, application will ask for empty CD, but when user tries to burn DVD image, application will ask for empty DVD (same when copying disk). There should be also possibility to burn image to another image (e.g. cue to iso).
Easy multimedia codecs installation
Most distributions does not provide full multimedia playback capability out of the box. It's due to licensing problems. Although multimedia support can be installed manually from internet.
When user tries to play e.g. mp3 song application shows useless "Unsupported file" error message. Better would be showing dialog from which user can install appropriate codec:
Same principle can be used for not out of the box supported archives like rar.
Automatic pause of music playback
In same cases user mutes sound. In present every music player still plays music, but no one can hear it. Better will be pause music playback until user unmutes sound. Advantage is that user wouldn't miss a song :-).
Mute also means pause.
Notifications
Better current song notification
Notification of current song in Rhythmbox is very fine but can be even better. Also on mouse notification should be similar (and tooltip is ugly). Two different styles of notifications are not good.
New message notification with preview
Mail client should notificate user about new mail with short preview. Instant message client too. One image is better than thousand words:
Audio notifications
Some system notifications like, such as low disk space, updates available... should be audible. It's more human related and it is directed to the future. I know that there will be many problems in localization and there isn't perfect text-to-speech engine for most languages so human recorded messages messages will be fine although it will take a disk space.
Note: It is nice idea but spoken messages can be scary for many so beep may be enough.
Better notification for progress of long time operations
Some operations takes a long time to proceed. Typically downloading big files, burning CD, ripping music... In the meantime is user usually doing something another and window with long time operation is hidden. User need to switch windows if wants to known progress. Little improvement should be if program icon in taskbar shows progress, e.g.: - icon showing burning progress. This is per application issue.
Long time operations usually have progressbar. For this case could be usable showing progressbar on taskbar. Maybe this is not for perfect for every applications progressbar, so there should be widget which will be same as progressbar but which will cause showing status on taskbar. Here is obligatory image:
Tooltip over taskbar's button should also show percentage and estimated remaining time.
Look also on hagemaenner.de/stuff/index.php?fpp=10&did=6.
Editing root-owned files
When user tries to edit root owned file (e.g. from /etc/ directory) in Gedit or similar editor program should warn that the file cannot be saved and should offer to enter root password (or sudoing) or whether to open file read only.
Something like that:
if [ -w $1 -o -O $1 ]; then
/usr/bin/gedit $1
else
gksudo -m "To edit file $1 you need to authenticate" -k "/usr/bin/gedit $1"
fi
Spreadsheet improvements
Free office suits are nowadays usable but still needs lots of improvements. While wordprocessing abilities are sometimes better than MS Word, spreadsheets are worser then MS Excel.
Note: Issues in my suggestions also can be done in Gnumeric or Openoffice but no so productive.
Filtering lists
When you try to filter lists in Openoffice or Gnumeric you don't know how many rows you get. This is useful and valuable information. I suggest show this in status bar (like MS Excel) or in tooltip. Also aggregation functions (sum, average...) below sorted selection should show values only for visible part of list (maybe with comment on affected cell).
Moving selection
If you move selection in spreadsheet to cells containing data only you can do is replace data. Moving selection with some modifier (shift or ctrl) should move existing cells down or right like in MS Excel. This does not work in Gnumeric nor in Openoffice.
Drag-and-drop with context menu
I also miss (against MS Excel) contextual menu when dragging filling mark (little box in bottom right corner of selected cells) with secondary mouse button (in Linux is usually used middle button for that purpose - try dragging file in Nautilus with middle button). Through this menu in MS Excel I am able to fill only formats/values, make geometrical sequence... It's easy and fast. In Openoffice and Gnumeric it is not so straightforward.
Spellchecker
In some applications, e.g. Evolution and Gedit spellcheck's suggestions aren't directly in context menu (they are in submenu). This is not very convenient. Better is standard use as in Openoffice or Abiword.
Other question is why do we need 3 or more different spellcheckers (aspell, ispell, myspell)? One is enough! Please do something with it.
Integration
Integration between applications is need to make easy-to-use desktop. Functions in all programs should be integrated so fine that user will not even know if is running another program. Some examples: in addressbook I will see who is online and even more I will see that user who sent me mail is online; when I try to search something it will be done seamless with another application (e.g. Beagle) with same UI from all applications; when reading document in web browser it should be easy for user to start editing it with his/her favorite application (gedit, leafpad, scream, bluefish)...
When user see information that is possible to change, it should be possible to change it. Even if changing it is out of the scope of that application. At least there should be option (icon/button/link/context menu...) to invoke program that has ability to change it. Application should also give option to change properties that can change only administrator. In that case it should ask for administrator's password and property could be marked with keys or lock icon. Clicking on that icon will ask for password and unlocks property.
Every desktop tries for integration but all needs to do much more. They are just on the way.
Multimedia center
I am dreaming about one fine application that will integrate everything needed for home entertainment (music, video, tv, photos, audio and video chat). Something like Windows Media Center or even better like Apple's Front Row and iLife. It doesn't need to be single application but all applications should be very well integrated (user shouldn't know that uses different application) and simple enough to control with six-button Apple remote.
There are many perfect multimedia applications. But it's very hard to put Linux PC in living room and invoke and control them with remote control far from keyboard. What I meant is integrate them to something like MS's Media Center or Apple's Front Row applications. Easy is to play/pause/forward/rewind, hard is to choose what to play. Behind could still be Rhytmbox, Banshee, Totem, Mplayer...
Look also on www.apple.com/macmini/frontrow.html.
Cellphone/PDA synchronization
Synchronize cellphone with addressbook can be problem. There exist Multisync application but it works only with evolution and its use is not very convenient. The most comfortable way to synchronize is from addressbook not from external application. There should be also option for automatic synchronization whenever is cellphone in range.
Mail/IM client should be able send SMS through the connected cellphone.
Its still about desktop integration.
Multiple data reduction based on standards
In various application are used same data, e.g contacts in e-mail addressbook and contacts in IM addressbook. Sometime can this databases be synchronized, sometimes not. It is bad situation. Some standards how and where to store some type of information should be helpful. If it will be done you should use yesterday Kmail, today Evolution, and tomorrow Thunderbird with same data without need to export/import anything. But more important will be that if someone wants to write application which will use contacts it will work well with any mail client's addressbook (because it will be always the same addressbook).
Other example of applicable situations:
- addressbook - for Evolution, KMail, Thunderbird, Mutt, Gaim, Kopete...
- mailbox - for Evolution, KMail, Thunderbird, Mutt...
- IM archive - for Gaim, Kopete, Sim...
- calendar - for Evolution, KMail
- browser bookmarks - Firefox, Epiphany, Konqueror...
- music database - Rhythmbox, Banshee, Muine, Amarok, Songbird...
- video database - ???
- photo database
- thumbnails database (some applications does not use ~/.thumbnail/ folder)
- news feeds
- cddb (why do I have both ~/.cddb and ~/.cddbslave folders with same format)
Importing/exporting isn't best way to handle this data because it multiplies data and makes soon or later different versions of it. It's only poor's man solution.
Distribution vendors should settle standards and help modify existing applications. Some standards already exists (e.g. freedesktop.org's bookmark storage standard XBEL) but many applications (e.g. Firefox) doesn't use it. Respecting these standards should be condition to enter program into distribution's repositories (this need cooperation between distributions). If there wouldn't be pressure from at least five major distribution vendors (Ubuntu, Suse, Red Hat, Mandriva, Debian) there will be still mess.
One configuration place
When you look inside home directory for hidden files you realize that there is absolutely mess of configuration files. Better will be if all user configuration files will be inside one hidden directory e.g. ~/.config/ (or ~/.etc/).
One configuration database like gconf is important for enterprise use but some programs doesn't use it.
Distribution vendors should help polish this mess and path for as many applications as possible and not using other place should be also condition to enter program into distribution's repositories.
One proxy configuration
In my desktop I can setup proxy on several places - Gnome proxy, Firefox proxy, Synaptic proxy, environment proxy... Each of them is valid only for few applications and none of them is valid for whole system. Please, keep only one and make it valid everywhere.
Help making safer e-mail
SMTP server extension for digital signatures
SMTP server should store digital signature certificates for their users. This will affect also users' mail clients.
When user tries to configure his mail client, client will check used SMTP server if is able to store digital signature certificates. If yes mail user client should offer user to upload his certificate (e.g. issued by some certification authority) or to generate one (if no certificate exists). When someone tries to send mail and haven't recipient's certificate mail client should ask recipients smtp for certificate (if there is one) or to check stored certificate validity.
Based on who is issuer of certificate and if server has it's own trusted certificate it will be trusted or not trusted certificate/signature.
This should be new RFC to extend smtp server but it will help to make e-mail more secure. Upon a time (e.g. after two or three years of RFC validity) will be able for user to tell his smtp server not to receive unencrypted e-mails, which will help spam fighting (although it's not intended to that).
I am skeptic about this suggestion because it will require to upgrade mail clients for all users in all systems but RFC can be very strong (upgrading server will not be required but its users will not take advantage of this). Second point for skeptics is that for governments it will be harder to read everyone's e-mails and possibly will try to make this not valid.
Using SPF
Mail user client should also implement Sender Policy Framework (SPF). SPF is designed to verify whether SMTP server from witch we receive e-mail is approved sending mail for senders domain. If server is not approved to send mail for that domain it is safe to reject mail as a forgery.
Implementing SPF should be done in DNS server (and verifying in SMTP server) but is used rarely. Implemented SPF in mail client should make it more used. I suggest that mail client will check if sender domain is using SPF and if not (and if e-mail is not digitally signed) it could warn user that mail authenticity cannot be verified and why. This little notification will help forcing server administrators to implement SPF (it would be shame not using it).
Look also on www.openspf.org.
Linguistic search
Searching is usually done with exact word phrase. It should be fine if search engine (e.g. Beagle) will be able with help of spellchecker and guess all possible word variants (e.g plurals) and use them for search (thesaurus can help guessing synonyms). English grammar is simple other languages are often very difficult so use of spellchecker for guessing word variants is the easiest way.
In searchbox should be able use keyword lang:xx for using different language than user's environment.
Search also in archives
Standard search in Gnome lacks option to search inside archives (e.g. zip). One checkbox should be enough and user does not need to look for another program.
Beagle should allow searching archives too, if it does not yet.
Treat archives like regular folders
Archives are opening in applications like File Roller. Why? When you thing about you realize that archive is nothing less than special type of folder (and folder is special type of file with defined structure dependent on filesystem). But archives can be presented as compressed folders and opens in same windows as regular folders. Why do we need to confuse user with different windows?
Working with archives will be easy as in Midnight Commander or in Total Commander or in Windows XP. And if it will be implemented like VFS (zip://path/archive.zip/subdirectory/file) or as kernel driver it will be easier due to be transparent to any application.
Archive managers should be used only for creating archives with non common attributes, e.g. encrypted, splitted to multiple volumes (to fit DVD, CD, ZIP drive, Floppy)...
archive.zip
Note: When you try to drag big file out from the archive from File Roller you need to wait to fully uncompress file before releasing mouse button (once it started to uncompress it). It's bad and very annoying.
Extended filesystem attributes
Mainly but not only for enterprise use is important to support extended filesystem attributes such as encryption and compress file/directory flags.
For encryption it could be implemented by some symmetrical cipher with random key stored encrypted by user's password in /etc/shadow (or some new file). The only way how to get key will be successful login with proper password. When user change password, key will be reencrypted and all files with encryption flag will remain untouched.
Enabling transparent encryption will be as easy as making file read only and user will not need to have another password.
Especially for notebook users is useful to mark their home folders as private/encrypted and nobody can read their documents even if computer get stolen. How many users do that now and how many users will do that if it will be on one click? It can be easy and secure.
document.odt
(encrypted)
LUKS based on dm-crypt looks promising but still is not upstream and user still needs to know extra password even for not removable disks.
Look also on www.linux.com/article.pl?sid=06/03/13/1656228 and blog.fubar.dk/?p=64.
New authentication methods
Using password is boring. That's why users choose week passwords. New authentication methods can help solving this problem. I suggest this methods:
- passwords
- usb keys
- bluetooth cell phone id
- any combination of these
In user preferences should be ability to pair blootooth with user and to create authentication file and save it to usb disk. Authentication file will be based on asymmetric cryptography for combination of user and computer.
Imagine situation that you come to computer and you are logged in immediately after plugging usb key. Another example is that someone guess your password but cannot authenticate because your cell phone (bluetooth) is not near computer...
Note: Security could be also improved if user choose to encrypt his/her home folder and on usb key will be stored key to decrypt it. Data will remain private even if computer/notebook is stolen. If it has to be used it must be easy as one click.
Network settings
Network is Tux's home. In Linux can network be setup to everything you can imagine but Gnome's network settings dialog lacks some necessary options like easy internet connection sharing setup, firewall, bridge, ipsec, VPN...
For me is easy to setup NAT with iptables but home user doesn't even know what NAT is. Besides it can be as easy as clicking on one checkbox. System will setup NAT, enable forwarding and starts some micro DHCP (and potentially DNS server too). And other connected computers are ready for using shared internet connection without need of any configuration (using DHCP is simple).
It's always a good idea to have firewall enabled. Best way how to do it is from network settings. It simple tool for most common use which allows outgoing traffic and blocks every incoming connection except few checkboxes for most common services (samba, ftp, smtp, pop3..., other) per network device would be enough.
Naming connection ethernet is not user friendly. It should be named like Wired connection, Encrypted wireless connection, Modem connection... Two separate buttons for activate/deactive device are not necessary (only one is applicable in one time). Deactived connections should be shaded. Default gateway device should be renamed to default internet device (gateway) (I know it is less accurate but more understandable what it usually means)...
Part of the network profile should be also proxy settings to avoid need of setting proxy each time user change network profile (e.g. home and work network profile).
Articles like Zero to IPSec in 4 minutes shows why normal users (not powerusers) thinks that Linux is difficult. If it is so simple why there isn't easy configuration in network settings? Again there should be simple dialog (or wizard) which will help setup IPSec, VNP, bridge... in a while. Network settings dialog (and of course any other dialog too) will be perfect only when all users (even powerusers) will use it rather than powerful commandline tools (ifconfig, iptables...).
Continue stopped/broken downloads
Sometimes happens that you cannot download a huge file, e.g. network gets down or you have to shutdown/suspend/hibernate your computer. You become unhappy if you did not use download manager (e.g. d4x, wget...) and you had 90 % of 2 GiB file. Any browser should be able to restore connection and continue downloading only remaining 10 %.
Incremental upgrades
Upgrading system is very important. Why if there is little bug which change source only slightly I need to download entire application? In huge packages like Gnome or Openoffice it means to download tons of megabytes. Why not to update only affected file? I mean binary packages update and not source packages.
Exporting downloaded packages from upgrade
It should be possible to export packages downloaded when upgrading system to allow other computers on network to upgrade from this exported location to save bandwidth. For debian-based distributions it means to generate Packages.gz and export it with /var/cache/apt/archives/.
For enterprise use is also necessary some administrative console for managing users and computers with ability to install packages on remote computers (apt-put :).
Incremental upgrades will be also fine.
Global keyboard shortcuts
I like to set up global keyboard shortcuts (in Gnome) for many programs with use of windows logo key. Some of them works (e.g. [win]+[t] for open terminal) but some doesn't (e.g. [win]+[c] for calculator). I don't know why. Maybe there is possibility to set it up but I (user) expects functionality out of the box.
In application launcher properties should be also option for shortcut.
And one more question. Why is key with windows logo named like meta4, super, hyper...? For almost everyone it is simple win key. How many users know super key and how many users know win key?
Look also on marius.scurtescu.com/?p=62.
Note: this is more bugreport than suggestion.
Initial numlock state
This is obsolete. It seems to be done in Gnome 2.14. Thanks Gnome developers.
Initial state of numlock set to off is good initial state option for notebook users. But many other users wants to set numlock to on. In Gnome keyboard properties isn't option to set it up. Power user can install numlockx but many users doesn't know this program. Solution is simple. Add one checkbox into keyboard preferences or even better make system to remember numlock state between sessions.
Enable optical drive eject button
Lock optical drive eject button isn't good idea. If the button is there user expects it is working. If not user thinks that something is wrong!
Default should be to leave drive unlocked (e.g. sudo sh -c 'echo "dev.cdrom.lock=0" >> /etc/sysctl.conf'
) and handle button via HAL.
Hibernation and power management
Hibernation and power management need to improve. When I try to hibernate or suspend with nVidia binary drivers I cannot wake computer. It is possible to setup but again user expects it's working out of the box.
Another issue is weird behavior of hibernation. It shuts down my disk, after while it wakes, and only after that shuts down entire computer. Why needs my disk to be shut down twice?
Look also on wiki.ubuntu.com/NvidiaLaptopBinaryDriverSuspend and ubuntuforums.org/showthread.php?t=79295.
Note: this is more bugreport than suggestion.
Say goodbye to old technologies
I thing that we should stop using old libraries as fast as possible but we still have e.g. gtk1 and applications based on it. If we get them out of the repositories (or at least put them in new not supported repository obsolete) programmers will faster move to use new technology (in this case gtk2) and desktop will be more consistent. And if it is really obsolete and not developing program someone will write new one. Help them be ported or let them die. It's an evolution.
I also dislike even when I found that program is even using old gtk2 file open/save dialogs (e.g. gtraslator, inkscape...). It seems to be not professional to have two different dialogs for same thing.
Compiz/Xgl improvements
Compiz and Xgl are not ready for everyday use but I suggest few improvements.
First of all window switching is very messy. If there are many windows, the bottom one is not clear visible through semitransparent other windows. Please raise selected window or resize windows like in compose effect.
Other issues are problems with accelerated video playback, lack of on-top windows attribute, steeling F10 from Midnight commander...
Other
Shortcut [Alt]+[F4] on desktop should invoke shutdown/logout dialog.
Integrate mouse gestures to the whole desktop. Many users will not use it but for many it could be used like accessibility tool and on small portable devices (PDA's, tablet PC's, cellphones...) it will improve usability with stylus.
In windows can two windows be align side be side (horizontally or vertically) on right clicking on taskbar. Similar functionality is missing in Gnome.
Sizing buttons on gnome-panel should be better. Now is one button sometimes larger sometimes smaller even if there is enough space on panel. Button should have always same size if there is enough space and should shrink only if there is not enough space. Also too wide buttons like in XFCE panel are not good.
Services settings dialog should also contain some not installed services to be ready for installing them (like installing samba or nfs from Shared Folders dialog).
With Shared Folders settings you can easily setup samba share but who can access this share? No one and there isn't possibility in that GUI to change it. For newbies it's hard to solve.