FreeCAD First Timer

FreeCAD Logo

I have had a need for doing 3D CAD work in Linux but I don’t have the budget to invest in any  high dollar software to hobby around. FreeCAD fit the bill. It’s a free and open source 3D CAD modeler but it does a bunch of other things too. Although I could probably run something through Wine or in Virtual Machine, I don’t want to get further locked into proprietary software that doesn’t support Linux. The CAD package I am most familiar with is PTC Creo, formally Pro/Engineer and Wildfire. It is a fine piece of software that I am very adept and creating whatever I can dream up.

The problem with Creo is, even if I could afford to purchase a license, the software doesn’t run on Linux. PTC used to support Linux but does not any longer, which is very unfortunate.

After trying a few things, I have settled on FreeCAD as my open sourced software of choice. At the time of writing, I am running FreeCAD v 0.17. FreeCAD is written in C++ and Python and is extensible so it allows for you to create functions in Python. This is a 3D CAD, BIM, FEM modeler. At this time, I only do Mechanical CAD (Computer Aided Drafting) work with it but am interested in BIM (Building Information Modeler) and FEM (Finite Element Method) modules as well. More on those at another time.

Installing FreeCAD in openSUSE is can be done using the 1-Click method or my favorite method, through the terminal:

sudo zypper install FreeCAD

I wasn’t completely vanilla in using FreeCAD as I used it as a part viewer for years but I hadn’t taken the time to create any any parts in it. After watching a video from Sudo Sergeant on using FreeCAD, I was able to see how too use the different functions. I was rather inspired to try it myself.

Running FreeCAD for the first time you are welcomed with a pleasant start center. Since I am most focused on part design, that was the Workbench that I selected.


My only initial displeasure with the usage of FreeCAD was the color gradient of the background.


I am quite sure it is the most acceptable default for most but it is a bit too bright for me. I like everything to be dark. This is easy enough to fix by opening the preferences dialog box.

Edit > Preferences…


Select Display then the Colors Tab where you can change your gradient however you like.


The Combo View pane is real nice at guiding you through the process of designing parts the way FreeCAD wants you to do it. I find this to be just a bit better than how Creo does it. Unless you KNOW how to use Creo, you won’t know where to get started. FreeCAD, on the other hand will begin guiding you after you select Create body you can begin with your first sketch.


From here you can select to Create sketch or Start Boolean from the Task tab, the menu or the toolbar icons. Thankfully, FreeCAD doesn’t have the silly Ribbon interface. You can move your icon groups around any way you like.

When starting a sketch FreeCAD will create your 3 basic datum planes, immediately. You just have to determine the default orientation of your part you are designing. It should be noted, those that are more accustomed to video game 3D think of the X and Y of the screen with Z being depth through the world. With engineering, you swap the Y and the Z axis. Z is the height of the part while Y goes “into the screen” as it were.


For my purposes, I am going to build this part as though I was looking down at it on a table. This is, of course, design intent dependent.

In going through the process of constraining the sketch, the picks and clicks are a bit different then Creo but the concepts are the same. One area where FreeCAD shines is the listing of constraints in the Left-panel Combo view. I would appreciate this feature in Creo.

Once the sketch is complete, the next step is to “pad” the sketch into the 3rd dimension which is nothing more than selecting the pad tool and setting the depth and direction of extrusion.


As the model grows in complexity, you can take advantage of some of the other padding tools, such as to pad to a selected face of the part. A similar feature I use frequently in Creo, though, named differently.

The next task is to add rounds or fillets to the part. For FreeCAD the process is a bit different than what I’m used to but still makes perfectly logical sense. Select the edges you want to add rounds and select Fillet tool.


It is possible to add multiple edges and later edit the feature to change references or values.


I do appreciate, again, the left-side panel that displays valuable information when you are going through the process.

The process for adding chamfers is the same as fillets. FreeCAD also respects the practice of rounds and chamfers following along tangent edges.


Although I am used to an extrude feature that is either adding or removing material, FreeCAD separates out similar functions, one for adding, the other for removing material. In this case, I want to create a “pocket” from a sketch. The options for how to remove material does what I need. You can do a blind cut at a depth of your choosing, through all, to a selected surface and so forth.


For this part, I want a through hole


Then I want a chamfer around the hole… just because.


What I like

This is very easy to use, stable and quite feature rich. There are a few things I cannot do with FreeCAD that I would like but that is just another reason to get involved in the project.

FreeCAD is built using the Qt toolkit so it just looks great and respects my KDE Plasma Theme. Everything has that fine Qt polish that really makes for a great user experience. I don’t like light-in-color user interface so this alone makes FreeCAD nicer to work with than Creo.

What I don’t Like

There is no assembly module that I could get to work, however, there is a module that is actively being worked on. I have not yet been able to get it to work for me but it is only a matter of time before I’ll have it working. It is likely that this module will be included in the future releases as well.

Final Thoughts

FreeCAD is a fine piece of software that is easy to use. You really just have to get into it and play around a bit. This is a fine parametric modeler. There are a few “niggles” about the application but I have yet to use any piece of 3D design software that doesn’t have it’s own flavor of niggles.

The only thing I can’t do, at this time, with FreeCAD is create an assembly. It is being actively worked on so it is only a matter of time before it is possible without having to fiddle with the software.

I have started to use FreeCAD for all my little side projects instead of the commercial software from my employer. It is just as easy to use, well, maybe easier to use, actually, since FreeCAD guides you through the process very nicely. I hope to see this project continue to grow and improve. Although I have only scratched the surface of what FreeCAD can do, I am already impressed.

