Planet KDE

Syndicate content
Planet KDE - http://planetKDE.org/
Updated: 10 hours 58 min ago

Interview with Rose Morgan

Wed, 2014-10-22 06:47
Would you like to tell us about yourself?

My name is Rose and I’m a 25 year old freelance artist from Melbourne, Ausfailia. I really like anatomy and medical science which is a theme among a lot of my work- or it’s at least inspired by it. I love videogames, nature, robots and old fashioned stuff. Etc etc. You can pretty much gather everything you need to know from my art itself; it’s very personal to me.

Do you paint professionally or as a hobby artist?

Professionally. Currently finishing a certificate IV in small business management so I can register as an official full time business. I’ve been doing art as part time work since 2005, though.

When and how did you end up trying digital painting for the first time?

I’ve drawn in MS paint since I was like ten. It was my favourite thing ever
as a kid haha. I thought it was magic! But, well, photoshop etc– I had been using that for a decade, before I found you lot at the start of this year.

What is it that makes you choose digital over traditional painting?

Less set up time, less messy, less expensive. Also its diversity is really wonderful.

How did you first find out about open source communities? What is your opinion about them?

Well, since I started using linux- about the start of this year. And I love them! I like how people work together and it has a sense of community rather than “here’s this stupidly overpriced piece of software and hahaha we don’t care about you or your opinions about it.”

How did you find out about Krita?

My boyfriend- he uses it, and got me onto it also. I’d hit an art slump and he suggested a change of scenery. It worked.

What was your first take on it?

It was weird since I’d never swapped from photoshop before and ten years is a long time to be using a piece of software- but it was intuitive enough that I didn’t take too long to get used to it. It’s the first program that’s led me away from PS so you must have done a lot right!

What do you love about Krita?

The brushes. My art instantly improved and stopped having that really glossed over digital look once I started using krita. That’s not to say I blame my tools for that- but the brush dynamics let me experiment more and get things looking less plastic. I never really experimented with custom photoshop brushes, so I like that krita just has a set of really amazing ones that come with it instantly. It never occurred to me to use custom photoshop brushes, which sounds dumb to me now but y’know… ~personal growth~ and all that.

What do you think needs improvement in Krita? Also, anything that you really hate?

I really really hate the text tool lol. It’s really clunky and hard to edit. The brushes also have slight pixelyness to them when resized small, which can be frustrating since I love my small details. But I found a workaround and use the already tiny hard brushes on low opacity. The sharpen tool could have more dynamic controls like gimp and photoshop’s one, also. I just duplicate the picture layer, sharpen it and put that layer on a lower opacity since the more customizable sharpen doesn’t produce the sort of sharpness I want. I wish I was more helpful on that point, I’m not sure exactly how to explain what I mean. ARGH, WORDS.

In your opinion, what sets Krita apart from the other tools that you use?

The brushes and the interface, definitely. I also like that it’s not bloated like photoshop is. It doesn’t have ten trillion things that I’ll probably never use. Krita gemini works super well on my surface pro 2, also– really impressed with it.

If you had to pick one favourite of all your work done in Krita so far, what would it be?

A really creepy portrait of one of my anthro characters as a human. Kind of.

What is it that you like about it? What brushes did you use in it?

I don’t normally draw “humans” (if you’d even call him that) and I usually have such a hard time getting my human characters to look right. But I’m really proud of his face there.

I also had a blast painting that wall, lol. I love that I can paint stuff like that without textures with the brushes krita has.

I used: block_mix_tilt, hairy_tapered, bristles_tapered, basic_circle_wet, airbrush_linear, splat_mix_cells. Plus a  metric buttload of overlay layers and emboss.

Would you like to share it with our site visitors?

Yes! The world needs more nightmare fuel.

Anything else you’d like to share?

You can find my work and links to everywhere I’m a regular at here: http://www.machinesbleedtoo.com. I’m really easy to stalk, I’m that username everywhere. Except for twatter. Damn it’s stupid username character limit, hisss hisssssss (I got machinesbleed there instead.) Oh, and, keep being awesome!

 

Categories: FLOSS Project Planets

Quick Update…

Wed, 2014-10-22 04:52

So… What’s been going on since our last update? Quite a lot! Boudewijn visited Latinoware 2014 and gave a presentation about free and libre graphics software, including Krita of course! You can download the slides here. It’s not yet known whether the presenations were recorded.

Wolthera visited Facts, where she demoed Krita on a big Yiynova tablet monitor. It’s a huge show, and there was a big audience for Krita. Lots of painting fun was had by kids passing by, too.

Next up will be two cool events in the United States, in Seattle, where Oscar Baechler will present Krita:

In Seattle, Oscar will be teaching Krita at SeaGL (The Seattle GNU/Linux Conference) on Friday, October 24th. He’ll show off the best features that set Krita apart. Then he’ll give a demonstration of using Krita in a painting workflow and comics workflow. There’s plenty to see at SeaGL, find out more here: http://lanyrd.com/2014/seagl/sdfgfw/

And in November, Oscar Baechler will demo Krita at USENIX/LISA expo’s KDE booth. He’ll be showing off techniques and features all day. Attending the expo floor is free. Register here: https://www.usenix.org/conference/lisa14/lisa-expo.

And right now, Dmitry is merging the liquify transform code to master… Expect new development builds by the end of the day! And there’s progress, though nothing usable yet, about loading and saving transparency masks and layer styles in PSD files.

Categories: FLOSS Project Planets

How could KTracks look like?

Wed, 2014-10-22 04:13

In a series of articles we illustrate the user centered design process from scratch, based on a still missing application in the KDE world: KTracks, an endurance activity tracker. In this part #3 we present mockups of the application.

