Just wanted to share my experience moving to Linux from MacOS. Very satisfying, but of course not at first. I think my patience has improved a lot too lol.

I started out trying live bootables on my 2012 MBA. 4GB RAM, 60GB HDD. Not a beast really, but it is my only computer. I obviously couldn’t risk ending up without a working OS, so the only option was dual boot from an external drive. Bought an SSD connected via USB and started trying to install distros. Initially Fedora Workstation. Was a mess. Slow, wifi was not working well, odd crashes etc… Decided to start over with something lighter, but all other installers crashed halfway through. I kid you not I shot my back again bent over my small laptop i without working peripherals trying to install different distros. My doctor was not happy when I came back and told her I fucked up my back again because of my posture lol. Apparently, a shitty USB leads to crashes on most installers. I knew Anaconda worked tho, so I went back to a lighter DE with Fedora, XFCE. Set up an install on the SSD with a shared partition I could access from both MacOS and fedora. No big permission issues yet.

Then fixing network drivers. There is a lot of info about what chip needs what driver, a lot of which is incorrect apparently, because my chip which was supposed to work with bcma needed broadcom-wl. The joy when I remembered USB tethering was a thing… For a laptop with no ethernet plug this was a godsend. Got the drivers, got wifi.

And since then, many “issues” I encountered where simply things that generally happened behind the scenes on MacOS I didn’t even know where happening. Learning about these things has been very gratifying, and gives a lot of respect for a polished OS that just works like magic. Eventually, an issue on MacOS I could not solve due to it being a walled garden made me switch to Linux as a daily driver, and once I got over CMD and CTRL being swapped it sped up my workflows and runs better overall. More tweaking tho of course.

There are odd quirks but I found fun solutions for some, and began planning and learning to remedy others. Mostly, everything is working really well. I am having a lot of fun!

My tip for anyone struggling with getting started with linux, set up a log function so you can easily log any relevant changes you make, and have it accessible from somewhere else (like a shared partition or external drive for example). This way you know what you have done and can use that to fix whatever you fuck up. Also, make a knowledge base with the sources you find useful. I have a small kb in UpNote now so I can look up how some things were done instead of having to search and find the right guides over and over.

    • jamie_oliver@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      8 hours ago

      It is not as cryptic as it sounded I just explained it badly.

      Log everything you do in human readable text, because realistically as a beginner going through machine generated logs is not very fun, and .bash_history will be filled with stuff that isn’t relevant always.

      It is just a bash script that logs a message with the current date to a file I can access from MacOS as well (on the shared partition) so that I can see what I did if I mess up too bad…

      Edit:

      Here it is:

      # Log argument to changelog.txt with current date and time.
      
      function log()
      {
      	local changelog="/run/media/jamie/DUAL/changelog"
      	local text="$(cat $changelog)" 
      	if [ "$1" == "--view" ]; then
      		cat $changelog
      	else
      		printf "$text\n$(date +%D:%H:%M): $1\n" > $changelog
      	fi
      }
      

      Each line looks like this: 03/16/25:11:49: Running dnf upgrade

      I will probably add some stuff so I can get the last 5 lines or something if I want, but at the moment this is really fine.

      • wewbull@feddit.uk
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 hours ago

        Rather than reading the whole log just to add a line to it, you can use >> to append to the end of the file.

        function log()
        {
        	local changelog="/run/media/jamie/DUAL/changelog"
        	if [ "$1" == "--view" ]; then
        		cat $changelog
        	else
        		echo "$(date +%D:%H:%M): $1" >> $changelog
        	fi
        }
        
        • jamie_oliver@lemmy.worldOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          6 hours ago

          Nice I didn’t know that ^^ should probably learn at least the basic bash operators, I am just hacking together the different commands I happen to know at the moment really

          Edit: why echo instead of printf?

          This was causing a lot of issues with newlines, like when I fetched the log to view it my $ was right after the log entry so I switched it back. But it is probably useful in the future to use >> instead :)

          • wewbull@feddit.uk
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 hours ago

            Also. If you do want to add an option to show the last few lines of the log using tail instead of cat will do it.