diff --git a/amethyst/config.mdx b/amethyst/config.mdx deleted file mode 100644 index 00e01ad..0000000 --- a/amethyst/config.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Config Keys ---- - -## [base] -| Key | Description | Default | -| --- | --- | --- | -| `pacdiff_warn` | Whether to warn the user about `vimdiff` for `pacdiff` | `true` | -| `paccache_keep` | How many versions (amount of times a package has been downloaded to the cache) of a package you want to keep in the cache | `0` | -| `paccache_keep_ins_pkgs` | Exclude installed packages from getting cleared out of the cache | `true` | -| `aur_verification_prompt` | If `true`, ask the user if they want to utilize the AUR on an operation. | `true` | - -## [extra] -| Key | Description | Default | -| --- | --- | --- | -| `uwu` | Makes Amethyst's output... "cuter" | `false` | -| `uwu_debug` | Makes debug and traces `uwu`ed. Please never send us debug logs with this enabled. | `false` | - -## [bin] -| Key | Description | Default | -| --- | --- | --- | -| `sudo` | The path to use for `sudo` (or any `sudo`-likes) | `'sudo'` | diff --git a/crystal-linux/nvidiawayland.mdx b/crystal-linux/nvidiawayland.mdx deleted file mode 100644 index c6844df..0000000 --- a/crystal-linux/nvidiawayland.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: How to make Wayland work on an NVIDIA GPU ---- -Wayland requires the nvidia gpu to have modesetting enabled, to do that you have to add the nvidia drivers to the mkinitcpio modules and add the `nvidia-drm.modeset=1` kernel flag - -## Adding the nvidia mkinitcpio modules -To add the required nvidia modules `nvidia nvidia_modeset nvidia_uvm nvidia_drm` to the mkinitcpio modules you'll have to edit `/etc/mkinitcpio.conf` by running `sudo nano /etc/mkinitcpio.conf` -in that file there should be a line that looks like this: -``` -MODULES=() -``` -you want to add the modules in the parentheses, the module names are seperated by spaces, in the end the line should look like this: -``` -MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) -``` -To save the file you have to press `CTRL+O` and to quit `CTRL+X` -Now you want to generate the initramfs: -``` -sudo mkinitcpio -P -``` -to regenerate the initcpio - -## Adding the kernel flag -To add the kernel flag with grub, you have to edit `/etc/default/grub` by running `sudo nano /etc/default/grub`, you should find a line that looks like this: -``` -GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" -``` -You'll have to append `nvidia-drm.modeset=1` to that line, so that it would look like this: - - ``` -GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1" -``` -Just like with the mkinitcpio modules, to save and quit you'll have to first press `CTRL+O` and then `CTRL+X` -Once you add the kernel parameter, you want to regenerate the grub config to reflect the kernel flag changes, to do this you have to run -``` -sudo grub-mkconfig -o /boot/grub/grub.cfg -``` -This will generate the grub config and save it to /boot/grub/grub.cfg - -### Extra steps for GNOME and onyx -GDM uses some chipset dependent [udev rules](https://wiki.archlinux.org/title/Udev) to see if it should force Xorg usage instead of letting you use Wayland. These udev rules can be disabled by running this command: -``` -sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules -``` -This command should symlink GDM's udev rules to *nothing*. Rules in `/etc/udev/rules.d/` should overwrite rules in `/usr/lib/udev/rules.d` (which are shipped by the package itself and managed by your package manager). -And after that, reboot and GNOME Wayland *should* be working! - - -## Rebooting -Once you went through all the steps, meaning you: -- added the mkinitcpio modules -- generated the initcpio -- added the kernel flags with grub -- regenerated the grub config -- optionally disabled udev rules - -You should be able to use wayland! Just reboot and you should be able to log into a wayland session - - -If it still doesn't work, your GPU might not support Wayland on the proprietary NVIDIA drivers. There is no fix for this other than using the nouveau driver, which sadly doesn't perform as well as the propietary nvidia drivers. diff --git a/amethyst/.config.yaml b/en/amethyst/.config.yaml similarity index 100% rename from amethyst/.config.yaml rename to en/amethyst/.config.yaml diff --git a/en/amethyst/config.mdx b/en/amethyst/config.mdx new file mode 100644 index 0000000..d7fe2d6 --- /dev/null +++ b/en/amethyst/config.mdx @@ -0,0 +1,25 @@ +--- +title: Config Keys +--- + +## [base] + +| Key | Description | Default | +| ------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------- | +| `pacdiff_warn` | Whether to warn the user about `vimdiff` for `pacdiff` | `true` | +| `paccache_keep` | How many versions (amount of times a package has been downloaded to the cache) of a package you want to keep in the cache | `0` | +| `paccache_keep_ins_pkgs` | Exclude installed packages from getting cleared out of the cache | `true` | +| `aur_verification_prompt` | If `true`, ask the user if they want to utilize the AUR on an operation. | `true` | + +## [extra] + +| Key | Description | Default | +| ----------- | ---------------------------------------------------------------------------------- | ------- | +| `uwu` | Makes Amethyst's output... "cuter" | `false` | +| `uwu_debug` | Makes debug and traces `uwu`ed. Please never send us debug logs with this enabled. | `false` | + +## [bin] + +| Key | Description | Default | +| ------ | ------------------------------------------------ | -------- | +| `sudo` | The path to use for `sudo` (or any `sudo`-likes) | `'sudo'` | diff --git a/amethyst/getting-started.mdx b/en/amethyst/getting-started.mdx similarity index 100% rename from amethyst/getting-started.mdx rename to en/amethyst/getting-started.mdx diff --git a/amethyst/usage.mdx b/en/amethyst/usage.mdx similarity index 90% rename from amethyst/usage.mdx rename to en/amethyst/usage.mdx index 337bcdc..7683b55 100644 --- a/amethyst/usage.mdx +++ b/en/amethyst/usage.mdx @@ -6,7 +6,7 @@ weight: 10 ### Basic usage | Action | FreeBSD pkg-style alias | Pacman-style flags | -|------------------------|-------------------------|--------------------| +| ---------------------- | ----------------------- | ------------------ | | Install a package | ame ins/install | ame -S | | Remove a package | ame rm/remove | ame -R/-Rs | | Upgrade a package | ame upg/upgrade | ame -Syu | @@ -19,7 +19,7 @@ weight: 10 ### Exit codes overview | Exit Code (i32) | Reason | -|-----------------|----------------------------------------------------------| +| --------------- | -------------------------------------------------------- | | 1 | Running ame as UID 0 / root | | 2 | Failed creating paths | | 3 | Could not find one or more required package dependencies | diff --git a/crystal-linux/.config.yaml b/en/crystal-linux/.config.yaml similarity index 100% rename from crystal-linux/.config.yaml rename to en/crystal-linux/.config.yaml diff --git a/crystal-linux/getting-started.mdx b/en/crystal-linux/getting-started.mdx similarity index 100% rename from crystal-linux/getting-started.mdx rename to en/crystal-linux/getting-started.mdx diff --git a/en/crystal-linux/nvidiawayland.mdx b/en/crystal-linux/nvidiawayland.mdx new file mode 100644 index 0000000..1c094e6 --- /dev/null +++ b/en/crystal-linux/nvidiawayland.mdx @@ -0,0 +1,100 @@ +--- +title: How to make Wayland work on an NVIDIA GPU +--- +Wayland requires the nvidia gpu to have modesetting enabled, to do that you have to add the nvidia drivers to the mkinitcpio modules and add the `nvidia-drm.modeset=1` kernel flag + +## Adding the nvidia mkinitcpio modules +To add the required nvidia modules `nvidia nvidia_modeset nvidia_uvm nvidia_drm` to the mkinitcpio modules you'll have to edit `/etc/mkinitcpio.conf` by running `sudo nano /etc/mkinitcpio.conf` +in that file there should be a line that looks like this: + +Sometimes, GDM disables GNOME Wayland when it detects you have an NVIDIA GPU. If you want to force-enable GNOME Wayland, you first have to enable DRM [kernel mode setting](https://wiki.archlinux.org/title/Kernel_mode_setting) (KMS) on the NVIDIA driver so Wayland is able to run. To do this, you need to add a kernel parameter to tell the NVIDIA driver to enable KMS. The kernel parameter you need to add is `nvidia_drm.modeset=1`. + +## GRUB + +For example, if you are using GRUB, there should be a file called `/etc/default/grub`. In there should be a line in that file that looks like this: + +``` +MODULES=() +``` +you want to add the modules in the parentheses, the module names are seperated by spaces, in the end the line should look like this: +``` +MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) +``` +To save the file you have to press `CTRL+O` and to quit `CTRL+X` +Now you want to generate the initramfs: + +You want to append the new kernel parameter at the end of the line, between the quotes. Parameters are separated by spaces, so put a space after the last parameter and append the parameter there. Make sure to edit the file with super-user permissions (with `sudo`) or you will get errors writing the file. + +### Example + +``` +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1" +``` + +After you add the kernel parameter, you want to make sure GRUB knows that you have changed your kernel parameters. To do this, you need to rebuild your GRUB configuration file. To rebuild your GRUB configuration file, run `sudo grub-mkconfig -o /boot/grub/grub.cfg`, and your GRUB configuration should have the new kernel parameter and you can use it by rebooting your system. + +## What to do after you add the kernel parameter. + +After you add the kernel parameter and restart, that might be all you need to do to get GNOME Wayland working. Check if you can access GNOME Wayland and if you can't, try these other steps. + +After that, reboot and see if GNOME Wayland works. If it still doesn't work, you need to add some modules to your initramfs for early boot modesetting. There should be a file (in Arch based distributions) called `/etc/mkinitcpio.conf`. In that file, there should be a `MODULES` line. On that line, there should be some parentheses. Between them, you can add kernel modules you want built into your initramfs (each module is separated by a space). We want to add some NVIDIA modules to our initramfs so it can be loaded early in the boot process. So add these modules to the file. Make sure to edit this file with super-user permissions. + +``` +nvidia nvidia_modeset nvidia_uvm nvidia_drm +``` + +### Example + +``` +MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) +``` + +And after that, you need to regenerate your initramfs. To do that, run this command. + +``` +sudo mkinitcpio -P +``` +to regenerate the initcpio + +## Adding the kernel flag +To add the kernel flag with grub, you have to edit `/etc/default/grub` by running `sudo nano /etc/default/grub`, you should find a line that looks like this: +``` +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" +``` +You'll have to append `nvidia-drm.modeset=1` to that line, so that it would look like this: + +``` +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1" +``` +Just like with the mkinitcpio modules, to save and quit you'll have to first press `CTRL+O` and then `CTRL+X` +Once you add the kernel parameter, you want to regenerate the grub config to reflect the kernel flag changes, to do this you have to run +``` +sudo grub-mkconfig -o /boot/grub/grub.cfg +``` +This will generate the grub config and save it to /boot/grub/grub.cfg + +### Extra steps for GNOME and onyx +GDM uses some chipset dependent [udev rules](https://wiki.archlinux.org/title/Udev) to see if it should force Xorg usage instead of letting you use Wayland. These udev rules can be disabled by running this command: +### Removing the gdm udev that disables wayland + +GDM uses some chipset dependent [udev rules](https://gitlab.gnome.org/GNOME/gdm/-/blob/main/data/61-gdm.rules.in) to see if it should force Xorg usage instead of letting you use Wayland. If you want to force-enable Wayland, run this command. + +``` +sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules +``` + +This command should symlink GDM's udev rules to _nothing_. Rules in `/etc/udev/rules.d/` should overwrite rules in `/usr/lib/udev/rules.d` (which are shipped by the package itself and managed by your package manager). +And after that, reboot and GNOME Wayland _should_ be working! + +## Rebooting +Once you went through all the steps, meaning you: +- added the mkinitcpio modules +- generated the initcpio +- added the kernel flags with grub +- regenerated the grub config +- optionally disabled udev rules + +You should be able to use wayland! Just reboot and you should be able to log into a wayland session + + +If it still doesn't work, your GPU might not support Wayland on the proprietary NVIDIA drivers. There is no fix for this other than using the nouveau driver, which sadly doesn't perform as well as the propietary nvidia drivers. diff --git a/malachite/.config.yaml b/en/malachite/.config.yaml similarity index 100% rename from malachite/.config.yaml rename to en/malachite/.config.yaml diff --git a/malachite/common-features.mdx b/en/malachite/common-features.mdx similarity index 97% rename from malachite/common-features.mdx rename to en/malachite/common-features.mdx index afccbd8..4bfd7b6 100644 --- a/malachite/common-features.mdx +++ b/en/malachite/common-features.mdx @@ -5,10 +5,11 @@ title: Common Features Between Modes As `[mode]`us, shared of between uh… repositories… or something. ## What you need to know + Malachite is fairly fleshed out in Repository mode, and not so much in Workspace mode. This isn't of course because I'm lazy and hate Workspace mode or anything, there's just not -a lot *to add*. +a lot _to add_. Without further ado, let's take a look at this example config file. @@ -36,15 +37,15 @@ foo = "https://example.org/{}.git" bar = "https://example.org/other/{}.git" ``` -Now, this is going to look really confusing at first, but bear with me. +Now, this is going to look really confusing at first, but bear with me. In this document, we'll cover only what is required to know for **both** modes. More specialized tutorials will be linked for each mode at the bottom of this page. Let's start with the `[base]`(ics). - ## Base Config + The base config defines a few common parameters between all the Malachite modes. ```toml @@ -63,10 +64,10 @@ Also defined in this snippet is `smart_pull`, which controls whether to pull… What that actually means is that instead of just performing a simple `git pull` in each repository, Malachite will: -- First run `git remote update` to fetch new remotes from origin +- First run `git remote update` to fetch new remotes from origin - Then run `git status` and parse the output to see if the current branch is behind - If the current branch is behind, it runs a regular `git pull`, which will take advantage of the remotes - already being updated. + already being updated. Theoretically, this only actually speeds things up by a minute amount (think milliseconds, really). Where this feature shines however is in repository mode, where it enables helpful automation features such as `build_on_update`. @@ -74,8 +75,7 @@ where it enables helpful automation features such as `build_on_update`. Regardless, it's recommended to keep this enabled for the slight speed-up, and only disable it if it causes issues. I've never personally had issues with it in the past, but who knows what could happen. This is Git we're talking about. - -### Repositories Config +### Repositories Config The repositories config is realistically what makes Malachite churn repo butter internally. It's the whole purpose of what it does, and because of that we've tried to come up with a neat little system to help @@ -95,7 +95,8 @@ foo = "https://example.org/{}.git" bar = "https://example.org/other/{}.git" ``` -The way this works is simple: +The way this works is simple: + - We have 2 URLs in the `repositories.urls` key. - Each `repo` in the `repositories.repos` key is prefixed with an identifier. - If the number is `foo`, it'll insert the URL with the id `foo`. @@ -104,16 +105,17 @@ The way this works is simple: ### Hang on, what are the special symbols???? I'm glad you asked! + - If you want to clone a specific branch, simply use the `/` delimiter. To clone repository `foo` on branch `bar`, use `id:foo/bar`. - If you want a specific package to build first, use instances of `!` to set priority. This is explained later in the [Repository Mode](REPOSITORY_MODE.md) page The last `:` delimiter is entirely optional, and behaves differently depending on the mode: + - In Repository mode, it defines the desired commit hash/rev/tag to checkout on repository clone - In Workspace mode, it defines the desired depth to clone the repository, useful with large git repositories, such as `nixpkgs`. That's literally it! - ## Mode-Specific Config For mode-specific config, avert your eyes to the following links! @@ -125,7 +127,6 @@ For mode-specific config, avert your eyes to the following links! Functioning config examples for both modes are available in the [examples](../examples) directory! -## Usage +## Usage Alternatively, you can look at the [Usage](USAGE.md) guide! - diff --git a/malachite/usage.mdx b/en/malachite/usage.mdx similarity index 88% rename from malachite/usage.mdx rename to en/malachite/usage.mdx index 4b333cc..cf5b8c7 100644 --- a/malachite/usage.mdx +++ b/en/malachite/usage.mdx @@ -2,19 +2,19 @@ title: Detailed Usage --- -Work it harder, make it better! +Work it harder, make it better! ## Global Flags | Flag | Description | -|-------------------|----------------------------------------------------------------------------------------------------------------------------------------| +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | `--verbose`, `-v` | Prints lots of debug information to `stderr`. If something doesn't go right, sending us the output with this enabled will help greatly | | `--exclude`, `-x` | Excludes the supplied package from the current operation. Can be used multiple times. | ## Basic Commands | Action | Command | Extra Flags | -|-----------------------------------------------------------------------------------------|-------------------------------------------|------------------------------------------------------------------------------------------------------------------| +| --------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | Build a package/packages. | `mlc build ` [all if left empty] | `--no-regen`: Doesn't regenerate repository after build | | Generate pacman repository | `mlc repo-gen` | | | Update local repos/PKGBUILDs | `mlc pull/update` [all if left empty] | `--no-regen`: If `mode.repository.build_on_update` is `true`, Do not regenerate repository after package rebuild | @@ -26,7 +26,7 @@ Work it harder, make it better! ## Exit Codes | AppExitCode (named Enum) | Exit code (i32) | Error Description | -|--------------------------|-----------------|--------------------------------------------------------------------------------------------------------| +| ------------------------ | --------------- | ------------------------------------------------------------------------------------------------------ | | `RunAsRoot` | `1` | Malachite was run as root. This is highly discouraged. So highly, in fact, that it will refuse to run. | | `PkgsNotFound` | `2` | No packages were specified/found for the desired operation | | `DirNotEmpty` | `3` | The creation of a Malachite repository was attempted in a non-empty directory |