Keep on reading: How could KTracks look like?

Categories: FLOSS Project Planets

Calligra Gemini - now also for Linux :)

Wed, 2014-10-22 02:41

Some people may remember earlier this year when Krita Gemini became (to my knowledge) the first open source software to become greenlit on Steam. For those who don't, yeah, that really happened ;) Krita Gemini was a project created in cooperation between the KDE community's Calligra team, the little software consultancy KO GmbH, and a large semiconductor manufacturer named Intel, who had some devices they needed to be able to show off. Krita Gemini is available on the Steam store, though not yet for Linux (as it turns out, Steam packaging for Linux is even more awkward than building stand-alone installers for Windows, an odd sort of situation for us used to sensible package managers)


Earlier this year (late April 2014) the team from KO and Calligra which built Krita Gemini had a teleconference with the Intel team, and we agreed that other applications would be well suited to a similar attention, and we came up with the idea of building Calligra Gemini, an application which would encapsulate Words and Stage, Calligra's word processor and presentation tool respectively, in the same way that Krita Gemini encapsulates Krita, with automatic switching between the existing desktop UX and a new touch friendly UX created for the purpose. Over the last little while, i've been posting builds on the project minisite (along with release notes and screenshots and such).


So now, with the initial work on that project reaching its conclusion, i decided that it was time to expose a few more people to it than what's been the case so far. So, over the course of this weekend, between making some tasty bread, cleaning and cooking dinner, i have been working on some packages for people who don't run Windows. Specifically, i have made a set of packages for openSUSE (just 13.1, in various guises, for now - others will follow), and they're available right here (and also shown on the project's minisite linked above)


Finally, i also released a short story i've been writing over the last couple of weeks (while waiting on the editors to get back to me on the novel i've also been working on). This is relevant here because i have been dogfooding; it was written entirely using Calligra Gemini, and the pdf and ePub versions were produced using the Calligra features as well. Finally, the work is stored in a git repository, which is also controlled by Calligra Gemini's support for using Git as cloud storage. The story is available as pdf and ePub on my deviantArt page :)

The word of the day is: Geiko
Categories: FLOSS Project Planets

Session notes/research for Linux Unplugged 63

Wed, 2014-10-22 00:56

Interview today for Linux Unplugged 63 which was fun! However we never discussed Kubuntu, which I understood was the subject. I had gotten together facts and links in case they were needed, so I thought I would post them in case anybody needs the information.
Created and supported by community: http://www.kubuntu.org/supportProfessional support for users: http://kubuntu.emerge-open.com/buySupport by Blue Systems to some developers & projects:http://www.blue-systems.com/ http://www.blue-systems.com/projects/Infrastructure support by Ubuntu, KDE, Blue Systems and DebianGovernance: Kubuntu Council https://launchpad.net/~kubuntu-council
How to contact us: kubuntu.org, freenode irc: #kubuntu (-devel), kubuntu-user list, kubuntu-devel list, kubuntuforum  - http://kubuntu.org  - http://webchat.freenode.net/  - https://lists.ubuntu.com/mailman/listinfo/kubuntu-users  - https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel  - https://www.kubuntuforums.net  - Documentation on KDE userbase: http://userbase.kde.org/Kubuntu  - Kubuntu in the news: http://wire.kubuntu.org/
* our "upstream" KDE is also making big changes, starting by splitting kdelibs into the Frameworks, and basing them on Qt5  - that work is largely done, although of course each library is being improved as time goes along. Releases monthly.  - We're writing a KDE Frameworks book; more about that at books.kde.org  - Developers: apidox at api.kde.org
* KDE has now released Plasma 5, based on those new frameworks  - that is nearly done, and 5.1 was released 15 Oct.https://www.kde.org/announcements/plasma-5.1/  - lots of excitement around that, because it looks and works really elegant, smooth and modern  - Riddell: 14.12 release of KDE Applications will be in December with a mix of Qt 4 and Qt 5 apps, they should both work equally well on your Plasma 4 or 5 desktop and look the same with the classic Oxygen or lovely new Breeze themes
*  so our upstream is up to lots of new wonderful stuff, including using CI too (CI: continuous integration with automated testing)
* meanwhile, bugfixes continue on KDE4:https://www.kde.org/announcements/announce-4.14.2.php
* Our base for 14.10 (codename Utopic Unicorn) is that stable KDE platform.* At the same time, we are releasing weekly ISOs of Plasma 5, to makeit easy for people to test  - http://apachelog.wordpress.com/2014/10/17/plasma-5-weekly-iso-revisited/ - Riddell: We're releasing a tech preview of Kubuntu Plasma 5 as part of 14.10 for people to test. I'm using it daily and it's working great but expect testers to be competent enough to check for and report beasties
* we're following along to KDE's CI effort, and doing that with our packages  - see #kubuntu-ci IRC channel for the reports as they are generated - Riddell: gory details at http://kci.pangea.pub/ - packages built constantly to check for any updates that need changed
* Our new packaging is now in Debian git, so we can share packaging work  - as time goes on, all our packaging files will be there  - tooling such as packaging scripts are being updated  - Debian and Kubuntu packagers will both save time which they can use to improve quality
* moving from LightDM to SDDM (Simple Desktop Display Manager), KDE/Qt defaultgraphical login program
* moving to systemd replacing upstart along with Debian and Ubuntu at some point in the future
* moving to Wayland when it is ready along with KDE (Kwin); now on xorg windowing system. We do not plan to use Ubuntu's Mir
* Testing until release (please!) on the 23rd:  - http://iso.qa.ubuntu.com/qatracker/milestones/325/builds/82050/testcases  - http://iso.qa.ubuntu.com/qatracker/milestones/325/builds/82052/testcases
* Testing Plasma 5:http://apachelog.wordpress.com/2014/10/17/plasma-5-weekly-iso-revisited/(fresh install)  - https://community.kde.org/Plasma/Packages#Kubuntu (upgrading)
* Another way we stay close to KDE is that since Ubuntu stopped inviting community members to participate in face-to-face meetings, we have a Kubuntu Day with Akademy, KDE's annual meeting. Thanks to the Ubuntu Contributors who paid the travel costs for some of us to attend
Qt Free: http://qt-project.org/wiki/The_Qt_Governance_Model
--Thanks to Jonathan Riddell for his clarifications and corrections

