Giter VIP home page Giter VIP logo

rustux's Introduction

rustux

A thought experiment in creating a Rust-based Linux distro.

Note: this is UNSUPPORTED. It's just for fun :D

Picking the distro

For this experiment, I picked Arch linux as it felt like the easiest way to start with a known, well-supported base. You could also use some of the Linux-from-scratch style distros.

For the installation of Arch, I chose to only install the basic graphical system without installing any desktops. We'll pick our window manager later.

For this I chose: archlinux-2022.06.01-x86_64.iso

Then archinstall on boot. Then, I set the profile to the xorg profile. Made a user. Set up NetworkManager. Finish the install and reboot and we're in. Now to start installing our Rust tools.

Installing Rust

Install Rust via rustup If you chose Arch, you can also install paru (a Rust-based AUR tool). It will also install Rust for you.

You may want to install rust-analyzer to go with helix (below).

Install our first tools

Once Rust is installed, it's time to add some good commandline tools to help us do the rest of the setup. Arch doesn't come with vim by default. That's okay, we have helix.

You can also install ripgrep and fd-find from cargo here.

Install leftwm

Install leftwm, a Rust-based window manager Install leftwm-theme, so we can easily pick a theme

You may also want to install elogind if you have any issues getting leftwm to work.

Install alacritty

We need a terminal, and alacritty fits the bill.

You may also want to configure leftwm to run alacritty as your default terminal.

Startup X

Let's configure leftwm and get into a graphical environment.

With elogind, we can make our .xinitrc:

# .xinitrc
exec dbus-launch leftwm

Then startx and we're in.

Shell

Let's give ourselves a shell. nushell is great. You can install starship to go with it.

You may want to install some nerd fonts to get the most out of these.

let-env EDITOR = "helix" will let you set a default editor.

If you want to make nu your default shell, you may want to run config env and set up the PATH to be what you want. You can put something like this at the bottom.

let-env PATH = [
  # all your paths
]

Areas that need some love

Graphical apps in general. There are some but it's still really early days for Rust and graphical apps.

We don't have a browser. If you're brave, you can try using servo.

Going further

You can go deeper by installing the rewrite of coreutils to Rust

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.