GithubHelp home page GithubHelp logo

omakub's Introduction

Omakub

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.

Watch the introduction video and read more at omakub.org.

Contributing to the documentation

Please help us improve Omakub's documentation on the basecamp/omakub-site repository.

License

Omakub is released under the MIT License.

omakub's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omakub's Issues

Separate wallpapers out of repo

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.

Warn on setup that Omakub is for a FRESH 24.04 setup

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.

Better description of the software included

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

  • Whatsapp
  • VSCode
  • Alacritty
  • ...

Maybe even with a link to their respective home sites.

Common aliases

I think including a couple more commonly used aliases would be great.

For example:

  • gco for git checkout
  • lzd for lazydocker

Please comment with other suggestions.

Zsh/fish? Additional tool suggestions

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.

bash: hash: hashing disabled

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.

ls command does not work

in /home/user/ list command does not work. It only works after giving alias to /usr/bin/ where ls command is installed.
image

Ensure compatibility with Pop! OS

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?

Open terminal with Super+Enter like in i3/Sway

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'

Advice on adding C# and .NET Support (NeoVim)

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.

Highlighted Text not visible in Zellij

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.

organisation: add versioning system

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.

Document weird caps locks behaviour if it was previously assigned as CTRL

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.

Consider adding Shellcheck to the project

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.

Consider adding support for other distributions

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.

Make neovim background transparent

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.

Replace Snap with Flatpak?

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.

Consider converting this project to an ansible playbook

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.

problem related to zellij when logging in after a fresh install

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.

Add default setup for PHP

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?

How to get the latest version of ruby when installing it

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

Add menu restrictions / installation options

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 ---------
[ ]....

Feature suggestion: Allow Podman as an alternate to Docker.

https://github.com/containers/podman

Perhaps Distrobox too:

https://github.com/89luca89/distrobox

  • Will silently utilize Docker or Podman that's already installed.
  • Deliberately shares home folder of (in this case Ubuntu) host with guest OS (which could be Redhat, etc)
  • Luca needs to be cloned and the community is asking for more than one person can provide

Add omakub uninstall

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.

mise script is run too early, fails the Ruby build

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.

Dotfile manager discussion

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?

Lazy download the fonts

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.

Add Steam as an optional install

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.

Congrats!

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!

Omakub for the fresh Debian 12

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

Neovim missing a plugin after install

Fresh install on a Framework 13 Intel.
When launching neovim I seem to be missing a lazy plugin. Tried reinstalling the app-neovim.sh but it did not fix it.

image

Will omakub work on WSL2 on Windows?

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?

Convert Gnome extension installs from gext to git clone

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.

Omakub working with other languages

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.

Sync theme with Chrome theme extension

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.