For more information or to get involved check out their site at

If you find this to be useful software and would like to support the project you can do so here.

I really encourage you to check it out. It’s available for Linux, Windows and a slightly dated version for MacOS here.

Further Reading

openSUSE 1-Click Install for FreeCAD

FreeCAD on GitHub

FreeCAD Website

Sudo Sergeant FreeCAD video

Help FreeCAD

Six Steps to a Simple Samba Setup on openSUSE

openSUSE Samba

openSUSE is a very polished, commercial-feeling distribution of Linux. The architects of the distribution have a much larger scope in mind of its usage than what I generally do. One such area is Samba, SMB or often referred to as Windows Network File and Printer Sharing Protocol. I only use this for one device on my network, my All-in-One, Printer-Scanner-Copier, The HP OfficeJet 8600. It is a fine machine that does what I need it to do very well, but for scanning to a network folder, I must use Samba.

This process used to be much simpler, many years ago, before the discovery of security issues within Samba. She short story of why there is the separation was some sort of vulnerability in the underlying system. I am sure there is a fairly simple or straight forward way to make it all work but my intent was to successfully set up Samba with as little effort as possible.

I had a resource out on the web someplace that told me how to do this simply but I couldn’t find the bookmark nor was there a link in my digital notebook so I took a few sites, what I know about openSUSE and created an easy step-by-step guide for getting Samba file sharing up and running. I have broken down the process into six easy to follow steps for a minimal setup. I use this to quickly and easily set up and use Samba with openSUSE Linux.

Six Steps to a Simple Samba Setup on openSUSE

Package Installation

Minimum number of packages required to install the Samba Server

Service Activation

System Services that need to be activated and installed

Firewall Configuration

Allow access to the server through the firewall

YaST Samba Setup

Basic configuration using openSUSE’s system configuration tool.

Adding Samba Users

Through the terminal, setting the username and password

Testing it all out

Making sure it actually works.

Final Thoughts

Samba is pretty easy to set up for a minimal usage. For something more involved and complex, there are certainly better ways of accomplishing it. Finally, if HP decided to put SFTP on their future All-in-One devices, this entire write up, to me, would be useless but until then, this is what is required.

Further Reading

Six Steps to a Simple Samba Setup on openSUSE

Samba on openSUSE Wiki

openSUSE Leap 15.0 Early Adoption Experience

Dell Latitude D830 openSUSE Leap 15.0-sm

I have a “sidekick” machine in my cubicle that has been happily running openSUSE Leap since I started using it. It is a recovered Dell Latitude D830 with an Intel Core 2 Duo T9300 CPU at 2.50 GHz, 4 GiB of RAM and the Nvidia Quatro NVS 140M. It just has a standard hard disk drive for storage. I put this unit back together 3 years ago only expecting to get a year or two of use out of it. Thankfully, the way Linux, and specifically openSUSE rolls the distribution, I have far extended the life of this machine.

Since this hardware is older everything is generally supported out of the box without any tweaking. I have decided, for now, to not use the proprietary drivers and see if Nouveau will work using KDE Plasma and not lock up on me.


I downloaded the DVD Image (now released as an official version) and used SUSE ImageWriter to write it to a USB. Like virtually every other openSUSE installation, it was pretty uneventful. I did choose to do a “Nuke and pave” for this installation as I wanted to set everything up from scratch. There have been a number of changes in openSUSE since the last static release, namely, the BTRFS subvolume structure, the location of the RPM Database move and SuSEfirewall2  migration to the new firewalld. I also experimented with a number of applications on this system and just wanted to have a fresh start.

Outside of the warning of the usage of Nouveau drivers with KDE Plasma, there as nothing to note on the installation process.

First Run

To start out, I needed to ensure that I covered my bases for my preferences. Since I like to add a little Oxygen Theme into the Breeze Theme I immediately ran this in terminal:

sudo zypper install oxygen5

I also like Konqueror and one of it’s specific features, the File Size View.

 sudo zypper install konqueror konqueror-plugins

Then I added the Multimedia Codecs along with VLC Player.

So far, everything seems to be working just as expected and the Nouveau drivers are holding up. I will continue to use them until I have any issues

Dell Latitude D830 Leap 15.0 20180523.png

One Week Later

I have since updated the machine to the current release version and I am still operating, trouble free. The System seems to be humming away well with the Nouveau drivers. I have tested many things I know would have caused the graphics drivers to bug out and crash X. At this point, there hasn’t been any weirdness whatsoever. The compositor is running just fine without any glitching. I have been using this machine in the same mannor as I had previously used it under openSUSE Leap 42.3 with the propriatary Nvidia drivers. Should I have an issue, I will see if the propriatary drivers fix it.

What I Like

After installing the necessary packages, all of my system settings were just as I wanted them to be. I didn’t have to fiddle around with any settings. KDE Plasma 5.12 is the Long Term Support version of the Environment and I know that from my expeirience with the transition to 5.12, it is more memory efficient than previous versions. In only one week, I haven’t run into any issues where Swap Space was needed. In monitoring the memory usage, I fluctuated between 2.8 GiB to 3.4 GiB in usage with Firefox being biggest memory hog. This has prompted me to start playing around with the Falkon web browser which I downloaded here. So far so good but I need more time to use and play with it before I can say more.

What I don’t Like

