Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Omakub – Opinionated Ubuntu Setup (github.com/basecamp)
94 points by saikatsg on June 10, 2024 | hide | past | favorite | 87 comments


I did a new Ubuntu 24 install tonight and decided to try this out. I like it a lot for the most part as a place to get started but still need to make some tweaks.

I had not used Tactile for tiling before but I like it.

Alacrity is new to me and I don’t really get the preference for it, but no big deal.

Zellij is interesting and I feel like I just need a day to get use to it.

Mise is an interesting switch from asdf and direnv, but it seems really polished.

I like what I see enough that I’m going to stick with it for a month or so to see how it grows on me. I’ve spent enough time tweaking Linux installs in the past that sensible defaults that I don’t have to maintain have some appeal.


Alacritty is all about being the fastest CLI, with that in mind you might appreciate it more. You'll mostly notice it while typing and receiving long length output on the CLI.


With this setup it doesn’t have a window frame so you can’t drag it around with your mouse. You have to use Tactile to position the window, but because of that you can’t easily move it to another monitor.

Probably my biggest default complaint.


FYI, if you hold down Super (win key) and left click-drag, you can move the window around on the screen, and middle click-drag can be used to resize.


+1 for Alacritty! I've been using it 4 months now and am quite happy with it. I made the switch after I found my default Pop!_OS terminal had some noticeable latency issues.


Ubuntu out of the box is not a great experience. I eventually switched to KUbuntu and finally to Arch as I got more comfortable.

It seems to be common to go through the experience when you "switch" to pick something less jarring and then migrate further towards the Linux spectrum.

This project seems to be tailored to people who are just making the switch


I don't find that to be the case. I use stock Ubuntu with no changes, even the default terminal and window manager, and I've been using Linux since before 1.0

I don't care about tiling window managers or a different terminal or ssh sessions.


I have used Debian for over 15 years, and I just use xfce.

TBH it looks like Windows 98 (I put a bar at the bottom with a "start" menu, some quick launch icons, window buttons, clock and tray icons). But it was pretty good, and lets me work efficiently.


We are all different. Been using Linux for over 30 years and on a tricked out Hyprland setup on NixOS.


> We are all different.

As a Linux user since Slackware 1.1, this is why I love linux. Apple says Think Different, but it's all the same. Linux is what you want it to be.


> Apple says Think Different

Complete aside: I was wondering when Apple said this and apparently it has been over two decades (!)

https://en.m.wikipedia.org/wiki/Think_different


Same! And I’ve been using Linux since 1992! But I value variety.


> Ubuntu out of the box is not a great experience.

I personally went with Linux Mint, because it doesn't try to push snaps and honestly the Cinnamon desktop is lovely and gets out of the way, a bit like XFCE but in some ways more polished: https://www.linuxmint.com/

It's nice that I don't even need custom scripts, it's pretty good out of the box. Of course, it's not like default Ubuntu would be unusable or anything like that, either, just personal preference.

That said, contrary to popular opinion, I actually liked Ubuntu a lot, back when it had the Unity desktop, it felt better to me than GNOME, but maybe that's just me. I guess there are projects like https://ubuntuunity.org/ out there still, but using something that's not popular nowadays seems like it might lead to issues down the road.

For servers, Ubuntu LTS is fine as is.


On servers, why would one run Ubuntu LTS instead of just Debian?


Many programs that fall outside GPL licenses are not in Debian for good reasons.

Ubuntu is good for people that don't have time to custom build and debug out-of-repo packages. And in many cases the signed boot-loader/kernel gets around some UFEI bios that block end user configuration.

Debian is usually the cleaner option, but Ubuntu after heavy modding is more user friendly (i.e. official support for drivers/hardware is more practical.)

Cheers =)


LTS ;)


I first used Ubuntu about 10 years ago. Then I went on other distros and landed on arch.

Then I was sick of it breaking and having to customise everything and went back to Ubuntu. I don't bother anymore with the rest and it's great!


> Ubuntu out of the box is not a great experience.

Just as with every linux flavor, it depends. I've been on Ubuntu for close to 20 years, and I went from a very customized setup to mostly just the defaults. I have a simple setup script to install my favorite apps. Yeah, and mapping the CapsLock key. I always stick to LTS versions.


It is incredible how poor the caps lock experience is on Linux in 2024. What setup do you use for that?


Interception tools! https://gitlab.com/interception/linux/tools

With the official caps2esc plugin! https://gitlab.com/interception/linux/plugins/caps2esc

I use the stock caps2esc config; capsock by itself is Escape, but press with another key and it's control. Many other options are possible and writing your own plugin is not hard if nothing else suits. Interception-tools is amazing.

