An open source user evolution

My journey from basic computer user to computer programmer (hopefully)

Trying to generate the autorun options for starting i3. I'd like my optimal desktop to just start without me doing anything

– I have been editing the ~/.config/i3/config file with some luck – i3-layout-manager does a good job at saving the .json file. I do need to edit it so it restores my desktop session which is where I am running into issues

– I have the first two workspaces saved as .json files and they are loading properly on startup – workspace 1 loads perfectly out of the gate right now – workspace two loads the layout. need to work on proper programs starting

– Possible solution that is seemingly working: – append the i3 config file with the following:

execalways —no-startup-id i3-msg “workspace 1; appendlayout /home/darrin/.layouts/layout-WORKPLACE1.json” execalways —no-startup-id i3-msg “workspace 2; appendlayout /home/darrin/.layouts/layout-WORKPLACE2.json”

execalways —no-startup-id i3-msg 'workspace 1; exec urxvt -name alpine -e alpine' execalways —no-startup-id i3-msg 'workspace 1; exec urxvt -name calcurse -e calcurse'

execalways —no-startup-id i3-msg 'workspace 1; exec urxvt -name lynx -e lynx' execalways —no-startup-id i3-msg 'workspace 1; exec urxvt -name irssi -e irssi' exec_always —no-startup-id i3-msg 'workspace 1; exec urxvt -name tnote -e tnote'

Had to fix a few things because the workstation 2 just wouldn't load with the proper layout. -resaved the layout that I wanted -edited the i3 config to get both workspaces to load properly -deleted the shit from my i3 config and made it into a script to run -I want to incorporate this into another script I run to decide which layout I will go with for the session. -Have a study layout all setup now!

My end result is this:


Workspace layout

i3-msg 'workspace 1; appendlayout /home/darrin/.layouts/layout-WORKPLACE1.json' i3-msg 'workspace 2; appendlayout /home/darrin/.layouts/layout-WORKPLACE2.json'

Program loads

i3-msg 'workspace 1; exec urxvt -name alpine -e alpine' i3-msg 'workspace 1; exec urxvt -name calcurse -e calcurse' i3-msg 'workspace 2; exec urxvt -name lynx -e lynx' i3-msg 'workspace 2; exec urxvt -name tnote -e tnote -a' i3-msg 'workspace 2; exec urxvt -name irssi -e irssi'

streaming music for studying

cvlc ~/.config/pyradio/listen.pls -d

So I wound up not doing an auto populate for my workspace. I am happy that I figured it out but I like the idea of having several layouts to choose from based on what I am doing. Growing closer and closer to being able to stick with i3 completely as well as CLI.

Now I want to configure my irssi to open the proper chatrooms when it opens... -Just going to add the auto join chats as I go.

Added a command to open a terminal in workspace 3 on startup. I am loading the layouts in workspace 1 and 2 so having a terminal in workspace 1 when I manually load the layout will mess it up due to the terminal window I am using already being there. This will ensure that the terminal colors are updated and things dont look too funny as well keeping my layouts as they are supposed to be. Ultimately I want this to be the dialog box to choose which layout I want for that session.

Got Alpine mail to work on my computer tonight and I am ecstatic about it. I have long wanted a command line only interface and this gets me one step closer. This was way easier than I thought it was going to be. Here are my notes from the install and setup...

Setting up Alpine Mail:

Install Alpine mail ,,,yay alpine,,, I always get a little nervous when I install something from the AUR and it has to compile. This takes a while and it's just always a little unsettling lol.

Launch alpine and setup my email... -navigate to main>setup>colletionlists>add -enter the following information Nickname: (giveitaname) Server: Path: View: -navigate to setup>config for smtp server setup a folder -navigate to setup>config and check off the boxes for the following: Compensate for deficient IMAP servers Combined Folder Display Enable incoming folders collection Enable incoming folders checking

This worked and my email is now available to me in my command line environment. And its fantastic.

I recently changed to lynx as my web browser for my CLI sessions as it is a little more configurable than elinks. It essentially came down to the readability of text based sites I want to use to read and learn from. The elinks options were hard to read and navigate so I tried lynx and found it much better.