So far, I haven’t found any issues, but it has only been a week that I have been using it. Maybe, I could say, I don’t like that openSUSE doesn’t have wider adoption as it is technically very sound and very stable. I am hoping with the release of openSUSE Leap 15.0 that it will reach a wider audience.


openSUSE Leap 15.0 has been polished up very nicely. It it very much an incramental improvement over 42.3. The software selection meets my needs and if the software you want is not in the official repository, there is likely a repository available on the Open Build Service.

Since most of my systems are pretty low-end, I have them generally set up for specific purposes. Although I can happily run openSUSE the way I want with 2 GiB of RAM, I have come to the conclusion that in order to have a real positive experience, you need to have at least 4 GiB of RAM.

This Dell Latitude D830 is now 11 years old. It is far past it’s end of life but thanks to the all the fine engineers involved from kernel development, the applicaitons all the way to package maintainers and testers, this computer still remains very useful and not quite obsolete. I am impressed with the stability open source Nouveau graphics drivers which gives me a lot of confidence that as Nvidia abaondons the older hardware, I have options. I just may get several more years out of this machine.

Further Reading

openSUSE Leap Download

SUSE Imagewriter

Falkon Web Browser

Falkon Web Browser Download for openSUSE

Multimedia Codecs along with VLC Player

KDE Breeze Theme with Oxygen Enhancements

Dell Latitude E6440 all on SSDs


I have wanted to upgrade the 500 GB SSHD hybrid drive in my Dell Latitude E6440 since I purchased it but i just wasn’t prepared to spend the asking dollars for a new SSD. The only adequate solution I determined reasonable was to go with a used SSD and just accept the risk that goes with used.

After much searching and bidding, I purchased a Micron M500 with 960GB SSD which ends up being 894GiB of storage. When it comes to SSDs this is NOT, by any stretch, considered top of the line. Here are the specs that many seem to be fixated.

  • Sequential 128KB READ: Up to 500 MB/s
  • Sequential 128KB WRITE: Up to 400 MB/s
  • Random 4KB READ: Up to 80,000 IOPS
  • Random 4KB WRITE: Up to 80,000 IOPS
  • READ/WRITE latency: 5ms/25ms (MAX)

Not the most performant drive but certainly much faster than the SSHD that I was using. If you are interested, here are the full specifications from Micron on this line of drives.

Since I already put the root and swap file system on a 128 GB mSATA SSD with very positive results, I was encouraged about how this upgrade was going to go. I could expect better performance with less power usage.


In preparation for upgrading, I did what any reasonably prudent, Linux using, data conscious, user would do. I backed up the contents of my home directory, well, another snapshot using Back In Time.

Performing the Modification

The great thing about every Dell Latitude I have ever owned is the ease of serviceability of the machines. No crazy tools are needed or long list of instructions to perform a simple modification. Just a small Phillips screw driver.


Two screws and the drive can be removed from it’s bay. The drive is held in place by these isolation rubber rails and a caddy cover. I appreciate this design, it is easily assembled, the rails have a nice, snug interference fit, and the caddy cover is held in place with a clip and screw.

SSD drive assembly

Troubles I Had

I am not sure what I did wrong but I couldn’t get the system to not look for the, to-be-replaced SSHD. I tried unmounting the drive before a reboot but still, it would continue to wait for the drive. The system would get stuck looking for the old drive and fsck didn’t correct the issue. I became impatient so I just decided to do a complete re-installation of the openSUSE Tumblweed, because I was too lazy to keep searching for a solution. There is probably a great simple solution that just escaped me.

Restoring the Data

There was a bit of a struggle in understanding how to restore the data from Back In Time into my home directory but once it was done, everything was back to normal. It took a bit longer than I expected but everything restored, all the files and settings. Like it never even happened…

A quick check of the SMART monitoring tools:

smartctl -a /dev/sda