Interception-tools is also one of the most interestingly unix like tools out there, using pipes to break apart & pipeline it's tasks. Incredible power, but also kind of dauntint to really understand! Thankfully you can just copy paste the configs in & it works fine. But archwiki is a good write-up if you want to go deeper on this epic tool. https://wiki.archlinux.org/title/interception-tools

Setting up interception-tools as a systemd user service with a Nice=-10 is a good early lesson on improving your world with modern Linux tools. Highly highly highly recommend. I cannot work without.


Oh nothing major - i just map it to a Control Key.


I map mine to a compose key: https://en.wikipedia.org/wiki/Compose_key


There is a question of priorities here.

Ubuntu is the distro that most likely works out of the box and is the most compatible with any software. The rest are just preferences.

Maybe this project can help people explore new configurations. However, I've found that each tweak costs time with each installation, needs regular updates, and some elements are not compatible. It is possible to enjoy the flexibility of Linux without trying to be a Picasso of the desktop experience.

Also, I tried it in a box, it crashed.


>I eventually switched to KUbuntu and finally to Arch as I got more comfortable.

True, Arch with the CachyOS-repos is a great combo, or FreeBSD ;)

https://wiki.cachyos.org/cachyos_repositories/what_are_the_c...


Not sure what happened but it borked my install that was running fine. Booted up to blank screen, no keyboard response. Working thru ubuntu's recovery mode.


It's probably not meant to configure an already running/configured system, but to configure a system installed from scratch.. Since this is aimed at onboarding developers to Linux..



Ha, reminds me a bit of my own Shell Bling Ubuntu. [1]

The difference of course is I'm not trying to reskin Ubuntu itself, which is why the scripts don't install e.g. i3 or Sway -- rather, they're designed to make the shell experience itself more addictive to people who aren't already seasoned Unix hands.

[1]: https://github.com/hiAndrewQuinn/shell-bling-ubuntu


If this can help people switch to Linux it’s a good thing.


I did something like this UBlue instead. But now I have a Fedora Silverblue "spin" that's always up to date and setup exactly as I want.



Sorry, I have hidden this post now


I recently added ubuntu desktop to my gpu server, and I was shocked at how unusable the UI is out of the box. It was laggy on a modern Nvidia gpu, it wasn't very good looking. Someone really needs to create a better out of box experience


You may want to try Pop!_OS [1], it's based on Ubuntu but AFAIK includes NVIDIA's proprietary drivers out of the box, which is basically the "better out of the box experience" you're asking for.

That said, I think there are legal issues around licensing with doing such a thing, which is why most distros avoid including them in the first place.

1: https://pop.system76.com/


did you install the proprietary nvidia driver ? I think ubuntu makes you install it once logged in. Nvidia won't be decent without the proprietary driver in the near term.


I ran Ubuntu Mate on a Raspberry Pi 4 for over three years as my daily driver. Mostly programming, browsing (also Youtube) and image editing. I even did some light video editing on it. I ended up with Mate eventually, other options except Raspbian/Raspberry Pi OS didn't work fast enough.

P.S. Literally every desktop environment on Linux looks better than Windows, if you'd ask me.


Shocked? It's been this way since the very beginning. It's the byproduct of not having vertical integration anywhere in the stack


Someone pointed out to me that only 3 months ago, DHH had "committed to Windows" [1]. It's kind of funny seeing him completely change course again with so much conviction. I get the sense that he has a little too much time for bikeshedding.

[1] https://world.hey.com/dhh/committing-to-windows-2d6388fd


That’s not the full story, he saw that they were a monoculture and now Basecamp encourages people to use macOS, Linux and Windows. This already resulted in some fixes that they weren’t aware of because everyone was just using the latest Macs.


> he saw that they were a monoculture

That's some retconning. He felt slighted by Apple one too many times with App Store woes and decided to change his entire company to not be dependent on Apple products. But obviously that would seem a petty, and/or emotionally driven decision. So he made the narrative about running -to- something rather than running -from- something


It seems his philosophy is sticking it to Apple and Tim Cook. While Linux might be a decent experience, it doesn't appear to me that the Framework laptop experience with Linux is comparable to what you get from the M1+ Mac. Even Linus himself uses a MacBook to run Linux.


That took a while. In the rise of OS X, and popularity, people thought we were past the days of little website buttons with "This site best viewed in IE/Navigator", etc.

Along came a slew of Apple faithful, who had spent the last years vehemently complaining about how this was an anathema to the principles of the web, gleefully repeating the same things, this time it was just an unspoken or less spoken "Works on Safari on my Mac, ship it".

37signals was definitely one of those. So it's not a new thing.


Linux on Windows, to be precise.

