Planet F-Droid

July 17, 2019

/e/ foundation

Be the 100th to order and WIN A /e/ TSHIRT!

Be the 100th to order and


/e/OS Galaxy S7 Black

Grade A+ with /e/OS
32 Gb
1 year warranty


/e/OS Galaxy S7 Pink Gold

Grade A+ with /e/OS
32 Gb
1 year warranty


/e/OS Galaxy S7 Gold

Grade A+ with /e/OS
32 Gb
1 year warranty


All our smartphones ship with a set of brand new and original accessories: charger, usb cable and an in-ear headset

by Samuel Cazin at July 17, 2019 15:22

July 16, 2019


Consent Matters: When Tech Shares Your Secrets Without Your Permission

Privacy is About Consent

There is a saying that goes around modern privacy circles that “Privacy is about Consent.” This means that the one big factor that determines whether your privacy is violated comes down to whether you consented to share the information. For instance, let’s say Alice tells Bob a secret: if Bob then tells the secret to someone else, Bob will be violating Alice’s privacy, unless he had asked Alice for permission first. If you think about it, you can come up with many examples where the same action, leading to the same result, takes on a completely different tone–depending on whether or not the actor got consent.

We have a major privacy problem in society today, largely because tech companies collect customer information and share it with others without getting real consent from their customers. Real consent means customers understand all of the ways their information will be used and shared, all the implications that come from that sharing–now, and in the future. Instead, customers get a lengthy, click-through privacy policy document that no one is really expected to read or understand. Even if someone does read and understand the click-through agreement, it still doesn’t fully explain all of the implications behind sharing your location and contact list with a messaging app or using voice commands on your phone.

Big Tech has been funded, over the past two decades, by exploiting the huge influx of young adults who were connected to the Internet and shared their data without restriction. While it’s a generalization that young adults often make decisions based on short-term needs, without considering the long-term impacts, there’s also some truth behind it–whether we are discussing a tattoo that seemed like a good idea at the time, posting pictures or statements on social media that come back to bite you or giving an app full access to your phone. Individuals didn’t understand the value of this data or the risks in sharing it; but tech companies knew it all along and were more than happy to collect, store, share and profit off of it, and Big Tech is now a multi-billion-dollar industry.

Tech companies (and much of society until a very recent past) have dismissed privacy concerns by concluding that “people don’t care about privacy” when the truth is that most people were simply unaware of the data they were sharing, the implications of sharing that data, and of the potential risks of sharing it. Therefore, any consent they gave wasn’t informed consent–companies weren’t motivated to educate customers on the risks they were taking, because it might mean losing their consent.

The main reason everyone is starting to talk about privacy now is because it takes time for long term effects to be felt. As these adults entered the workforce, their youthful indiscretions began to impact their job prospects. Then, with controversies like the Cambridge Analytica scandal, everyone got a clear-cut example of how the data that ad tech collected could be used against them–to do more than show them ads. Privacy has become the tattoo removal of the information age as everyone is looking for a way to cover up mistakes from the past. Now that “privacy” has become marketing gold, these same companies have rallied around redefining the word to apply it to their products without actually protecting their customers.

Solving the Privacy Problem

The reality is that people do care about privacy, but they don’t feel empowered to do anything about it. Between Big Tech, advertisers and governments all wanting to collect and analyze your data, what are you to do? The solution is simple: consent. Society is educating college students on the importance of affirmative consent in sexual encounters and that the default is a position of no consent. This means that it’s not enough that a person didn’t say ‘no’ (opt-out) to escalating sexual contact; they need to say ‘yes’ (opt-in). Affirmative consent grants each individual power over their own body in a way that opting out doesn’t; if these large tech organizations, who started from a position of no consent, were now required to get explicit and informed consent (opt-in) from customers–before capturing and sharing their data–people using them would finally be in control.

But that is unfortunately not what’s happening. Instead, each time privacy proposals come before the government, these same companies that tout privacy in their marketing campaigns fight to remove any requirement that they need to get your consent before collecting and sharing your data. They realize that most people wouldn’t consent if asked, so they’d prefer you ask them to stop (opt-out) and hope most people won’t bother, or understand. When you later discover how they’ve used and abused your data, they can claim you never opted out. They’d much rather ask for forgiveness than for permission.

This privacy problem is why Purism was founded, is cemented into our corporate charter, defines how we build all of our products; it is why we created Librem One services and why we are asking the California legislature to require tech companies to get consent before using your data. You should be the one in control of your technology and your data, and the key to that control is consent.

The post Consent Matters: When Tech Shares Your Secrets Without Your Permission appeared first on Purism.

by Kyle Rankin at July 16, 2019 16:22

This Week in F-Droid

Public Statement on Neutrality of Free Software

In the past week, a controversy around F-Droid took place at its forum and in the fediverse. We feel like we have to put out a public statement to clear F-Droid’s position on it.

To recap the situation: a website joined the fediverse only half a month ago that is well known to be a “free speech zone”, meaning it claims to tolerate all opinions. While in theory this might seem to be a good concept, it has serious consequences: things like racism, sexism, verbal abuse, violent nationalist propaganda, discrimination against gender and sexual minorities, antisemitism and a lot more things become popular on such instances. For good reasons, all these things are prohibited on the clear majority of instances in the fediverse. Because of this, yet even before mentioned website joined the fediverse, most instances already blocked it.

The developers of Tusky, one of the most popular app to access the fediverse on Android devices, decided to go a step further by implementing a mechanism that doesn’t allow to log into mentioned website. Fedilab on the other hand decided not to implement such a mechanism, stating that it’s ineffective (more on this below) and that a tool’s developer should not decide which people are allowed to use it.

F-Droid as a project soon celebrates its 9th birthday. In these 9 years, F-Droid’s mission was and is to create a place where people could download software they can trust – meaning only free, libre and open source software is available on its flagship repository. As a project, it tried to stay neutral all the time. But sometimes, staying neutral isn’t an option but instead will lead to the uprise of previously mentioned oppression and harassment against marginalized groups. We don’t want and won’t support that. F-Droid is taking a political stance here.

F-Droid won’t tolerate oppression or harassment against marginalized groups. Because of this, it won’t package nor distribute apps that promote any of these things. This includes that it won’t distribute an app that promotes the usage of previously mentioned website, by either its branding, its pre-filled instance domain or any other direct promotion. This also means F-Droid won’t allow oppression or harassment to happen at its communication channels, including its forum. In the past week, we failed to fulfill this goal on the forum, and we want to apologize for that.

We believe platforms like F-Droid’s repository or fediverse instances must be moderated in order to prevent oppression and harassment to flourish. We think, however, that one needs to differentiate between platforms and tools. By its very nature, free software by definition allows users “to study how the program works, and change it so it does your computing as you wish”. Because of this, any restriction implemented in free software is basically ineffective, because people can modify the source code and remove those restrictions. We respect Tusky’s decision to block mentioned website; it’s their right to introduce restrictions like these into their software. We also respect Fedilab’s decision not to hardcode a login block; instead they are actively working on making it easier to block certain domains in the app itself and thus giving users more power to moderate which content they’ll see. If people disagree with F-Droid’s decision not to flag Fedilab, a idea is to develop a decentralized tag system based on package IDs which allow third-party servers to share their own warnings with their community.

by F-Droid at July 16, 2019 00:00

July 12, 2019


Librem 5 July Update

Hi Everyone! The Librem 5 team has been hard at work. and we want to update you all on our software progress. These last few weeks have been heavily focused on polishing the UI and bug fixes, in order to get ready for a string of journalist demos.

When we deliver the Librem 5, its software will focus on the most critical applications a phone needs: calls, messages, and web browsing. Some supporting projects will be delivered too, like GNOME Settings, the shell, and GNOME Initial Setup. So without further ado, let’s take a tour through the software we guarantee we’ll deliver, as well as some other applications that have seen some major changes.



We have made a few minor fixes to libhandy, like improving the homogeneity of the login screen buttons. And HdyHeaderBar now has a back button instead of its window decorations if it is placed inside a HdyDialog, to further enable adaptive dialogs.


We made some changes to calls’ UI, to display digits pressed during a phone call and use a libhandy widget to switch between recent calls and the dial pad. Also, messages (error or otherwise) are now displayed for only a short time. An ALSA use case-configuration was added for the devkit’s SGTL5000 sound card, which also keeps PulseAudio from setting the microphone to mute.



We have also made some minor feature additions to Chatty recently. A --safe-mode option has been added, so that if one of a user’s many accounts is failing, it becomes easier to find which one is at fault. If an account validation fails, there is now an account validation retry; and the about dialog is easier to close. When a new contact is added, the template is cleared of previous info, and the chat history list is now ordered so that the newest chat is at the top of the history. Message list height is now used to improve content placement, and the styling of the message bubbles has also been improved by tweaking the CSS.

We have addressed some severe issues as well: a buddy list-related crash, a history-related crash and a memory leak were fixed. Chatty now waits until the modem is ready, before the SMS account is active–and some remaining purple_log parsing functions were removed so as to fix a crash–thanks to Leland Carlyle for the patch!


Startup connection, reconnection and plugin state have been improved–and an auto-reconnect was added.

Chatty sms


Testing and integration of the Lurch plugin is completed, and it is even being built as a package!


GTK 3 is stable upstream, but we need to make some parts of it adaptive for the phone (e.g. the open file dialog), and so we will ship it with some downstream patches–but we are still interested in upstreaming the changes to GTK 3 (if there is interest), and aim to get them into GTK 4. These downstream changes have been added to our build jobs, so that it is shipped on the devkit image.

Our GTK 3 changes also include a lot of dialog work: the file chooser and about dialogs have been ported to the phone; the message dialog has also been ported to the phone, by making their buttons vertical. Also, transient windows and dialogs with a close-button will now have a back-button instead. Resizable windows (hence, most of them minus message dialogs) will be maximized to fill the screen.

Web Browsing

In general, we made a serious effort to overhaul the preferences windows. The history does not overflow the screen anymore, and all the data management dialogs have been overhauled to work better on the phone and look nicer in general (“history”, “cookies”, “passwords” and “personal data” dialogs). Web is now using a mobile user agent too, and most websites look better on the phone.

The tabs popover has been turned into a tabs page, taking the whole window, and it looks great. Plus, the tabs icon has been replaced by a new icon, showing the number of tabs you have open. Thanks so much to Christopher Davis and Alexander Mikhaylenko for these additions!

We are also building WebKit now, to provide rapid scrolling.


Initial Setup

GNOME initial setup has mostly been ported to the Librem 5!


We are working hard to port GNOME Contacts to the Librem 5. One of the issues we tackled was fixing the birthday picker and making it adaptive–and one other awesome change was improving the UX/UI for unlinking contacts.



We all know that time is important and cannot be ignored… and that is why GNOME Clocks has been ported to the devkit!



We are currently working on porting GNOME Settings to the Librem 5, and so far, our effort has been mostly focused on the WWAN/Cellular panel (see the cellular panel design); users can now select Network Operator, either manually or automatic, set the allowed modem mode (like 2G only, 3G only, 3G and 4G, etc), and set/change/disable the PIN for their SIM card. The groundwork has also been laid for configuring the APN settings tied to the SIM card, by using mobile-broadband-provider-info and nm-applet APIs, so users can select a default APN via the dialog–and also save them to NetworkManager connections. Roaming can now be set/unset as well.



The latest images are now using a 5.2 kernel, have a new keyboard, lots of UI improvements, and more!


We are so happy to tell you about one of the major changes since the last blog post: we now have a new keyboard, squeekboard!


The keyboard now indicates when you’ve pressed a key–many thanks to Hysterical Raisins for helping us prune this issue!

Compositor + Shell

We have mentioned before that the compositor will be switched from rootston to a new phone compositor using the wlroots library (phoc), and now phoc is the default compositor. Phoc has seen some recent bug fixes, like regarding login integration and hiding the cursor when there is no external mouse connected. Touch events are now not lost when destroying a surface.

The look and feel of the shell is always improving, getting closer to what we are familiar with on smart phones–and there have been lots of changes in the shell! Phosh v0.0.3 has just been released, featuring so many of these cool changes!

We also made sure dialogs are now wrapped to better fit the narrow screen, there have been some spacing improvements, CSS changes to phosh (to bring the shell closer to matching the design), and improvements in the system modal dialogs. Many translations have been added and updated to phosh–thanks to the community for contributing them via zanata–and Libhandy is now built as a subproject of phosh, so thanks, Zander Brown, for the patch!

The lockscreen looks much more modern than it did a few weeks ago; we added the date, and fixed an issue regarding WiFi not showing on the lock screen all the time. To keep the lockscreen arrow animation from eating up too much battery, that arrow animation is stopped after 15 cycles. Also, the battery icon now indicates when the board is receiving power too–take a look at the new start screen below, as it now includes the weekday and date!

Login screen

We have been making some changes to the overview too, to make sure the user is focused on the main applications. The system prompter LayerSurface has been made to behave more like regular GTK widgets.

And since wallpapers are important to most of us, there was a focus on the background: we added a PhoshBackgroundManager, and backgrounds have been re-enabled. The background is drawn at full resolution on HiDPI screens, too! Background zoom mode was implemented, background colors are now supported (besides wallpapers), and the background surface has been modified so that it’s not hidden behind a panel in order for a wallpaper to be centered.

Home screen

A lot of work has gone into the app switcher too, which has been overhauled–thanks to Zander Brown for all of his work on this!

App switcher

And if all this wasn’t enough, we have fixed a few bugs, such as a pesky pixel offset issue and that annoying flickering on boot that we reduced by changing the lockscreen background to black, since the shell’s background is black too (desktop background is configurable).


Since we upstreamed the devkit’s device tree, the natural next step afterwards was to start on the Librem 5’s device tree–and the first cut of the phone device tree is available here. We also submitted the flash-kernel upstream; both cpufreq and cpuidle are working and there is a noticeable temperature (5-10°C) drop; and when it comes to the graphics stack, one more driver for the imx8MQ display-driver has been merged upstream–only two more to go! We also made some devkit LCD panel improvements, and version 12 of the Mixel MIPI DPHY driver has been accepted upstream!


The guide on setting up WiFi has been improved by us, and we also provide more guidance on debugging compositor crashes and LCD problems now. Some other updates concern the information about simple I/O devices, some additional warnings about battery usage and screen area constraints. Core contributors are also likely to find the new documentation on our package building infrastructure helpful.

This is it for today–a big “Thanks!” to everyone who has helped review and merge changes into upstream projects: your time and contribution are much appreciated. Stay tuned for more exciting updates to come!

The post Librem 5 July Update appeared first on Purism.

by Heather Ellsworth at July 12, 2019 16:25

July 11, 2019


OsmAnd 3.4

OsmAnd 3.4

July 11, 2019

We are glad to announce the release of version 3.4! We proudly present some major improvements and new features, and hope you will enjoy them:

(Image not available offline)

Application profiles

Now you can create your own profile for your needs, with a custom icon and color. Go to General menu-> Settings-> Application settings. Here you can select Base profiles to display in the navigation.

After clicking to "+Add" you can build your own profile with your own parametres: icon, avoid, elevation, configure map, screen, navigation settings...

You can add own modified version of routing.xml to osmand folder: ...osmand/routing.

Settings and min/max speed for profiles

We add settings for default and min/max speed for profiles. You can improve base profiles for your own conditions. Go to General menu-> Settings-> Application settings. Here you can set special settings for Base profiles: Routing preferences, Navigation preferences, Voice. Please, click Navigation settings for setting up your own speed: min/max speed.

Add a widget with current coordinates

For switch on this widget, please go to General menu-> Configure screen (Remaining elements). After you can see your own coordinates on top of the screen.

You can change coordinate format General menu-> Settings-> General settings-> Coordinate format.

The compass at the Radius ruler

