-
Notifications
You must be signed in to change notification settings - Fork 6
/
index.html
132 lines (114 loc) · 17 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!doctype html>
<html lang="en">
<head>
<title>Omakub — An Omakase Developer Setup for Ubuntu 24.04+ by DHH</title>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, width=device-width">
<meta name="description" content="Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.">
<meta property="og:site_name" content="Omakub">
<meta property="og:title" content="Omakub">
<meta property="og:description" content="Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.">
<meta property="og:image" content="https://omakub.org/assets/images/opengraph.png">
<meta property="og:url" content="https://omakub.org">
<meta property="og:type" content="website">
<meta name="twitter:title" content="Omakub">
<meta name="twitter:description" content="Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.">
<meta name="twitter:image" content="https://omakub.org/assets/images/opengraph.png">
<meta name="twitter:image:alt" content="Omakub">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="/assets/images/favicon.png">
<link rel="stylesheet" type="text/css" href="/assets/css/styles.css">
<script src="/assets/js/script.js" type="module"></script>
<script defer data-domain="omakub.org" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<main class="main">
<header class="header">
<div class="header__headline">
<h1>Omakub</h1>
<p>An Omakase Developer Setup for Ubuntu 24.04+ by DHH</p>
</div>
<div class="header__command command command--copy">
<pre><code>wget -qO- https://omakub.org/install | bash</code></pre>
</div>
<div class="header__buttons">
<a class="button" href="https://github.com/basecamp/omakub" aria-label="See the code">
<svg fill="none" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m16 0c8.84 0 16 7.16 16 16-.0009 3.3524-1.053 6.6201-3.0083 9.3432-1.9553 2.7232-4.7154 4.7645-7.8917 5.8368-.8.16-1.1-.34-1.1-.76 0-.54.02-2.26.02-4.4 0-1.5-.5-2.46-1.08-2.96 3.56-.4 7.3-1.76 7.3-7.9 0-1.76-.62-3.18-1.64-4.3.16-.4.72-2.04-.16-4.24 0 0-1.34-.44-4.4 1.64-1.28-.36-2.64-.54-4-.54s-2.72.18-4 .54c-3.06-2.06-4.4-1.64-4.4-1.64-.88 2.2-.32 3.84-.16 4.24-1.02 1.12-1.64 2.56-1.64 4.3 0 6.12 3.72 7.5 7.28 7.9-.46.4-.88 1.1-1.02 2.14-.92.42-3.22 1.1-4.66-1.32-.3-.48-1.2-1.66-2.46-1.64-1.34.02-.54.76.02 1.06.68.38 1.46 1.8 1.64 2.26.32.9 1.36 2.62 5.38 1.88 0 1.34.02 2.6.02 2.98 0 .42-.3.9-1.1.76-3.18672-1.0607-5.95853-3.098-7.92222-5.8227-1.96369-2.7248-3.01954096-5.9987-3.0177778-9.3573 0-8.84 7.1599978-16 15.9999978-16z" fill="currentColor"/></svg>
<span>GitHub</span>
</a>
<a class="button" href="https://www.reddit.com/r/omakub/" aria-label="r/omakub subreddit">
<svg fill="none" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m11.0713 15.4338c-1.0463 0-1.9463 1.04-2.0088 2.395s.85375 1.9062 1.9013 1.9062c1.0475 0 1.8287-.4925 1.8912-1.8475s-.7375-2.4537-1.7837-2.4537z"/><path d="m22.9538 17.8288c-.0613-1.355-.9613-2.395-2.0088-2.395s-1.8462 1.0987-1.7837 2.4537c.0625 1.3563.845 1.8475 1.8912 1.8475 1.0463 0 1.9638-.5512 1.9013-1.9062z"/><path d="m19.945 21.37c.0763-.1825-.0487-.3862-.245-.4062-1.1512-.1163-2.3937-.18-3.6925-.18-1.2987 0-2.5425.0637-3.6925.18-.1962.02-.3212.2237-.245.4062.645 1.5388 2.1638 2.62 3.9375 2.62 1.7738 0 3.2938-1.0812 3.9375-2.62z"/><path clip-rule="evenodd" d="m0 16c0-8.83625 7.16375-16 16-16 8.8363 0 16 7.16375 16 16 0 8.8363-7.1637 16-16 16h-13.6825c-.855 0-1.28375-1.0338-.67875-1.6388l3.0475-3.0475c-2.895-2.895-4.68625-6.8949-4.68625-11.3137zm21.85-6.40248c-1.2612 0-2.3175-.87626-2.595-2.05251v.0025c-1.53.21625-2.71 1.53375-2.71 3.12129v.01c2.3688.0887 4.5338.7562 6.2488 1.8175.63-.485 1.4187-.7738 2.275-.7738 2.0637 0 3.7362 1.6725 3.7362 3.7363 0 1.4887-.8725 2.775-2.1337 3.375-.1175 4.3412-4.85 7.8337-10.6638 7.8337-5.8137 0-10.54-3.4887-10.66375-7.8262-1.27125-.5963-2.15125-1.8863-2.15125-3.3838 0-2.0637 1.6725-3.7362 3.73625-3.7362.86 0 1.6525.2912 2.28375.78 1.7-1.0538 3.8413-1.7213 6.1863-1.82v-.0138c0-2.21624 1.6837-4.04499 3.84-4.27624.25-1.21374 1.3237-2.12625 2.6112-2.12625 1.4725 0 2.6663 1.19376 2.6663 2.66625 0 1.4725-1.1938 2.66626-2.6663 2.66626z" fill-rule="evenodd"/></g></svg>
<span>Reddit</span>
</a>
<a class="button" href="https://manual.omakub.org" aria-label="Read the manual">
<svg fill="none" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m0 4.49992c0-.3978.158025-.77931.439312-1.0606s.662798-.43931 1.060598-.43931h8.50549c2.4538 0 4.6337 1.17992 5.9996 3.00181.6982-.9334 1.6047-1.69085 2.6474-2.212 1.0426-.52115 2.1926-.7916 3.3582-.78981h8.4895c.3978 0 .7793.15802 1.0606.43931s.4393.6628.4393 1.0606v20.99868c0 .3978-.158.7793-.4393 1.0606s-.6628.4393-1.0606.4393h-9.0134c-.591 0-1.1761.1164-1.722.3425-.546.2261-1.042.5576-1.4598.9754l-1.244 1.2419c-.2812.2809-.6624.4387-1.0599.4387s-.7787-.1578-1.0599-.4387l-1.244-1.2419c-.4178-.4178-.9138-.7493-1.4598-.9754-.5459-.2261-1.131-.3425-1.722-.3425h-9.01539c-.3978 0-.779311-.158-1.060598-.4393s-.439312-.6628-.439312-1.0606zm14.5011 20.64668.008-10.1453-.004-4.5058c-.0011-1.19267-.4756-2.33616-1.3194-3.17916-.8437-.84299-1.9876-1.31652-3.1803-1.31652h-7.00559v17.99888h7.51349c1.4108-.0001 2.793.3978 3.9878 1.1479zm3.0078-14.6471-.008 14.6431c1.1942-.7477 2.5748-1.1442 3.9838-1.1439h7.5135v-17.99888h-6.9896c-1.1934 0-2.3379.47408-3.1818 1.31794-.8438.84386-1.3179 1.98838-1.3179 3.18174z" fill="currentColor"/></svg>
<span>Manual</span>
</a>
</div>
</header>
<div class="video">
<video data-event="Omakub Setup" poster="https://d2biiyjlsh52uh.cloudfront.net/omakub/omakub.webp" src="https://d2biiyjlsh52uh.cloudfront.net/omakub/omakub.mp4" preload="metadata" crossorigin playsinline>
<track src="https://d2biiyjlsh52uh.cloudfront.net/omakub/omakub-en.vtt" kind="captions" label="English" srclang="en" default>
</video>
<button aria-label="Omakub Setup"></button>
</div>
<article class="article">
<p>Turn a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command. That’s the one-line pitch for Omakub. No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omakub is an opinionated take on what Linux can be at its best.</p>
<p>Omakub includes a curated set of applications and tools that one might discover through hours of watching YouTube, reading blogs, or just stumbling around Linux internet. All so someone coming straight from a platform like Windows or the Mac can immediately start enjoying a ready-made system, without having to do any configuration and curation legwork at all.</p>
<p>This isn’t a project for someone already versed in the intricacies of nixOS or relishing a fresh install of Arch. It’s using vanilla Ubuntu because that’s one of the most widely adopted Linux distributions, and one that is even a pre-install option from many computer vendors. But while Ubuntu has a great package manager in apt, many of the tools that developers want either haven’t been packaged, need more recent versions than what has been frozen in the LTS, or need actions post-install necessary for the best operation. Omakub includes all those scripts needed.</p>
<p>Package management is only half the battle of getting a great development experience going on Linux, though. The other half lies in the dotfiles that control the configuration. Linux gets great power from how customizable it is, but that also presents a paradox of choice and a tall learning curve. Having good, curated defaults that integrate all the many tools in a coherent feel and look can help more developers acquire a taste for Linux, which they may then later inspire a fully bespoke setup (or not!).</p>
<p>Nothing in Omakub provides solutions to problems you couldn’t also solve a million other ways. The main benefit is in <em>The Omakase Spirit</em>. The idea that an entire setup experience can benefit from being tailored upfront by someone with strong opinions about what works and looks good together. This doesn’t make the choices necessarily better than other choices. Linux has inspired a million options for a million tastes. That’s great and worthy of celebration. But there’s a large constituency of developers who are more than willing to trade ultimate bespoke customization for a cohesive package of goods, at least until they understand what all the options are and have fully bought into making the switch to Linux.</p>
<p>Omakub is for all these future Linux users.</p>
<hr>
<h2 id="whats-on-the-menu"><a href="#whats-on-the-menu">What’s on the menu</a></h2>
<p>Omakub contains a mix of open source and commercial software. This isn’t meant as a Free Software Only compilation, but as a mixtape for working web developers who might begrudge Google, but still want to use the same Chrome browser that the majority of regular web users do. So you’ll find that browser as the default (Firefox is still there too), Spotify is installed by default, as is Zoom, and even 1Password. Don’t worry, you can just remove (or ignore) anything you don’t need or want.</p>
<p>But the heart of the pre-configuration lies in the terminal, <a href="https://alacritty.org/">Alacritty</a>, which runs <a href="https://zellij.dev/">Zellij</a> to provide multiple panes/sessions. It’s still bash underneath, but one configured with a host of great file system tools, like eza, fzf, rg, zoxide, and bg. Don’t worry if you don’t know what any of those things are! Watch the introduction video, and you’ll see it all in action.</p>
<p>Then comes the editor. As much as I love <a href="https://neovim.io/">Neovim</a> now, it’s not for everyone, so by default Omakub comes with both Neovim (configured via <a href="https://www.lazyvim.org/">lazyvim</a>) and Microsoft’s VSCode. There are plenty of other choices, but these two are the ones that have been integrated into the unified theme picking (we’ll get to that in a moment).</p>
<p>The overall UI of Ubuntu is of course Gnome, but it’s been tweaked substantially to cater to a keyboard-first and window-tiling workflow. You shouldn’t be moving windows around with a mouse like a savage when using this setup! Use the six default workspaces for apps (hotkeys: <code>Super+1/2/3/…</code>), preferably full-screen ones on laptop displays (hotkey: <code>F11</code>), or tiled neatly using Tactile (hotkey: <code>Super+T</code>). Speed of motion is also why all the transition animations have been nerfed. And start any app in the dock (hotkey: <code>Super</code>) based on it’s position (hotkey: <code>Alt+1/2/3/4</code>). So browser is just <code>Alt+1</code>, Terminal <code>Alt+2</code>, etc.</p>
<p>Additionally, <a href="https://ulauncher.io/">Ulauncher</a> provides an app launcher ala Raycast, which you trigger with <code>Super+Space</code>. And you can quickly enter emojis with the compose key (which is mapped to Caps Lock) m and then a single letter representing the emoji. Run <code>omakub</code>, pick hotkeys, and there you can see it all.</p>
<h2 id="whats-the-dress-code"><a href="#whats-the-dress-code">What’s the dress code</a></h2>
<p>By default, Omakub ships with a <em>Tokyo Night</em> theme that looks ace with everything. But after installation, you can run the <code>omakub</code> command, select “Theme”, and pick from one of the other handful of curated and fully integrated themes. Picking a new theme will set colors for the terminal (Alacritty + Zellij) and the editor (both VSCode and Neovim), as well as set a matching background image and Gnome UI accent color. It’s pretty sweet!</p>
<p>The font is Microsoft’s beautiful <em>Cascadia Mono</em>, patched by <a href="https://www.nerdfonts.com/">Nerd Fonts</a>. But also here there’s a curated selection of alternatives. Run <code>omakub</code>, select “Font”, and pick one of the options. It’ll be set in terminal and editor automatically as well.</p>
<p>A handful of Gnome Extensions provide some additional sizzle with blurring of the shell, hiding desktop icons (so you can enjoy those background images!), and a handful of other tweaks. Run the Gnome Extensions Manager (try <code>Super+Space</code> extensions to open it with Ulauncher).</p>
<h2 id="what-else"><a href="#what-else">What else</a></h2>
<p>Omakub also installs…</p>
<ul>
<li>WhatsApp + Signal for messaging.</li>
<li><a href="https://xournalpp.github.io/">Xournal++</a> for filling out and signing PDF forms.</li>
<li><a href="https://flameshot.org/">Flameshot</a> for more powerful screenshotting (using the <code>Ctrl+Print Screen</code> hotkey).</li>
<li>VLC for playing videos.</li>
<li><a href="https://www.pinta-project.com/">Pinta</a> for quick image editing.</li>
<li>The gh command for GitHub’s CLI.</li>
<li>Docker, with preconfigured containers for MySQL + Redis, and gives you the super cool TUI lazydocker to start/stop them.</li>
<li><a href="https://mise.jdx.dev/">mise</a> to manage Ruby and Node.js versions, which are both installed by default, as well as Python/Go/Java/etc.</li>
<li>A fix for the <a href="https://frame.work/">Framework</a> 13’s first generation display so fonts look proportional.</li>
</ul>
<h2 id="installing-omakub"><a href="#installing-omakub">Installing Omakub</a></h2>
<p>You need three things to install Omakub:</p>
<ul>
<li>A computer. (I recommend the Framework 13 7640U/32GB/1TB from <a href="https://frame.work/">Framework</a>. Amazing laptop at a great price!)</li>
<li>A USB thumb drive with 32GB+ to hold the Ubuntu installer.</li>
<li>Ubuntu 24.04 (or 24.10). See <a href="https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview">the instructions</a> on how to install.</li>
</ul>
<p>Then, with your fresh Ubuntu installation done, set your screen resolution to 200% (for those smooth looking fonts!), open the terminal with <code>Ctrl+Alt+T</code> and enter:</p>
<div class="command command--copy">
<pre><code>wget -qO- https://omakub.org/install | bash</code></pre>
</div>
<p>This will start the installation process. It’s almost entirely automated. You just need to approve four Gnome Extension confirmations towards the end of it, and that’s it. Then, when it’s done, you approve to be logged out so all the settings can take effect. You log back in, and voila, your ready-to-rumble Omakub machine will look great with those cool <em>Tokyo Night</em> vibes.</p>
<h2 id="origin-and-context"><a href="#origin-and-context">Origin and context</a></h2>
<p>Omakub was started by me, <a href="https://dhh.dk">David Heinemeier Hansson</a>, to streamline my own Linux box bootstrapping, as well as to <a href="https://world.hey.com/dhh/linux-as-the-new-developer-default-at-37signals-ef0823b7">help our technical employees at 37signals switch to Linux</a>. That’s very much a specific context where Ruby on Rails, web development tooling, and commercial services all intermingle. There’s ample room to broaden that context to provide the same benefits to many other web developer communities (many of which are also dominated by a Mac bias). But that expansion will be carefully managed to stay with <em>The Omakase Spirit</em>. Rather install a few more tools than litter the project with endless configuration points. In the end, every tool preconfigured can be postconfigured in a different direction. If you're curious for more thoughts on the origin, checkout the <a href="https://www.youtube.com/watch?v=odSJr7HZMEQ">For The Love of Linux REWORK podcast</a>.</p>
<h2 id="acknowledgements"><a href="#acknowledgements">Acknowledgements</a></h2>
<p>Default <em>Tokyo Night</em> and <em>Rose Pine</em> desktop backgrounds were designed by <a href="https://freepik.com">freepik</a>.</p>
</article>
<footer class="footer">
<p>Brought to you by the makers of:</p>
<div>
<a href="https://basecamp.com"><img src="/assets/images/logo-basecamp.svg" width="145" height="32" alt="Basecamp"></a>
<a href="https://hey.com"><img src="/assets/images/logo-hey.svg" width="123" height="57" alt="HEY"></a>
<a href="https://once.com"><img src="/assets/images/logo-once.svg" width="72" height="72" alt="ONCE"></a>
</div>
<p>© 2024 <a href="https://37signals.com">37signals</a></p>
</footer>
</main>
</body>
</html>