> I've decided to make Windows my new primary abode. That's Windows with Linux running inside of it as a subsystem (WSL), mind you. I would never have contemplated a switch to Windows without being able to run Linux inside it.


Is it possible to fully remove Snap from Ubuntu 24.04 without breaking a bunch of things? That was my main reason for switching away.


Mine was them monetizing misery and security by withholding updates except for paid subscriptions.

And the choices they make: they often leap without looking or derisking.

I'll take QubesOS on the desktop, thanks, and then have a choice of flavor per app to isolate them similar to Kata Containers k8s server-side.


Are you happy with no gpu acceleration? Qubes is awesome but it is still lacking some serious usability features which everyone expects to be in a modern linux distro


Yeah, I don't play games on it. The mapping of hardware and network ports (in and out) is awkward and could have a better UX.


It's hard to imagine a decent web browsing experience these days without GPU acceleration. Sadly. I still wish the web were more like Gopher.


https://forum.qubes-os.org/t/seamless-gpu-passthrough-on-qub...

Nawh, let's not go back that far because then we lose yellow backgrounds, dithered blue sphere .GIFs, and 64pt fuchsia marquee blink tags.


>Mine was them monetizing misery and security by withholding updates except for paid subscriptions.

To be fair here, the subscription is free[1] for most home users and even some small businesses:

>Free, personal subscription for 5 machines for you or any business you own, or 50 machines for active Ubuntu Community members.

[1]: https://ubuntu.com/pro/subscribe


They changed the bargain. It's a hassle and seems like a perfect vehicle for metadata collection.


I also switched away from Ubuntu after 20 years because of snaps. Went with Debian and couldn't be happier. It's like Ubuntu without the nonsense.


Rather, Ubuntu is Debian with added nonsense


> by running a single command.

Security aside... What's the command? Sites like oh-my-zsh have it front and center. This is a git repo.


It's on the website:

    wget -qO- https://omakub.org/install | bash


This is awful for security.


I don't think security is the main problem tbh. Every time you trust a third party developer you're compromising your security a little. Add a third party deb repo? Just as bad wrt security!

But, these bash scripts are definitely terrible for maintenance. They do a bunch of changes to your system and you can't undo those changes easily.


Security is indeed a problem when running scripts straight from a download. The script may appear one way when viewed with a browser and a different way when downloaded again, based on a number of possible alterations that a malicious server is capable of.

You are right about scripts doing a bunch of changes to your system. Certainly, if you don't even save the script, you won't even know where to start!


Well you could download the script, review it, and only then run it?

Despite encountering your kind of attitude many times in the past, I don't get it at all. Maybe I'm missing something.

If you do trust the author of said thing, what's the problem?

If you don't trust the author, why would you even run their scripts?

No offense, but even if you do inspect all of the code, I doubt you'd be able to find all the potential backdoors and issues. If you trust the author of Omakub, they have the ability to screw your security anyway, I don't think there's a way of preventing that.


There are multiple levels of trust. Do I trust the author to not put exploits in my face? Do I trust them to administer their own server in a way that won't leave users open to hackers? Do I trust them to not put in some underhanded backdoor in a spot where they know I won't be looking?

Generally, piping random scripts into a shell is awful, even if you vaguely trust the author of the thing you think you're getting. There are multiple ways you can end up with unexpected evil code on your system that way, with or without the project itself being involved.


Yes. But how is this materially different from most other installers or program extensions running unreviewed arbitrary code that could change at any time for any reason.

I don’t really get why this is the straw that breaks the back for some people and suddenly puts them at high alert. Do you do a diff on the .xpi whenever a Firefox extension updates? Yeah we really should, but we don’t. At some point it’s too much overhead to deal with.

If you truly wish to review what this does, here’s the github: https://github.com/basecamp/omakub


Even if I reviewed the code, that would not be enough to be safe with that install procedure. The difference is that it is known that the server can detect the client being used and serve different content to different consumers. Nevermind trusting the author, or some previously reviewed code, you also have to trust the delivery system. There are also degrees of trust. I might trust someone's code that was laid in plain sight but I might not trust a binary or obfuscated thing allegedly containing the same code.


What operating system do you use? How do you set it up without trusting many third parties? What delivery system would you recommend?

Everyone can easily clone the Omakub repository to their own server, review it, and use it from there. Should that be the recommended installation method? How do you deal with updates?


The recommended installation method should be to download the script, check the hash of the thing you downloaded against the hash of what you thought you were getting, and then run it. Obviously if you don't trust the author, you should do more research until you reach a conclusion.

If you ask me, you should do vetting proportional to the amount of time you have and the risk involved in a compromise of your system. That may practically mean that you won't install much of anything except via the most well popular software channels. Even then, you may opt to compile the stuff. If you don't have enough skills or time to do this vetting, you should err on the side of caution.


