Teaching with a Mask – Headset Solution on Linux

My university, the University of Tampa, is doing what it can to continue teaching in-person classes (many are hybrid) during the COVID-19 pandemic. To facilitate that, our IT folks installed webcams and microphones in all of our classrooms. Unfortunately, the classrooms all have Windows-based desktops that don’t include all the software I need for educating my students (e.g., LibreOffice, Zotero, RStudio, etc.). I have always just plugged my laptop into an HDMI cable and then projected directly from it.

However, now that I’m teaching in a mask that substantially muffles my voice, I need a microphone that is projected through the speakers in the classroom so the students in the back can hear me, particularly when the A/C is on. I tried using the microphone provided the first day of class and ended up having to hold it for the entire class and it still cut out regularly. Our IT folks suggested we could start a Zoom meeting on the desktop, connect our laptop to it, and then display our laptop in the Zoom meeting and project that onto the screen so we can use our laptop and a microphone. That seemed like a kludge approach to solve the problem.

I figured there had to be a better way. So, I did a little thinking and a little research and found one. The answer – a bluetooth headset designed for truckers! Yep, truckers to the rescue!

If I could get a bluetooth headset to connect to my computer and then project the sound through the classroom’s speakers via bluetooth, I could continue to use my laptop to teach my class while still having a microphone to project my mask-muffled voice. Admittedly, this required a couple of hours of testing and some trial and error, but I got it working. Now, I have my own microphone set up for the classroom (I bring it with me) and can continue to use my laptop instead of the Windows-based PC.

So, how did I do it?

First, get yourself a bluetooth headset. I bought the Mpow M5 from Amazon. This is the perfect style headset as it has just one earphone, meaning I can still hear perfectly fine when students are talking to me in the classroom.

Second, connect the headset to your laptop. I’m going to assume your laptop has built-in bluetooth. Mine, a Dell Latitude 7390, does. Pairing it with my laptop was super easy. (If you don’t have bluetooth built-in, there are cheap USB bluetooth dongles you can buy as well.)

Third, the Linux part. I installed the package “blueman,” which provides a GUI interface for working with bluetooth devices. I didn’t know if this would be necessary, but, it turns out, it definitely was. Once you have your headset connected, open the blueman GUI and you’ll see this:

The next part stymied me for a while. Initially, my computer detected the headset as just headphones and not a headset with a microphone. I didn’t know why. Eventually, I got lucky and right-clicked on the Mpow M5 device in blueman and got a context window with the option I needed:

When you right-click on the device, you can select “Audio Profile” and then “Headset Head Unit”. The default, for some reason, was “High Fidelity Playback.” Once I did that, Linux detected the microphone.

Before you continue, make sure you have plugged in the HDMI cable as you’ll need that connected for the next part.

Next up was making sure all my audio settings were correct. This, too, took some trial and error. The settings window you need is paudio or Pulse Audio, which goes by different names in various versions of Linux. Regardless, here’s what the window looks like:

I’ll go over the settings for each tab, though the first two – Playback and Recording – won’t have anything in them until you start up OBS Studio, which I’ll cover shortly.

In the Configuration tab, you should now see your Mpow M5 connected as a Headset and you should see Built-in Audio. This may not say “Digital Stereo (HDMI) Output” to begin with. There is a drop down menu there. Click on it and you’ll see various options:

The default is “Analog Stereo Duplex”. Click on that drop down and select the HDMI Output. (NOTE: I typically use just “Digital Stereo (HDMI) Output” without the “+ Analog Stereo Input”. I have the wrong one highlighted above, but it should still work.)

Here’s what the Input Devices tab should look like:

And here’s how the Output Devices tab should look:

You probably will need to change one thing on the Output Devices tab. Make the HDMI output the default (click the little blue icon). You may also need to mute the Mpow M5 on this screen. Either way, you want to make sure that the HDMI output is where the sound is going.

Now, we need another piece of software. (NOTE: For those using Windows or Mac who want to do this as well, here’s the software that you’ll use that should use a fairly similar set up.) The software is OBS Studio, which is free and open-source software that works on all platforms. Install OBS Studio, then open it up.

The software is very good at detecting everything on your computer. Here are the settings I had to adjust. In the bottom right corner of the software, click on “Settings” and you’ll get a window with various tabs (tabs are on the right). The one you need is “Audio”. Click on that and you’ll see this:

