Send and Receive Text Messages SMS with Element

What makes Matrix uniquely different from other messaging platforms is the ability to have bridges to other chat services. Matrix has all the signs of being the great chat unification platform that adequately reduces complexity in communication. Element feels complete, well polished and is enjoyable to use so using Element as my front-end, I should be able to access many of my various chat platforms that I am in quite nicely.

I will describe the process to set up a SMS Matrix bridge utilizing the appropriately named project SmsMatrix. The instructions on the GitHub project page are adequate and I want to supplement that with some more explanation and my experience in using it.

Bottom Line Up Front: The SMS Matrix bridge is fantastic. Although I am still in the early stages of using it, I truly believe it will streamline my SMS communication and it will hopefully reduce the likelihood of missing incoming messages in the future.

Step 1 – Create Bot account on Matrix

As per the project GitHub readme, there is currently there is no end-to-end encryption implemented in this SmsMatrix so it is advisable to use our own Matrix server. Since SMS itself is not a secure form of communication and since I don’t have the wherewithal nor desire to do this, I will happily use the Matrix.org server for the time being. This could change in the future.

My first step is to create a matrix account for my “Bot”. To do this, I navigated to element.io to create a new account. On the initial page there is a button to “Try Element”, select it.

The top option, and the one you should select is “Open in your Browser.” It is advisable to set up the bot using Element as it is is very straight forward and easy to do.

Next you will need to create the account for your bot. I recommend it is something you understand well and while you are at it, go ahead and store it in your password manager, Bitwarden, because what else is there really?

Once you verify via email the Matrix account, you will have to decide how you wish to safeguard against losing access to encrypted messages. Here you can generate a Secure Key for this bot. Although it isn’t really necessary for this purpose, due to the lack of end-to-end encryption with SmsMatrix, you will have to do that or enter a security phrase. Either way, you can store that information in Bitwarden, once again.

Go ahead and leave that browser window open, for the time being. You may want to refer back to it at some point. At least, I did.

Step 2 – Install SmsMatrix

This has a sub-step of setting up F-Droid. If you already have F-Droid installed, skip down a bit. This is necessary since SmsMatrix isn’t in the Google Play store and I want to keep it updated and not think much about it. Alternatively, You can just install the SmsMatrix APK.

To install F-Droid is pretty simple. Navigate to the page and select the blue “Download F-Droid” button on the home page.

There are a few steps involved in making F-Droid work on your system but it is straight forward. Download the APK, side-load (install) it, you will be required to set the permissions of your mobile device to allow it. Once installed, open up F-Droid and search for SmsMatrix in the store. If you find that I should add that information here, let me know.

Step 3 – Configure SmsMatrix

The configuration of SmsMatrix is very straight forward. Use the Bot Username and Password previously set up. Since you use the convenient Bitwarden password manager, this step will be no problem at all.

Enter the Homeserver url, which, in my case is the matrix.org server.

Enter the Devicename, which can be whatever you want.

Finally, I left the SyncDelay and SyncTimeout just as it was by default.

Select “Save” and you are done. Wait for your next text message to arrive and you will be pleasantly surprised, 12 seconds later!

Step 4 – Profit

Profit from the convenience, that is. When you receive your next text message, the bot will create a chat with your user account, place it in the “People” section, and rename the account to the phone number or contact information if you have it in your address book. Within that chat, you are able to respond to the message, just as you would any other Matrix chat and the message will send out to the recipient.

Another fun little note is that if you change or update the contact name, the next SMS you receive, the bot will update that account name. I found that to be very slick.

What I Like

All SMS messages you receive are right there in your list of direct messages in the People section. Sending a message to an SMS recipient or a Matrix recipient is no different from your perspective. It quite literally doesn’t matter and to the other end of the SMS, they will not know the difference.

What is such a slick feature is that SmsMatrix will update the chat, automatically, to whatever the contact is in your address book. I was amazed to see this and was pleasantly surprised by this fantastic feature.

This bridge makes SMS so much more accessible. I don’t like to actually have my phone in my hand or near me much of the time. When I arrive home, it tends to get plugged into the charger and set in the corner of the kitchen on the counter and often forgotten about unless there is a rare occasion of a phone call… which is often just a robocall.

What I Don’t Like

I don’t see a way to initialize a text message from Element to an SMS recipient. I tried several things, unsuccessfully such as [phone number]@smsbot:matrix.org but that didn’t work. As far as I can figure out at this time, the only thing I can do is respond to an SMS conversation. This is sort of unfortunate as it does require me to use my phone just a bit more than I would like. I truly have no idea how you would implement access to the address book and start a conversation but it sure would be a welcomed addition. Element / Matrix is real close to just replacing the need to use my phone or some other web interface to access my SMS so it doesn’t make for a complete interface but it is so very close. Once you get the conversation going, you are golden.

There is no message history, available through the Element client. Based on how SmsMatrix initializes the chat, I don’t see how you would anyway. Not a deal breaker but combine that with the need to start the conversation from the phone, it does make for a bit of context loss in the conversation thread.

After establishing the SmsMatrix bridge, should I send a message from the phone, SmsMatrix won’t show that message in the Matrix conversation thread. This could be a problem, depending on how you end up using SMS from that point forward. This also makes the bridge just a bit… fiddly or at least not exactly a solid-feeling experience.

Final Thoughts

