Kate on Windows

NOTE: Please refer to Get It for up-to-date Windows versions

It took some time but here is now an installer for Kate on Windows.

First the proof 🙂

kate-installer
The installer
An example of what it can look like
An example of what it can look like

There are still some things that needs fixing. The current installer is built from git master and not from released packages so the translation stuff hat you usually get with the release packages are missing. So only partially translated. Another feature that I’m still missing is the spell-check. I need to still add a/hspell and language dictionaries to get that to work.

But for now you can try it out here: http://download.kde.org/unstable/kate/ (updated link)

And if you are eager to help here is my scratch repo for the build recipes:
git://anongit.kde.org/scratch/sars/kate-windows.git

And if you happen to want to have only one kate window for all the documents that you open, you might want to install DBus. This is the installer that I have tested with:
https://dbus-windows-installer.googlecode.com/files/DBus-Windows-Installer-1.4.1-2.exe
Happy Hacking!

Note: This would not have been possible without the big effort that the KDE on Windows people have made to get stuff to compile on Windows and keeping sure that it continues to compile. Thank you!

23 thoughts on “Kate on Windows”

    1. Those icons are actually hard-coded in c++… and yes I think we should fix it by using icons from the theme 🙂

      The icons are for : method, macro, struct, class and “class_int” whatever the last is 😉

      Thanks for the offer!

      BTW: Breeze icons git repository caused me some problems on windows as symbolic links don’t work properly there. I have had to create CMake code to duplicate some of the files. Any hints on how to work around that without manually adding copy commands?

      /Kåre

    1. It should be possible to install Kate on one computer and copy the install directory to another into a read-only folder, but Kate will try to write configuration data to the users configuration directory. I have not tried this setup tho.

      DBus might be a bit more difficult. You have to start the daemon. and the installer takes care of starting the daemon with the correct parameter. You can always try 😉

    1. Settings->Configure Kate->Appearance->Borders->Show scrollbar mini-map

      I usually also add “modification markers” and scrollbar marks” 🙂

  1. this is pretty awesome. Already using it. Do you think it would be possible to build Kmail as well? I am using the kolab version now, but a kf5 version would be super nice.

    1. The Qt windows integration plugin uses the native file dialogs that do not support remote protocols. So unfortunately not.

      There could be a possibility to create a platform plugin that uses the KDE file dialogs, but that is not the easiest and not a quick task to fix.

  2. Thank you so much for the windows build. I’ve tried many editors, but still kate turns out to be the most convenient one.

    Although, the current build sometimes hangs (using 1 CPU core and slowly eating up memory) — I still did not find the exact root cause for a bug report. Luckilky, that happens not too often.

    I found one strange issue, though. I use dokan-based sshfs on windows to edit remote files, and once I save a script file, its executable flag is cleared (I have to issue ‘chmod +x’ via ssh). Is there a way to stop kate from clearing the executable bit? I used notepad++ previously as an editor, and it somehow it just preserved that bit (the scripts remained executable, other files remained not executable).

    1. Unfortunately it might not be so easy to fix the executable bit 🙁

      Kate uses QSaveFile which saves to a new file and then replaces the original with the new one. Since rename usually is very close to atomic, the risk of loosing data in the file because of an interrupt while writing is almost 0.

      I suspect the problem is that the new file is created with windows permissions that dos not have executable bit and then renamed on top without the bit. Notepad++ probably writes directly to the original file and thus keeps the flags.

      1. Yes, looks like it’s the reason. Well… maybe I’ll resort to some inotify scripts that will `chmod +x` upon file change. Anyway, this whole toolchain (ssh → windows via dokan → editor) loses POSIX permissions by design, so it’s not quite unexpected, just a bit inconvenient.

  3. Another question 🙂 I want to create a custom bash indentation script. Where to place it?

    The official instructions are to place this script to “$XDG_DATA_HOME/katepart5/script/indentation/”. I tried all possible folders in “C:\Users\my_user\AppData\Local” where I found anything like ‘kate’ — but still there is no option ‘bash’ in the ‘Indentation’ menu. I directly defined XDG_DATA_HOME in the windows environment configuration dialog, but still no change.

    Also I did not find a place where the default indentation scripts reside — I’m ok to place my script there, I’m a localhost admin.

    Currently I’m trying to enable the dummy indentation script from the sample:

    var katescript = {
    “name”: “bash”,
    “author”: “gluk47 “,
    “license”: “BSD License”,
    “revision”: 1,
    “kate-version”: “5.1”,
    “required-syntax-style”: “bash”,
    “indent-languages”: [“bash”],
    “priority”: 0,
    };

    function indent(line, indentWidth, ch)
    { return -2; }

    1. Hmm… I rebooted the windows, placed the script in “$XDG_DATA_HOME/katepart5/script/indentation/” and fixed it source. After that, I can enable my new shiny indentation mode. It just seems the article on docs.kde.org is a bit misleading. Here is the fixed working dummy source:

      var katescript = {
      “name”: “Bash”,
      “author”: “gluk47 “,
      “license”: “BSD License”,
      “revision”: 1,
      “kate-version”: “5.1”,
      “indent-languages”: [“bash”],
      “priority”: 0
      };

      function indent (line, indentWidth, ch) {
      return -2;
      }

  4. when compiling, how to solve this problem:

    kate-windows\newbuild\I18n-prefix\src\I18n\src\kuitmarkup.cpp(308): error C2001: newline in constant

    1. Unfortunately Konsole is not ported to Windows 🙁 It would require quite a bit of work to get it working with CMD.EXE

Leave a Reply