In the Devices section, you’ll need to change the following: “Desktop Audio” should be set to “Built-in Audio Digital Stereo (HDMI)”. “Desktop Audio 2” should be disabled. “Mic/Auxiliary Audio” should be set to “Mpow M5.” All the others should be disabled. Then, under “Advanced,” where it says “Monitoring Device,” select “Monitor of Mpow M5.” Then click Apply or OK.

Close that window then click on “Edit” -> “Advanced Audio Properties” and you’ll get this window:

In that window, where you see “Audio Monitoring,” click on the drop down option for “Mic/Aux” and set it to “Monitor and Output.” What this does is tells the operating system that you want to monitor the audio from your Mpow M5 headset and output it through the speakers. Select “Close” and, assuming you’ve done everything correctly, you should now hear your voice coming out of the speakers. Woot!

A little more detail may be helpful, though. Back to Linux. If you return to the Pulse Audio window, you’ll now see that there is information in the remaining two tabs. Here’s what you should see in the Recording tab:

And here’s what you should see in the Playback tab:

And here is how I look with my headset and a mask:

Some notes:

I haven’t tested this with Zoom yet. I probably will to make sure that the audio also goes through Zoom.

OBS Studio can actually be used to record your presentation as well. It’s designed for streaming gamers, but works just as well for screen capture. So, if you need to record your class, just use OBS Studio to record your audio and your screen during the class.

 4,378 total views,  6 views today

Pickens, SC – Hiking Trip – Day 7 – movie marathon

It was supposed to rain on our last day of our trip to South Carolina. Our plan was to spend the day inside playing games and watching movies. It took us all day, but we managed to finish all of the extended versions of The Lord of the Rings trilogy, which is close to 12 hours of content.

We also got everything packed up so we could make an early start the next day. With some careful planning, we were able to make it from Pickens, SC to Tampa with just two stops to charge the car and were home in the early evening. This was a delightful trip. We’ll definitely consider doing something like it again.

 1,424 total views

Pickens, SC – Hiking Trip – Day 6 – Table Rock

We saved our longest hike for last. Perhaps the most well-known and scenic hike in the area near our cabin is Table Rock Trail. This leads to the top of a mountain and then, just past the summit, to a beautiful overlook. Despite the trail being well-worn and marked with red blazes, we actually lost the trail twice on the way up and had to backtrack a little bit each time to find the main trail (marked in the map below). The hike is a good one with some pretty rugged, steep terrain at times.

The view from the overlook is quite impressive:

Per my watch, the hike was 6.79 miles round trip with 2,439 feet of elevation gain. With a stop at the overlook of about 30 minutes to eat some fruit and snacks, it took us just under 4 hours.

Toren ended up doing an advert for Nature Valley on the overlook:

Here are a few videos from the hike:

This is one of the small waterfalls you pass early on the hike.
This is another small waterfall right at the beginning of the hike.

We headed back to the cabin and continued our movie marathon, finishing The Hobbit series and beginning The Lord of the Rings series, each of which is almost 4 hours long. We only got through part of the first one but were committed to finish them during our South Carolina trip.

 1,059 total views

Pickens, SC – Hiking Trip – Day 5 – Falls Creek Waterfalls

Our friends left early in the morning so it was just the three of us again. We opted for a hike to another waterfall – Falls Creek Waterfalls. It’s not the best name, but the waterfalls were, again, quite beautiful. Some of the trip reports for this hike suggested the trail was quite steep and challenging. That is an accurate portrayal of parts of the trail. If you’re not in good shape and willing to traverse some rugged and steep terrain, you shouldn’t attempt this trail. Even so, most of the trail was of an easy grade.

Here’s the route:

The round trip distance was 2.46 miles with 1,114 feet of elevation gain.

Here is a video of the upper falls:

Here’s a photosphere of the upper falls:

And here’s a photosphere of the lower falls:

Even though this hike was a decent workout, the hike was relatively short. We decided as a result to stop by a roadside hike on our way back to the cabin, the Wildcat Wayside Nature Trail. Meh. Probably a mistake. There is a cute little waterfall right by the side of the road maybe 50 feet from where you park. There were kids playing here as there is a nice, shallow pool below the waterfall. But this was the most scenic element of the hike. We ended up following the roughly 1-mile nature trail. It was fine. It eventually reaches a cliff face that had a trickle of water coming down it. Perhaps during a rainstorm there would be a decent volume of water coming down the cliff face making another waterfall. But it really was a trickle dripping down into a small puddle and about half a dozen young kids were playing in that puddle. The trail is pretty level and not at all rugged except for one spot where you have to work your way over some roots. So, if you’re looking for a nice, easy trail, this is the one for you.