I have only been using Element for a short while on openSUSE and so far, I am quite happy with it. I have not yet found anything irritating about it. It is a bit more spartan than Telegram as it doesn’t have all the fun little things like gifs and the breadth of stickers. What makes Element / Matrix so exciting is the bridging capability and the SMS Bridge, although, not perfect it is really quite fantastic. I will just have to make sure that I use the mobile Element client to respond to messages and resist using the SMS application

I have shamefully been using messages.google.com for messaging from my desktop to send SMS. I can say now, that I am no longer using it. I suppose I can keep it bookmarked for those occasions where I have to initiate an SMS but once a conversation is established, using Element would be the way to go.

Assuming that Element / Matrix isn’t too resource intensive, I think this might be my modern day solution for a unified messaging platform. I will see as I continue to use it, and add more bridges. I am incredibly optimistic that I will be able to make my communication on the various platforms much easier and hopefully, leave fewer messages unread. Next step, Facebook Messenger. I don’t particularly enjoy Facebook Messenger, the interface is awfully slow and cumbersome. If that works well, I will most certainly espouse the glory of Matrix… some more.

References

https://matrix.org/bridges/
Element | Matrix Chat Client on openSUSE
https://element.io/
https://f-droid.org/

Element | Matrix Chat Client on openSUSE

All the kids have been talking about the wonders of Matrix as the future of decentralized, secure communication. I have known about it, seen bridges being used in the openSUSE discord and Telegram rooms. Most of my experience has not been great, generally there were significant delays. I have used a few clients, Riot.im on a web client, which I didn’t care for and I also used Quaternion a Qt based client but I have had issues with the encrypted messages bit. I found the user experience to be rather… lack-luster at best. Mostly, I found the whole thing quite confusing. Accessing new rooms wasn’t self-evident, understanding what Matrix is and isn’t was confusing and I therefore found it frustrating to use. My experience, has been that I really preferred Telegram for communication.

A revived curiosity came about when I heard of the splendors of Matrix being espoused by the folks on Destination Linux; Noah and Ryan especially. They really pushed the idea that this is the future of communication. I still mostly dismissed it, thinking that my Telegram experience was satisfactory. Then I heard Noah talk about how Matrix has revolutionized his communication workflow. Matrix has opened up functionality of which specifically, he described how he can text message, as in SMS, on Matrix. Now I was truly intrigued and decided that it was time to look into this once again. I could endure the pain of learning this to eliminate my SMS frustrations.

I know I could use the Element web client for Matrix but I don’t like web clients. If I have to have a browser open to use an application, I do not like the experience, it feels disconnected. Now if you wrap that web app in something like electron and make it feel like a part of the system, that changes things. They feel more complete like a real application and give me what is quite important an icon in my system tray that notifies me of activity. The emphasis here is, I want a system tray indicator of messages or activity. Any communication application that doesn’t give me this is immediately on the chopping block with a need to be replaced. Element meets my criteria and the process began again for using it. I checked the openSUSE Software Repositories and Snap Store, but it wasn’t available. It does, however, exist as a Flatpak (at the time of writing).

Setup Flatpak and Flathub Repository

The first step is to set up Flatpak and the main repository Flathub to get access to the Element-Desktop Flatpak. Generally speaking, Flatpak is set up on most distributions. At least, most distributions don’t make it difficult to get going if not already configured for you.

Though I am gearing this towards using openSUSE, there are instructions for other distributions available. You can go here for the Quick Setup for openSUSE or stay here and I’ll provide the quick, down and dirty ways to get it going. For those that prefer the click around and install, navigate here for the click to direct install method.

https://software.opensuse.org/package/flatpak

or you can use the more fun method and install it in terminal

sudo zypper install flatpak

Next, add the Flathub repository, in terminal, as root run this. If the Flathub repository is already set up on your system, it will not add another (see the --if-not-exist bit on the command).

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Optional Additional step is to install the Discover graphical application explorer backend so you can graphically explore and install Flatpak applications.

sudo zypper install discover-backend-flatpak

Now you are set with installing Element or any other Flatpak for that matter.

Installation of Element

I am presenting three methods of installing Element on openSUSE. Though, the third method my make the previous instruction of setting up the Flathub repo redundant.

Method One – Terminal

The quick and easy way to install Element is from the command line because the command line is awesome.

sudo flatpak install im.riot.Riot

Unfortunately, Flatpak application names are kind of silly in comparison to Snaps but I am sure for good reason. Read through and agree with the changes.

Method Two – Graphical with Discover

The graphical way may indeed be less confusing. Since Discover, the KDE graphical application explorer has been pretty great as of late, I recommend it for exploring Flatpak applications. It is as simple as searching for “Element” and you will get the green and white logo at or near the top of the list, selecting it and install.

The nice thing about Discover is that you can scroll down and see the source of the package. If there was another source for Element available, you can very easily select the source repository. It’s a real nice feature of Discover.

Method Three – From the Flathub website

Finally, You can also use the install file from the Flathub website where you will be provided a *.flatpakref file that some application managers like Discover can unpack and utilize.

https://flathub.org/apps/details/im.riot.Riot

I didn’t actually test it but it should work… maybe… if it doesn’t, be sure to let me know.

With whatever method you choose, it installs and integrates quite nicely into your menu and is immediately executable. There is no funny business to be had, weird hacks or changes that are necessary to run the thing. It is simply, install and go.

First Run and Impressions

When I started up Element, I was greeted with the login screen. It has a clean and modern feel to it that looks like time was taken to give the right visual appearance.

Since I remembered my Username and Password using my brain-backup, Bitwarden. Next you are going to have to authenticate your session. If you have created a passphrase on your other session of Element, this is where you can enter it. If you haven’t done this, you can verify it later. I skipped this step for now so I can show you a really cool way you can verify your session.

After skipping this, you are presented with your Matrix session. Since I have been using it for a little while now, I have a few contacts and rooms to which I am connected. You are also given a notice that you need to verify this session.

Since I had been using Matrix on Quaternion, I didn’t think much of getting it all set up, but I was quite wrong. So it appears that I have not had any messages encrypted using Quaternion, it was all out there in the open. Since I wanted to ensure that my session is verified and has encryption enabled, I had to go through the process.

The method that I think is rather unique and easy to accomplish is to use the interactive emoji verification. Since I started with Element on the mobile client, for reasons, I begin the process on the mobile client to verify my Desktop session. To get there, go into your Settings > Security & Privacy > Show All Sessions. There you will see the sessions logged into Matrix.

Selecting the session titled “Element Desktop (Linux)” with the adjacent red shield icon will reveal some options. You are given two options to verify the “Not Verified” session. Manually Verify by Text and Interactively Verify by Emoji. The mobile will give you a spinning circle and ask you to “Please wait…”

On the Desktop Client you get a focus stealing Incoming Verification Request pop up in the application. Which is what you want to be able to have trusted end-to-end encrypted messages. A new dialog will display informing you of the incoming verification request.

Once the two devices have made their handshake, you are asked to confirm the emojis are in the same order on both sessions. Easy to do, hold the mobile up adjacent the monitor and observe that they match. I just happen to find this method to be clever and amusing.

That is it, you now have your desktop and mobile Element clients. This makes your security all green and your sessions trusted.

It would be advisable to set a passphrase or generate a security key for you encryption key. I did this in the mobile application and copied it to my Bitwarden for safe keeping. You can also use a Security Phrase as well. This will just help you should you log into Matrix from another Element client.

My original intent was to go into how to set up bridges to other services, and the like, but I am already bumping up against my self-imposed word limit. So, I am going to separate out and make a kind of series of blatherings about Matrix chat using Element. This is enough to get you going with your mobile and desktop machines having properly setup and trusted clients. Now, it’s time to do some searching for rooms to have conversations. I’ll figure out how to bridge my other things another time and get back to that place of a centralized communication client I once enjoyed about a decade ago.

What I Like

The Element client makes using Matrix quite enjoyable. Previously, using Matrix was a bit of a lack-luster, almost a science experiment kind of feel to it. Sure, it worked but it didn’t have the polish and great user experience I have using Telegram. I can say, with much confidence, using Element feels like a real product. It feels just as good as any other messaging client. It is still early days for me so it’s still all new and exciting.

I have previously talked about in on of my noodlings how it would be nice to consolidate all these different messaging services like the good ol days of MSN, Yahoo and AIM rather than have all these different chat clients scattered about. I don’t use MSN, Yahoo or AIM anymore but I do have several others. I find the breadth of available bridges rather astounding.

What immediately interests me most is SMS and Facebook messenger. Those are both services I loath using. I would consider using IRC as I can see the utility of being able to stay on top of chats going on there and possibly Discord and Telegram but I don’t think it likely that I will be replacing Telegram or Discord anytime soon. openSUSE does have Matrix bridges into the Telegram groups and Discord rooms so no more work needed there. I will be playing around with these.

Most importantly, I appreciate that there is a dark theme so that you aren’t forced to stab you eyes with the painfully bright light hues. This is essentially a minimum requirement for me at this point. If I cannot get a dark theme, I don’t want to use it (Ahem, Hangouts).

What I Don’t Like

Understanding how this whole encryption thing works, and how your credentials are stored on the main Matrix server. I understand that your key is encrypted at your end and stored on the Matrix server but what exactly does that mean, I am not sure. I thought the benefit of Matrix is that it is all decentralized.

It took me a bit of time to get my head wrapped around what Matrix was vs Element. I would hear, “Matrix is the protocol not the client” and I didn’t quite grasp it. I also don’t like it that some clients just don’t work that well. Now that Element is here, I can see it as being the main client to be used, maybe even universally. Parts of the setup of Element / Matrix are a bit dubious but much of that has been cleaned up quite nicely.

Next Steps

Where to, from here. Now that I have a client for Matrix that is pretty darn great, I am going to explore the other possibilities. I see a lot of potential in simplifying my life with communication. I loath using Facebook Messenger and the way I am using SMS has not been ideal. Matrix has the possibility of removing two irritations of mine and I look forward to making this happen. I have decided to break out the bridges to their own discovery experiences and will blather about those in the future.

Final Thoughts

Matrix is now a highly polished, accessible experience for secure communication on the Internet. It is a decentralized system but also has a centralized hub for simplicity of connectivity. It really appears as though they have the little papercuts worked out and have really made available a great system to be used by any.

It’s still early days for this Element Client but things are looking pretty good. I don’t expect I will get friends and family on it anytime soon as it is a bit more work than Telegram but for those other tech enthusiast out there and for simplicity of my communication platforms, this looks like the ticket. The real question is going to be, how reliable this and the bridges are to use long term.

Do I recommend Element as a Matrix chat client? Absolutely. I look forward to its continued use.

References

https://flatpak.org/setup/openSUSE/
https://software.opensuse.org/package/flatpak
https://element.io/
https://matrix.org/bridges/