We add the option to show the compass on the map with the Radius ruler. Go to settings of the Radius Ruler (menu Configure screen) and choose "Show compass ruler". Now you can see the compass at the Radius ruler (if you don't see it, please to click at the widget of Radius ruler).

'Turn Screen On' option

At this release, we returned 'Turn Screen On' option. Now, this feature doesn't ask any permissions for correctly working. You can use it to save phone energy consumption. You should go to General menu-> Settings-> Navigation settings, choose a profile for setting the time for which the screen will turn on and use proximity sensor.

Proximity sensor is a very useful feature during a long trip. You should wave your hand over the top of the screen to turn on the screen while navigating.

What is more?

- Fix background track logging.

- Improved map downloads in the background.

- Fixed Wikipedia language selection.

- Fixed compass button behavior during navigation.

- Bug fixes.


OsmAnd at Facebook, Twitter, and Reddit!

Join us at our group of Telegram (EN).

Join us at our group of Telegram (DE).

Join us at our group of Telegram (RU).

Get it on Google PlayGet it on AmazonGet it on App Store

July 11, 2019 17:00

This Week in F-Droid

TWIF 64: We are back!

This Week In F-Droid 64, Week 28, 2019 Feed

In this edition: F-Droid 1.7 released, Tutanota now has a calendar, OSMAnd 3.4 beta, Orbot update, Info on reproducible builds, Tusky & Gab discussion closed, and report on localization of F-Droid apps.

TWIF needs help

After a long hiatus, we have a new, super long TWIF. We need editors to help push out future updates. The process is mostly automated, we mostly need help editing the forum submissions then sheparding the post through the publishing process. Posts are now published much faster, thanks to the new deploy server.

F-Droid news

  • Released F-Droid v1.7 which includes new PanicKit responses: uninstall any app on the device, and, reset repos to default.
  • Secure email provider Tutanota has added an encrypted calendar to their app.
  • There’s a beta version of OSMAnd 3.4 now. People interested in it can install it manually via F-Droid and test it.
  • Guardian Project released a new Orbot update.

Community News

  • Tusky is free software. Following the block of Gab users by Tusky, someone contacted Richard Stallman who clarified that Tusky is free software.
  • Nico published a nice blog post about F-Droid reproducible builds.
  • roptat has published a day-by-day report on localization of F-Droid apps.

There are 98 new and 408 updated apps.

F-Droid is a repository of verified free and open source Android apps, a client to access it, as well as a whole “app store kit”, providing all the tools needed to set up and run an app store. It is a community-run free software project developed by a wide range of contributors. This is their story this past week.

New apps

Updated apps

In total, 408 apps were updated since last TWIF!

Beta updates

The following updates won’t be automatically suggested to you unless you have “Unstable updates” enabled in the F-Droid app settings, but you can expand the “Versions” tab and install them manually. Note that these are marked beta for a reason: proceed at your own risk.

Removed apps

5 apps were removed.

Tips and Feedback

Do you have important app updates we should write about? Send in your tips via Mastodon! Send them to and remember to tag with #TWIF. Or use the TWIF submission thread on the forum. The deadline to the next TWIF is Thursday 12:00 UTC.

General feedback can also be sent via Mastodon, or, if you’d like to have a live chat, you can find us in #fdroid on Freenode, on Matrix via or on Telegram. All of these spaces are bridged together, so the choice is yours. You can also join us on the forum.

by Hanna at July 11, 2019 00:00

July 10, 2019

Guardian Project


Purism and the Linux 5.2 Kernel

Hello again. Following up on our report for the Linux 5.1 kernel, here’s a list of contributions for the Linux 5.2 kernel cycle, for which our team recently contributed with 14 patches–including a new driver for the Librem 5 devkit’s panel:

Support for the Librem 5 devkit’s proximity and light sensor

The following series of patches added support to the devkit’s VCNL4040 proximity and light sensor, the VCNL4000 driver:

Support for the imx8MQs thermal management unit

In this case, the driver was already there–but the device tree needed quite a few additions to enable the TMU:

Support for the Librem 5 devkit’s LCD panel

This series of patches added a new DRM panel driver to the devkit’s LCD panel:

DMA related fixes

Here are several SDMA-related fixes, which are important when it comes to sound:

DSI related fixes

Finally, a clock addition, in preparation for DSI support:

We have also contributed with two reviews to already published patches.

That’s it for today, many thanks to all the reviewers so far—and do stay tuned, there’s more to come for the 5.3!

The post Purism and the Linux 5.2 Kernel appeared first on Purism.

by Guido Günther at July 10, 2019 16:51

Runs on the Librem 5 Smartphone – Week 3

We’ve been showcasing a different piece of software running on the Librem 5 Smartphone Development Kit every day for the last twenty days.  Twenty.  In a row.

And we’re not done.  Because, holy smokes, do we have a lot more to show.  And, let’s be honest, these are just plain fun.  Daily videos kick back off tomorrow (July 11th) with video number 21.

You can enjoy Days 15 through 20 below — and Days 1 through 14 in the Week 1 and 2 posts.

If you pre-order the Librem 5 before July 31st, you save $50.

Day 15 – Cryptocurrency Tracker (also on YouTube)


Day 16 – Something a little different… (also on YouTube)


Day 17 – GNOME Contacts (also on YouTube)


Day 18 – Telnet (also on YouTube)


Day 19 – Sudo (also on YouTube)


Day 20 – PureOS Store (also on YouTube)

The post Runs on the Librem 5 Smartphone – Week 3 appeared first on Purism.

by Bryan Lunduke at July 10, 2019 15:09

Nico Alt

Trust is good, control is better

Reproducible builds at F-Droid Author: Nico Alt (CC BY-NC-SA 4.0) Es gibt auch eine deutschsprachige Version. También empecé una traducción a Español. Free Software is a great thing, because it allows users to check that apps are doing what they pretend to do. But almost nobody compiles apps themselves. Instead, binaries are used which in case of Google Play or Apple’s App Store are built by the apps’ developers or in case of F-Droid come from the project itself.

July 10, 2019 00:00

July 09, 2019

/e/ foundation

/e/ smartphones start shipping TODAY!

Dear friends, supporters and privacy fans,

THE WAIT IS OVER: we’re thrilled to open orders for /e/ smartphones TODAY!

As quantities are limited, we are opening orders by batch and you have been among the first to register with us for an /e/ smartphone! Congratulations!

What will you get if your order today?

A premium grade Smartphone. Your future smartphone has been checked and reconditioned to be fully working at our partners facilities. We only select smartphones ‘Good-as-New’ so no surprises.

unGoogled Android. /e/OS is at the core of our privacy by design ecosystem. We don’t scan your data on your phone or in your cloud, we don’t track your location hundred times a day, we don’t collect what you’re doing with your apps.

One account for your privacy. a free account with your email address that ends in, 5GB of free and private storage, and convenient back up and access for your mails, calendar, contacts, documents, tasks and notes

Apps to get things done Our app directory will give you access to more than 60,000 free apps directly from the OS. You can check if each application respects your personal data with our privacy score that analyses the apps for you and gives them a score from 0 to 10.

One final thing before you place your order

We currently do not support paid apps or integrated purchases. We are continually adding new apps to our library to give the best experience but some apps might not be yet available in our directory. In the event that an app is not yet listed, we will offer you alternatives to access it and install it on your smartphone.

Still ready for it? Click below and you’ll be set within minutes

by Samuel Cazin at July 09, 2019 09:18

July 08, 2019

Handy News Reader

Handy look&feel to Your Own liking.

Here You are a bunch of things which You can tailor to Your Own liking, making Handy the way You prefer, therefore making Your reading more pleasant (and often more comfortable) :) .

You can adjust:

Within articles:

  • font size and color,
  • background color,
  • reading progress bar color and height,
  • footer clock font size, color and background,
  • hyperlinks color and underlining;

On article lists:

  • font size,
  • color of the read items' text and background;

Bonus - sound & vibration:

  • sound notification on Your content sources' update,
  • haptic feedback (vibration) on swipe;

Let's address each of these parts.

Within articles.

Font size, color and background:

  1. Settings ➜ Article's text ➜ Text size.
  2. Settings ➜ Common settings, check Custom colors and then tap on Text and background color.

Reading progress bar color and height:

  1. Settings ➜ Article's text, check Reading progress bar.
  2. Tap on Progress color.
  3. Tap on Progress bar height.

Footer clock font size, color and background:

  1. Settings ➜ Article's text, check Footer Clock.
  2. Tap on Text size of the Footer Clock.
  3. Tap on Clock color and background.

Hyperlinks color and underlining;

  1. Settings ➜ Article's text ➜ Link color and background.
  2. Settings ➜ Article's text ➜ Underline links.

On article lists.

Font size:

  1. Settings ➜ Articles' list ➜ Text size.

Read items' text and background color:

  1. Settings ➜ Articles' list ➜ Read articles.

Bonus: sound & vibration.

Sound notification on Your content sources' update:

  1. Settings ➜ Notifications & behavior, check Enable notifications.
  2. Tap on Ringtone.
  3. Tap on Vibrate.
  4. Tap on Light.

Haptic feedback (vibration) on swipe:

  1. Settings ➜ Advanced ➜ Vibrate on swipe.

by Thomas Leigh ( at July 08, 2019 18:05

How smart, pleasant and useful Your Handy may be?

This is the question I'd love to address, the one with the answer being constantly updated over the time with all the new stuff I can be happy to share with You :) . It's fantastic that it's enough just to wait some time to see how the app grows, influencing Your day-to-day experience in a pretty tangible manner.

Today I'm glad to tell You about all the recent important changes and improvements it's good to know about. Let's start with the key features I find most exciting:

How clean are Your articles?

The more content sources You gather within Handy, the more likely You may encounter ads or other potentially unwanted parts "here and there" among articles You read. Now it is possible to clean Your "readflow" from this stuff, at least to a high degree. Here You'll find a detailed instruction how exactly You may benefit out of this feature.

Article cleaning: before&after.

Make Handy more Yours!

Finally there is a bunch of customization options in Handy, and yet - this is not the last word here :) . Besides, regardless of common settings (like font or background color), You can - for example - set a separate color for hyperlinks, and even remove their underlining. Thanks to new customization options You also are able to finally make the reading progress bar much more readable = usable, by changing its color and/or height to Your Own linking. Here I describe in details what and how You can set up, making Handy NR much more Yours.

Now, let's take a little survey on what has been improved or introduced in terms of usability - a desired key trait of Handy:

Earlier on when You tapped on a link within an article, an external web browser stepped in - which has not been an optimal way, disrupting the seamlessness of reading in Handy. Now when You tap on a link, You'll see a menu with a couple of useful actions: it still allows You to open the link in an external browser, but more importantly, it also encourages You to do so within Handy itself (through "Read now" or "Read later" command).

Hyperlinks' Context Menu.

Although both of these commands have been available earlier on via Android share feature - You may find the in-built Handy menu significantly quicker to show up.

Intuitive image preview.

If You like to take a closer look on images illustrating articles You read - now You can do it simply by tapping an image and it should be opened in Your default gallery app.

Begin Your Handy reading always in the right place.

Usually even a moment is enough to flick through several articles in order to pick up those which You find worth reading - while skipping all the rest. The ones worth keeping You may mark as "starred" and they will wait for You within Favorites set on the sidebar,

So, depending on how much time You have at the moment, You might prefer to open the app just to quickly review unread articles - or to relax and dive into their content (having more spare time). In either case it would be nice to be able to open the app always in the right place of Your interest (like in the example above: within the Unread or Favorites).

Now it is possible, thanks to the ability to create desktop shortcuts. You can create a shortcut which will open the app directly within Favorites, Unread, or some particular feed (content source).

Custom desktop shortcuts.

Recently all the app's settings has been re-organized into several categories ("Common settings", "Articles' list", "Article's text", etc.) - so now You can find what You need easier and faster.

Smart brightness.

If You let Android to automatically adjust screen brightness, now You can schedule Handy to obey this feature once a desired time span will pass. The app will be checking the current brightness level every x minutes and apply it to itself. Here is how the Developer describes it:

"When I get outdoors after reading indoors and turn on my phone screen, the HNR brightness level is too dark (until I switch to other app), so I've introduced that function". (Alexey)

In case You'd prefer to maintain a dedicated brightness level within Handy - set Brightness update time (settings ➜ Advanced) to some big number (counting down won't consume more battery).

Full screen article headers are now finger-friendly ;) .

Have You ever tap on an article header accidentally and been frustrated by canceling an external web browser window? If so, there is a good news for You: from now on all article headers have no links attached :) ! Meaning: no more frustration involved ;) .

E-ink-friendly switching articles.

If You use Handy with an e-ink device - as one of Handy's user, Neo Pici, pointed out - You may know that swipe gestures may consume a lot of power - which is not the case when You just tap on something. Since swipe left/right were probably the most usable gestures within the app, allowing to switch between next and previous article - now You can do it also by tapping (on the top left and top right area of the screen).

by Thomas Leigh ( at July 08, 2019 12:59


Up and Running With Your Librem in Three Minutes

Security and privacy for everyone

The right to respect and privacy should be unconditional; within the digital world itself, it shouldn’t be necessary to be an expert in computer science to guarantee you can–and know how to–be entitled to those rights. Making secure and respectful devices is essential, but to be fully ethical, those devices also need to be simple to use, so everyone can use them.

Our mission at Purism is to make technologies that respects people, whoever they are and whichever background they come from. That is why we make sure that everything we develop conforms to the Ethical Design manifesto, The manifesto itself is quite simple in what it states: that everyone should have the right to be respected and to have a delightful user experience.

I am not saying that Purism’s technology is perfect in the sense of simplicity of use–nevertheless, we are constantly working towards it, and we will always keep that goal in mind. Purism is a Social Purpose corporation, it is funded by the people, and we give back all our research and development to the people. This way we make sure that the initial ethical goal of Purism is a free seed that will grow no matter what.

Up and running in three minutes

That’s all it takes. The video shows it really only takes three minutes to get you up and running with a brand-new Librem laptop. The Librem  laptops ship with PureOS pre-installed, and its setup is pretty straight forward, as you can see. No install process is necessary, no mandatory constraining policy to agree on, no probable spyware to setup for a more convenient advertising experience…

Your Librem may get to take one or two more minutes to start if the Librem One setup is part of the initial setup process, but everything will remain pretty simple–especially if you already have an account. I will be writing more on that subject soon, so stay tuned.

The post Up and Running With Your Librem in Three Minutes appeared first on Purism.

by François Téchené at July 08, 2019 12:48

July 06, 2019

This Week in F-Droid

Improving our "bus factor"

“Bus factor” is an important measure of the health of a free software project, even though the idea is quite morbid. As F-Droid has expanded from a project of one to a whole community effort. And there is much more work than one person can do. Essential infrastructure needs to be maintained by separate people to make the whole project resilient and owned by the community.

Towards that end, we have a new host for a key piece of infrastructure. The website build and deploy process is now hosted by Nick Merrill of Calyx Institute in Iceland. It is hard to find a better combination for a project that is concerned with privacy. Nick is an F-Droid user, and Calyx Institute is building the most private internet services possible, with F-Droid as a key piece. Nick also fought a secret order from the US government and won in US Federal Court after 11 years of arduous legal proceedings. Lastly, Iceland is one of the best locations for hosting internet services that need strong privacy.

Technical Details

A couple of years ago, we overhauled this website to let it be translated into any language by F-Droid contributors. We now have 15 languages live and many more in progress.

Though we did not realize it at the time, it looks like we have created the largest website that is generated using a static site generator (SSG). There is currently about 30,000 pages, ( has 75,000 pages!), and we have not found a Jekyll website with more pages. All this means the build and deploy process is resource intensive and can take a while. It has also proven a bit brittle, largely because the process uses so much RAM and CPU.

The new deploy server setup is entirely scripted with Ansible, running on a plain Debian box. So if the current server fails for whatever reason, we can easily recreate a new server. This also is great for bus factor since anyone can recreate the whole deploy setup if the existing maintainers vanish entirely.

Contributions Welcome!

One last thing: if you have ever asked why some aspect of F-Droid does not work as well as it should, then the answer most likely is: F-Droid needs more contributors! This new deploy server is the perfect example of something that anyone could have developed independently from the current contributors. The whole website is free software and publicly available, so anyone can access all the pieces to build an complete, working copy of the real site.

by F-Droid at July 06, 2019 00:00

July 05, 2019

Handy News Reader

Pure reading experience: the next step.

In Handy NR we highly value a pure reading experience: the one in which You can focus on the actual content, not being distracted by anything else.

The first major step here is the ability to read full articles regardless of active Internet connection. Once updated, each and every article should be available for You to read in its full form - neither external web-browser, nor active Internet connection are needed to any further reading of what You've already grabbed.

Now it's time to address the next step on the road to pure reading experience: the purity of the actual content themselves.

How clean are articles You read?

Handy can obtain article content either out of so-called "RSS feed" or out of the website on which the article has been published. The first way, however, often is not a good choice to rely on when it comes to be ensured that You'll be providing with full articles instead of excerpts or even sole headers. Therefore the second variant is much more reliable, just remember to check Load full articles within each of Your content source (feed) edit screen.

There is one thing worth keeping in mind here. Since articles obtained via this mode are originated directly on various websites, they sometimes may consist of some additional stuff here and there (within their text): advertisements, references to the related articles, a note on the author, sharing on social media, etc. None of those are genuine parts of the actual content, therefore they usually just disrupt Your "readflow" (sometimes it may be even hard to tell if You are still reading the article or perhaps an advertisement on some other = related one?).

What if You could get rid of all of this (or at least part of it)? With the v0.9.1 release of Handy NR we've introduced the ability to automatically exclude some of unnecessary stuff from Your articles. The feature might be called "Clean the content" (now it is called "Reload with tags") and You'll find it in the app's menu (tap on the top right while reading an article - but if You'd like to learn how exactly to use this feature, hold on for a moment and keep on reading).

Now I'll show You how to benefit from this. As an example I use articles which often contain "recommendation box": a section consisting of links to the other articles which are related to the one I currently read. Such a section may pop up "out of the blue" anywhere within an article's content. The first thing to do is to find it: with what words exactly does it begin? Take a closer look on Your article in its normal mode (i.e. before using "Clean the content" feature) to figure it out. For example, this is one such an article I've stumbled upon:

Before cleaning

As You see, the recommendation section begins with "Related Stories". Now, keeping this in mind, I choose "Clean the content" (from the top right menu) and wait for the text to be reloaded.

What You should see after a while, is Your article with a bunch of additional so-called "tags" (each blue, green or grey-marked text). Don't be confused by this strange appearance - just let it to fully load until You will be able to scroll it down. Then scroll it carefully and try to find the same position You've found a moment ago: the very beginning of the recommendations, starting with "Related Stories". Here You are how it looks considering My example:

Clean the content View

Now, the final part: observe if there is any blue-marked text close to the recommendations' beginning?

Good to know:
"Under the hood" of an article lays so-called "source code". Within it You'll find not only the actual content of an article - but also many additional elements, mostly so-called "tags".

In relation to our case tags may act as markers indicating various types of content: where it begins, and where it ends. Besides, they are organized in a Matryoshka dolls manner: placed one inside another.

It may look as follows:

...this is the actual content of an article You read and then [tagX [tagY some unwanted parts comes in - e.g. an ad tagY] tagX] ...and then the article continues...

Notice the actual [tags] which are placed within square brackets (the left for the opening ones - the right for the closing ones): Handy helps You to notice them by marking those elements with blue, green or silver color (the green one we'll discuss another time because they are a different story).

If You'd like to hide an unwanted part, try to figure out which tag acts as the most external wrapper of it. In the example above such a tag is called "tagX". Now, simply tap on this tag and choose "Hide".

Clean the content Action

If there is no blue-marked text preceding the unwanted part of the content - don't loose hope, we're working on improving Content Clean Mechanism even further to cover such cases as well.

The article should be reloaded again - once done, check out if the text is displayed correctly, i.e. 1) no more recommendations and 2) nothing else is missing.

If everything seems to be all right, You are all set: now You can enjoy Your articles being more pure - and happily benefit from this feature. From now on each new article will be cleaned automatically. If You'd like to apply the same cleaning to the articles You've grabbed before - use "Reload full text" option from the menu while reading them.

After cleaning

As a curiosity: if You'd like to enter "Clean the content view" again (i.e. after cleaning is done), You will see tags looking differently: the one which You've chosen to hide is now grey-marked, while all the content it influences is crossed out:

Clean the content View After Cleaning

If, however, it seems that after cleaning the article is not completed, You can revert the process. In order to do it:

  1. Repeat all the steps described above, but this time tap on the grey element and choose "Show".


  1. Enter the app's settings ➜ Advanced ➜ Remove text rules and remove the line with a name of the color-marked text You've hidden earlier on.

by Thomas Leigh ( at July 05, 2019 21:39

July 04, 2019

Privacy Browser

Minimizing Privacy Browser’s Attack Surface

Every piece of software as complex as a browser that receives unsanitized information from the internet will eventually be compromised. How often that happens and how damaging the compromises are can be mitigated through a careful design process. Some information about decreasing the damage that a compromise can inflict is discussed on the Core Privacy Principles page under the heading about minimizing the amount of information stored on the device. The purpose of this post is to discuss one of the methods of minimizing how often compromises happen.

An app’s attack surface comprises all the parts of the code that process information from an outside source. A flaw in any one of those pieces of code can allow the app to be compromised. Privacy Browser is composed of code from a number of sources:

  1. Code that I have written or reviewed myself. This code is hosted at and is released under the GPLv3+ license.
  2. Google’s AndroidX and Material Maven repositories, which are released under the Apache License 2.0. These libraries backport features from newer version of Android to older ones. The specific libraries in use can be seen in the build.gradle file. The code from these libraries is added to Privacy Browser when it is compiled.
  3. The free flavor contains Google’s Firebase Ads library, which displays the banner ad across the bottom of the screen. This library is released under the Android Software Development Kit license and is added to the free flavor of Privacy Browser when it is compiled. At some point in the future I would like to migrate to a different ad provider (or create one myself). The code from this library is not compiled into the standard flavor.

In addition to the above code that is compiled into the APK, Privacy Browser also uses a number of standard Android OS system libraries. In the context of Privacy Browser, WebView is probably the most important. But there are a large number of system libraries required for an app to function correctly, including Menu, TextView, Bundle, Activity, and many others. The import section of each Java file shows which system components are used by code in that class. The actual source code of these system components varies based on the version of Android that is installed on your device, which is one of the reasons why it is important to use a system with up-to-date security patches.

Each additional piece of code that is included with Privacy Browser increases the attack surface. I do not personally have the time to read through all of Android’s source code and verify that it does what they say it does and that it doesn’t contain any vulnerabilities. However, because I am only using open source components that are commonly used by many projects, there likely are a number of people who have taken the time to do so. At a fundamental level, a program must trust the operating system it runs under.

From time to time it is tempting to include a library from another source that implements a useful feature. For example, when adding OpenKeychain support for exporting and importing settings, I noticed that there was two ways to do so. One involved compiling a library of their source code into Privacy Browser. This would allow OpenPGP cryptographic operations without the need of the user having OpenKeychain installed. The other was to communicate with the OpenKeychain app using Android’s built-in intent mechanism. This method, of course, requires that the user has OpenKeychain installed. It also requires additional user interaction to accomplish each function.

Now, I have nothing but the utmost respect for the team that builds OpenKeychain. I have no reason to suspect that their code is compromised in any way. But I also am not able to verify myself that their code is not compromised. I do not have the necessary background to audit cryptographic source code. And even if I were able to certify a particular version of their library, I would not have the time to re-audit each new release. This is not just an academic concern; malware infections of common libraries, either through the addition of malicious code by a contributor or via a compromise of the platform where they are hosted has happened many times in the past.

Even if there is no intentionally malicious code in a library, from time to time there will almost inevitably be security bugs. If the code is included in Privacy Browser, when that bug is exploited the attacker can run any command and access any code in Privacy Browser’s context. But if the code is running in a separate context (like inside the OpenKeychain app), then it can only access that app’s data. Thus, keeping the code in a separate app leverages Android’s built-in security apparatus to decrease the negative impact of any successful exploit.

by Soren Stoutner at July 04, 2019 22:11

July 03, 2019


Runs on the Librem 5 Smartphone – Week 2

We have just wrapped up our second week of looking at one new application (or game, or feature) running on the Librem 5 Smartphone Development Kit every single day.  (You can find the first 7 pieces of software running on the Librem 5 being shown in the Week 1 post.)

Below you’ll find the software for Week 2 (days 8 through 14) — from Emacs to Torrents to Games.

Side note: If you pre-order the Librem 5 before July 31st, you save $50.

Day 8 – GNOME Clocks (also on YouTube)


Day 9 – Emacs (also on YouTube)


Day 10 – Password Safe (also on YouTube)


Day 11 – OpenTTD (also on YouTube)


Day 12 – GNOME Podcasts (also on YouTube)


Day 13 – Fragments Torrent Client (also on YouTube)


Day 14 – Drawing (also on YouTube)

The post Runs on the Librem 5 Smartphone – Week 2 appeared first on Purism.

by Bryan Lunduke at July 03, 2019 22:30

/e/ foundation

Leaving Apple & Google: /e/ users meetups, smartphones with /e/ ready to ship!

Leaving Apple & Google: /e/ users meetups, smartphones with /e/ ready to ship!

/e/ users: first meetups!

As /e/OS gains momentum all over the world, many users have been looking to connect, discuss and exchange about their experience with /e/. Meetups are a great way to empower communities, connect live, support each other and help spread the word!


Want to join a meetup or create one? Check our community forum for more details. We’d love to help and we can assist with content, stickers, anything to make it cool and fun!


First meetups:
– Toulouse, France (DONE!)
– München, Germany
– San Francisco, CA, USA
– Vienna, Austria

Shipping first smartphones with /e/!

As we announced earlier, we are partnering with professional smartphone refurbishers to provide you the first smartphones with /e/, at a great price! First devices will be Samsung Galaxy S7 and Samsung Galaxy S9.


We are starting to ship to the first customers early next week!
Register NOW and be among the first to get your phone with /e/.

You can be part of something BIG… support /e/!

You can take part in creating history and help us to make it big! Act now and fuel the project growth: to support more smartphones, create a better and faster infrastructure, and launch new projects with personal assistants…

You can Act now and join our great /e/ supporters Hall of Fame!

Write the story with us!

Follow us on Twitter and Mastodon: @e_mydata

by Samuel Cazin at July 03, 2019 15:46

July 02, 2019

Gregor Santner

Markor v2.0 - Search, dotFiles, PDF export

Markor v2.0 update is out! Get the update now from Google Play, GitHub or F-Droid!
Continue reading to find out what’s new, improved and fixed in this update.

File search has returned to Markor! Search is decoupled from file browser and supports recursive file search.
In the editor there is also a new dedicated button in the menu toolbar for search.
Now there is always a search button available in all type of pages, even better it’s always at the same position.


Improved image, PDF sharing and printing

The color scheme is now automatically switched to light with white background, when sharing or exporting a document as PDF or image. As PDF export and printing uses the same Android feature, the improvement is also available for priting.

With this change, Markor will always automatically generate clean white documents for you (without theme specific background color), perfect for printing.

Improved file handling

Markor will ask now if a file should be opened inside editor, if it’s one of the extended list of expected file typs. You will now get a dialog to choose between Markor or external app. This list of file types includes but is not limited to data exchange (like csv, json, xml, yaml) and development (c++, java, python, ruby, golang, bash) files types.

There is also a new settings option in the general section, which allows to specify a comma seperated list of file extensions that always should be opened with Markor. If you want to open files with .gradle and .pro extension, as well files without extension: None, .mytype.

Various improvements

  • Always view files starting with “index.”
  • Setting to configure wrap mode (=line breaking)
  • Menu option for reload file (editor/viewer)
  • Menu option for hiding files & folders starting with a dot
  • Setting to set tab width
  • Improve back button when always start view mode is set
  • Keep file browser sort order
  • Improve inline code highlighting
  • Add new line when archiving tasks

July 02, 2019 22:00


Librem 5 App Design Tutorial — Part III

Naming your app

So you finally started working on the awesome idea you had for a GNOME app, designed a great interface for it and want to start building it. You open Gitlab in order to create a new repository… and oh no!, it wants a name.

Existential dread sets in. Naming things is hard, and naming user-facing things even more so. App names are read, pronounced, heard of and remembered by lots of people. A name is, along with an icon, the most important identifier for your project. This tutorial will help you find a great name for your app–or, at least, make it a bit easier.

Gitllab new repository

General Guidance

As the GNOME Human Interface Guidelines puts it:

“An application’s name is vital. It is what users will be first exposed to, and will help them decide whether they want to use an application or not. It is a major part of your application’s public face.”

A good name is hard to find, but putting in a bit of effort up-front is worth it, since renaming the app afterwards is much harder (and messier). A good name should consist of one or two simple nouns; be related to the app’s domain (e.g. Celluloid for a video app); be short (less than 15 characters) and easy to pronounce. It should also make it easy to come up with a good icon (e.g., reference an object that could be turned into an icon), and use title case (e.g. Icon Preview instead of iconPreview).

On the other hand, a good name should probably avoid using trademarks or names of other projects (e.g. GNOME MPV); having a “G” prefix (e.g. GParted); being overly complicated, whether a name or an acronym (e.g. GIMP, GNU Image Manipulation Program); relying on puns and inside jokes (e.g. D-Feet), using non-standard punctuation and whitespace (e.g. UberWriter) or made-up words and word combinations (e.g. Inkscape).

The Process

Having been involved in naming a lot of projects, I now have a process which consistently produces pretty good results: I write down all the words related to the app’s domain I can think of; do a thesaurus search of some of those words, find even more related words and, when I have about 15, I pick out the best-sounding ones, and ask myself: Are they too long? Are they easy to pronounce? Could they have negative connotations? I do a quick check to see if the names are already taken and, among those not taken, choose my favorite one.

Naming an app which is part of GNOME is slightly different, because apps have completely generic names describing their function or type content (e.g. Files, Image Viewer, Fonts, Music). Since this is much simpler–and unusual–in this tutorial we’ll focus on independent, third-party app naming only. Let’s start with a real-world example: a few months ago I was involved in renaming an internet radio app called Gradio–a bad name for many of the above-mentioned reasons. We wanted a nicer name for the new, completely rewritten version of the app.

1. Brainstorm

So, Internet radio. What immediately comes to mind? Well, let’s say Radio, Transmission and Stations. But these are pretty generic terms, so let’s branch out a bit. As with most digital technologies, it’s hard to find nice metaphors, but we can use their analog predecessors (i.e. analog radio).

Are there any related physical objects we can use? Maybe Receiver, Headphones and, say, Antenna? Maybe also something related to analog radio technology, such as Transistor or Frequencies? We also considered the names of people who worked on the technology, like Marconi and Hertz.

2. Thesaurus

Now that we have a few words to start with, let’s plug them into a thesaurus (or a similar site, like and see if there are any good related words. and see if there are any good related words. This is usually pretty hit or miss, as most related words will neither be relevant to the domain, nor make sense as names. But I always find a few good options that I didn’t think of before.

A few additional words from a thesaurus search were Transmission, Shortwave, Wireless and Decibel. We also had a brainstorming session on Matrix with a group of people from the community, which gave us Longwave, Shortrange, Hzzzzz, Spectrum and Waves.


3. Pick the best ones

We had about 20 words, so we stopped brainstorming and started looking for the ones that would make good names. This is not a scientific process: just take each word and imagine it as the app’s name, paying attention to its length, ease of pronunciation, and whether it sounds nice.

My favorites were Transistor, Hertz, Spectrum and Shortwave. They’re all relatively short, easy to pronounce, and sound good as app names. We now need to know if we can use them.

4. Check if they’re taken

I usually start off by searching directly on Github to see if any other FOSS projects are already using a name. If I don’t find anything there, I search for the name on Duckduckgo, adding “app” or “open source”. You’ll often find something somewhere using the name already; not necessarily a problem, if it’s an app/project/company from a different domain–but it’s better to avoid large projects and companies.

Transistor search

It turned out Transistor is already a radio app for Android. Since our app does something very similar, people might think it is affiliated with that project, which we want to avoid; and Hertz is the name of a car rental service. It’s a big company, so best to stay away from that as well. Spectrum is already the name of a forum software (which looks really cool, by the way). The potential for confusion is low here, but the project is well-established, with 6000+ stars on Github, so also not a great option. Finally, Shortwave is used by a bookmarking app; some search results are related to actual analog radio software, but nothing looks too problematic, and it seems viable.

So, the process is always the same: a quick search to check what’s out there and determine the potential for confusion or trademark problems. Since you’re working on a free software app, you’re probably not going to get into legal trouble, but you may have to change the name later on.

5. Pick a winner

You probably know which name you want by now, so go ahead and make it official. In our case Shortwave won. It is good because it is short, distinct-sounding, related to the domain, a pronounceable English word that is not taken by any major projects or companies.

And if all your favorites are taken, go back and do some more brainstorming: the perfect name for your app is out there, and you will find it!



Here are some examples of well-named third party apps in the GNOME ecosystem, and what makes their names great:

Fragments, a torrent app. The name is great because it is unique among torrent app names (which usually reference water, e.g. Deluge), yet clearly connected to its domain, since BitTorrent splits files into lots of tiny parts and sends them in random order.

Peek is a GIF screen-recorder with a very appropriate name: it makes short recordings of small parts of the screen and feels small, quick, and frictionless–all of which the name perfectly encapsulates.

Teleport sends files across the local network. The idea behind it is to make sending the file seem effortless when compared to other methods, such as using web services or USB drives. The Sci-Fi metaphor is perfect for that.

That’s it for now–I hope you enjoyed this tutorial, and if you feel like reading the full version, you can find it here.

The post Librem 5 App Design Tutorial — Part III appeared first on Purism.

by Tobias Bernard at July 02, 2019 15:44


June 30, 2019

Paul Schaub

Dealing with Colors in lower Android versions

I’m currently working on a project which requires me to dynamically set the color of certain UI elements to random RGB values.

Unfortunately and surprisingly, handy methods for dealing with colors in Android are only available since API level 26 (Android O). Luckily though, the developer reference specifies, how colors are encoded internally in the Android operating system, so I was able to create a class with the most important color-related (for my use-case) methods which is able to function in lower Android versions as well.

Link to the gist

I hope I can save some of you from headaches by sharing the code. Feel free to reuse as you please 🙂

Happy Hacking!

PS: Is there a way to create Github-like gists with Gitea?

by vanitasvitae at June 30, 2019 11:11

June 28, 2019


Handy News Reader


This website is a kind of a "fanpage" dedicated to Handy News Reader - an Android app with the help of which You can be up-to-date with all Your interests - in a very convenient way: respecting Your Time as well as Your Inner Peace (it avoids switching attention and distractions which are so familiar today when You think of mobile devices).

I've created this website with the aim of letting You know that there is an app out there - which may come in handy and make a significant difference in Your life. If I'd be asked for its bottom line - I would tell that

staying in touch with all My Passions and Interests never has been so easy.

Users say:

1. How do You use RSS in general?

"I'm addicted to it. Mainly I follow other people's blog via RSS (a couple hundreds, used to be >1k). Sometimes I add a newspaper to it as well. But since the quality went down, I switched to blogs, where I know, that the content is opinionated.". (Ryuno-Ki )

"Mostly Technews - so Heise, Arstechnica, etc - during my commute to work". (Spleeeno)

"Newspapers: heise, golem, spiegel, sz, etc." (paulle)

"Newspaper: Freie Presse, n-tv, Der Postillion and some other feeds". (SIRSteiner)

"I heavily use RSS feeds every day. It is my primary source for keeping up with:
- a wide range of news and current affairs articles (local, national and international)
- my many interests (e.g. space/science, aviation, renewables/sustainability, tech, FOSS, anime and more)". (Tony)

"Reader for websites", (b16r05)

2. What features You find most appealing to You personally - and why?

"The ability to reduce everything to just the text. I can remove all the Icons in the article view, I can stop loading all the pictures in the articles themselves, so I can squeeze as much text as possible on my screen. Since I mostly use it on E-Ink Devices (YotaPhone and some Android Tablets) this is one of the few apps that I can tune to work perfectly with those kinds of displays". (Spleeeno)

"I've to repeat the comment of @Spleeeno 'The ability to reduce everything to just the text. I can remove all the Icons in the article view, I can stop loading all the pictures in the articles themselves.'". (paulle)

"Easy to use, automatic refresh and many useful settings". (SIRSteiner)

"- the ability to open a feed image in my gallery app and manage it like a photo (zoom, edit, share, etc.),
- UI - more options available using swipe/gestures,
- UX - ability to run gifs and videos (not available in my previous reader);" (Tony)

"URL ability to pull feeds from websites that don't offer a dedicated RSS/ATOM feed". (b16r05)

Persons behind the scenes:


Alexey - the developer of the app - usually programmes in C++ with Qt library and Java. Alongside Handy News Reader He created very interesting and promising Clock and event widget - a widget-based multi-functional organizer app.


Thomas Leigh - responsible for the design of this website, English and Polish version, and all the copywriting involved.


Ronny Steiner - a man of great help: as a beta-tester He provides a valuable feedback and contributes in the app's development, code- and idea-wise. Thanks to Him the HNR project now can be much easier available for translation to other languages by anyone who is willing to help in this regard. Furthermore, He also did the translation both of the website and the app into German language. Thank You! :)

by Thomas Leigh ( at June 28, 2019 10:04

June 27, 2019


Made in USA Librem Key

Purism is happy to announce the new, made in USA Librem Key

What does “Made in USA” mean?

We would never use the words “Made in USA” lightly. We had to meet very strict requirements before being allowed to use that label. It’s well-known that other firms have been fined for mislabeling their Made in China products as Made in USA, for instance because “screwdriver assembly” only (getting electronics made elsewhere and doing final case-assembly in the USA) is not enough to qualify for “Made in USA”. A company can source specific, individual electronics components from around the world (we source chips like the OpenPGP smart card from a European supplier, for example) but must actually make–as in fabricate–the product here, in the US, to be able to label it as “Made in USA.”

Protecting the digital supply chain matters

We are investing in improvements all across our supply chain. We have written about the importance of protecting the digital supply chain before, and are now pleased to announce a major, related improvement: the new, made in USA Librem Keys!

The original Librem Keys were manufactured by Nitrokey as part of our initial partnership. We will be manufacturing the Librem Key v2 in the same US facility where we manufactured our Librem 5 devkits; it will have the same features of the original Librem Key, use the same OpenPGP smart card chips, and the inside will look almost the same–but the outside will have a new, re-branded case saying “Made in USA”.

Tight supply chain control is very important, because this device will hold your most sensitive secrets–your GPG keys, your PureBoot secrets. We oversee the complete production of the Librem Key, so they never leave our sight–from PCBA to finished product–until we send them to you. You can trust not only the keys, but also any laptops configured (at our facility) with PureBoot and protected by those same Librem Keys.

This is only the beginning

Made in USA Librem Keys are only the beginning: we have already tested the capabilities of our US facility by making Librem 5 devkits there, and as we continue to fine-tune our operations with the Librem Key, we are testing how many more of our products we can build there.

Having Made in USA, in-house fabrication ensures freedom, security, and privacy for people and enterprises. This is the second Made in the USA product by Purism, but only the beginning of what we have coming.

If you are interested in Made in USA Librem Keys, you can find more information about them here.

The post Made in USA Librem Key appeared first on Purism.

by Kyle Rankin at June 27, 2019 16:31

Purism’s Librem Key is Now the First and Only USB Security Token to be Made in the USA

Version 2 of the first and only security key offering tamper evident laptop protection has a tightened supply chain to ensure privacy and security for users

SAN FRANCISCO, Calif., June 27, 2019 – Purism, the social purpose corporation which designs and produces popular hardware and software that protects users’ digital lives, today announced its Librem Key product will be the first device of its category to be made in the USA.

Librem Key, the first and only OpenPGP smart card closely integrated with the Heads-firmware offering a tamper-evident boot process, launched in September 2018. Initially manufactured in-part by partner Nitrokey, Purism is now manufacturing Librem Keys entirely from Purism’s Carlsbad, California headquarters – the same U.S. facility used to manufacture its Librem 5 smartphone devkits in 2018. Version 2 also stores up to 4096-bit RSA keys and up to 512-bit ECC keys and securely generates keys directly on the device.

Supply chain security is a rising concern due to the lack of control hardware companies have over manufacturing links. Threats include security hacks, malware concerns, cyber-espionage, and even copyright theft. Purism sees protection of its supply chain as an existentially important issue, and has invested in supply chain improvements including the launch of Librem Key V2.

“Having a secure supply chain is critical for hardware that holds your most sensitive secrets,” said Kyle Rankin, Chief Security Officer of Purism. “By making the Librem Key in the USA, we’ve removed even more links in the supply chain and can directly oversee the complete process from Librem Key production to shipping to the customer. Here at Purism we hope to lead by example, lessening uncontrolled links and understanding every step of our supply chain.”

Purism takes the “Made in USA” label seriously, especially as other firms have been fined for mislabeling their products as American made when they were made in China. For example, “screwdriver assembly” – electronics made elsewhere and doing final case assembly in the USA – does not qualify a “Made in USA” stamp of approval. And while a company can source specific individual electronics components like resistors or unpopulated circuit boards from around the world, the company must fabricate the product here in the US to qualify as “Made in USA.”

“Librem Key’s USA fabrication is yet another area where Purism is beating the technology giants by ensuring a secure supply chain for critical hardware, and it has been our goal to do so since we formed in 2014,” said Todd Weaver, founder and CEO of Purism. “As we start to move more and more of our manufacturing to the U.S., it will give us complete control over the production lifecycle, which means that eventually our devices will never leave our purview, from schematics, through PCBA (Printed Circuit Board Assembly), to finished product.”

This move will enable Purism to exponentially increase manufacturing volume to meet growing sales demands.

A Key to the future

Made in USA Librem Keys is the beginning of Purism’s journey to a tighter supply chain. Since the inception of Purism in 2014, the company has been working toward a U.S. supply chain because of the security implications and benefits.

Purism has already tested the capabilities of its U.S. facility by making Librem 5 devkits late last year, and the company continues to fine-tune operations with the Librem Key and setup for more of its products to be built there.

The investment in protecting user privacy and security has paid off. Purism has seen triple-digit sales growth year-over-year since its founding in 2014 and even with a rapidly growing 60+ person team continues to grow funded from profits.

Made in the USA Librem Key will begin shipping on July 4, 2019. Learn more about Librem Key here:

About Purism:

Purism is a Social Purpose Corporation devoted to bringing security, privacy, software freedom, and digital independence to everyone’s personal computing experience. With operations based in San Francisco, California, and around the world, Purism manufactures premium-quality laptops and phones, creating beautiful and powerful devices meant to protect users’ digital lives without requiring a compromise on ease of use. Purism designs and assembles its hardware by carefully selecting internationally sourced components to be privacy-respecting and fully Free-Software-compliant. Security and privacy-centric features come built-in with every product Purism makes, making security and privacy the simpler, logical choice for individuals and businesses.

Media Contact:
Marie Williams

The post Purism’s Librem Key is Now the First and Only USB Security Token to be Made in the USA appeared first on Purism.

by Todd Weaver at June 27, 2019 16:14

Guardian Project

June 26, 2019


Runs on the Librem 5 Smartphone – Week 1

As we steadily work towards the release of the Librem 5 smartphone (Q3 of 2019), we’re taking a look at one new application (or game, or feature) running on the Librem 5 Development Kit every single day.

Below is the first week worth–Solitaire, web browser, system tools, note taking… just all over the map. Some of these are mobile optimized applications. Others are desktop Linux applications, running unmodified on Librem 5 development kit hardware.

What will the next week hold? Which applications and games will we take a look at over the coming week? Who knows! (Well. I do. But I’m not telling.)

Side note: If you pre-order the Librem 5 before July 31st, you save $50. And fifty bucks is fifty bucks.

Day 1 – Solitaire (also on YouTube)


Day 2 – Gedit and Apt (also on YouTube)


Day 3 – Web Browser (also on YouTube)


Day 4 – GNOME Calculator (also on YouTube)


Day 5 – GNOME Dictionary (also on YouTube)


Day 6 – Evince Document Reader (also on YouTube)


Day 7 – Annotated Note Taking with Xournal (also on YouTube)

The post Runs on the Librem 5 Smartphone – Week 1 appeared first on Purism.

by Bryan Lunduke at June 26, 2019 16:21

June 25, 2019


The New Generation of Tech and Stronger Privacy Laws

Read all about how Todd Weaver and Brendan Eich reject Big Tech’s efforts to weaken California’s privacy law.

In a nutshell, what you can read in The Mercury News is how every Big Tech company seems to care about privacy now—while quietly attempting to dismantle the California Consumer Privacy Act before it even goes into effect. Why? California’s new privacy law requires large companies to respect basic information rights: what is collected, sold, traded or shared.

Sharing intimate information and manipulating users’ choices and actions are serious mistakes.

Our colleagues in Big Tech worry about privacy violations too… and that’s why so many of them don’t allow their own children to use the products and services they sell.

Regulate us. Seriously.

We don’t believe in building things we wouldn’t let our own kids use, and that’s why we want to strengthen California’s consumer privacy law. Our industry knows how to innovate and adapt, we thrive in the startup mindset of tackling new challenges, we know how to conquer what seems impossible. Regulation that helps civilians is critical; regulation that creates a barrier to entry for competition and protects technology giants is not.

We know how to imagine, dream, innovate, and implement.

We want to make sure our customers, their families and our families–everyone’s privacy rights–are protected. It is imperative. Because strong privacy laws are good for everyone.

Read the full article in The Mercury News post–written by our CEO, Todd Weaver, and Brave CEO, Brendan Eich.

The post The New Generation of Tech and Stronger Privacy Laws appeared first on Purism.

by Todd Weaver at June 25, 2019 08:23

Guardian Project

NetCipher update: global, SOCKS, and TLSv1.2

NetCipher has been relatively quiet in recent years, because it kept on working, doing it was doing. Now, we have had some recent discoveries about the guts of Android that mean NetCipher is a lot easier to use on recent Android versions. On top of that, TLSv1.2 now reigns supreme and is basically everywhere, so it is time to turn TLSv1.0 and TLSv1.1 entirely off.

A single method to enable proxying for the whole app

As of Android 8.0 (26 aka Oreo), it is now possible to set a URLStreamHandlerFactory, which creates URLConnection instances with custom configurations. If an app is using the built-in HttpURLConnection API for its networking, it is now possible to enable global proxying with a single method call when the app starts: NetCipher.useGlobalProxy(). Then the actual proxy configuration can be set dynamically, using things like NetCipher.useTor() or NetCipher.clearProxy().

The URL.setURLStreamHandlerFactory() method is a little odd because it cannot be unset or changed after it has been set. NetCipher handles this by letting the app configure the proxy settings separately, so they can be disabled even though the custom URLStreamHandlerFactory is still active. Also, it is possible to use URL.setURLStreamHandlerFactory on Android 7.x also, but it leaks DNS, so it is not recommended for privacy proxies. It would still be useful as a failsafe for apps that use NetCipher.getHttpURLConnection(), in case there are any calls to URL.openConnection() added with the right proxy setup. At the very least, the content will be proxied on Android 7.x, even if it leaks DNS.

Native SOCKS Support

In Android 7.0 (24 aka Nougat), Google switched over to OpenJDK, which brought working SOCKS support to Android. SOCKS is the best protocol for effective proxying, and it is the protocol that Tor itself has always natively supported. Orbot has always provided a separaete HTTP Proxy to support Android, but that has always proven brittle, and was often the source of problems. Since Android 7.0 and above natively support SOCKS, calling NetCipher.useTor() will now default to using SOCKS if the device is running Android 7.0 or higher.

Bye bye TLSv1.0 and TLSv1.1

Transport Layer Security (TLS) is the protocol that powers most of the internet these days. It gives HTTPS the S for “Secure”. After many years of slow updates and an increasing number of vulnerabilities, there is finally critical mass to stop using the old, broken versions. TLS version 1.2 is not seriously vulnerable and is supported basically everywhere. TLSv1.2 was finalized in 2008, so this is very far from the bleeding edge. TLSv1.2 is supported all the way back to Android 4.1. TLSv1.0 and TLSv1.1 are due to be officially deprecated by the IETF, the standards body that actually creates the TLS standard. The major browser vendors have all promised to drop them in 2020.

One way to enforce TLSv1.2 support would be to configure the server-side to stop supporting TLSv1.0 and TLSv1.1, like is recommend with SSLv2 and SSLv3. Using NetCipher to do this on the client side means that old app versions and devices of F-Droid and old devices will continue to work. Also, doing it client-side means that all TLS connections will gain this protection regardless of which server the client is connecting to.

The NetCipher approach means apps will never use TLS older than v1.2 since they will refuse to connect unless TLSv1.2 is available. The server-side can then safely support TLSv1.0 and TLSv1.1, so older clients and Android devices will still be able to connect, even if they do not support TLSv1.2. It is win-win for everyone.

The one case that will fail entirely is connections to servers that do not support TLSv1.2. If a webserver does not support TLSv1.2, it is really too old to be used safely anyway. Even the oldest supported Red Hat Enterprise Linux release (6) supports TLSv1.2, and that was released in 2010.

WebView Proxying!

WebView provides an easy way to show a webpage or build a web app. If you want that page to always go over Tor, that is difficult since WebView has no API to configure proxying. NetCipher has a long running collection of hacks that span the Android versions to get proxying working in WebView. We have revived those, modernized them, and added a full test suite to confirm whether the proxying is leaking. The good news is that proxying is working pretty well on all but Android 5.x (21 and 22), where it totally fails.

Another new Android API we discovered is WebViewClient.shouldInterceptRequest(). This is an official API for manipulating HTTP requests in WebView. It is an an easy place to insert custom HttpURLConnection instances, like NetCipher needs to configure proxy support and stronger TLS. Using this API means eliminating Java reflection hacks. But it has a large caveat: it only works for GET requests. Since the request body is not accessible via this API, it is not possible to implement POST or PUT requests. One nice approach for the best of both works is to handle GET with WebViewClient.shouldInterceptRequest(), then POST and PUT could then be implemented separately using the reflection methods in NetCipher WebView.


This release also brings with it an extensive, new test suite. These let us confirm that things are working on all the supporting Android versions, while also serving as simple example cases. For example, the tests now confirm which Android releases support WebView proxying, based on Cure53’s very useful HTTPLeaks.

June 25, 2019 00:00

June 20, 2019

This Week in F-Droid

Two new ways to get apps nearby, without internet

There are many reasons why it is often better to do things without the internet:your data plan is expensive, there is limited coverage in the area, there is an internet outage or shutdown, or even something is private and should not be online at all. Or even, if you are setting up a new device, you can easily send all your existing apps over to the new device. This is why F-Droid has included the “Nearby Tab” for swapping apps and files without internet. F-Droid v1.7 includes a major overhaul of the existing functionality, so it should work a lot better now, especially when using Wi-Fi. Two new “nearby” methods were added on top of that, to provide effective ways of exchanging apps between devices.

The first is “hotspot” mode, where one device is acting as a Wi-Fi Access Point. Android does not make it easy to do, since apps cannot always known what the state of the Wi-Fi is. Thanks to the accesspoint library from long time F-Droid contributor @mvdan, it can do a lot more.

The second is using SD Cards and USB On-The-Go (OTG) flash drives as a source of F-Droid repos. Flash drives can provide a very high bandwidth method for transferring files, when they are easy to move from device to device. Our goal is to make the whole user experience as smooth as possible, so people can regularly move data with these affordable, widespread data buckets. USB-OTG and SD Cards can host standalone repos as well as mirrors of existing repos. Those repos need to be copied to the flash drive first, like from a laptop. That can be done using fdroid mirror, for example:

$ cd /media/user/F-DROIDORG
$ fdroid mirror
$ wget
$ mv index-v1.jar fdroid/repo/

USB OTG support is new and alpha. It works, but needs a lot of polish on the user experience. For example, it should show the scanning progress. Also, Bluetooth is still flaky on many devices, some of that comes from the devices poor support for generic data service over Bluetooth.

by eighthave at June 20, 2019 00:00

June 19, 2019


Librem 5 June Software Update

Hi everyone! The Librem 5 team has been hard at work, and we want to update you all on our software progress.


A couple of blog posts back, we mentioned that our hardware engineer gave a talk at KiCon—and it is available for watching now!

Also, recently Tobias Bernard attended the Libre Graphics Meeting, where he had lots of conversation around the future photo viewing application for the Librem 5 phone.



Libhandy v0.0.10 was released and has a slew of cool new widgets! In summary, the new widgets are:

  • HdyViewSwitcher: a view switcher which can automatically adjust its layout to fit narrow screens
  • HdySqueezer: a widget that allows switching where the view switcher is
  • HdyHeaderBar: an advanced header bar
  • HdyPreferencesWindow: an adaptive preferences window for all applications

A nice aesthetic change is that HdyComboRow handles long labels better now—by ellipsizing them.

Below you can see how HdyViewSwitcher makes the Clocks application adaptive.

Below you can see how the HdyPreferencesWindow is used in GNOME Web to make the preferences window adaptive.

We also improved Libhandy’s test suite.


Work has continued to extend wys to instantiate PulseAudio’s loopback module—which ties the modem’s and codec’s ALSA devices together when a call is activated, and de-instantiates the module when the call is terminated. Since this causes conflicts with hægtesse, a scheme was devised to keep both hægtesse and wys from running at the same time.


A chat history is being implemented via an SQLite database. Thank you, Leland Carlyle, for all of your hard work in this area!

Account verification has been added so that now, when you add a new account, a connection is established to the server and (in case of failure) the user is alerted. Thanks to Benedikt Wildenhain for the patch!


We are very committed to providing encrypted messaging when the phone ships, so we have made an extra effort to implement OMEMO encryption, via the Lurch
. Recent changes in this plugin have led us to ongoing integration and testing with Chatty.

There is a padlock symbol in the message bar now, indicating whether the chat is encrypted or not. You can also view your fingerprint—as well as your conversation partner’s fingerprints (see example below). Thanks, Richard Bayerle, for all of your work on the Lurch plugin!

Web Browsing

GNOME Web will benefit from the new widgets released in Libhandy 0.0.10, as mentioned above. Additionally, since recent testing has identified some bugs in GNOME Web, our development team has been looking into some of these issues. The outcome has been the reporting of many of those issues upstream.

Initial Setup

We plan to deliver GNOME Initial Setup in the first shipment of the phone—because it is very important for setting up your environment. Before any major porting effort was possible, though, some design effort was needed—and now porting work is underway!


So many exciting things are happening at the system level!

After many revisions, the librem5-devkit device-tree has been accepted upstream. To prepare for this, the same device tree name is used both in the kernel and in the flash-kernel as well.

The devkit image went through lots of changes, too. Wlroots v0.6.0 is now available, and contains many of our necessary changes. To make the overall experience look nicer, the shell now prefers the dark theme, and the keyboard auto-hides when the app drawer is opened. Detecting corrupted downloads of images has been made faster by adding a size verification. Thanks to Hugo Grostabussiat for the patch! The devkit image has support for the camera, too–and below you can see the devkit’s first selfie 🙂

Devkit first selfie

Several areas of the kernel have seen major improvements, and we are now very close to some important milestones. One such area is forward porting patches so that the images built for the devkit can switch from a 4.18 to a 5.2 kernel, and we’re almost there! You can find a recent image build with the 5.2 kernel here.

With the new kernel, you will be able to long press the power button to turn on the devkit, and use suspend/resume. To help better detect SoC revisions, an RFC
has been sent to improve this. Working towards improving the power management, we are testing cpufreq and preparing some cpuidle tests.

A lot of effort has been put into debugging the sound on the 5.2 kernel. After many hours of work, we have discovered that ATF was blocking access to the aips regions—and upstream ATF has it fixed now!

On the shell side of things, phosh has been made a polkit agent (so things like GNOME Software can ask for elevated credentials). We made some other improvements, like hiding the OSK when it’s not needed, removing the weekday/date from the lock screen, and making it easier to use Glade with phosh. Since a compositor switch is coming soon, the team applied many improvements to the new compositor, phoc (phone compositor). We will be showcasing this new compositor soon, so stay tuned for that!

Also, and to get us closer to separating the bootloader from the OS, we have been putting a lot of effort into placing u-boot in the MMC area. Flash has been enabled in u-boot, so that the DDR PHY firmware can be written to flash. Thank you so much, Kyle Evans, for the work on mainline u-boot!

The work on the graphics stack continues, too. To work towards mainline GC7000 GPU support, we folded the etnaviv part of libdrm into mesa upstream. Our thanks to Christian Gmeiner and Dylan Baker for the review! To take a look at the graphics on the devkit, check the Quake II demo below.


To improve the devkit unboxing experience, lots of how-to guides have been added or updated:

Some more noteworthy updates have been added to the Status of Subsystems page and the devkit peripheral software interfaces.

A big “Thanks!” to everyone that has helped review, and merge changes, into upstream projects; your time and contribution are much appreciated. And that’s all for now, folks—stay tuned for more exciting updates to come!

The post Librem 5 June Software Update appeared first on Purism.

by Heather Ellsworth at June 19, 2019 16:27

June 18, 2019


Replicant contributors meeting the 27,28 July in France

A Replicant contributors meeting will take place in or near Paris in France the 27 and 28 July 2019.

As we are still looking for a place to host the meeting, we don’t have a definitive address yet.

It will be open to anyone who contributes or wants to contribute to the Replicant project.

The meeting will most likely be in English as not all the Replicant contributors who plan to attend speak French.

More details will be posted on the wiki page dedicated to this event over time.

Last minute information, if any, will also be posted on that wiki page.

by GNUtoo at June 18, 2019 16:12

June 17, 2019


The New libhandy 0.0.10

Libhandy 0.0.10 just got released, and you can get this new version here. It comes with a few new adaptive widgets for your GTK app we’d like to tell you about:

The View Switcher

GNOME applications typically use a GtkStackSwitcher to switch between their views. This design works fine on a desktop, but not so well on really narrow devices like mobile phones, so Tobias Bernard designed a more modern and adaptive replacement – now available in libhandy as the HdyViewSwitcher:Adaptive view switcher

In many ways, the HdyViewSwitcher functions very similarly to a GtkStackSwitcher: you assign it a GtkStack containing your application’s pages, and it will display a row of side-by-side, homogeneously-sized buttons, each one representing a page. It differs in that it can display both the title and the icon of your pages, and that the layout of the buttons automatically adapts to a narrower version, depending on the available width. We have also added a view switcher bar, designed to be used at the bottom of the window: HdyViewSwitcherBar (and we’d like to thank Zander Brown for the prototypes!).

The Squeezer

To complete the view switcher design, we needed a way to automatically switch between having a view switcher in the header bar, and a view switcher bar at the bottom of the window.

We added HdySqueezer; give it widgets, and it shows the first one that fits in the available space. A common way to use it would be:

<object class="GtkHeaderBar">
  <property name="title">Application</property>
  <child type="title">
    <object class="HdySqueezer">
      <property name="transition-type">crossfade</property>
      <signal name="notify::visible-child" handler="on_child_changed"/>
        <object class="HdyViewSwitcher" id="view_switcher">
          <property name="stack">pages</property>
        <object class="GtkLabel" id="title_label">
          <property name="label">Application</property>
            <class name="title"/>

In the example above, if there is enough space the view switcher will be visible in the header bar; if not, a widget mimicking the window’s title will be displayed. Additionally, you can reveal or conceal a HdyViewSwitcherBar at the bottom of your window, depending on which widget is presented by the squeezer, and show a single view switcher at a time.

Another Header Bar?

To make the view switcher work as intended, we need to make sure it is always strictly centered; we also need to make sure the view switcher fills all the height of the header bar. Both of these are unfortunately not possible with GtkHeaderBar in GTK 3, so I forked it as HdyHeaderBar to, first, make sure it does not force its title widget to be vertically centered, and hence to allow it to fill all the available height; and second, to allow for choosing between strictly or loosely centering its title widget (similarly to GtkHeaderBar).

The Preferences Window

To simplify writing modern, adaptive and featureful applications, I wrote a generic preferences window you can use to implement your application’s preferences window: HdyPreferencesWindow – and organized it this way:

• the window contains pages implemented via HdyPreferencesPage;

• pages have a title, and contain preferences groups implemented via HdyPreferencesGroup;

• groups can have a title, a description, and preferences implemented via rows (HdyPreferencesRow) or any other widget;

• preferences implemented via HdyPreferencesRow have a name, and can be searched via their page title, group title or name;

• HdyActionRow is a derivative of HdyPreferencesRow, so you can use it (and its derivatives) to easily implement your preferences.

The next expected version of libhandy is libhandy 1.0. It will come with quite a few API fixes, which is why a major version number bump is required. libhandy’s API has been stable for many versions now, and we will guarantee that same stability starting from version 1.0.

The post The New libhandy 0.0.10 appeared first on Purism.

by Adrien Plazas at June 17, 2019 12:15

June 15, 2019

This Week in F-Droid

Panic app uninstall and repo reset

Sometimes we have things on our devices that are very sensitive, so much so that we need to completely hide or delete them in emergencies. F-Droid already supports receiving PanicKit triggers to make F-Droid hide itself. F-Droid v1.7 adds more alpha features to expand the range of options of what F-Droid can do in response to panic situations. We think these can be very valuable for many users, but keep in mind, these features are alpha. They are functionally complete, but they need to be widely tested before we can call them stable. Specifically, the user experience should clearly communicate what kinds of data will be permanently deleted, and what kinds of data might still be left around afterwards.

Full wipes of selected apps

F-Droid now allows the user to choose any installed app to be uninstalled in response to a panic trigger. Uninstalling will wipe that app’s internal data, permanently deleting it. It might not wipe data that apps store on external storage, like images, videos, downloaded documents, etc. To ensure those are wiped, a separate panic response app is required. It is essential to have a complete, tested backup before trying this new feature.

Any app that F-Droid can uninstall can be included, including Ripple and F-Droid itself. So the whole panic setup could be wiped as part of the response. This requires F-Droid Privileged Extension be installed on the device, in order to uninstall apps without a prompt for each app. Android ROMs like CalyxOS, CopperheadOS, Fairphone Open, Replicant, and LineageOS for microG all include F-Droid Privileged Extension.

Reset repos to default

The repo configuration can also contain sensitive information. For example, there might be a custom repo on a private server, or a specific app repo, like Briar or Tor, that is included to ensure the quickest updates. Therefore, there is now also an option to reset the repo configuration to defaults. Remember to backup your repo configuration before trying this. The repo URLs can be individually shared from the “Repo Details” view, or they are included if you share the install history, after enabling that option in “Expert Mode” in Settings.

Built-in panic button

This round of work includes a new prototype for embedding PanicKit directly into Android. Android 9.0 Pie introduced a new “lockdown” mode which follows some of the patterns laid out by PanicKit. There is an Enter lockdown button available on the power button menu, so it is rapidly available. This is a great panic trigger button, and there is a prototype of a “System Settings” app that lets users connect the full flexibility of PanicKit responses to this Enter lockdown button. The functionality that Google links to this new button is extremely limited, it seems to be a one time restriction on how you login. The PanicKit responses are in addition to what Google included. CalyxOS is working to integrate this, look for test releases soon!

by eighthave at June 15, 2019 00:00

June 13, 2019


Todd Weaver on Digital Trends Live

Data privacy and security are important for all of us, no matter if we are talking about a corporation or just somebody who’s on a social network.

I have just had a wonderful conversation with Greg Nibler, from Digital Trends Live, about all kinds of different ways these issues are being tackled. Greg started by asking me to introduce Purism, and why we do what we do.

Well, we started around 2014 as a Social Purpose Company: we advance social good over maximizing profit. We build laptops, a secure token called a Librem Key, and we are also coming out with the Librem 5: a smartphone that doesn’t run on Android nor IOS, but our own operating system PureOS (the same you get on our laptops). These are available today, with the Librem 5 phone (on pre-order now) coming out in Q3 of this year. Our services—chat, email, social media, VPN—are all standardized protocols, decentralized, with no data retention and end-to-end encrypted. We are going to continue to put out more and more hardware, software, and services as we progress.

I’m kind of a hardcore geek, both in the hardware and software side—but I also am a digital rights activist, making Purism my dream come true by combining hardware, software and services together, in one convenient package. What is awesome is that our entire team is excited about the exact same thing: making convenient products that respect people. Hardware is a little bit more security-minded and privacy-focused, it is where the hardcore audience is: it really gets down to a trust and verified model. The same happens with software: it all needs to be released.

It’s just like with organic food – you have to inspect the soil, so regulators can say ‘hey, this is actually organic’. We do that same entire model within the hardware realm: we release everything for verification, and that gives us peace of mind at that low level—all the way up to services.

We also believe services should always be end-to-end encrypted, and they should never track people. We bundle all of our ethical services together into one package, and if we hand you a laptop you don’t have to know that the schematics were released, that the software was all released. What we offer was built by a Social Purpose Company, you can just turn it on and use it.

Kill-switches on a Librem laptopKill-switches on a Librem laptop

Greg was curious about the kill-switches we install in our laptops: I told him it’s kind of an old thing, a reboot of the kill-switches on early devices – just like a light switch, it allows you to toggle off the hardware. You can physically sever the circuit of the webcam and microphone, so they don’t have any power to the actual device.

And they are really, really easy to use. We are going to have them on the Librem 5 phone as well, so you can turn the webcam and microphone off, Wi-Fi and Bluetooth, even the cellular connection if you want to. Why don’t Big Tech companies use these any longer? It was easy to do it in software; then it became this trust issue, where you could have your webcam on even though the light didn’t come on… What’s fascinating is we’re actually starting to see Big Tech companies use these, and a few other devices, because of these privacy-invading concerns. Big Tech is going to be pushing this privacy talk as well—even though it’s more a marketing thing than related to any type of credibility.

How do I see these issues evolving? They are clearly going to continue to grow around how much data is being gathered, where things are joining together, and data leakage. Data retention policies are going to start coming out: how long somebody holds the data for, what data is being stored, how all of these little bits of data add up to a giant story about you—and how that story is exploited.

We ended the interview with a clear notion of what Purism is—successfully, ethically—competing against. It was a cool chat, do watch the video and listen to the full version here. And thank you, Greg Nibler and Digital Trends Live!

The post Todd Weaver on Digital Trends Live appeared first on Purism.

by Todd Weaver at June 13, 2019 17:55

/e/ foundation

How to translate on /e/ website?

How to translate on /e/ website?

WPML is our tool to manage the different languages on /e/ website

/e/ website is based on the WordPress Content Management System, and we’re using the WPML plugin to manage the different translation of contents, and of course to manage the different translators roles and responsibilities.

As a translator, you have an account to connect to our back office with an “editor” role, meaning you have some rights and responsibilities to change some content (text, pictures) on the web site, but no possibility to impact the website structure and functions.

To connect to your back office, go to, and log in!

You can now access your back office!

Your back office proposes several accesses. We don’t go deep into all these possibilities, but the most useful for the translation of content are:

  • Posts, where you’ll have access to all the posts
  • Pages, where you’ll have access to all the pages
  • Translations, which show the translation queue you have access to

The translation assignment

There are almost two ways to get involved in the translation of a content:

  • First, there is a new content, and the native editor asks for translation. Through the WPML translation management board, he will launch a process that will open translation tasks. You will then receive a dedicated email informing you that there is a translation waiting for you, with a link to the translation edition
  • Second, you can decide to act on an already existing translated content. Details shown in the dedicated chapter bellow.

The translation queue

When clicking on the “Translation” menu of your back office, you see the list of contents waiting for you:

You only see here content to be translated for your language(s). You can observe here that there are two different buttons in the list:

  • “Take and translate” appears if the content is not specifically assigned to you but you can take over the translation. Content won’t be accessible anymore for other translators.
  • “Translate” appears when the content is specifically assigned to you

The translation editor

The translation editor presents the native english content on the left, and the corresponding blocks to be translated on the right:

  • If not done yet, you can first “duplicate” the content: english content is then copied and paste in the targeted window.
  • Please prefer editing the text as a source code with the “Text” tab, and not with the “View” tab. It avoids some mistakes with text edition, links, and every html parameters included in the source code.
  • As soon as a block is finalized, don’t forget to check the “Translation is completed” box. This will increment the progress bar at the bottom of this page.
  • At the bottom of the page, you can:
    • cancel your work or resign. The translation can therefore be managed by another translator.
    • see the progress bar
    • and save your work.
  • Goal is to achieve 100% of the translation coverage 😉

Editing an existing translation

To edit an existing translation, go on “Posts” or “Pages” menu, and locate the targeted content :

  • Then, click on the icon corresponding to the targeted content to be edited. You’ll be directed to the translation editor.

by Samuel Cazin at June 13, 2019 07:26

Leaving Apple & Google: let’s make something big!

Leaving Apple & Google: let’s make something big!

You can be part of something BIG…

Internet giants harvest tons of our personal data to fuel their business model.
Today, the Google/Apple global duopoly on mobile phones is challenged like never before: we all want real alternatives that keep our data private.
Even major smartphone brands realize how dependent they are on Google and look actively for alternatives.

/e/OS offers a paradigm shift, a unique opportunity to build a new ecosystem, based on different and more ethical values: privacy, transparency, open source and freedom!

You can take part in creating history and help us to make it big! Act now and fuel the project growth: to support more smartphones, create a better and faster infrastructure, and launch new projects with personal assistants…

You can Act now and join our great /e/ supporters Hall of Fame!

support us with recurring donations

donate some money to the project and get some stickers, t-shirts, or even a smartphone in return!

Write the story with us!

A brand new website for /e/…

Here is the third iteration of the official /e/ website at… We tried to rethink it from scratch, with a new, more convenient organization, more contents…

Still in beta, but we hope you will enjoy! Please feel free to report any glitches.

Shipping soon!
your first smartphone with /e/…

As we announced earlier, we are partnering with professional smartphone refurbishers to provide you the first smartphones with /e/, at a great price!

We will start with two devices:

– Samsung Galaxy S7 – Grade A (Estimated price: below 280€)

– Samsung Galaxy S9 – Grade A (Estimated price: below 500€)

Register NOW and be among the first to get your phone with /e/!

Deliveries in just a few weeks!

Follow us on Twitter and Mastodon: @e_mydata

by Samuel Cazin at June 13, 2019 04:53

June 12, 2019


“See Your Junk” – Behind the scenes

At Purism, we aim to promote privacy and freedom through the use of free software (and we see it as ethical software). When we work, and in order to produce our content–such as what you see in this page–we use free software, too. And so, with a small budget and some basic audio and video gear, along with a few Librem laptops (running free software only, of course), we have made this video the ethical way, using ethical tools from beginning to end.


Pre-production took us the longest, and kept us working for quite some time–we ended up taking over a month to prepare everything. Todd, Purism’s founder and CEO, handed me a really funny script that he had written himself; I read it and started organizing the shoot with the help of Jenny Lavery, who did an amazing job of finding the perfect actors, location and props.

After planning every shot I started drawing a storyboard, using GIMP, my Librem 13, and a simple graphics tablet.


Once everything was planned for, I packed my suitcase and traveled to Austin, Texas, with Therry Cazorla, a fellow French countryman. Therry is the director of photography with whom I have been working for years.

We were so lucky with the weather; the weather is always a big question mark, and a nightmare in what comes to delaying everything, when shooting outside. I had planned on spending two full days shooting the entire video, but everything went so well–and everybody was so professional–that we ended up managing to shoot it in just one day, which was amazing!

Like I said before, we chose to use free software only. That choice led us to shoot with a camera that is compatible with Magic Lantern, a free software add-on that… well, adds features to the camera we used, and that also allowed us to shoot in RAW format–i.e., straight from the sensor and generating an uncompressed file, resulting in the maximum possible raw image quality.

The RAW format is also very useful for it allowed me to process the look of our initial footage as soon as I finished recording; I used a software called MLV-App to do just that, because it lets me analyze my raw footage and apply a flat look to it. This is a personal preference, it’s what I prefer to do regarding color grading technique and results. Everything flowed so well I managed to put together a first, rough edit, the very day we finished shooting.

Post production

Shooting in the USA was fun, but once we finished I had to travel back to France, to my home studio, where I had all the material I needed to start editing.

Video editing

I used Kdenlive to edit the video; it is a very complete, very professional, free software, non-linear video editor.

I now had the perfect opportunity to test the new Librem 15 with a 4k screen… having this video to finish meant I was simultaneously able to test hardware and software in a real project, and help developers improve product experience. And so I made a first cut of the video, and started to edit the audio.

Audio editing

Audio quality plays a big part in the overall quality of the final, resulting video. I would even go a step further and say the quality of the audio is perhaps more important than that of the image, when making a professional-grade video (but feel free to disagree).

In order to professionally edit the audio, I had to export my timeline from the video editor to a proper audio editor—Ardour, in this case. This import/export feature exists neither in Kdenlive nor in Ardour, but I needed it and had to find a solution—and this is one of the great advantages of using free software: that it is public and belongs to its users, making creating a missing feature (and giving it back to the community) something very doable. And that’s exactly what I did: I created a python script that converts the timeline from my video editor into a timeline for my audio editor. If you want it, you can get it in our Gitlab repository.

This allowed me to perfectly edit my audio, using very professional free software tools; it guaranteed a smooth, even sound, where the cuts between different shots are impossible to hear. Afterwards I added some extra ambient noise to ensure continuity and to give a bit more color–which leads us to the subject of our next chapter.

Color grading

The color of each individual take was then worked in order to guarantee its consistency over the whole video. I later applied a global (meaning, to the whole video sequence) color grading, to give it a consistent style and tone. I like to work over very flat footage that is low in saturation and contrast. I then add some contrast with a bleach bypass effect, and do the final tweaks on the curves and levels filters. The graph monitors in Kdelive let me adjust colors and levels with a high degree of precision—and I can be sure that colors are just right, that my eyes are not tricking me.

Motion design

I added some text effects at the end of the video: mostly, over the Librem One logo.

I made all my text animations in Blender, an amazing 3D free software application with very powerful compositing and animation features.

You might have noticed a subtle light effect in the logo animation (just before the rainbow appears)–it’s actually a handmade, traditional animation made with OpenToonz, a free software app that was also used for some of the biggest productions of the Japanese anime industry.

That’s it, and thank you for your time–it was fun 🙂

The participants:

Andre Martin as The Husband

Will Moleon as The Enlightened One

Karina Dominguez as The Wife

Christine Hoang as The Neighbor

Tom Costello Jr. as The Gardener

Sanjay Rao as The Business Man

Giselle Marie Munoz as The Business Woman

Bryan Lunduke as The Voice-Over

The crew:

Jenny Lavery co-producer, casting director and clapperboard

Camille Westmoland makeup artist

Blake Addyson sound engineer

Thierry Cazorla director of photography

Todd Weaver producer, screenwriter (and co-directed the actors, too)

The post “See Your Junk” – Behind the scenes appeared first on Purism.

by François Téchené at June 12, 2019 14:28

June 11, 2019

This Week in F-Droid

Public Money, Public Code!

Our everyday lives depend on public infrastructure. Roads, bridges, water supplies, schools, hospitals, etc. enable modern civilization. Most European countries have a long and successful history of funding public infrastructure with public money.

Governments are spending vast amounts of money on software, but they hardly contribute any public digital infrastructure. All their software and source code is locked away from the public by proprietary licenses. Even worse, government institutions often don’t have access to the source code of their own critical applications. This can change.

Digital transformation heavily relies on a vast base of public digital infrastructure built and maintained by the free and open source community. It’s time for governments to join us and start contributing. Their mobile Apps should certainly respect users demand for freedom and privacy respecting software.

Free Software Foundation Europe started an amazing campaign for making this shift happen: “Public Money? Public Code!”. We’re happy to announce that we have signed their open letter and hope you’re considering to spread the word and sign too.

All the details about this campaign are available on:

by uniqx at June 11, 2019 00:00

June 09, 2019


OsmAnd 2.80 (iOS)

OsmAnd 2.80 (iOS)

June 09, 2019

OsmAnd 2.80 is now available!

(Image not available offline)


We continue to follow our New Year’s resolutions, where we have promised to catch the iOS version of OsmAnd up with the one on Android, and we are getting there.

We're proud to have collaborated with Mapillary for the new release. Now you can view the street-level imagery in your location or anywhere in the world using the Mapillary in OsmAnd for iOS.

Using the widget on the map, you'll be able to view images or videos and even add your own. To view the images and videos, you'll have to go to 'Configure screen' menu and enable the 'Mapillary' layer.

Now you have access to an extensive database created by volunteers. To view media attached to a certain point on the map, just make a long tap there and open the context menu. You'll be able to scroll through images of the location easily.

Zoom in closer to view the images even more conveniently in a Mapillary window over your map. You can also press the white arrows to 'move' along the streets. To contribute to Mapillary, just press on the widget and take a picture.

What's more in the latest version of 2.80?

• Fixed city and postal code search.

• Improved performance of Hillshade and Contour Lines map rendering.

• Added Turkish TTS.

And remember that only together we can achieve the best results!

New features are coming SOON!

Get it on App Store

OsmAnd at Facebook, Twitter, and Reddit! Join us at our group of Telegram.

June 09, 2019 14:00

June 06, 2019


With Purism Products, You Are in Control

From its beginning, Purism’s focus has been on building products that respect and protect your privacy, security and freedom. I’ve written about how these three concepts are interdependent before. While Purism is somewhat unique in focusing on all three of these concepts at once, it isn’t the only company that builds products aimed at protecting privacy, security or even freedom. In fact, each of these areas are multibillion-dollar industries.

Security is a huge industry today, and it continues to grow, with companies releasing new products all the time–products they claim will protect you. Privacy is also hot topic right now, with many companies making sure they include “privacy” in their marketing. There is also an entire industry around products built on free software–even Microsoft recently pivoted over to supporting software freedom in its products.

Even with all these companies focusing on the same topics, Purism stands apart from the crowd. How? In our approach. Most other companies build products that coincidentally put them, the vendor, in control. From the beginning, Purism has designed all its products to empower the user, not the vendor. All of our products show this approach–and this post will highlight some of our user-empowerment design decisions.

Control Your Hardware

It is more and more difficult to find laptops that are easy to upgrade and repair. Some cases even demand for experts with special tools and quite a bit of effort to do something as simple as a RAM upgrade (if it’s not soldered on), to replace a hard drive, or to replace a battery. Some vendors justify this by pointing at design sensibilities, but it coincidentally also means you are more likely to buy the more expensive versions of their laptops even if you don’t need the extra resources. Some vendors go even further to control who can upgrade or repair the hardware, and use DRM and security chips to make it difficult to use third-party hardware.

Our laptops have visible Philips screws on the bottom. You can remove the bottom case yourself, without any special tools and without Purism’s permission, and get access to the RAM, drive bays and the battery–and replace them yourself. We added simple hardware kill switches so you can control the webcam, microphone and WiFi hardware–no need for special software.

Control Your Software

Vendors love using software to lock customers into their ecosystem. Proprietary software and proprietary operating systems have been doing this for decades and in that world if you want new features and in some cases even security updates, you have to pay the vendor for the privilege. If the vendor removes a feature, changes a default, or even completely changes the program, you don’t have much recourse. As long as you use that vendor for everything, things might work OK, but the moment someone else offers a better alternative, you discover just how little power you have to switch.

Purism ships its hardware with free software, starting with coreboot boot firmware all the way to the 100% free software PureOS operating system. By using free software, we put you in full control over all of the software on your system. You have the freedom to change any piece of software you like, you can install any OS you wish–and upgrades are free. By controlling the software, you also control the hardware. If you have to root software, you don’t really own it; with Purism hardware you don’t have to root anything.

Control Your Security

When you ask vendors to build a secure system, they end up designing something that keeps full trust and control in their hands, or else has no security at all. Vendors hold the keys to your security, not only because they don’t trust you to manage it, but also because it conveniently locks you into them. If you ask a vendor to secure the boot process, they design a system where every OS must get their approval (signature) before it can boot. If you ask them to secure your communications, their solution is to replace your current system with proprietary software and protocols they control.

We believe you should hold the keys to your security. We have designed each of our security measures so that you are in control, not us. This is why we chose our PureBoot solution over existing signature-based approaches that might lock you into us. With PureBoot you control all of the keys that protect your boot process and can easily change them at any time. You can boot any OS you wish without having to get Purism’s approval or disable boot security. This is also why our Librem Key uses open hardware, firmware and an industry-standard OpenPGP smart card to store your keys securely without any proprietary software. When we secure communications with Librem Chat and Librem Mail, we do it with end-to-end encryption. You hold all of the keys–so no one else, Purism included, can snoop on your communication.

Control Your Phone

The phone ecosystem takes even more control away from the user. Phones are harder to repair and upgrade than laptop hardware, and some require a hardware signature handshake so the vendor must approve any hardware peripherals (like headphones) you might attach. You can only install software the vendor has approved of ahead of time, and upgrade the OS if the vendor says you are allowed, unless you are willing to disable all security protections in the OS and root your phone.

Apple recently demonstrated the level of control it has over phone software when it removed Facebook’s internal iPhone apps; Google demonstrated the control it holds over its own ecosystem when it revoked Huawei’s access to OS updates as part of a larger trade war. With these controls in place, how much of your phone do you actually own?

The Librem 5 phone has been designed to put you back in control. By running free software, starting at the boot firmware and ending with PureOS, there’s nothing to root–you control the full stack. You also can remove the back and have access to the battery, a removable OpenPGP smart card, a removable cellular modem, and a microSD card so you can expand your storage later on. It also includes three hardware kill switches to give you control over the cameras and microphone, WiFi/Bluetooth and cellular modem–and you can combine all of them to disable the rest of the sensors, in what we are calling “Lockdown Mode” for even more control.

Control Your Services

Internet services are a major area where tech companies take control from their users. Ask any of these companies to create a network service, and they’ll invent one where all traffic coincidentally flows through them only, with proprietary clients, servers and protocols they control. You have multiple messaging apps on your phone not because of technical limitations, but because each of the big tech companies wants to lock you into their own proprietary network, and leverage network effects to keep you there. After locking you in to the platform, these companies then capture as much data as they can about you so they can sell access to it (and to you) to third parties. You end up with no control over your own data–or to how it is being used.

We designed Librem One to put you back in control of both your privacy, and your data. By creating a suite of decentralized and open-protocol services using free software servers and clients, and hosting it all under a central brand with a single username, you get all of the convenience of big tech services, but you actually control your data and the service itself. Since we fund Librem One on a standard subscription model, we don’t collect your data, track you, or show you ads.

Each Librem One service lets you communicate with any of the other networks on the Internet that speak the same open protocols (it’s just like being able to email friends regardless of what email provider they use). You can pick our branded Librem One apps for ease-of-use, or any of the excellent free software projects we based them on. If you don’t need the convenience of Purism managing your services, you can even host your own versions of every service we run—we even plan on sharing how we set each of these services up, just to make it easier for you to host them yourself in the future.

Control Social Media

Social media is another area where tech companies have exercised control–not just over its users, but ultimately over speech on the Internet as a whole. Since they fund social media from ads (therefore, from your data and preferences), social media applications are focused on taking control over what information you see. That is why it is so difficult to get a social media application to sort by date–it’s more important for them to train their relevance algorithms, so they know which promoted posts to put in your feed. Everyone has become so used to giving up control over the rest of their lives, they are now asking those same companies to decide not just what they see in their feeds, but what speech is allowed on the Internet at all.

It turns out that, while Big Tech companies are good at building technology, they are not human rights or censorship policy experts, and putting them in control of speech on the Internet has led to a lot of problems–including the silencing of disaffected groups–while not making anyone happy with their centralized moderation decisions. Centralized moderation also has a heavy human cost: it outsources the ugly task of sifting through the worst that the Internet has to offer to low-wage workers, often resulting in emotional and mental trauma.

Some have advocated moving to a decentralized network like Mastodon in response. While the network is decentralized, the way the technology is built still puts control over what you see into the hands of the sysadmin who happens to be moderating your instance. Like in Big Tech companies, sysadmin are not human rights, or censorship, experts; since they are often doing this as a side hobby, their approach to moderation (however sincere their efforts) tends to err on the side of whatever is easiest, which tends to be censoring a post, or blocking a user or a network. This has led to a chilling effect on political speech in certain instances, harming some of the same minority groups the moderation policies aim to protect. If a moderator happens to share your values, you’re in luck; if not, your only recourse is looking for another instance.

At Purism, we have taken a completely different approach, with Librem Social aimed at putting you back into control of your social media. We recognize that we aren’t human rights or censorship policy experts, so we’ve deferred to the real experts in the space to help us define an approach to moderation; one that expands the anti-discrimination clause in our Social Purpose charter:

The Corporation will not discriminate against individuals, groups or fields of endeavor.

The Corporation will allow any person, or any group of persons, in any field of endeavor to use its systems for whatever purpose.

You shouldn’t have to outsource your trust to a vendor to be secure, you shouldn’t have to outsource your control to see only the content you want to see. We have added a policy against harassment and illegal activities so you can stay safe, while modifying the existing Mastodon software Librem Social uses so you only see content you opt into.

This is a (great) start, and immediately solves a lot of problems for Librem Social users–but it still leaves some issues for the rest of the Mastodon instances without our opt-in approach. We have big plans to add features to Mastodon at large, features that give moderation control back to the users, not only of Librem Social, but the entire Mastodon network. You should be in full control of the content you see, never having to rely on a central authority (even one you might trust, like Purism) to curate it for you. Whether you want to filter out adult content or politics, or to opt in to them, we aim to build tools that give you, not us, that power.

User Empowerment

All of Purism’s products are aimed at removing control from tech vendors (including ourselves) and giving freedom back to users. This is true in the free software we use throughout our hardware, the open standards (again, and free software) we use for our services, and in our approach to moderation for Mail, Chat and Social. You shouldn’t have to outsource all of your trust to a vendor to be secure, have privacy, or only see the content you want to see in social media. With Purism products, you are in control.

The post With Purism Products, You Are in Control appeared first on Purism.

by Kyle Rankin at June 06, 2019 13:53

June 05, 2019


Librem 5 vs Android — Which boots faster?

A simple question: What boots faster — a run-of-the-mill Android phone or a Librem 5 smartphone running PureOS?

We put the Librem 5 dev kit next to an HTC One, both powered completely off, then pushed the power buttons at the same time.

The result… it wasn’t even close.  I almost feel bad for Android.  Almost.

(You can also watch this over on YouTube.)

I mean, sure.  “Boot speed” certainly isn’t the end-all, be-all of performance.  In fact, it may not even be in a “Top 10 Important Performance Metrics.”  But it gives a good indicator of what’s possible with the system — and what to expect.  Add to it, the fact that this was done without any boot speed optimizations at all?  Downright exciting.

The Librem 5 smartphone is schedule to begin shipping in Q3 of 2019.  Stay tuned to this blog — or follow Purism on Librem One or Twitter — for updates and details.

Also worth noting: You can pre-order the Librem 5 now for $649.  That price goes up at the end of July.  So if you want the lower price, now’s the time.

The post Librem 5 vs Android — Which boots faster? appeared first on Purism.

by Bryan Lunduke at June 05, 2019 18:00

June 04, 2019


Gadgetbridge 0.34.0: Per-device settings, finally

Gadgetbridge 0.34.0 has been released and will appear on F-Droid soon!

The highlight of this release is a big refactoring of device settings for Mi Band/Amazfit devices.

Since we support an increasing number of Mi Band/Amazfit devices which almost all have unique feature, it became increasingly confusing how to configure them. Take the Amazfit Cor for example. Some of the settings were in "Mi Band / Amazfit settings", others in "Amazfit Cor settings", and finally some in "Amazfit Bip" settings (historically,because the Bip introduced new features which the later released "Amazfit Cor" also has).

After the refactoring, the device specific sub menus for Mi Band 2, Mi Band 3, Amazfit Bip and Amazfit Cor vanished completely, instead there is a new settings (gear) icon on the device card in the main activity to enter the device specific settings. All changes done there will affect ONLY the single device where the settings are altered. The per-device settings will only show settings which are really supported by the device type. That means, you no longer have to wonder why "turn wrist to change display" does nothing on your Mi Band 3 - you wont even see that setting unless you have a Mi Band 2, and are configuring that.

In addition some of the settings in "Mi Band / Amazfit settings" were also moved to the per-device settings, but this step is not complete yet. I plan to finish that during the 0.34.x cycle.

We also want to remind you that we will move completely to Codeberg this summer. The wiki can already only be updated there, while all wiki changes will be mirrored to github. Please create a Codeberg account, if you want to modify the wiki or if you want your issues/PRs and comments to be properly assigned to you again on Codeberg.

The reason for the move in one sentence: A free project deserves a free home!

For user-facing changes since the last blog post, check the following list.

Version 0.34.0

  • Mi Band 1/2/3/Bip/Cor: Migrate many settings to per-device settings (new settings icon in device card in main activity)
  • Mi Band 3: Fix setting menu items with 2.4 firmware and add support for the new timer menu
  • Amazfit Bip/Cor, Casio: Add support for muting incoming calls
  • ZeTime: Remove endless recursion in ZeTime settings
  • Recognize FairEmail notifications as generic email notifications

Version 0.33.1

  • Mi Band 3: Recognize "Xiaomi Band 3"
  • Amazfit Bip: Add German, Italian, French and Turkish to language settings

by Andreas Shimokawa at June 04, 2019 22:00


Control, Freedom and Harm

Control is the best measurement of both freedom and harm. If freedom can be summarized as not being under the control of another, harm can be summarized as being under the control of another.

The darker side of “control vs. freedom” or “control + harm” casts a shadow on every facet of technology—and it is a digital civil rights issue, where control over you by corporations is causing you harm, all the time, on all your devices.

The answer is rather simple: Don’t. Control. People.

Don’t track people

It would be simple to create the exact same technology companies that exist today, without the creepy crossing into personal privacy invasion. Social Media can absolutely exist (and even sell ads) without being invasive; search tools can return valid results (and still sell ads) without recording everything on you (forever); ride sharing services can drive you places without tracking your every location when you’re not using them; ordering history from stores certainly does not need all your personal data after you receive what you ordered.

Don’t retain useless data

There is no reason to retain everything a person has ever done digitally. A simple policy of “once data is no longer needed, it is deleted.” fits perfectly here. Does the police need to hold your GPS location, date and time permanently, after scanning your car’s license plate? Does a social media service need to backchannel your purchase receipts to match who you follow and interact with, against credit card receipts, forever? Not really.

Use free software

Use software where it passes the simple freedom test: Can you run that program as you wish? Can you study the source code? Can you share it alike? If you can, you have complete control over the program, and you can avoid harm.

Don’t Control People. If hardware, software, and services would follow this simple rule of not controlling people, the results would become quickly apparent.

Hardware should not have a corporate controlled lock, so people can own devices, not rent them. Software should be under the full control of the person using it, and source code released. Services should be decentralized, so no single entity can control them and their users. Once all three (hardware, software, services) are in the hands of the people, then they will truly be digitally free.

Big Tech strips Freedom and causes Harm

Let’s take a look at some of big-tech’s big issues below:


Looking at Apple (the censorship and personal control masters), we see they block applications from their platform, censor applications and content to their own liking, disallow them on their platform entirely, invade privacy with excruciating level of detail, are anti-competitive with an unlawful monopoly with its App Store, among many other examples of their control over you. We quickly recognize that people are just renting a device from Apple, that Apple is in complete Orwellian control of it, that all our personal data is also under Apple’s control.

Facebook, Instagram, and Twitter

Welcome to the manipulation and censorship private clubs of social media: these companies control their user-base through haphazard policies to ban posts and manipulate everything you see, trying to influence your opinion. It has been a long upheld legal stance that you may disagree with what a person may legally say, but you must respect their right to say it. The reason? Centuries of jurisprudence showcasing the issues of censorship causing harm. We may want to pay attention to the EFF, FSF, ACLU, California Constitution, and the US Supreme Court, when they all agree that censorship is a terrible idea.


This data hoarder has incomprehensibly large amounts of data on everything you do, from every device every millisecond of every day, and is invading your privacy, controlling your devices, censoring voices, and spying on you. The executives at Google pen opinion pieces on how much they care about privacy while undermining it with lawmakers: their actions are the exact opposite of their words, while they are committing some of the worst digital atrocities of all time.

Uber, Lyft, Spotify, and the rest

These and others all fall into the same Silicon Valley funding process: to write software, services, and applications designed around grabbing as many users and personal data as possible—oftentimes doing an end-run around regulation in the name of innovation (does anybody actually think Uber or Lyft aren’t just non-yellow taxis booked through a mobile app? So why shouldn’t they comply with the same rules and regulations that taxis do? Oh… right, because of ‘innovation‘). All these companies share the same bad habits of writing software that controls the person using it, of exploiting people for profit—be that through tracking your every location detail, your mood, profiling you, leaving you unable to verify the source code and inserting malware into it—continuing abuses of your digital civil rights.

The Solution

Is quite simple: support products and companies that protect your freedoms, put you in complete control, and work to eliminate harm. The interesting side effect is you will also be building a more tolerant, empowering, diverse, and inclusive society.


Get Librem One

Pre-Order Librem 5

The post Control, Freedom and Harm appeared first on Purism.

by Todd Weaver at June 04, 2019 15:34

Guardian Project

PanicKit 1.0: built-in panic button and full app wipes

Panic Kit is 1.0! After over three years of use, it is time to call this stable and ready for widespread use.

Built-in panic button

This round of work includes a new prototype for embedding PanicKit directly into Android. Android 9.0 Pie introduced a new “lockdown” mode which follows some of the patterns laid out by PanicKit. There is an Enter lockdown button available on the power button menu, so it is rapidly available. This is a great panic trigger button, so we made a prototype of a System Settings app that lets users connect the full flexibility of PanicKit responses to this Enter lockdown button. The functionality that Google links to this new button is extremely limited, it seems to be a one time restriction on how you login. The PanicKit responses are in addition to what Google included. CalyxOS is working to integrate this, look for test releases soon!

Full wipes of selected apps

F-Droid v1.7-alpha1 has alpha support for uninstalling and wiping all data from selected apps in response to a panic trigger, including Ripple and F-Droid. So the whole panic setup could be wiped as part of the response. It is essential to have a complete, tested backup before trying this new feature, since it will delete all of the data for each app that is uninstalled.

This requires F-Droid Privileged Extension be installed on the device, in order to uninstall apps without a prompt for each app. Android ROMs like CalyxOS, CopperheadOS, Fairphone Open, Replicant, and Lineage-for-microG all include F-Droid Privileged Extension.

Ripple is polished up

Ripple also received some modernization and polish. Google has reinstated the Ripple app in Google Play, so it is again widely available. Ripple was of course available the whole time via F-Droid. Google suspended Ripple without explanation, then a long while later reinstated it without explanation.

This work was made possible in part from donations from Handshake Foundation.

June 04, 2019 00:00

June 03, 2019


OsmAnd Online GPS Tracker 0.5

OsmAnd Online GPS Tracker 0.5

June 03, 2019

Hello everybody!

We prepared a new version of our OsmAnd Tracker - 0.5.

What the new functions are?

(Image not available offline)

Added contact search

Yes, it was a problem to find the contact or your group from a telegram list. Now it's easy!

Added proxy settings

Many of our users asked us to add proxy. We did it. Use proxy inside of OsmAnd Tracker. Go to Settings and write your proxy data: Settings-> Privacy-> Proxy Settings

GPS settings: minimum speed, accuracy, and distance between points

Now, you can control your points. You can set settings of points. If you stay at one place some time without moving, for example, your points don't send and your GPX track will be nicer. Go to Settings-> GPX settings

Active marker on the OsmAnd map: distance, speed, and angle of movement of your contacts

It's very useful to see distance, speed, and angle movement of your contacts at OsmAnd map and text in Telegram. Now you can understand at once where and how your contact move.

Further instructions and helpful advice can be found here.

Get OsmAnd Tracker today from Google play.


Get it on Google Play

June 03, 2019 18:00

May 31, 2019


NewPipe 0.16.2 released, improving comments UI

NewPipe 0.16.2 is a bugfix release which comes along with better readable comments, smaller UX improvements, better translations, bugfixes and more.


After introducing support for reading comments in version 0.16.1, @yausername put more effort into the comments UX. In other words, the comment’s font size has been enlarged. We hope you are going to enjoy reading comments even more. When scrolling through them, you might recognize that links and video timestamps have been made clickable. On top of that the app can now remember whether you last viewed the comments or the ‘next videos’ tab and switch to it automatically when opening a video page.

Video player and playqueue

@Stypox made it possible to share the video with its current timestamp through the main player’s dropdown menu. @nv95 added a close button to the main player which is shown whenever the playqueue is finished.

By pressing long on the Background button in the playlist view, you can now enqueue a whole playlist to the current playqueue. To play a stream directly in background without opening the video page, just tap long on an item in a stream list and choose Play directly in Background.

Further improvements

When sharing text with NewPipe which is not an URL, the app automatically shows performs a search using the currently active service. Moreover, this release includes support for opening invidious links, a tiny resource clean-up resulting in less code and a smaller APK. We also updated third-party libraries which should bring performance improvements to the video player. As always, the new version comes with bug fixes. @Stypox fixed a parsing bug which prevented many streams from loading as well as failing YouTube subscription imports. @Rediron made some improvements to the update checker (only available in the GitHub release) preventing crashes when no internet connection is available.

The English translations for play and enqueue commands were update and more specified by @epitron. At this point we would like to thank all the people who contributed to NewPipe in this release by either writing code, participating in discussions, reporting bugs and translating it into various languages!

State of the Pipe 2019

By the way: If you haven’t seen it yet, we recently published a video in which NewPipe lead maintainer Christian Schabesberger covers the latest developments of the project, talks about plans for the future and makes a personal statement about his future in the project. You can watch the video here.

Get the new version

We recommend you to install the F-Droid app as it notifies you as soon as an update for NewPipe is available.

Please let us know what your experience of the latest release is, especially bugs in need of fixing. As usual, you can reach out to us via IRC (#newpipe on freenode), open issues on GitHub or ideally use our built-in crash reporter to send us machine-readable issue reports, or send in fixes yourself.

May 31, 2019 18:00


Introducing Librem Social

Hello there! Let’s talk about Librem Social.

Librem Social is a social network. Think Twitter… if Twitter respected your privacy and didn’t advertise to you.

Librem Social is part of Librem One, the suite of privacy-protecting, no-tracking apps and services created by our team at Purism. Librem One currently includes Librem Mail, Librem Chat, Librem Tunnel, and Librem Social.

Over 2,000,000+ people. Ready to follow.

Librem Social is part of a network of social network servers already boasting over 2,000,000 users!

Two Million!

Follow friends. Make new ones. Share stories, pictures, and videos with them. Librem One is ready and growing. Fast.

Librem Social

Opt-In, No Ads, No Tracking

One of Librem Social’s most important features is that, unlike all other social hosts, it is entirely opt-in. You only see posts from people you want to follow.

This means you are not force-fed an unrelenting stream of manipulated content specifically targeting you. No way, no how. Not on Librem One. On Librem One you see the posts from the people you want to see posts from – your friends, family, news sites and favorite celebrities. And that’s it. If you want, you can search for posts from across the Fediverse (more on that later).

We also do not advertise to you. Not at all.

Which means we have no reason to track you. Simple, right?

Available Wherever You Are

Librem One is accessible via:

What Technology Does Librem Social Use?

Librem Social is proudly built on Mastodon, part of what is known as “The Fediverse”, as well as many other Free Software projects that we actively work with and contribute to.

The Fediverse is the decentralized replacement to MySpace, Orkut, Friendster, Google+, Twitter and Facebook (can you spot the trend?). The Fediverse already exists, and it is growing. What makes the Fediverse different to its forebears is that it has no central domain – not even a central service. It’s composed of lots of services, all of them speaking (mostly) the same protocol, known as ActivityPub.

Fediverse developers are currently working on replacements for things we know (shout out to PixelFed!) and other things we can only dream of (shout out to Spritely!). When they do arrive, we can yell out a stretch goal, apply some elbow grease… and once we’re done you can start following them, breaking the cycle of needing a new account to join your friends on whatever’s hot right now.

Public service announcement:

As well as a purely opt-in workflow, we have another very distinguishing feature – that everything on Librem Social is public. Everything. Who you follow, who follows you, your announcements and your replies.

Why? Well, for two major reasons:

Because valuing your privacy doesn’t mean staying indoors with the curtains closed all day. Sometimes you want to go out, socialize, catch up on news – and share your own.

At the same time, you don’t want to blurt out something personal just because there’s a lull in the conversation (it happens). That’s what private chat is for. Librem Social is designed in the context of a service bundle, so you know what tool to use for the right job, with no oopsies – and, more importantly, with none of your personal details on our server.

What if… I don’t like what I see?

We don’t control the content of search results. If you are concerned, please read our quick guide to staying safe online. If you see something illegal, please report it to the relevant authorities, as they are best equipped to handle illegal content. If you are being harassed, or witness online harassment, block and flag the offending user and a moderator will take action. We do not tolerate harassment. This is an area of well-established rights, Librem Social is built on and with the expert policies of ACLU, FSF, and EFF, while avoiding the pitfalls of ham-fisted censorship we all dislike from Big Tech.

We are very pleased to see so many people socializing already. If you want to follow us, or ping us with your thoughts, our Librem Social / Fediverse address is – and you are always welcome!


Purism offers high-quality privacy, security, and freedom-focused computers, phones, and software. Our platform is meant to empower everyone. We believe people should have secure devices and services that protect them rather than exploit them, and we provide everything you need in a convenient product bundle.

We like to give back. Librem Chat is built with free software, created by security and privacy experts. Learn more about how Purism contributes to its community.

The post Introducing Librem Social appeared first on Purism.

by David Seaward at May 31, 2019 08:10

May 28, 2019


Librem 5 – End of May Progress

Hi everyone! The Librem 5 team has been hard at work again, and we want to update you all on our software progress.


We have been diligently working to finish the phone call audio quality for production. While the USB audio works just fine (with some tweaks), the PCM audio coming out of the dev kit was noisy and distorted, due to the most-significant bit in the PCM stream – from the i.MX8 to the modem – being incorrect.

In the meantime, we have started work on a daemon, Wys, that loads and unloads PulseAudio loopback modules according to the state of ModemManager voice calls; and investigating and testing a different modem, in order to evaluate its potential alongside the Gemalto PLS8 one.

All of this effort brings us closer and closer to having phone calls that work wonderfully.


The SMS plugin of Chatty has been reworked to use libmm-glib, simplifying the handling of the ModemManager interface, and making the adding of further SMS functionality less cumbersome.

The new Lurch plugin changes (used for E2EE in XMPP) needed to be tested, since the upstream maintainer has done a lot of recent work on the plugin (specifically for integration with Chatty) – and this support gets us even closer to delivering good E2EE XMPP functionality!

We are happy to say we found, and promptly fixed, a couple of issues related to Chatty: crashes due to multi-instances or when loading the Matrix plugin, and Chatty not recognizing outgoing messages after a restart. It’s all working fine now.

Oh, and the message bubble width was reduced to no more than 70% of the conversation view, and it looks so much better now. Thanks to Leland Carlye for the improvement!

Web Browsing

A new adaptive view switcher widget (HdyViewSwitcher) has been added to libhandy, which is needed by Web’s preferences dialog in order for it to be adaptive and to, well, look nice on the phone; we will use it in other apps such as Software, Clocks, and Photos. It was such a big effort, and it’s so wonderful to see it completed – and a success! To make sure that HdyViewSwitcher looks just perfect, we have added a best fit container (HdySqueezer).

We also want to make the header bars more flexible to matching the display needs of the phone, and we are working on adding a HdyHeaderBar. Doing it led us to discover, and fix, a memory leak in GTK+3 and GTK+4.

See below for a preview of the HdyHeaderBar:

We are almost done adding a HdyPreferencesWindow, so we can make it easy for apps to have a featureful preferences window that is also adaptive.

Below, a preview of the HdyPreferencesWindow:


We have made some excellent improvements on the design of Geary! The outcome can be seen in several mockups that design how the conversation actions, conversations list, composer and selection mode should all look. Some of these mockups may require further changes upstream, but they get us ever closer to having a nicely complete mail client design.


The dev kit image is getting closer to using a 5.2 kernel instead of the 4.18 kernel – which means our team has been tireless in their effort of upstreaming the librem5-devkit device tree, flash-kernel changes, and sending various other patches upstream. Be sure to check out a nice post on Purism’s upstream kernel contributions.

We are also continuing to work on a compositor replacement for rootston, and getting closer to be able to switch from rootston to phoc (replacement compositor) independently.

Another awesome change in the image is that the WiFi status is now displayed in the panel and lock screen!

We are trying to separate the bootloader from the OS, and to get us closer to this goal, a uuu script that flashes the full-boot-image has been added to the librem5-devkit-tools package. There is also support for generating an additional boot image alongside the main one, needed to flash U-boot and the M4 firmware into one of the eMMC boot hwparts. Thanks to Hugo Grostabussiat for the contributions!

We are continuing to work on the graphics stack; recently, v11 of the Mixel MIPI DPHY driver was submitted upstream.

Our awesome community has pointed out some issues over time… and we have fixed them: fix screen blank -> unblank cycle, improve GPU performance by using the correct clock parents, and unbreak clock enable/disable in our NWL driver, so we can turn off clocks when blanking the display.

Some other changes to the system include us taking a look at using mainline atf to control power saving and suspend/resume; improving phosh to make the output locking more dynamic, and adjusting the VINDPM of the charge controller.


We have added a new guide on working with UI files, and have a cool weather example coming to the documentation soon, to help all the GTK+ app developers out there.

See below for a preview of the weather app:

Some helpful How-To guides on the inertial module and proximity and light sensors were also added.

We have improved the Matrix room mentions for readability, the API documentation with better linking to external APIs and resources. The dev kit setup instructions are being improved as well, to be more of a step-by-step guide, and a page on troubleshooting dev kit power issues is coming soon.

That’s all for now, folks – stay tuned for more exciting updates to come!

A big “Thanks!” to everyone that has helped review and merge changes into upstream projects; you are awesome, and your time and contribution are much appreciated!

The post Librem 5 – End of May Progress appeared first on Purism.

by Heather Ellsworth at May 28, 2019 13:37

May 27, 2019

Handy News Reader

Let's begin a new year with a bunch of new features!

We've already reached another year: couple of new Handy releases behind - with a bunch of new features, either already introduced or "in store" :) . Let's take a little bit of a survey through it.

What's new?:

Flick through articles with distraction-free picking and choosing :) .
If You are used to browse articles in full text mode and add chosen ones to read later or just to preserve (by adding to Favorites) - this feature is made especially for You :) . It allows to add a currently displayed article to Favorites quickly and easily - by a simple swipe from the top gesture. If repeated, the gesture will act vice versa, allowing You to remove from Favorites. So this is a really convenient and distraction-free way of handling new articles :) !

Make Your reading always eyes-friendly - by flexible brightness adjustment.
Although we have already an option to adjust a text brightness "once and for all" (app's settings: "Article's text ➜ Text brightness") - we've introduced yet another, easy way of flexible brightness adjustment while reading: by swiping up or down, alongside the left edge of the screen.

Please Your fingers with better tap zones.
Since there are great diversity among the size of mobile devices, we've decided to improve tap zones, keeping in mind there are a lot of screen sizes and ratios out there, as well as various fingers' sizes, too :) . So, to make the thing more flexible and universal in use, we've added an option for adjusting tap zones' size, which now can be tailored to any screen (or finger) size :) . I like to call this feature "a lazy finger's pleasure" ;) - for I didn't like to tap the previous tap zones because there were a little bit too small for Me, forcing My finger to be more precise, requiring more effort, etc. ;) . Now, finally, the finger can rest and relax while using Handy ;) .