Categories: FLOSS Project Planets

Joining Kolab Systems

Tue, 2014-10-21 06:45

I've been a long time fan of Kolab, the free software collaboration and groupware system. I have recommended it, and even helped deploy it a few times, since it launched some ten years ago. I used it back then with KDE's Kontact, and still do to this day.

Kolab interested me because it had the opportunity to join such key free software products as LibreOffice (then Open Office) and Firefox in terms of importance and usage. Think about it: in a professional setting (business, government or educational) what key software tools are universally required? Certainly among them are tools to read and edit office documents; a world-class web browser; and collaboration software (email, calendaring, contacts, resource booking, notes, task lists, file sharing ...). The first two were increasingly well covered, but that last one? Not so much.

And then Kolab walked on to the stage and held out the promise of completing the trifecta.
However, there were years in between then and now when it was less obvious to me that Kolab had a glowing future. It was an amazing early-stage product that filled a huge gap in the free software stack, but development seemed to slow up and promotion was extremely limited. This felt like a small tragedy.

So when I heard that Kolab Systems was launching back in 2010 as a company centered around Kolab, I was excited: Could this be a vehicle which tows Kolab forward towards success? Could this new company propel Kolab effectively into the market which is currently the domain of proprietary products? Only time would tell ... I knew the founders personally, and figured that if anyone could pull this off it would be them. I also knew that they would work with freedom and upstream communities as priorities.

Four years later and Kolab Systems has indeed been successful in bringing Kolab significantly forward technologically and in adoption. Today Kolab is more reliable and has a spectacular set of features, thanks to the solid engineering team that has come together with the help and support of Kolab Systems.

Their efforts have also resulted in Kolab being used more: Fortune 100 companies are using Kolab, the city of Munich is currently migrating to it, there are educational systems using it and, of course, there is My Kolab which is a hosted instance of Kolab hat is being used by an ever growing number of people.

Kolab Systems has also helped the free software it promotes and relies on flourish by investing in it: developers are paid to work on upstream free software such as Roundcube and Kontact in addition to the Kolab serer; community facilitation and public promotion are in focus ... there's a rather nice balance between company and community at play.

There is still a lot to do, however. This is not the end of a success story, perhaps only the end of the beginning. So when the opportunity arose to join Kolab Systems I didn't have to think twice. Starting this month I am joining the Kolab Systems team where I will be engaged in technical efforts (more so in the near term) as well as business and community development. I'm really excited to be joining what is a pretty stellar team of people working on technology I believe in.

Before I wrapping up, I'd like to share something that helped convince me about Kolab Systems. I've known Georg Greve, Kolab Systems' CEO and Free Software Foundation Europe founder, for a good number of years. One afternoon during a friendly walk-and-chat in the countryside near his house, he noted that we should not be satisfied with just making software that is free-as-in-freedom; it should also be awesome software, presented as something worth wanting. It is unrealistic to expect everyone to use free software solely because it is ethically the right thing to do (which it is), but we might expect people to choose free software because it is the most desirable option they know of. To phrase it as an aspiration:

Through excellence we can spread freedom.
I'll probably write more about this philosophy another time, as there are a number of interesting facets to it. I'll also write from time to time about the the interesting things going on in the Kolab world .. but that's all for another time. Right now I need to get back to making notes-on-emails-sync'd-with-a-kolab-server work well. :)

Categories: FLOSS Project Planets

Libinput integration in KWin/Wayland

Mon, 2014-10-20 08:27

Today I pushed my outstanding branch to get libinput support into kwin_wayland. Libinput is a very important part for the work to get a full Wayland session in Plasma which means we reached a very important milestone. As the name suggests it allows us to process input events directly. KWin needs to forward the input events to the currently active application(s) and also interpret them before any other application gets them. E.g. if there is a global shortcut KWin should intercept it and not send it to an application.

Why libinput integration in KWin?

KWin/Wayland already supported input handling by being a Wayland client and connecting to a Seat. But especially for pointer events this was not sufficient at all. We have quite some code where we warp the pointer and Wayland doesn’t support this (and shouldn’t). Warping the pointer is normally considered evil as it can introduce quite some problems if applications are allowed to warp the pointer. E.g. it can create security issues if you start typing your password and a malicious applications warps the pointer to trick you entering your password into a password field of the malicious application. Also from a usabililty perspective it can be problematic as it makes the system behave in an unpredictable way.

On the other hand if the application is a window manager/compositor the need for warping cursors arises. For example the screen edge handling pushes the cursor slightly back which needs cursor warping. Or you can move a window with the cursor keys (hold Control key to have very precise moving) and in these cases we need to warp the pointer. With libinput this is possible again as KWin gets put in control of the input events directly. It completely bypasses the currently used Wayland compositor.