Noodlings | BIOS Games Serving the NDI™ Plugin

Another prime number… and no the title doesn’t make sense. It’s just a nonsensical way to string everything together.

19th Noodling on a mid-August night

18 Episodes… 18 is a fun number. Divisible by 2, 3, 6 and 9. The age you can vote in the United States.

Fun facts about chocolate milk can be found here

BIOS Update Dell Latitude E6440 on Linux

My BIOS was 4 years out of date. I thought it was time to update it. I went to the Dell Support page and noticed that they only had *.exe files available. I sighed and was initially frustrated because my initial supposition was that I was going to have to have a working copy of Windows to do the update. 

AntiMicro | Map Keyboard and Mouse Controls to Gamepad on openSUSE

Installed a game called Pokemon Insurgence on Lutris and there was no way to play the game with a gamepad. Rather than try to fight things, set out for an application that would map the keyboard controls to the WiiU Pro Controller that has become my gamepad of choice.

CPU Downgrade

After receiving this message following a BIOS upgrade, I was forced to purchase a lower powered CPU for my AMD Workstation.

OBS NDI™ Plugin on openSUSE

The NDI plugin offers a fairly easy way to send OBS video signal (presumably other applications can take advantage of this too) to another OBS instance on another machine. This can come in handy for numerous reasons such as splitting up workloads between machines by capturing output from one machine, such as gaming computer, to stream with a dedicated unit that interfaces with YouTube.

BDLL Followup

What have you done that would cause you to lose your Linux card

openSUSE Corner

New Prototype Builds Bringing Leap, SLE Closer Will be Available Soon

The release manager for openSUSE Leap, Lubos Kocman, has updated openSUSE’s develop community on efforts to bring the codes of Leap and SUSE Linux Enterprise closer together.

Tumbleweed Roundup

  • 20200805 Stable 99
    • MozillaThunderbird (68.10.0 -> 68.11.0)
      • Several CVEs addressed
    • transactional-update (2.22 -> 2.23)
      • Subpackages: transactional-update-zypp-config
      • Version 2.23
      • Add “run” command to be able to execute a single command in a new snapshot
      • Add “–drop-if-no-change” option to discard snapshots if no changes were performed (BETA, required for Salt integration)
      • Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33)
      • Avoid “file not found” message on systems without /var subvol
  • 20200810 Score of a moderate 84
    • epiphany (3.36.3 -> 3.36.4)
    • gcc10 (10.2.1+git465 -> 10.2.1+git501)
    • gnome-mines (3.36.0 -> 3.36.1)
    • kernel-source (5.7.11 -> 5.8.0)
    • squid
    • zypper-lifecycle-plugin (0.6.1490613702.a925823 -> 0.6.1596796104.87bdab7)

https://review.tumbleweed.boombatower.com/

Computer History Retrospective

Computer Chronicles – Fifth Generation Computers (1984)

The pioneers in the field talk about 5th generation computers capable of Artificial Intelligence and heuristic learning; giving computers context. In 1984, computers were already being used to make knowledge based decisions.

The Computer Chronicles – Fifth Generation Computers (1984)

Final Thoughts

Take some time to have fun. Good, clean wholesome fun. Go for a walk, enjoy the weather on any day that it is possible. Take some time to cherish each moment, whether it is good or bad, find the positive in the situation and make it a point to say “thank you” as often as possible.

OBS NDI™ Plugin on openSUSE

The NDI plugin offers a fairly easy way to send OBS video signal (presumably other applications can take advantage of this too) to another OBS instance on another machine. This can come in handy for numerous reasons such as splitting up workloads between machines by capturing output from one machine, such as gaming computer, to stream with a dedicated unit that interfaces with YouTube. This has advantages in that you can move the machine doing the heavy lifting into another room or across the room as to not hear the fans and so forth. In my case, my primary machine is getting long in the tooth. I prefer the setup I have as far as the screen layout and height of the computer as well as the location. I use my AMD Desktop / server / workstation machine to talk to YouTube or Twitch directly with that OBS instance and record locally in effect freeing up my laptop from quite a bit of the workload.

The Challenge

At the time of writing, there isn’t an RPM available and the instructions out there along with what to expect seems lacking at best, so, I thought I would take what I know and compile it into one easy, step-by-step guide here for openSUSE. Your mileage may vary depending on your distribution.

Installation

For starters, you need to get the software packages from GitHub.

https://github.com/Palakis/obs-ndi/releases

Download the following:

The version numbers may have changed but you should get the “libndi*” and “obs-ndi*” packages

This is a Debian package meant for Debian/Ubuntu so you may be thinking, “how am I supposed to use this?” …and that is a reasonable question. The solution is a tool that is not often talked about. It is also likely not recommended by most people but I am not most people. That tool is called “Alien“.

To install Alien, navigate here and just click on the appropriate experimental package for your version of openSUSE:

https://software.opensuse.org/package/alien

Alternatively, you can use the terminal method, which will very a bit between distributions

Tumbleweed

sudo zypper ar https://download.opensuse.org/repositories/utilities/openSUSE_Factory/ utilties
sudo zypper ref
sudo zypper install alien

Leap 15.2

sudo zypper ar https://download.opensuse.org/repositories/utilities/openSUSE_Leap_15.2/ utilties
sudo zypper ref
sudo zypper install alien

To explain each of the lines that I am expecting you to put in the terminal because you should NEVER just trust some random commands on the internet. First of all, I stand behind this as CubicleNate, and I do my best to not be wrong and I’d like to keep doing these things. You can also reacho ut to me directly using any of these methods.

Once the installation of Alien is complete. You will have to take the two deb packages previously downloaded and convert them.

Using a terminal, navigate to the location of the downloaded packages and run the following

sudo alien -r libndi*.deb  
sudo alien -r obs-ndi*.deb  
sudo zypper in ./libndi*.rpm obs-ndi*.rpm

Now your are ready to set up OBS!

OBS Setup

Using this reference, I made the adjustments to my firewall but it didn’t work. Perhaps I am missing something and I would love to edit this article accordingly but opening up both tcp and udp ports 5960 through 5968 as well as having the mDNS port active did not allow me to utilize the NDI plugin with firewalld active. Either the documentation is out of date, in correct or there is a user error on my part and I couldn’t find the appropriate logs to tell me otherwise. Therefore, I just deactivated the firewall on both the source and destination machines.

sudo systemctl stop firewall

This is the point where you should be sorely disappointed with these instructions but again, I would like to improve this and will gladly listen to any input.

The next step is to open up OBS-Studio (v25 and latter is required) on both machines. On the source machine, go to Tools > NDI™ Output settings

Then set the output preferences. In my case, I had not interest in sending the “Preview Output” only the “Main Output” and label it with the hostname; just in case I might do this with another machine.

On the Destination OBS machine, you have to add the NDI Source. This is just one of the many options you have available as a source.

For the source name, select the drop-down and the appropriate available source. I didn’t mess with any of the other settings so your mileage may vary on this portion of the instructions as well.

And that is it. Your NDI Source is just another input like a webcam or video signal and you are off to the streaming or production races.

Final Thoughts

The whole firewall thing has me a bummed out a bit. I have wrestled around with it far too long but at least I know that lowering my “shields” will allow for transporters to work. Not ideal but I am within my firewalled off house, I just happen to like security in layers.

I want to note that the latency on this is VERY low. I mean incredibly low. I have tested this by playing a game on one machine and using the output on another machine with almost no latency perceived. It is quite the incredible technical miracle and I am quite grateful.

I also want to make the vintage computer tie-in. The NDI plugin is developed by Newtek, the makers of the Video Toaster that was very popular on the “big box” line of Amiga computers from the 1990s. So, in a way, I feel like I have a little bit of that incredible Video Toaster tech on my openSUSE machine.

References

OBS-NDI on GitHub
https://obsproject.com/forum/resources/obs-ndi-newtek-ndi™-integration-into-obs-studio.528/updates
NDI Problem Solving PDF

AntiMicro | Map Keyboard and Mouse Controls to Gamepad on openSUSE

Installed a game called Pokemon Insurgence on Lutris and there was no way to play the game with a gamepad. Rather than try to fight things, set out for an application that would map the keyboard controls to the WiiU Pro Controller that has become my gamepad of choice.

I know I heard it was possible on a podcast some time ago and since I was probably doing something else and didn’t have a notebook handy to write down whatever it was, I began my search and found this AntiMicro as a solution.

A quick note, this is not a comprehensive and exhaustive analysis of all of its features. I am covering just a portion of the features.

Installation

AntiMicro is in the official repositories for both Leap and Tumbleweed. To do the graphical click method, navigate here:

https://software.opensuse.org/package/antimicro

Alternatively, you can install it through the more exciting and personally gratifying method of the terminal:

sudo zypper install antimicro

For other distributions, search “antimicro” in your favorite software management system.

The Problem Game

The game I wanted to set up to use a controller is Pokémon Insurgence. I observed my oldest child watching a play through on the YouTube and he spoke of interest in the game. I found the game on the Lutris site with an easy installation process.

The game I wanted to set up to use a controller is Pokémon Insurgence. I observed my oldest child watching a play through on the YouTube and he spoke of interest in the game. I found the game on the Lutris site with an easy installation process.

https://lutris.net/games/pokemon-insurgence/

The issue is, there was no way to have this game use any control pad. Only the keyboard. I thought this annoying and didn’t play the game… until AntiMicro, that is!

Configuration

The configuration of AntiMicro is incredibly straight forward. So much so that this little write-up is almost unnecessary but I thought I would share my experience anyway. When the application starts up and the system is absent any controllers, you will be presented with this screen.

What is pretty fantastic is that when you do activate, or plug in a controller, there isn’t any fiddling required. The application immediately reacts and presents some straight forward options.

I turned on my Wii U Pro Controller, my controller of choice on those periodic cases that I decide to play a game. The application immediately presented options.

At this point, you can push buttons on the controller and identify the buttons and in this process, I did discover that the A and B are swapped as well as the X and Y. I looked at the Controller Mapping configuration and it looks like the physical locations are correct but the labels seem to be incorrect.

I would call this a small papercut issue but it is indeed an issue. So beware of the labels and make sure that the button and the action are correct. It is best to verify.

I took some screen shots of the input configuration portion of Pokémon Insurgence so I could map the keys out.

For the arrow key configuration, you can very easily map it all onto the DPad and the joystick of your choice. I set both to control the movement of the character. There is, kindly, a present drop-down to make this selection.

Each of the other keys can be assigned but do take note that you assign the correct key to the correct button and verify labels. When you select the button, you can then select the corresponding key.

Not relevant for this game but just to make note, you can also map mouse movements which, I see as being valuable if you want to configure a controller to manage mouse movements without using the Steam to do so.

After completing and subsequently tweaking my button selection. I was able to play a solid 10 minutes of Pokémon Insurgence on my Linux machine quite happily. At this rate, I might get through it in the next 6 years or so.

What I Like

The configuration is splendidly simple to set up. It is very intuitive and does as you would expect. I appreciate how easy it is to set up and get going with it.

The on screen information about what you are doing is very appreciated. Rather than digging through help or readme files, the important information presents itself.

Finally, this is a Qt application so it integrates nicely into Plasma and my dark theme looks great. It is as though the interface was tested against Breeze dark as there were not any unreadable bits to the application.

What I Don’t Like

The one little papercut of the reversal of some buttons is unfortunate but not a deal breaker. It’s only important if you actually read the buttons and not go by the action flash.

The mouse controls isn’t exactly as I was hoping. The movement of the cursor didn’t exactly have the variable movements I was expecting but there are so many options, there is, perhaps one that would give a kind of gradient movement. So, this is not really a knock on the application as the default is probably best for most users. I would say, this is a knock on me for not being satisfied with what is likely a sane default.

Final Thoughts

AntiMicro is a fantastic application, especially if you play old DOS games or other emulated games that don’t have adequate controller support. This also has the bonus feature of being able to easily map your controller to act as a mouse which may be a nice addition to a media set-top box for the living room.

I am glad I stumbled on this and I wish I could give attribution to where I recently heard about it but seeing as I don’t recall, I will miss the opportunity to link to that source. If I do find this I will add an edit.

If you have some games that don’t play nice with controllers, try AntiMicro, it just may give that old game a fresh coat of paint.

References

https://software.opensuse.org/package/antimicro
https://github.com/AntiMicro/antimicro

Tmux Desktop on openSUSE Linux

I can’t say that I ever spent my childhood wishing I had the ultimate terminal desktop but the more I have played on Linux, the more I have spent time in the terminal and I really can’t explain why I find it so charming. Perhaps it is the low memory usage of the applications? The clever modern implementation of certain terminal applications? I can’t really say, but there is something incredibly charming about the terminal.

My pursuit of having a terminal based “desktop” was Inspired by Linux Unplugged Presentation. A rather nice article and I fell into this hole of terminal excitement

Build your own Desktop in the Terminal Linux Unplugged Article

After some exploration and some fiddling. I have put together a little resource for today me and future me. Hopefully this has some interest for you and I am open to other suggestions for making my Terminal based Desktop even better.

Tmux Terminal Desktop

The possibilities are seemingly endless as the bandwidth required to sustain this is really quite low.

Zoom Meeting Large UI Elements | Fix

I thought it a fluke the first time it happened to me but when participating in the BigDaddyLinux Live “LUG” meeting on 25 July 2020, the elements were all large and I just couldn’t handle the gigantic everything with the UI. I though maybe my computer was concerned about me needing readers and was starting to scale things up. Zoom is known for doing silly things after an update but I wasn’t willing to wait for another update to correct this awful Zoomed in UI. Now, if it was April 1st, I would have considered it a kind of joke.

This is what I was presented on a 1080p screen

After some web searching on DuckDuckGo, I found this on Reddit and after reading down a bit, I found a solution. Rather than wait for another week, I had to try it out immediately, so, this is what I did:

Using Nano in the terminal, I opened up the config file for Zoom

nano ~/.config/zoomus.conf

From there, you have to change the “autoScale” option to “false”

Next, I quit completely out of Zoom, restarted it and joined the meeting again. Zoom was back to normal. Now everything is good again. I don’t have to page over for more than 12 participants.

It feels good when you can find a solution for an irritating problem and bring to order a bit of the “chaos” out of your little corner of the world.

Final Thoughts

Zoom gets a lot of flak but I truly think Zoom is pretty great. It work well and is mostly reliable. Sure, it does some odd things but just about every application has some weirdness to it that I have ever used. Thankfully, this odd happening was easily corrected.

References

Zoom Meeting Home Page
Zoom Thread on Reddit
DuckDuckGo Web Search Engine

KDE Partition Manager on openSUSE

I have become quite the fan of Gparted over the years of my Linux life and I started wondering if there were other partition management options out there. Specifically one that is Qt based instead. This is not a light on GTK based applications, I just find that they don’t tend to look as nice and clean as Qt apps. In this off-hand search, I stumbled upon PartitionManger which is in official openSUSE Tumbleweed and Leap Repositories.

I should note, they both Gparted and KDE Partition Manager use the same icon.

Installation

Since this isn’t installed by default with the Plasma Desktop, arguably it should be, here is how you o about it. I noticed on the openSUSE Software Site, its short description is that you can Easily manage disks, partitions and file systems on your KDE Desktop. So I guess we will see if this holds true.

It is also described as being software that allows you to manage your disks, partitions and file systems that allows you to create, resize, delete, copy, backup and restore partitions with a large number of supported file systems. These file systems include ext2 ext3, reiserfs, NTFS, FAT32 and more. I am guessing you can also do Ext4, BTRFS and others.

It goes on to say that it makes use of external programs to get its job done, so you might have to install additional software (preferably packages from your distribution) to make use of all features and get full support for all file systems.

That’s good news as I am hoping it wouldn’t re-implement anything and just use existing tools.

To install in terminal:

sudo zypper install partitionmanager

or navigate here for the Direct Install Link

https://software.opensuse.org/package/partitionmanager

As expected, it installed very little, a total of 4 new packages:

  • kpmcore – KDE Partition Manager core library
  • libkpmcore7 – KDE Partition Manager core library
  • partitionmanager – Main Application package
  • partitionmanager-lang – Language support

Considering I have Gparted already installed, most of everything else is likely already there. I have a great respect and love for Gparted at this point, I am hoping that I am not losing any features by using KDE Partition Manager.

First Run and Impressions

Using the handy Plasma menu with the search feature, I started typing “Partition” and it popped up. I launched it and was given the dialog for root user permissions.

I am on the fence if I like that very detailed command being being shown by default. Instinctively, I say it is fantastic, but for a less experienced user, it could feel a bit overwhelming, perhaps.

After the root login requirement, I had this warning pop up which I thought was fantastic!

I have been using Gparted for quite some time and was having issues with an SD Card. My laziness, I just ignored it and now I see what the problem was. I needed the exfat utilities and now the world is right again. Adding this was as easy as running this in the terminal:

sudo zypper install exfat-utils

This automatically selected fuse-exfat package to be installed as well.

Once all this was up. I was greeted with a nice clean and familiar interface

What sets this apart from Gparted is that it shows you all the devices in a side pane instead of the drop-down. I will say, I much prefer the side pane to the drop down. It gives a better overview of what you are doing.

Gparted with the drop-down to select the device

I wanted to format a device and give it a label for my upcoming experimentation with Ventoy for keeping and testing Linux distribution ISOs. So that is what I did.

Mainly, I just wanted the appropriate label. I also took this as an opportunity to format that SD Card, also an easy success.

Final Thoughts

It works! I can’t say it’s any better than Gparted as they both seem to work the same and have a similar appearance and workflow. If you can use one, you can use the other. The biggest difference is the devices side menu. I do like that more than the Gparted drop down. It provides a better snapshot of the status of the storage devices on your machine. Outside of that. KDE PartitionManager as well as Gparted are fantastic tools and this is mostly an appearance preference as I am sure they are using all the same backend of tools.

References

https://software.opensuse.org/package/partitionmanager
https://www.kde.org/applications/system/kdepartitionmanager
USB or Removable Media Formatting in Linux on CubicleNate.com

Configuring a Cisco switch from a Linux Terminal with Minicom

As much as I like playing in the terminal, the jury is still out as to how much I like working with Cisco. To be as objective as possible, I need to tell myself that: 1, I am not familiar with the command set or how they like to do things so I must be open minded; 2, Relax, the command line is a happy place to be and 3, this is new territory, don’t get frustrated, just write it down and enjoy the learning process. Also, my brother in-law, whose career is in network administration just loves this Cisco business so it turned out to be quite educational. The scope of this article is not how to set up a router, just, this is how I was able to get going with it.

The specific Cisco switch I configured was a Catalyst 3560 series PoE-48. I am sure these direction will work with other similar devices. Since I am an openSUSE user, the directions are tailored as such.

Minicom Installation

My first step was to find a piece of software that would work for me for this and I am sure that there are a ton of solutions but the one that worked the easiest for me was minicom. I am open to other suggestions, of course.

This is in the official repository so you can go into the terminal and type this to install it:

sudo zypper install minicom

I would give the alternative option to do the Direct Installation but since you will be in the terminal anyway, why would you do that?

https://software.opensuse.org/package/minicom

Set User Permissions

Before you run minicom you will need to add your user as a member of the groups: dialout, lock and uucp.

In all fairness, I don’t know if you actually need uucp but since I use it for serial transfers to Arduino type devices, I am just assuming.

To do this in YaST, select the Security and Users section, open the User and Group Management module and make the changes required for the user.

Alternatively, you can do this from the command line, enter the following as root:

usermod -a -G dialout,lock,uucp

The terminal method is way cooler, just saying.

Minicom Configuration

Before you can set up Minicom, you will have to determine where the serial port is that is connected to your computer. In my case, I have ttyS0 but if you have a USB serial port device, you may have something like ttyUSB0 or similar.

Now that you have an idea as to the name of your serial port you can begin the setup process. Some adjustments are needed so that you can successfully communicate with the router. In the terminal type:

minicom -s

This will bring you to a ncurses style menu system. Arrow down to Serial port setup entry.

To change the serial device to what you have, select A and adjust it to your particular serial interface. Then select E to set the Bps/Par/Bits

The baud rate (Speed) should be set to 9600 (C) and the Stopbits to 8-N-1 (Q).

That should do it. I must stress that this did indeed work for me and your results may vary. The speed and Stopbits seem to be key. I have seen some variations in Software and Hardware flow control but those settings didn’t seem to affect my results.

Connect

To make the connection, type minicom in the terminal and you will hopefully be logged into the smart switch.

Although I have screen captured how I configured the Cisco switch, I don’t think it would necessarily apply directly. I also don’t really know what I am doing and had to rely on an expert so I cannot adequately explain the process itself.

Final Thoughts

Setting up a smart switch in the terminal requires some real knowledge. The point of this write-up was to close some of those gaps that may exist if you decide to embark on going down the “fancy switch lane.” I don’t know if this will work for similar type devices or other Cisco switches. It is a starting point and something to build from. I hope it provides some use to someone other than me.

Additionally, I am very open to suggestions on other similar terminal applications for communicating over serial in the terminal.

References

https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-3560-series-switches/product_data_sheet09186a00801f3d7d.html

http://www.allaboutlinux.eu/manage-cisco-switch-router-from-linux/

https://appuals.com/install-terminal-emulator-services-access-cisco-console-port-linux/

Windscribe VPN on openSUSE

With all the talk of VPN (Virtual Private Network) services to keep you safe and my general lack of interest in the subject, I was talking to Eric Adams, my co-host on the DLN Xtend podcast about the subject. He was telling me that he was hesitant to recommend any service so he gave me some option to try out. The one I chose, after doing a little reading was Windscribe.

I am new to the VPN game so I want to be careful in saying, I am recommending this as the perfect solution but rather demonstrating how I set it up and how I am using it on my openSUSE Tumbleweed system. Much in the same way Eric informed me about it.

Installation

For starters, I navigated to the Windscribe website, https://windscribe.com/

It’s a nice looking site and I like they have, front and center a Download Windscribe button. I am always annoyed when you have to go digging around to download anything. I give a resounding, “boo” when I am forced to play a scavenger hunt game to find the download link. Thank you Windscribe for not making this part difficult.

Another well presented download for Linux button. No hunting here either. Although, I did notice that there was a lack of definition of my favorite Linux distribution. They have left out openSUSE and that makes me just a bit frowny faced. No matter, I am not a complete “noob” to the Linux-ing and since Fedora and openSUSE packages are like close cousins (in my experience, but I am often wrong), setting this up for openSUSE was pretty darn straight forward.

These instructions are easily adapted to the fantastic Zypper package manager. This is my adaptation of their instructions for openSUSE and is well tested on Tumbleweed.

1. Get a Windscribe Account

Create a free account if you don’t have one already

2. Download and Install the repo as root

zypper ar https://repo.windscribe.com/fedora/ windscribe

This is telling zypper to add the repository (ar) https://repo.windscribe.com/fedora and naming it “windscribe”.

3. Update Zypper

zypper refresh

4. Install Windscribe-CLI

zypper install windscribe-cli

5. Switch to non-root user

exit

6. Login to Windscribe

windscribe login

Follow the steps with your newly created account

7. Connect to Windscribe

windscribe connect

And that is all there is to it. You will be connected and ready to be part of the cool-kid VPN club.

Side Note

If you need further help about how to use the different functions of Windscribe.

windscribe --help

If you need further information on how to use these other features, please visit the windscribe.com site as I am just using the basic functionality of it here.

If the windscribe daemon service does not automatically start up, you may have to start it manually as root.

systemctl start windscribe

and if you want to have it enabled at startup

systemctl enable windscribe

Those may or may not be necessary for you, but just in case, there you go and your welcome!

First Run and Impressions

There currently isn’t a graphical tool for using windscribe in Linux, or at least openSUSE. Chances are, if you are using openSUSE and are hyper concerned about protecting your traffic, using the terminal is not exactly going to cause you to have heartburn. Installation to execution is truly as simple as I have outlined above.

You can take it one step further in the cool, fun, I am a hacker-poser-type if you run it in a terminal emulator called Yakuake. This is a drop-down terminal that is invoked, on my machine with Meta+F12. It looks cool and very convenient to drop it down whenever I need it.

For the free account, you are limited to 10 GiB of data. To check the status of your account usage, in the terminal type

windscribe account

That will give you an output, something like this:

——- My Account ——-  
Username: CubicleNate
Data Usage: 80.02 MB / 10 GB
Plan: 10 GB Free

There is a paid option, which, in my opinion is very reasonable, if you buy a year at a time and I think, if you travel a lot, this may be of great interest to you to protect your data.

If you buy a one year subscription for $49, you are benefited by Unlimited Data, Access to all their locations which they boast as over 60 countries and 110 cities, a Config Generator for OpenVPN IKEv2 SOCKSS which, to my understanding will allow me to use NetworkManager to access the service, and R.O.B.E.R.T. to block ads, trackers and malware. If that is all up your ally, and you like the free service, it all seems pretty well worth it to me.

What I Like

The installation was simple, using it is simple (so long as you are good with the command line) and the performance is very acceptable. Since I am using this when I am away from home, I don’t expect any break-neck speeds out of it, I just prefer that my traffic is at least somewhat protected. After listening to this episode of Destination Linux, I felt like it was a good idea to intact some sort of VPN when I’m out and about.

What I Don’t Like

There isn’t a graphical interface for the terminal-phobic folks. Not a problem for me or likely most Linux users, but there are some that just won’t use it. That’s just the way it goes.

I don’t like that I am not quite familiar with Windscribe. That is not a fault of the service, just the fact that I know so little about them. I will tell you that every email interaction with Windscribe has been amusing so that bodes well for what I think of them.

Final Thoughts

I know that my employer requires me to VPN in to do any real work so even they recognize the value of a good VPN, so maybe I should too. How often do I plan to use it? Not all that often, really. Maybe a few times a month, specifically when I am using an internet access point that I do not trust. I will especially use it if the access point is has “xfinity” in the SSID as I have little to no trust for them.

I appreciate how simple this is to use and should I get to the point where I am pushing my 10 GiB per month limit, I will go all in on an annual subscription. It’s not that expensive to put up one extra line of defense, especially one as convenient as this.

References

Windscribe.com Home
openSUSE Home
Destination Linux Episode 146 on VPNs
DLN Xtend Podcast
Eric Adams at Destination Linux Network