How do you distribute the hashes?

Do you read all the source code you compile?


The hash can be on the web server. Ideally you would do something with cryptographic signatures, or at least get the hash a different way than the file itself. Obviously I don't have time to read all the code I compile but I don't run code that I can't even inspect reliably. It's like leaving your door unlocked, or something like that.

You might not realize but there are several ways you can be compromised. What if the web server was set up to serve some exploit when you download from a terminal (which is doable), or else you were intercepted by a man in the middle? Both of those exploits have been demonstrated and aren't even difficult to do. They also require no involvement from the author of the software. If it's downloading other stuff, each of those items also has the same concern.


> The hash can be on the web server.

Wait, wasn't the hash supposed to help when the web server is compromised?

Man in the middle is also a problem for the hash. I really don't see what this theatre is about...


It's not theater. You're right that the hash could be compromised if the server is compromised, but it is one thing besides the code that you can use to check the integrity of your download. It is right in your face and obvious, so it is less likely to be faked. As I said, the download can be compromised, and it makes the most sense for it to be compromised in a way that is not obvious. When there's a hash you can check that the thing you downloaded is in fact what it was advertised to be. The hash can also be obtained outside the target environment and checked separately for an extra measure of security. People publishing exploits don't know if you are auditing or not. When you make them commit to a specific version of the code, then they can't randomly inject garbage as easily.

I already explained how the code could end up not being what you thought it was. If a we server randomly serves exploits to 1% of requests, or intelligently detects non-interactive downloaders, you can get hacked that way. And if you don't even save the script, you can't even look at it if you have doubts.


my arch setup is dwm, st, dmenu, xorg. few tweaks to xmodmap and dwm to make shortcuts feel good.

https://github.com/nathants/arch-setup

next setup i want to figure out is working off customized archiso with all state in e2e cloud and/or local spinning rust.


Sounds like my Nix setup!


i have a years old todo to update my forks of dwm and st. kinda don’t care though, they are already perfect!


I tried it on a fresh install. It crashed during the run and left the system half-configured. Cannot recommend yet lol


Instead of a bash script, I think an ansible playbook would have been a better choice


Installing directly from deb packages instead of adding the repository? How about future updates?

No set -eox pipefail?


Since Ubuntu is a very opinionated distro to begin with, I find this marketing a hard miss.


If you think Ubuntu is opinionated, then you are more opinionated than Ubuntu for sure


Why use a free software OS if you don’t care about free software? MacOS or Windows probably make better workstations if you are using it to run surveillanceware like VS Code and Chrome.

Why fight the uphill battle with Ubuntu at that point?


Because the world is not black and white and not everyone thinks some telemetry data is “surveillanceware”.


If you're ok with telemetry, use Windows. They have plenty of it for you to be ok with...


As a developer, coding in the same environment where you’ll deploy has a lot of perks.

Plus, the docker experience on Linux is significantly better.


Chrome and chromium-based runtimes like Electron on Linux have been outperforming their Windows equivalents for almost a decade, in my experience. By a huge margin. I always assumed we had ChromeOS to thank for that.

I also massively disagree about Win/Mac making better workstations (though I haven't had to use Ubuntu for a very, very long time).


Not when it comes to GPU acceleration in the browsers. Specifically on Nvidia.


Yeah, but that's because of Nvidia, not Linux. Also the reason I got rid of my 3090 in favour of a 7900XT, and went all in on Ryzen mobile chipsets. Amdgpu on wayland is divine.


ubuntu is the gateway to arch, with pairs best with xorg, emacs, and firefox.

don’t forget to use a snitch. any app could start surveillance at any time for any reason.

i don’t ever let firefox talk to .mozilla..

https://github.com/nathants/mighty-snitch


I enjoy VS Code and Chrome, but I also enjoy a snappy desktop loaded with hotkeys and functionality


Wait until he finds out about the extreme bloat that is Ubuntu Desktop, with Snap and Flatpak to name just a few


Don't use Snap or Flatpak then? I don't understand the point of shaming someone for choosing a different Linux distro from you. The anti-Linux people are still pointing out wifi driver issues that were resolved 15 years ago. Here, we have a project from a historically very pro macOS developer helping onboard folks to a Linux distro, and that's still not good enough either because it's not the right distro.

I've been using a Linux desktop since 1998 and while other distros have their benefits, I choose to use Ubuntu Desktop for a whole host of reasons. This bloat is a non-issue (granted, I'm not running on a netbook). If I were to help someone switch to Linux, it'd definitely be either on Ubuntu Desktop or Linux Mint.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: