Welcome to Linutils, your go-to Rust-based tool for making Linux installation a breeze.
Everything’s pre-configured to my taste, but you can easily customize it to match your own preferences!
- Multi-Distro Support: Works with both Ubuntu and Fedora.
- Automated Software Installation:
- Development tools like neovim, lazygit and docker.
- Productivity apps like discord.
- Environment Setup:
- Configure your terminal with zsh, alacritty and kitty.
- Setup your workflow with i3 and tmux.
- Custom environment variables and aliases.
- Customization: Modify the configuration file and the bash scripts to add or remove packages and settings as needed.
- Blazingly fast: Built with Rust for performance and reliability.
- Clone the Repository:
git clone https://github.com/matteo-luraghi/linutils.git
cd linutils
- Make sure to have rust installed
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Buil the binary and run the app
cargo build --release
./target/release/linutils
- Follow the On-Screen Prompts: The application will guide you through selecting your distro and packages to install and setup.
-
Update the src/config.toml file: Add any new packages or distros that you want to include in your setup.
-
Create a folder for new distros: If you've added a new distro, create a corresponding directory under src/commands with the name of the distro.
-
Create bash scripts for each package: Inside the directory for each distro (under src/commands), create bash scripts for the packages you’ve added. These scripts should handle the installation or configuration of those packages on the respective distro.
-
If you need to use configuration files in your bash scripts, you can easily save them in the src/utils directory.
linuitls/
├── src/
| ├── commands/ # All the bash scripts needed to install packages
| | ├── _tests/ # Bash scripts for testing
| | ├── fedora/ # Bash scripts to setup and install packages in Fedora
| | └── ubuntu/ # Bash scripts to setup and install packages in Ubuntu
│ ├── utils/ # Config files, wallpaper and fonts
│ ├── config.rs # Configuration file handling
│ ├── main.rs # Entry point of the application
│ ├── processing.rs # Processes logic
| ├── tui.rs # TUI logic
│ └── config.toml # Configuration file for packages and distros
├── README.md # This README file
└── Cargo.toml # Rust project file
Feel free to fork this repository and submit pull requests if you want to add packages and/or distros!
See Customization for more info.
This project is licensed under the MIT License - see the LICENSE file for details.