Your rating: None Average: 4.8 (13 votes)

BarWal in a way is a continuation of ClubCode, as extending ClubCode is not easy to do and the data storage system is not very flexible.

BarWal (Barcode Wallet) makes use of groups to get more structure in the codes collection. It uses zint (available in my repo) for generating all the code images.

Zint supports a lot of codes:

  • Code 11
  • Standard 2of5
  • Interleaved 2of5
  • IATA 2of5
  • Data Logic
  • Industrial 2of5
  • Code 39
  • Extended Code 39
  • EAN
  • EAN + Check
  • GS1-128
  • Codabar
  • Code 128
  • Leitcode
  • Identcode
  • Code 16k
  • Code 49
  • Code 93
  • Flattermarken
  • GS1 DataBar Omni
  • GS1 DataBar Ltd
  • GS1 DataBar Exp
  • Telepen Alpha
  • UPC-A
  • UPC-A + Check
  • UPC-E
  • UPC-E + Check
  • Postnet
  • MSI Plessey
  • FIM
  • Logmars
  • Pharma One-Track
  • PZN
  • Pharma Two-Track
  • PDF417
  • Compact PDF417
  • Maxicode
  • QR Code
  • Code 128-B
  • AP Standard Customer
  • AP Reply Paid
  • AP Routing
  • AP Redirection
  • ISBN
  • RM4SCC
  • Data Matrix
  • EAN-14
  • VIN
  • Codablock-F
  • NVE-18
  • Japanese Post
  • Korea Post
  • GS1 DataBar Stack
  • GS1 DataBar Stack Omni
  • GS1 DataBar Exp Stack
  • Planet
  • MicroPDF
  • USPS Intelligent Mail
  • UK Plessey
  • Telepen Numeric
  • ITF-14
  • KIX Code
  • Aztec Code
  • DAFT Code
  • DPD Code
  • Micro QR Code
  • HIBC Code 128
  • HIBC Code 39
  • HIBC Data Matrix
  • HIBC QR Code
  • HIBC PDF417
  • HIBC MicroPDF417
  • HIBC Codablock-F
  • HIBC Aztec Code
  • DotCode
  • Han Xin Code
  • RM Mailmark
  • Aztec Runes
  • Code 32
  • Comp EAN
  • Comp GS1-128
  • Comp DataBar Omni
  • Comp DataBar Ltd
  • Comp DataBar Exp
  • Comp UPC-A
  • Comp UPC-E
  • Comp DataBar Stack
  • Comp DataBar Stack Omni
  • Comp DataBar Exp Stack
  • Channel Code
  • Code One
  • Grid Matrix
  • Ultracode
  • rMQR
  • Royal Mail 2D Mailmark (CMDM)
  • IBM BC412 (SEMI T1-95)
  • Brazilian CEPNet

More information on the codes can be found in the zint documentation:

Source on github

As with ClubCode: barcode can be used to scan codes and paste them via the clipboard in BarWal.

Adding custom icons

If you prefer to have more recognizable custom icons in the barcode list (company logo or so), you can add them instead of having a default icon.

Steps to take:

  • Get you icon (png format) ready, normally 128x128p. The height can be less, but the width should be 128 pixels for a proper result.
  • Make sure this image file is exactly named "barwal_icon.png"
  • Upload it to your Pictures (gallery) folder on the SFOS device. You can check if it shows up in the Gallery.
  • Choose edit from your related barcode in BarWal and press the "Import custom icon" button.
  • That should be it, you can now remove this icon image from your gallery once again.


Application versions: 
File harbour-barwal-1.0-9.i486.rpm187 KB09/07/2021 - 01:05
File harbour-barwal-1.0-9.armv7hl.rpm183.51 KB09/07/2021 - 01:05
File harbour-barwal-1.0-9.aarch64.rpm185.03 KB09/07/2021 - 01:05
File harbour-barwal-1.1-1.aarch64.rpm185.21 KB19/07/2021 - 23:09
File harbour-barwal-1.1-1.armv7hl.rpm183.68 KB19/07/2021 - 23:09
File harbour-barwal-1.1-1.i486.rpm187.17 KB19/07/2021 - 23:09
File harbour-barwal-1.2-1.i486.rpm188.69 KB20/07/2021 - 16:47
File harbour-barwal-1.2-1.armv7hl.rpm185.24 KB20/07/2021 - 16:47
File harbour-barwal-1.2-1.aarch64.rpm186.68 KB20/07/2021 - 16:47
File harbour-barwal-1.3-1.aarch64.rpm189.38 KB16/11/2021 - 11:52
File harbour-barwal-1.3-1.i486.rpm190.9 KB16/11/2021 - 11:52
File harbour-barwal-1.3-1.armv7hl.rpm188.13 KB16/11/2021 - 11:52
File harbour-barwal-1.4-1.aarch64.rpm188.15 KB13/12/2022 - 10:38
File harbour-barwal-1.4-1.i486.rpm189.58 KB13/12/2022 - 10:38
File harbour-barwal-1.4-1.armv7hl.rpm186.9 KB13/12/2022 - 10:38
File harbour-barwal-1.5-1.aarch64.rpm186.31 KB02/02/2023 - 01:19
File harbour-barwal-1.5-1.i486.rpm187.19 KB02/02/2023 - 01:19
File harbour-barwal-1.5-1.armv7hl.rpm184.91 KB02/02/2023 - 01:19
File harbour-barwal-1.6-1.aarch64.rpm188.18 KB10/04/2023 - 21:26
File harbour-barwal-1.6-1.i486.rpm189.18 KB10/04/2023 - 21:26
File harbour-barwal-1.6-1.armv7hl.rpm186.81 KB10/04/2023 - 21:26
File harbour-barwal-1.7-1.i486.rpm189.59 KB07/04/2024 - 21:57
File harbour-barwal-1.7-1.aarch64.rpm188.59 KB07/04/2024 - 21:57
File harbour-barwal-1.7-1.armv7hl.rpm187.22 KB07/04/2024 - 21:57
  • 1.7-1 Improved "add code" page
  • 1.6-1 Switch from png to svg format to improve barcode image quality
  • 1.5-1
    • Move icon to the right in barcode display page
    • Also add Zint version in about page
  • 1.4-1 Added Royal Mail 2D Mailmark (CMDM), IBM BC412 (SEMI T1-95) and Brazilian CEPNet to barcode list
  • 1.3-1
    • Opt out of sailjail
    • Small improvement in barcode string value layout
  • 1.2-1 French translation by baxyz
  • 1.1-1
    • Tap on code to toggle half/full size (not sure if there is any usecase)
    • Updated Polish and Swedish
  • 1.0-9 Added move to other group option to barcodes
  • 1.0-8
    • Polish language updated
    • Show custom icon in details and editpage
  • 1.0-7
    • Some more tinkering with the coverpage
    • Only enable import/remove icon button  when relevant
  • 1.0-6
    • Updated Polish
    • Only enable clear auto-open group when relevant
  • 1.0-5
    • Updated Swedish
    • Added Polish language thanks likot180
  • 1.0-4 Added option to auto open barcode group on start
  • 1.0-3 Fix space issue barcode strings
  • 1.0-2 Updated Hungarian
  • 1.0-1
    • New icon by JSEHV
    • Dutch language added by JSEHV
  • 0.9-2 Fixed custom icon issues on coverpage
  • 0.9-1
    • Updated Swedish
    • Show custom icon on coverpage
    • Consistent resizing of custom icon
  • 0.8-1
    • Option for custom icons in barcode list (see instructions above)
    • Small layout fixes
  • 0.7-1
    • Updated Swedish
    • Added icons to barcode list
  • 0.6-1 And barcode list should now be sorted without breaking the currently stored barcodes
  • 0.5-2 Forgot to add barcode string in details page, now fixed
  • 0.5-1
    • Added barcode details to context menu
    • Data conversion to remove zint codes from barcode names itself
  • 0.4-1
    • Updated Swedish
    • Hungarian translation added (thanks 1Zgp)
    • Show barcode image on coverpage if displayed in app
  • 0.3-1
    • Added Swedish translation (thanks eson57)
    • Forward possible zint errors as notifications
    • Display error screen instead of a previous valid barcode is case of an invalid barcode
    • Send banner message if adding group or barcode failed
  • 0.2-1
    • Make background white for proper qr-code scanning
    • Small layout fix in adding barcode page
  • 0.1-1 Initial version


sdiconov's picture

Impossible to install, because of the zint dependency. Zint is not installable in Aurora.

 (CRITICAL)    [scripts] Script sections are not allowed in RPM
(ERROR)        [] Dependency is not allowed
(ERROR)        [desktop] Desktop file is missing
(ERROR)        [/usr/lib/] Installation not allowed in this location
(ERROR)        [/usr/lib/] Installation not allowed in this location
(ERROR)        [/usr/share/doc/zint-2.13.0] Installation not allowed in this location
(ERROR)        [/usr/share/doc/zint-2.13.0/README] Installation not allowed in this location
(ERROR)        [] Library is not allowed

ade's picture

It is created for SailfishOS, not some derivative. Anyway, if you can show me some non-russian documentation guideline on this matter I can look into it. Not being allowed to use /usr/lib and /usr/share will effect more apps than just Zint.

tuplasuhveli's picture

Adding Plussakortti (K-Plussa) took me some trial and error, but typing the 16 numbers without spaces and choosing Code 39 did the trick. The card itself doesn't have a barcode, but the cash register system recognises barcodes as well. Just wanted to share this information in case someone finds it useful.

PawelSpoon's picture

Hello, any plans to implement an export , import ? I have lost my codes in clubcarte due to reflash, phone switch etc. Thanks P

ade's picture

It does support Slava's My Backup for a potential restore. But if you lost your codes due to a reflash earlier, there is not much to restore anyway I guess.