Libinput is also an important piece in the puzzle for a full Wayland session which does not rely on another Wayland compositor. So far KWin/Wayland can only be used in a nested scenario – which is important for development and interesting new possibilities like the idea for a SoK project – but we also want full support without the need for a Wayland session. This means we need to handle input (which libinput does) and need to interact with DRM directly. DRM support is still missing. This could be an interesting GSoC project next year

The merged implementation does not support all of libinput yet. Most important touch screen support is omitted as I don’t have a touch enabled device. I plan to sit down with fellow KDE developers who have a touchscreen enabled device and implement that part together. Also I will contact the VDG to define some global touch gestures to interact with the system (I’m quite interested in having a touch gesture to activate Present Windows). There’s lots of work to be done here and I would welcome any helping hand.

Security challenges

Processing input events directly comes with a slight problem, though: one needs to be root to read the events. And that’s obviously an absolute no-go for KWin. KWin may never ever be executed with root privileges and also not an suid which drops privileges again (which also wouldn’t help in that case but so what). The application has not been designed for running as root. The same is the case for Weston and obviously I looked at how it’s solved there and there is a very neat solution to support the use case we have in logind. The session controller can ask logind to open devices and logind provides a file descriptor to the opened device. In addition logind automatically takes care to close the file descriptors when a VT switch happens, which is extremely convenient for the use cases of Wayland compositors. So obviously I went for this solution as all it needs is connecting to very few D-Bus calls. This means the libinput integration in kwin_wayland will have a runtime dependency to a logind D-Bus interface. Of course this does not affect kwin_x11, neither does it affect kwin_wayland without libinput integration, but of course without libinput you won’t get support for all features. There is one caveat though: logind will blank the VT when the session controller goes away. So make sure to not run kwin_wayland with libinput support on your primary X session. Because of that libinput support must be explicitly enabled with the –libinput command line switch of kwin_wayland.

Current state and downsides of libinput and logind

As libinput does not yet have a stable release, the dependency is still optional and it’s possible to build kwin_wayland without libinput support. This is currently very important for the non-Linux operating systems, which might want to provide kwin_wayland, as libinput only supports Linux.

I hope that libinput will become available on other platforms. At XDC during the BSD presentations I heard at least one presenter touch the topic. So I’m optimistic that in the long run this will happen as we also see that DRM and KMS is nowadays in quite a good shape on the BSDs. For KWin development it’s of course important that we have only one library to interact with. Otherwise it means platform dependent code which is hard to develop and extremely difficult to test for the main developers not using such a platform. So if you want to get kwin_wayland on non-Linux, please consider putting the energy into getting libinput working (challenge is udev) as that will help all systems and not just KWin. After all we want to stand on the shoulders of giants

Logind is in a similar situation. It is developed as a component in systemd, which isn’t available on all systems which run KWin. Luckily we don’t depend on logind directly but only use a subset of a well defined D-Bus interface and that interface can be provided by other tools as well. Something like that is already being worked on for the BSD’s.
Like with libinput, I would much prefer to keep KWin lean and efficient and not complicate the code base and development by including libraries for specific platforms or having security relevant code around. As written above: using suid wrappers is very much a no-no to me. But of course it would be possible to implement the subset of the D-Bus in an independent project and provide it. KWin would happily use it, it just needs someone to write the code. So if enough people care, I’m quite sure that there will be a developer stepping up and writing the code.

I decided to put out a small FAQ here for those who have questions about the implications of the above:

FAQ Does that mean KWin (and Plasma) depend on systemd?

No.

But it depends on logind?

No. It uses one D-Bus interface provided by logind. It doesn’t care which program is providing this D-Bus interface. It can be logind or logind-shim or the implementation being worked on for the BSDs. Even a small binary just providing the used D-Bus interfaces would work.

You should not use logind, there must be a different solution!

I’m sorry I did not find any solution which was as efficient and secure as the one provided by logind. Of course there are solutions like weston-launch, but they introduce a lot of complexity – both on the coding side and on the installation side. As such a solution would need to be suid, I’m very reluctant to the idea. We shouldn’t introduce such possible security risks, if there are better solutions available. Logind is simply providing a feature which is needed by kwin_wayland.

Does that affect KWin on X11?

No, that only affects kwin_wayland.

But there is no logind for the BSDs! So I won’t be able to run kwin_wayland on BSD systems?

Unfortunately the fact that logind is missing is least of your problems on BSD. Logind support is only needed for libinput which right now is not available on BSD. The kwin_wayland binary on BSD will not try to interact with logind. I’m sorry I don’t have a solution for the input stack on BSDs. I really hope the BSD developers can come up with a solution for this as we don’t have the resources to build a separate input solution for one platform.

How can I change KWin to not use logind?

As I noted, it is important to me that KWin is secure and that the code base is as easy to understand as possible. I don’t like the idea of having ifdefs all over the place and multiple solutions as that results in bitrot. When I pushed the libinput change it directly failed to build on the CI system as the ifdefs introduced a variation which I couldn’t test on my system. Each ifdef and each platform-specific solution increases the development and maintenance costs significantly. This means that I will only accept patches which don’t introduce the above mentioned problems. Preferrable a small wrapper binary could provide the needed D-Bus interface for KWin and other applications which need this functionality. This would not need changes in KWin at all and would be from my perspective the perfect solution.

Why won’t you implement such a wrapper binary?

Honestly there are a million things I would do if I had time, but a day has only 24 h and I have to prioritize my work. Just check the Wayland TODO list for what we all need to do to get KWin/Wayland ready. Why don’t you open your editor and get some work done?

But if KWin uses logind, Slackware will drop all of KDE!