I also managed to get keybindings to work for my touchpad. alt + F9 will toggle the touchpad now which is amazing. This is only for my i3 sessions however so I have to make sure to enable it before I try to play around in ratpoison or go back to gui sessions with xfcewm. I have an alias setup to run the bash executable I made as well so it's not like I'm stuck either.

All in all it's been a heck of a great day because I have gotten my keybinding set to enable and disable touchpad like it is supposed to. I also have my proper keybindings for keyboard lighting working properly as well. This hasn't worked in months so it's exciting that it's all coming together and working great!! I'm getting better at documenting it all as well. I think the next thing will be to better organize my bookmarks online for all of this. For now it's exciting that my complete cli environment is almost complete. Ill develop a list of all the apps I use for everything I do and publish that here soon.

Some thoughts about recent stuff happening with Manjaro and Linux in general. There have been someissues with Manjaro updates that have caused some major issues to newer users because they didn't know wwhat they were doing or they hadn't read the update announcements prior to doing their updates. This led me to think about a couple of things regarding updates, user-types, distribution assessment, backups, and graphical user interfaces. I'll write a little further to expand on each and why this one backup issue is relevant to each in my opinion.


There is constant discussion regarding distributions and who they are applicable for use. Some are aimed at more experienced users and some are billed to be perfect for beginners. Others fall in the middle somewhere or maybe they are for specific purposes like Kali. Manjaro has often been referred to as a user-friendly option to use an Arch-based distribution and I agree to some extent. Beginner could have a very different meaning depending on what user you ask. A basic day-to-day user who wants nothing more than a word processor, web browser, and media player is someone I would consider a true standard user with beginner level knowledge. These people do not want to have to “take care” of anything, they just want it to work. They don't care about the magic behind the scenes, they just want it to work.

And then there is the beginner hobbyist who doesn't know much but wants to learn and is willing to do a little more to have the type of system they want. For whatever reason, maybe it's security, personal preferene, or fiscally driven, this user will be more likely to read documentation and increase their knowledge level to some degree.

And then you have moderate to advanced users who are capable of troubleshooting and repairing issues, sometimes without the assistance of forums or wikis. These people don't need recommendations on distributions and therefore I will not refer to them again.

The most important distinction is between the two types of beginner levels; hobbyist and general user. This is what makes or break a Manjaro recommendation from me. If the person does not want to put in a little effort to learn about their system and do some maintenance and reading, then I won't recommend Manjaro and instead offer something like Ubuntu or Mint. The recent Manjaro update issues are the exact reason why.


This basically comes down to the type of release a distribution is. Rolling releases, which is essentially what Manjaro amounts to be, are constantly updating to stay as current as possible with up to date technologies and changes. These can be riddled with issues and are only recommended for advanced users.

When I first started looking at Linux I was enamoured with the description “bleeding-edge”. I wanted to be using the latest technology and I wanted it to be perfect. I quickly discovered that as a beginner with little knowledge, this can be rather frustrating but an incredible learning experience. Choose which you want because with a rolling release you will inevitably come into trouble.


I have recently, and will forever continue to express the need for backups. I can think of few scenarios that a user wouldn't want to save some type of work they are doing at some point on their computer. I have some important infomration I like to ensure I have copies of in case my drive is ever corrupted or I somehow lose other information. I won't get into my whole backup plan here, that's for another post, but I do stress the importance and these recent Manjaro update issues are the exact reason why.


When it comes to my computers, I am a bit of a minimalist. I like working from the terminal and perfer the command line in most of what I do. It didn't start that way but that's what it has come to and I really enjoy it. I now prefer less graphics just because I like to reduce the workload of my PC. Is this NECESSARY? Probably not but it is preferred so that's what I do. Why do I say this and what does it have to do with Manjaro update issues? Because the graphical environment was causing the system to crash during updates, requiring users to repair their systems. I didn't run into these issues because I don't update my system from the GUI. I was negligent to read the announcements, however, and had I been a regular guy using the GUI I would have ran into the same issues as many other users. This caused me to realize the importance of reading the announcements and actually bear the responsibility of being a rolling release user.

It's important for me to know, as a Manjaro user, what I should be doing to ensure my data is safe and my system is functional. I read every announcement that is posted now. I am on email lists and I actually read them. This is making me not only a more informed user but it also forces me to learn more as well. But I do all of this as an inspired hobbyist and crazy Linux fiend. I wouldn't recommend Manjaro to my parents because they don't even know the difference between a desktop environment and window manager. I wouldn't expect them to know how to login to a TTY in order to do their updates. Nor would I expect them to know how to schedule timeshift backups or really any type of maintenance.