Model Family: Crucial/Micron MX1/2/300, M5/600, 1100 Client SSDs
Device Model: Micron_M500_MTFDDAK960MAV
Firmware Version: MU05
User Capacity: 960,197,124,096 bytes [960 GB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: Solid State Device
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Mon May 21 10:10:56 2018 EDT
SMART support is: Available – device has SMART capability.
SMART support is: Enabled

SMART overall-health self-assessment test result: PASSED

My favorite line is the last one that says the test result: “PASSED.”


I am running openSUSE Tumbleweed with KDE Plasma as my desktop environment. The aAverage energy consumption before the upgrade, using the SSHD plus the mSATA drive was 21 watts; under similar loads with the mSATA and the 2.5″ SSD, I am consuming about 17 watts. These numbers, are of course, just estimates at approximate similar loads. It is not a very well controlled power study. Between the two drives I now have a total of 945 GiB of storage available; the most I have had on a laptop.

Opening up Steam is much quicker than before. Starting a game does indeed load a lot quicker than it did on the SSHD. I didn’t take any before and after benchmarks but there is most certainly the feeling of increased speed in everything. The computer was no slouch before but now there is an increased sharpness in using it.

The computer is oddly quite with only the fan left as a moving part. However, the only time I notice there is a fan is when my hand goes past he vent and I can feel a little warmth coming from it. Logging in isn’t quite instantaneous, I do have to wait a few moments but I blame much of that on the fact I heavily use the Akonadi storage service for personal information management. I have more information than most people likely save but suffice to say, the machine starts very quickly.

I didn’t take any external thermal readings from the computer before the upgrade but it feels like the thing does operate a bit cooler. It is only an impression.

Final Thoughts

This Dell Latitude E6440 seems to have an extra boost of speed, as to be expected. What I didn’t expect was how much I notice the censorial changes of using this laptop now. I have used other solid state only machines before and didn’t think much of them. Perhaps their less than stellar keyboards out weighed the silence of their operation or possible that I use this machine more than most. Regardless, I appreciate the change.

Was the upgrade worth the price I paid for the drive? So far, yes, very much, indeed it was worth it, but as I did buy it used, and although it passed the health self-assessment, I don’t really know how long it is actually going to last. For now, it’s pretty great and I don’t think I would want to go back to “spinning rust” for storage.

External Links

Micron M500 Specs

Back In Time


My Dell Latitude E6440

Using a 3.5″ Floppy with openSUSE Linux in 2018


I recently came upon two needs for needing to use a 3.5″ floppy in Linux. First was to go through this stack of disks to recover any data off of them. Secondly, in my latest effort to dig up the musical talents I once used regularly about two decades ago, I acquired a Korg N364 that has a 3.5″ floppy drive on it and I wanted to transfer data on and off of it.

USB Floppy Drive

The great news is, openSUSE Tumbleweed running KDE Plasma recognized and utilized the drive immediately but oddly, I could not write to the drive. My first task was to go through the stack of floppies and copy all the data off and archive it. I found some great files from the 90s that I rescued from bit-rot.

Floppy drive on E6440

The problem I ran into was my inability to write to disk. So much so that I even called into the Ask Noah Show. With some poking around and help from the IRC channel, I tried a few things:

sudo mount -o remount,rw /run/media/user/disk

Which was seemingly successful as it did remount the disk. I had one particular disk that I could not modify its contents. I had to double check that the disk was write enabled as it seems that I can’t remember what I did in the 90s to write protect or enable a disk.

back of floppy disk
Write-enabled disk

My next step was to format some of the problem / unreadable disks. I tried to format the disk from KFloppy with this error

Internal error: device not correctly defined.

I can’t be sure as running KFloppy in terminal didn’t yield much more information.

Fortunately, I am able to format the floppy disks in terminal with this:

sudo /sbin/mkfs.vfat /dev/sdc

This seems to have worked for most of my disks but it looks like some of the disks are far too degraded which seems to be the source of my problems. To correct the issue which has only been somewhat successful I ran this in terminal to fix the file system:

sudo fsck /dev/sdc

Even though the output looks unsuccessful, it actually was quite successful.

fsck from util-linux 2.31.1
e2fsck 1.43.9 (8-Feb-2018)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks…
fsck.ext2: Bad magic number in super-block while trying to open /dev/sdc

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
e2fsck -b 32768 <device>

I wouldn’t trust any critical data on this disk but I am able to transfer files back and forth without issue and I tried several files including making directories, so I am quite sure it is working well enough, at least for my purposes.

Floppy Drives are Cool

Many of our modern Solid state devices just lack something special to them that I don’t know how to capture in words. You just can’t have fun with USB flash drives like this hugely creative and industrious techy did with 3.5″ floppies.


The issue with KFloppy maybe that it is likely expecting a non-USB floppy, meaning, it is looking for the floppy drive at /dev/fd0 or /dev/fd1. The USB floppy disk mounts as an /dev/sdc on my system since it is being attached to the computer via the USB bus.

I don’t know how much I am actually going to use the floppy drive but I do have some more disks to at least pull data from. I wasn’t able to transfer any data to the Korg N364 due to a floppy drive failure but that is another project for another time.

Additional Information

nixCraft | How To format floppy disks, Zip disk in Linux

KDE Utilities – KFloppy


Snappy Packages on openSUSE Tumbleweed

openSUSE Snappy

I don’t see much on the webs about people using Snaps on openSUSE nor have I seen any experiences by openSUSE Users with Snaps so I thought I would see how it goes for me.

First off, the word “snap” appears in too many projects. A quick software search on gets you:

  • snapd
  • rsnap
  • snappy
  • snapper
  • esnappy
  • tarsnap

For this project, snapd is the right answer.

I prefer to use the openSUSE Packaging system for all my software but the idea of having a universal packaging system is seemingly a great idea and I can see this as a very practical method for 3rd party software distribution. Right now, we have three universal packaging formats: AppImage, SnapCraft and Flatpak. I have now used them all but for now I am going to focus on using Snaps.


Using the “Experimental” package System:Snappy One-Click install

At the time of writing, I installed version 2.23.5. The install was without incident, as to be expected with openSUSE.

First run

I went to the SnapCraft home page and just wanted to check out a “featured application” and chose to try out Minecraft. I figure, if something is going to fail, it will be a game that requires 3D acceleration, and sound.

For my first experience, I am already pleased to see that right at the top of the page there is the command to copy and paste into a terminal to install the software.

sudo snap install minecraft

It is simply beautiful that this can all be done in in the terminal too. No silly GUI front end required. Simple, straight forward, copy from the page and paste into terminal.

Unfortunately, I had to do some troubleshooting. I received an error when trying to install Minecraft.

error: cannot communicate with server: Post http://localhost/v2/snaps/minecraft: dial unix /run/snapd.socket: connect: no such file or directory

A quick search told me to check the status of the snapd daemon:

systemctl status snapd

The output from that:

● snapd.service – Snappy daemon
Loaded: loaded (/usr/lib/systemd/system/snapd.service; disabled; vendor preset: disabled)
Active: inactive (dead)

That told me I needed to start the service

sudo systemctl start snapd

Checked the status, once again:

snapd.service – Snappy daemon
Loaded: loaded (/usr/lib/systemd/system/snapd.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-05-11 11:21:40 EDT; 2s ago
Main PID: 7611 (snapd)
Tasks: 10 (limit: 4915)
CGroup: /system.slice/snapd.service
└─7611 /usr/lib/snapd/snapd

I wanted to be sure that the service starts at system boot, as well so I executed this:

sudo systemctl enable snapd

With the nice to see, somewhat interesting output:

Created symlink /etc/systemd/system/ → /usr/lib/systemd/system/snapd.service.

This is where I say the unpopular statement: SystemD is Awesome to use.

Now I could try to install Minecraft once again and received this upon completion:

minecraft latest from ‘snapcrafters’ installed


The first run launcher popped up and the next round of installation (presumably) commenced.


I was interested in seeing the command the snapy package added in my applications menu and here it is.

env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/minecraft_minecraft.desktop /snap/bin/minecraft

First run, and it worked as expected but since everything defaults to the Intel GPU on my system, I wanted to test offloading Minecraft to the AMD GPU. It works well with Steam, Descent and any emulators, so now I wanted to see if I prepend the same command “DRI_PRIME=1” if it would work as well.

It did and did so glitch free.



Although Snaps, or Snappy or Snapcraft is considered an experimental package in openSUSE, it seems to work perfectly fine within Tumblweed. There was just a bit of extra leg work required to start and enable the daemon but outside of that, it seems to work smashingly.

This is my first experience and I will continue to play with this as well as Flatpak and AppImage. My preferred method of software installation is still using the openSUSE software repositories but it is great to see that the option of Snaps are [nearly] effortless to get going.

See Also

openSUSE Project

SnapCraft Daemon Installation for openSUSE

Minecraft Snap Package


Adobe Acrobat Pro Alternative with XFA Extension on openSUSE | Master PDF Editor

Edit-pdfFor better or worse the PDF format seems to have become the de facto standard in digital documents. Generally, when I just want to view or quickly bang-out a form on a PDF, the KDE Plasma default Okular works just fine. The problem I have run into is with US government forms that have a XFA extension. Outside of that Okular is very capable. Features:

  • It has several supported formats: PDF, PS, Tiff, CHM, DjVu, Images, DVI, XPS, ODT, Fiction Book, Comic Book, Plucker, EPub, Fax
  • Thumbnails sidebar
  • Annotations support

In my search for not running a Windows VM to fill out an XFA encumbered form, I have recently stumbled upon a solution that is working really well for me.

Master PDF Editor

This is a real good looking application by Code Industry. It has a very easy to use, familiar feeling, User Interface. The application seems to be efficiently written as it literally pops right open as nice and quick as you would get from Okular. If you load it from menu or krunner, you are greeted with a friendly start page. I greatly appreciate that this is a Qt 5 application as it looks good with the rest of my dark themed desktop.



It is mighty wonderful that the company lets you use it for free. It is a feature reduced version but allows you the opportunity to use it at no cost. For openSUSE Leap and Tumbleweed, I selected the CentOS/Redhat 7.x + version is it built on Qt5. Download the RPM and install it as you would any other sand alone package.

Personally, I like the zypper terminal method:

zypper in ~/Downloads/master-pdf-editor-4.3.89_qt5.x86_64.rpm

Alternatively, right-click Open with Discover or Open with Install/Remove Software works well too.

What is wrong with the default PDF options?

The main reason for my search for a different PDF reader was for the XFA extension that seems to be popular in government use on Forms. Even the built-in reader on Firefox and Chrome give me this little gem of an error.


For a specific part-time job of mine, I need to be able to interact with PDFs properly and I would really prefer not to start up a Windows VM just to type out a few things in Adobe Reader. I would just install Adobe Reader but it is too old and unmaintained in Linux so it is hit but mostly miss if it will actually work not to mention the weird system tray icon it leaves me that requires me to kill the process to get rid of it.

If you like Master PDF Editor, it is not an expensive application to fork over some cash towards. My determination for whether or not I was going to commit to purchasing it was how stable it was and did it have all the features I wanted. While I can get by on using Okular for most things, there is something to be said for a more “feature complete” application like Master PDF Editor. Also, I have no problem paying for commercial Linux software. If it does it’s job, I am more than happy to pay for it.

Another handy feature in this application is the ability to digitally sign documents from a .pfx/.p12 certificate. Creating one may be a bit of a challenge but it is a nice feature to have.

Although it is not a feature I use regularly, having Optical Character Recognition (OCR) is great to have when you do need it. I tested it out and it is very good. Not 100% but close enough to be incredibly useful. English was installed by default on mine and I have 70 other language options available if I so choose. Another neat feature is the ability to go manually go through the OCR process to ensure correctness.


Since I manage all of my documents, not in a physical filing cabinet but by a digital one, I need to be able to organize and combine different PDF Documents. My method of storage isn’t anything fancy, just a folder of records that is divided in a way that makes most sense to me. I often have to combine or remove pages out of a collection pages and this software makes it easy to complete.

A lesser needed but nice to have feature is the ability to create your own fallible, PDF documents. If you have used other form creators, you won’t find this foreign at all. It has the features I have used before but form creation is not my one of my strong suits. That is an art, in of itself that I do not posses the skill or patience to craft beautifully.

Features I use regularly

Adding and removing PDF pages from a file and save them for archival purposes. Something I cannot do from Okular easily. Since I try to minimize the amount of physical documents that I keep down to only the “must be original” documents. I scan and store the rest. You may ask, how often do I review these documents? ANSWER: More of then than I would like to admit. Also, do you know how liberating it is to not have a full 4 drawer filing cabinet?

Secondly, I use this program with any PDF documents that have the XFA extension. This is also a “feature” that keeps me using PDFs more than I would like. There is a continent “Click to Highlight Fields” in the upper right-hand corner of the application window and away you can go filling these things out.

Final Thoughts

I very happily forked over the cash to be able to do the work I want to do in Linux. I also want to be able to support the developers and make Linux a viable platform to target. I hate hearing from commercial vendors in my field of work that they just don’t have the demand to develop on Linux. Code Industry is taking a risk by developing for Linux and I certainly don’t want them to give up and say there is no market for Linux Desktop.


If you would like to give Master PDF Editor a try, there is a free no obligation version that you can try out. Download the free version of Master PDF Editor and see what you think of it. Even though I don’t need the paid features on this software, I want to support the developer so I kicked them the cash for the registered version. I hope they continue to develop and improve this product. It’s already great and I am hoping it becomes even greater.

External Links

Okular PDF Reader

Code Industry Home Page

Get Master PDF Editor from Code Industry



Panasonic CF-19 Toughbook | Touch Panel Calibration


I don’t have loads of experience with using a touch screen interfaces on Linux but every setup to date has not required any fiddling around in any of the configuration files for proper operation. Thankfully, the folks at Panasonic made the CF-19 with some one-off technology to offer me that experience of understanding how to tweak and configure the touch panel interface.

The Problem

Everything about this machine configured perfectly from the openSUSE installer. Not a single component required extra prodding to use. Even the touch panel was recognized and somewhat usable, however the further away from the center of the screen you would touch, the further off the pointer was from where you touched.

Calibration Attempt One

Doing some searching on the webs, I came upon this tool called xinput_calibrator that creates a set of rules in xorg.conf.d folder (/etc/X11/xorg.conf.d/). It was a such a straight forward approach that I was sure it would work. Running it displays a screen with 4 cross-hair points of which you use the stylus to touch each of them. When it completes, you have a nice little configuration file to drop into xorg.conf.d. Unfortunately, it didn’t work at all.

Calibration Attempt Two

This method was not as easily understood or accomplished and brought with it a good share of trial and error.

First, I needed to find the input name of the touch panel. This was accomplished in my favorite terminal, Konsole:

> xinput list

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Fujitsu Component USB Touch Panel id=9 [slave pointer (2)]
⎜ ↳ ImPS/2 Generic Wheel Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ Panasonic Laptop Support id=12 [slave keyboard (3)]

Now that I identified that the touch panel was identified, I needed to find further information about the touch panel itself

> xinput list-props “Fujitsu Component USB Touch Panel”

Device ‘Fujitsu Component USB Touch Panel’:
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (280): 0
libinput Natural Scrolling Enabled Default (281): 0
libinput Calibration Matrix (282): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (283): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Left Handed Enabled (284): 0
libinput Left Handed Enabled Default (285): 0
libinput Middle Emulation Enabled (286): 0
libinput Middle Emulation Enabled Default (287): 0
libinput Send Events Modes Available (263): 1, 0
libinput Send Events Mode Enabled (264): 0, 0
libinput Send Events Mode Enabled Default (265): 0, 0
Device Node (266): “/dev/input/event6”
Device Product ID (267): 1072, 1282
libinput Drag Lock Buttons (288): <no items>
libinput Horizontal Scroll Enabled (289): 1

I had to modify the line containing the Coordinate Transformation Matrix:

Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

Some of those comma separated values corresponded to specific properties of the panel matrix. What I learned about those nine numbers that seem to matter:

Touch_area_width, 0, touch_x_offset, 0, touch_area_height, touch_y_offset, 0, 0, 1

I used some trial and error to get this to line up correctly. The best way I knew how to accomplish it was to concentrate on one axis at a time. First adjust the offset and then the width or height.

This is what I ended up with:

1.115, 0, -0.073, 0, 1.14, -0.04, 0, 0, 1

Using nano, I created a little script and called it


# Coordinate touch panel to screen

xinput set-prop “Fujitsu Component USB Touch Panel” –type=float “Coordinate Transformation Matrix” 1.115 0 -0.073 0 1.14 -0.04 0 0 1

Saved it and made it executable:

chmod +x ~/bin/

Then I moved it to the root directory in a location that seems to make sense… to me:

sudo cp ~/bin/ /usr/local/bin

I tried several things to get this script to start as soon as the login screen manager, SDDM, started but that was without success. I was advised to try this location: /usr/share/sddm/scripts/. I tired several things, all didn’t work. Perhaps it just may work for someone else and if they are successful, I would be more than happy to edit this post with a better way. Feel free to comment below or contact me.

What I ended up doing was to add a script on startup of KDE Plasma.

System Settings > Startup and Shutdown > Autostart

Select Add Script… and entered the location of the script:


Screenshot_20180422_093443Next, I needed an onscreen keyboard to use. Not that I am a fan of those, as I think they are all terrible, I needed one just to be functional.

sudo zypper in kvkbd

I had to change the color scheme to Dark, because the default was not to my liking, nor was it usable.


It is kind of fun putting this computer into tablet mode and poking around on it with the stylus and also makes me think about how nice KDE Plasma works with a touch interface. It certainly would have been much more fun to play with this if it were a multi-touch interface instead but still, fun and very usable. I certainly prefer a real keyboard but I see the value of this setup.

Final Thoughts

This is a fine little machine that is great for taking to less hospitable (to electronics) type of environments. The keyboard is just a bit cramped for my liking and the touchpad is a bit on the small side. The touch screen, once properly calibrated works wonderfully and even better with a stylus. I will find out this year how well they hold up in a “field” type environment and perhaps blather about that experience.

This is yet another fine case of where openSUSE just works on hardware with very little fussing about. Aside from the touch panel calibration, everything else about this machine works perfectly.

External Links

HP TouchPad in 2018


I purchased two HP TouchPads a few years ago when they were fairly inexpensive. I wanted a larger tablet that wasn’t built cheaply. They worked great for a while but started to act up. I used them less and less until they just stopped working all together. I put them on a shelf and forgot about the for quite a while.

A buddy of mine who is still seemingly a huge fan of the HP TouchPad diagnosed that one had a main board and battery failure while the other just a battery failure. I put them back on the shelf and that is where they sat, once again. He followed up with me wondering if I bought a battery yet (keeping me accountable) to which I did not. He told me he had an extra battery and dropped it off along with the needed tools to disassemble and make the repair.

HP_TouchPad-01The guide I looked at made it seem like it would be easy to take the tablet apart, just work your way along the sides, as described and carefully separate the two halves. What seemed to be missing from the article was that you have to shim the screen from the backing to keep it from clipping itself back shut again.

Once the tablet was apart, I disconnected the halves and started the process of removing more pieces until I could get the battery out. I only ended up taking out 3 of the internal components.

Upon removing the HP_TouchPad-02.jpgUSB board, I noticed that one of the wires for the little vibrator motor had somehow broken free from the board. A fine explanation for why this unit didn’t have haptic feedback. Thankfully, my soldiering skills were adequate enough to correct the issue.


There were only 4 screws retained the battery and it should be noted that once the screws have been removed, the battery will not come out easily as it is also adhered to the device. Very careful and slow removal of the battery was warranted as I learned my lesson about removing a lithium polymer battery years ago on another project. I didn’t want to rupture the sells and have a little fire or at least lots of heat and smoke.

Once I freed the battery from the case, I noticed that I could take a shortcut and remove the battery without disassembling all of the components as outlined in the guide. I freed the battery from it’s compartment, set it aside, took the new battery and using a flat tipped screwdriver, was able to insert the connector of the new battery into the board and fasten it to the tablet body.  I effectively skipped the last 15 steps of the guide I used and reassembled it.

Success… but it didn’t turn on.

I figured that the thing needed to be charged so I let it charge overnight. It still didn’t turn on and I felt obligated to let my buddy know that this TouchPad is dead and asked if he wanted the battery back. Then, he asked if I did the hard reboot, hold power and volume down for 30 seconds.

HP_TouchPad-06-Boot Loader.jpg

I did just that and immediately it went to the ClockworkMod boot loader menu. I selected the CyanogenMod image already installed on this TouchPad and I was very pleased to see that it was fully functional.

Since I wasn’t going to leave this with a 2 year old version of Android on it, I began my search for an updated ROM. There are several options out there and some of the newer versions of Android seem to have Bluetooth or camera issues. I didn’t want to have any hardware issues so I ended up going with this version here. Everything works but it is an older version of Android with security patch updates.


Another requirement I made is that I wanted to ensure that there were no Google Services on this tablet as I didn’t want to weigh it down with all the data scraping and mining services. All I want from this tablet is to do causal web browsing, reading ebook and PDF documents so there is no need to install the Gapps package. I also wanted to see how useful a simple de-Googled tablet would be.

F-Droid-siteSince I did want to have access to applications on this device, I installed F-Droid. F-Droid is similar to the Play Store, an available catalog of FOSS (Free and Open Source Software) Android applications. Most of the applications I want to run are available there and anything else it is possible for me to sideload or install using Yalp.

The applications I installed:

  • KDE Connect
  • Telegram
  • Syncthing
  • Fennec F-Droid, a Mozilla based web browser
  • Barcode Scanner
  • Book Reader
  • Yalp, allows you to download apps directly from Google Play Store as apk files.

Installed Using Yalp:

  • Discord
  • ASTRO File Manager


Modifications to improve my usage experience

I turned off the KDE Connect Telegram Notification. Not because I don’t like Telegram but because I don’t want multiple notifications on my Desktop Linux machine for the same message.

To do so, withing the KDE Connect Application on the paired device Menu > Plugin settings > Notification sync configure button, scrolled down to Telegram and uncheck it.


Next, I made the KDE Connect Keyboard an input option by going into System Settings > Language & Input and checked KDE Connect Remote Keyboard


I set up a folder on the Tablet called Sync and using Syncthing have it tied to two of my openSUSE desktop Linux machines. It is an easy and efficient drag and drop method of putting files on the tablet instead of using KDE Connect. I figure, more options are better than fewer options for sharing data.


Using Dolphin in KDE Plasma to drag and drop files right on the HP TouchPad file system is such a fantastic feature. This, combined with having a folder that I can use to sync between all my systems and a shared clipboard gives me the truly practical form of desktop/mobile convergence.

HP_TouchPad-11-file manager

What I like

HP_TouchPad-09The size of this tablet is perfect for how I intend on using it. I can check things, look up things, and use it for accessing references in either PDF, ebook or my favorite resource, the openSUSE Wiki. To copy and paste from the tablet is made super easy, thanks to KDE Conenct. Copy on the tablet, paste on the Desktop. This tablet has such a nice weight and feel about and the protective folio-style case is great. I have all the functions and features I need to do what I set out with this 2011 built tablet. Sure, it is old and well past a tablet end of life but it is fast, very snappy and responsive.

What I Don’t Like

I have an outdated version of Android but with the security patches back-ported though, I do like the dark look of the older Android UI, so lets call this point a wash. The downside is, it doesn’t allow for certain newer KDE Connect features as noted here by one of the developers.

I also may have done something to disconnect the internal speakers as I don’t hear sound unless I plug into the headphone jack or Bluetooth speaker. I am not really using this for multimedia and the workaround is satisfactory.

I am not a fan of the rear facing only camera on the tablet. It also distorts the image during the “live view” but the picture itself has the proper aspect ratio. Unless if I want too take some awkward selfies, I don’t see this as a terrible issue.

Final Thoughts

I am very glad to have a working HP TouchPad once again. Is it indeed limited but I am not using it like a brand new tablet, I am using it closer to how a tablet was used 7 years ago. I am also not using this tablet like I would a proper computer as that would require a keyboard and mouse and once I have added those items, I may as well use a laptop. This fantastic little device does just what I want it to do, superbly.

Using KDE Connect and Syncthing, I can have the proper mobile/desktop convergence with my openSUSE Linux desktops in a highly practical manner anywhere I go, without the need for a third party service.

I am not sure what I will do with the other tablet now. This one is just so great, I might have to get the other one working just to keep in my cubicle. Would I recommend this tablet to someone else? For most people, probably not, unless they like to noodle around with technology.  Was it worth taking the time to fix it? Also, probably not but the satisfaction for me out of making this older yet perfectly usable hardware functional once again makes it more than worth the time and effort.

Further Reading, useful links and such

I Fix It Guide for the HP TouchPad

Tenderloin Android ROM I have installed on my HP Touchpad

openSUSE Wiki

KDE Connect Developer Nico’s Blog Post

KDE Connect Community Site

KAlarm and Kronometer | Time Applications for KDE Plasma

Time Applications

I am not a big fan of smart Phones and tablets but I do like some of the convenient, appliance-like features of a few applications. I do find that I go for my phone for the stopwatch and timer features but sometimes, I just don’t have my phone on me and need that darn stopwatch or countdown timer. I had forgotten that I used to use such things back in my Mandrake / Mandriva Linux days, before, I had a smart phone.

The two applications, Kronometer and KAlarm are in the main repository of openSUSE Leap (v15) and Tumbleweed. I also appreciate that these applications have stuck with the traditional KDE naming convention and begin with a “K”. It makes my Komputer happy.


Search in the YaST Tool or on for these bits of software to click-install or you can use my favorite method, the terminal!

sudo zypper install kalarm kronometer

They are small applications so installation won’t take long.


This is a stopwatch application with lap feature similar as you may have used on other devices but adds the feature to enter notes next to each line, sort by lap times, or even by the Notes column.

Kronometer-01You can save this data and “name” the current session for use or review later. To do so select Save As… and you are given a prompt to name the Session.


This will store your data as a JSON file in your home directory:


File > Open… will give you a list of all your previously saved sessions.


Double click on the number of one of the lines and you can bring up a previous session and continue using it. I don’t know how useful that would be but it’s nice to know it’s available.

What is pretty dang cool is that it can export into CSV format. CSV in an open format readable by LibreOffice or any other spreadsheet application where you can make pretty graphs or pie charts and so forth. In order to export the data, to CSV you have to Select File > Export Laps As… and put it someplace you will remember.

To test it out, I opened the File in LibreOffice and the title you used for Save As… doesn’t exist in the exported data. Something else to note, if you put a comma in the “Notes” field, the CSV import will put whatever was placed after that comma into another cell… hence the name, Comma Separated Values.


Over all, this is a great, basic application and very useful when needing to time something, many somethings or to collect data on a study you are conducting.


KAlarm is a personal alarm message, command and email scheduler built for the KDE Plasma environment. This can be useful in many ways and can also be integrated into the calendaring application, Korganizer. It has more features than you will probably need so I will just outline what I currently use.



For just a simple alarm that displays a pop up on the screen with a message and optional sound, select New > New Display Alarm and just follow down the dialog box to set your alarm with whatever constraints you wish. There are a couple neat options. One being you can add an entry in KOrganizer if you want, set Recurrences and so forth.

I like that you can make this as simple or as “exciting” as you would like to make the alarm.

There is also an option to create an alarm that will execute a command or script and log to a file. You can even have the alarm send an email at a specific time as well. The options are literally limited by your imagination.

One particular use for this application is in the kitchen. Just off the cuff, I see where I can backward plan to start different parts of dinner so that everything is done at the desired time.

Final Thoughts

These are smaller, simple applications that won’t ever see any big fanfare but, in my opinion, are extremely important and can be used to help you manage your time, track your time and so forth. I know that when I am eyeballs-deep into a task, I can lose track of time and I need to have an audible reminder to take care of some other task that is time sensitive. I am so glad that there are developers out there that take care of the small and truly needed, useful and less “exciting” applications.

External Links

KDE Plasma

Kronometer for openSUSE

KAlarm for openSUSE