Yes, I have read that (see comments). Luckily the situation for Slackware is similar to the BSDs: it doesn’t matter right now. Slackware doesn’t provide Wayland packages yet, so the logind support won’t be used as there is no kwin_wayland binary which could be built. And if enough people care, as I said, one or more of them can write the wrapper binary and KWin and other compositors will work just fine.

How can i help?

Best by writing code See the TODO list I linked in an above answer. Also it would be good if someone documented the steps to get kwin_wayland running and how to develop on it cough.

Categories: FLOSS Project Planets

Forthcoming Kubuntu Interviews

Mon, 2014-10-20 06:36

Kubuntu 14.10 is due out this week bringing a choice of rock solid Plasma 4 or the tech preview of Kubuntu Plasma 5.  The team has a couple of interviews lined up to talk about this.

At 21:00UTC tomorrow (Tuesday) Valorie will be talking with Jupiter Broadcasting’s Linux Unplugged about what’s new and what’s cool.
Watch it live 21:00UTC Tuesday or watch it recorded.

Then on Thursday just fresh from 14.10 being released into the wild me and Scarlett will be on the AtRandom video podcast starting at 20:30UTC.Watch it live 20:30UTC Thursday or watch it recorded.

And feel free to send in questions to either if there is anything you want to know.

 

Categories: FLOSS Project Planets

What do you require from KTracks?

Mon, 2014-10-20 02:59

In a series of articles we illustrate the user centered design process from scratch, based on a still missing application in the KDE world: KTracks, an endurance activity tracker. In this part #2 we talk about requirements.

Keep on reading: What do you require from KTracks?

Categories: FLOSS Project Planets

KDE Telepathy 0.9.0 Released

Sun, 2014-10-19 13:54

Today we released the 0.9 series of KDE Telepathy, a multiprotocol instant messaging client for Plasma.

Amongst the many bugfixes the following features are worth highlighting.

OTR Encryption

One of the most recurring feature requests we've seen over the years was OTR encryption. OTR builds an extra level of encryption on top of the existing protocol embedding all data in the mesasges themselves. This prevents any potential sniffing from the server as well as providing perfect forward secrecy and non-deniable authentication

This summer Marcin Ziemski volunteered to step up to the task and implemented full support for OTR3, including shared secret authentication and key management.

A full video can be seen here

Group Chats

All aspects of group chats recieved a massive overhaul, there is a new join chat dialog, one can stay logged into a room when you close the window and we've redesigned the main chat window to be easier when talking to multiple people.

Video Calls Revisited

Video calls have had both a technical and UI overhaul. Diane Trout ported a lot of QtGstreamer and the CallUI to GStreamer 1.0.

This port allowing us to future proof for the new technologies and have more chance of working calls.

In addition Ekaitz Zárraga has rehauled the UI bringing it into the 21st century which can be seen in the screenshot.

We encourage you to try it out. Depending on your and your partner's setup, you might now have a good video chat experience. For best results use a real jabber server (Not Facebook or Google!) the same client and be sure to have all GStreamer codecs installed.

Speed Improvements and Bug Fixing

Naturally the release brings a slew of bug fixes and improvements not listed here. Specificially the contact list has undergone extensive profiling and optimising since 0.8.

Fundraising

You may notice some of the features were highlighted in the report from our previous sprint report. If you like the new features be sure to contribute to our winter fundraiser so we can keep doing sprints in future.



Categories: FLOSS Project Planets

Yakuake Skins

Sat, 2014-10-18 18:43
Yakuake

is a drop-down terminal for Linux. You can drop-down the terminal via the F12 key.

Settings

