basecamp / omakub Goto Github PK
View Code? Open in Web Editor NEWOpinionated Ubuntu Setup
Home Page: https://omakub.org
Opinionated Ubuntu Setup
Home Page: https://omakub.org
The neovim install script adds the neovim stable PPA, but the latest release in the PPA is 0.7.2, which is incompatible with LazyVim (minimum version 0.9.0).
Ubuntu 24.04 has a newer neovim package (0.9.5) and apt install neovim
will install the newer version, so the PPA is unnecessary.
Great project. loved the Omakasse theme.
In the installation bash script or as env vars injection have a way to skip stuff like a menu, you know I'm allergic to Whatsapp XD
------------OS-----------
[ ] Flame
[ ] ......
---------- Apps ---------
[ ] Whatsapp
[ ] ....
--------- Shell ---------
[ ]....
The install/mise.sh
script runs twice - on the first run it seems to run way too early, before install/libraries.sh
is run, and as a result of this ruby build fails
Setting up mise (2024.6.2) ...
Processing triggers for man-db (2.12.0-4build2) ...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14.5M 100 14.5M 0 0 9004k 0 0:00:01 0:00:01 --:--:-- 9003k
BUILD FAILED (Ubuntu 24.04 on x86_64 using ruby-build 20240530.1)
You can inspect the build directory at /tmp/ruby-build.20240608083447.31245.dSuaXW
See the full build log at /tmp/ruby-build.20240608083447.31245.log
mise ~/.cache/mise/ruby/ruby-build/bin/ruby-build failed
==> Downloading openssl-3.0.13.tar.gz...
-> curl -q -fL -o openssl-3.0.13.tar.gz https://dqw8nmjcqpjn7.cloudfront.net/88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14.5M 100 14.5M 0 0 9004k 0 0:00:01 0:00:01 --:--:-- 9003k
==> Installing openssl-3.0.13...
-> ./config "--prefix=$HOME/.local/share/mise/installs/ruby/3.3.2/openssl" "--openssldir=$HOME/.local/share/mise/installs/ruby/3.3.2/openssl/ssl" zlib-dynamic no-ssl3 shared
BUILD FAILED (Ubuntu 24.04 on x86_64 using ruby-build 20240530.1)
You can inspect the build directory at /tmp/ruby-build.20240608083447.31245.dSuaXW
See the full build log at /tmp/ruby-build.20240608083447.31245.log
mise ~/.cache/mise/ruby/ruby-build/bin/ruby-build exited with non-zero status: exit code 1
mise Run with --verbose or MISE_VERBOSE=1 for more information
mise [email protected] โ installed
Contents of /tmp/ruby-build.20240608083447.31245.log
cd /tmp/ruby-build.20240608083447.31245.dSuaXW
==> Downloading openssl-3.0.13.tar.gz...
-> curl -q -fL -o openssl-3.0.13.tar.gz https://dqw8nmjcqpjn7.cloudfront.net/88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
-> tar xzf openssl-3.0.13.tar.gz
cd /tmp/ruby-build.20240608083447.31245.dSuaXW/openssl-3.0.13
==> Installing openssl-3.0.13...
-> ./config "--prefix=$HOME/.local/share/mise/installs/ruby/3.3.2/openssl" "--openssldir=$HOME/.local/share/mise/installs/ruby/3.3.2/openssl/ssl" zlib-dynamic no-ssl3 shared
Failure! build file wasn't produced.
Please read INSTALL.md and associated NOTES-* files. You may also have to
look over your available compiler tool chain or change your configuration.
ERROR!
No C compiler found, please specify one with the environment variable CC,
or configure with an explicit configuration target.
external command failed with status 2
The second time it runs after the dependencies are installed, so ruby installs fine.
as noted in the setup script for ruby we need to manually get the latest version, and I find that frankly a bit pragmatic. Therefore I wrote in my pull request about adding arm64 support also a way to get the latest stable ruby version
The default should be a no-configuration setup that includes a broad selection of what most people need.
But you should certainly be able to take things out of the box that you don't want.
Let's add a serious of uninstall scripts, so you can run "omakub uninstall" and pick any of the pieces you'd like to see removed.
Chrome has some very nice theme extensions that really match the look we're going for. It would be great if we could fix or build a matching theme for chrome for our 7 default setups. Here's the Nord theme, for example: https://chromewebstore.google.com/detail/nord-theme/dhlnjfhjjbminbjbegeiijdakdkamjoi?utm_source=ext_app_menu
Chrome stores its preferencs in ~/.config/google-chrome/Default/Preferences. It's a json file. I think we could probably use jq to substitute in the theme we need.
In i3 and Sway you can start the terminal with Super+Enter: https://i3wm.org/docs/refcard
Would it be a good idea to add this shortcut in Omakub? I like that shortcut.
Something like this:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ name 'alacritty'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ command 'alacritty'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/ binding '<Super>Return'
It would be nice to have some customization for installed applications. For example install Firefox instead of Chrome.
Maybe we can have a list of installed apps in text file loaded from external storage or git repository.
Our default Alacritty configuration has an ever-so-slight translucency that's really nice without harming readability. It's set to 97% in the config. But neovim isn't translucent in this setup. We need to change something in the theme options, I believe, for it to use the terminal translucency. Let's find and add that.
They're too heavy. We should fetch them live from a separate repo so they don't have to live in the git history and weigh things down.
when re-running omakub install
rbenv ruby install seems to freeze when answered with a lowercase n
fatal: destination path '/home/user/.rbenv/plugins/ruby-build' already exists and is not an empty directory.
rbenv: /home/user/.rbenv/versions/3.3.1 already exists
continue with installation? (y/N) n
I don't really have any strong input here, but I tought to perhaps leave this issue here to discuss it, and let DHH propose a solution we can all work on.
This is only an issue if you previously mapped caps lock to ctrl. If that is the case then the ctrl behaviour conflicts with the emoji behaviour set in https://github.com/basecamp/omakub/blob/master/install/set-emojis.sh.
My solution was to just reset whatever was done in that file.
It's unclear to me where or even whether the maintainers would want to document this.
I'm opening this issue in case someone else has the same problem on install and is driven mad at 3am by their ctrl key suddenly acting in an incredibly bizzare way.
I think including a couple more commonly used aliases would be great.
For example:
Please comment with other suggestions.
Hi. How'd you feel about getting rid of Snap in favour of Flatpak? I can send a PR.
I think the majority of experienced Linux users would agree that Snap is one of those things that makes Ubuntu worse in comparison to other distros.
Flatpak also has a package for the gnome store ("Ubuntu Software Center"), so there would be compromises in terms of user experience, IMO.
I love the idea of omakub and I'm about to refresh an ubuntu 20.04 laptop and a couple of old macmini's that no longer get updates to the latest Ubuntu LTS and will of course install omakub!
As a .net developer who codes on macOS and Ubuntu I would like to try and add C# support via the csharp language server / omnisharp into omakub's neovim setup.
Does anyone have any guidelines on how best I would do that and I would happily try and add a PR to merge it in even if it was an optional setting.
I've seen at least one person mention that Omakub screwed something up on their main machine. That's no good. Need to make clear when the installer runs that this is for a fresh system, you should have a backup, and so far we've only verified compatibility with 24.04.
I reviewed the PRs and several comments were around code style. One way to solve this once and for all is to have an automated Github Action (as an example) that uses https://github.com/koalaman/shellcheck so all contributions respect the rules imposed by Shellcheck.
I also believe it'd be a great addition to omakub
itself, but that's likely a different discussion altogether.
We use 4 Gnome extensions, and we install them using gext. That causes the installer to pause for user input to confirm these installations. That's a pain. We should just clone the extensions straight into the Gnome directory and then turn them on. Then the installer can finish without any intervention from the user.
One unified solution to it all.
Thank you for omakub.
This is a fresh install and I note this error
error found when loading .profile
thread main panicked at zellij-client/src/os_input _output.rs:29.43
could not get terminal attribute: ENOTTY
as a result the session will not be configured correctly. You should fix the problem as soon as feasible.
I propose to add a versioning system of any kind :) Currently I am having to read through lots of issues and PRs to see what is changed or updated. With a nice changelog every now and then this could be less time intense for anyone interested in Omakub. It's as easy as just tagging a version every now and then.
This project is used to install and configure software after a fresh Ubuntu installation, and as such is a perfect project for using Ansible. Ansible allows you to declaratively write what you want to be configured and installed in simple yaml files using various inbuilt Ansible modules. This approach is better because Ansible modules allow for better scalability, idempotency and error handling.
Consider taking a look at this repo for inspiration https://github.com/TerrorSquad/ansible-post-installation
It is also opinionated and it's meant to be used right after Ubuntu installation. It will install a bunch of software for development, terminals such as Alacritty and Terminator (with custom config), nvim, docker, go, cargo, node (via volta package manager). There is also Zsh with a very fast and robust config. Packages are mostly installed from official Ubuntu repositories, but some of them are installed via Homebrew as it provides newer versions to certain packages.
Right now we download all the four fonts up front. Would be better to delay downloading the other three but the default until the user chooses one of them.
Is there a reason why the choice went for plain bash when there is zsh/fish out there which open up so much more possibilities for configuration with their already existing config frameworks (e.g. oh-my-zsh)?
Unrelated:
I would like to suggest also autojump.sh and thefuck as default tools to be installed.
Unique style not already captured in the others: https://github.com/rebelot/kanagawa.nvim
It looks really nice and I like most of the choices made.
I've been using WSL2 + tmux + vim for ages and would like to try to switch to omakub to get going quickly. I know that WSL made changes over the past two years in terms of integrating X and gui related things but I haven't kept up with the newsflow on that.
So basically my question is, if I run the setup script on a fresh install of Ubuntu 24.04 on WSL2, would it work?
I know this isn't the space for this, but I just wanted to say w0w - congrats, and thanks for OMAKUB! I've hopped back and forth from TWMs to Plasma 6 to.... all of the above and am very impressed with your implementation in OMAKUB...
The keybinds are very simply to learn and understand, much less overwhelming than a wild and crazy Hyprland full implementation - you inspire me to create tools for Nix, that could be installed on a wider variety of hardware/software or for other flavors of Linux... I'm wowwed by the simplicity and beauty of OMAKUB - I'll be creating a Youtube video covering it... great work, DHH.
Maybe I need to take another look at ROR!
Would be great to have a gnome extension for quickly switching between themes. Maybe fonts too. Just a dropdown menu from a panel icon to trigger the omakub script for the changes.
A fresh Ubuntu install in Spanish instead of English changes the names of the directories (e.g. Downloads - > Descargas) so the apps that get downloaded from .deb packages don't recognize Downloads directories in other languages. Therefore they don't get installed.
When working with Zellij and using highlight for copying or other purposes, the highlighted section isn't visible. I think since we are "darking" the highlighted portion with same theme color but a darker gradient, it isn't visible. Maybe need to use compliment colors if there is a config for this like white over grey etc.
Pop! is the default on System76. Would be great if the Omakub setup could produce the same environment there as it does on vanilla Ubuntu. What do we need to change to get there?
I am a former Ubuntu user and switched to Debian two years ago and absolutely happy with its minimalistic approach and well tested apps.
I know that Ubuntu is based on Debian. Will omakub run on fresh Debian 12? Or the regular debian tested repos are not fresh enought for the apps versions needed for omakub?
My feeling that if we want to help users create the best and beautifull Linux env for web develompent using Debian instead of Ubuntu probably will deliver much better stability and faster speed
I think there's an adsf plugin that can be used to make this happen. Just need someone who actually knows elixir to test it out that everything works as it should.
This is just gorgeous: https://www.nordtheme.com/
Hello, first of all loving the setup! Installed it on my laptop for testing for now.
Problem: Every time I open a terminal I get "bash: hash: hashing disabled" error.
The only extra I installed on top of the build is NVM (Node Version Manager) and it causes the same error on boot.
I want to enable hashing to fix this but Googling gave me no solutions.
Thank you for any assistance that you could provide me.
I have been thinking about setting up a dotfile manager like chezmoi, yadm or similar.
Maybe omakub can provide a opinionated way of managing dotfiles so its easier to mantain configs across multiple machines?
It would be nice to have a list with all the installed programs included. Right now you have to read through the README that, while more comprehensive, it is harder to browse through. Something simple like
Maybe even with a link to their respective home sites.
Would be nice to see integration with Kitty terminal.
Hi, I can use omakub in arch Linux?
I'm not sure if you have a command to delete this configuration.
I'm going to have to fomate the fucking computer.
Omakub should be for developers from a large number of communities, and it should work out of the box for them. What's needed for an out-of-the-box experience for PHP, say, someone developing Laravel?
https://github.com/containers/podman
Perhaps Distrobox too:
https://github.com/89luca89/distrobox
Linux does gaming! And Steam is the primary platform for distributing those games. Let's get an optional installer setup that does the whole thing. There's a .deb package, but that just kicks off the "real installation". If the optional package is installed, Steam should get added to the dock.
Seems to me that support for other distros could be added to Omakub simply by adding distro-specific "install"-subfolders and having the main setup script do a cat /etc/*-release
to determine which subfolder to run the install-scripts from.
There would be a lot of duplication but it would be easy to understand.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.