{"id":8083,"date":"2004-10-20T13:11:48","date_gmt":"2004-10-20T11:11:48","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/20\/shaping-up-kde-all-the-way\/"},"modified":"2005-04-22T06:31:47","modified_gmt":"2005-04-22T03:31:47","slug":"shaping-up-kde-all-the-way","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/20\/shaping-up-kde-all-the-way\/","title":{"rendered":"Shaping up KDE all the way"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><img decoding=\"async\" class=\"alignleft\" src=\"\/wordpress\/wp-content\/20040622-kde.gif\" alt=\"\"\/>I think that by now everyone who touched <a title=\"K Desktop Environment\" href=\"http:\/\/www.kde.org\">KDE<\/a> can pretty much figure out how to customize the appearence and shortcuts.  Plenty of settings can be changed via <code>kcontrol<\/code>.  Numerous themes can be downloaded from sites like <a href=\"http:\/\/www.kde-look.org\">www.kde-look.org<\/a>.  All of these are pretty trivial.<\/p>\n<p>There is more to customizing KDE though.  Much more.  KDE has a very modular block-type design.  This is great because you can easily use these blocks to build something that you need and that noone has created yet or at least not shared in a way easily locatable.  I am talking about <code>kdialog<\/code> and <code>kdcop<\/code>.<\/p>\n<p><!--more--><\/p>\n<p><img decoding=\"async\" class=\"alignright\" src=\"\/wordpress\/wp-content\/20041020-do_you_love_me.png\" alt=\"Love question\"\/><\/p>\n<h3>kdialog<\/h3>\n<p><code>kdialog<\/code> is a very simple command line tool, which creates graphical user interfaces (GUI).  Say, you have a shell script.  It does not have to be shell.  It can be Perl, python, ruby or whatever else that you are comfortable with.  Now imagine that this script needs some input from the user.  You can go several ways from here.  You can present a command line way of choosing things (with arguments to your script that is).  You can create some text user interface.  You can program some GUI in programming language that supports it.  Or you can use <code>kdialog<\/code>.  <code>kdialog<\/code> allows you to use blocks of KDE interface like buttons, message boxes, menus, and whatever else is that you want.  Example:<\/p>\n<pre>\r\n[me@here somedir]$ kdialog --yesno \"Do you love me?\"\r\n<\/pre>\n<p>Such a simple command will present user with a standard KDE dialog box, which will have question &#8220;Do you love me?&#8221; written in it and two buttons marked &#8220;Yes&#8221; and &#8220;No&#8221; for the user to answer.   As soon as user will press any of these two buttons the <code>kdialog<\/code> will exit.  The return code will indicate which choice user has made.<\/p>\n<p>This is just one simple example of what can be done with <code>kdialog<\/code>.  You can get more options and help on parameters by running <code>kdialog<\/code> without any arguments.  There are also a few tutorials on the web.  One of the most popular ones is &#8220;<a href=\"http:\/\/developer.kde.org\/documentation\/tutorials\/kdialog\/t1.html\">Shell Scripting with KDE dialogs<\/a>&#8220;.<\/p>\n<h3>kdcop<\/h3>\n<p>And yet there is even more to learn.  <code>kdcop<\/code> is a mechanism which allows you to send messages to KDE programs which are already running.  Most KDE programs accept a lot of messages and can be pretty much controlled by <code>kdcop<\/code>.  Run <code>kdcop<\/code> without any arguments.  You will see a list of running programs in a tree like manner.  You can browse through the tree to see what programs accept which calls and which parameters you have to\/can pass.  Example: I do run <code>knotes<\/code> always.  I can create new notes from the command line (or from a script, or from an email, or whatever) like this:<\/p>\n<pre>\r\n[me@here somedir]$ dcop knotes KNotesIface newNote \"subject test\" \"body test\"\r\n<\/pre>\n<p>This command will create a new note with subject &#8220;subject test&#8221; and the body of the note will contain &#8220;body test&#8221;.  If you want to learn more about <code>kdcop<\/code>, there are a couple of tips <a href=\"http:\/\/wiki.kdenews.org\/tiki-pagehistory.php?page=Tips+and+Tricks&amp;source=17\">here<\/a>.  I could take it forward from there.  I am sure you&#8217;ll do so too.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I think that by now everyone who touched KDE can pretty much figure out how to customize the appearence and shortcuts. Plenty of settings can be changed via kcontrol. Numerous themes can be downloaded from sites like www.kde-look.org. All of these are pretty trivial. There is more to customizing KDE though. Much more. KDE has &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2004\/10\/20\/shaping-up-kde-all-the-way\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Shaping up KDE all the way<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62],"tags":[],"keyring_services":[],"class_list":["post-8083","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":11513,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/02\/20\/another-look-at-kde-4\/","url_meta":{"origin":8083,"position":0},"title":"Another look at KDE 4","author":"Leonid Mamchenkov","date":"February 20, 2009","format":false,"excerpt":"Last time I wrote about KDE 4, I said that it wasn't very usable for me.\u00a0 Recenlty, the much praised upgrade to KDE 4.2 became available via Fedora updates.\u00a0 So I got it and switched to KDE for a couple of days. What can I say?\u00a0 Quite an improvement indeed.\u00a0\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11309,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/06\/24\/there-is-hope-for-kde-4\/","url_meta":{"origin":8083,"position":1},"title":"There is hope for KDE 4","author":"Leonid Mamchenkov","date":"June 24, 2008","format":false,"excerpt":"Here is the story about openSUSE 11 with KDE 4.0.4 in KDE.news.\u00a0 Do you want to know what I thought was so special about it?\u00a0 I'll tell you.\u00a0 It features screenshots of the KDE desktop with some icons.\u00a0 Yes, this is the first bunch of KDE 4 screenshots with desktop\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2008\/06\/kde4-desktop-300x240.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":51,"url":"https:\/\/mamchenkov.net\/wordpress\/2002\/05\/21\/kde-vs-gnome\/","url_meta":{"origin":8083,"position":2},"title":"KDE vs. Gnome","author":"Leonid Mamchenkov","date":"May 21, 2002","format":false,"excerpt":"Once again I am willing to try out something bigger and slower then AfterStep. These time it is KDE version 3 that comes with Red Hat 7.3. I upgraded my KDE 2.2 from Red Hat 7.2 and the whole day spent already :) It runs much faster on my machine\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9052,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/06\/07\/kde-web-shortcuts\/","url_meta":{"origin":8083,"position":3},"title":"KDE web shortcuts","author":"Leonid Mamchenkov","date":"June 7, 2005","format":false,"excerpt":"There is a saying in Russia, that can be translated something like this: \"Live for a century, learn for a century.\" Some people go as far as add \"And you'll die a fool.\". Well, sometimes I feel that it's true as nothing else. I've learned another bit about KDE today.\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":8862,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/04\/22\/kde-pager-progress\/","url_meta":{"origin":8083,"position":4},"title":"KDE pager progress","author":"Leonid Mamchenkov","date":"April 22, 2005","format":false,"excerpt":"KDE pager is one of the biggest annoyances for people coming to KDE from AfterStep world. But the good news are here: the pager has gained drag and drop, so you can move windows between desktops using it. in fact, you can drag from the taskbar to the pager as\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7597,"url":"https:\/\/mamchenkov.net\/wordpress\/2004\/06\/22\/excellent-article-about-kde-at-slashdot\/","url_meta":{"origin":8083,"position":5},"title":"Excellent article about KDE at Slashdot","author":"Leonid Mamchenkov","date":"June 22, 2004","format":false,"excerpt":"Slashdot is running a post with a link to an excellent article about KDE. Be careful though - if you have a fresh version of KDE installed, this article might result in you playing with your desktop for the rest of the working day. :)","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=8083"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/8083\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=8083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=8083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=8083"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=8083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}