After our hike, we headed back to the cabin, cleaned up, had a nice lunch, then began what would turn into a fairly epic movie marathon. We watched the first two movies in The Hobbit series. I have extended versions of all of these, so each movie is at least three hours long. We got through two of them the first day we started it, with a good game in between them.

 958 total views,  1 views today

Pickens, SC – Hiking Trip – Day 4 – Rainbow Falls

Following the same pattern, we got up fairly early to do another hike – Rainbow Falls. This one was in the Jones Gap State Park, which does require a $6 parking fee per person (kids and seniors are less). The hike was to Rainbow Falls. Here’s the route:

Per my watch, the route was 5.01 miles round trip with just under 2,000 feet of elevation gain. It’s a fairly rugged trail at times but quite a pleasant hike and the waterfalls at the top were very pretty. Here is a photosphere showing the falls:

We didn’t stay very long because the forecast called for rain in the early afternoon. We got a little sprinkle on our way down but it was quite light.

Here are a couple videos of the falls:

These are the upper falls at Rainbow Falls.
One of the lower falls at Rainbow Falls in Jones Gap State Park.

The bottom part of the trail is the main trail in Jones Gap State Park, which follows a very scenic river:

After the hike, we headed back to the cabin, cleaned up, and then followed your daily routine – eat, play games, and relax. We ended the night with Deadpool 2!

 1,018 total views

Pickens, SC – Hiking Trip – Day 3 – Twin Falls Trail

With our friends from North Carolina joining us, we headed out for our second hike – Twin Falls Trail on Reedy Cove Creek. This one was a little weird as it isn’t part of a state park, so the parking for the beginning of the trail was really just a pull out on the side of a road with room for about 3 cars is all.

The trail was pretty well-maintained and included some nice elevation gain, which was great coming from Florida where the only elevation gain we have involves stairs and buildings! The trail ends at the upper falls of a two-stage set of waterfalls. The upper falls aren’t very large but they are elongated and quite beautiful. Here are some videos of the upper falls:

The upper falls on Twin Falls Trail
The upper falls in slow motion

Just below these is the main waterfall, which is probably 70 to 100 feet tall. We were able to very careful work our way to the top and sit there and enjoy the view while we had a snack. Getting to the top of the falls where we were is a bit treacherous and I wouldn’t recommend it for anyone who isn’t sure-footed. A small slip and you’d be in trouble quickly there.

While we were at the top of the falls we saw people at the bottom who were swimming in the pool. We thought it might be nice to see the falls from the bottom and even tried a side trail off the one we had followed but it didn’t lead to the bottom of the falls. I marked that on the map. I spent some time bushwacking off that side trail to see if I could connect to the other trail but ran into two creeks and actually fell into one. It wasn’t easy hiking and I didn’t want to make everyone else have to work their way through brush, so we ended up just heading out. Here’s the hike:

The hike was about 3 miles and took us about 2 hours, but with a solid 30 minutes or so enjoying the views at the top (and another 20 minutes wandering off the trail). The total elevation gain was about 1,000 feet.

We spent the rest of the day relaxing and playing games. Just before bed, we decided to watch a movie. The choice we came to was Deadpool, which is always fun!

 1,062 total views

Pickens, SC – Hiking Trip – Day 2 – Raven Rock Loop Trail

The plan was to do a hike every morning while it was cooler, then head back to the cabin and relax, playing games, watching movies, cooking, and chatting. We also had some friends who live in North Carolina who were going to visit for a couple of days.

Our first hike was the Raven Rock Loop Trail, which is a nice ~4 mile hike that extends the Keowee-Toxaway Natural Bridge trail to Lake Keowee. There are some small waterfalls on the Natural Bridge trail. Past that, it’s a nice hike up and down some hills and down to the lake, but no additional waterfalls. Here’s our route:

Here is a short clip of the waterfall:

And another short clip of the bubbling little brook:

Our total distance on the hike was 4.53 miles and it took us just over 2 hours.

After the hike, we headed back to the cabin, got cleaned up, then made a list of food. I headed into the nearest town to buy the food while Debi and Toren got everything ready for our friend and her kids. I arrived back at the cabin just before they did. We spent the rest of the afternoon and evening chatting, playing games, and cooking.

 814 total views

Pickens, SC – Hiking Trip – Day 1

Since March 2020, we have been cooped up pretty consistently thanks to the COVID-19 pandemic. We have gone out to shop and exercise, but that’s about it. After nearly 5 months of hardly leaving the house, we were getting a little antsy. We eventually came up with a trip that we thought would work well given the current situation and the emphasis on physical distancing – a road trip to the mountainous region of South Carolina where we could go hiking and still stay physically distanced from people.

We found an amazing cabin (really a home) in Pickens that wasn’t all that expensive to rent for a week on AirBnB and I spent a few days looking at hikes in the nearby area. We also spent some time thinking about what we wanted to eat, what else we were going to do, and the trip itself.

August 7th

We left Tampa fairly early on the 7th. Since we drove my Tesla, we had to map out superchargers to make it to the cabin but it worked out well. We traveled from Tampa to Jacksonville and hugged the coast to avoid Atlanta, which has the worst traffic. We ended up stopping three times to charge, though we could have made it with just two stops. We had lunch during one of the stops. We arrived around 6:30 pm and brought enough food that we were able to get settled in the cabin and make dinner, then go to bed.

 872 total views

Kubuntu – Audio CD Ripping

I mostly buy digital audio these days. My preferred source is bandcamp as they provide files in FLAC (Free Lossless Audio Codec). However, I ended up buying a CD recently (Last Night’s Fun by Scartaglen) as there wasn’t a digital download available and, in the process, I realized that there are lots of options for ripping the audio from a CD on Linux and quite the process to get the files ripped, tagged, properly named, and stored in my library. This is my attempt to summarize my process.

Format/Codec

First, you need to decide in what format you want the audio from the CD. As noted, I prefer FLAC these days. Given how relatively inexpensive storage is, I no longer need to scrimp on space for the most part. If space was an issue, ripping the files to mp3 format at, say, 192 kbps at a variable bit rate would probably be the optimum balance between decent quality and small size. But I prefer the best quality sound with no real regard for the size of the resulting files. It helps that I store all my music on a dedicated file server that runs Plex. That solves two problems: I have lots of space and Plex will transcode the files if I ever need that done (if, for example, I want to store the music on my phone and want it in a different format). So, my preferred file format is FLAC. (Another option is OGG, but I find not as many audio players work as well with OGG.)

There is another issue that I recently ran into: single audio files with cue sheets. Typically, people want their audio in individual files for each song. However, if you want to accurately represent an audio CD, the best approach to do this is to rip the audio as a single file with a corresponding cue sheet. The cue sheet keeps an exact record of the tracks from the CD. With the resulting two files, the audio CD can be recreated and burned back to a CD. I have no real intention of burning the audio back to a CD (I want everything digital so I can store it on my file server), but it’s good to know about this option. Typically, those who opt for this approach use one of two formats, .flac or .ape, for storing the audio and .cue for storing the timing of the tracks. The .ape format is a proprietary format, however, so it is definitely not my preferred approach.

As a quick illustration for how file format is related to size, I ripped my demonstration CD, Last Night’s Fun by Scartaglen into a single FLAC file and a single mp3 file (at 192 kbps using a variable bit rate) and put the resulting files into the same folder so you can see the size difference:

As you can see, the FLAC rip resulted in a file that was 222.9 MB compared to the mp3 file that is only 49.4 MB. The FLAC file is about 4.5 times the size of the mp3 file. A higher-quality mp3 rip at 320 kbps at a constant bit rate resulted in a 54.8 MB file. A pretty good estimate would be that the FLAC format is going to be somewhere between 3 to 5 times the size of an mp3 file. Thus, if space is an issue but you want good quality, ripping your music to the highest quality mp3 (320 kbps) is probably your best option. If space isn’t an issue and you care more about quality, FLAC is the way to go.

NOTE: I also ripped the disc to OGG and the file size was 38 MB.

Ripping Software

First, if you’re planning on ripping to FLAC on Linux, you’ll need to install FLAC. It is not installed in most distributions by default. This can be done easily from the terminal:

sudo apt-get install flac

Without FLAC installed, the software below won’t be able to rip to FLAC.

K3b

K3b is installed in Kubuntu 20.04 by default and is, IMO, a good interface for working with CDs and DVDs. When I inserted my demonstration CD into my drive, Kubuntu gave me the option of opening the disk in K3b. When I did, K3b automatically recognized the CD, grabbed the information from a CDDB, and immediately gave me options for ripping the CD:

When you click on “Start Ripping,” you get a new window:

In this new window, you have a bunch of options. You can change the format (Filetype). With the FLAC codec installed, the options listed are: WAVE, Ogg-Vorbis, MPEG1 Layer III (mp3), Mp3 (LAME), or Flac. You can obviously change the Target Folder as well. K3b also gives you the option of creating an m3u playlist and the option “Create single file” with “Write cue file” which is where you could create the single file and cue file from the CD as noted above. There are also options for changing the naming structure and, under the Advanced tab, options for how many times you want to retry reading the CD tracks. K3b is pretty fully featured and works for well for ripping audio CDs.

Clementine

My preferred music player in Linux is Clementine. I have used a number of music players over the years (e.g., Banshee, Rhythmbox, Amarok), but Clementine has the best combination of features while still being easy to use. Clementine is in the repositories and can easily be installed via synaptic or the terminal:

sudo apt-get install clementine

Clementine also has the ability to rip audio CDs. Once your CD is inserted, click on Tools -> Rip audio CD:

You’ll get this window, which is similar to the ripping window in K3b:

If the information is available in a CDDB, Clementine will pull that information in (as it did for my demonstration CD). You then have a bunch of options for the Audio format: FLAC, M4A, MP3, Ogg Flac, Ogg Opus, Ogg Speex, Ogg Vorbis, Wav, and Windows Media Audio. The settings for each of these can be adjusted in the “Options” box. One clear advantage of Clementine over K3b is that you can readily edit the titles of the tracks. Another advantage of Clementine over K3b is that you could import the files directly into your music library.

Ripping from a Cue Sheet

Another scenario I have run into on Linux is having a single file for the audio from a CD with a corresponding .cue sheet (the file is typically in the FLAC format, but I have also run into this in .ape format). I used to immediately turn to Flacon, a GUI that helped rip the single file into individual tracks. However, I have had mixed success with Flacon working lately (as of Kubuntu 20.04, I couldn’t get it to work). Never fear, of course, because Flacon is really just a GUI for tools that can be used in the terminal.

To split a single FLAC file with a corresponding .cue sheet into the individual tracks, you’ll need to install “shntool“:

sudo apt-get install shntool

(NOTE: It’s also a good idea to install the suggested packages, “cuetools,” “sox,” and “wavpack” but not required.) Assuming you have already installed “flac” as described above, ripping a single FLAC file into the individual tracks is fairly straightforward. The easiest way is to navigate to the folder where you have the FLAC file (e.g., “audiofile.flac”) and the cue sheet (e.g., “audiofile.cue”). Then use the following command at the terminal:

shnsplit -f audiofile.cue -o flac audiofile.flac 

Breaking the command down, “shnsplit” calls the program “shnsplit” which is part of the “shntool” package. The “-f” tells the program to show detailed format information. The first file is the cue sheet. The “-o” indicates that you are going to specify the output file format extension. After the “-o” is the target file format “flac” and the last file is the single FLAC file that you want to split.

Here’s a screenshot of me rippling the single FLAC file from my demonstration CD into individual FLAC files:

If you happen to run into a single audio file in the .ape format, shntool probably won’t be able to read it so the above command won’t work. However, a simple workaround is to convert the file to flac format using ffmpeg, which can read it. Here’s the command you could use from the terminal:

ffmpeg -i audiofile.ape audiofile.flac

That command will call ffmpeg (which you probably have installed) and convert the .ape file into a .flac file which can then be split using the command above (assuming you have a corresponding cue sheet).

Tagging Software

Let’s say I have successfully ripped my files into my desired format and now I want to tag them. There are a number of software packages that can do this, but my preferred software is Picard by MusicBrainz. Picard is open source, which is awesome, but it also interfaces with the MusicBrainz website and pulls in information that way, which means your files will get robust tagging information. If you pull in all the information from MusicBrainz, not only will the artist and album be tagged, but so to will lots of additional information, depending on how much was entered into the database by whoever added the album in the first place. (NOTE: Clementine also interfaced with MusicBrainz but this broke in 3.1. Once it broke, I started using Picard directly and now I realized that it has a lot more features than Clementine’s implementation, so I just use Picard. However, you could try doing this in Clementine as well.)

Again, I’ll use my demonstration CD to illustrate how this is done. I ripped the tracks into individual FLAC files above. Those tracks are completely devoid of tags – whatever software I use to try to play them won’t know what the audio files are. The screenshot below illustrates this. I used MediaInfo (a gui for pulling information from audio and video files in Linux) to pull available information from the file. It shows the format and length but provides no information about the artist or album, which it would if the file had tags.

