Windows/Issues

From KDE Community Wiki
Revision as of 13:28, 24 September 2008 by *>Kraplax (corrected the "lnk launching")

Disabling automatic generation of Start Menu entries

KDE on Windows provides a (kded) plugin for automatic generation of Start Menu entries for KDE applications. If for whatever reason you want to disable it:

  1. edit (or create if it does not exist) kde4/share/config/kwinstartmenurc file (not that it has no name extension)
  2. place the following two lines in it:

[General] Enabled=false

You may need to stop (or kill) all the KDE processes in order to use the new setting. It is planned to add appropriate setting on the forthcoming KDE's "Integration" system settings page.

Launching .exe files

Yet KDE can't launch .exe files on Windows. This can be temporary fixed by editing mimetypes for KDE. Run in console window: kcmshell4 filetypes The SystemSettings module will appear. Find the filetype application/x-ms-dos-executable On the right in the Applications priority list there're no applications. Press the add button and in the dialog that pops up just enter cmd.exe /c No need to "Open in terminal". Select the cmd.exe inthe list of Application priority and chose "Edit" to check that everything is set up correctly. Go to "Application" tab and be sure to have "cmd.exe" in the "Name" field (actually, the name could be any of your taste) and "cmd.exe /c" in the "Command" field. Confirm everything and let the application update the mimetypes. If kcmshell4 crashes on first update of mimetypes - it's ok. It always crashes after adding first application.

Now, everything should work without restart. The same settings could be applied to the application/x-win-lnk to make windows link files be executable. Note that this makes link files beig interpreted as comon executable, so links to folders and to non-executable files will behave improperly.

File Locking - WerFault.exe

WerFault.exe is a process handling Windows Problem Reporting feature. Sometimes it may drive you crazy because it can lock your files, while you (or a KDE app) want to rename or remove. For me this was the case with files of KMail's MailDir storage.

If you're developer, you'll most obviously encounter many crashes with your developed applications. On any crash, annoying popup appears and says "This program has stopped responding" they it says something about Windows will try to find a solution and fix it. Of course this is a joke, so it is good to disable Windows Problem Reporting. On Vista: open the Control Panel, open the Problem Reports & Solutions applet, wnder the Advanced option you can disable problem reporting. For XP or Windows 2003, read here.

Killing KDE Processes

While it is easy to close applications as these have windows and have close buttons, there are (quite frequent) cases when you have to kill invisible "system" KDE processes. The two most important reasons are:

  • you want to (re)compile a library or application but you would not be able to install it because Windows locks write access to the binaries that are running
  • you need to restart dbus-daemon process in order to disconnect connections made by KUniqueApplication's; this is because of Windows-specific problem with not terminating them after the application stops working and/or gets killed itself

You can use taskkill command, which has quite complicated arguments. So you can define a kdekill command. Paste the following lines to a file like {KDEDIR}/bin/kdekill.bat:

@echo off taskkill /T /F /fi "imagename eq klauncher*" taskkill /T /fi "imagename eq dbus-daemon*" taskkill /T /fi "imagename eq kde*" taskkill /T /fi "imagename eq kded*" taskkill /T /fi "imagename eq kioslave*" taskkill /T /fi "imagename eq knotify*" taskkill /T /fi "imagename eq korgac*" taskkill /fi "imagename eq kded*" taskkill /T /F /fi "imagename eq kded*"

Then you can just type kdekill, to get result like:

SUCCESS: Sent termination signal to process with PID 832, child of PID 2372.
SUCCESS: Sent termination signal to process with PID 2692, child of PID 2580.
SUCCESS: Sent termination signal to process with PID 2684, child of PID 480.
SUCCESS: Sent termination signal to process with PID 480, child of PID 2580.
SUCCESS: Sent termination signal to process with PID 2692, child of PID 2580.

Feel free to extend it for your specific needs.

Note 1: klauncher sometimes refuses to terminate...

Note 2: we hope to address the above issues with KUniqueApplication and dbus-daemon in a cleaner and more automated way...

Ideas