diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 86586553..478d689a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,9 +19,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout your repository using git - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install, build, and upload your site - uses: withastro/action@v1 + uses: withastro/action@v2 with: package-manager: pnpm@latest @@ -34,4 +34,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 6240da8b..e5bc5793 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ pnpm-debug.log* # macOS-specific files .DS_Store + +bun.lockb diff --git a/README.md b/README.md index 16972a8b..db51983b 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,18 @@ # Ultramarine Linux Wiki -This wiki is meant to be the extended documentation for both end users and developers, so it is separated in those two categories. Made with Astro and a modification of the default blog template. +Welcome to the source repository behind the [Ultramarine Wiki]! We welcome any contributions and +you may freely send pull requests to this repository if you would like to modify any of the +content here! -## ๐Ÿงž Commands +## Translations -All commands are run from the root of the project, from a terminal: +If you'd like to translate for a new language: -| Command | Action | -| :---------------------- | :----------------------------------------------- | -| `pnpm install` | Installs dependencies | -| `pnpm run dev` | Starts local dev server at `localhost:3000` | -| `pnpm run build` | Build your production site to `./dist/` | -| `pnpm run preview` | Preview your build locally, before deploying | -| `pnpm run astro ...` | Run CLI commands like `astro add`, `astro check` | -| `pnpm run astro --help` | Get help using the Astro CLI | +1. Go to `src/consts.ts` to add a new language into `KNOWN_LANGUAGES` +2. Copy everything from `src/content/docs/en` to `src/content/docs/`[^1] +3. Add pages into `SIDEBAR` in `src/consts.ts` +4. Start translating! + +[^1]: We encourage you to use a generic language code without limiting the region. + +[Ultramarine Wiki]: https://wiki.ultramarine-linux.org diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 00000000..f353fb20 Binary files /dev/null and b/bun.lockb differ diff --git a/public/assets/gparted/apply.png b/public/assets/gparted/apply.png new file mode 100644 index 00000000..4a12b2d7 Binary files /dev/null and b/public/assets/gparted/apply.png differ diff --git a/public/assets/gparted/checkwork.png b/public/assets/gparted/checkwork.png new file mode 100644 index 00000000..43dfa14a Binary files /dev/null and b/public/assets/gparted/checkwork.png differ diff --git a/public/assets/gparted/disk.png b/public/assets/gparted/disk.png new file mode 100644 index 00000000..21d6aaf0 Binary files /dev/null and b/public/assets/gparted/disk.png differ diff --git a/public/assets/gparted/done.png b/public/assets/gparted/done.png new file mode 100644 index 00000000..153701b3 Binary files /dev/null and b/public/assets/gparted/done.png differ diff --git a/public/assets/gparted/fillwhole.png b/public/assets/gparted/fillwhole.png new file mode 100644 index 00000000..070c83e0 Binary files /dev/null and b/public/assets/gparted/fillwhole.png differ diff --git a/public/assets/gparted/gpt.png b/public/assets/gparted/gpt.png new file mode 100644 index 00000000..0cb061df Binary files /dev/null and b/public/assets/gparted/gpt.png differ diff --git a/public/assets/gparted/part.png b/public/assets/gparted/part.png new file mode 100644 index 00000000..5fc3d795 Binary files /dev/null and b/public/assets/gparted/part.png differ diff --git a/public/assets/gparted/progress.png b/public/assets/gparted/progress.png new file mode 100644 index 00000000..a1154318 Binary files /dev/null and b/public/assets/gparted/progress.png differ diff --git a/public/assets/gparted/resizemenu.png b/public/assets/gparted/resizemenu.png new file mode 100644 index 00000000..a0536840 Binary files /dev/null and b/public/assets/gparted/resizemenu.png differ diff --git a/public/assets/welcome-window.png b/public/assets/welcome-window.png index 12b14d8c..8047045d 100644 Binary files a/public/assets/welcome-window.png and b/public/assets/welcome-window.png differ diff --git a/public/og-image.png b/public/og-image.png index 9504fea6..d9db4eb5 100644 Binary files a/public/og-image.png and b/public/og-image.png differ diff --git a/src/consts.ts b/src/consts.ts index 211813c9..260c9fe1 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -15,6 +15,7 @@ export const OPEN_GRAPH = { export const KNOWN_LANGUAGES = { English: "en", Deutsch: "de", + ๆญฃ้ซ”ไธญๆ–‡: "zh_hant", } as const; export const KNOWN_LANGUAGE_CODES = Object.values(KNOWN_LANGUAGES); @@ -36,7 +37,19 @@ export const SIDEBAR: Sidebar = { Installation: [ { text: "Getting Ultramarine", link: "en/installation/getting" }, { text: "Installation", link: "en/installation/installation" }, + // { + // text: "Installation with Readymade", + //link: "en/installation/readymade", + //}, + { + text: "Installation on Raspberry Pi", + link: "en/installation/rpi", + }, { text: "Post-Installation", link: "en/installation/postinstall" }, + { + text: "Advanced Post-Install Steps", + link: "en/installation/post-advanced", + }, ], Contributing: [ { text: "Overview", link: "en/contributing/contributorguide" }, @@ -54,16 +67,20 @@ export const SIDEBAR: Sidebar = { { text: "BIOS Keys", link: "en/hardware/bioskeys" }, ], "Linux Concepts": [ - { text: "Concepts Overview", link: "en/linux/overview" }, + { text: "What is Linux?", link: "en/linux/overview" }, { text: "The File System", link: "en/linux/filesystem" }, { text: "Device Files", link: "en/linux/devicefiles" }, { text: "Permissions", link: "en/linux/permissions" }, { text: "Software and Package Management", link: "en/linux/software" }, { text: "The Shell", link: "en/linux/shell" }, { text: "SSH", link: "en/linux/ssh"} + { text: "Security and Privacy", link: "en/linux/securityprivacy" }, ], - Usage: [{ text: "Gaming on Ultramarine", link: "en/usage/gaming" }], + Usage: [ + { text: "Gaming on Ultramarine", link: "en/usage/gaming" }, + { text: "Localization", link: "en/usage/l10n" }, + ], "Release Notes": [{ text: "Errata", link: "en/release/errata" }], // Chromebook: [ @@ -110,4 +127,66 @@ export const SIDEBAR: Sidebar = { { text: "Developing for Ultramarine", link: "de/release/errata" }, ], }, + zh_hant: { + ไป‹็ดน: [{ text: "ๆญก่ฟŽ", link: "zh_hant/welcome" }], + ็คพ็พฃ: [ + { text: "ๅƒ่ˆ‡็คพ็พฃ", link: "zh_hant/community/community" }, + { text: "่กŒ็‚บๆบ–ๅ‰‡", link: "zh_hant/community/codeofconduct" }, + ], + ๅฎ‰่ฃ: [ + { text: "ๅ–ๅพ— Ultramarine", link: "zh_hant/installation/getting" }, + { text: "ๅฎ‰่ฃ้Ž็จ‹", link: "zh_hant/installation/installation" }, + // { + // text: "Installation with Readymade", + //link: "zh_hant/installation/readymade", + //}, + { + text: "Raspberry Pi ๅฎ‰่ฃ้Ž็จ‹", + link: "zh_hant/installation/rpi", + }, + { text: "ๅฎ‰่ฃไน‹ๅพŒโ€ฆ", link: "zh_hant/installation/postinstall" }, + { + text: "้€ฒ้šŽๅฎ‰่ฃๅพŒๆญฅ้ฉŸ", + link: "zh_hant/installation/post-advanced", + }, + ], + ่ฒข็ป: [ + { text: "่ฒข็ปๆŒ‡ๅ—", link: "zh_hant/contributing/contributorguide" }, + { text: "ๅŽŸ็ขผ่ฒข็ป", link: "zh_hant/contributing/hacking" }, + ], + ็กฌไปถ: [ + { text: "็ณป็ตฑ่ฆๆฑ‚", link: "zh_hant/hardware/requirements" }, + { text: "Ultramarine Anywhere", link: "zh_hant/hardware/anywhere" }, + { text: "NVIDIA", link: "zh_hant/hardware/nvidia" }, + { text: "Microsoft Surface", link: "zh_hant/hardware/surface" }, + { + text: "Broadcom and Realtek Networking", + link: "zh_hant/hardware/broadcom-realtek", + }, + { text: "BIOS Keys", link: "zh_hant/hardware/bioskeys" }, + ], + "้—œๆ–ผ Linux": [ + { text: "ไฝ•่ฌ‚ Linux๏ผŸ", link: "zh_hant/linux/overview" }, + { text: "ๆช”ๆกˆ็ณป็ตฑ", link: "zh_hant/linux/filesystem" }, + { text: "่ฃ็ฝฎๆช”ๆกˆ", link: "zh_hant/linux/devicefiles" }, + { text: "ๆฌŠ้™", link: "zh_hant/linux/permissions" }, + { text: "่ปŸไปถๅŠๅฎ‰่ฃๅŒ…็ฎก็†", link: "zh_hant/linux/software" }, + { text: "The Shell", link: "zh_hant/linux/shell" }, + { text: "ๅฎ‰ๅ…จๅŠ็ง้šฑ", link: "zh_hant/linux/securityprivacy" }, + ], + + ็”จ้€”: [ + { text: "้›ปๅญ้Šๆˆฒ", link: "zh_hant/usage/gaming" }, + { text: "ๆœฌๅœฐๅŒ–", link: "zh_hant/usage/l10n" }, + ], + + ็™ผไฝˆ็‰ˆๆœฌ้€š็Ÿฅ: [{ text: "ๅ‹˜่ชค่กจ", link: "zh_hant/release/errata" }], + + ้–‹็™ผ: [ + { + text: "็‚บ Ultramarine ้–‹็™ผ", + link: "zh_hant/development/developing-for-ultramarine", + }, + ], + }, }; diff --git a/src/content/docs/en/anywhere/android.mdx b/src/content/docs/en/anywhere/android.mdx index 914ae5fd..a23190a6 100644 --- a/src/content/docs/en/anywhere/android.mdx +++ b/src/content/docs/en/anywhere/android.mdx @@ -10,7 +10,7 @@ import Alert from "../../../../components/Docs/Alert.astro"; page is subject to change -Android Devices are very common, and (most of the time) extremely customiseable. We do not have a target release or full plan at this time. +Android Devices are very common, and (most of the time) extremely customiseable. We do not have a target release or full plan at this time, but we will support in the (hopefully) near future. ## Implementation diff --git a/src/content/docs/en/anywhere/applesilicon.mdx b/src/content/docs/en/anywhere/applesilicon.mdx index 82d87705..027a299f 100644 --- a/src/content/docs/en/anywhere/applesilicon.mdx +++ b/src/content/docs/en/anywhere/applesilicon.mdx @@ -10,4 +10,8 @@ import Alert from "../../../../components/Docs/Alert.astro"; page is subject to change -We plan to use the Asahi patches from upstream. This will happen sometime in the near future. +We plan to use the Asahi script/patches from upstream. This will happen sometime in the near future. + +## Implementation + +- Potential GUI installer (Readymade from inside macOS) diff --git a/src/content/docs/en/anywhere/chromebook.mdx b/src/content/docs/en/anywhere/chromebook.mdx index 736765c9..28ed1a96 100644 --- a/src/content/docs/en/anywhere/chromebook.mdx +++ b/src/content/docs/en/anywhere/chromebook.mdx @@ -12,8 +12,7 @@ import Alert from "../../../../components/Docs/Alert.astro"; Chromebooks were an obvious target for Ultramarine Anywhere, despite being mostly -standard hardware, they have custom EC and strange firmware. We began development -in Ultramarine 39, and are preparing to launch midcycle. +standard hardware, they have custom EC and strange firmware. Chromebook support in Ultramarine Linux is provided in partnership with the [Chrultrabook Project](https://chrultrabook.com). @@ -27,9 +26,9 @@ Ultramarine Chromebook Edition uses a special bootloader called [Submarine](http Under the hood, Submarine is an incredibly minimal Linux OS based on [u-root](https://github.com/u-root/u-root), it's only really usable for debug and booting a full distribution. Once Submarine is loaded, we use [LinuxBoot](https://www.linuxboot.org/) to boot a full copy of Ultramarine (and hopefully more distros in the future). -Now for the big question, how do we do this without modifying the firmware? We take advantage of the way Depthcharge (the ChromeOS firmware) works. We store Submarine in a 16MB partition on disk, this is normally used by ChromeOS to store a full ChromeOS Kernel and initramfs. Depthcharge doesn't actually check if the contents of the partition are a valid kernel, it just checks for a GPT Header and runs whatever code is found in the partition, in our case, Submarine. +Now for the big question, how do we do this without modifying the firmware? We take advantage of the way Depthcharge (the ChromeOS firmware) works. We store Submarine in a 16MiB partition on disk, this is normally used by ChromeOS to store a full ChromeOS Kernel and initramfs. Depthcharge doesn't actually check if the contents of the partition are a valid kernel, it just checks for a GPT Header and runs whatever code is found in the partition, in our case, Submarine. -By default, Depthcharge will only boot code with Google's signing keys, we get around this by enabling the built-in developer mode. +By default, Depthcharge will only boot code with Google's signing keys, we get around this by enabling the built-in ChromeOS developer mode. To summarise, we boot a tiny Linux distribution (Submarine) and use it to launch Ultramarine's vmlinuz and initramfs using kexec. @@ -43,7 +42,7 @@ We use WeirdTreeThing's [audio script](https://github.com/WeirdTreeThing/chromeb ### Default Partitions -On Chromebooks, we use f2fs (in lieu of Btrfs) and disable swap to extend the life of the EMMC found in many Chromebooks. We also create one 16MiB partition containing [Submarine](https://developer.fyralabs.com/submarine) at the start of the disk instead of `/boot/EFI`. +On Chromebooks, we use F2FS (in lieu of Btrfs) and disable swap to extend the life of the eMMC storage found in many Chromebooks. We also create one 16MiB partition containing [Submarine](https://developer.fyralabs.com/submarine) at the start of the disk instead of `/boot/EFI`. ### Keyboard Mapping @@ -75,19 +74,19 @@ We use [keyd](https://github.com/rvaiya/keyd) to map keys on Chromebooks. ## Unsupported Devices -| Device | Reason | -| --------- | -------------------- | -| Mario | Firmware Limitations | -| Alex | Firmware Limitations | -| ZGB | Firmware Limitations | -| Stumpy | Firmware Limitations | -| Lumpy | Firmware Limitations | -| Parrot | Firmware Limitations | -| Butterfly | Firmware Limitations | -| Link | Firmware Limitations | -| Stout | Firmware Limitations | - -These computers are from the first generation of Chromebooks, and use a different firmware than modern ones. +| Device | Reason | +| --------- | ----------------------------------------------------------------------------------------- | +| Mario | Firmware Limitations | +| Alex | Firmware Limitations | +| ZGB | Firmware Limitations | +| Stumpy | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | +| Lumpy | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | +| Parrot | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | +| Butterfly | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | +| Link | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | +| Stout | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) | + +These are among the first few generations of Chromebooks, and either use an unsupported proprietary firmware, or have firmware limitations which prevents booting a partition large enough to fit submarine (newer Chromebooks have larger size limitations). ## Installation diff --git a/src/content/docs/en/anywhere/enterprise.mdx b/src/content/docs/en/anywhere/enterprise.mdx index c3785ee1..b60369e4 100644 --- a/src/content/docs/en/anywhere/enterprise.mdx +++ b/src/content/docs/en/anywhere/enterprise.mdx @@ -6,8 +6,20 @@ description: "Data Centre, Enterprise, and HPC in the Ultramarine Anywhere Initi import Alert from "../../../../components/Docs/Alert.astro"; - This device type is still in the **Wishlist Phase**. All information on this + This device type is still in the **Planning Phase**. All information on this page is subject to change. -If you'd like to suggest a platform, drop us a line in [our chats](/en/community/community). +We plan on making server images, GUI and CLI. These images will be built for constant runtime, and include/exclude fitting packages for server usecases. If you'd like to suggest a platform, drop us a line in [our chats](/en/community/community). + +## Implementation + +- Refined OOTB cockpit excperience +- CLI only option +- Advanced installer features +- Advanced networking options +- Package suite more attuned to a server usecase +- Default filesystem changed to ZFS +- Potential improved RAID and non-RAID architecture implementation... +- Cluster support +- A whole lot more... diff --git a/src/content/docs/en/anywhere/ott.mdx b/src/content/docs/en/anywhere/ott.mdx index b244c3cf..0f10673b 100644 --- a/src/content/docs/en/anywhere/ott.mdx +++ b/src/content/docs/en/anywhere/ott.mdx @@ -12,4 +12,4 @@ import Alert from "../../../../components/Docs/Alert.astro"; Smart TV boxes often run Android, which means we can use Halium to port Ultramarine to the unlockable ones. -This may be limited to FireOS devices as many of them are vulnerable to [mtk-su](https://xdaforums.com/t/amazing-temp-root-for-mediatek-armv8-2020-08-24.3922213/) +This may be limited to FireOS devices as many of them are vulnerable to [mtk-su](https://xdaforums.com/t/amazing-temp-root-for-mediatek-armv8-2020-08-24.3922213/). If you are knowledgable about Smart TV modding/running alternative operating systems, please reach out [here](/en/community/community). diff --git a/src/content/docs/en/anywhere/riscv.mdx b/src/content/docs/en/anywhere/riscv.mdx index 69c5e48b..370a12ad 100644 --- a/src/content/docs/en/anywhere/riscv.mdx +++ b/src/content/docs/en/anywhere/riscv.mdx @@ -10,4 +10,4 @@ import Alert from "../../../../components/Docs/Alert.astro"; page is subject to change. -If you are a hardware vendor producing RISC-V devices or have a spare RISC-V device, please [reach out](mailto:contact@fyralabs.com) if you'd like Ultramarine Support. +We plan to port to RISC-V architecture as soon as we can get the hardware. If you are a hardware vendor producing RISC-V devices or have a spare RISC-V device, please [reach out](mailto:contact@fyralabs.com) if you'd like to support the Ultramarine RISC-V port. diff --git a/src/content/docs/en/anywhere/rpi.mdx b/src/content/docs/en/anywhere/rpi.mdx new file mode 100644 index 00000000..6eba1aca --- /dev/null +++ b/src/content/docs/en/anywhere/rpi.mdx @@ -0,0 +1,70 @@ +--- +title: "Raspberry Pi (Anywhere)" +description: "Raspberry Pi in the Ultramarine Anywhere Initiative" +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +Raspberry Pi is a very popular series of SBCs. They are cheap, easy to get, run Linux well, and have a large ecosystem of expansion cards (Hats and Bonnets) and accessories. + +Fedora has upstream support for the Pi 4, 400, and 3. Ultramarine Anywhere intends to extend support to the Zero 2 and 5. + +## Raspberry Pi 5 + + + This device type is still in the **Planning Phase**. All information on this + page is subject to change. + + +The Raspberry Pi 5 is not currently supported in Fedora. We intend to package the official Raspberry Pi kernel (which should also provide a better experience on the other Pi models.) + +## Raspberry Pi 4 and 400 + +The Raspberry Pi 4 and 400 have had support in Ultramarine Linux since UM39, and desktop images since UM40. We use the Fedora kernels and boot proccess. + +### Notes + +- RPi4B has a 1GB and 2GB model, we suggest against running a desktop environment on these (Xfce may be alright.) +- RPi400 does not have support for WiFi in Ultramarine, this is an upstream issue. +- The Pi 4 series has native USB boot support. Your experience may be better with a fast USB Drive or SSD connected through an adapter. See [this article](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot) for more info. +- If using a microSD card, we reccomend using a Class 10 microSD card, your experience will be signifcantly better than lower classes. +- If using a USB drive, ensure it's USB 3.0 or newer, 2.0 will be a signifcantly worse experience than a microSD. +- Your storage device will need to be larger than 9GB (the image is 8.59GB) We suggest 16GB so you have space for software. + +### Installing + +1. Install [Raspberry Pi Imager](https://flathub.org/apps/org.raspberrypi.rpi-imager). +2. Simply select "Other General Purpose OS" then your Ultramarine Edition of choice. +3. Insert the storage device into your Pi and boot up! The root filesystem will automatically be expanded. +4. You will be prompted to set up a user, do this and you're done!. + +## Raspberry Pi 3 + +The Raspberry Pi 3 has had support in Ultramarine Linux since UM39, and desktop images since UM40. We use the Fedora kernels and boot proccess. + +### Notes + +- RPi3B has only 1GB of RAM, and the 3A only has 512MB, we suggest against running a desktop environment (Xfce may be alright.) +- Your microSD card will need to be larger than 9GB (the image is 8.59GB) We suggest 16GB so you have space for software. +- We reccomend using a Class 10 microSD card, your experience will be signifcantly better than lower classes. + +### Installing + +1. Grab any aarch64 [Raw Image](https://images.fyralabs.com/images/ultramarine/40/) from our downloads page. +2. Flash it to your microSD card with [balenaEtcher](https://etcher.io) or [Raspberry Pi Imager](https://flathub.org/apps/org.raspberrypi.rpi-imager) +3. Insert the storage device into your Pi and boot up! The root filesystem will automatically be expanded. +4. You will be prompted to set up a user, do this and you're done!. + +## Raspberry Pi Zero 2 + + + This device type is still in the **Planning Phase**. All information on this + page is subject to change. + + +## Raspberry Pi 1, 2, and Zero + + + These devices are **Not Supported** due to 32bit CPUs. We include them in this + page to avoid questions. + diff --git a/src/content/docs/en/anywhere/steamdeck.mdx b/src/content/docs/en/anywhere/steamdeck.mdx index f0fcbc9a..69592f22 100644 --- a/src/content/docs/en/anywhere/steamdeck.mdx +++ b/src/content/docs/en/anywhere/steamdeck.mdx @@ -10,4 +10,4 @@ import Alert from "../../../../components/Docs/Alert.astro"; page is subject to change. -Would be fun to port UM to the Steam Deck, maybe a custom UI is in order... +We plan to make Steam Deck images, as well as other handhelds and HTPCs. Work will begin once we have the hardware needed. Maybe a custom UI is in order... diff --git a/src/content/docs/en/anywhere/thin.mdx b/src/content/docs/en/anywhere/thin.mdx new file mode 100644 index 00000000..fc29ef3a --- /dev/null +++ b/src/content/docs/en/anywhere/thin.mdx @@ -0,0 +1,21 @@ +--- +title: "Thin Clients (Anywhere)" +description: " Ultramarine Anywhere Initiative" +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + + + This device type is still in the **Wishlist Phase**. All information on this + page is subject to change. + + +Thin client images would be fun, and frankly pretty easy. + +## Implementation + +Very minimal environment with only required packages. OOTB connection protocols (ICA, RDP/VNC, SNMP...) and easy to use installer with connection options built in. + +Minimal login screen with an option for branding, might include device managment software. + +Tools and encouragment for enthusiasts. diff --git a/src/content/docs/en/anywhere/xr.mdx b/src/content/docs/en/anywhere/xr.mdx new file mode 100644 index 00000000..98f685a4 --- /dev/null +++ b/src/content/docs/en/anywhere/xr.mdx @@ -0,0 +1,13 @@ +--- +title: "XR and Spatial Computing" +description: "XR and Spatial Computing in the Ultramarine Anywhere Initiative" +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + + + This device type is still in the **Planning Phase**. All information on this + page is subject to change. + + +Would use [StardustXR](https://stardustxr.org/). Our packaging effort can be found [here.](https://github.com/Ultramarine-Linux/stardustxr) diff --git a/src/content/docs/en/chromebook/armbeta.mdx b/src/content/docs/en/chromebook/armbeta.mdx index 8eb02a59..7ece0640 100644 --- a/src/content/docs/en/chromebook/armbeta.mdx +++ b/src/content/docs/en/chromebook/armbeta.mdx @@ -1,5 +1,5 @@ --- -title: ARM Chromebook beta program +title: ARM Chromebook Beta Program description: "Closed program for running our beta images for certain ARM chromebooks" --- @@ -11,9 +11,9 @@ Welcome to the ARM Chromebook Beta Program! We are looking for technically-verse This is a closed program, please contact Owen Zimmerman at owen@fyralabs.com, or join and ping @Owen in the [discord](https://discord.com/invite/5fdPuxTg5Q) to apply. -Currently supported ARM Chromebook devices (if you have an unsupported device and are willing to use it for image testing, let us know!): +Currently supported ARM Chromebook beta devices (if you have an unsupported device and are willing to use it for image testing, let us know!): -All Kukui family Chromebooks: +All Kukui (mt8183) family Chromebooks: | Model name/number | Codename | | ------------------------------------------ | -------- | @@ -38,7 +38,12 @@ All Kukui family Chromebooks: Source: https://wiki.postmarketos.org/wiki/Google_Kukui_Chromebook_(google-kukui) -All Oak family Chromebooks: +All Oak (mt8173) family Chromebooks: + + + This family has **NO WORKING GPU**. Ultramarine may never fully support this + platform, but stay tuned as things may change. + | Model name/number | Codename | | -------------------------------------------- | -------- | @@ -57,23 +62,17 @@ All Oak family Chromebooks: Source: https://wiki.postmarketos.org/wiki/Google_Oak_Chromebook_(google-oak) -All Gru family Chromebooks: +All Asurada (mt8192) family Chromebooks: -| Model name/number | Codename | -| ------------------------- | -------- | -| Samsung Chromebook Plus | kevin | -| Asus Chromebook Flip C101 | bob | +| Model name/number | Codename | +| ------------------------------------------ | -------- | +| Acer Chromebook 514 (CB514-2H / CB514-2HT) | spherion | +| ASUS Chromebook Flip CM3 (CM3200, MT8192) | hayato | -Source: https://en.wikipedia.org/wiki/List_of_Chromebooks +Source: https://wiki.postmarketos.org/wiki/Google_Asurada_Chromebook_(google-asurada) Follow-up instructions and guide will be provided after acceptance. -### ARM Chromebooks - -A closed alpha for the Kukui, Oak, and Gru family of ARM Chromebooks will be opening in the near future. - -A list of devices can be found here - Contact [Owen Zimmerman](mailto:owen@fyralabs.com) for additional information #### [Next Up: Terminology โ†’](terminology) diff --git a/src/content/docs/en/hardware/anywhere.mdx b/src/content/docs/en/hardware/anywhere.mdx index be66fd54..04a2d805 100644 --- a/src/content/docs/en/hardware/anywhere.mdx +++ b/src/content/docs/en/hardware/anywhere.mdx @@ -14,22 +14,27 @@ By contributing to Ultramarine Anywhere, you can help us bring Linux to more dev not follow the instructions on these pages unless you know what you're doing. +#### If you have any suggestions or comments regarding these pages, don't hesitate to [reach out](/en/community/community). + ## In Progress - [Ultramarine Chromebook Edition](/en/anywhere/chromebook) ## Planned -- [Android Devices](/en/anywhere/android) +- [Raspberry Pi 5](/en/anywhere/rpi) - [Apple Silicon Macs](/en/anywhere/applesilicon) +- [XR and Spatial Computing](/en/anywhere/xr) +- [Android Devices](/en/anywhere/android) +- [Data Centre, Enterprise, and HPC](/en/anywhere/enterprise) ## Completed -- Raspberry Pi +- [Raspberry Pi 3, 4, and 400](/en/anywhere/rpi) ## Wishlist +- [Smart TV Devices](/en/anywhere/ott) +- [Thin Clients](/en/anywhere/thin) - [RISC-V](/en/anywhere/riscv) - [Steam Deck](/en/anywhere/steamdeck) -- [Data Centre, Enterprise, and HPC](/en/anywhere/enterprise) -- [Smart TV Devices](/en/anywhere/ott) diff --git a/src/content/docs/en/hardware/requirements.mdx b/src/content/docs/en/hardware/requirements.mdx index a9492052..37e0c450 100644 --- a/src/content/docs/en/hardware/requirements.mdx +++ b/src/content/docs/en/hardware/requirements.mdx @@ -18,15 +18,10 @@ These are our suggestions for the most basic (daily-driveable) system: ## Minimum Requirements for Raspberry Pi -- Raspberry Pi 4 or newer +- Raspberry Pi 3 or newer - 4GB of RAM **OR** 2GB of RAM without a desktop environment -- 8gb Class 10 MicroSD Card - - - We currently only provide an image without a desktop for Raspberry Pi. This - will be changed in Ultramarine 40. For now, you can install a desktop - environment on the base image. - +- 9GB Class 10 MicroSD Card +- See the [anywhere page](/en/anywhere/rpi) ## Minimum Requirements for ARM Devices Using UEFI @@ -40,4 +35,4 @@ These requirements are the **_bare minimum_** to run Ultramarine Linux. Using Ul - 1gb of RAM - 64-bit processor (x86_64 **OR** aarch64) -- 8gb of disk space +- 10GB of disk space diff --git a/src/content/docs/en/installation/getting.mdx b/src/content/docs/en/installation/getting.mdx index 9afeff14..20781fc3 100644 --- a/src/content/docs/en/installation/getting.mdx +++ b/src/content/docs/en/installation/getting.mdx @@ -16,11 +16,16 @@ Ultramarine Linux comes in 4 variants: - **Flagship Edition**: Our default and most popular variant. Choose Flagship if you'd like a familiar and stylish experience. - **KDE Edition**: Our second most popular variant. Choose KDE if you'd like a simply customisable experience. - **GNOME Edition**: Elegant and Modern. Choose GNOME if you'd like a simple, unique experience. -- **Pantheon Edition**: Thoughtful and Graceful. Choose Pantheon if you'd like a refined experience. +- **Xfce Edition**: Lightweight and Configurable. Choose Xfce if you'd like a lighter experience. + + + Pantheon Edition was dropped in UM40 due to a growing maintenance burden and + shrinking userbase. + Check the [System Requirements](/en/hardware/requirements) to make sure your hardware is supported. -Ultramarine Linux is distributed with ISO files available for download from [our website](https://ultramarine-linux.org). +Ultramarine Linux is distributed in various formats available for download from [our website](https://ultramarine-linux.org). Fyra Labs cannot guarantee the safety or quality of images downloaded from @@ -38,9 +43,25 @@ These builds are currently in beta. If you are planning to test them, please joi (The "Home" and "Base" images are copies of [tauOS](https://tauos.co) - These **ARE NOT READY FOR DAILY USE!!**) +### Raw Images and Raspberry Pi + +Ultramarine is also availible as a raw (or preinstalled) image. These images come with a desktop preinstalled and are intended to be flashed directly to the drive your device will boot from (like an SSD or an SD card.) + +These can be found in the [Raw Image](https://images.fyralabs.com/images/ultramarine/40/) sections of the download page. + + + If you're using a Raspberry Pi 4, you can skip these steps and use Raspberry + Pi Imager! Either insert an empty microSD and press shfit at startup, or use + it on another device. + + +{/* ### Chromebook Edition */} + +{/* Ultramarine is available for most x86 ChromeOS devices. See the [Chromebook Edition section](/en/chromebook/chromebook) for more information. */} + {/* ### Kanopy */} -{/* **Ultramarine Kanopy** is an upcoming variant of Ultramarine Linux, which is made for servers and cloud computing. It is currently in development and does not have a release date yet, but we plan to target Q2 '24 */} +{/* **Ultramarine Kanopy** is an upcoming variant of Ultramarine Linux, which is made for servers and cloud computing. It is currently in development and does not have a release date yet, but we plan to target Qx '2x */} {/* It will be based on Ultramarine OSTree and is designed as a simple and easy-to-use server operating system, with a focus on containerized applications with a simple, easy-to-use web interface as a competitor to TrueNAS SCALE, OpenMediaVault, and other similar operating systems. */} ## Verifying the Safety of an Ultramarine Image (Recommended) @@ -69,21 +90,22 @@ CertUtil -hashfile PATH\TO\ULTRAMARINE.ISO SHA256 # Open the checksum file with Notepad and compare the checksum ``` -## Creating a Bootable Media + + If you're using a Raspberry Pi, stop here and go to the [Raspberry Pi + instructions](/en/installation/rpi) + -### On Other Operating Systems (Windows, macOS, Other Linux Distributions) +## Creating the Installer -Use [balenaEtcher](https://www.balena.io/etcher/) to create a bootable media from the ISO image. +Grab a USB stick! Use a flasher program to create an installer from the image. [balenaEtcher](https://www.balena.io/etcher/) is an easy cross-platform choice. ![](/assets/balenaetcher.png) -Simply select the ISO file, a device to use for the installer, and click flash. +You can also use [Fedora Media Writer](https://github.com/FedoraQt/MediaWriter), or the Disks application on Flagship, Xfce, and GNOME editions. -### On Ultramarine Linux - -You can use the Fedora Media Writer to create bootable media from the ISO image. - -![](/assets/fedoramediawriter.png) + + Rufus has been known to cause issues with Ultramarine images. + ## Booting the Installer @@ -98,7 +120,7 @@ Most computers have a special key that can be used to select a boot device, or t If you're currently using Linux, you may be able to enter the BIOS by running - `sudo systemctl reboot --firmware-setup` + `sudo systemctl reboot --firmware` #### [Next Up: Installation โ†’](/en/installation/installation) @@ -106,5 +128,5 @@ Most computers have a special key that can be used to select a boot device, or t ## Footnotes - The Anaconda installer is very complex and hard to work with, we are working on a new installer that is easier to use and more reliable. -- Since Fedora 37, Fedora's official support for the Pantheon desktop environment has been dropped due to compatibility issues and the Pantheon port is now maintained by the Ultramarine Linux team. This means that the Pantheon desktop environment is only available through Ultramarine Linux, or Fedora with Terra enabled. +- Since Fedora 37 the Ultramarine team has maintained Pantheon, in Ultramarine 40 we will be dropping Pantheon due to major issues with the experience. - Ultramarine's Budgie edition provides a close to stock Budgie experience, with a custom theme. Unlike Fedora's Budgie Spin, which provides a completely custom layout and experience. diff --git a/src/content/docs/en/installation/installation.mdx b/src/content/docs/en/installation/installation.mdx index c6c4070b..c53e669c 100644 --- a/src/content/docs/en/installation/installation.mdx +++ b/src/content/docs/en/installation/installation.mdx @@ -113,6 +113,6 @@ After the installation process is complete, Anaconda will prompt you to reboot y Welcome to Ultramarine Linux! -#### [Next Up: Post-installation โ†’](/en/installation/postinstall) +#### [Next Up: Post-Installation โ†’](/en/installation/postinstall) #### [โ† Back To: Getting Ultramarine](/en/installation/getting) diff --git a/src/content/docs/en/installation/post-advanced.mdx b/src/content/docs/en/installation/post-advanced.mdx new file mode 100644 index 00000000..87c58dfe --- /dev/null +++ b/src/content/docs/en/installation/post-advanced.mdx @@ -0,0 +1,93 @@ +--- +title: Advanced Post-Installation Steps +description: Learn how to further configure your Ultramarine Linux installation. +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +## Use systemd-boot as the bootloader + +Ultramarine Linux currently still uses GRUB as the default bootloader for compatibility reasons. However, if you have a UEFI system, you can simply switch to +systemd-boot, which is a more modern bootloader. + + + This step is optional. You can skip this step if you don't want to use + systemd-boot. Make sure to back up your data and have a live USB ready in case + something goes wrong. Incorrectly configuring a new bootloader can make your + OS unbootable. + + +1. Make sure you turn off Secure Boot in your UEFI settings for now, You can re-enable it later after [Setting up Secure Boot](#set-up-secure-boot) +2. Remove GRUB from protected packages: + +```bash +sudo rm /etc/dnf/protected.d/grub* +``` + +3. Start uninstalling GRUB: + +```bash +sudo dnf remove -y grubby grub2\* memtest86\* && sudo rm -rf /boot/grub2 && sudo rm -rf /boot/loader +``` + +4. Install unsigned systemd-boot binaries and the `sdubby` tool: + +```bash +sudo dnf install systemd-boot-unsigned sdubby +``` + +5. Install systemd-boot to the ESP: + +```bash +# Copy your current cmdline options just in case +cat /proc/cmdline | cut -d ' ' -f 2- | sudo tee /etc/kernel/cmdline +# Install systemd-boot +sudo bootctl install +# Now, reinstall and regenerate the current kernel entry +sudo kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz +# Reinstall the kernel again, just in case we need to trigger some hooks +sudo dnf reinstall -y kernel-core +``` + +6. Reboot your system and make sure it boots correctly, run `sudo bootctl` to check if the boot process is correct. +7. (Optional) Proceed to [Set up Secure Boot](#set-up-secure-boot) if you want to re-enable Secure Boot. + +## Set up Secure Boot + +[Secure Boot] is a UEFI security protocol that secures the boot process by ensuring that +only signed executables are allowed to boot. While Ultramarine Linux's bootloader shim is signed by Microsoft and Red Hat, +you may want to use a different bootloader (i.e systemd-boot or rEFInd) or kernel. In that case, you will need to manually enroll +and sign the files with your own keys. + +Fortunately, there's a tool to automate this called [sbctl]. You can install it from the Terra repository: + + + `sbctl` is only available on Ultramarine/Fedora 40 and later. + + +```bash +sudo dnf install sbctl +``` + +After installing `sbctl`, you can use it to enroll, sign, and manage your Secure Boot keys. For example, to generate a new key and enroll it in your UEFI firmware: + +```bash +# Generate a new key +sudo sbctl create-keys +# Enroll the key +sudo sbctl enroll-keys +``` + +You can then use `sbctl sign` to sign your kernel, initramfs, and bootloader binaries. For example: + +```bash +# Sign the kernel +sudo sbctl sign /boot/vmlinuz-$(uname -r) +``` + +However, once you have installed sbctl, it should've already set up a hook to sign the kernel, initramfs and bootloader binaries automatically on kernel updates. + +After signing the necessary files and enrolling them in your firmware, you can re-enable Secure Boot in your UEFI settings. + +[Secure Boot]: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/oem-secure-boot +[sbctl]: https://github.com/Foxboron/sbctl diff --git a/src/content/docs/en/installation/postinstall.mdx b/src/content/docs/en/installation/postinstall.mdx index 3dbe81ae..5b7c9de7 100644 --- a/src/content/docs/en/installation/postinstall.mdx +++ b/src/content/docs/en/installation/postinstall.mdx @@ -1,5 +1,5 @@ --- -title: Post-installation +title: Post-Installation description: "Things to do after installing Ultramarine Linux." --- @@ -9,7 +9,9 @@ After installing Ultramarine Linux, There are a few things you should do to make ## Install NVIDIA Drivers -If you were connected to the internet during installation, NVIDIA drivers were already installed. Otherwise, you can install them with these commands +NVIDIA drivers were installed during the installation process +if you were connected to the Internet during the time of installation. +If this didn't happen or you missed the chance to enable them on first boot, you can install them with these commands: ```bash sudo dnf update # Update the system first, the drivers may not work right if you don't. @@ -18,9 +20,16 @@ sudo dnf install akmod-nvidia # Install the NVIDIA kernel module. Then, reboot your system. + + + The automatic installation of extra drivers does **not** cover all hardware and may not work on some systems, and is only included + in the live environment. If you are having trouble with the drivers, you can install them manually + using the commands above. + + You MUST wait until the process is finished before rebooting. Rebooting too - early might result in a broken installation! This may take upwards of 15 + early might result in a broken driver installation! This may take upwards of 15 minutes! You can check the progress by running `sudo akmods` @@ -42,7 +51,23 @@ Then reboot your system. ## Install Codecs -Ultramarine Linux includes codecs for most of the media you'll come across. You shouldn't need to install any additional codecs. +Ultramarine Linux includes codecs for most of the media you'll come across. **You shouldn't need to install any additional codecs.** Most of these packages below should be installed by default, excluding +the VLC and MPV media players, and the `libdvdcss` library. + +However, if you find yourself in the situation where you do not have those codecs (if you converted for example), or require additional codecs other than we have provided (i.e obscure formats, or proprietary codecs not included in any repositories), you can look into the following packages: + +- `x264` and `x265` for better H.264 and HEVC video support - Developed by the VideoLAN (VLC) project. +- [FFmpeg](https://ffmpeg.org/) (`ffmpeg`) - A cross-platform multimedia framework that can manipulate, convert and transcode to and from various media formats. +- [VLC Media Player](https://www.videolan.org/vlc/) (`vlc`) - A free and open-source media player that can play most multimedia files, can also be used to test out the codecs' functionality. +- [MPV](https://mpv.io/) (`mpv`) - A free and open-source media player that can also play most multimedia files. Can be used as a lightweight alternative to VLC. +- [libvpx](https://www.webmproject.org/) (`libvpx`) - A free and open-source codec for VP8 and VP9 video formats. +- [libdvdcss](https://www.videolan.org/developers/libdvdcss.html) (`libdvdcss`) - A library that can be used to read encrypted DVDs. This is not legal in some countries, so please check your local laws before using it. We also do not provide decryption keys for any encrypted DVDs. +- [Opus](https://opus-codec.org/) (`opus`) - A free and open-source audio codec that can be used for both speech and music. Should be installed by default. +- [OpenH264](https://www.openh264.org/) (`openh264`) - A free and open-source codec for H.264 video formats. Should be installed by default, required for WebRTC and partially Firefox. +- [aptX](https://www.aptx.com/) (`pipewire-codec-aptx`) - A proprietary codec for high-quality audio streaming over Bluetooth. Required for wireless Bluetooth audio devices that support it. +- `nv-codec-headers` - NVIDIA's codec headers for encoding and decoding video on NVIDIA GPUs. Required for hardware-accelerated video encoding and decoding on NVIDIA GPUs. May not be used by default assuming you do not have an NVIDIA GPU. +- [LAME](https://lame.sourceforge.io/) (`lame`) - A free and open-source MP3 encoder. Required for encoding MP3 files. +- `PackageKit-gstreamer-plugin` - PackageKit plugin that helps you install the above codec packages using GNOME Software/KDE Discover. ## Set up Backups diff --git a/src/content/docs/en/installation/readymade.mdx b/src/content/docs/en/installation/readymade.mdx new file mode 100644 index 00000000..502306c3 --- /dev/null +++ b/src/content/docs/en/installation/readymade.mdx @@ -0,0 +1,16 @@ +--- +title: Installation with Readymade Preview +description: "A guide on how to install Ultramarine Linux with the upcoming new installer " +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +After booting into the live system, you will see a dialog box asking you whether to start the installer or continue with the live system. + +![The Welcome Dialog box](/assets/welcome-window.png) + +You can pick whichever you want, and you'll be able to start the installer later by opening the `Install to Hard Drive` application. + +#### [Next Up: Post-installation โ†’](/en/installation/postinstall) + +#### [โ† Back To: Getting Ultramarine](/en/installation/getting) diff --git a/src/content/docs/en/installation/rpi.mdx b/src/content/docs/en/installation/rpi.mdx new file mode 100644 index 00000000..1b7c77a9 --- /dev/null +++ b/src/content/docs/en/installation/rpi.mdx @@ -0,0 +1,48 @@ +--- +title: " Installation on Raspberry Pi" +description: "How to install Ultramarine Linux on the Raspberry Pi" +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +## System Requirements + +Ultramarine Linux supports the Raspberry Pi 3 and 4. Please see the [Anywhere page](/en/anywhere/rpi) for more information. + +## Selecting a Drive + +The drive you use deeply affects the experience you will have on Ultramarine. + +### Raspberry Pi 3 + +Raspberry Pi 3 supports only microSD cards. Your microSD card must be 9GB or larger, but we suggest 16GB or more so you'll have some space for software. + +You should also look for a class 10 SDHC or SDXC microSD. + +### Raspberry Pi 4 and 400 + +Raspberry Pi 4 supports microSD cards and USB storage. Your storage device must be 9GB or larger, but we suggest 16GB or more so you'll have some space for software. + +The best experience will be with a SATA SSD connected over an adapter. A USB 3.0 flash drive will be slightly better to on-par with a nice microSD card. All of the options are good, it's up to your needs. + +## Flashing the Image + + + If you're using a Raspberry Pi 4, you can skip these steps and use Raspberry + Pi Imager! Either insert an empty microSD and press shfit at startup, or use + it on another device. + + +Grab a USB stick! Use a flasher program to flash Ultramarine to your storage device. [balenaEtcher](https://www.balena.io/etcher/) is an easy cross-platform choice. + +![](/assets/balenaetcher.png) + +Simply select the raw.xz file (you don't need to decompress it), the device you're using, and click flash. + +You can also use the Disks application on Flagship, Xfce, and GNOME editions. + +## First Boot + +On first boot, the root file system will automatically be expanded, youโ€™ll be prompted with a user creation screen. Create your user and youโ€™ll be ready to go! + +Thatโ€™s it! Youโ€™re ready to enjoy Ultramarine on your Raspberry Pi! Weโ€™re working hard on making the experience better so stay tuned! diff --git a/src/content/docs/en/linux/filesystem.mdx b/src/content/docs/en/linux/filesystem.mdx index 40963d99..5f471cfe 100644 --- a/src/content/docs/en/linux/filesystem.mdx +++ b/src/content/docs/en/linux/filesystem.mdx @@ -5,74 +5,45 @@ description: "An overview of the file system in Linux." import Alert from "../../../../components/Docs/Alert.astro"; -The Linux (and UNIX) file system is a hierarchical structure of files and directories (i.e. folders) that make up a Linux operating system. - -In Linux, everything is a file, unlike Microsoft Windows where many other object types can either be a physical device, and inter-process communications are done by kernel calls. - - -
- If you prefer a video, this one is a good crash course. - -
-
+There are a few notable differences in how files work on Linux when compared to Windows or macOS. -## The File System Hierarchy - -The file system hierarchy is a set of directories that appear under the root directory `/`. They not only contain normal files, but also physical devices, virtual devices, and various other special files that control the system itself. - -The directory structure is as follows: - -| Directory | Description | -| :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| / | The root directory with the all the other directories and files. | -| /bin | Executables and command binares required for a functioning system. | -| /boot | The bootloader and files used during early boot process. May usually be in a separate partition. | -| /dev | Special device files for various purposes (`/dev/sda` for a SATA drive, `/dev/null` for blank data, `/dev/random` for pseudo-random data, `/dev/tty` for terminal sessions, etc). | -| /etc | System-wide settings and configuration files. | -| /home | User data. | -| /lib | Libraries required for executables in `/bin` to function. May be also named `/lib` for multi-architecture support. | -| /media | Mount points for removable media, such as USB drives, SD cards, etc. | -| /mnt | Temporary mount points for mounting devices. | -| /opt | Optional packages that may be installed by the user. | -| /proc | Process data and kernel information for inter-process communication managed by the kernel. | -| /root | User data for the root user. | -| /sbin | Executables for system tasks. | -| /srv | Shared service data used by server processes, such as web servers and NAS/File servers. | -| /tmp | Temporary data. | -| /usr | Shared application data used by all users. | -| /var | Variable data used by system processes. | +The most noticeable difference is case sensitivity. Windows and macOS are case-insensitive, meaning that `FOLDER` and `Folder` are the same folder. Linux on the other hand is case-sensitive, so `FOLDER` and `Folder` are two different folders. -## The Home Directory - -The home folder is the place where all your personal data is stored. It is a directory that is located under the `/home` directory, followed by the username. It is similar to the `Users` folder in Windows. +In Linux, and more widely, UNIX, everything is a file. Unlike Windows which has other object types to represent physical devices. -In Linux, the home folder is usually more extensively used than in Windows, as it stores all user-specific data and app settings. The system folders are only used when one wants to make system-wide changes. +## The File System Hierarchy - - If an app you don't know asks you for your password or root access, It may be - trying to compromise your system. Cases like this are usually uncommon on - Linux, but you should be aware of it. - +Unlike Windows, Linux has a standardized file system hierarchy (FSH.) The FSH is contained within `/` (often called root.) They not only contain normal files, but also physical devices, virtual devices, and various other special files that control the system itself. -## Security +It should also be noted that Linux uses a forward slash (`/`) to represent going deeper in a directory, unlike Windows which uses a backslash (`\`) -Ultramarine Linux uses SELinux, a software that implements Mandatory Access Control. This prevents applications (and users) from accessing files they shouldn't be able to. +The directory structure is as follows: -Users will usually be required to have root access to modify system files, and even then, SELinux may prevent you from doing so unless you have set the correct contexts for the files. +| Directory | Description | +| :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| / | The root directory with the all the other directories and files. This is as far back as you can go | +| /bin | Executables and command binares required for a functioning system. Most applications installed from RPM end up here. | +| /boot | The bootloader and files used during early boot process. May usually be in a seperate partition. | +| /dev | Special device files for various purposes (`/dev/sda` for a drive, `/dev/null` for blank data, `/dev/random` for pseudo-random data, `/dev/tty` for terminal sessions, etc). | +| /etc | System-wide settings and configuration files. | +| /home | User files. This is where your stuff lives! | +| /lib | Libraries required for executables in `/bin` to function. May be also named `/lib`. | +| /media | Mount points for when the system mounts removable media, such as USB drives, SD cards, etc. | +| /mnt | Temporary mount points for media. Usually used when manually mounting a drive. | +| /opt | Optional packages that may be installed by the user. Most packages don't actually install here. | +| /proc | Process data and kernel information for inter-process communication managed by the kernel. | +| /root | User data for the root user. Don't confuse this with `/` (root) | +| /sbin | Executables for system tasks. | +| /srv | Shared service data used by server processes, such as web servers and NAS/File servers. | +| /tmp | Temporary data. | +| /usr | Shared application data used by all users. | +| /var | Variable data used by system processes. | -By default, SELinux is in "Enforcing" mode, which means that it will prevent you from modifying system files unless you have the correct permissions. This shouldn't cause any issues. If you would like to disable SELinux you can run`sudo setenforce 0`. We don't recommend this as it makes your system less secure. +## The Home Directory -[Learn more about SELinux โ†’](https://www.redhat.com/en/topics/linux/what-is-selinux) +The home folder is the place where all your personal data, and most of your apps are stored. It is a directory that is located under the `/home` directory, followed by your username. It is similar to the `Users` folder in Windows. -[Learn more about Permissions โ†’](/en/linux/permissions) +In Linux, the home folder is usually more extensively used than in Windows, as it stores all user-specific data, settings, and the majority of your applications (Flatpaks). The system folders are only used when making system-wide changes or installing applications from DNF or an RPM File. ## Virtual Memory @@ -102,7 +73,6 @@ It currently supports most file systems that are supported by the Linux kernel, And extra file system drivers can be installed, such as: -- exFAT - ZFS The Ultramarine Linux installer will be configured to use the BTRFS file system by default, as it is the most modern file system that is supported by the Linux kernel, and has many features that are useful for desktop users, such as snapshots, virtual volumes, journalling, error correction and compression. @@ -118,6 +88,6 @@ Most server installations will use XFS or ZFS, as they have better performance a Ultramarine Linux can also mount remote file systems from a remote server or NAS, using the NFS, (S)FTP, SMB, and WebDAV protocols. -#### [โ† Back To: Concepts](/en/linux/overview) +#### [โ† Back To: What is Linux?](../overview) -#### [Next Up: Device Files โ†’](/en/linux/devicefiles) +#### [Next Up: Device Files โ†’](../devicefiles) diff --git a/src/content/docs/en/linux/overview.mdx b/src/content/docs/en/linux/overview.mdx index ac14c34a..e2f804a4 100644 --- a/src/content/docs/en/linux/overview.mdx +++ b/src/content/docs/en/linux/overview.mdx @@ -1,23 +1,50 @@ --- -title: Concepts Overview +title: What is Linux? description: "A general overview of Linux concepts." --- import Alert from "../../../../components/Docs/Alert.astro"; -This article and this section outlines the concepts of Linux, GNU, and UNIX concepts. +Linux refers to a family of operating systems with one common feature: the Linux kernel. -## What is Linux? +Linux is distributed uniquely compared to Windows or macOS. Multiple (seperate) groups take the Linux kernel and combine it with tons of other software before distrbuting it as a distinct operating system. These compilations are called "distributions" (but we'll shorten that to distro.) -Linux is technically an open-source kernel which provides core functionalities to an operating system and an interface between programs and hardware. Ultramarine itself is built on Linux. +Ultramarine Linux is based on another disribution of Linux called Fedora. See ["Why does this distro exist?"](/en/welcome#why-does-this-distro-exist-what-difference-does-it-have-other-than-just-fedora-with-rpmfusion) for more on that. -Linux is not a complete operating system by itself. Operating systems that ship the Linux kernel, are usually packaged along with a separate suite of programs known as GNU. -This kind of operating system is often referred to as GNU/Linux, or Linux for short; a branded operating system shipping the GNU software collection, the Linux kernel and other extra software -(which are sometimes built and distributed using a custom packaging system), and/or containing specific default configurations/features, is said to be a GNU/Linux distribution, or a distro for short. +## Why use Linux? + +People use Linux on the desktop for all sorts of reasons. For our purposes, we'll split this into four categories: Customization, Freedom, Security, Privacy. + +### Customization + +Linux is incredibly customizable. You can change anything from the way your desktop icons look to the way apps load and the behavior of the device itself. Ultramarine provides easy ways to do this, like theme support, power management profiles (in most editions) and the upcoming tweak tool. + +### Freedom + +When we say freedom, we mean it in two ways. This is often described as "free as in beer" V.S. "free as in speech". Linux will cost you no money, and will allow you to do essentially whatever you'd like. + +For example: Edge cannot be removed from a Windows computer. Meanwhile on Linux, there is no such limitation. Essential apps like the file manager can be exchanged for one of many alternatives. Complete freedom. + +### Security + +Linux is more secure by design, with features like Mandatory Access Controls and stricter permissions, you can learn more about those features on the [Permissions](/en/linux/securityprivacy) page. + +Linux is also resistant to many common viruses due to these features (and inexperienced developers.) This is becoming less true as Linux marketshare grows, but you are significantly less likely to get an incidental virus on Linux than Windows. + +### Privacy + +It's no secret that the big three of operating systems are watching what you do in some way. Linux vendors tend not to do this, and even if they do, you can easily switch to a compatible alternative or simply disable the telemetry. + +## How is Ultramarine Different? + +Ultramarine Linux is designed to get a lot of the configuration out of the way. We include extra components (like media codecs and drivers) that many other distrbutions don't include. + +Ultramarine is built on Fedora, the base for Red Hat's Enterprise Linux. This means that the software backing Ultramarine has been built with the stability needed for mission critical systems.
- An abridged video of this article can be found here: + If you'd like a crash course on the basics, this video should cover a lot of + what the following pages will cover +
+
+ +#### [Next Up: The Filesystem โ†’](../filesystem) diff --git a/src/content/docs/zh_hant/linux/permissions.mdx b/src/content/docs/zh_hant/linux/permissions.mdx new file mode 100644 index 00000000..c0c76b34 --- /dev/null +++ b/src/content/docs/zh_hant/linux/permissions.mdx @@ -0,0 +1,30 @@ +--- +title: Permissions +description: "How permissions work on Linux." +--- + +On Linux, permissions are used to determine who can read, write, and execute files, or do certain actions. + +Users are separated into various groups with different IDs, and each file or action can be assigned a permission level. + +A user can be assigned a permission level that is higher than the permission level of the group they are in. And users in a group can do certain things that other users cannot. + +However, users in UNIX-like operating are more akin to a principal, as these "users" may not actually be a person, but a program. + +Files are owned by a user and can be assigned a permission level. The user who owns the file can modify the file and modify the permissions of the file. + +Permission levels are displayed in octal and are represented by several digits. The first digit is the owner, the second is the group, and the third is the other users. Permissions range from 0 to 7, with 0 being no access, and 7 being full access. + +## The Root User + +The root user (or the superuser) is a special user that grants access to all files and actions. It is akin to the Administrator on Windows. + +To execute commands as the root user, use the `sudo` command, followed by the command you want to execute. + +```bash +sudo dnf install vim # This will install vim as the root user +``` + +#### [โ† Back To: Device Files](/en/linux/devicefiles) + +#### [Next Up: Software and Package Management โ†’](/en/linux/software) diff --git a/src/content/docs/zh_hant/linux/securityprivacy.mdx b/src/content/docs/zh_hant/linux/securityprivacy.mdx new file mode 100644 index 00000000..1f1e6526 --- /dev/null +++ b/src/content/docs/zh_hant/linux/securityprivacy.mdx @@ -0,0 +1,44 @@ +--- +title: Security and Privacy +description: "How Ultramarine keeps you safe" +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +## Mandatory Access Controls + +Ultramarine Linux uses SELinux, a software that implements Mandatory Access Control. This prevents applications (and users) from accessing files they shouldn't be able to. + +Users will usually be required to have root access to modify system files, and even then, SELinux may prevent you from doing so unless you have set the correct contexts for the files. + +By default, SELinux is in "Enforcing" mode, which means that it will prevent you from modifying system files unless you have the correct permissions. This shouldn't cause any issues. If you would like to disable SELinux you can run`sudo setenforce 0`. We don't recommend this as it makes your system less secure. + +[Learn more about SELinux โ†’](https://www.redhat.com/en/topics/linux/what-is-selinux) + +[Learn more about Permissions โ†’](/en/linux/permissions) + +## Privilege Control + +Ultramarine Linux includes polkit, a tool used to manage privilege elevation. If you've ever gotten a graphical password prompt on your system, you've interacted with polkit. + + + +Use the `pkexec` command instead of `sudo` to give polkit a try. + + + +polkit also manages communication between privileged and non privileged applications. + +## Disk Encryption + +Ultramarine Linux offers the option to encrypt your entire disk at install time. This protects your data from physical attacks and theft. + +## Sandboxing + +When you install an app as a Flatpak, it's contained within a sandbox, meaning it can't see what other apps are doing, and can't see files it isn't allowed to. + +## Restricted Memory Access + +Ultramarine Linux and Fedora restrict access to physical memory. This should prevent most memory injection attacks. + +#### [โ† Back To: The Shell](/en/linux/shell) diff --git a/src/content/docs/zh_hant/linux/shell.mdx b/src/content/docs/zh_hant/linux/shell.mdx new file mode 100644 index 00000000..93181051 --- /dev/null +++ b/src/content/docs/zh_hant/linux/shell.mdx @@ -0,0 +1,202 @@ +--- +title: The Shell +description: "How the shell works in Linux." +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +The shell is a command line interface to the operating system. It is a program that allows you to directly execute commands and interact on deeper level. + +You may be familiar with Bash from other Linux distributions. Ultramarine uses the [zsh](https://en.wikipedia.org/wiki/Z_shell) instead of bash. We also use [Starship Prompt](https://starship.rs/) to provide additional convenience features like displaying the current git branch. + + +
+ To learn more about shell scripting, you can watch this Bash introduction + video by Fireship here: + + NOTE: The Z shell is mostly compatible with Bash, so most of the knowledge you + will learn will be mostly applicable in Ultramarine Linux. +
+
+ +## Interacting with the Shell + +To start using the shell, open the Terminal app. + +![The GNOME Terminal](/assets/terminal.png) + +You will be greeted with a prompt, simply type in the command you want to execute, and press `EnterโŽ`. + +To change directories, type `cd` followed by the path you want to change to. + +```zsh +cd /home/user/Documents +``` + +To list the contents of a directory, type `ls` followed by the path of the directory of which you want to list the contents of. + +```zsh +ls /home/user/Documents +``` + +The directory path is an optional argument. Running `ls` with no arguments will print the contents of the current working directory (the folder you `cd`ed into). + +The `ls` command, especially, has a lot of useful flags (i.e. execute `ls -a`, `-a` being the flag). Below is a table of the most important flags for `ls`. + +| Flag | Modification | +| :--- | :---------------------------------------------------------------------------- | +| `-a` | List all files in a directory, including hidden files which begin with a `.`. | +| `-d` | List specified directories without listing their content (try `ls -d /`). | +| `-t` | Sort the output in the order of modification time; latest first. | +| `-r` | Sort output in reverse order. | +| `-l` | List one file per line. Also display information about the files listed. | + +The output of `ls -l` includes columns of information about each file in the following order: file type, permissions, number of symlinks, file owner, file size, date of last modification, and file name. + +``` +total 4 +drwxr-xr-x 2 bob bob 4096 Jan 1 13:00 dir +-rw-r--r-- 1 bob bob 0 Jan 1 12:00 file +-rwxrwxrwx 1 ann ann 1337 Jan 1 11:00 file2 +``` + +Symbolic links (symlinks) are, as the name would imply, links between files. Changes to files are synced between symlinks. To create a symlink between two files, type `ln`, followed by the `-s` flag and two arguments: one being the original file, and the other being the path to the new symlink. + +```zsh +ln -s file newfile +``` + +From now on, when `file` is changed, the change will also be applied to the linked `newfile`. + +To read a file to the terminal, type `cat` followed by the path to the file. + +```zsh +cat /home/user/Documents/README.md +``` + +To delete a file, type `rm` followed by the path to the file. + +```zsh +rm /home/user/Documents/README.md +``` + +To delete a full directory, recursively delete it by typing `rm -r` followed by the path to the directory. + +```zsh +rm -r /home/user/Documents +``` + + + Most users will usually execute `rm -rf` instead of `rm -r`. The `-f` flag is + used to force the deletion of a file or directory. + + +To create a new file, type `touch` followed by the path to the file. + +```zsh +touch /home/user/Documents/newfile.txt +``` + +To create a new directory, type `mkdir` followed by the path to the directory. + +```zsh +mkdir /home/user/Documents/newdir +``` + + + To create a new directory inside of another new directory (i.e. + `.../newdir/newdir2`), execute `mkdir` with the `-p` flag. + + +To move or rename a file or directory, type `mv` followed by the path to the file or directory, and then the new path. + +```zsh +mv /home/user/Documents/newfile.txt /home/user/Documents/newfile2.txt +``` + +To copy a file and optionally rename the copy, type `cp` followed by the path of the file, and then the path to the new file. + +```zsh +cp file newfile +``` + + + To copy a directory, type `cp` with the `-r` (recursive) flag. + + +For both the `cp` and `mv` commands, you may move multiple files into a directory at once. The target directory must exist. + +```zsh +mv file file2 dir dir2 /path/to/target/dir/ +cp -r file file2 dir dir2 /path/to/target/dir/ +``` + +To know more about each command, open the manual by typing `man` followed by what you want to learn about + +``` +man sudo +``` + +This will open `less`, an app that allows you to read through long lines of text as a scrollable page. + +To exit `less` press `q`. + +Most commands will also have a `-h` or `--help` flag, which tells you more about the command. + +## The Pipeline + +Linux offers a way for inter-process communication through pipes. + +The pipeline you to transfer data from one process to another, and is used to execute commands in parallel. + +```zsh +echo "Hello World" | wc -w +``` + +This calls the `wc` (word count) command, which counts the number of words in the text. Then pipes the output of `echo` to it, which then outputs the number of words. This is a very simple example of a pipeline. + +A named pipe is created by using `>` instead of `|`. + +```zsh +echo "Hello World" > pipe.txt +``` + +This pipes the output of `echo` to the named pipe `pipe.txt`, which is now a file. + +## Executing a File + +To execute a program, you must first make sure that the file is executable. This is done by using the `chmod` command. + +```bash +chmod +x /path/to/exec +``` + +Then you can execute the file by directly pointing to it. + +```bash +/path/to/exec +``` + +For files in your current folder, you must use `./` before the file name. + +```bash +./exec +``` + + + Executables are often moved into a directories listed in the `$PATH` variable + (run `echo $PATH`). The filenames of executables in `$PATH` can be executed as + commands (i.e. `custom-command` will run `/usr/local/bin/custom-command`) + + +#### [โ† Back To: Software and Package Management](/en/linux/software) + +#### [Next Up: Security and Privacy โ†’](/en/linux/securityprivacy) diff --git a/src/content/docs/zh_hant/linux/software.mdx b/src/content/docs/zh_hant/linux/software.mdx new file mode 100644 index 00000000..b1bd9c25 --- /dev/null +++ b/src/content/docs/zh_hant/linux/software.mdx @@ -0,0 +1,99 @@ +--- +title: Software and Package Management +description: "How to manage software on Linux." +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +There are many different ways to install software on Linux. + +## The Package Manager + +Unlike Windows, most software for Ultramarine Linux is stored in online collections of software called repositories. You can browse and install software (packages) from these repositories using something called a package manager. + +### Flatpaks + +Flatpak is the primary package manager for regular apps. It installs applications in a sandbox, keeping them separate from anything they don't need to access. + +Flatpaks can be installed from **Software** on Budgie and GNOME, **AppCenter** on Pantheon, and **Discover** on KDE. + +You can browse the available software in one of these app stores, or on the [Flathub website](https://flathub.org/). + +Despite most applications being installed from Flatpak, some apps may not work properly, or may not be available at all. The following sections will help with software in other formats. + +### Software Downloaded from the Internet + +Sometimes, the software you need may come as a package file downloaded from the internet. + +#### RPM Packages + +To install RPMs on Flagship, GNOME, or KDE, simply double-click it. + +To install an RPM on Pantheon, open a Terminal and run + +``` +sudo dnf localinstall /path/to/package.rpm +``` + +(Replacing `/path/to/package.rpm` with the real path, it's usually `~/Downloads/package.rpm`) + +#### AppImages + +1. Install AppImage Launcher from **Software** or **Discover**. On Pantheon Edition, run + +``` +sudo dnf install appimagelauncher +``` + +2. Double-click the file and you're done! + +We recommend avoiding AppImages as they are not automatically updated and may have compatibility issues. + +### Snap + +Snap is a package manager made by Canonical for Ubuntu. It contains a large amount of proprietary applications that you may not be able to find elsewhere. + + + +Snap may cause your system to run noticeably slower. + + + +To get started, install Snap. + +```bash +sudo dnf install snapd +``` + +Then, verify snap is working + +```bash +sudo snap install helloworld +helloworld +``` + + + +Snap packages load slowly and may not work at all on editions other than GNOME. We recommend avoiding Snaps. + + + +### DNF + +Ultramarine Linux uses the DNF package manager. While this package manager primarily handles system software (like the kernel, and your desktop environment) it can install user apps as well. + +```bash +sudo dnf install steam # Install Steam +``` + +You can also install groups of packages, like full desktop environments or a suite of tools for music production, using the `dnf groupinstall` command. + +```bash +sudo dnf groupinstall "Audio Production" # installs multiple packages at once, in this case a suite of music/audio production tools +``` + +For a full list of available groups, run `sudo dnf group list` + +#### [โ† Back To: Permissions](/en/linux/permissions) + +#### [Next Up: The Shell โ†’](/en/linux/shell) diff --git a/src/content/docs/zh_hant/release/errata.mdx b/src/content/docs/zh_hant/release/errata.mdx new file mode 100644 index 00000000..97cb2da1 --- /dev/null +++ b/src/content/docs/zh_hant/release/errata.mdx @@ -0,0 +1,104 @@ +--- +title: Errata +description: "Various known bugs and other issues in Ultramarine Linux." +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +This page contains bugs that we can't solve or that are easily solvable by users. We remove them as they are resolved. + +Releases older than 37 will not have their eratta modified as we do not have records of fixing the issues. + +## All Versions + +- Installer scripts may not work + +This is solved by distributors including Ultramarine as a synonym to Fedora. + +### Ultramarine Linux 40 + +### Xfce Edition + +- Login screen wallpaper is Fedora's + + This is a small issue with our tweaks not being applied. We should have this fixed in an update soon. + +### Pantheon Edition + +- Pantheon is upgraded but login does not work + + We are still debating Pantheon's fate, but as of now Pantheon is not included in Ultramarine 40 and probably will stay that way. + +## Ultramarine Linux 39 + +### Pre-release Images + +- We accidentally released pre-release versions of Ultramarine. + + A small handful of users and reviewers got their hands on these images. These images do not reflect the final release, if you used one and it was buggy, we invite you to try the final release, as many of the bugs were fixed. + +### Budgie Edition + +- Budgie wallpapers may be installed instead of Ultramarine wallpapers. + +### Package Groups + +- Misspelled "environment" as "enviroment". + +This is now fixed in Ultramarine 39 and has been backported to 38. + +## Ultramarine Linux 37 (EOL) + +### Pantheon + +- The wallpaper is not set by default. Please set your own wallpaper. + +## Ultramarine 36 (EOL) + +### Applications + +- Firefox Still Includes Fedora Bookmarks + + Firefox depends on fedora-bookmarks. You can simply remove the bookmarks yourself + +### Installer + +- Anaconda Shows a Warning about the System Being Pre-Release + +Anaconda can't find product information about Ultramarine and assumes it's a pre-release version of Fedora or RHEL. + +### Package Management + +- DNF Tells the User There Are No Repositories Available for a COPR Project + +This is due to the fact that the DNF Copr plugin detects the OS ID `/etc/os-release` file, and Ultramarine uses a custom code instead of `fedora`. + +A workaround is to also specify the Fedora buildroot when trying to add a Copr repository. + +### GNOME Edition + +- Pop!\_Shell launcher + +The Pop!\_Shell launcher is not included. This can be fixed by installing the `pop-launcher` package. + +### Cutefish Edition + +- SDDM Displaying Black Screen + +SDDM may display a black screen when starting up. This is a known issue, but there is no known fix as of yet. (Possibly an upstream bug, help needed.) + +### Pantheon Edition + +- Missing Switchboard (Settings) menus + +This was caused by missing Pantheon Switchboard modules, which are not included in Ultramarine Linux due to time constraints. + +You can help us fix this issue by offering to maintain these packages ourselves, or by [contributing to help submit them to upstream Fedora.](https://fedoraproject.org/wiki/SIGs/Pantheon) + +### OSTree Edition + +- Missing Tweaks from the Standard Releases + +As the standard release includes a script to modify the system, due to the nature of OSTree, we are unable to include these tweaks unless we rebuild all major packages with our custom patches. + +You can help us fix this issue by contributing and maintaining these packages yourself. diff --git a/src/content/docs/zh_hant/release/upgrade-to-ultramarine-40.mdx b/src/content/docs/zh_hant/release/upgrade-to-ultramarine-40.mdx new file mode 100644 index 00000000..0da11d0d --- /dev/null +++ b/src/content/docs/zh_hant/release/upgrade-to-ultramarine-40.mdx @@ -0,0 +1,36 @@ +--- +title: Upgrade to Ultramarine 40 +description: "A temporary notice for the 39 to 40 upgrade path." +--- + +This page is a temporary notice for upgrading Ultramarine 39 to 40. +For this release cycle, we've decided to release an upgrade path before the full distrbution release. +This should let existing users enjoy the new set of packages in 40 sooner. +A full blog post detailing changes will be published for the full distrbution release. + +## Flagship, GNOME, and KDE Editions + +You can use the editon's graphical app store to upgrade your system to 40. +On Flagship and GNOME, this will be GNOME Software, while on KDE, this will be Plasma Discover. + +You might need to update your system normally before the upgrade to 40 shows up in the app store. + +## Pantheon Edition + +The Pantheon upgrade path isn't ready yet. +While all of the required packages are in the UM and Terra repositories, the Pantheon desktop enviroment is broken for a variety of reasons. +We are currently working with upstream and other partners to resolve this, but it's possible that Pantheon may be skipped, deprecated, or defered until mid-cycle. +If you are interested in contributing to Ultramarine Pantheon, please join [our chats](en/community/community) and let us know! + +## Command line + +In case the above doesn't work, you can always upgrade through the command line, using `dnf system-upgrade`. + +Run the following and follow the prompts: + +```sh +sudo dnf upgrade --refresh +sudo dnf install dnf-plugin-system-upgrade +sudo dnf system-upgrade download --releasever=40 +sudo dnf system-upgrade reboot +``` diff --git a/src/content/docs/zh_hant/usage/gaming.mdx b/src/content/docs/zh_hant/usage/gaming.mdx new file mode 100644 index 00000000..97cb1f12 --- /dev/null +++ b/src/content/docs/zh_hant/usage/gaming.mdx @@ -0,0 +1,84 @@ +--- +title: Gaming on Ultramarine +description: "Extra instructions for gaming on Ultramarine Linux." +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +Sometimes, you may want some downtime from work and have fun. While Ultramarine Linux is not primarily optimized for gaming, it is still a great platform for gaming, as it already has some performance optimizations applied out of the box, and can be further optimized with some tweaks. + +# Performance + +# Gaming Platforms + +## Steam + +[Steam](https://steampowered.com) is a great PC gaming platform, and it has native support for Linux. Many game publishers publish their games on Steam, and some even natively support Linux. Steam offers discounts for games published on their platform, and also has a built-in overlay for chatting with friends, taking screenshots, and more. + +Steam runs on the Chromium Embedded Framework (CEF), which essentially means that most of the UI is created using web technologies. + +You can install Steam in 2 ways: + +1. Install the `steam` package from the RPM Fusion repository. (system-wide) +2. Install the Steam flatpak from Flathub. (user-only) + +The first option is recommended, as it has better system integration. However, the second option is also available if you are running Ultramarine OSTree/Kanopy/CoreOS, or if you want to keep Steam isolated from the rest of the system. + +### Proton + +If your game does not support Linux, or the Linux version happens to be inferior to the Windows version, you can use Steam's Proton compatibility layer to run Windows games on Linux. Proton is based on Wine, and it is developed by Valve. + +If the game you're trying to play doesn't work on Proton, check back in a week, it's quite possible that it will work after Proton updates or active work from Valve. + +### Slow Download Speeds + +There have been recent reports of slow download speeds on Steam due to issues with the Steam client and HTTP/2, see the relevant [Steam for Linux issue](https://github.com/ValveSoftware/steam-for-linux/issues/10248) for more information. + +If you are experiencing slow download speeds and aren't sure why, you can try disabling HTTP/2 in Steam by adding the following lines to the `~/.steam/steam/steam_dev.cfg` file and restarting steam: + +``` +@nClientDownloadEnableHTTP2PlatformLinux 0 +@fDownloadRatelmprovement ToAddAnother Connection 1.0 +``` + +### Apex Legends + +Apex Legends can run on Linux using Steam's Proton compatibility layer, plus the Easy Anti-Cheat runtime. The game has Linux support for anti-cheat, but the game binaries are Windows only. + +## Heroic Games Launcher + +The Heroic Games Launcher is a native Linux client for the Epic Games Store and GOG Galaxy. It supports downloading and installing native Linux games from GOG, and running Windows-only games from both GOG and Epic Games Store using Wine/Proton. + +## Lutris + +Lutris is a game launcher for Linux. It supports installing and managing your game library from various sources, including Steam, GOG, EA Origin, and its own community-provided installers. It also supports running Windows-only games using Wine/Proton. + +### League of Legends + +League of Legends is a popular MOBA game developed by Riot Games. It is available on Windows, macOS, and Android. It is not officially supported on Linux, but it can be run using a special build of Wine by GloriousEggroll. + +### EA Desktop + +Games that use EA's Origin platform or EA Desktop can be run using Lutris. You can install the EA Desktop client using the Lutris installer, and then install your games from there. + +### Epic Games Store + +Please refer to the [Heroic Games Launcher](#heroic-games-launcher) section. + +## Bottles + +Bottles is a tool for managing Wine prefixes. It is similar to Lutris, but is more focused on creating and managing Wine prefixes for multiple applications rather than creating each prefix for a single game or application. + +Installing Bottles is only supported as a Flatpak. Any other version of bottles is not supported by the Ultramarine Linux Team. + +### Overwatch + +Overwatch is a popular team-based FPS game developed by Blizzard Entertainment. It is available on Windows, macOS, PlayStation 4, Xbox One, and Nintendo Switch. It is not officially supported on Linux, but it can be run using Wine/Proton. + +Overwatch 2 can be run in a Bottles prefix, simply install the game using the Blizzard Battle.net app and run it from the Bottles launcher. + +Overwatch 2 is now also on Steam, and can be run using Proton. + +### Valorant + +Valorant is a popular FPS game developed by Riot Games. It is available on Windows. It will not run on Linux, as it uses a kernel-level anti-cheat software that is not compatible with Wine/Proton. diff --git a/src/content/docs/zh_hant/usage/l10n.mdx b/src/content/docs/zh_hant/usage/l10n.mdx new file mode 100644 index 00000000..bc80dc96 --- /dev/null +++ b/src/content/docs/zh_hant/usage/l10n.mdx @@ -0,0 +1,313 @@ +--- +title: Localization, Internationalization and Multilingualization +description: How to make your Linux system support other languages and even improve the support +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +Localization (l10n) and internationalization (i18n) support in Ultramarine Linux is crucial as +half of the project team speaks something other than English natively. This page contains details on +how i18n works and how it can be set up on Ultramarine. + +# Fonts + +Ultramarine should come with fonts for most if not all languages by default. Fonts for CJKV, Thai, +Indic languages are installed out of the box. If you find any glyphs supported by Unicode not +rendered correctly, [file a bug report]. + +## Font Priorities + +Chinese users might experience issues where Japanese fonts are preferred over Chinese ones simply +because the locale code `ja_JP` is before `zh_*` when sorted alphabetically. To solve this issue, +edit `~/.config/fontconfig/fonts.conf` (or `/etc/fonts/local.conf` for global changes): + +```xml + + + + + sans-serif + + Noto Sans CJK TW + Noto Sans + HanaMinA + + + + serif + + Noto Serif CJK TW + Noto Serif + HanaMinA + + + +``` + +# Inputting in another language + +You may change your key maps / keyboard layout in the settings applet. Refer to documentations for +your chosen Desktop Environment (DE) or Window Manager (WM) for more details. + +## IMFs, IMEs and IMs + +Special tools are required to type in CJKV (Chinese, Japanese, Korean and Vietnamese) and other +specific languages. + +**Input Method Frameworks (IMFs)** are software that enable users to type in numerous different input +methods. They provide a unified experience and user interface between IMEs and the DE/WM. + +**Input Method Editors (IMEs)** are software that convert user inputs into actual texts in different +languages. + +**Input Methods (IMs)** refer to the actual conversion between the input keys and the output text. IMs +are not actual software; there must be an IME that intercepts the inputted keys and map them into +output texts, where the mapping is specified by the IM. + +As an example, a Japanese KDE user would install `fcitx5-mozc` in order to type Japanese. In this +case, Fcitx5 is the IMF, Mozc is the IME, and the IM can be Romaji or Kana input depending on the +user's preference. + +A Cantonese GNOME user from Hong Kong learning Korean would install `ibus-rime` with Jyutping and +Cangjie support alongside `ibus-hangul` for Korean support. Here, IBus is the IMF, Rime IME provides +support for the Jyutping IM and Cangjie IM, while libhangul IME provides support for the Hangul IM. + +In most typical cases, only 1 IMF is installed in a system. However, multilingual users may choose +to install multiple IMEs so that they can type in multiple languages. + +## Fcitx5 vs IBus + +**IBus** (Intelligent Input Bus) is an IMF usually used in GTK-based desktop environments. If you +are using GNOME/Budgie, you most likely will choose IBus over Fcitx5 due to GNOME Desktop's tight +integration with IBus. Even though IBus's initial release was back in August 2008, releases are +still rather frequent and the project is still being maintained. + +**Fcitx5** is a newer IMF implementation and provides support for many different languages with a +slim core extensible with different addons and IMEs. It is the successor to Fcitx. If you are using +DEs that are not GTK-based (such as KDE Plasma which uses Qt) or any WMs, you should choose Fcitx5. + +There are no strict rules on which one to choose, you can install Fcitx5 even though you use GNOME, +and you can also install IBus on a KDE system. Things come down to personal preferences. + + + IBus will not work inside Window Managers. + + +## Setting up Fcitx5 on KDE + +1. Install your chosen IMEs (see the table below) alongside `kcm-fcitx5` and `fcitx5-configtool`. + + - Install `fcitx5-qt` and `fcitx5-gtk` for Qt/GTK support. + +2. Enable Fcitx 5: + + - On Wayland (default), go to _Settings > Input Devices > Virtual Keyboard_, and select _Fcitx 5_. + - If Fcitx 5 does not work even after a reboot, try running `im-chooser` and select _Fcitx 5_. + - On X11, install `fcitx5-autostart`. + - If Fcitx 5 does not work even after a reboot, try setting the following in `/etc/environment`: + ``` + GTK_IM_MODULE=fcitx + QT_IM_MODULE=fcitx + ``` + +3. Head to _Settings > Regional Settings > Input Method_, then start configuring Fcitx 5. + +## Setting up Fcitx5 on other DEs/WMs + +1. Install your chosen IMEs (see the table below) alongside `fcitx5-configtool`, `fcitx5-autostart`. + - Install `fcitx5-qt` and `fcitx5-gtk` for Qt/GTK support. +2. Fcitx 5 should be enabled via the autostart package. If not, + + - try running `im-chooser` and select _Fcitx 5_. + - try setting the following in `/etc/environment`: + ``` + GTK_IM_MODULE=fcitx + QT_IM_MODULE=fcitx + ``` + +3. When Fcitx 5 is running, right click on the new "en" icon on the system tray > Settings. +4. Start configuring Fcitx5. + +## Setting up IBus + +1. Install your chosen IMEs (see the table below). +2. On GNOME, Budgie/Flagship and similar DEs, go into Settings > Keyboard. +3. On other DEs, run `ibus-setup`. +4. If IBus does not work correctly, + - try running `im-chooser` and select _IBus_. + - try setting the following in `/etc/environment`: + ``` + GTK_IM_MODULE=ibus + QT_IM_MODULE=ibus + ``` + +## List of IMEs and IMs + +Credits to Arch Wiki contributors for a [complete list of IMs]. The table is filtered and amended +such that it better represents Ultramarine's support on different IMs: + +``` + โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” + โ†“IM/IME IMFโ†’ โ”‚ Fcitx5 โ”‚ IBus โ”‚ +โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ CHINESE โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Rime โ”‚ fcitx5-rime โ”‚ ibus-rime โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Pinyin โ”‚fcitx5-chinese-addonsโ”‚ ibus-pinyin โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Zhuyin โ”‚ fcitx5-chewing โ”‚ ibus-chewing โ”‚ +โ”‚ Libzhuyin โ”‚ fcitx5-zhuyin โ”‚ ibus-libzhuyin โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Cangjie โ”‚ โ”‚ ibus-table-chinese- โ”‚ +โ”‚ Sucheng/Quickโ”‚ fcitx5-table-extraโต โ”‚ {cangjie,quick,scj} โ”‚ +โ”‚ SmartCangjie โ”‚ (and Moreโ€ฆ) โ”‚ /ibus-table-chinese โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Haifeng Wubi โ”‚ fcitx5-table-extraโต โ”‚ ibus-table-chinese- โ”‚ +โ”‚ Jidian Wubi โ”‚ (and Moreโ€ฆ) โ”‚wubi-{haifeng,jidian}โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Others โ”‚ fcitx5-table-extra? โ”‚ ibus-table-chinese? โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ JAPANESE โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Mozc โ”‚ fcitx5-mozc โ”‚ ibus-mozc โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Anthyยน โ”‚ fcitx5-anthy โ”‚ ibus-anthy โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ SKKยฒ โ”‚ fcitx5-skk โ”‚ ibus-skk โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ KKCยณ โ”‚ fcitx5-kkc โ”‚ ibus-kkc โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ KOREAN โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Libhangul โ”‚ fcitx5-hangul โ”‚ ibus-hangul โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ VIETNAMESE โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Unikey โ”‚ fcitx5-unikey โ”‚ ibus-unikey โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ ViQR โ”‚ fcitx5-m17n โ”‚ ibus-table-tv โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ INDIC โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ m17n โ”‚ fcitx5-m17n โ”‚ ibus-m17n โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ OpenBangla โ”‚ fcitx5-openbangla โ”‚ ibus-openbangla โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚Sayura Sinharaโ”‚ fcitx5-sayura โ”‚ ibus-sayura โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ OTHERS โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Thai โ”‚ fcitx5-libthai โ”‚ ibus-table-tv โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Math Symbols โ”‚ Compose Keyโด? โ”‚ibus-table-mathwriterโ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Completion โ”‚ *builtin* โ”‚ ibus-typing-booster โ”‚ +โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค +โ”‚ Everything โ”‚ fcitx5-m17n โ”‚ ibus-m17n โ”‚ +โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ +``` + +**Notes**: + +1. Anthy (the IM, not IME) is unmaintained, Mozc is usually preferred. +2. https://github.com/ueno/libskk +3. https://github.com/ueno/libkkc +4. See [#Compose Key](#compose-key). There is also LaTeX support in `fcitx5-m17n`. +5. See below for more IMs supported by `fcitx5-table-extra`. + +### List of IMs supported by `fcitx5-table-extra` + +- boshiamy +- cangjie-large +- cangjie3 +- cangjie5 +- cantonese +- cantonhk +- easy-large +- jyutping-table +- quick-classic +- quick3 +- quick5 +- scj6 +- stroke5 +- t9 +- wu +- wubi-large +- wubi98-large +- wubi98-pinyin +- wubi98-single +- wubi98 +- zhengma-large +- zhengma-pinyin +- zhengma + +### List of packages for `ibus-table*` + +- `ibus-table-code`: Ibus-Tables for Latex, CNS11643 & Emoticons +- `ibus-table-cyrillic`: Ibus-Tables for Cyrillic +- `ibus-table-extraphrase`: Extra phrase for ibus-table +- `ibus-table-latin`: Ibus-Tables for Latin +- `ibus-table-mathwriter`: Ibus-Tables for Unicode mathematics symbols +- `ibus-table-mongol`: Ibus-Tables for Mongol Script +- `ibus-table-others`: Various tables for IBus-Table +- `ibus-table-translit`: Ibus-Tables for Russian Translit +- `ibus-table-tv`: Ibus-Tables for Thai and Viqr (Vietnamese) +- `ibus-table-chinese`: Chinese input tables for IBus +- `ibus-table-chinese-array`: Array input methods +- `ibus-table-chinese-cangjie`: Cangjie based input methods +- `ibus-table-chinese-cantonese`: Cantonese input methods +- `ibus-table-chinese-cantonyale`: Cantonese input method based on yale romanization +- `ibus-table-chinese-easy`: Easy input method +- `ibus-table-chinese-erbi`: Erbi input method +- `ibus-table-chinese-quick`: Quick-to-learn input methods +- `ibus-table-chinese-scj`: Smart Cangjie +- `ibus-table-chinese-stroke5`: Stroke 5 input method +- `ibus-table-chinese-wu`: Wu pronunciation input method +- `ibus-table-chinese-wubi-haifeng`: Haifeng Wubi input method +- `ibus-table-chinese-wubi-jidian`: Jidian Wubi 86 input method, JiShuang 6.0 +- `ibus-table-chinese-yong`: YongMa input method + +### Rime + +[Rime](https://rime.im/) is an input method engine / IME for typing Chinese. It supports a wide +range of IMs and is highly customizable. + +You may refer to [ArchWiki](https://wiki.archlinux.org/title/Rime) regarding how Rime could be +configured. Note that Fedora/Ultramrine does not provide `rime-*` packages in our repositories. +You will need to use [plum](https://github.com/rime/plum) (aka. `rime-install`) to install schemas. +`rime-install` defaults to `ibus`; append `rime_frontend=fcitx-rime` to the front of the command if +you are using Fcitx5: + +``` +rime_frontend=fcitx-rime bash rime-install rime-aca/rime-cangjie6 +``` + +## Compose Key + +See [Compose Key on Wikipedia](https://en.wikipedia.org/wiki/Compose_key) and +[on ArchWiki](https://wiki.archlinux.org/title/Compose_key). + +# Translations + +Users that speak less popular languages might face issues where their system shows text in English +even though the language settings are configured properly. Do not report this issue to us. This is +due to lack of translation efforts from upstream (either the DE/WM or the app in concern). You may +help by visiting the translation platform provided by upstream and be a translator. Your +contributions would improve the entire Linux ecosystem experience for minorities. + +## Ultramarine Components + +If projects / software provided by Ultramarine (such as the Readymade installer) are untranslated +in your language, or you would like to improve the translations, please visit +[our Weblate translation platform](https://weblate.fyralabs.com/). + +There are cases where your language is not shown in the list of languages. This might be because no +one has made efforts on translating the software, or it is not supported by the i18n libraries used +by the software. For example, there is no Cantonese language option in Readymade because the i18n +library provided by GNOME Desktop does not support it. In this case, you should report this issue +to the upstream library. If you have a hard time determining where to report, you may join one of +our communities and reach out. + +[file a bug report]: https://github.com/Ultramarine-Linux/ultramarine/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=%5BBUG%5D+Issue+Report +[complete list of IMs]: https://wiki.archlinux.org/title/Input_method#List_of_available_input_method_editors diff --git a/src/content/docs/zh_hant/usage/um40-dnf5.mdx b/src/content/docs/zh_hant/usage/um40-dnf5.mdx new file mode 100644 index 00000000..0ec69a61 --- /dev/null +++ b/src/content/docs/zh_hant/usage/um40-dnf5.mdx @@ -0,0 +1,56 @@ +--- +title: Dnf5 Is The Default Package Manager In Ultramarine Linux 40 +description: dnf5 is the default package manager in Ultramarine Linux 40 +--- + +import Alert from "../../../../components/Docs/Alert.astro"; + +Starting with UM40, `dnf5` will replace `dnf-3` as the default package manager. +This is done via the `dnf5-default-package-manager` package provided by the UM40 repositories. + +## Technical details + +The `dnf5-default-package-manager` package has a `%triggerin` script for `dnf` and `yum`. When these +2 packages get installed/updated, the script will be executed, which will replace `/usr/bin/dnf` and +`/usr/bin/yum` symlinks to point to `/usr/bin/dnf5` instead of `/usr/bin/dnf-3`. + +This change has been proposed on upstream Fedora, but has been delayed to Fedora 41. However, we've +decided this change should be worth a try on UM40. + +## Effects + +By using `dnf5`, users will be able to install, remove and upgrade packages much faster. End-users +shouldn't need to do anything to adapt to this change. + +Since `dnf5` isn't bug-for-bug compatible with `dnf-3`, programs that rely on `dnf-3` should use the +`dnf-3` or `dnf4` command to use the older version of `dnf`. If you are facing compatiblility issues +with some apps that rely on the `dnf` symlink instead of the actual `/usr/bin/dnf-3` binary, you are +advised to report this bug to upstreams (i.e. the apps in concern), not `dnf5` or Ultramarine. + +## FAQ + +### Why `dnf5`? + +- `dnf5` provides better performance over `dnf-3` because it's written in C++ instead of Python. +- We hope this change will push apps in the Fedora neighbourhood to switch to `dnf5` and at the same + time discover apps that are poorly maintained/written and rely on `dnf`/`dnf-3`. + +### Does UM40 remove `dnf`? + +- We do not remove `dnf-3`. We only replace the symlinks for `dnf` and `yum` to point to `dnf5`. + +### Wouldn't that break compatiblility? + +- If changing only 2 symlinks actually breaks your workflows, either your workflows are poorly made, + or there are some apps you use that rely on the 2 symlinks, which evinces that those apps are + unfortunately poorly made. Change your workflows to adapt to `dnf5` or replace `dnf` with the + actual `dnf-3` binary; or in the latter case, report the issue to the upstream apps in concern. + +- We expect `dnf5` in the future to be supposedly much more compatible with `dnf-3`. Upstream Fedora + has been working hard on making `dnf5` the replacement for `dnf-3`. There are works in progress to + adapt GNOME software for `dnf5`, and to make `dnf5` much more feature-complete. + +### But some features are missing in `dnf5`! + +- There are efforts on making `dnf5` more feature-complete compared with `dnf-3`. You may help speed + this up by [contributing to upstream](https://github.com/rpm-software-management/dnf5/). diff --git a/src/content/docs/zh_hant/welcome.mdx b/src/content/docs/zh_hant/welcome.mdx new file mode 100644 index 00000000..8782cdf3 --- /dev/null +++ b/src/content/docs/zh_hant/welcome.mdx @@ -0,0 +1,161 @@ +--- +title: ๆญก่ฟŽ +description: "This wiki is meant to be the extended documentation for both end users and developers, so it is separated in those two categories." +--- + +ๆญก่ฟŽไพ†่‡จ Ultramarine Wiki๏ผ้€™่ฃๅฏไปฅไปคไฝฟ็”จ่€…ๆ›ดๅฟซๆœ‰ๆ•ˆๅœฐไฝฟ็”จ Ultramarine Linuxใ€‚ + +ๆœฌ Wiki ็พๆญฃ็ฟป่ญฏ่‡ณไธญๆ–‡ใ€‚่‹ฅๆžœๆœ‰่ˆˆ่ถฃๆˆ็‚บๆˆ‘ๅ€‘็š„ไธ€ไปฝๅญ๏ผŒ่ซ‹่‡ณ[ๆœฌ Wiki ็š„ GitHub ๅŽŸ็ขผๅบซ](https://github.com/Ultramarine-Linux/wiki)ใ€‚ + +้–‹็™ผ่€…ๅŠๅฎ‰่ฃๅŒ…่ฃฝไฝœ่€…็š„ๆช”ๆกˆไฝๆ–ผ [Fyra Developer](https://developer.fyralabs.com) ๏ผˆ่‹ฑ๏ผ‰ใ€‚ +่‹ฅๆƒณ้–‹ๅง‹็‚บ Ultramarine Linux ็คพ็พฃ่ฒข็ป๏ผŒ่ซ‹็งป็Ž‰ๆญฅ่‡ณ[่ฒข็ป้ƒจๅˆ†](/zh_hant/contributing/contributorguide)ใ€‚ + +่‹ฅๆƒณๅฎ‰่ฃ Ultramarine Linux๏ผŒ่ซ‹้–ฑ่ฎ€๏ผš[ๅ–ๅพ— Ultramarine](/zh_hant/installation/getting)ใ€‚ + +## ไธป่ฆ็ธฝๆบ–ๅ‰‡ + +Ultramarine Linux ็”ฑ Korora Linux ๅ•Ÿ็™ผ่€Œๆˆ๏ผŒ็›ฎๆจ™ๆ˜ฏๆˆ็‚บไธ€ๅ€‹ๅฐไธๅŒ็š„ๆŠ€่ก“็ถ“้ฉ—็š„ไบบไนŸใ€Œ็ธฝไน‹่กŒ (just works)ใ€็š„ไฝœๆฅญ็ณป็ตฑใ€‚ + +็‚บไบ†้”ๆˆ้€™ๅ€‹็›ฎๆจ™๏ผŒๆˆ‘ๅ€‘ๆœƒ้ตๅพชไธ‹ๅˆ—ๅƒนๅ€ผ่ง€๏ผš + +### ๅฏฆ็”จ + +Fedora ๆฏ”่ผƒ้ตๅพชๆ„่ญ˜ๅฝขๆ…‹ (ideology) โ€”โ€”ไป–ๅ€‘ๆไพ›ไธ€ๅ€‹ๅŸบๆœฌไธŠๆฒ’ๆœ‰ๅฐˆๅˆฉ่ปŸไปถ็š„ไฝœๆฅญ็ณป็ตฑใ€‚ +็›ธๆฏ”ไน‹ไธ‹๏ผŒๆˆ‘ๅ€‘้ตๅพชใ€Œๆœ€ๅฐ‘้˜ปๅŠ›ใ€็š„้‹ไฝœๆจกๅผโ€”โ€”ๅช่ฆ่ƒฝๅค ๆ”นๅ–„ไฝฟ็”จ่€…้ซ”้ฉ—๏ผŒไธ่ซ–ๆ˜ฏๅฆๅฐˆๅˆฉ่ปŸไปถ๏ผŒๆˆ‘ๅ€‘้ƒฝๆœƒ้ก˜ๆ„ๆไพ›ๅฎƒๅ€‘๏ผŒ่ฎ“ไฝฟ็”จ่€…ไธ€้–‹็ฎฑๅฐฑๅฏไปฅไบซ็”จใ€‚ + +### ๅ‰ตๆ–ฐ + +ๆˆ‘ๅ€‘็›ธไฟก Linux ่ฟ‘ๆœŸ็š„็™ผๅฑ•่ƒฝๅค ๅคงๅคงๆ”นๅ–„ไฝฟ็”จ่€…ๅŠ้–‹็™ผ่€…้ซ”้ฉ—๏ผšFlatpakใ€xdg-portals ็ญ‰็ง‘ๆŠ€่ƒฝ่ฎ“้–‹็™ผ่€…ๆ›ดๅฎนๆ˜“ไธฆๆ›ดๅฟซๅœฐๆไพ›ๆ›ดๅฅฝ็š„ไฝฟ็”จ่€…้ซ”้ฉ—ใ€‚ +ไธŠๆต็š„็™ผๅฑ•่ƒฝๆ”นๅ–„ไฝฟ็”จ่€…้ซ”้ฉ—็š„ๅŒๆ™‚๏ผŒไธ‹ๆตๆˆ‘ๅ€‘็š„็™ผๅฑ•๏ผŒๅŒ…ๆ‹ฌไธป้กŒ้ก่‰ฒใ€Chromebook ๆ”ฏๆด็ญ‰๏ผŒ่ƒฝๆ”นๅ–„ๆ•ด้ซ” Linux ็š„็”Ÿๆ…‹โ€”โ€”้€™ไธๆญฃๆ˜ฏ้›™่ดๅ˜›๏ผ + +### ไฝฟ็”จ่€…้ซ”้ฉ— + +้›–็„ถๅฐ้ซ˜้šŽไฝฟ็”จ่€…ไพ†่ชช๏ผŒๆ”นๅนพๅ€‹่จญๅฎšๅ’Œๅฎ‰่ฃๅนพๅ€‹็ฌฌไธ‰่€…่ปŸไปถๅบซ็š„็จ‹ๅผๅฏ่ƒฝๆ˜“ๅฆ‚ๅๆŽŒ๏ผ› +ไฝ†ๆ˜ฏๅฐ Linux ็”š่‡ณ Fedora ็š„ๆ–ฐๆ‰‹ไพ†่ชชๅฏ่ƒฝๅฐฑ้œ€่ฆๅฅฝๅนพๅ€‹ๅฐๆ™‚ๆ‰่ƒฝๆ‰พๅˆฐๆ€Ž้บผๅšใ€‚ +Ultramarine ่ƒฝ่ฎ“ๆ–ฐๅ’Œ่ˆŠ็š„ไฝฟ็”จ่€…ๅฟซ้€Ÿๅœฐๆบ–ๅ‚™ไธ€ๅ€‹ๆ–ฐ็ณป็ตฑใ€‚ + +## ่จˆๅŠƒๅŠŸ่ƒฝ + +- ๆญก่ฟŽ็จ‹ๅผ (OOBE) +- ๅƒ YaST ็š„็ณป็ตฑ่จญๅฎš็จ‹ๅผ + +## ๅธธ่ฆ‹ๅ•้กŒ + +### ้ทๅพ™่…ณๆœฌ (migration script) ๅ…ท้ซ”ๅš็”š้บผ๏ผŸ + +ๅฎƒๅฎ‰่ฃ RPMFusionใ€Terraใ€ๆˆ‘ๅ€‘็š„ PGP ่ญ‰ๆ˜Ž้ตใ€ไธฆๅฎ‰่ฃ Ultramarine Linux ็š„็ณป็ตฑๅŸบๆœฌ็ต„ไปถ๏ผŒๅ–ไปฃ Fedora ๆœฌ่บซ็š„ `release` ่ปŸไปถๅŒ…ใ€‚ + +็‚บไบ†้ฟๅ…ไปคไฝฟ็”จ่€…็š„็ณป็ตฑๅคšไบ†ไธๆœƒ็”จๅˆฐ็š„่ปŸไปถ๏ผŒๅฎƒไธฆไธๆœƒๅฎ‰่ฃ Ultramarine Linux ๅŸบๆœฌ็ต„ไปถไปฅๅค–็š„่ปŸไปถๅŒ…ใ€‚ + +้ทๅพ™ๅพŒ๏ผŒๆ‚จๅฐ‡ๆœƒๅพ—ๅˆฐๆˆ‘ๅ€‘ๆœ€ๆ–ฐ็š„ๅŠŸ่ƒฝ๏ผ + +### ้€™ไธๅฐฑๆ˜ฏ Fedora ๅŠ ไธŠไบ† RPMFusion ๅ˜›๏ผŒๅˆๆœ‰็”š้บผๅญ˜ๅœจๅƒนๅ€ผ๏ผ + +Ultramarine Linux ๆ˜ฏๅฐ Fedora ็š„ๆณ•ๅพ‹้™ๅˆถไธ‹็š„ๆฒฎๅ–ช๏ผŒๆ‰€่ก็”Ÿๅ‡บไพ†็š„็”ข็‰ฉใ€‚ +็”ฑๆ–ผ Fedora (ไปฅๅŠ Red Hat) ๆ˜ฏไธ€ๅ€‹็พŽๅœ‹ๅฏฆๅฏฆ๏ผŒๅœจ็พŽๅœ‹็š„ๅฐˆๅˆฉๆฌŠๅˆถๅบฆไธ‹ไป–ๅ€‘ไธฆไธ่ƒฝๆไพ›ไธ€ไบ›่ปŸไปถใ€‚ +็›ธๆฏ”ไน‹ไธ‹๏ผŒๅŸบๆ–ผๆณฐๅœ‹็š„ Ultramarine ไธฆๆฒ’ๆœ‰้€™ไบ›็‰ˆๆฌŠๅ•้กŒใ€‚ + +ๆœฌๅœ˜้šŠๆ—จๅœจไปค Fedora ๆœ‰ๆ›ดๅฅฝ็š„้ซ”้ฉ—๏ผšไฝฟ็”จ่€…ๅฏไปฅๅœจ FlatHubใ€RPMFusion ๆˆ– Terra ่ฃ็ถญ่ญทไปปไฝ•่ปŸไปถใ€‚ + +ๆˆ‘ๅ€‘ๅปบ่ญฐไฝฟ็”จ่€…่ฒข็ป่‡ณๆœฌ่จˆๅŠƒ๏ผŒๆƒณไบ†่งฃๆ›ดๅคš่ซ‹ๅƒ่€ƒ[่ฒข็ปๆŒ‡ๅ—](/zh_hant/contributing/contributorguide)ใ€‚ + +### ้€™ไธๅฐฑๆ˜ฏ Fedora ๅŠ ไธŠไบ†ๅนพๅ€‹ๆ–ฐๆกŒ้ข็’ฐๅขƒๅ˜›๏ผ + +ไธ๏ผŒๆˆ‘ๅ€‘้‚„ๆœƒๅœจๆกŒ้ข็’ฐๅขƒไธŠๆ”นๅ–„็ณป็ตฑ็š„ไฝฟ็”จ่€…้ซ”้ฉ—๏ผŒไปค Ultramarine ็„ก่ซ–ๆ˜ฏๆ–ฐๆ‰‹้‚„ๆ˜ฏ้€ฒ้šŽไฝฟ็”จ่€…้ƒฝ่ƒฝ็”จๅพ—ไธŠๆ‰‹ใ€‚ + +### Ultramarine ๆœƒๆ”ถ้›†ๆˆ‘็š„่ณ‡ๆ–™ๅ—Ž๏ผŸ + +็›ด่‡ณ็พๅœจ๏ผŒไฝฟ็”จ่€…่ขซๆ”ถ้›†็š„่ณ‡ๆ–™ๅช้™ๆ–ผๅพž Terra ไปฅๅŠ Ultramarine ็š„่ปŸไปถๅบซไธ‹่ผ‰ๅฎ‰่ฃๅŒ…็š„ๆฌกๆ•ธ๏ผ›้€™ไฝฟ็”จไบ† [DNF Counting](https://docs.fedoraproject.org/en-US/infra/sysadmin_guide/dnf-counting/)ใ€‚ +้€™ๅ€‹่ณ‡ๆ–™ไธฆไธๆœƒ่ˆ‡ไฝฟ็”จ่€…็š„้›ป่…ฆๆŽ›้‰คใ€‚ + +Fyra Labs (Ultramarine ่ƒŒๅพŒ็š„ๅœ˜้ซ”) ไธฆไธๆœƒๅœจๆฒ’ๆœ‰ไฝฟ็”จ่€…็š„ๅŒๆ„ไธ‹ๆ”ถ้›†ไปปไฝ•ๆŽ›้‰คๅ€‹ไบบ็š„่ณ‡ๆ–™ใ€‚ + +### Is Ultramarine semi-rolling? + +**No**. Ultramarine and Fedora are not semi-rolling or rolling. Instead, they use a stable release scheme. +Updates with breaking changes are rolled out only for every stable release version. Minor updates / point updates are guaranteed to be backwards-compatible, i.e. system components in Ultramarine are updated if and only if they do not break compatibility. + +However, Ultramarine Linux includes Terra, RPM Fusion and Flathub. + +- Terra is an RPM repository provided by Fyra Labs, and it mainly uses a rolling release scheme. +- RPM Fusion is another (very popular) third party repository for Fedora. It uses a stable release scheme. +- Flathub is a cross-distro Flatpak repository. Updates in this repository have nothing to do with Fedora/Ultramarine's release cycles. Strictly speaking, packages in Flathub are rolling because they are updated once upstream releases a version. + +### If some packages are updated mid-release, doesn't that mean Ultramarine is unstable/insecure compared to, e.g. Debian? + +**No**. That's an incorrect approach to view if a distribution is secure/stable or not. + +- Packages in Fedora/Ultramarine are updated mid-release, but those updates **only include non-breaking changes**. Your computer has virtually a near-zero chance of breaking mid-release due to an update. +- Undeniably, Ultramarine and Fedora has much more frequent updates compared to distros like Debian, and to some extent, they might be more unstable. However, Fedora/Ultramarine's release cycle makes it so that the operating system is still stable enough for normal use. Millions of Fedora devices across the world run fine without breaking, which demonstrate Fedora's high stability. Debian's release cycle is also arguably too slow and can cause more hassles than necessary. +- Some distros choose to take stable release cycles to an extreme. These distros are designed for servers that will stay up for years by delaying updates for months or even a few years. PC users might miss out a lot by using these distros, including new features, bug fixes, security patches, etc. Without the proper knowledge and management, these systems could be even more insecure than Fedora/Ultramarine. + +### Why Ultramarine (instead of other distros) + +- Performance + - Fedora (the distro Ultramarine is based on) has some of the best IO performance over other distros. + - BTRFS is the default file system, a relatively performant file system with features like snapshots. You can backup your files in less than a second (unlike other file systems like ext4). + - We include lightweight desktop environments such as Budgie (Flagship Edition) and XFCE. They look great, work well and are snappy. +- Privacy + - We don't track/collect your private/personal data. + - We don't even know how many Ultramarine devices there are (unlike some companies). +- Security + - Security updates are provided quickly (unlike some other distros). + - SELinux is active by default. +- Customisations + - There are multiple desktop environments for you to choose from. + - We have applets installed out of the box that help you with further desktop customizations. +- Usability + - You never need to touch the command line. + - If there are cases that require the command line, and those situations might arise to other normal users too, you should [report this bug](https://github.com/Ultramarine-Linux/ultramarine). + - Ultramarine has sane defaults. + - Popular programs that you probably need are installed by default, including LibreOffice, Firefox, drivers, etc. + - We include repositories that provide popular software. + - There are many more apps you can installed from an app store. They are verified carefully by dedicated teams. + - The Fedora and RPM Fusion repositories are used and trusted by millions. + - Terra is reviewed by Fyra Labs and the Ultramarine Project. You can also [take a look at our security policy](https://github.com/terrapkg/packages/blob/f39/SECURITY.md). + - Flathub is used by users across the entire Linux/BSD ecosystem. If you install apps from an app store, you are most likely installing apps from Flathub, which are isolated from your system environment when run, making attacks less likely to succeed. + +### Why Ultramarine (instead of Windows) + +- Performance + - Windows bloats your computer with many different potentially unwanted programs that slow down your computer. Ultramarine does not. + - Ultramarine provides a few lightweight desktop environments (namely Budgie/Flagship and XFCE), which run faster and provide a snappier experience. + - Ultramarine uses newer technologies that are not available on Windows because of backwards compatibility. These technologies brings better performance. + - For example, task schedulers, file systems, shells, etc. + - Most modern servers (including giant web servers) use Linux simply because it's much faster. +- Privacy + - We do not collect/track your private data ever because that's a waste of storage. + - We don't even know how many Ultramarine devices there are (unlike some companies). + - When you setup Windows, you need to accept a very long license. Well, we don't even have a license agreement page in our installer. + - Ultramarine is open source. Anyone can check if we track/collect your data by reviewing the source code. We don't. +- Security + - Security updates are much quicker than Windows. + - Updates don't require reboots. + - It's much more unlikely for malware, viruses, etc. to target Linux due to its current low popularity. + - Our open source model makes it very easy for anyone to spot bugs/vulnerabilities and fix them quicker. +- Stability + - Ultramarine uses a stable release cycle. Updates will not break your computer. + - When there is a chance a system upgrade could break your computer, we warn you about it. + - We advise people to contact support to check if the upgrade could actually break the system. + - Our support team can help you solve any potential issues while performing a system upgrade. + - And most importantly, you could just choose not to upgrade at all! The choice is yours. + - Millions of IoT devices use Linux. If something breaks, the entire Internet collapses. If the Internet trusts Linux's stability, you should too. +- Customizations and Usability + - There are multiple desktop environments for you to choose from. Some of them are lightweight, some of them are fancy. + - Ultramarine provides many ways over how you can customize your entire desktop experience. You have full control over your computer. + - We never hide choices from you โ€” in fact, we make it easier for you. + - If you find some specific customizations hard to perform on Ultramarine, it's a design flaw and you should send your feedback to us (e.g. via [GitHub](https://github.com/Ultramarine-Linux/ultramarine)). + - We support reasonably old and new hardware, and we provide many tools for you to setup a performant, personalized system on your computer. + - Default settings on Ultramarine makes it so that you can start using your computer as soon as possible. + - Ultramarine comes with an app store. You can install programs reviewed by dedicated teams very easily. + - If you want some programs to be included in the app stores, you should send us feedback. + +## Core Team + +- ๐Ÿ‡น๐Ÿ‡ญ Pornpipat "Cappy" Popum - Chief Information Officer, Project Lead, Release Engineer +- ๐Ÿ‡ฉ๐Ÿ‡ช Trobonox - Documentation, Web Developer, UI/UX Designer +- ๐Ÿ‡ฎ๐Ÿ‡ฉ Mo - Low-level developer +- ๐Ÿ‡ต๐Ÿ‡ฑ Toru Ishikawa - Infrastructure support +- ๐Ÿ‡ญ๐Ÿ‡ฐ Mado - VP of DevOps, Package Maintainer + +[Meet the team โ†’](https://fyralabs.com/about/#Meet:~:text=benefit%20of%20all.-,Meet%20the%20Team) diff --git a/src/languages.ts b/src/languages.ts index 3a9ceb1d..1a45ceee 100644 --- a/src/languages.ts +++ b/src/languages.ts @@ -1,7 +1,7 @@ import { KNOWN_LANGUAGES, KNOWN_LANGUAGE_CODES } from "./consts"; export { KNOWN_LANGUAGES, KNOWN_LANGUAGE_CODES }; -export const langPathRegex = /\/([a-z]{2}-?[A-Z]{0,2})\//; +export const langPathRegex = /\/([a-z_]+)\//; export function getLanguageFromURL(pathname: string) { const langCodeMatch = pathname.match(langPathRegex);