Saturday April 6, 2019

Quick survey on what’s coming:

  1. Why You may find Kustom apps so incredible?
  2. Randomly changed favorite background wallpapers.
  3. How to pick up random wallpapers out of local storage.
  4. How to switch to the next random wallpaper by hand.
  5. Notifications from scratch.
  6. A time-dependent welcome message.
  7. Welcome message displayed only if there are no notifications.
  8. Weather.
  9. Resources.
  10. Detailed battery info.
  11. Calendar events.
  12. Time to sunrise.
  13. Alert on uptime.
  14. Dynamic color palette.

I am totally fascinated by the Kustom Lockscreen Android app (KLCK) - as well as the whole set of Kustom apps altogether. When it comes to designing my own lockscreen theme, the key question I was wondering on was: could it be possible to render the functionality of Wallpaper Changer (another Android app which I use to have random wallpapers on the desktop)? In other words: could I have both randomly displayed lockscreen wallpapers and the ability to switch them by hand? (Wallpaper Changer allows You to do that via dedicated widget)

Now I am happy to say that, indeed, it is possible to have Wallpaper Changer-like feature on Your lockscreen - with the help of KLCK. Moreover, there are other great things You can achieve as a designer, creating the lockscreen of Your dreams :) . In a moment I will present You a little bit more about my current set, with appropriate code snippets in case You would also be interested in achieving similar effects - but first I’d like to tell You what I am especially fascinated about when it comes to this incredible app.

Why You may find Kustom apps so incredible?

When You discover Kustom Lockscreen, You might be amazed by the scale of possibilities this app unveil. It is in fact impressive that You can design Your Own lockscreen totally from scratch - and with the “sky’s the limit” attitude in mind. The whole thing in a way resembles to me a children construction set - because of many “small things” which You could treat as little screws, gears, racks, and the like. What You might construct out of those - depends on Your imagination and creativity.

If You, however, are impressed by this scale of how many things You could do, or to what degree You are able to customize Your Own Android lockscreen experience - You will stumble upon even more amazing thing - meaning all the rest Kustom apps: Kustom Live Wallpapers and Kustom Widgets. What is so amazing about that? First, those apps are pretty similar to each other: although each of them serves its own purpose, if You learn how to do certain things in one app, most probably You will be able to accomplish the same thing in all the rest. Earlier on I was a little bit disappointed that there are not so many tutorials regarding KLCK - but then I’ve realized that all those (most popular) KLWP how-to’s may be applied to the KLCK as well. Second: You can copy&paste objects between those apps - and this is the real game-changer, because keeping this in mind You have virtually no limits in creation. Let’s say, You’ve started with creating a live wallpaper, designing various “widgets” as You please. Although You may be satisfied with the end result, Your widgets are not really widgets per se - because in case of KLWP this is all about live wallpapers - so however many “widgets” You create as a part of such a wallpaper, technically-wise it is still “only” a wallpaper. So You won’t be able to drag’n’drop its “widgets” - as in case in regular widgets You are accustomed to.

If You’d like Your widgets to be draggable - You need to use KLWG. If, for example, You are especially pleased with a weather widget of Your Own design, which, however, You’ve created in KLWP - You should be able to simply copy&paste it into KLWG in order for it to be served as a real (genuine) Android widget (which, as a result, will be movable this time).

Moreover, what if You could have this same widget displayed on Your lockscreen? Android itself stopped allowing users to put widgets there - but with KLCK You could achieve a highly similar effect: the same weather widget (for example) can be displayed on Your lockscreen (although, again, You won’t be able to drag’n’drop it, but I suppose it won’t be a serious obstacle).

To move things even further, You could have “a paginated lockscreen” instead of just a single page as we’re used to. How much this alone expands the boundaries :) ?

So, this is all of my key impressions I wanted to share with You. Let’s take a closer look on my current lockscreen concept:


Randomly changed favorite background wallpapers.

I much like differentiation, so for years now I use Zedge (for gaining new wallpapers) and Wallpaper Changer to have them randomly changed on my desktop. Lockscreen, however, for a long, long time was the only place I was forced to accept that I can’t use this effect. Although there were some solutions out there (You can have multiple wallpapers changed automatically using MIUI (Android by Xiaomi) or Microsoft Launcher , for example) - I haven’t found them appealing (mostly because they don’t give You a control on what particular pictures will be used). What I wanted was a solution in which I could choose wallpapers myself - and then have them automatically changed every x minutes. Besides, I want them to be changed regardless of active Internet connection - so they should be picked out of local storage instead of some cloud or an online gallery.

Another thing I needed was to be able to switch wallpapers by hand - i.e., after tapping on some object. I learned that this also can be doable - and I can freely choose which object will serve as the trigger (to switch to another wallpaper).

It is definitely an exciting thing that I can achieve all of this through KLCK. Now, If I would like to use a live wallpaper - I could implement the same solution, not being in the need of using Wallpaper Changer to switch wallpapers on my desktop anymore.

How to pick up random wallpapers out of local storage.

  1. Create a global text called “WallRan” and set its value to 5.9.

  2. Create a global image “Walls” and attach a following function to it (90 stands for 90 min time span per a single wallpaper; remember to replace the path to Your Own folder with lockscreen wallpapers):

    tu(rndimg, 90+gv(WallRan), "/storage/emulated/0/zedge/lockscreen")

How to switch to the next random wallpaper by hand.

Pick an object You’d like to use as a wallpaper switch and set a touch action to this: Toggle Global Switch › WallRan, set to this formula: $df(s)/10$

Notifications from scratch.

One of my “top-dreams” regarding Android was about dark-themed notifications displayed on the lockscreen. With the help of KLCK I can have even more than that: as any other element in Kustom, notifications also can be shaped to Your Own liking (i.e., You can design their look from scratch!).