PawelSpoon's picture

yup and it happend again :(

but now i did check my packup and it is pretty cool

only i think you will need to update barwalt for sailjail sooner or later

ade's picture

What sailjail update are we talking about? Sailjail is disabled for BarWal, because else it can't communicate with the Zint backend.

erdzas's picture

Thank you

erdzas's picture

Hi, is it possible to store european covid passport in your app? I tried by scanning the qr-code with codereader app and create a new entry in barwal, but the new qr-code Is different from the original one. (with code type = qr code)

slava's picture

Different QR codes (e.g. with different error correction levels) may visually differ and yet contain exactly the same information. As long as the information doesn't get damaged, the certificate must remain valid.

ade's picture

Thanks for commenting on this. I know you added some code to Barcode to recognize EU Digital COVID Certificates, but I cannot imagine it would mean some new QR-code variant.

slava's picture

You can try this - scan your Digital COVID Certificate code with CodeReader (aka BarCode), copy text to clipboard (the one prefixed with HC1:), convert it back to QR code with e.g. QR Clip, probably get a visually different QR code, scan it again and you should see the same certificate.

Note that CoreReader doesn't verify the signature, and therefore doesn't guarantee the validity of the certificate. It only decodes the payload.

ABreen's picture

Thank you. That was fast. I guess it's not used often but still useful.

ABreen's picture

Thank you for a great app.

I would also add my interest in being able to scan directly to the app. However using Slava's Code Reader and copying and pasting into Barwal isn't too painful.

Is possible to add a feature where it's possible to move codes into another group. This would cater for the situation where a code is created in the wrong group.

Thanks again for a great app.

ade's picture

Had a move option in mind but left it out as not often used.

But it is added now after all.

maier's picture

Hi ade. May it is a solution if you work together with slava. May he implement a call/button for your app and transfer the data for saving ... then the pain will be gone. ;)

ade's picture

If anyone wants to create a PR for scanner integration or another solution, please do. Both BarCode and SailOTP use the qzxing library for barcdode image processing and some camera stuff will be needed of course. The qzxing library supports about 13 of the more common codes (zint/barwal has more than 50).
It is not on my todo list right now, as it is no trival task, and I am perfectly fine with BarCode doing this job for me.

sashikknox's picture

Sad, but without code recognition from camera, not usefull (need open second app for recognize code, than copy it, and add here =) )

ade's picture

Life can sometimes really be tough and complicated, I feel your pain :-)

maier's picture

Consider you have a product list with 300+ numbers and you are looking for the name of the profuct (search function is going over names and codes)
And the hit would be to have an CSV import/export function :)

maier's picture

With the NFC field I think e.g. for a bank card o. a time limited travel ticket. There is a bar code and a NFC code combined in one card. If you show the bar code so in the same time also the NFC code could be present for payment in the bus or metro or .... If I'm right then slava should have this prosesses also in his travel calculation app for Helsinki Card. ...and this should be only an idear for the future so there is no hurry ... you know hopefully what I like go say. In each way I'm happy to have your solution. Thanks once again.

maier's picture

Hi ade. You guessed right, I meant the request groups at option. I think if there is a search field on top of the group page and you start typing a code name then the filtered codes appear under the search field. As more specific the filter name get as less codes appear. If someone like to choose the group then he jump in the group as it is right now.

ade's picture

Your point is clear to me now, a global search on the group page. Groups where introduced to bring order, a global search would be more appropiate if no group ordering existed. The specific recent "complaint" was people wanted to have their limited amount of codes on one (start)page, no searching or group selecting first.
I do have quite a lot of (test) barcodes, but ordered are easy to find for me.

naytsyrhc's picture

Wow. That was fast. And works like a charm. Needed to figure out, that selecting group for auto open has to be set by long pressing group, but that's ok. Maybe I overlooked some explanation from you ;-) Thx a lot!

aerique's picture

Oh wow, thanks! That was totally not obvious.

Great app nevertheless! :-)

ade's picture

I want to avoid adding a separate settingspage while still possible, so I indeed added it to the submenu visible after a long press. I think people will find it there in the end if they want to use it :-)
Btw the reason it is put there is that you can also set it for a group if you have multiple groups.

maier's picture

@ade Is not the search field where you shrink by typing the results on the 1st page a solution also for the option request?
And a other point. Wouldn' t it be consequent to extend the wallet with an NFC field for each code entry?

ade's picture

What do you mean by the option request? Making groups optional? I do not see how those two are related.
About NFC: I am not really familiar with that. All I know it's functionality is very limited on SFOS. What is that NFC field supposed to contain anyway?

amaretzek's picture

Nice! Thanks!
Tried to use it for COVID vac cert, but it failed, err 125: invalid option, and then it starts in the middle of the sring: "43%C0C9B8H2...", which is after the first space in the string. On a PC it works, "cat cert.txt|qrencode -o tmp.png".

ade's picture

Indeed, it does not play nice with spaces. I hope release 0.1.0-3 fixed this.