Es you can see in the settings you have connection via GHNS (http://kde-look.org/index.php?xsortmode=high&page=0&xcontentmode=87) so the easiest way to get a new skin is the Get New Skins search.

But how can you make your own skin?

Make your own skin

A Skin is basically a set of PNG files and a text file naming them along with setting a few properties like image positions and colours. It’s a quite restrictive format, there is no support for vector data or scaling, but on the other side you can change a lot.

Skills

what do you need to make your own skin:

  1. Installed Yakuake for testing (and using)
  2. an Idea
  3. Inkscape (or a image program for the .png files)
Sample

When you go to the Opendesktop.org page in the section Yakuake skins you can grab a skin of mine like

why mine? Because in the download archiv file the original svg files are also included. So it is easy to make new skins with Inkscape.

Breeze-Thin

Breeze Standard

You have to move the files to ~/.kde/share/apps/yakuake/kns_skins/ also when you download skins via GHNS they are located there.

Files
  1. title folder and title.skin
  2. tabs folder and tabs.skin

the setting of the title (window decoration) and tabs bar are located in the two .skin files.

title folder and title.skin [Description] Skin=Breeze-Thin Author=Andreas Email=mail@mail.com Icon=/icon.png

Skin name and icon for the skin selection in the application settings.

[Border] red=61 green=174 blue=233 width=0

When you’d like to have a border all around the terminal window. With width=0 there will be no border used.

[Text] x=25 y=0 red=239 green=240 blue=241 text=Drop-Down Terminal

Window decoration text with colour and position.

[Background] back_image=/title/back.png left_corner=/title/left.png right_corner=/title/right.png

the back_image is important, because the image heigh is used for the title height. So I use in the Breeze-thin theme NO background. I made a transparent (99 % transparent) png file with a size of 1×12. So the title bar is 12 px height. For the left_corner I made also a 99 % transparent png file.

[FocusButton] x=60 y=0 up_image=/title/focus_up.png over_image=/title/focus_over.png down_image=/title/focus_down.png [ConfigButton] x=40 y=0 up_image=/title/config_up.png over_image=/title/config_down.png down_image=/title/config_down.png [QuitButton] x=20 y=0 up_image=/title/quit_up.png over_image=/title/quit_down.png down_image=/title/quit_down.png

On the right area there are three buttons possible. The focus, configure and quit button

The x and y coordinate is for the position. I made every “icon” 20×12 so that the icons are not moved in y direction (y=0) if you have icons without padding than you can use the coordinate for the padding. I’d prefer to make every png file the right (back_image) height. I prefer to made the icons without background, because the background will be used from the back_image. At this three icons I use a background because I made the icons 20 px width so that when you don’t hover the x icon the quit option will also be selected.

For up, over and down you can use different icon files like

  • up
  • over
  • down
tabs folder and tabs.skin [Description] Skin=Breeze-Thin Author=Andreas Email=home@mail.com Icon=/icon.png

Same as in the title.skin file.

[Background] back_image=/tabs/back_image.png left_corner=/tabs/left_corner.png right_corner=/tabs/right_corner.png

The back_image is important for the tabs height so when you want to change the height, you have to change the back_image file. As in the title bar left and right_corner is supported (for rounded- or special corner styles).

[Tabs] x=20 y=0 red=239 green=240 blue=241

Colour of the tabs text. You can only choose one colour. So when you have different colours for the selected (dark) and unselected (light) tabs you have to choose a colour where you can read the text on both tabs. The x and y position if for the starting point of the tabs (20 px from the left border).

separator_image=/tabs/separator.png selected_background=/tabs/selected_back.png selected_left_corner=/tabs/selected_left.png selected_right_corner=/tabs/selected_right.png unselected_background=/tabs/unselected_back.png unselected_left_corner=/tabs/selected_left.png unselected_right_corner=/tabs/selected_right.png

on the tabs bar you have

  1. selected tab
  2. unselected tab
  3. separator

You can choose the

  • selected_background
  • selected_left_corner
  • selected_right_corner

with the left and right corner you can also make something like an firefox australis theme. If you don’t use the left and right_corner the tabs are smaller, because the left and right_corners are added to the tabs width. If the png files don’t have the same size than the back_image file, the back_image file will be shown on the bottom area. so the starting coordinate is the tabs-top area.

the unselected tab support in the yakuake 2.9.9 version only the unselected_background png file. So it is not possible to have the rounded corners, … at the unselected tabs. In future releases the unselected_left_corner and unselected_right_corner are supported.

prevent_closing_image=/tabs/lock.png prevent_closing_image_x=0 prevent_closing_image_y=0

When you use the right mouse on a tab the prevent_closing_image will be shown. I use the same size as for the back_image so x and y are 0. The background of the lock.png file is transparent.

[PlusButton] x=0 y=0 up_image=/tabs/add_up.png over_image=/tabs/add_down.png down_image=/tabs/add_down.png [MinusButton] x=20 y=0 up_image=/tabs/close_up.png over_image=/tabs/close_down.png down_image=/tabs/close_down.png

The plus button is on the left side and the minus (close terminal) on the right. As always I use the icon hight from back_image. Up, over and down is supported.

No title bar

Remove the Icon sections (FocusButton, ConfigButton, QuitButton). You need only the [Background] section. for the back_image you use a 1×1 large transparent (99%) png file.

SVG -> PNG

I made svg files and with a short script which I located in ~/bin I generate from the svg files png files which will than be used for the skin.

find -name "*.svg" -o -name "*.SVG" | while read i; do     inkscape -f "$i" -e "${i%.*}.png" done Questions

If you need something please ask at Opendesktop.

Thanks for reading, Andreas


Categories: FLOSS Project Planets

Upcoming KDE Applications 14.12 release prep

Sat, 2014-10-18 16:22

Hello,

In preparing for the upcoming releases of KDE Applications 14.12 (2014 Month 12) I realized the other day that we have an interesting situation.  For Qt4 based applications there's libkdeedu which contains the kvtml parsing and manipulating code and also a handful of .kvtml files that KAnagram and KHangMan use to get their word lists. KAnagram has been ported to Qt5 and KDE Frameworks for some time now, and will have it's first Qt 5 based release at the end of this year. It uses libkeduvocdocument which was ported to Qt 5 also at about the same time this year. libkeduvocdocument uses Qt 5 and KDE Frameworks 5, and also ships the same handful of kvtml files that libkdeedu ships. (libkdeedu has been split for the Qt 5 based releases) KHangMan hasn't yet been ported to frameworks and Qt5 or at least the port isn't stable yet, so it will depend on libkdeedu still, as will KWordQuiz and Parley from what I understand. So we have two libraries that ship the same files, makes them not coinstallable. So we'll be moving the kvtml files out of the libraries and into kdeedu-data soonish to solve this problem. The moral of this story is to look around, see what will be released using Qt5 in the upcoming release, and what will be using Qt4 still. https://community.kde.org/Frameworks/Application-release-status-December-2014 may help also. If you maintain an application and haven't put your application on that page under the Qt4 or Qt5 tables yet, please do, the more we coordinate, the better this release will be.

Thanks, and keep up the good work all.

Categories: FLOSS Project Planets

Support Kate and KDE by Donating Money

Sat, 2014-10-18 08:46

Since some weeks, the Kate homepage features a way to support Kate and KDE by donating money to the KDE e.V., see this screenshot:

The reason for showing a donation pane might not be obvious, since the KDE project is open source and mostly developed by lots of contributors in their free time. So why do we need money?

The KDE project, and thus also the Kate project, highly depends on getting financial support. For instance, our IT infrastructure running the KDE websites and all sorts of services such as mailing lists or hosting KDE’s source code along with the version control systems rely on it. All these services need money. And here is where the KDE e.V., KDE’s non-profit organization comes into play. KDE e.V.’s purpose is the promotion and distribution of free desktop software in terms of free software, and KDE in particular, to promote the free exchange of knowledge and equality of opportunity in accessing software as well as education, science and research.

For instance, the KDE e.V. supports developers through travel reimbursement, such that contributors that could otherwise not attend developer meetings are still able to take part. These developer meetings have proven to be immensely useful to the success of KDE, and typically a developer sprint moves a project forward by magnitues, as you can see in the list of past developer meetings. Next to that, there is also the annual KDE conference where all KDE contributors and users are invited to discuss and shape the future of KDE. Next to other events, KDE is usually also present at fairs such as the CeBit or LinuxTag. There, we also need material and support to make a good presentation of KDE. Another significant job of KDE e.V. is to support KDE legally. For instance, the KDE e.V. is maintaining an agreement with the owners of Qt in terms of the KDE Free Qt Foundation, which potentially is also of high interest for companies using Qt.

Several days ago we also started the KDE End of Year 2014 Fundraiser, through which we hope to get a significant amount of money that we can plan with in the next year.

Please, if you use KDE at home or in your company, please make a donation. And if you are a company, please consider being generous! Your support is much more needed and appreciated than you might think! Thanks you!

Categories: FLOSS Project Planets

One thing that would make KDE better

Sat, 2014-10-18 07:14

I went to Akademy with two notebooks and a plan. They should both be filled by KDE contributors with writing and sketching about one thing they think would make KDE better. Have a look at the result:

The complete set is in this Flickr album. Check it out! What’s your favorite? What’s your one thing – big or small – that would make KDE better?

(Thanks to Fabrice for the idea.)

Categories: FLOSS Project Planets

Facebook library in KF5: coming soon!

Fri, 2014-10-17 15:11

Today I started porting KDE's own fully asynchronous library which talks to Facebook - LibKFbAPI - to Qt5 and Frameworks 5, which should bring back the Facebook Akonadi resource for Akonadi-Qt5 and make it available for Plasma 5, including Facebook Contacts, Facebook Events, Facebook Posts and Facebook Notifications (displayed as regular desktop notifications).

So far the library can connect to Facebook using KAccount's data (more about KAccounts next week) and retrieve logged-in user info.

I expect the port to go quite quickly and the Facebook Akonadi resource should follow up shortly. I'm considering making KFbAPI part of the KDE Frameworks collection, but as it uses some (possibly unnecessary) kdepimlibs bits, it might wait a bit for that to split up and join Frameworks too.

That is all.

Categories: FLOSS Project Planets

What is KTracks?

Fri, 2014-10-17 12:06

In a series of articles we illustrate the user centered design process from scratch, based on a still missing application in the KDE world: KTracks, an endurance activity tracker.

Keep on reading: What is KTracks?

Categories: FLOSS Project Planets

Plasma 5 Weekly ISO Revisited

Fri, 2014-10-17 08:38

I am proud to announce that Plasma 5 weekly ISOs have returned today.

http://files.kde.org/snapshots/unstable-i386-latest.iso.mirrorlist

Grab today’s ISO while it is hot. And don’t forget to report the bugs you might notice.

Plasma 5 weekly ISOs bring you the latest and greatest Plasma right from the tip of development.

As some of you might have noticed the previous Plasma 5 weekly ISOs stopped updating a while ago. This was because we at Blue Systems were migrating to new system for distribution level integration. More on this to follow soon. Until then you’ll have to believe me that it is 300% more awesome :)