Because of this, I can only recommend Manjaro as a great beginner's distro for those who are willing to put in the work at maintaining it because it will take some effort. Is it a true beginner's distro? Not in my opinion but it's still my daily driver for many reasons.

I set about on a quest recently to scratch the itch of completing an install of Arch on my older laptop. I had tried it in the past with no luck and I was reluctant to do it again but through someone who has become somewhat of a mentor and friend to, I was persuaded to try it one more time. My void install that mimicked the look of an old Solaris machine would soon become a dual-boot project bigger than I thought was possible.

Starting out I needed a plan of what I wanted to do and how I wanted to get there. I decided on a simple partitioning scheme that would shrink my current void partition by about 30GB to allow for a small spot for me to install Arch and maybe play around with customizing it a little bit. I didn't have much of anything to lose on the void install other than a few hours of making it look like an old ass computer, so I just made a snapshot of it and proceeded to make my Arch USB for install.

Same old song and dance making the USB with dd and proceeding to boot off of that. I have tried this in the past with no luck because of the internet requirements for the install. I don't have easy access to hook a cable up to my router so I need to figure out a way to enable my wireless card and actually get it to work. This is what has stopped me in the past because it has simply gotten to be too confusing for me.

I spent hours reading into it and trying different things in the live Arch environment and nothing was working. Finally, thanks to my good friend, I wrestled with wpasupplicant (which I had been avoiding hoping that I wouldn't need it) and figured it out. Using the Arch Wiki I configured the wpasupplicant to connect to my wifi but it still couldn't connect to the internet without an IP address. So I used dhcpcd for my access point and it configured it all for me no problem. I sent out a ping to verify connectivity and I was up and running in about 10 minutes. So now I can finally move on to installing packages!!

I partitioned the disk, shrinking the void partition slightly and mounting the all the rest of what I needed to, which was my efi partition. Installed grub and went on my way to a restart which brought me to grub recovery shell. Well crap, what did I do wrong. I used my arch install USB to boot back up and chroot into my installed Arch environment and investigate. Everything looked good with all the troubleshooting I did until I tried to mount the partition I had shrunk earlier. I figured I could chroot into void and revert back with my snapshot. Well that wasn't the case as it turns out my partition was corrupted from resizing it earlier. Now I am back to square one.

This now became a full rebuild that I was determined to complete. I left it for the night and returned the next morning. I have become fairly good with the first few steps of the Arch installation process by now so getting to the point of rebooting took little under an hour. And I tried it... and it failed again lol. So what the hell did I do wrong this time?!?!? Well, for starters I mounted partitions completely wrong. I installed grub to the wrong file and I generated my fstab with the wrong partitions mounted in the wrong spots. It was a mess all around and fixing it was becoming a major task. I resorted to trying one more install from scratch.

Using all the lessons I had learned from my 10+ other attempts at installing Arch I gave it another shot and quickly found myself at the reboot point once again. I double checked stuff as I was going through the process to make sure I wasn't making the same mistakes I had in the past and I verified my mount points several times. Once I was comfortable that everything that could be checked was in actually checked, I shut it down to see if I could boot it right back up.

This time it worked and I was THRILLED to see the grub screen pop up with the option to load arch. But was I really there? It still needed to load the OS so I wasn't out of the woods yet. I pressed enter to proceed and within seconds I was greeted with my first login screen on my first successful install of Arch Linux. It was a goal I set for myself several months ago and it's finally here.

This has been an incredible learning experience for me. Now that the first install is done, I can focus on getting void back on there. I'm not the biggest fan of dual-booting anymore but I still think the capability is awesome. And what the hell, having these two distros on one computer would be a bit of an accomplishment for me. We will see if it works out. Either way I'm sure to learn a lot while trying!

Oh man, it's been a few days but I've done some things. Installed Void Linux a couple of days ago onto the old laptop and I've got it up and running for the time being. Had some issues but they were minor. Took me a while to figure out how to set my repositories properly which then allowed me to install the proper software to get my audio working. I have sound now but no keys mapped for adjusting it so I will have to work on that.

I recently started a bash programming intro with a couple of different resources: -A bash intro on github that uses ##linux-beginners as a “classroom” -Bash reference manual for beginners

Both are fantastic learning tools that I hope to get through within the next couple of weeks

I'd like to get to making some scripts sooner rather than later. Like I said, my first little project I want to be an internet streaming program. I've got something setup already with a simple bash script and an alias but that only plays one station with no options. It'll take some work I'm sure so I'm not expecting it to be done anytime soon.

I'd also like to get more familiar with calcurse because I think it will be a very functional and helpful calendar application in the terminal. For now I will continue with customizing the other laptop with an old-school theme similar to the old CDE on Solaris machines.

So I got a good bit done on the Void install customizing. I am kind of mixing between theme packs I find online and my own customizing to get the look down as best I can. If I can get the login screen to look close along with the botom panel, I think I am pretty well set after that. Oh yeah, I need to find an icon pack that actually works with xfce. I found a sweet one but there is something wrong with it.


I ran into an issue this past week trying to clone my HDD. Wound up deleting the boot partition on the laptop and almost couldn't even log in to my own computer. Thankfully I keep a spare install on a USB to boot up the computer and chroot into my system. From there I recalled my latest snapshot which restored my system and I was able to boot again. It was a close one! Anyway, hoping to work on more bash learning along with furhther reading into Code. I have kind of slacked on my note taking and reading this past week. Ill get back into it this week.

I just want to verify this content with my mastodon profile. And I don't want it in the header lol


I feel like I need to catch up on some things. The last couple of days have been pretty good as far as progress in getting my computer set up exactly how I want it. I know I have probably said this several times, my wife tells me I do this all the time, but I keep finding just one more little thing that I want to do that will make things easier or more convenient, or just cool. So for now, I have my profile(s) all setup and configured to exactly how I would like them. I am not going to use a conky in my i3 sessions because it's really not necessary unless I am staring at the background without any windows open which at that point I'm clearly not doing any work. So my xfce session has a conky and my i3 session uses the i3bar with i3status.

I have to run killall conky before I logout of xfce. If I don't the daemon creates an issue when I login to the i3 session and disables all my keybindings, or most of them anyway. I want to figure out how to get that to be an automatic script that runs when I logout. I think the answer lies withing the lightdm files somewhere but I am not sure at this point. I will keep looking for a solution. For now I have a slight inconvenience of typing one command before I logout. Not too big of a deal if you ask me.

I was able to configure lightdm.config to import a new background for the login screen and I moved the login box to the lower left. I really like the simple design of it. Some glitching on startup but I really don't care about that. I enjoy the hobbyist appearance with excellent capability.

I found a great radio streaming app for the terminal called pyradio. It comes with a few preloaded stations and it works right out of the box. I need to figure out how to add stations though. If I can, this little app will surely be a game-changer for me lol. It did lead me to figuring out how to run a script to get my favorite classical stream to play automatically in the background. I'll try to list the files and commands I used. This blog service is pretty basic so it may not format very well.

First I downloaded the .pls file from the website and then I created a script to run vlc in the background with the .pls file. In my home folder a few little scripts that I made for alias commands so I put it in there and set my alias in my .zshrc file.

My file __________________________________________________ #!/bin/zsh #quick command to listen to music

cvlc ~/.config/pyradio/listen.pls” __________________________________________________

My alias in .zshrc __________________________________________________ alias study=”~./” __________________________________________________

source .zshrc and restart any terminals that are already open and you will be all set.

To stop the stream I set up another alias to run the killall vlc command.

So now I just type in “study” into my command line and I get nice background music to study to. My goal is to write a short program that can include choices based on a library I setup with .pls files. I'll see how that goes.

I feel pretty good about where things have come in the past few days. I have resolved to setting a couple attainable goals before I continue on in any more of an aggressive manner. I have to remember that I start school in the fall which I am sure will be a time hog, but at the same time, could possibly give me my fill for learning. I guess we shall see. Onto what's been going on lately!

My focus for now has to be on continued reading and understanding the book “Code” I am reading. I know I've mentioned it before but it's really a fantastic book for anyone looking to further understand the basics of computer language. I am slowly progressing into reading it. The first 100 pages were fairly basic and easy to comprehend but now we are getting into how a subtraction machine works all through logic gates and light bulbs. It takes me some time to get through a chapter having fully understood everything behind what was put out. I'm not trying to be some computer scientist overnight haha.

My other focus is to start learning and practicing bash scripting. This might seem like an odd introduction to programming (maybe, I don't know what the norm is for getting into programming lol), but after having it recommended to me I read into it a little and it makes sense for me and what I am interested in. My first real interest in computers started with learning about the boot process. Can't quite say what it is about it that fascinates me but I'm hooked on learning as much about it as possible. Anyway, a description I read about bash scripting is that it requires knowledge of the boot process. This either means I will have to learn more about it in order to bash-script, or that I may have a leg up on some of the concepts already. OOOORRRRRR maybe bash scripting is what the boot process is built on??? I'm eager to find out!

And finally, I have come to a hault with trying to get my laptop to run any sort of crazy partitioned setup with a dozen os's. I have proven capable of doing it which I think is pretty damn sweet, but now that I want to get to doing some actual work, I really need to preserve the nicest computer I have which is my laptop. I run a fairly simple partition scheme now that I figured out how to format a GPT I can all the partitions I could ask for. So I have my boot, root, home, spare, spare, swap partitions. The first spare I mount as an external drive to save my timeshift snapshots to. I have no clue if this is good practice or not but it allows me to have, at the very least, a separate partition to recover snapshots and backup images from if I need to.

The second spare partition is for my project down the road of building Linux From Scratch. That is a long-term goal that I am excited to complete someday but for now I think I need to focus on gaining a little more knowledge. I'm close, just not quite there to be able to install it yet.

And of course, my “daily-driver” operating system that I have chosen is Manjaro. I went with the architect builder for the install which allowed me to go with a minimal install. I elected the xfce desktop environment because I want to keep things lightweight and simple; and because it's all I had known up to that point anyway and the xfce de holds a special place in my heart. On top of that I installed the i3wm so I have an option of wm's when I login. I didn't want the full i3 environment all the time, at least for now.

So when I am doing things like paying bills and stuff I have the xfce wm with the floating GUI's and multiple workspaces. It's my little playground if you will, for easy, uninvolved tasks and chores and fun! And when I am getting ready to read or do anything I feel I need to be “productive and focused” for, I login to my i3 wm and utilize that wonderful product. I love the simplicity and effectiveness this type of window manager brings for me. I can't tell you how often I used to try and fit windows on my screen so I could easily bounce between them. This does it all for me saving me time and allowing me to be incredibly efficient.

I have long thought that if I had a way of keeping notes that made sense to me, and I could somehow get them on a computer and be able to search them and catalog them and whatever else, that I could be a very good student. Left to a pen and paper, sadly, I'm disorganized and scattered with my thoughts and I can never find old notes that I know I have written down but can't remember where.

Setting all this up allows me to have what I have always considered to be an optimal learning environment for me. I have music, notes, journals, web browsers, text editors, and so much more all just a command away. So now I have spent nearly ¾ of a year getting to this point. I started determined to get something out of my computer that was failing me constantly, and now I am here. I finally have nearly every single tool I have thought would help me learn and organize. It's scary and exciting to know that really the only thing left to do is keep customizing my stuff because its fun, and learn. I have nothing left to do but learn. And that's whats next!!!

It's been nearly 2 weeks since I last wrote on here. There hasn't been much excitement until recently. I had the rare and exciting opportunity to head back to my parent's house which of course brought on questions of how to improve computer and cell phone performance. This was all well and good until I got the grand idea to set my parents up with a Linux distro. To make a long story short, I completely messed up their computer. Based on various discussions I had, a combination of a mistake on my part and their motherboard led to disastrous consequences. Failure to install Manjaro resulted in a complete lack of recognition of an operating system when I booted. Ill leave my trials to my own computers for the time being. I clearly have much to learn.

As I am too lazy to go back and read to see if I had mentioned it yet or not, I have been reading a fantastic book called “Code” by Charles Petzold. What a world-changing book this has been. I have always wanted to learn about low level computing and how it worked but that has always seemed like far more than I thought I would be able to comprehend. This book completely changes that now that I have a much better understanding. I would recommend anyone read the first 100 pages, and see if they aren't hooked.

So anyway, I figured I would try setting up a Conky as my first little attempt at getting my computer to do something I wanted. My desire is to still get even further down into the basics. I don't know why but the boot process fascinates me and that's kind of where I want to end up doing work. My two goals are to contribute to some fashion of UEFI improvement and have one accepted contribution to the Linux Kernel. We shall see where we get to but nevertheless, those are my goals.

Now that I write this to kind of track where I go and what I do, I should note that I am on twitter (where I have already found a great community to engage with), manjaro forums, and now (excitedly) in some chat servers. I have been mulling this for a while and I will admittedly tell you that I was not comfortable joining a chat server at first. After finding these rooms mentioned almost continuously, I finally asked a couple people I was comfortable enough asking, and was told by everyone they are a great resource. So I figured out how to get my login for freenode, the server I was told is most helpful, and joined in a couple rooms that offer help and guidance.

Now I literally have no excuse. I have an unlimited amount of resources which undoubtedly hold a piece to the puzzle I want to build in my quest to learn more about computers. I have no specific goal in mind, other than the two I mentioned, but those can be obtained over countless paths made available by open source. And for now, I will continue to work on my conky. Hopefully I can figure out how to get this thing to transfer from my xfce desktop over to my i3-wm. So far it's been challenging but fun to see the progress and results. I also will be focusing on some bash scripting. I think that will be a fun way to learn some more as well. Until next time!

I feel like I need to clarify a few things so I don't start coming across as some snooty open-source, anti-windows kinda-guy. Don't get me wrong, from now on I will probably always suggest Linux and open source to anyone who comes to me with a computer question, but I still recognize that Windows and Apple and any other proprietary type of Operating System is useful in many cases. I can't speak for the reliability of the Apple products, hardware or software, because it's always been a little out of my price range. And honestly, if it's not in my price range, then it's not for me.

Windows was all I knew until I was exposed to Linux through work, and boy was that an uncomfortable experience. My family uses nothing but these two major systems (aside from myself obviously) and they all seem perfectly happy with them. They also are all very casual users so I think it's understandable to see how they are comfortable and happy with that.

On that same note, I also see the discontent from them, even being simply casual users. My father does nothing but check his email and play solitaire and he still seems to have issues. That and the hardware they run on is aging rapidly; this combination is not optimal for laptops that run Windows. But I digress...

My main objective for this bit of writing was to make the point that I don't fall into the category of someone who thinks proprietary software is evil and should go away. I think it's evil for sure, haha, but it can stay and profit off of those who need nothing more than an OS and fresh looking GUI and are willing to pay for it. I would compare it an artist and a painting. To some people, all they want to do is look at it, and they will pay to do so. For others, they much prefer to get dirty and make their own painting exactly how they want it. And then it's theirs without an obligation to pay anyone. Hell, they can share it with their friends, they can add to the painting and all enjoy it. And that spreads and people are happy. What an Eden. Again I digress...

Moving along now. I have also been wanting to talk about my second love when beginning my journey down into the inner workings of a computer began, which was Virtual Machines. WOWWWWW did I think this was awesome!! To make it even more exciting, and I didn't realize it at the time, I didn't use VirtualBox to build it. That might seem like small potatoes to some but I have come to discover that building a machine on VirtualBox is nearly as simple as turning a basic laptop on. I think I used VMM and I had to follow instructions and create folders. It was fairly involved for a newbie just messing around.

When I got it running I thought it was the coolest thing ever that a computer was running on my computer. To really add some irony to it, I read about a modification you could make to Xubuntu that would make it look exactly like Windows 95! I set it all up, modified the graphical memory so I could make the resolution match my actual computer, and went full screen to take a little step back in time.

I was smitten with this program, and then when continued reading brought constant reference to VirtualBox, I finally downloaded it and was mind-blown at how easy it made things. I was downloading ISO's as fast as I could find them and running them on VMs. I had grandeur plans of building mini networks on my laptop but I quickly realized that wouldn't work so well with the setup I had. I will still entertain a little project like this in the future to learn about networking. For now I am using Virtual Machines to test things out before I do them on my actual computer.

Until next time, Ill be reading Code by Charles Petzold. I HIGHLY recommend this book if you are interested in computer language and the very very basics of computing and how they still apply today. It has dramatically evolved my understanding in several areas. I will also be contributing to the Manjaro forums where I feel I can offer something.