I wanted to have more interestingly looking layout, so I’ve decided to display notifications in a little bit of a surprising way: with a small slant.


A time-dependent welcome message.

I much like “personal touches” here and there, with which Your device look&feel becomes “more Yours”. In the same mold I put a welcoming “Nice Day :)” on the screen - which is time-dependent (so, for example, it displays “Nice Night”, “Nice Evening” or “Nice Morning” - depending on time of the day). Here is the code I use for that (it includes four time spans):

$if(df(hh)>5 & df(hh)<11, "Nice morning!",if(df(hh)>=11 & df(hh)<=18, "Nice day!",if(df(hh)>18 & df(hh)<23, "Nice evening!", "Nice night!")))$

Welcome message displayed only if there are no notifications.

This way I’ve saved some screen space. It is quite simple: just place Your welcome message on a separate layer and set this formula to its visibility:

$if(ni(count)>0, NEVER, VISIBLE)$


I was very happy when I've discovered the Komponent Weather Class - a beautiful weather icon set which fits my taste well. I find it elegant and attractively looking - whatever weather is, it is always a joy to behold to look at those icons :) . So for a long time now I stick with it and haven’t switched to anything else.

Another thing I like about the weather part is that I can attach a small info containing the time of the last weather update - which comes in handy, especially with the ability to refresh the weather not only automatically, but also on demand (after tapping anywhere on the weather part).


This is probably the most interestingly looking part in my current theme. Earlier on I used simple horizontal progress bars, but over the time I’ve experimented a little and finally decided to use circular, ring-like progress bars, put one next to another. The outside ring represents RAM usage, the middle one (which is rotating from time to time) battery level, and the last one renders the volume level. Here are code snippets I use in those cases:

RAM usage:

$mu(round, 100/rm(mtot)*rm(mused), 0)$

Battery level:


Volume level:

This is a simple progress bar set to “Music Volume”.

Detailed battery info.

I like that in Kustom You can display not only battery percentage, but also its (dis)charge estimated time or time span:

$if(bi(charging) = 0, "+", "+")$$if(bi(charging) = 0 | bi(level) < 100, "" + tf(bi(fullempty) - dp()))$
[s=0.74]($df("hh:mma", bi(fullempty))$)[/s]$

And here is the battery temperature:


Calendar events.

Here I decided to cover only today and tomorrow events (in case there are any - otherwise it will show nothing):

$if(ci(acount, a0d)>0,$
$if(ci(acount, a0d)>0, ci(title, 0, a0d))$

$if(ci(acount, a1d)>0,...tomorrow:)$
$if(ci(acount, a1d)>0, ci(title, 0, a1d))$

Time to sunrise.

A nice gadget, sometimes I like to know how much time left to the closest sunrise :) . Besides, I really like that Kustom has a whole bunch of astronomic formulas, with which You can display a variety of dynamically changed data, like how long is the current day, sunrise, sunset, moon phases, even the current zodiac sign, and many more.


Alert on uptime.

I prefer to reboot my device every couple of days in order to refresh its RAM and the whole OS, so to speak - exactly like in case of a desktop PC or a notebook (in case of which it is also a good idea to restart it every now and then - otherwise Your device will be slowing down gradually). So now I don’t have to check how long my device is up - it will let me know on reaching the certain point (in my case 3 days of the uptime).

This case is similar to the welcome message mentioned earlier on: the only thing You need to do is to place Your text (or object, or anything else indicating reaching the desired time span) within the stack or overlap group, and then go to its visibility settings and attach a formula to it:

$if(tf(df(S) - df(S, si(boot)), D)>=3, VISIBLE, NEVER)$

Dynamic color palette.

This is the thing which fascinates me from the time I first saw the Windows 7 taskbar. While hovering a cursor over a particular icon placed on it You see a very aesthetic gradient background, which follows the cursor’s move. It is tinted in a particular way, i.e., based on the colors of the corresponding icon itself (so hovering a cursor over various icons will yield in different tinting).

I much like this idea wherever I see it. It was present in Windows Live Messenger while browsing photos (each photo had its own corresponding background, stylized in a very similar way) - and years after, for example, You can see this same effect in the Vero Android app (social network), in which posts are often put on automatically generated, blurred background.

It was a great and nice surprise when I’ve discovered that the same thing I can now design by myself, using KLCK or any other Kustom app - which has a special set of commands for obtaining color palette from outside sources (like pictures, wallpapers, cover arts...). With Kustom You can decide which elements of Your layout should have colors corresponding to the background’s or the cover art’s color palette. This is especially amazing to observe while changing wallpapers: now the diversified design is accomplished not only through multiple pictures, but also thanks to the whole layout staying in live relation with those pictures, rendering their color tones on the fly.

img3 img4

Here is an example of gaining a color out of a picture. The color is “light vibrant” (this name is one of a couple standardized names used in Kustom) and it is gained out of the “Walls” global value (which is a global picture mentioned earlier on):

bp(lvibrant, gv(Walls))

Another thing worth to mention is font tracking. When I started to work on this theme, one of my first desires was to have the same font in the clock as I had before. Earlier on I used “Space trip” theme from HTC themes and I much liked its font, which resembles an alien script (I associated it with one used in [Roswell tv-series][10]) .


Finally I’ve managed to find out what the font is - thanks to on-line tools like Once You have Your desired font downloaded (for example in a .ttf file), You can simply put it in Kustom/fonts folder and You’re good to go: You can now use this font throughout the Kustom app(s).


Filed in: /8/ | /63/ | /12/ | /1/

Your (nick)name:

Your e-mail:

Have a website?

Your message:

remember data for further comments?