Categories: FLOSS Project Planets

API Design Part 2: Impact on the safety

Fri, 2014-10-17 05:19

Continuing on the topics I talked about at this year’s aKademy conference.

Most of the things I want to write here are not new to people who are immersed in C++ and follow the books/presentations by Alexandrescu, Sutter, and others. But, I’ve found that in our Qt-sub-culture, it is often not the case.

Qt is very good at hiding the ugly parts of C++, but at the same time, it sometimes hides too much.

Memory safety

One of the first things you learn in Qt is about the object trees and ownership where the parent obect conviniently destroys its children on its destruction.

IMO, this is one of the nicest features of Qt. But, sometimes, it tends to provide a sense of false security. As trivial example, imagine the following:

QThread *thread = new QThreadDerivedClass(this);
thread->start();

It looks nice – we are creating a new object, we pass it a parent (this), so we do not need to worry about its destruction ourselves. The issue is that the parent is often a long-lived object like a QCoreApplication or a main window. This tends to end up in the thread object not being destroyed until the application has been terminated.

Now imagine that the above object is an image cache, and you’ll have a quite substantial memory leak.

The parent-child ownership is a silver bullet in a lot of cases, but not all.

What does a pointer mean?

So, lets return to the topic at hand – API design. One of the biggest problems when using a new library is what the following declaration means:

SomeType * someMethod();

Namely, the question here is what does the ‘SomeType *’ mean. It can mean quite a few things:

  • (static) singleton instance
  • should be disposed by the user
  • creator-owned, creator disposes of it
  • an optional value? (for example, parsing a number from a string could return a null if parsing failed)
  • position in an array? (this one is rarely used nowadays, we have iterators for that case)

The problem here is deducing who owns the returned object, and are we guaranteed to get a non-null result at all. It can not be deduced without reading the documentation, and it could and should be.

1. Singletons

Since a singleton should be always present, there is really no point in making it a pointer at all. Implementing a proper singleton should be as easy as:

SomeType & instance() { static SomeType s_instance; return s_instance; }

It is thread-safe (in C++11), its declaration clearly states that it returns a non-null object, and an object with a long lifetime.