Now Handy knows what You have not seen yet :) !
Alexey described it pretty well: "I have a feed with auto update on, which has many articles. Periodically I am looking through article titles (in article list) to find something interesting. But the articles remain unread. I want to know which article titles I've had already seen. So the new feature marks new articles with a special ("+") icon - until they remain visible on the list. The ones which You've scrolled out of the list's visible area will be left without a "+" sign (after 2 sec. of being off the screen).

So I always know which articles I have already seen and which are new. This is a similar thing to the 'x new articles' button, which I want to remove in the future".

If You, however, don't find this feature usable for Yourself, You can turn it off in app's settings ("Articles' list ➜ New article icon").

Hello F-Droid :) !
We are now happy and proud to inform that Handy News Reader reached the decent set of free software gathered under the F-Droid app store. This is the place where You'll find many great apps - mostly so-called "free software" - which are often light, fast, and without ads, no strings attached :) ! Moreover, the app store itself has dark mode, allows to choose between various apps' versions (instead of forcing You to install "the newest and greatest"), and has a handful of other valuable features, so it is worth recommending as a good Google Play alternative.

Take a crash souvenir ;) - a crash log file.
There are times - however rare - when an app may crash. Now, in such cases, Handy will help us to solve crash issues by creating a special "log file" containing crash-related technical information. Handy may propose to send this file to us via Your e-mail app - or You can send it by hand (the file is located here: "internal memory ➜ feedex ➜ crash.txt").

"In store".

Alongside new features which are currently implemented - there are a handful of others, which are considered to be introduced in the future (among all the rest of the upcoming features described on this site). Some of those are:

"Run the app in..." - custom shortcuts let You to launch Handy always in Your preferred category (e.g. The Unread, Favorites, and so on).

Customize hyperlinks - choose a color of hyperlinks within article text.

Disable hyperlinked headers - if You often accidentally tap on article header in full text mode, You will be happy of that one :) .

That's all for now, let the good times roll - happy new year and have a good time with Handy!

by Thomas Leigh ( at May 27, 2019 22:43

Don't miss anything while scrolling.

However ordinary an action scrolling text seems to be - it may be surprising as well. Earlier on, whatever way You prefer to scroll article text, a single scroll has taken You exactly one single screen down- or upwards. This way, however, sometimes You may find Yourself a little bit confused because not always the very first line on the top remains fully visible (which is due to the fact that text can be scrolled virtually to any point of its height, so - for example - it is possible to scroll the text even halfway its top line). In such a case some of us may need to scroll back a little bit in order to check on the last read line of the text.

Now the scrolling itself can be much more convenient, thanks to the new, alternative and optional mode You can use: last line preservation. This feature assures You that whenever You scroll article text - on its very top You'll always see one or a couple of the last lines You've just read. This way You don't need to scroll back anymore in order to check if the text in fact has been scrolled correctly (or to recall its last thought). Just enable the feature (settings ➜ Notifications & behavior ➜ Page scroll 90%) and enjoy even more convenient reading :) .

by Thomas Leigh ( at May 27, 2019 22:39

Gain a good habit of a backup.

When it comes to any surprising event, it's always good to be prepared at least to a some degree - thanks to which You can feel comfortable regardless of which way the wind blows. In case of smartphones and computers sometimes You may stumble upon unpleasant surprises, such as app crashes and the like - after all, there is all pretty convoluted stuff under the hood, and sometimes something may don't work the way it should. Unfortunately as a result of those cases it is possible for You to loose something - from Your preferences of using a particular app (reflected in its settings) to the data stored within it. However much You can loose, there is often a need to start from scratch, all over again - which usually is pretty time-consuming.

There is, fortunately, a good workaround invented especially for such cases - and it's called "a backup". Many apps are equipped with its own backup feature, which - when it comes to app crash or any other serious failure - often allows You to easily and quickly restore everything to the point when it all worked the right way. It is often possible to restore both Your preferences and personal data. And sometimes an app may be even smarter: it may backup and restore completely by itself (!), so You don't need to pay any attention to it, even if some crash occurred - the whole thing will be restored in a moment, and You couldn't even tell that anything has happened.

Although Handy has had a backup feature for a long time now, not so long ago it has been significantly improved for You to enjoy the situation described above. So now:

  1. Handy will backup itself more often (the more often a backup is done - the less probable is that You'll notice any difference after the app restores itself after possible crash) - ensure that this option is checked: app's settings ➜ Advanced ➜ Enable automatic backup.
  2. More things are currently included within the backup: Your current Favorite Articles list and Your preferable app's settings.
  3. In case of a crash Handy should restore itself automatically - to the last point when everything has been all right.
  4. Regardless of the autobackup interval (how often Handy should backup itself - You can set it up within app's settings ➜ Advanced ➜ Auto backup interval) You can backup the app on demand - just open an article list, tap three dots on the top right and choose "Create auto backup".

by Thomas Leigh ( at May 27, 2019 22:34

Privacy Browser

Privacy Browser 3.1

Privacy Browser 3.1 has been released. This adds a much requested close tab button to the app bar. If there is only one tab, this button will run Clear and Exit.

Updated app bar.

This release fixes a problem with elements on a web page not being able to scroll left and right that was caused because the view pager kept stealing all the input and trying to figure out if the user was trying to swipe left and right to change pages. The solution was to disable swiping in the view pager as a method of changing pages. Now, the only way to change pages is to use the tab layout in the app bar. This has the additional benefit of making the scrolling of the app bar on and off the screen smoother, because it turns out the view pager was also messing with this input trying to decide if the user was attempting to swipe the view pager.

There is a new splash screen that displays when Privacy Browser starts, which shows the loading status of the blocklists. There has also been a fair amount of effort put into decreasing the load time of the app, resulting in an approximate 50% decrease on many of the devices I have tested. Initially I was planning on converting the blocklist storage into SQLite databases, but I ended up not doing that because the internal structure of the blocklists and SQLite are not directly compatible.

The new splash screen

Based on a user suggestion, Privacy Browser now modifies URLs to remove some common tracking IDs and AMP (Accelerated Mobile Pages) redirects. I have created a page with details about what each of these settings do.

The new URL modification options.

Images can now be opened in new tabs. This complements the ability to open links in new tabs that was introduced in version 3.0.

The Open in New Tab entry was added at the top of the context menu.

Web search was fixed, which didn’t work if a tab was already open. A bug was fixed that caused Privacy Browser to be restarted whenever entering or exiting split screen mode. Changes to Download with External App was improved so that they apply to existing tabs. The file browser was improved to work with additional file managers. An option was added to enable/disable the wide viewport. Intermittent problems were fixed relating to opening intents from other apps and setting the current WebView when switching tabs.

For devices running Android Oreo (8.0, API 26) and newer, the about screen now shows the WebView provider. For example, in the screenshot below, it is provided by Google Chrome.

Because not every WebView provider works the same!

The Layout submenu in the options menu has been renamed Page. This is similar to the naming syntax in other browsers and should make it easier for people to locate Find on Page. Print and Add to Home Screen were moved from the Share submenu to Page, which seemed like a more natural home with the new name.

The new page submenu.

The names of the first five settings were shortened. On Android Oreo (8.0, API 26) and newer, the Save Form Data settings is not displayed because it no longer applies.

A number of other changes in this release should improve the stability of the code base, decreasing the number of crashes you should experience

This release features the first complete Turkish translation. The German translation was updated by Bernhard G. Keller, the Italian translation was updated by Francesco Buratti, the Russian was updated, and the Spanish translation was updated by Jose A. León.

The next release will add support for I2P, which is a network, like Tor, designed to hid the user’s IP address.

by Soren Stoutner at May 27, 2019 19:07

Handy News Reader


If You’d like to use HNR in Your Own native language - and You are able to translate it from English - You are welcome to help: here You’ll find all You need to do the translation and keep it up-to-date.

Furthermore, if You like Our app and would like more people of Your Country to benefit from it, here You can translate the HNR website - which consists of several how-to’s, help instructions, and generally presents the app’s features in a way comprehensive for every user - not only “the techy one”.

What is important.

While translating, You will notice that there are many phrases which have additional elements within the text. Those elements are usually placed within angle brackets, it could look as follows:

...some text <em>to translate</em> whenever
You have some spare time...

Please keep those elements accordingly in place, regarding Your Own translation.

About this website translation.

First of all, thank You for Your will to translate the HNR website - thanks to which more people will be able to gain much more information on the HNR app - therefore they will benefit it more.


There is no deadline, so feel free to develop this translation whenever it is comfortable for You :) . Moreover, You can do it on Your Own pace: You can do how much You want at any time.

One thing You need to know is that there are two “levels” of this translation: the basic one and the extended one.

The basic translation covers all labels which are present on the website: menu, various headers, descriptions, and so on. All in all there is quite a piece of text to handle.

This basic level, however, may be enough for Your language version to go. It consists of following files:

  • Current

Another - extended level consists of articles I’ve written on Handy NR (several how-to’s, step-by-step instructions, news and so on). This is great amount of work to do, please decide by Yourself if You would like to translate those files too. It consists of all the files within following folders:

  • Features
  • Help
  • News
  • Tips &Tricks

How to do the translation?

  1. Choose the language You’d like to translate the website into.
  2. Choose the file You want to translate (see the description above).
  3. On the left You’ll see the whole text splitted into several parts. On the right - the first part for You to translate.
  4. Once You’ve translated this particular part - click “Save” button.
  5. Once You’ve done all the translations -once again click each part on the left and approve it by the “✔” sign under Your translation field. Thanks to this You should be notified every time something has been changed on the website.


If You want the HNR website in Your language be always up-to-date, pay attention to Crowdin notification emails - which should let You know whenever the website’s content has been updated.

Thank You for Your time and work,
Thomas Leigh

by Thomas Leigh ( at May 27, 2019 14:28

May 25, 2019


Happy Towel Day 2019

As you know for sure, a towel has immense psychological value.

You are also well aware that, for some reason, if non-hitchhikers discover you have your towel with you, they also assume you carry your own toothbrush, soap, space suit, etc; that they will happily lend you anything you need and might – accidentally – have lost. Above all, they will think that anyone who travels along the galaxy and still knows where their towel is, is clearly a nice, careful, reasonable person. And so, you’re very likely carrying a towel with you today.

The team at Purism wishes you a nice #towelday, and a really amazingly together weekend. We know our readers are cool froods who always know where their towels are.


Purism offers high-quality privacy, security, and freedom-focused computers, phones, and software. Our platform is meant to empower everyone. We believe people should have secure devices and services that protect them rather than exploit them, and we provide everything you need in a convenient product bundle.

We like to give back. Librem Chat is built with free software, created by security and privacy experts. Learn more about how Purism contributes to its community.

The post Happy Towel Day 2019 appeared first on Purism.

by Ines Mendes at May 25, 2019 14:37

May 24, 2019