Compare commits

...

25 Commits
v1.3.0 ... main

Author SHA1 Message Date
Robin Candau 284a5a2983 Add Crystal Wallpapers to installed packages for all desktops 11 months ago
Hericium VEVO 98cf312b9c Merge branch 'readme-update' into 'main'
Readme update

See merge request crystal/software/jade!10
1 year ago
Hericium VEVO 0d05e783c8 Update README.md 1 year ago
Hericium VEVO 33b9baa477 Deleted template.md 1 year ago
Hericium VEVO 1abeb4bc95 Update template.md, README.md 1 year ago
axtloss b7b1d38cc8 Merge branch 'axtlos/preinstall-vazirmatn-fonts' into 'main'
Add `vazirmatn-fonts` to base installation

See merge request crystal/software/jade!8
1 year ago
axtloss c49ca4cd2e Add `vazirmatn-fonts` to base installation 1 year ago
axtloss f7f306a465 Merge branch 'axtlos/preinstall-dnsmasq' into 'main'
Preinstall dnsmasq for hotspot creation

See merge request crystal/software/jade!7
1 year ago
axtloss 9f25297047 Revert enabling dnsmasq as it's automatically started when needed. 1 year ago
axtloss 5ff98505b1 Enable dnsmasq service 1 year ago
axtloss c9a07e1dfd Preinstall dnsmasq for hotspot creation 1 year ago
axtloss b058721187 Merge branch 'axtloss/fix-partitioning' into 'main'
Check if device is nvme or mmcblk for partitionilng

See merge request crystal/software/jade!5
1 year ago
axtloss 847d58ce7c Merge branch 'axtlos/install-kernel-headers' into 'main'
Preinstall kernel headers

See merge request crystal/software/jade!4
1 year ago
axtloss 4b11910b7a Merge branch 'axtlos/bash-default-path' into 'main'
Change default shell path to bash

See merge request crystal/software/jade!6
1 year ago
axtloss d28cd19a15 Change default shell path to bash 1 year ago
axtlos 0426510dbf
Check if device is nvme or mmcblk for partitionilng
This makes sure that mmcblk devices also use the p1/p2 partitioning
numbering unlike other block devices
1 year ago
axtlos 4fd52c1ad4
Run cargo fmt 1 year ago
axtloss 8555f88f37 Preinstall kernel headers 1 year ago
axt los 844e18259d Merge branch 'axtloss/add-polkit' into 'main'
Add polkit-gnome to i3 and sway

See merge request crystal/software/jade!3
1 year ago
axtlos 74befc9b6c
Add polkit-gnome to i3 and sway 1 year ago
Michal S d61f7fe877 Merge branch 'axtloss/misc-changes' into 'main'
Enable bluetooth & cups, preinstall xdg-user-dirs

See merge request crystal/software/jade!2
1 year ago
axtlos 464baca59b
cargo fmt
i forgor to do it 💀
1 year ago
axtlos 595f9f967e
Add dex to sway and i3 for autostart 1 year ago
axtlos d08f70139d
run cargo fmt 1 year ago
axtlos e1e8ae5d44 Enable bluetooth & cups, preinstall xdg-user-dirs 1 year ago

@ -1,123 +1,122 @@
<p align="center">
<a href="https://git.getcryst.al/crystal/software/jade/">
<img src="https://getcryst.al/site/assets/other/logo.png" alt="Logo" width="150" height="150">
</a>
</p>
<h2 align="center">Jade</h2>
<p align="center">
<a href="https://git.getcryst.al/crystal/info/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPL--3.0-blue.svg" alt="License">
<a href="https://git.getcryst.al/crystal/software/jade"><img alt="Gitlab issues" src="https://img.shields.io/gitlab/issues/open/crystal/software/jade?gitlab_url=https%3A%2F%2Fgit.getcryst.al%2F"></a>
<a href="https://git.getcryst.al/crystal/software/jade"><img alt="Gitlab merge requests" src="https://img.shields.io/gitlab/merge-requests/open/crystal/software/jade?gitlab_url=https%3A%2F%2Fgit.getcryst.al%2F"></a><br>
<a href="https://discord.gg/hYJgu8K5aA"><img alt="Discord" src="https://img.shields.io/discord/825473796227858482?color=blue&label=Discord&logo=Discord&logoColor=white"> </a>
<a href="https://git.getcryst.al/axtlos"><img src="https://img.shields.io/badge/Maintainer-@axtloss-brightgreen" alt=The maintainer of this repository" href="https://git.getcryst.al/axtlos"></a>
<a href="https://fosstodon.org/@crystal_linux"><img alt="Mastodon Follow" src="https://img.shields.io/mastodon/follow/108618426259408142?domain=https%3A%2F%2Ffosstodon.org">
<a href="https://twitter.com/crystal_linux"><img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/crystal_linux"></a>
</p>
<p align="center">Jade is an installer backend for crystal linux.</p>
# Jade
Jade is an installer backend for crystal linux.
## Backend usage
### autopartition the drive
### Autopartition the drive
```sh
# autopartition /dev/sda with efi enabled
jade partition auto /dev/sda --efi
# crystal-jade partition auto /dev/sda --efi
# autopartition /dev/nvmen0 with efi disabled
jade partition auto /dev/nvmen0
# crystal-jade partition auto /dev/nvmen0
```
### install base packages
### Install base packages
```sh
jade install-base
# crystal-jade install-base
```
### install bootloader
### Install bootloader
```sh
# install as efi with esp being /boot/efi
jade bootloader grub-efi /boot/efi
# crystal-jade bootloader grub-efi /boot/efi
# install as legacy on /dev/sda
jade bootloader grub-legacy /dev/sda
# crystal-jade bootloader grub-legacy /dev/sda
```
### generate fstab
### Generate fstab
```sh
jade genfstab
# crystal-jade genfstab
```
### configuring locale settings
### Configuring locale settings
```sh
# set the keyboard layout to colemak, the timezone to Europe/Berlin and set en_US.UTF-8 as the locale
jade locale colemak Europe/Berlin en_US.UTF-8 UTF-8
# crystal-jade locale colemak Europe/Berlin en_US.UTF-8 UTF-8
```
### configure network settings
### Configure network settings
```sh
# set the hostname to getcryst.al with ipv6 disabled
jade networking getcryst.al
# crystal-jade networking getcryst.al
# set the hostname to getcryst.al with ipv6 enabled
jade networking getcryst.al --ipv6
# crystal-jade networking getcryst.al --ipv6
```
### setup zramd
### Setup zramd
```sh
# install and enable zramd
jade zramd
# crystal-jade zramd
```
### configure users
### Configure users
```sh
# make a new user called nonRootHaver, without sudo, easytohack as the password and bash as the default shell
jade users new-user nonRootHaver easytohack bash
# crystal-jade users new-user nonRootHaver easytohack bash
# make a user called rootHaver, with sudo, omgsosuperhardtohack as the password and fish as the default shell
jade users new-user rootHaver omgsuperhardtohack fish --hasroot
# crystal-jade users new-user rootHaver omgsuperhardtohack fish --hasroot
```
### set root password
### Set root password
```sh
# set the root password to 'muchSecurity,veryHardToHack'
jade users root-password muchSecurity,veryHardToHack
# crystal-jade users root-password muchSecurity,veryHardToHack
```
### install a desktop environment
### Install a desktop environment
```sh
# install onyx
jade desktops onyx
# crystal-jade desktops onyx
# install gnome
jade desktops gnome
# crystal-jade desktops gnome
```
### setup timeshift
### Setup timeshift
```sh
jade setup-timeshift
# crystal-jade setup-timeshift
```
### setup flatpak
### Setup flatpak
```sh
jade flatpak
# crystal-jade flatpak
```
### debug logging
### Debug logging
debug messages:
```sh
jade -v
# crystal-jade -v
```
traces:
```sh
jade -vv
# crystal-jade -vv
```
## How to build:
Tested on latest Cargo (1.60.0-nightly)
## Non-secret Secret
$ echo "crystal-jade_UWU=true" >> ~/.zshrc
$ echo "crystal-jade_UWU=true" >> ~/.bashrc
$ set -Ux crystal-jade_UWU true
if you want to have your log and crash output be “cute”
## 🙌 Contributing
If you'd like to contribute to **Jade**, please follow the [Crystal Linux contributing guidelines](https://git.getcryst.al/crystal/info/-/blob/main/CONTRIBUTING.md)!
This project uses `rustup`, to set up `cargo` for **Jade** development, please follow the guidelines below:
<br>
#### Debug/development builds
@ -127,9 +126,10 @@ Tested on latest Cargo (1.60.0-nightly)
- `cargo build --release`
## Non-secret Secret
echo "JADE_UWU=true" >> ~/.zshrc <br>
echo "JADE_UWU=true" >> ~/.bashrc <br>
set -Ux JADE_UWU true <br>
<br>
if you want to have your log and crash output be “cute”
## 📜 License
[GPLv3-only](https://choosealicense.com/licenses/gpl-3.0/)
![](https://git.getcryst.al/crystal/misc/branding/-/raw/main/banners/README-banner.png)

@ -24,6 +24,7 @@ pub fn install_base_packages(kernel: String) {
// Base Arch
"base",
kernel_to_install,
format!("{kernel_to_install}-headers").as_str(),
"linux-firmware",
"systemd-sysvcompat",
"networkmanager",
@ -48,6 +49,7 @@ pub fn install_base_packages(kernel: String) {
"noto-fonts-cjk",
"noto-fonts-extra",
"ttf-nerd-fonts-symbols-common",
"vazirmatn-fonts",
// Common packages for all desktops
"xterm",
"pipewire",
@ -56,6 +58,7 @@ pub fn install_base_packages(kernel: String) {
"pipewire-jack",
"wireplumber",
"crystal-first-setup",
"crystal-wallpapers",
"power-profiles-daemon",
"cups",
"cups-pdf",
@ -65,8 +68,25 @@ pub fn install_base_packages(kernel: String) {
"bash-completion",
"zsh-completions",
"ttf-liberation",
"dnsmasq",
]);
files::copy_file("/etc/pacman.conf", "/mnt/etc/pacman.conf");
exec_eval(
exec_chroot(
"systemctl",
vec![String::from("enable"), String::from("bluetooth")],
),
"Enable bluetooth",
);
exec_eval(
exec_chroot(
"systemctl",
vec![String::from("enable"), String::from("cups")],
),
"Enable CUPS",
);
}
pub fn genfstab() {

@ -44,6 +44,7 @@ fn install_bspwm() {
"lightdm",
"lightdm-gtk-greeter",
"lightdm-gtk-greeter-settings",
"xdg-user-dirs",
]);
files_eval(
files::append_file(
@ -65,6 +66,7 @@ fn install_awesome() {
"lightdm",
"lightdm-gtk-greeter",
"lightdm-gtk-greeter-settings",
"xdg-user-dirs",
]);
files_eval(
files::append_file(
@ -86,6 +88,7 @@ fn install_herbstluftwm() {
"lightdm",
"lightdm-gtk-greeter",
"lightdm-gtk-greeter-settings",
"xdg-user-dirs",
]);
files_eval(
files::append_file(
@ -108,6 +111,9 @@ fn install_i3() {
"lightdm",
"lightdm-gtk-greeter",
"lightdm-gtk-greeter-settings",
"xdg-user-dirs",
"dex",
"polkit-gnome",
]);
files_eval(
files::append_file(
@ -116,6 +122,17 @@ fn install_i3() {
),
"Add lightdm greeter",
);
files_eval(
files::append_file("/mnt/etc/i3/config", "exec --no-startup-id dex -a\n"),
"Add dex to i3 config for autostart",
);
files_eval(
files::append_file(
"/mnt/etc/i3/config",
"exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1",
),
"Add polkit gnome to i3 config",
);
enable_dm("lightdm");
}
@ -134,7 +151,21 @@ fn install_sway() {
"pipewire-jack",
"wireplumber",
"sddm",
"xdg-user-dirs",
"dex",
"polkit-gnome",
]);
files_eval(
files::append_file("/mnt/etc/sway/config", "exec --no-startup-id dex -a\n"),
"Add dex to sway config for autostart",
);
files_eval(
files::append_file(
"/mnt/etc/sway/config",
"exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1",
),
"Add polkit gnome to sway config",
);
enable_dm("sddm");
}

@ -102,7 +102,9 @@ pub fn partition(
} else {
partition_no_efi(&device, unakite);
}
if device.to_string_lossy().contains("nvme") {
if device.to_string_lossy().contains("nvme")
|| device.to_string_lossy().contains("mmcblk")
{
part_nvme(&device, efi, unakite);
} else {
part_disk(&device, efi, unakite);

@ -26,7 +26,7 @@ pub fn new_user(username: &str, hasroot: bool, password: &str, do_hash_pass: boo
"fish" => "/usr/bin/fish",
"tcsh" => "/usr/bin/tcsh",
"zsh" => "/usr/bin/zsh",
&_ => "/usr/bin/fish",
&_ => "/usr/bin/bash",
};
exec_eval(
exec_chroot(

Loading…
Cancel
Save