2. Factories

The next are the factory functions that return an instance of the object whose owner should be the callee, and the callee is responsible for its destruction:

std::unique_ptr<SomeType> createObject(...);

Even if the callee forgets to save the returned value, nothing will be leaked.

3. Caches, ref-counted singletons, etc.

When we have a function that returns something that can be destroyed at any time, or that should be destroyed only after everyone stops using it, we can simply write

std::shared_ptr<SomeType> getObject(...); // or std::weak_ptr<SomeType> getObject(...);

The first one tells the callee that the object will exist for as long as he wants to use it, but without the guarantee that it will be destroyed immediately after.

While the later says that it has been given an object that could go away at any point in time.

4. Optional result values

The last use-case is the most problematic one. Not because it has not been solved, but rather because the necessary class has not yet been provided in C++.

When it becomes the part of the standard, it will look something like this:

std::optional<SomeType> parseTheType(...);

For the time being, you could use boost::optional, pair<bool, SomeType> and similar.

If you wanted to give the failure error as well, without resorting to throwing exceptions all over the place, my advice is to go and watch Alexandrescu’s talk on “Systematic error handling in C++”.

Exception safety

Now, after we saw what can be done to the API to make the user’s life easier when it comes to memory management, just a very short note about the exception safety.

There is a reason why std::stack does not have a method pop that returns a value, but has the separated top and pop. This is, again, one of the things that should be known to most c++ developers, yet sometimes you can even find some c++ book authors that take jabs at the standard committee for making it that way, and not going for the more convenient API.

I suggest everyone to look at some writings about this – the issue itself gives a nice overview of things to watch out for when designing API which should behave well in the exception-enabled environment.

Categories: FLOSS Project Planets

KDE Frameworks 5.3 and KDE Plasma 5.1 for Fedora are ready!

Fri, 2014-10-17 04:37

Fedora KDE SIG is happy to announce that latest version of KDE Frameworks 5 have just reached stable repositories of Fedora and  brand new version of KDE Plasma 5 is now available in the our Plasma 5 COPR.

KDE Frameworks 5.3.0

The third release of KDE Frameworks brings mostly bugfixes. KDE Frameworks 5 is a collection of libraries and software frameworks created by the KDE community. It’s an effort to rework KDE 4 libraries into a set of individual and independent, cross platform modules that will be readily available to all Qt-based applications.

KDE Frameworks 5 are available in official Fedora repositories for Fedora 20 and the upcoming Fedora 21.

KDE Plasma 5.1

KDE Plasma 5 is the next generation of KDE workspace based on Qt 5 and KDE Frameworks. It’s latest version brings many bug fixes, performance improvements but also many new features! Dark color theme for the Breeze style, more widgets, improved Task switcher, reworked tray icons and much more. You can read about all the new things in Plasma 5.1 in the official release announcement.

To install KDE Plasma 5 on Fedora, just add the Plasma 5 COPR repository to yum, and simply run yum install plasma-5.

Live ISO

Do you want to give Plasma 5 a try, but don’t want to install it yet? Easy! We have prepared a live ISO image based on Fedora 20 for you! You can get it from here: http://pub.dvratil.cz/plasma/iso/5.1/ (use Torrent for faster download).

Do you need help? Come talk to us: either on #fedora-kde IRC channel on Freenode, or join our mailing list kde@lists.fedoraproject.org.

Categories: FLOSS Project Planets

Notes about Dell XPS 13 developer edition and Kubuntu

Fri, 2014-10-17 03:14

Got new tool, Dell XPS 13 developer edition, running Ubuntu 12.04. Here’s some experiences using it and also a note for future self what needed to be done to make everything work.

After taking restore disc from the pre-installed Ubuntu using the tool Dell provided, I proceeded on clean installing Kubuntu 14.04. I have to say for the size and price of this piece of hardware is rather amazing, only nitpicking could be the RAM capability being capped to 8 GiB. Having modern Linux distribution running smoothly in any circumstances is simply nice experience. I haven’t hit yet for the limitations of the integrated Intel GPU either, which is surprising, or maybe it is just telling my way of using these things. (:

Touch screen is maybe the most interesting bit on this laptop. Unfortunately I have to say the use of it is limited by UI not working well with touch interaction in many cases. Maybe choosing apps differently I would get better experience. At least some websites are working just fine when using Chromium browser.

Note on hardware support

Everything else works like a charm out of the box in Kubuntu 14.04, except cooling. After some searching I found out some Dell laptops need separate tools for managing the cooling. I figured out the following:

I needed to install i8kutils, which can be found in Ubuntu repositories.

Then I made the following contents to /etc/i8kmon.conf

# Run as daemon, override with --daemon option set config(daemon) 0 # Automatic fan control, override with --auto option set config(auto) 1 # Report status on stdout, override with --verbose option set config(verbose) 1 # Status check timeout (seconds), override with --timeout option set config(timeout) 12 # Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt} set config(0) {{-1 0} -1 48 -1 48} set config(1) {{-1 1} 45 60 45 60} set config(2) {{-1 2} 50 128 50 128} # end of file

Note that some options are overridden in the init script, for example it does set i8kmon to daemon mode. Timeout of 12 seconds is there because I noticed every time fan speed is set, the speed begins to fall down in ~10 seconds so that in half a minute point you notice clearly the accumulated change on the fan speed. My 12 seconds is just compromise I found working for me well, YMWV etc.

Also to have i8kmon control cooling without human interaction, I needed to enable it in /etc/default/i8kmon

ENABLED=1

That’s it for now, I might end up updating the post if something new comes up regarding hardware support.

Categories: FLOSS Project Planets