We’ll use Picard to find the album and add all the tags. First, of course, install Picard:

sudo apt-get install picard

Open the program. Now, since my files have no tag information, I’m going to click on Add Files (you can also add a folder with subfolders, which then has Picard run through multiple audio files, a great feature if you are tagging multiple albums at the same time).

You’ll get a new window where you can select the audio files you want to add. Select them and then click “Open.”

If the files have existing tags, Picard will do its best to group the tracks together and may even associate the files with the corresponding albums. In my case, it simply puts the files into the “Unclustered” category:

Since I pulled them all in from the same folder, I can select the tracks and then click on the “Cluster” button in the toolbar and Picard will cluster the files.

Clustering is a first step toward find the corresponding album information. Once they are grouped together, they will show up in the Cluster category:

Without any tag information, Picard is unlikely to find the corresponding album if you select the cluster and then click on “Lookup.” If there was some tag information in the files, that might be enough for Picard to find the corresponding albums, so you could just select the album and then click on “Lookup.” In this case, that won’t work. So, I’m going to use a different approach. If you right-click on the cluster, you can select “Search for similar albums.”

This gives you a window where you can enter search terms to try to find the corresponding album in the Music Brainz database. Based on the limited information it has, it will try to find a corresponding album automatically. But it likely won’t find it because there are no tags, so there is virtually no information available. Generally, I have found that I have better luck finding albums if I use the album title first followed by the artist, like this “Last Night’s Fun Scartaglen” then hit enter:

Once you find the correct album, select it and then click on “Load into Picard” at the bottom of the window.

Once you do that, the album will move to the right side of the screen. If all of the tracks are included and Picard is able to align them with the corresponding information it has from the database, the CD icon will turn gold. If there is a little red dot on the CD, that means Picard has tag information that can be saved to the individual tracks.

Click on the album and then click the “Save” button in the toolbar and the tag information will be saved to the files.

You can track the progress as tracks will turn green once the information has been successfully added to the tags.

You can also set up Picard to modify the file names when it saves information to the files. Click on “Options” then click the checkmark next to “Rename Files.”

I typically let Clementine rename my files when I import them into my Music library, so I don’t worry about this with Picard, but it is a nice option. Finally, here’s that same Mediainfo box with the tagged file showing that information about the artist and track is now included in the file:

 3,106 total views,  3 views today

LibreOffice – How To Change Icons to a Darker Theme

I prefer darker themes for my desktop environment (Kubuntu 20.04) and browser (Brave). For the most part, this isn’t a problem, but it does cause an issue with some applications, including LibreOffice (6.4.4.2).

One of the first things I do when I install Kubuntu is switch my desktop environment from the default theme (System Settings -> Global Theme), Breeze, which is a lighter theme, to Breeze Dark. You can see the differences in the screenshots below:

This is the Breeze theme that is the default in Kubuntu 20.04
This is the Breeze Dark theme that I typically use in Kubuntu.

The problem is with the icon set in LibreOffice. With the default Breeze theme, the icons are very visible and work great:

These are the default icons in LibreOffice 6.4.4.2 in Kubuntu 20.04 with the default Breeze theme.

The problem comes when I switch the theme to Breeze Dark. Here is how the default Breeze icons look in LibreOffice when I switch the theme:

The default icon set, Breeze, in LibreOffice when the Kubuntu Global Theme is switched to Breeze Dark.

Perhaps it’s just my aging eyes, but those icons are very difficult for me to see. The solution is quite simple, though finding it is always hard for me to remember (thus this tutorial). All you need to do is switch the icon set in LibreOffice. There are several icon sets for dark themes that come pre-packaged with the standard version of LibreOffice that ships with Kubuntu and is in the repositories. It’s just a matter of knowing where to look.

In LibreOffice, go to Tools -> Options:

You’ll get this window. You want the third option down under “LibreOffice”, “View”:

Right at the top of this window you can see “Icon style.” That’s the setting you want to change. If you click on the drop down arrow, you’ll see six or so options. Two are specifically for dark themes, Breeze (SVG + dark) and Breeze (dark). Either of those will work:

I typically choose Breeze (SVG + dark). Select the dark theme you want, then click on OK and you’ll get a new icon set in LibreOffice that works much better for dark themes:

These icons are much more visible to my aging eyes.

Et voila! I can now see the icons in the LibreOffice toolbars.

 4,745 total views,  18 views today