Compare commits

...

38 Commits

Author SHA1 Message Date
Valeria Fadeeva 0790a6f84c Update 2024-10-23 11:55:01 +05:00
Valeria Fadeeva 3b5af9e3c2 alpm 0.14 / pacman 6.1.0 2024-03-26 10:47:19 +05:00
Valeria Fadeeva 6eddfea79e Update 2024-01-28 01:39:55 +05:00
Valeria Fadeeva 4fb41cd5ed Update 2024-01-28 01:20:24 +05:00
Valeria Fadeeva 796b712c4c Update 2024-01-23 21:47:44 +05:00
Valeria Fadeeva e2d5b8606c Update 2023-11-17 15:00:13 +05:00
Valeria Fadeeva 648d13e4f9 Update 2023-11-15 22:29:50 +05:00
Valeria Fadeeva 71d270e074 Update 2023-11-15 22:03:02 +05:00
Valeria Fadeeva a91b115c49 Update 2023-11-15 20:41:28 +05:00
Valeria Fadeeva 3dde6d13d1 Update 2023-11-05 02:12:52 +05:00
Valeria Fadeeva c9d6961a84 Update 2023-11-05 01:46:02 +05:00
Valeria Fadeeva 665973e260 Update 2023-11-05 00:25:29 +05:00
Valeria Fadeeva a949e95971 Update 2023-11-05 00:21:58 +05:00
Valeria Fadeeva aa37736189 Update 2023-10-19 01:46:12 +05:00
Valeria Fadeeva fb83293f26 Update 2023-10-13 20:10:15 +05:00
Valeria Fadeeva 8a70487450 Update 2023-10-13 09:57:44 +05:00
Valeria Fadeeva 050ec226f9 Update 2023-10-13 01:50:13 +05:00
Valeria Fadeeva 78226c985c Update 2023-10-13 01:33:20 +05:00
Peter Jung d7b3fbfe23
translation: Update German translation
Signed-off-by: Peter Jung <admin@ptr1337.dev>
2023-09-24 09:26:19 +02:00
Vladislav Nepogodin cf04feaecc
Create README.md 2023-09-23 23:25:11 +04:00
Vladislav Nepogodin 70f4774931
♻ update deps 2023-09-23 23:22:40 +04:00
Vladislav Nepogodin b4adc46487
🧹 cleanup 2023-09-18 03:28:37 +04:00
Vladislav Nepogodin a5c451c09e
🚧 fix translations on dns conns page 2023-09-18 02:03:46 +04:00
Vladislav Nepogodin 6c4eb4abf5
♻ update polish translation 2023-09-18 01:41:16 +04:00
Vladislav Nepogodin 3511d3d90f
♻ update translation 2023-09-18 01:40:49 +04:00
Piotr Gorski ac5d1e04d2
Update polish translation
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2023-09-17 23:39:38 +02:00
Vladislav Nepogodin 61b7c65da2
👷 add dns servers page 2023-09-18 01:14:21 +04:00
Vladislav Nepogodin 7601d14d08
🔖 Bump commit 2023-09-17 03:55:26 +04:00
Vladislav Nepogodin e541053a03
🗒 Update release notice 2023-09-17 03:53:55 +04:00
Vladislav Nepogodin f43471d257
♻ update deps 2023-09-17 03:41:01 +04:00
NextWorks dbb6b85ee3
Add Bpftune Button (#59)
* Add Bpftune Button

 * Formatted the code with rustfmt
 * All the style is good on the tweak section no need others fixes

* Fix typo
2023-08-25 20:15:06 +04:00
Vladislav Nepogodin 2cc9c3395a
🧹 false positive 2023-07-10 03:01:03 +04:00
Vladislav Nepogodin a40d87f9d1
🧹 make clippy happy 2023-07-10 03:00:44 +04:00
Vladislav Nepogodin 878e7953d9
🔖 Bump version 2023-07-09 21:19:11 +04:00
Vladislav Nepogodin 07f4f0a10a
🚧 enable fixed size wrapping 2023-07-09 21:18:13 +04:00
Vladislav Nepogodin a0c85883ff
♻ update deps 2023-07-09 20:48:58 +04:00
Vladislav Nepogodin 032ba4dc1d
🗒 Update release notice 2023-07-09 20:44:47 +04:00
Damian N 41c60988c6
complete polish translation (#58) 2023-07-09 20:15:42 +04:00
71 changed files with 6631 additions and 2007 deletions

18
.clang-format Normal file
View File

@ -0,0 +1,18 @@
BasedOnStyle: WebKit
AccessModifierOffset: -3
AllowShortLoopsOnASingleLine: true
AlignConsecutiveAssignments: true
AlignConsecutiveMacros: true
AlignTrailingComments: true
BreakBeforeBraces: Custom
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: false
ConstructorInitializerIndentWidth: 2
Cpp11BracedListStyle: true
PointerAlignment: Left
FixNamespaceComments: true
SpaceBeforeCpp11BracedList: false
SpacesBeforeTrailingComments: 2
Standard: c++17
TabWidth: 4
UseTab: Never

1120
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,33 @@
[package]
name = "cachyos-hello"
version = "0.9.10"
name = "melawy-welcome"
version = "0.10.1"
authors = ["Vladislav Nepogodin <nepogodin.vlad@gmail.com>"]
license = "GPLv3"
edition = "2021"
[dependencies]
alpm = { default-features = false, version = "2.2.2" }
alpm-utils = { features = ["conf"], default-features = false, version = "2.0.0" }
pacmanconf = "2.0.0"
alpm = { default-features = false, version = "4" }
alpm-utils = { features = ["conf"], default-features = false, version = "4" }
pacmanconf = "3"
subprocess = "0.2.9"
once_cell = { default-features = false, version = "1.17.1" }
i18n-embed = { version = "0.13.8", features = ["fluent-system", "desktop-requester"] }
i18n-embed-fl = "0.6.6"
rust-embed = { version = "6.6.1", features = ["debug-embed", "include-exclude"] }
gtk = { version = "0.17.1", default-features = false }
gio = { version = "0.17.9", default-features = false }
gdk = "0.17.1"
gdk-pixbuf = "0.17.0"
glib = { default-features = false, version = "0.17.9" }
serde = { version = "1.0.162", default-features = false }
serde_json = "1.0.96"
reqwest = { version = "0.11.17", features = ["blocking"] }
unic-langid = "0.9.1"
subprocess = "0.2"
once_cell = { default-features = false, version = "1.19" }
i18n-embed = { version = "0.14", features = ["fluent-system", "desktop-requester"] }
i18n-embed-fl = "0.7"
rust-embed = { version = "8", features = ["debug-embed", "include-exclude"] }
gtk = { version = "0.18", default-features = false }
gio = { version = "0.18", default-features = false }
gdk = "0.18"
gdk-pixbuf = "0.18"
glib = { default-features = false, version = "0.18" }
serde = { version = "1", default-features = false }
serde_json = "1"
reqwest = { version = "0.11", features = ["blocking"] }
unic-langid = "0.9"
phf = { version = "0.11", features = ["macros"], default-features = false }
[build-dependencies]
anyhow = "1"
[profile.release]
strip = "symbols"

13
README.md Normal file
View File

@ -0,0 +1,13 @@
<div align="center">
<h1>Melawy Welcome</h1>
<p>
<strong>Welcome screen for Melawy Linux written in Rust</strong>
</p>
<p>
[![Dependency Status](https://deps.rs/repo/github/cachyos/cachyos-welcome/status.svg)](https://deps.rs/repo/github/cachyos/cachyos-welcome)
<br />
[![CI](https://github.com/cachyos/cachyos-welcome/actions/workflows/rust.yml/badge.svg)](https://github.com/cachyos/cachyos-welcome/actions/workflows/rust.yml)
</p>
</div>

View File

@ -1,3 +1,4 @@
use std::io::Write;
use std::process::{self, Command};
use std::{env, fs};
@ -12,8 +13,8 @@ fn main() {
let out_dir = env::var("OUT_DIR").unwrap();
let status = Command::new("glib-compile-resources")
.arg(&format!("--target={}/cachyos-welcome.gresource", out_dir))
.arg("cachyos-welcome.gresource.xml")
.arg(format!("--target={}/melawy-welcome.gresource", out_dir))
.arg("melawy-welcome.gresource.xml")
.status()
.unwrap();
@ -21,4 +22,38 @@ fn main() {
eprintln!("glib-compile-resources failed with exit status {}", status);
process::exit(1);
}
println!("cargo:rerun-if-changed=src/config.rs.in");
println!("cargo:rerun-if-changed=src/config.rs");
gen_config().expect("Failed to gen config.rs");
}
fn gen_config() -> anyhow::Result<()> {
let base_id = "org.melawy.welcome";
let version = env::var("CARGO_PKG_VERSION")?;
let (profile, version_suffix, app_id) = if env::var("PROFILE")? == "debug" {
let profile = "Devel";
let vcs_tag = get_vcs_tag()?;
let version_suffix =
if vcs_tag.is_empty() { "-devel".to_string() } else { format!("-{vcs_tag}") };
(profile.to_owned(), version_suffix, format!("{base_id}.{profile}"))
} else {
(String::new(), String::new(), base_id.to_owned())
};
let final_config = fs::read_to_string("src/config.rs.in")?
.replace("@APP_ID@", &format!("\"{app_id}\""))
.replace("@PROFILE@", &format!("\"{profile}\""))
.replace("@VERSION@", &format!("\"{version}{version_suffix}\""));
let mut file = fs::File::create("src/config.rs")?;
file.write_all(final_config.as_bytes())?;
Ok(())
}
fn get_vcs_tag() -> anyhow::Result<String> {
let output = Command::new("git").args(["rev-parse", "--short", "HEAD"]).output()?;
Ok(String::from_utf8(output.stdout)?)
}

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/cachyos/hello">
<file compressed="true" preprocess="xml-stripblanks">ui/cachyos-hello.glade</file>
<file compressed="true">ui/style.css</file>
<file compressed="true">data/img/external-link.png</file>
<file compressed="true">data/img/discord.png</file>
<file compressed="true">data/img/reddit.png</file>
<file compressed="true">data/img/telegram.png</file>
<file compressed="true">data/img/twitter.png</file>
</gresource>
</gresources>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
data/img/config-title.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 302 B

BIN
data/img/faq-img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
data/img/github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
data/img/ko-fi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
data/img/logo-gpu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
data/img/mastodon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
data/img/melawy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 980 B

BIN
data/img/website.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
data/img/youtube.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +0,0 @@
de

View File

@ -1,37 +0,0 @@
<big>Danke für ihre Unterstützung</big>
CachyOS Linux bekommt eine Menge Unterstützung von seiner Benutzer-Gemeinschaft, und wir wollen jedem einzelnen Beitragenden fürs mitmachen danken. Wir wachsen in gleichmäßigem Tempo und unsere Distribution wird dank ihnen jeden Tag besser.
Es ist sehr leicht etwas zu bewegen. Abhängig von ihren Fähigkeiten, ihrer Verfügbarkeit können Sie CachyOS in einem oder mehreren Wegen helfen:
<big>Unterstützung und Werbung</big>
<b>Die Nachricht verbreiten</b>
Wenn Sie CachyOS mögen, lassen Sie es andere wissen. Schreiben Sie eine Rezension und veröffentlichen sie auf distrowatch.com. Reden Sie darüber mit ihren Freunden und den Leuten die Sie treffen.
<b>Der Gemeinschaft beitreten</b>
CachyOS ist nicht nur ein Betriebssystem, es ist auch eine dynamische Gemeinschaft von Benutzern die ein freies und offenes Projekt genießen, sich dafür versammeln und zusammenwirken. Sei es, indem Sie anderen helfen, Probleme zu lösen, indem Sie ihnen das Gefühl geben, willkommen zu sein, oder einfach indem Sie andere CachyOS-Benutzer treffen und sich mit ihnen unterhalten - wir empfehlen Ihnen, der Gemeinschaft beizutreten und daran mitzuwirken, CachyOS besser zu machen.
<b>Anderen helfen</b>
Wenn Sie etwas Freizeit haben und bereit sind, anderen Benutzern bei technischen Problemen zu helfen, sollten Sie ernsthaft in Erwägung ziehen, die Foren zu lesen und/oder dem IRC-Channel beizutreten und anderen CachyOS-Benutzern bei der Lösung der Probleme zu helfen, die Sie zu beheben wissen.
<big>Beiträge zum Projekt</big>
<b>Fehlerberichte</b>
Wenn Sie etwas bemerkt haben, das bei der Benutzung von CachyOS nicht richtig funktioniert, lassen Sie es uns wissen. Das Problem, das Sie entdeckt haben, wird wahrscheinlich auch andere betreffen; je früher wir davon wissen, desto schneller können wir es beheben.
<b>Neue Ideen</b>
Die überwiegende Mehrheit der Verbesserungen, die in jedem Release enthalten sind, kommen aus der Community. Wenn es etwas gibt, von dem Sie glauben, dass es fehlt oder besser gemacht werden könnte, sagen Sie es uns bitte. Ob es sich um die Aufnahme eines fehlenden Hardware-Treibers handelt, oder um eine Software-Anwendung, die Teil einer Standard-Installation sein sollte, oder ob Sie andere Ideen haben, wie man CachyOS besser machen kann, wir sind immer daran interessiert, sie zu hören.
<b>Kunstwerke</b>
Wenn Sie im Grafikdesign talentiert sind und bereit sind, zum Projekt beizutragen, senden Sie uns bitte Ihre Kreationen und Kunstwerke. Ob es ein einfaches Hintergrundbild, ein Icon-Set, ein Splash-Screen oder sogar ein neues Logo ist, wir sind immer daran interessiert, von Ihnen über neue Kunstwerke zu hören.
<b>Code</b>
Der Großteil unserer Entwicklung wird in QT, C++, Python, HTML5/CSS und BASH durchgeführt. Wir verwenden auch Git für die Versionskontrolle und PKGBUILDs für die Paketierung. Wenn Sie mit diesen Technologien vertraut sind, zögern Sie nicht, einen Blick auf den Code zu werfen. Wenn Sie denken, Sie können unsere Anwendungen verbessern oder neue schreiben, zögern Sie nicht, Patches vorzuschlagen oder unsere Git-Repositories zu forken.

View File

@ -1,45 +0,0 @@
<big>Handhabung der Hardware</big>
CachyOS unterstützt nicht nur die Verwendung mehrerer Kernel (wählbar in den erweiterten Optionen auf dem Boot-Bildschirm), sondern bietet auch Zugriff auf die allerneuesten Bleeding-Edge-Kernel. Dies kann durch die Verwendung des Kernelmoduls im grafischen Einstellungsmanager von CachyOS oder über die Kommandozeile mit dem MHWD-kernel (CachyOS Hardware Detection) Befehl erfolgen.
Diese CachyOS-Tools aktualisieren automatisch einen neu installierten Kernel zusammen mit allen Modulen, die derzeit mit Ihrem bestehenden Kernel verwendet werden. Wenn Sie zum Beispiel von Kernel 3.18 auf 4.1 aktualisieren würden, würde mhwd-kernel automatisch die Kernel 4.1-Builds und alle Module, die mit Kernel 3.18 verwendet wurden, mit einbeziehen. Was sagt man dazu!
Sie können Ihre Hardware über das Hardware-Erkennungsmodul im Einstellungsmanager oder alternativ mit der MHWD-Kommandozeilen-Applikation konfigurieren. Mit diesen Tools können Sie z.B. grafische Treiber installieren, freie und proprietäre.
<big>Hilfe holen</big>
Obwohl CachyOS so konzipiert ist, dass es so viel wie möglich "von vornherein" funktioniert, behaupten wir nicht, dass es perfekt ist. Es kann Zeiten geben, in denen etwas schief läuft, Sie Fragen haben und den Wunsch haben, mehr zu erfahren oder es einfach nur nach Ihrem Geschmack zu personalisieren. Auf dieser Seite finden Sie Details zu einigen verfügbaren Ressourcen, die Ihnen helfen können!
<b>Suche im Web</b>
Vielleicht ist der erste Ort, an dem Sie nach allgemeiner Linux-Hilfe suchen, die Verwendung Ihrer bevorzugten Suchmaschine. Fügen Sie einfach Wörter wie 'Linux', 'CachyOS' oder 'Arch' in Ihre Suchanfrage ein.
Da CachyOS auf Arch Linux basiert, gelten die für Arch entworfenen Anleitungen und Tipps in der Regel auch für CachyOS.
<b>Sehen Sie in den Foren nach</b>
Für spezifische Hilfe mit CachyOS haben wir ein spezielles Online-Forum, in dem Sie nach Themen suchen oder selbst eines erstellen können! Dies ist wahrscheinlich die nächstbeste Anlaufstelle für Zusammenarbeit, Diskussion und Hilfe. Bitten Sie um Hilfe, posten Sie Ihre Gedanken oder skizzieren Sie einige Vorschläge. Seien Sie nicht schüchtern!
Das CachyOS-Forum ist in Unterforen für verschiedene Themen und Umgebungen unterteilt, bitte stellen Sie Ihre Anfrage an der entsprechenden Stelle!
<b>Schließen Sie sich uns im Telegram an</b>
Eine andere Möglichkeit ist, sich uns im Telegram.
<b>Melden Sie sich bei einer Mailingliste an</b>
Eine andere Möglichkeit, Hilfe zu bekommen, ist es, Fragen an die CachyOS-Mailingliste zu schicken (Sie können auch die Chronik nach vergangenen Diskussionen durchsuchen). Melden Sie sich einfach auf der Liste an, die Sie bevorzugen und folgen Sie den Anweisungen. Es gibt eine Liste mit verschiedenen Themen, schau einfach mal rein!
<big>Andere Resourcen</big>
- <a href="https://aur.archlinux.org">AUR Repository</a> - Zusätzliche Software, die nicht in den regulären Repositories enthalten ist und aus den Quellen gebaut wurde.
- <a href="https://wiki.cachyos.org">CachyOS Wiki</a> - Offizielles Wiki für CachyOS.
- <a href="http://wiki.archlinux.org">Arch Wiki</a> - Offizielles Wiki für Arch.
<big>Vorschläge</big>
Haben Sie einen Vorschlag, wie wir CachyOS besser machen können? Haben Sie etwas gefunden, das Sie miteinbezogen haben möchten oder das Sie aushelfen möchten? Bitte lassen Sie es uns wissen, indem Sie ihren Vorschlag im Forum oder im IRC veröffentlichen.
Danke schön!
Wir wünschen Ihnen viel Spaß mit CachyOS!

View File

@ -1,37 +0,0 @@
<big>CachyOS 23.05</big>
Dies ist unsere fünfte Veröffentlichung im Jahr 2023.
Wir haben unsere "Git-Migration" abgeschlossen und diese Version spiegelt die letzten Änderungen im Repository-Layout wider.
Das Repository "cachyos-v3" enthält jetzt nur noch CachyOS-Pakete wie Kernel und eigene optimierte Pakete (Python, gcc, glibc, ...).
Die rekompilierten Pakete befinden sich nun in den Repositories "cachyos-core-v3" und "cachyos-extra-v3".
Die "Qtile"-Desktop-Umgebung hat auch einige Korrekturen und Änderungen erhalten. Dank an @Array
Calamares hat einige minimale Korrekturen erhalten und @NextWorks hat unsere Calamares-Folie aktualisiert, um die Änderungen in den bereitgestellten Desktop-Umgebungen zu reflektieren.
Wie immer gab es auch größere Paket-Upgrades wie linux-cachyos 6.3, python 3.11, cachy-browser 113.0.2 und mesa 23.1.1.
Im nächsten Monat werden wir mit der Migration auf einen neuen Server beginnen und daran arbeiten, einen vollständigen x86-64-v4-Rebuild bereitzustellen.
Außerdem ist für die nächste Version geplant, die Netzinstallation zu überarbeiten, um eine "saubere" Installation ohne CachyOS-bezogene Pakete zu erleichtern.
<big>Features:</big>
- Das Layout der CachyOS Git-Migration wird nun in der Installation berücksichtigt
- chwd (mhwd) erhielt mehrere Korrekturen
- Pacman: Wir haben eine Funktion hinzugefügt, die es ermöglicht, unseren Nutzern vor der Aktualisierung eine Nachricht zukommen zu lassen
- Calamares wurde mit Upstream synchronisiert
- Paket Updates: linux-cachyos 6.3.4, cachy-browser 113.0.1, mesa 23.1.1, python 3.11
<big>Fehlerbehebungen:</big>
- netinstall: minimale Korrekturen aufgrund von Paketänderungen
- Folien: Folie 6 wurde aktualisiert, um die letzten Änderungen widerzuspiegeln
Wie immer kann der Download auf unseren Mirrors in der Sourgeforge gefunden werden.
https://mirror.cachyos.org/ISO/
https://sourceforge.net/projects/cachyos-arch/files/
Wenn Sie uns unterstützen möchten, können Sie spenden, um unsere monatlichen Serverkosten zu decken.
https://paypal.me/pttrr
https://www.patreon.com/CachyOS
Danke,
CachyOS - Team

View File

@ -1,37 +1,67 @@
<big>Thanks for your support</big>
<big>Support</big>
CachyOS Linux receives a great deal of support from its community of users and we would like to thank each and every contributor for participating. We are growing at a steady pace and our distribution is getting better every day thanks to you.
Dear users and fans of Open Source software.
It is very easy to make a difference. Depending on your skill set, your availability you can help CachyOS in one or more of the following ways:
I am asking you for financial support. For the past 1.5 years, I've spent my free time developing a distribution of the Linux operating system, and I'd like to share with you why this work is so important and why your donation makes a difference.
<big>Support and Promotion</big>
Open source software plays a key role in the modern world, providing freedom to use, study, change and distribute programs. This means that everyone who uses Open Source software has the opportunity to adapt it to their needs and improve it for all users.
<b>Spreading the word</b>
My project, a distribution of the Linux operating system, is one example of such Open Source software. I strive to create a reliable and user-friendly operating system while giving users choice and control over their computers. Linux is based on open standards and collaborative development, making it available to everyone without the restrictions of commercial licenses.
If you like CachyOS, let people know. Write a review and publish it on distrowatch.com. Talk about it with your friends and the people around you.
However, developing and maintaining Open Source software requires resources - time, energy and, of course, financial resources. Your donations will help me continue to work on the project, improve its functionality, fix bugs and ensure security.
<b>Joining the Community</b>
Financial support will also allow me to devote more time to developing new features, improving the user interface and optimizing the system as a whole. Without your support, my project may not reach its full potential and benefit the community.
CachyOS isn't just an operating system, it's also a dynamic community of people who enjoy, gather, and interact with a free and open project. Whether it's by helping others sort through issues, by making them feel welcome, or simply by meeting and talking to other CachyOS users, we recommend you join the community and participate in making CachyOS better.
All collected donations will be invested in the development of the project: payment for the domain, hosting, equipment upgrades, testing and development of new functions. Be sure that every ruble, dollar, euro you donate will be used effectively and responsibly.
I encourage you to support my work in developing a distribution of the Linux operating system financially. Your donation will be appreciated, and together we can continue to develop Open Source software and make the world more open, free and accessible to everyone.
Best regards, Valeria.
<a href="https://www.tinkoff.ru/cf/7OmVoFjdFNI">Support the project</a>
<big>And also</big>
It's easy to participate in the development of Melawy Linux. Depending on your skills and capabilities, you can help Melawy Linux in one or more ways:
<big>Support and promotion</big>
<b>Mentioned in conversation</b>
If you like Melawy Linux, let people know about it. Write a review and post it on distrowatch.com. Discuss it with your friends, colleagues, relatives and people around you.
<b>Joining the community</b>
Melawy Linux is not just an operating system, it is also a community of people who enjoy a free and open project, a place for communication and interaction with like-minded people. Whether you are helping other people solve their problems, making them feel at home, or simply communicating with other Melawy Linux users, we encourage you to join the community and take part in the creation of Melawy Linux.
<b>Helping others</b>
If you have some spare time and you're willing to help other users with technical problems, you should seriously consider reading the forums and/or joining the IRC channel and helping other CachyOS users solve the problems you know how to fix.
If you have free time and want to help other users with technical problems, you should seriously consider reading the forums and helping other Melawy Linux users solve problems, especially if you know how to fix them.
<big>Project contributions</big>
<big>Participation in development</big>
<b>Bug reports</b>
If you've noticed something that doesn't work properly while using CachyOS, let us know. The problem you have discovered is likely to affect others as well; The sooner we know about it, the sooner we're able to fix it.
If while using Melawy Linux you notice something that is not working properly, please let us know. The problem you discovered will most likely affect others. The sooner we find out about it, the sooner we can fix it.
<b>New ideas</b>
The vast majority of improvements included in each release come from the community. If there's something that you think is missing or that could be done better, please tell us. Whether it's the inclusion of a missing hardware driver, or a software application that should be part of a stock installation, or if you have any other ideas on how to make CachyOS better, we're always interested in hearing them.
The vast majority of improvements included in each release come from the community. If there is anything you think is missing or could be done better, please let us know. Whether it's the inclusion of a missing hardware driver or a software application that should be part of the official repository, or if you have any other ideas on how to make Melawy Linux better, we're always interested in hearing about them.
<b>Artwork</b>
<b>Design</b>
If you are talented in graphic design and willing to contribute to the project, please send us your creations and artwork. Whether it's a simple wallpaper, an icon set, a splash screen, or even a new logo, we're always interested to hear from you about new artwork.
If you have a talent in graphic design and are ready to contribute to the project, send us your work and illustrations. Be it a simple wallpaper, an icon set, screensavers or even a new logo. We are always interested in knowing your vision of design.
<b>Code</b>
<b>Programming</b>
Most of our development is done in QT, C++, Python, HTML5/CSS and BASH. We also use Git for version control and PKGBUILDs for packaging. If you're comfortable with these technologies, don't hesitate to have a look at the code. If you think you can improve our applications or write new ones don't hesitate to suggest patches or to fork our git repositories.
Most of our development is done in QT, C++, Python, HTML5/CSS and BASH. We also use Git for version control and PKGBUILD for packaging. If you're comfortable using these technologies, feel free to take a look at our code. If you think you can improve our applications or write new ones, feel free to suggest fixes or fork our git repositories.

View File

@ -1,37 +1,26 @@
<big>Handling hardware</big>
CachyOS not only supports the use of multiple kernels (selectable from the advanced options at the boot screen), but also provides access to the very latest bleeding-edge kernels as well. This can be done through the use of the Kernel module in CachyOS's graphical Settings Manager, or via the command line using the MHWD-kernel (CachyOS Hardware Detection) command.
These CachyOS tools will automatically update a newly installed kernel along with any modules currently in use with your existing kernel. For example, if you were to update from kernel 3.18 to 4.1, MHWD-kernel would automatically include the kernel 4.1 builds and all modules used with kernel 3.18. How about that!
You can configure your hardware through the Hardware Detection module in the Settings Manager or alternatively with the MHWD cli-application. With these tools, you can install for example graphical drivers, free and proprietary.
<big>Getting help</big>
Although CachyOS is designed to work as much "out of the box" as possible, we don't claim it's perfect. There can be times when things go wrong, you might have questions and a desire to learn more, or just want to personalize it to suit your tastes. This page provides details of some available resources to help you!
Although Melawy Linux is designed to work correctly out of the box, we will not claim that it is perfect. There are times when something goes wrong, you may have questions and want to know more, or you may simply want to customize the system to your liking. This page provides information on some of the resources available to help you!
<b>Search the web</b>
<b>Search on the Internet</b>
Perhaps the first place to look for generic Linux help is by using your favorite search engine. Just include words like 'Linux', 'CachyOS' or 'Arch' in your search query.
Perhaps the first place to look for general Linux help is to use your favorite search engine. Just add words like "Linux", "Melawy Linux" or "Arch" to your search query.
As CachyOS is based on Arch Linux, guides and tips designed for Arch usually apply to CachyOS too.
<b>Look in the forums</b>
For specific help with CachyOS we have a dedicated online forum where you can search for topics, or create one yourself! This is probably the next best place to go for collaboration, discussion and assistance. Ask for help, post your thoughts, or outline some suggestions. Don't be shy!
The CachyOS forum is divided into sub-forums for different topics and environments, please post your query in the appropriate place!
Since Melawy Linux is based on Arch Linux, guides and tips designed for Arch generally apply to Melawy Linux as well.
<big>Other resources</big>
- <a href="https://aur.archlinux.org">AUR Repository</a> - Extra software not in the regular repositories, built from source.
- <a href="https://wiki.cachyos.org">CachyOS Wiki</a> - Official wiki for CachyOS.
- <a href="https://wiki.archlinux.org">Arch Wiki</a> - Official wiki for Arch.
- <a href="https://aur.archlinux.org">AUR Repository</a> - Additional software not found in regular repositories, built from source code.
- <a href="http://wiki.archlinux.org">Arch Wiki</a> - Official wiki for Arch.
<big>Suggestions</big>
<big>Russian-language resources</big>
Got a suggestion on how we can make CachyOS better? Found something you want to be included, or want to help out? Please let us know, by posting your suggestion on the forum or drop by on IRC.
Communication on the resources listed above is conducted in English and will suit you if you speak it. Even though the capabilities of various automatic translation tools have made great strides forward, it is always more common to communicate in a language in which you not only speak, but also think. If this language is Russian for you, you may be interested in the official Melawy Linux discord community in Russia.
Thank you!
<big>Offers</big>
We hope you enjoy using CachyOS!
Have a suggestion on how to make Melawy Linux better? Found something you want to include in the system, or just want to help? Let us know by posting your suggestion on the Melawy Linux discord community.
Thank you for your choice!
We hope you enjoy Melawy Linux!

View File

@ -1,37 +1,44 @@
<big>CachyOS 23.05</big>
<big>Release of Melawy Linux distribution 15.11.2023</big>
This is our fifth release in 2023.
We got our "Git Migration" done and this release does reflect the latest changes in the repository layout.
The repository "cachyos-v3" contains now only CachyOS packages like kernels and custom optimized packages (python, gcc, glibc, ...).
The recompiled packages are now in the "cachyos-core-v3" and "cachyos-extra-v3" repositorys.
The "Qtile" Desktop enviroment got also several fixes and changes. Thanks to @Array
Calamars got some minimal fixes and @NextWorks did update our calamares slide to reflect the changes in the provided desktop enviroments.
As always there were also major package upgrades like linux-cachyos 6.3, python 3.11, cachy-browser 113.0.2 and mesa 23.1.1.
In the next month we will start to migrate to a new server and will work on providing a full x86-64-v4 rebuild.
Also for the next release it is planned to rework the netinstallation to make it easier to install a "clean" without CachyOS related packages.
Quietly and almost imperceptibly, after 1.5+ years of work, 30.10.2023 the first release of the Melawy Linux operating system was released.
<big>Features:</big>
<big>What's inside?</big>
- CachyOS Git Migration layout is now reflected in the installation
- chwd (mhwd) got multiple fixes
- Pacman: We added a feature, which makes it possible to provide a message to our users before updating
- Calamares got synced with upstream
- Package updates: linux-cachyos 6.3.4, cachy-browser 113.0.1, mesa 23.1.1, python 3.11
- Installation from disk and over the network with the choice of bootloader rEFInd, systemd-boot, Grub2 in one installer.
- Ability to select and install driver version for Nvidia video card:
- installation from disk - drivers only for new video cards
- network installation - manual driver selection
<big>Bug-fixes:</big>
- Non-standard kernel - with patches for performance and protection from Meltdown and Specter, etc.
- Builder of the initial kernel environment using the modular, automated Dracut.
- Generation of digital signatures and kernel signing to start via Secure Boot:
- Later, bootloader signing will be automated and the full boot cycle will be checked via Secure Boot.
- The full boot phase via Secure Boot protects against viruses, starting with the bootloader and kernel loading.
- netinstall: minimal fixes due package changes
- Slides: Slide 6 got updated to reflect the lastest changes
- Support for Luks2 full-disk encryption using the latest Argon2id algorithm.
- Beautiful, informative visual design:
- operating system boot selection screen
- stage of loading the kernel and base environment initrd
- login
- working environment:
- styles
- color
- icons
- cursors
You can find the download at our mirrors or sourceforge.
- Not annoying update checking applet:
- automatic check at login after 10 seconds - after everything starts
- force check button and install button
https://mirror.cachyos.org/ISO/
https://sourceforge.net/projects/cachyos-arch/files/
- Pre-installed controls for AMD hardware through the user interface and Nvidia graphics card.
- A pre-selected large list of programs that can be used immediately.
- The ability to use all these programs directly on the Live image, without installing the system on disk.
- And other...
If you'd like to support us, you can donate to help cover our monthly server costs.
You can download the distribution from <a href="https://sourceforge.net/projects/melawy-linux/files/">SourceForge</a>.
https://paypal.me/pttrr
https://www.patreon.com/CachyOS
If you want to support my work, you can make a <a href="https://www.tinkoff.ru/cf/7OmVoFjdFNI">donation</a>.
Thanks,
The CachyOS Team
Thanks for your support!
Best regards, Valeria Fadeeva.

View File

@ -1,37 +0,0 @@
<big> Dzięki za wsparcie </big>
CachyOS Linux otrzymuje ogromne wsparcie od swojej społeczności użytkowników i chcielibyśmy podziękować każdemu wspierającemu za udział. Rozwijamy się w stałym tempie, a dzięki Tobie nasza dystrybucja z każdym dniem jest coraz lepsza.
Bardzo łatwo jest coś zmienić. W zależności od twojego zestawu umiejętności, twojej dostępności możesz pomóc CachyOS na jeden lub więcej z następujących sposobów:
<big> Wsparcie i promocja </big>
<b> Rozpowszechnianie informacji </b>
Jeśli lubisz CachyOS, daj znać innym. Napisz recenzję i opublikuj ją na distrowatch.com. Porozmawiaj o tym ze swoimi przyjaciółmi i ludźmi wokół ciebie.
<b> Dołączanie do społeczności </b>
CachyOS to nie tylko system operacyjny, ale także dynamiczna społeczność ludzi, którzy cieszą się, gromadzą i wchodzą w interakcje z wolnym i otwartym projektem. Niezależnie od tego, czy chodzi o pomaganie innym w rozwiązywaniu problemów, sprawianie, że czują się mile widziani, czy po prostu spotykając się i rozmawiając z innymi użytkownikami CachyOS, zalecamy dołączenie do społeczności i udział w ulepszaniu CachyOS.
<b> Pomaganie innym </b>
Jeśli masz trochę wolnego czasu i chcesz pomóc innym użytkownikom w rozwiązywaniu problemów technicznych, powinieneś poważnie rozważyć czytanie forów i / lub dołączenie do kanału IRC i pomoc innym użytkownikom CachyOS w rozwiązywaniu problemów, które wiesz, jak naprawić.
<big> Wkład do projektu </big>
<b> Raporty o błędach </b>
Jeśli zauważyłeś coś, co nie działa poprawnie podczas korzystania z CachyOS, daj nam znać. Problem, który odkryłeś, prawdopodobnie wpłynie również na innych. Im szybciej się o tym dowiemy, tym szybciej będziemy mogli to naprawić.
<b> Nowe pomysły </b>
Zdecydowana większość ulepszeń zawartych w każdym wydaniu pochodzi od społeczności. Jeśli Twoim zdaniem brakuje czegoś, co można zrobić lepiej, poinformuj nas o tym. Niezależnie od tego, czy jest to dołączenie brakującego sterownika sprzętu, czy aplikacji, która powinna być częścią standardowej instalacji, czy też masz inne pomysły, jak ulepszyć CachyOS, zawsze jesteśmy zainteresowani ich usłyszeniem.
<b> Grafika </b>
Jeśli masz talent do projektowania graficznego i chcesz wnieść swój wkład w projekt, prześlij nam swoje kreacje i grafiki. Niezależnie od tego, czy jest to prosta tapeta, zestaw ikon, ekran powitalny, czy nawet nowe logo, zawsze jesteśmy zainteresowani usłyszeniem od Ciebie o nowej grafice.
<b> Kod </b>
Większość naszego kodu jest pisana w QT, C ++, Pythonie, HTML5 / CSS i BASH. Używamy również Gita do kontroli wersji i PKGBUILD do pakowania. Jeśli czujesz się komfortowo z tymi technologiami, nie wahaj się rzucić okiem na kod. Jeśli myślisz, że możesz ulepszyć nasze aplikacje lub napisać nowe, nie wahaj się zasugerować łatek lub rozwidlić nasze repozytoria git.

View File

@ -1,43 +0,0 @@
<big> Obsługa sprzętu </big>
CachyOS nie tylko obsługuje instalację wielu jąder (wybieranych z zaawansowanych opcji na ekranie startowym), ale także zapewnia dostęp do najnowszych jąder „bleeding edge”. Można to zrobić za pomocą modułu Jądro w graficznym menedżerze ustawień CachyOS lub za pomocą wiersza poleceń przy użyciu polecenia mhwd-kernel (CachyOS Hardware Detection).
Te narzędzia CachyOS automatycznie zaktualizują nowo zainstalowane jądro wraz z wszystkimi modułami aktualnie używanymi z istniejącym jądrem. Na przykład, gdybyś zaktualizował jądro z 3.18 do 4.1, mhwd-kernel automatycznie zainstaluje kompilacje jądra 4.1 i wszystkie moduły używane z jądrem 3.18. Co ty na to!
Możesz skonfigurować swój sprzęt za pomocą modułu wykrywania sprzętu w Menedżerze ustawień lub alternatywnie za pomocą aplikacji MHWD z linii komend. Za pomocą tych narzędzi możesz zainstalować na przykład sterowniki graficzne, bezpłatne i zastrzeżone.
<big> Uzyskiwanie pomocy </big>
Chociaż CachyOS jest zaprojektowany tak, aby działał jak najlepiej „po wyjęciu z pudełka”, nie twierdzimy, że jest idealny. Może się zdarzyć, że coś pójdzie nie tak, możesz mieć pytania i chcieć dowiedzieć się więcej lub po prostu chcesz dostosować CachyOS do swoich upodobań. Ta strona zawiera szczegółowe informacje na temat dostępnych zasobów, które mogą Ci pomóc!
<b> Szukaj w internecie </b>
Być może pierwszym miejscem, w którym należy szukać ogólnej pomocy dla systemu Linux, jest skorzystanie z ulubionej wyszukiwarki. Po prostu uwzględnij w zapytaniu słowa takie jak „Linux”, „CachyOS” lub „Arch”.
Ponieważ CachyOS jest oparty na Arch Linux, przewodniki i porady zaprojektowane dla Arch zwykle dotyczą również CachyOS.
<b> Przeszukaj fora </b>
Aby uzyskać konkretną pomoc dotyczącą CachyOS, mamy dedykowane forum internetowe, na którym możesz wyszukiwać tematy lub tworzyć własne! Jest to prawdopodobnie kolejne najlepsze miejsce do współpracy, dyskusji i pomocy. Poproś o pomoc, podziel się swoimi przemyśleniami lub przedstaw kilka sugestii. Nie wstydź się!
Forum CachyOS jest podzielone na pod-fora dla różnych tematów i środowisk, prosimy o wysłanie zapytania w odpowiednim miejscu!
- <a href="https://forum.cachyos.org"> Oficjalne Forum CachyOS</a>
<b> Dołącz do nas na Telegram </b>
Inną opcją jest dołączenie do nas na Telegram.
<big> Inne zasoby </big>
- <a href="https://aur.archlinux.org"> Repozytorium AUR </a> - Dodatkowe oprogramowanie, którego nie ma w zwykłych repozytoriach, zbudowane ze źródeł.
- <a href="https://wiki.cachyos.org"> CachyOS Wiki </a> - Oficjalna wiki CachyOS.
- <a href="http://wiki.archlinux.org"> Arch Wiki </a> - Oficjalna wiki Arch.
<big> Sugestie </big>
Masz sugestię, jak możemy ulepszyć CachyOS? Znalazłeś coś, co chcesz uwzględnić, lub chcesz pomóc? Daj nam znać, publikując swoje sugestie na forum lub wpadnij na IRC.
Dziękujemy!
Mamy nadzieję, że spodoba Ci się CachyOS!

View File

@ -1,37 +0,0 @@
<big>CachyOS 23.05</big>
To nasze piąte wydanie w 2023 roku.
Zakończyliśmy naszą "Migrację Git" i to wydanie odzwierciedla najnowsze zmiany w układzie repozytorium.
Repozytorium "cachyos-v3" zawiera teraz tylko pakiety CachyOS, takie jak jądra i niestandardowe zoptymalizowane pakiety (python, gcc, glibc, ...).
Przekompilowane pakiety znajdują się teraz w repozytoriach "cachyos-core-v3" i "cachyos-extra-v3".
Środowisko "Qtile" Desktop również otrzymało kilka poprawek i zmian. Podziękowania dla @Array
Calamares otrzymało kilka minimalnych poprawek, a @NextWorks zaktualizował nasz slajd calamares, aby odzwierciedlał zmiany w dostarczonych środowiskach graficznych.
Jak zawsze pojawiły się również duże aktualizacje pakietów, takie jak linux-cachyos 6.3, python 3.11, cachy-browser 113.0.2 i mesa 23.1.1.
W następnym miesiącu rozpoczniemy migrację na nowy serwer i będziemy pracować nad zapewnieniem pełnej przebudowy x86-64-v4.
W następnym wydaniu planowana jest również przeróbka instalacji sieciowej, aby ułatwić instalację "czystej" bez pakietów związanych z CachyOS.
<big>Nowe funkcje:</big>
- Układ migracji CachyOS Git jest teraz odzwierciedlony w instalacji
- chwd (mhwd) otrzymał wiele poprawek
- Pacman: Dodaliśmy funkcję, która umożliwia dostarczenie wiadomości naszym użytkownikom przed aktualizacją.
- Calamares został zsynchronizowany z upstream
- Aktualizacje pakietów: linux-cachyos 6.3.4, cachy-browser 113.0.1, mesa 23.1.1, python 3.11
<big>Naprawy błędów:</big>
- netinstall: minimalne poprawki spowodowane zmianami pakietów
- Slajdy: Slajd 6 został zaktualizowany, aby odzwierciedlić najnowsze zmiany.
Pobieranie można znaleźć w naszych mirrorach lub sourceforge
https://mirror.cachyos.org/ISO/
https://sourceforge.net/projects/cachyos-arch/files/
Jeśli chcesz nas wesprzeć, możesz przekazać darowiznę, aby pomóc pokryć nasze miesięczne koszty serwerów.
https://paypal.me/pttrr
https://www.patreon.com/CachyOS
Dzięki,
The CachyOS Zespół

View File

@ -1,37 +1,67 @@
<big> Спасибо за вашу поддержку </big>
<big>Поддержка</big>
Значительную поддержку CachyOS Linux получает от сообщества пользователей, и мы хотели бы поблагодарить каждого участника за участие. Мы развиваемся уверенными темпами, и благодаря вам наша система становится лучше с каждым днем.
Уважаемые пользователи и поклонники Open Source программного обеспечения.
Принять участие в развитии CachyOS легко. В зависимости от ваших навыков и возможностей вы можете помочь CachyOS одним или несколькими способами:
Я обращаюсь к Вам с просьбой о финансовой поддержке. В течение последних 1,5 лет я уделяла свое свободное время разработке дистрибутива операционной системы Linux, и я хотела бы поделиться с вами, почему эта работа столь важна и почему ваше пожертвование имеет значение.
<big> Поддержка и продвижение </big>
Open source программное обеспечение (ПО) играет ключевую роль в современном мире, обеспечивая свободу использования, изучения, изменения и распространения программ. Это значит, что каждый, кто использует Open Source ПО, имеет возможность адаптировать его под свои нужды и улучшать его для всех пользователей.
<b> Упоминание в разговоре </b>
Мой проект - дистрибутив операционной системы Linux, является одним из примеров такого Open Source ПО. Я стремлюсь создать надежную и удобную операционную систему, предоставляя пользователям возможность выбора и контроля над своими компьютерами. Линукс основан на открытых стандартах и совместной разработке, что делает его доступным для всех без ограничений коммерческих лицензий.
Если вам нравится CachyOS, пусть люди знают об этом. Напишите отзыв и опубликуйте его на distrowatch.com. Обсудите ее со своими друзьями, коллегами, родственниками и людьми вокруг вас.
Однако разработка и поддержка Open Source программного обеспечения требуют ресурсов - времени, энергии и, конечно же, финансовых средств. Ваши пожертвования помогут мне продолжать работать над проектом, улучшать его функциональность, исправлять ошибки и обеспечивать безопасность.
<b> Присоединение к сообществу </b>
Финансовая поддержка позволит мне также уделить больше времени на разработку новых функций, улучшение пользовательского интерфейса и оптимизацию системы в целом. Без вашей поддержки мой проект может не достичь своего полного потенциала и не принести пользу сообществу.
CachyOS - это не просто операционная система, это динамичное сообщество людей, которым свободный и открытый проект дарит удовольствие, является местом общения и взаимодействия с единомышленниками. Не важно помогаете ли вы другим людям решать возникшие у них проблемы, давая им возможность почувствовать себя как дома, или просто общаетесь с другими пользователями CachyOS, мы рекомендуем вам присоединиться к сообществу и принять посильное участие в создании CachyOS.
Все собранные пожертвования будут вложены в развитие проекта: оплата домена, хостинга, обновление оборудования, проведение тестирования и разработка новых функций. Будьте уверены, что каждый рубль, доллар, евро, пожертвованный вами, будет использован эффективно и ответственно.
<b> Помощь другим </b>
Я призываю Вас поддержать мою работу по разработке дистрибутива операционной системы Linux финансово. Ваше пожертвование будет оценено, и вместе мы сможем продолжить развитие Open Source ПО и сделать мир более открытым, свободным и доступным для всех.
Если у вас есть свободное время и вы хотите помочь другим пользователям в решении технических проблем, вам следует серьезно подумать о том, чтобы читать форумы и/или присоединяться к каналу IRC и помогать другим пользователям CachyOS решать проблемы, особенно если вы знаете, как их исправить.
С уважением, Валерия.
<a href="https://www.tinkoff.ru/cf/7OmVoFjdFNI">Поддержать проект</a>
<big>А также</big>
Принять участие в развитии Melawy Linux легко. В зависимости от ваших навыков и возможностей Вы можете помочь Melawy Linux одним или несколькими способами:
<big>Поддержка и продвижение</big>
<b>Упоминание в разговоре</b>
Если Вам нравится Melawy Linux, пусть люди знают об этом. Напишите отзыв и опубликуйте его на distrowatch.com. Обсудите ее со своими друзьями, коллегами, родственниками и людьми вокруг Вас.
<b>Присоединение к сообществу</b>
Melawy Linux - это не просто операционная система, это также сообщество людей, которым свободный и открытый проект дарит удовольствие, является местом общения и взаимодействия с единомышленниками. Не важно помогаете ли Вы другим людям решать возникшие у них проблемы, давая им возможность почувствовать себя как дома, или просто общаетесь с другими пользователями Melawy Linux, мы рекомендуем Вам присоединиться к сообществу и принять посильное участие в создании Melawy Linux.
<b>Помощь другим</b>
Если у Вас есть свободное время и Вы хотите помочь другим пользователям в решении технических проблем, Вам следует серьезно подумать о том, чтобы читать форумы и помогать другим пользователям Melawy Linux решать проблемы, особенно если Вы знаете, как их исправить.
<big>Участие в разработке</big>
<b> Отчеты об ошибках </b>
<b>Отчеты об ошибках</b>
Если во время использования CachyOS вы заметили что-то, что не работает должным образом, сообщите нам. Проблема, которую вы обнаружили, скорее всего, затронет и других. Чем раньше мы о ней узнаем, тем скорее мы сможем ее исправить.
Если во время использования Melawy Linux Вы заметили что-то, что не работает должным образом, сообщите нам. Проблема, которую Вы обнаружили, скорее всего, затронет и других. Чем раньше мы о ней узнаем, тем скорее мы сможем ее исправить.
<b> Новые идеи </b>
<b>Новые идеи</b>
Подавляющее большинство улучшений, включенных в каждый выпуск, поступает от сообщества. Если есть что-то, что, по вашему мнению, отсутствует или это можно сделать лучше, сообщите нам. Является ли это включением отсутствующего драйвера оборудования или программным приложением, которое должно быть частью официального репозитория, или если у вас есть какие-то другие идеи о том, как сделать CachyOS лучше, нам всегда интересно о них узнать.
Подавляющее большинство улучшений, включенных в каждый выпуск, поступает от сообщества. Если есть что-то, что, по Вашему мнению, отсутствует или это можно сделать лучше, сообщите нам. Является ли это включением отсутствующего драйвера оборудования или программным приложением, которое должно быть частью официального репозитория, или если у Вас есть какие-то другие идеи о том, как сделать Melawy Linux лучше, нам всегда интересно о них узнать.
<b> Оформление </b>
<b>Оформление</b>
Если вы обладаете талантом в графическом дизайне и готовы внести свой вклад в проект, отправьте нам свои работы и иллюстрации. Будь то простые обои, набор значков, заставки или даже новый логотип. Знать ваше видение дизайна нам всегда интересно.
Если Вы обладаете талантом в графическом дизайне и готоВы внести свой вклад в проект, отправьте нам свои работы и иллюстрации. Будь то простые обои, набор значков, заставки или даже новый логотип. Знать Ваше видение дизайна нам всегда интересно.
<b> Программирование </b>
<b>Программирование</b>
Большая часть нашей разработки выполняется в QT, C ++, Python, HTML5 / CSS и BASH. Мы также используем Git для контроля версий и PKGBUILD для упаковки. Если вам удобно пользоваться этими технологиями, не стесняйтесь взглянуть на наш код. Если вы думаете, что можете улучшить наши приложения или написать новые, не стесняйтесь предлагать исправления или форкать наши репозитории git.
Большая часть нашей разработки выполняется в QT, C++, Python, HTML5 / CSS и BASH. Мы также используем Git для контроля версий и PKGBUILD для упаковки. Если Вам удобно пользоваться этими технологиями, не стесняйтесь взглянуть на наш код. Если Вы думаете, что можете улучшить наши приложения или написать новые, не стесняйтесь предлагать исправления или форкать наши репозитории git.

View File

@ -1,49 +1,26 @@
<big>Управление оборудованием</big>
CachyOS поддерживает не только выбор загрузки необходимого ядра Линукс (в дополнительных опциях на экране загрузки) среди нескольких установленных, но и позволяет самостоятельно установить любую из понравившихся (даже самую последнюю) версию. Это можно сделать с помощью модуля <b>Ядро</b> в графическом менеджере настроек CachyOS или посредством команды <i>mhwd-kernel</i> (CachyOS Hardware Detection) в терминале.
Данный инструмент автоматически обновит вновь установленное ядро, а также все дополнительные модули, уже использующиеся на этот момент с существующим ядром. Например, если вы обновляете ядро с версии 3.18 на версию 4.1, <i>mhwd-kernel</i> автоматически включит в сборку ядра 4.1 все модули, используемые с ядром 3.18.
Оборудование можно настроить через модуль <b>Конфигурация оборудования</b> в Диспетчере настроек или с помощью команды <i>mhwd</i> в терминале. С помощью этих инструментов можно, например, установить драйверы для видеокарты (как свободные, так и проприетарные).
<big>Получение справки</big>
Хотя CachyOS призван корректно работать, что называется, «из коробки», мы не станем утверждать, что он совершенен. Бывают случаи, когда что-то идет не так, у вас могут возникнуть вопросы и желание узнать больше или вы просто захотите настроить систему по своему вкусу. На этой странице содержится информация о некоторых доступных ресурсах, которые помогут вам!
Хотя Melawy Linux призван корректно работать, что называется, «из коробки», мы не станем утверждать, что он совершенен. Бывают случаи, когда что-то идет не так, у Вас могут возникнуть вопросы и желание узнать больше или Вы просто захотите настроить систему по своему вкусу. На этой странице содержится информация о некоторых доступных ресурсах, которые помогут вам!
<b>Поищите в Интернете</b>
Возможно, первое место для поиска общей помощи Linux - это использование вашей любимой поисковой системы. Просто добавьте в ваш поисковый запрос такие слова, как «Linux», «CachyOS» или «Arch».
Возможно, первое место для поиска общей помощи Linux - это использование вашей любимой поисковой системы. Просто добавьте в ваш поисковый запрос такие слова, как «Linux», «Melawy Linux» или «Arch».
Поскольку CachyOS базируется на Arch Linux, руководства и советы, предназначенные для Arch, обычно подходят и к CachyOS.
Поскольку Melawy Linux базируется на Arch Linux, руководства и советы, предназначенные для Arch, обычно подходят и к Melawy Linux.
<b>Загляните на форум</b>
<big>Другие ресурсы</big>
Для получения конкретной помощи в CachyOS у нас есть специализированный главный онлайн-форум, где вы можете искать темы или создавать их самостоятельно! Вероятно, это лучшее место для сотрудничества, обсуждения и помощи. Попросите о помощи, поделитесь своими мыслями или оставьте отзыв или предложение. Стеснятся не надо!
Форум CachyOS разделен на подфорумы различной тематики, поэтому желательно размещать свой запрос в соответствующем месте!
<b>Присоединяйтесь к нам в Telegram</b>
Другой вариант - общаться с нами в чате Telegram.
<b>Подпишитесь на список рассылки</b>
Еще один способ получить помощь - отправить вопрос по электронной почте в список рассылки CachyOS (можно просматривать историю прошлых обсуждений). Просто зарегистрируйтесь в списке, который для вас наиболее предпочтителен, и следуйте инструкциям. Существует список, посвященный нескольким темам!
<big> Другие ресурсы </big>
- <a href="https://aur.archlinux.org"> Репозиторий AUR </a> - Дополнительное программное обеспечение, отсутствующее в обычных репозиториях, собранное из исходного кода.
- <a href="https://wiki.cachyos.org"> CachyOS Wiki </a> - Официальная wiki для CachyOS.
- <a href="http://wiki.archlinux.org"> Arch Wiki </a> - Официальная wiki для Arch.
- <a href="https://aur.archlinux.org">Репозиторий AUR</a> - Дополнительное программное обеспечение, отсутствующее в обычных репозиториях, собранное из исходного кода.
- <a href="http://wiki.archlinux.org">Arch Wiki</a> - Официальная wiki для Arch.
<big>Русскоязычные ресурсы</big>
Общение на перечисленных выше ресурсах ведется на английском языке и подойдет вам, если вы им владеете. Даже не смотря на то, что возможности различных инструментов по автоматическому переводу шагнули далеко вперед, всегда привычнее общаться на языке, на котором не только говоришь, но и думаешь. Если для вас таким языком является Русский, вам могут быть интересны неофициальные группы и сообщества CachyOS в России.
Общение на перечисленных выше ресурсах ведется на английском языке и подойдет вам, если Вы им владеете. Даже не смотря на то, что возможности различных инструментов по автоматическому переводу шагнули далеко вперед, всегда привычнее общаться на языке, на котором не только говоришь, но и думаешь. Если для Вас таким языком является Русский, вам моет быть интересенн официальное дискорд-сообщество Melawy Linux в России.
<big> Предложения </big>
<big>Предложения</big>
Есть предложение о том, как сделать CachyOS лучше? Нашли что-то, что хотите включить в систему, или просто хотите помочь? Сообщите нам, разместив свое предложение на главном форуме или заглянув в IRC.
Есть предложение о том, как сделать Melawy Linux лучше? Нашли что-то, что хотите включить в систему, или просто хотите помочь? Сообщите нам, разместив свое предложение в дискорд-сообществе Melawy Linux.
Спасибо Вам за Ваш выбор!
Надеемся, вам понравится CachyOS!
Надеемся, вам понравится Melawy Linux!

View File

@ -1,37 +1,44 @@
<big>CachyOS 23.05</big>
<big>Релиз дистрибутива Melawy Linux 15.11.2023</big>
Это наш пятый релиз в 2023 году.
Мы завершили нашу "миграцию Git", и этот релиз отражает последние изменения в расположении репозитория.
Репозиторий "cachyos-v3" теперь содержит только пакеты CachyOS, такие как ядра и оптимизированные пакеты (python, gcc, glibc, ...).
Перекомпилированные пакеты теперь находятся в репозиториях "cachyos-core-v3" и "cachyos-extra-v3".
Среда рабочего стола "Qtile" также получила несколько исправлений и изменений. Спасибо @Array
Calamares получил несколько минимальных исправлений, а @NextWorks обновил наш слайд по calamares, чтобы отразить изменения в предоставляемых средах рабочего стола.
Как всегда, были обновлены такие пакеты, как linux-cachyos 6.3, python 3.11, cachy-browser 113.0.2 и mesa 23.1.1.
В следующем месяце мы начнем миграцию на новый сервер и будем работать над обеспечением полной пересборки x86-64-v4.
Также в следующем релизе планируется переработать netinstallation, чтобы упростить установку "чистой", без связанных с CachyOS пакетов, системы.
Тихо и почти незаметно спустя 1,5+ года работы, 30.10.2023 вышел первый релиз операционно системы Melawy Linux.
<big>Особенности:</big>
<big>Что внутри?</big>
- Макет CachyOS Git Migration теперь отражается в установке
- chwd (mhwd) получил множество исправлений
- Pacman: Мы добавили функцию, которая позволяет предоставлять сообщение нашим пользователям перед обновлением
- Calamares синхронизирован с восходящим потоком
- Обновления пакетов: linux-cachyos 6.3.4, cachy-browser 113.0.1, mesa 23.1.1, python 3.11
- Установка с диска и по сети с выбором загрузчика rEFInd, systemd-boot, Grub2 в одном установщике.
- Возможность выбрать и установить версию драйверов для видеокарты Nvidia:
- установка с диска - драйверы только для новых видеокарт
- установка по сети - выбор драйвера вручную
<big>Исправления ошибок:</big>
- Нестандартное ядро - с патчами на производительность и защиту от Meltdown и Spectre и др.
- Сборщик начального окружения ядра с помощью модульного, автоматизированного Dracut.
- Генерация цифровых подписей и подписывания ядра для старта через Secure Boot:
- Позже будет автоматизировано подписывание загрузчика и проверен полный цикл загрузки через Secure Boot.
- Полный этап загрузки через Secure Boot защищает от вирусов начиная с загрузчика и загрузки ядра.
- netinstall: минимальные исправления в связи с изменением пакета
- Слайды: Слайд 6 был обновлен, чтобы отразить последние изменения
- Поддержка полнодискового шифрования Luks2 последним алгоритмом Аrgon2id.
- Красивое, информативное визуальное оформление:
- экран выбора заргузки операционной системы
- этап загрузки ядра и базового окружения initrd
- вход в систему
- рабочее окружение:
- стили
- цвет
- иконки
- курсоры
Вы можете найти загрузку на наших зеркалах или sourceforge.
- Не надоедающий апплет проверки обновлений:
- автоматическая проверка при входе через 10 секунд - после того как всё запустится
- кнопка принудительной проверки и кнопка установки
https://mirror.cachyos.org/ISO/
https://sourceforge.net/projects/cachyos-arch/files/
- Предустановленные средства управления оборудованием AMD через пользовательский интерфейс и видеокартой Nvidia.
- Заранее выбранный большой список программ, которые можно сразу использовать.
- Возможность использовать все эти программы прямо на Live образе, без установки системы на диск.
- И другое...
Если вы хотите поддержать нас, вы можете сделать пожертвование, чтобы помочь покрыть наши ежемесячные расходы на сервер.
Вы можете скачать дистрибутив с <a href="https://sourceforge.net/projects/melawy-linux/files/">SourceForge</a>.
https://paypal.me/pttrr
https://www.patreon.com/CachyOS
Если Вы хотите поддержать мою работу, то можете сделать <a href="https://www.tinkoff.ru/cf/7OmVoFjdFNI">пожертвование</a>.
Спасибо,
Команда CachyOS
Спасибо за Вашу поддержку!
С уважением, Валерия Фадеева.

View File

@ -1,21 +1,25 @@
{
"default_locale": "en",
"autostart_path": "~/.config/autostart/cachyos-hello.desktop",
"data_path": "/usr/share/cachyos-hello/data/",
"desktop_path": "/usr/share/applications/cachyos-hello.desktop",
"autostart_path": "~/.config/autostart/melawy-welcome.desktop",
"data_path": "/usr/share/melawy-welcome/data/",
"desktop_path": "/usr/share/applications/melawy-welcome.desktop",
"installer_path": "/usr/bin/calamares",
"live_path": "/run/archiso/bootmnt/arch",
"locale_path": "/usr/share/locale/",
"logo_path": "/usr/share/icons/hicolor/scalable/apps/",
"save_path": "~/.config/cachyos-hello.json",
"save_path": "~/.config/melawy-welcome.json",
"ui_path": "/usr/share/melawy-welcome/ui/melawy-welcome.glade",
"style_path": "/usr/share/melawy-welcome/ui/style.css",
"urls": {
"development": "https://github.com/cachyos",
"software": "https://github.com/cachyos/cachyos-pkgbuilds",
"donate": "https://www.patreon.com/CachyOS",
"forum": "https://forum.cachyos.org",
"telegram": "https://t.me/+oR-kWT47vRdmMDli",
"discord": "https://discord.gg/qJqj94uFwE",
"reddit": "https://www.reddit.com/r/cachyos",
"twitter": "https://twitter.com/cachyos",
"wiki": "https://wiki.cachyos.org"
"wiki": "https://wiki.archlinux.org",
"forum": "https://sourceforge.net/p/melawy-linux/discussion/",
"software": "https://git.melawy.ru/Melawy-Linux",
"development": "https://gitlab.com/melawy",
"donate": "https://melawy.ru/donate",
"website": "https://melawy.ru",
"youtube": "https://youtube.com/@Melawy",
"mastodon": "https://techhub.social/@Melawy",
"discord": "https://discord.gg/725zXx7RhJ",
"gitlab": "https://gitlab.com/melawy"
}
}

0
hooks/pre-commit.hook Executable file → Normal file
View File

View File

@ -1,54 +0,0 @@
# About dialog
about-dialog-title = CachyOS Hello
about-dialog-comments = Willkommensdialog für CachyOS
# Tweaks page
tweaks = Tweaks
fixes = Fixes
applications = Anwendungen
removed-db-lock = Pacman db lock wurde entfernt!
lock-doesnt-exist = Pacman db lock existiert nicht!
orphans-not-found = Keine verwaisten Pakete gefunden!
package-not-installed = Das Paket '{$package_name}' wurde nicht installiert!
# Tweaks page (tweaks)
tweak-enabled-title = {$tweak} aktiviert
# Tweaks page (fixes)
remove-lock-title = Entferne Datenbanksperre
reinstall-title = Alle Pakete neu installieren
refresh-keyrings-title = Keyring aktualisieren
update-system-title = System-Aktualisierung
remove-orphans-title = Nicht verwendete Pakete entfernen
clear-pkgcache-title = Paket-Cache löschen
rankmirrors-title = Rank Mirrors
# Main Page (buttons)
button-about-tooltip = Über
button-web-resource-tooltip = Web-Ressource
button-development-label = Entwicklung
button-software-label = Software
button-donate-label = Spenden
button-forum-label = Forum
button-installer-label = Installation starten
button-involved-label = Mitmachen
button-readme-label = Lies mich
button-release-info-label = Versionshinweise
button-wiki-label = Wiki
# Main Page (sections)
section-docs = DOKUMENTATION
section-installer = INSTALLATION
section-support = UNTERSTÜTZUNG
section-project = PROJEKT
# Main Page (body)
offline-error = Die Online-Installation kann nicht gestartet werden! Keine Internetverbindung
tweaksbrowser-label = Apps/Tweaks
appbrowser-label = Apps installieren
launch-start-label = Beim Systemstart ausführen
welcome-title = Willkommen bei CachyOS!
welcome-body =
Danke, dass Sie sich unserer Community anschließen!
Wir, die CachyOS-Entwickler, hoffen, dass Sie es genauso sehr genießen werden CachyOS zu benutzen, wie wir es genießen, es zu entwickeln. Die Links unten werden Ihnen helfen sich in Ihrem neuen Betriebssystem zurechtzufinden. Genießen Sie diese Erfahrung und zögern Sie nicht Ihr Feedback an uns zu senden.

View File

@ -1,6 +1,6 @@
# About dialog
about-dialog-title = CachyOS Hello
about-dialog-comments = Welcome screen for CachyOS
about-dialog-title = Melawy Welcome
about-dialog-comments = Welcome screen for Melawy Linux
# Tweaks page
tweaks = Tweaks
@ -11,6 +11,17 @@ lock-doesnt-exist = Pacman db lock does not exist!
orphans-not-found = No orphan packages found!
package-not-installed = Package '{$package_name}' has not been installed!
# Dns Connections page
dns-settings = DNS Settings
select-connection = Select Connection:
select-dns-server = Select DNS server:
apply = Apply
reset = Reset
dns-server-changed = DNS server was successfully changed!
dns-server-failed = Failed to set DNS server!
dns-server-reset = DNS server has been reset!
dns-server-reset-failed = Failed to reset DNS server!
# Tweaks page (tweaks)
tweak-enabled-title = {$tweak} enabled
@ -22,6 +33,7 @@ update-system-title = System update
remove-orphans-title = Remove orphans
clear-pkgcache-title = Clear package cache
rankmirrors-title = Rank mirrors
dnsserver-title = Change DNS server
# Main Page (buttons)
button-about-tooltip = About
@ -47,8 +59,8 @@ offline-error = Unable to start online installation! No internet connection
tweaksbrowser-label = Apps/Tweaks
appbrowser-label = Install Apps
launch-start-label = Launch at start
welcome-title = Welcome to CachyOS!
welcome-title = Welcome to Melawy Linux!
welcome-body =
Thank you for joining our community!
We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we enjoy building it. The links below will help you get started with your new operating system. So enjoy the experience, and don't hesitate to send us your feedback.
We, the Melawy Linux Developers, hope that you will enjoy using Melawy Linux as much as we enjoy building it. The links below will help you get started with your new operating system. So enjoy the experience, and don't hesitate to send us your feedback.

View File

@ -1,30 +0,0 @@
# About dialog
about-dialog-title = CachyOS Hello
about-dialog-comments = Ekran powitalny CachyOS
# Main Page (buttons)
button-about-tooltip = O programie
button-web-resource-tooltip = Zasób sieciowy
button-development-label = Rozwój oprogramowania
button-software-label = Software
button-donate-label = Wesprzyj
button-forum-label = Forum
button-installer-label = Uruchom instalator
button-involved-label = Zaangażuj się
button-readme-label = Czytaj to
button-release-info-label = Informacje o wydaniu
button-wiki-label = Wiki
# Main Page (sections)
section-docs = DOKUMENTACJA
section-installer = INSTALACJA
section-support = WSPARCIE
section-project = PROJEKT
# Main Page (body)
launch-start-label = Uruchamiaj przy starcie
welcome-title = Witaj w CachyOS!
welcome-body =
Dziękujemy za dołączenie do naszej społeczności!
My, programiści CachyOS, mamy nadzieję, że używanie CachyOS przyniesie Ci tyle radości ile nam jego tworzenie. Poniższe odnośniki pomogą Ci w rozpoczęciu używania nowego systemu operacyjnego. Życzymy miłych wrażeń, nie wahaj się podzielić się z nami swoją opinią.

View File

@ -1,6 +1,6 @@
# About dialog
about-dialog-title = CachyOS Hello
about-dialog-comments = Приветственный экран CachyOS
about-dialog-title = Melawy Welcome
about-dialog-comments = Приветственный экран Melawy Linux
# Tweaks page
tweaks = Настройки
@ -8,8 +8,20 @@ fixes = Исправления
applications = Приложения
removed-db-lock = Блокировка БД Pacman была снята!
lock-doesnt-exist = Pacman БД не заблокирован!
orphans-not-found = Потерянные пакеты не найдены!
package-not-installed = Пакет '{$package_name}' не был установлен!
# Dns Connections page
dns-settings = Настройки DNS
select-connection = Выберите подключение:
select-dns-server = Выберите DNS сервер:
apply = Применить
reset = Сбросить
dns-server-changed = DNS-сервер был успешно изменен!
dns-server-failed = Не удалось настроить DNS-сервер!
dns-server-reset = DNS-сервер был сброшен!
dns-server-reset-failed = Не удалось сбросить DNS-сервер!
# Tweaks page (tweaks)
tweak-enabled-title = {$tweak} включен
@ -21,6 +33,7 @@ update-system-title = Обновить систему
remove-orphans-title = Удалить orphans
clear-pkgcache-title = Очистить кэш пакетов
rankmirrors-title = Ранжировать зеркала
dnsserver-title = Сменить DNS-сервер
# Main Page (buttons)
button-about-tooltip = О программе
@ -46,8 +59,8 @@ offline-error = Не удается запустить онлайн-устано
tweaksbrowser-label = Приложения/Настройки
appbrowser-label = Установить ПO
launch-start-label = Автозапуск
welcome-title = Добро пожаловать в CachyOS!
welcome-title = Добро пожаловать в Melawy Linux!
welcome-body =
Благодарим Вас за то, что Вы присоединились к нашему сообществу!
Мы, разработчики CachyOS, надеемся, что пользуясь этой системой, Вы будете испытывать такое же удовольствие, какое мы испытывали, создавая ее. Представленные ниже ссылки помогут Вам начать работу. Наслаждайтесь функционалом CachyOS и оставляйте свои отзывы.
Мы, разработчики Melawy Linux, надеемся, что пользуясь этой системой, Вы будете испытывать такое же удовольствие, какое мы испытывали, создавая ее. Представленные ниже ссылки помогут Вам начать работу. Наслаждайтесь функционалом Melawy Linux и оставляйте свои отзывы.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg193"
sodipodi:docname="os_melawylinux.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
inkscape:export-filename="os_melawylinux.png"
inkscape:export-xdpi="768"
inkscape:export-ydpi="768"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs197" />
<sodipodi:namedview
id="namedview195"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="9.1371454"
inkscape:cx="19.043147"
inkscape:cy="29.87804"
inkscape:window-width="1920"
inkscape:window-height="1014"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg193" />
<circle
style="fill:#000000;fill-opacity:0.5;stroke:none;stroke-width:1.02056"
id="path1"
cx="32"
cy="32"
r="32" />
<path
fill-rule="nonzero"
fill="#ff5555"
fill-opacity="1"
d="M 10.947002,39.950461 V 14.652372 h 5.618722 v 2.795521 h 2.823199 v 2.823202 h 2.795522 v -2.823202 h 2.823201 v -2.795521 h 5.618721 V 39.950461 H 25.007646 V 25.889818 h -2.823201 v 2.823199 h -2.795522 v -2.823199 h -2.823199 v 14.060643 z m 22.495646,-2.8232 V 25.889818 h 2.823199 v -2.8232 h 14.060645 v 2.8232 h 2.795521 v 5.618721 H 39.061369 v 5.618722 h 8.441922 v -2.795522 h 5.618722 v 2.795522 h -2.795521 v 2.8232 H 36.265847 v -2.8232 z m 5.618721,-11.237443 v 2.823199 h 8.441922 v -2.823199 z"
id="path187"
style="stroke-width:1.77143"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccc" />
<path
fill-rule="nonzero"
fill="#e5444c"
fill-opacity="1"
d="m 15.650703,50.096012 2.463382,0.02769 v -0.830353 c 0,-0.512051 0.276784,-0.781916 0.830352,-0.802675 0.553569,0.02076 0.830353,0.290624 0.830353,0.802675 v 1.688384 c 0,0.53972 -0.276784,0.802665 -0.830353,0.802665 h -5.784792 c -0.539728,0 -0.802674,-0.262945 -0.802674,-0.802674 l -0.02769,-8.33121 c 0,-0.553568 0.276783,-0.830353 0.830354,-0.830353 h 1.688393 c 0.477451,0 0.747316,0.276785 0.802673,0.830353 z m 5.542606,1.660706 c -0.262944,0 -0.387498,-0.138402 -0.387498,-0.415176 0,-0.08995 0.01382,-0.166071 0.05537,-0.221428 l -0.02769,-0.02769 1.688385,-7.058001 0.276783,-1.190172 0.08303,-0.332141 c 0.110714,-0.422095 0.359819,-0.636604 0.747318,-0.636604 h 0.138401 2.712487 0.1384 c 0.387499,0 0.622766,0.214509 0.71964,0.636604 l 0.08303,0.332141 2.020526,8.248173 c 0.01382,0.07612 0.02769,0.166071 0.02769,0.276784 0,0.276786 -0.138402,0.415177 -0.415178,0.415177 h -2.15892 -0.138402 c -0.373657,0 -0.608925,-0.20759 -0.719639,-0.636604 l -1.74373,-7.113346 -1.660708,7.085679 c -0.110713,0.429016 -0.359819,0.636603 -0.747315,0.636603 z m 3.958016,-0.802673 c -0.04153,0.553567 -0.304462,0.830352 -0.802675,0.830352 -0.553569,0 -0.830352,-0.262946 -0.830352,-0.802675 l -0.02769,-1.688384 c 0,-0.53281 0.276785,-0.802675 0.830353,-0.802675 0.512053,0 0.788837,0.276784 0.830354,0.830353 z m 11.424273,-4.068731 -0.664283,2.740164 -0.276783,1.190174 -0.08303,0.33214 c -0.07612,0.33214 -0.242187,0.539729 -0.498211,0.608926 v 0.02769 h -2.186601 -0.1384 c -0.37366,0 -0.608926,-0.207588 -0.71964,-0.636603 L 31.92564,50.81566 29.905115,42.567487 c -0.02076,-0.0692 -0.02769,-0.16607 -0.02769,-0.276784 0,-0.276784 0.1384,-0.415176 0.415176,-0.415176 h 2.158917 0.138401 c 0.387499,0 0.622766,0.214508 0.719639,0.636604 l 1.300888,5.258901 1.079459,-4.622299 0.138401,-0.608925 c 0.08995,-0.401336 0.311382,-0.615844 0.664281,-0.636604 h 0.166054 c 0.34598,0.02076 0.567406,0.235268 0.664283,0.636604 l 0.138401,0.608925 1.051779,4.511584 1.217852,-5.120509 c 0.110713,-0.422096 0.34598,-0.636604 0.71964,-0.636604 h 0.69196 c 0.276785,0 0.415176,0.138402 0.415176,0.415177 0,0.09688 -0.02076,0.16607 -0.05537,0.221427 v 0.02769 l -1.688384,7.058 -0.276785,1.190173 -0.08302,0.332141 c -0.07613,0.318301 -0.235267,0.51897 -0.470534,0.608926 v 0.02766 h -0.913388 v -0.02769 c -0.242187,-0.08995 -0.401338,-0.290625 -0.470534,-0.608925 l -0.08302,-0.332143 -0.276785,-1.190173 z m 7.978308,0.664283 -2.32499,-4.400872 c -0.07612,-0.14531 -0.110713,-0.290621 -0.110713,-0.442855 0,-0.290622 0.172998,-0.525889 0.525892,-0.691961 0.145308,-0.08995 0.290623,-0.1384 0.442854,-0.1384 l 1.328564,-0.02769 c 0.256027,0 0.470534,0.159144 0.636605,0.470533 l 1.688384,3.34909 1.799098,-3.37677 c 0.166071,-0.311364 0.387499,-0.470515 0.664282,-0.470515 0.124549,0 0.276786,0.04154 0.442855,0.110714 0.332141,0.186829 0.498213,0.429017 0.498213,0.719638 0,0.131476 -0.02769,0.276786 -0.08303,0.442856 l -2.214274,4.345515 v 3.542839 c -0.05539,0.539728 -0.325231,0.802674 -0.802684,0.802674 h -1.688384 c -0.53973,0 -0.802674,-0.262946 -0.802674,-0.802674 z"
id="path189"
sodipodi:nodetypes="ccscssssccssccsscccccsccscccsscscccsscsccscccccccccscccsscsccccccccccssscccccccccccccccsccccccscscccsssc"
style="stroke-width:1.77143" />
<path
fill-rule="nonzero"
fill="#96c5f6"
fill-opacity="1"
d="m 33.726015,20.827288 1.260133,0.01415 v -0.424763 c 0,-0.261938 0.141587,-0.399986 0.424763,-0.410604 0.283176,0.01062 0.424764,0.148666 0.424764,0.410604 v 0.863687 c 0,0.276096 -0.141588,0.410604 -0.424764,0.410604 h -2.959187 c -0.276096,0 -0.410605,-0.134508 -0.410605,-0.410604 l -0.01416,-4.261797 c 0,-0.283176 0.141588,-0.424764 0.424764,-0.424764 h 0.86369 c 0.244239,0 0.382288,0.141588 0.410605,0.424764 z m 5.054688,0.453081 c -0.02124,0.276096 -0.152207,0.410604 -0.396446,0.410604 h -0.863686 c -0.283176,0 -0.424764,-0.134508 -0.424764,-0.410604 v -4.247637 c 0,-0.283175 0.134508,-0.424763 0.410605,-0.424763 h 0.892004 c 0.244239,0.01062 0.375208,0.152206 0.396446,0.424763 z m 2.091962,-3.553857 v 3.582175 c 0,0.254858 -0.141588,0.382286 -0.424764,0.382286 -0.283176,0 -0.424764,-0.134508 -0.424764,-0.410604 v -4.261796 c 0,-0.261938 0.145128,-0.399986 0.438923,-0.410604 h 0.608828 c 0.159286,0 0.290255,0.09203 0.396446,0.269016 l 1.090227,2.91671 v -2.775122 c 0.02832,-0.283176 0.162825,-0.424764 0.410605,-0.424764 h 0.863686 c 0.283176,0 0.424764,0.141588 0.424764,0.424764 l -0.01416,4.261796 c 0,0.276096 -0.138048,0.410604 -0.410605,0.410604 h -1.132703 c -0.23716,0 -0.389367,-0.08849 -0.453081,-0.269016 z m 4.633464,-1.132703 c 0.283175,0 0.431843,0.141588 0.453081,0.424764 v 2.987505 h 2.081342 v -2.987505 c 0,-0.283176 0.141588,-0.424764 0.424764,-0.424764 0.283176,0 0.424763,0.141588 0.424763,0.424764 v 4.261796 c 0,0.276096 -0.141587,0.410604 -0.424763,0.410604 h -2.959187 c -0.283176,0 -0.421225,-0.134508 -0.410605,-0.410604 l -0.01416,-4.261796 c 0,-0.283176 0.141588,-0.424764 0.424765,-0.424764 z m 6.583837,1.968073 0.722098,-1.727373 c 0.09203,-0.159287 0.205303,-0.2407 0.339811,-0.2407 0.07433,0 0.155747,0.02124 0.2407,0.05663 0.169905,0.09557 0.254858,0.219462 0.254858,0.368129 0,0.06725 -0.02124,0.141588 -0.05663,0.22654 l -0.948639,2.237089 0.948639,1.557467 c 0.02832,0.08495 0.04247,0.162827 0.04247,0.226541 0,0.152207 -0.08141,0.276097 -0.2407,0.368128 -0.08495,0.03894 -0.166366,0.05663 -0.240699,0.05663 h -0.679622 c -0.134508,0 -0.2407,-0.07787 -0.325652,-0.240698 l -1.033592,-1.684897 -0.750416,1.699055 c -0.08495,0.162826 -0.198223,0.2407 -0.339811,0.2407 -0.07788,0 -0.152207,-0.02124 -0.22654,-0.0708 -0.180525,-0.08495 -0.269018,-0.201763 -0.269018,-0.353969 0,-0.07433 0.0177,-0.148668 0.05664,-0.226541 l 0.991115,-2.166296 -0.991115,-1.614102 c -0.02832,-0.07433 -0.04247,-0.148667 -0.04247,-0.22654 0,-0.148667 0.08495,-0.269017 0.254858,-0.353969 0.08495,-0.04602 0.162827,-0.0708 0.240699,-0.0708 l 0.665464,-0.01415 c 0.130968,0 0.244239,0.08141 0.339811,0.240699 z M 31.616355,13.737274"
id="path191"
style="display:inline;stroke-width:0.906163" />
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="64"
height="64"
viewBox="0 0 64 64"
version="1.1"
id="svg193"
sodipodi:docname="os_melawylinux.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
inkscape:export-filename="os_melawylinux.png"
inkscape:export-xdpi="768"
inkscape:export-ydpi="768"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs197" />
<sodipodi:namedview
id="namedview195"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="9.1371454"
inkscape:cx="19.043147"
inkscape:cy="29.87804"
inkscape:window-width="1920"
inkscape:window-height="1014"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg193" />
<circle
style="fill:#000000;fill-opacity:0.5;stroke:none;stroke-width:1.02056"
id="path1"
cx="32"
cy="32"
r="32" />
<path
fill-rule="nonzero"
fill="#ff5555"
fill-opacity="1"
d="M 10.947002,39.950461 V 14.652372 h 5.618722 v 2.795521 h 2.823199 v 2.823202 h 2.795522 v -2.823202 h 2.823201 v -2.795521 h 5.618721 V 39.950461 H 25.007646 V 25.889818 h -2.823201 v 2.823199 h -2.795522 v -2.823199 h -2.823199 v 14.060643 z m 22.495646,-2.8232 V 25.889818 h 2.823199 v -2.8232 h 14.060645 v 2.8232 h 2.795521 v 5.618721 H 39.061369 v 5.618722 h 8.441922 v -2.795522 h 5.618722 v 2.795522 h -2.795521 v 2.8232 H 36.265847 v -2.8232 z m 5.618721,-11.237443 v 2.823199 h 8.441922 v -2.823199 z"
id="path187"
style="stroke-width:1.77143"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccc" />
<path
fill-rule="nonzero"
fill="#e5444c"
fill-opacity="1"
d="m 15.650703,50.096012 2.463382,0.02769 v -0.830353 c 0,-0.512051 0.276784,-0.781916 0.830352,-0.802675 0.553569,0.02076 0.830353,0.290624 0.830353,0.802675 v 1.688384 c 0,0.53972 -0.276784,0.802665 -0.830353,0.802665 h -5.784792 c -0.539728,0 -0.802674,-0.262945 -0.802674,-0.802674 l -0.02769,-8.33121 c 0,-0.553568 0.276783,-0.830353 0.830354,-0.830353 h 1.688393 c 0.477451,0 0.747316,0.276785 0.802673,0.830353 z m 5.542606,1.660706 c -0.262944,0 -0.387498,-0.138402 -0.387498,-0.415176 0,-0.08995 0.01382,-0.166071 0.05537,-0.221428 l -0.02769,-0.02769 1.688385,-7.058001 0.276783,-1.190172 0.08303,-0.332141 c 0.110714,-0.422095 0.359819,-0.636604 0.747318,-0.636604 h 0.138401 2.712487 0.1384 c 0.387499,0 0.622766,0.214509 0.71964,0.636604 l 0.08303,0.332141 2.020526,8.248173 c 0.01382,0.07612 0.02769,0.166071 0.02769,0.276784 0,0.276786 -0.138402,0.415177 -0.415178,0.415177 h -2.15892 -0.138402 c -0.373657,0 -0.608925,-0.20759 -0.719639,-0.636604 l -1.74373,-7.113346 -1.660708,7.085679 c -0.110713,0.429016 -0.359819,0.636603 -0.747315,0.636603 z m 3.958016,-0.802673 c -0.04153,0.553567 -0.304462,0.830352 -0.802675,0.830352 -0.553569,0 -0.830352,-0.262946 -0.830352,-0.802675 l -0.02769,-1.688384 c 0,-0.53281 0.276785,-0.802675 0.830353,-0.802675 0.512053,0 0.788837,0.276784 0.830354,0.830353 z m 11.424273,-4.068731 -0.664283,2.740164 -0.276783,1.190174 -0.08303,0.33214 c -0.07612,0.33214 -0.242187,0.539729 -0.498211,0.608926 v 0.02769 h -2.186601 -0.1384 c -0.37366,0 -0.608926,-0.207588 -0.71964,-0.636603 L 31.92564,50.81566 29.905115,42.567487 c -0.02076,-0.0692 -0.02769,-0.16607 -0.02769,-0.276784 0,-0.276784 0.1384,-0.415176 0.415176,-0.415176 h 2.158917 0.138401 c 0.387499,0 0.622766,0.214508 0.719639,0.636604 l 1.300888,5.258901 1.079459,-4.622299 0.138401,-0.608925 c 0.08995,-0.401336 0.311382,-0.615844 0.664281,-0.636604 h 0.166054 c 0.34598,0.02076 0.567406,0.235268 0.664283,0.636604 l 0.138401,0.608925 1.051779,4.511584 1.217852,-5.120509 c 0.110713,-0.422096 0.34598,-0.636604 0.71964,-0.636604 h 0.69196 c 0.276785,0 0.415176,0.138402 0.415176,0.415177 0,0.09688 -0.02076,0.16607 -0.05537,0.221427 v 0.02769 l -1.688384,7.058 -0.276785,1.190173 -0.08302,0.332141 c -0.07613,0.318301 -0.235267,0.51897 -0.470534,0.608926 v 0.02766 h -0.913388 v -0.02769 c -0.242187,-0.08995 -0.401338,-0.290625 -0.470534,-0.608925 l -0.08302,-0.332143 -0.276785,-1.190173 z m 7.978308,0.664283 -2.32499,-4.400872 c -0.07612,-0.14531 -0.110713,-0.290621 -0.110713,-0.442855 0,-0.290622 0.172998,-0.525889 0.525892,-0.691961 0.145308,-0.08995 0.290623,-0.1384 0.442854,-0.1384 l 1.328564,-0.02769 c 0.256027,0 0.470534,0.159144 0.636605,0.470533 l 1.688384,3.34909 1.799098,-3.37677 c 0.166071,-0.311364 0.387499,-0.470515 0.664282,-0.470515 0.124549,0 0.276786,0.04154 0.442855,0.110714 0.332141,0.186829 0.498213,0.429017 0.498213,0.719638 0,0.131476 -0.02769,0.276786 -0.08303,0.442856 l -2.214274,4.345515 v 3.542839 c -0.05539,0.539728 -0.325231,0.802674 -0.802684,0.802674 h -1.688384 c -0.53973,0 -0.802674,-0.262946 -0.802674,-0.802674 z"
id="path189"
sodipodi:nodetypes="ccscssssccssccsscccccsccscccsscscccsscsccscccccccccscccsscsccccccccccssscccccccccccccccsccccccscscccsssc"
style="stroke-width:1.77143" />
<path
fill-rule="nonzero"
fill="#96c5f6"
fill-opacity="1"
d="m 33.726015,20.827288 1.260133,0.01415 v -0.424763 c 0,-0.261938 0.141587,-0.399986 0.424763,-0.410604 0.283176,0.01062 0.424764,0.148666 0.424764,0.410604 v 0.863687 c 0,0.276096 -0.141588,0.410604 -0.424764,0.410604 h -2.959187 c -0.276096,0 -0.410605,-0.134508 -0.410605,-0.410604 l -0.01416,-4.261797 c 0,-0.283176 0.141588,-0.424764 0.424764,-0.424764 h 0.86369 c 0.244239,0 0.382288,0.141588 0.410605,0.424764 z m 5.054688,0.453081 c -0.02124,0.276096 -0.152207,0.410604 -0.396446,0.410604 h -0.863686 c -0.283176,0 -0.424764,-0.134508 -0.424764,-0.410604 v -4.247637 c 0,-0.283175 0.134508,-0.424763 0.410605,-0.424763 h 0.892004 c 0.244239,0.01062 0.375208,0.152206 0.396446,0.424763 z m 2.091962,-3.553857 v 3.582175 c 0,0.254858 -0.141588,0.382286 -0.424764,0.382286 -0.283176,0 -0.424764,-0.134508 -0.424764,-0.410604 v -4.261796 c 0,-0.261938 0.145128,-0.399986 0.438923,-0.410604 h 0.608828 c 0.159286,0 0.290255,0.09203 0.396446,0.269016 l 1.090227,2.91671 v -2.775122 c 0.02832,-0.283176 0.162825,-0.424764 0.410605,-0.424764 h 0.863686 c 0.283176,0 0.424764,0.141588 0.424764,0.424764 l -0.01416,4.261796 c 0,0.276096 -0.138048,0.410604 -0.410605,0.410604 h -1.132703 c -0.23716,0 -0.389367,-0.08849 -0.453081,-0.269016 z m 4.633464,-1.132703 c 0.283175,0 0.431843,0.141588 0.453081,0.424764 v 2.987505 h 2.081342 v -2.987505 c 0,-0.283176 0.141588,-0.424764 0.424764,-0.424764 0.283176,0 0.424763,0.141588 0.424763,0.424764 v 4.261796 c 0,0.276096 -0.141587,0.410604 -0.424763,0.410604 h -2.959187 c -0.283176,0 -0.421225,-0.134508 -0.410605,-0.410604 l -0.01416,-4.261796 c 0,-0.283176 0.141588,-0.424764 0.424765,-0.424764 z m 6.583837,1.968073 0.722098,-1.727373 c 0.09203,-0.159287 0.205303,-0.2407 0.339811,-0.2407 0.07433,0 0.155747,0.02124 0.2407,0.05663 0.169905,0.09557 0.254858,0.219462 0.254858,0.368129 0,0.06725 -0.02124,0.141588 -0.05663,0.22654 l -0.948639,2.237089 0.948639,1.557467 c 0.02832,0.08495 0.04247,0.162827 0.04247,0.226541 0,0.152207 -0.08141,0.276097 -0.2407,0.368128 -0.08495,0.03894 -0.166366,0.05663 -0.240699,0.05663 h -0.679622 c -0.134508,0 -0.2407,-0.07787 -0.325652,-0.240698 l -1.033592,-1.684897 -0.750416,1.699055 c -0.08495,0.162826 -0.198223,0.2407 -0.339811,0.2407 -0.07788,0 -0.152207,-0.02124 -0.22654,-0.0708 -0.180525,-0.08495 -0.269018,-0.201763 -0.269018,-0.353969 0,-0.07433 0.0177,-0.148668 0.05664,-0.226541 l 0.991115,-2.166296 -0.991115,-1.614102 c -0.02832,-0.07433 -0.04247,-0.148667 -0.04247,-0.22654 0,-0.148667 0.08495,-0.269017 0.254858,-0.353969 0.08495,-0.04602 0.162827,-0.0708 0.240699,-0.0708 l 0.665464,-0.01415 c 0.130968,0 0.244239,0.08141 0.339811,0.240699 z M 31.616355,13.737274"
id="path191"
style="display:inline;stroke-width:0.906163" />
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

30
cachyos-hello.desktop → melawy-welcome.desktop Executable file → Normal file
View File

@ -3,18 +3,18 @@ Terminal=false
Type=Application
Categories=GNOME;GTK;System;
StartupNotify=false
Name=CachyOS Hello
Exec=/usr/bin/cachyos-hello
Icon=org.cachyos.hello
Comment=A tool providing access to documentation and support for new CachyOS users.
Comment[da]=En app med adgang til dokumentation og support for nye CachyOS brugere.
Comment[de]=Ein Tool für schnellen Zugriff auf Support und Dokumentation für neue CachyOS-Nutzer.
Comment[es]=Una herramienta que provee acceso a la documentación y soporte para nuevos usuarios de CachyOS.
Comment[fr]=Outil d'accès à la documentation et support aux nouveaux utilisateurs de CachyOS.
Comment[nl]=Een manier voor nieuwe CachyOS gebruikers om toegang tot documentatie en support te krijgen.
Comment[pl]=Narzędzie ułatwiające dostęp do dokumentacji i pomocy przeznaczone dla nowych użytkowników CachyOS.
Comment[pt_BR]=Uma ferramenta que fornece acesso à documentação e suporte para novos usuários CachyOS.
Comment[pt_PT]=Uma ferramenta que fornece acesso à documentação e suporte para novos usuários CachyOS.
Comment[ru]=Средство доступа к документации и поддержке для новых пользователей CachyOS.
Comment[it]=Strumento per accedere alla documentazione e supporto per nuovi utenti CachyOS.
Comment[tr]=Yeni CachyOS kullanıcıları için dökümantasyon ve destek sağlayan bir araç.
Name=Melawy Welcome
Exec=/usr/bin/melawy-welcome
Icon=org.melawy.welcome
Comment=A tool providing access to documentation and support for new Melawy Linux users.
Comment[da]=En app med adgang til dokumentation og support for nye Melawy Linux brugere.
Comment[de]=Ein Tool für schnellen Zugriff auf Support und Dokumentation für neue Melawy Linux-Nutzer.
Comment[es]=Una herramienta que provee acceso a la documentación y soporte para nuevos usuarios de Melawy Linux.
Comment[fr]=Outil d'accès à la documentation et support aux nouveaux utilisateurs de Melawy Linux.
Comment[nl]=Een manier voor nieuwe Melawy Linux gebruikers om toegang tot documentatie en support te krijgen.
Comment[pl]=Narzędzie ułatwiające dostęp do dokumentacji i pomocy przeznaczone dla nowych użytkowników Melawy Linux.
Comment[pt_BR]=Uma ferramenta que fornece acesso à documentação e suporte para novos usuários Melawy Linux.
Comment[pt_PT]=Uma ferramenta que fornece acesso à documentação e suporte para novos usuários Melawy Linux.
Comment[ru]=Средство доступа к документации и поддержке для новых пользователей Melawy Linux.
Comment[it]=Strumento per accedere alla documentazione e supporto per nuovi utenti Melawy Linux.
Comment[tr]=Yeni Melawy Linux kullanıcıları için dökümantasyon ve destek sağlayan bir araç.

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/melawy/welcome">
<file compressed="true" preprocess="xml-stripblanks">ui/melawy-welcome.glade</file>
<file compressed="true">ui/style.css</file>
<file compressed="true">data/img/external-link.png</file>
<file compressed="true">data/img/website.png</file>
<file compressed="true">data/img/mastodon.png</file>
<file compressed="true">data/img/discord.png</file>
</gresource>
</gresources>

View File

@ -1,5 +1,5 @@
project('cachyos-hello', 'rust',
version: '0.9.9',
project('melawy-welcome', 'rust',
version: '0.10.1',
license: 'GPLv3',
meson_version: '>=0.56.0',
default_options: ['buildtype=debugoptimized',
@ -10,22 +10,16 @@ project('cachyos-hello', 'rust',
i18n = import('i18n')
gnome = import('gnome')
base_id = 'org.cachyos.hello'
base_id = 'org.melawy.welcome'
dependency('glib-2.0', version: '>= 2.66')
dependency('gio-2.0', version: '>= 2.66')
dependency('gtk+-3.0', version: '>= 3.24.33')
desktop_file_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: false)
cargo = find_program('cargo', required: true)
cargo_script = find_program('build-aux/cargo.py')
version = meson.project_version()
version_array = version.split('.')
major_version = version_array[0].to_int()
minor_version = version_array[1].to_int()
version_micro = version_array[2].to_int()
prefix = get_option('prefix')
bindir = prefix / get_option('bindir')
@ -37,16 +31,9 @@ iconsdir = datadir / 'icons'
if get_option('profile') == 'development'
profile = 'Devel'
vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip()
if vcs_tag == ''
version_suffix = '-devel'
else
version_suffix = '-@0@'.format(vcs_tag)
endif
application_id = '@0@.@1@'.format(base_id, profile)
else
profile = ''
version_suffix = ''
application_id = base_id
endif

View File

@ -1,4 +1,4 @@
#!/bin/sh
mkdir -p "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
cp -r "${MESON_SOURCE_ROOT}/src/scripts" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/cachyos-hello/"
mkdir -p "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/melawy-welcome/"
cp -r "${MESON_SOURCE_ROOT}/src/scripts" "${DESTDIR}/${MESON_INSTALL_PREFIX}/share/melawy-welcome/"

6
push.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
git add . && git commit -m "Update"
git push
echo "Ready"

View File

@ -119,6 +119,6 @@ impl AlpmHelper {
let pacman =
pacmanconf::Config::with_opts(None, Some("/etc/pacman.conf"), Some("/")).unwrap();
let alpm = alpm_utils::alpm_with_conf(&pacman).unwrap();
matches!(alpm.localdb().pkg(pkg_name.as_bytes()), Ok(_))
alpm.localdb().pkg(pkg_name.as_bytes()).is_ok()
}
}

View File

@ -1,13 +1,13 @@
use crate::config::{APP_ID, PKGDATADIR, VERSION};
use crate::widgets::MainWindow;
use std::path::Path;
use gtk::gio;
use gtk::glib::{self, clone, WeakRef};
use gtk::prelude::*;
use gtk::subclass::prelude::*;
use once_cell::sync::OnceCell;
use std::path::Path;
use crate::config::{APP_ID, PKGDATADIR, VERSION};
use crate::widgets::MainWindow;
/*
mod imp {
use super::*;
@ -21,7 +21,7 @@ mod imp {
impl ObjectSubclass for Application {
type Type = super::Application;
const NAME: &'static str = "CachyOSHello";
const NAME: &'static str = "Melawy Welcome";
}
impl ObjectImpl for Application {}

View File

@ -3,9 +3,10 @@ use crate::utils;
use gio::prelude::*;
use gtk::prelude::{
BoxExt, ButtonExt, CellRendererExt, CellRendererToggleExt, ComboBoxExt, ContainerExt, GridExt,
GtkListStoreExt, GtkListStoreExtManual, ScrolledWindowExt, ToggleButtonExt, TreeModelExt,
TreeStoreExt, TreeStoreExtManual, TreeViewColumnExt, TreeViewExt, WidgetExt,
BoxExt, ButtonExt, CellRendererExt, CellRendererTextExt, CellRendererToggleExt, ComboBoxExt,
ContainerExt, GridExt, GtkListStoreExt, GtkListStoreExtManual, ScrolledWindowExt,
ToggleButtonExt, TreeModelExt, TreeStoreExt, TreeStoreExtManual, TreeViewColumnExt,
TreeViewExt, WidgetExt,
};
use once_cell::sync::Lazy;
@ -260,8 +261,10 @@ impl ApplicationBrowser {
// column model: description column
let desc_renderer = gtk::CellRendererText::new();
desc_renderer.set_wrap_mode(gtk::pango::WrapMode::Word);
desc_renderer.set_wrap_width(290);
let desc_column = create_column("Description", &desc_renderer, "text", DESCRIPTION);
desc_column.set_resizable(true);
desc_column.set_resizable(false);
self.tree_view.append_column(&desc_column);
// column model: install column
@ -391,13 +394,13 @@ fn on_query_tooltip_tree_view(
fn on_button_press_event_tree_view(
treeview: &gtk::TreeView,
event_btn: &gdk::EventButton,
) -> gtk::glib::signal::Inhibit {
) -> glib::Propagation {
if event_btn.button() == 1 && event_btn.event_type() == gdk::EventType::DoubleButtonPress {
if let Some(coords) = event_btn.coords() {
let (x, y) = coords;
let path_info = treeview.path_at_pos(x as i32, y as i32);
if path_info.is_none() {
return gtk::glib::signal::Inhibit(true);
return glib::Propagation::Stop;
}
let (path, ..) = path_info.unwrap();
@ -416,7 +419,7 @@ fn on_button_press_event_tree_view(
}
}
gtk::glib::signal::Inhibit(false)
glib::Propagation::Proceed
}
fn on_app_toggle(_cell: &gtk::CellRendererToggle, path: gtk::TreePath) {

View File

@ -1,5 +1,5 @@
pub fn init() -> Result<(), glib::Error> {
const GRESOURCE: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/cachyos-welcome.gresource"));
const GRESOURCE: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/melawy-welcome.gresource"));
gio::resources_register(&gio::Resource::from_data(&glib::Bytes::from_static(GRESOURCE))?);

View File

@ -1,6 +1,7 @@
#![feature(const_str_from_utf8)]
#![feature(string_remove_matches)]
#![allow(non_upper_case_globals)]
#![allow(clippy::arc_with_non_send_sync)]
mod alpm_helper;
mod application_browser;
@ -33,7 +34,7 @@ use serde_json::json;
use std::{fs, str};
use subprocess::Exec;
const RESPREFIX: &str = "/org/cachyos/hello";
const RESPREFIX: &str = "/org/melawy/welcome";
static G_SAVE_JSON: Lazy<Mutex<serde_json::Value>> = Lazy::new(|| {
let saved_json = get_saved_json();
@ -64,9 +65,9 @@ fn quick_message(message: &'static str) {
let result = dialog.run();
let cmd: String;
if result == gtk::ResponseType::No {
cmd = "/usr/local/bin/calamares-offline.sh".to_owned();
cmd = "/usr/local/bin/calamares-offline".to_owned();
} else if result == gtk::ResponseType::Yes {
cmd = "/usr/local/bin/calamares-online.sh".to_owned();
cmd = "/usr/local/bin/calamares-online".to_owned();
} else {
unsafe {
dialog.destroy();
@ -76,7 +77,7 @@ fn quick_message(message: &'static str) {
// Spawn child process in separate thread.
std::thread::spawn(move || {
let status = match reqwest::blocking::get("https://cachyos.org") {
let status = match reqwest::blocking::get("https://melawy.ru") {
Ok(resp) => resp.status().is_success() || resp.status().is_server_error(),
_ => false,
};
@ -119,10 +120,10 @@ fn show_about_dialog() {
])
// Translators: Replace "translator-credits" with your names. Put a comma between.
.translator_credits("translator-credits")
.copyright("2021-2023 CachyOS team")
.copyright("2023-2024 Melawy (Valeria Fadeeva)")
.license_type(gtk::License::Gpl30)
.website("https://github.com/cachyos/cachyos-welcome")
.website_label("GitHub")
.website("https://git.melawy.ru/Melawy-Linux/melawy-welcome")
.website_label("Git")
.build();
dialog.run();
@ -171,8 +172,8 @@ fn main() {
gresource::init().expect("Could not load gresource file.");
// Set program name.
glib::set_program_name("CachyOSHello".into());
glib::set_application_name("CachyOSHello");
glib::set_program_name("Melawy Welcome".into());
glib::set_application_name("Melawy Welcome");
let application = gtk::Application::new(
Some(APP_ID), // Application id
@ -204,7 +205,7 @@ fn build_ui(application: &gtk::Application) {
);
// Init window
let builder: Builder = Builder::from_resource(&format!("{RESPREFIX}/ui/cachyos-hello.glade"));
let builder: Builder = Builder::from_resource(&format!("{RESPREFIX}/ui/melawy-welcome.glade"));
builder.connect_signals(|_builder, handler_name| {
match handler_name {
// handler_name as defined in the glade file => handler function as defined above
@ -232,7 +233,7 @@ fn build_ui(application: &gtk::Application) {
// Subtitle of headerbar
let header: HeaderBar = builder.object("headerbar").expect("Could not get the headerbar");
header.set_subtitle(Some("CachyOS rolling"));
header.set_subtitle(Some("Melawy Linux"));
// Load images
let logo_path = format!("{}/{}.svg", preferences["logo_path"].as_str().unwrap(), APP_ID);
@ -342,6 +343,7 @@ fn build_ui(application: &gtk::Application) {
}
pages::create_appbrowser_page(&builder);
pages::create_tweaks_page(&builder);
pages::create_dnsconnections_page(&builder);
// Show the UI
main_window.show();

View File

@ -1,20 +1,3 @@
global_conf = configuration_data()
global_conf.set_quoted('APP_ID', application_id)
global_conf.set_quoted('PROFILE', profile)
global_conf.set_quoted('VERSION', version + version_suffix)
config = configure_file(
input: 'config.rs.in',
output: 'config.rs',
configuration: global_conf
)
# Copy the config.rs output to the source directory.
run_command(
'cp',
meson.project_build_root() / 'src' / 'config.rs',
meson.project_source_root() / 'src' / 'config.rs',
check: true
)
manifest_path = meson.project_source_root() / 'Cargo.toml'
cargo_home = meson.project_build_root() / 'cargo-home'
cargo_target_dir = meson.project_build_root() / 'src'

View File

@ -5,6 +5,7 @@ use crate::{fl, utils};
use glib::translate::FromGlib;
use gtk::{glib, Builder};
use once_cell::sync::Lazy;
use phf::phf_ordered_map;
use std::fmt::Write as _;
use std::path::Path;
use std::sync::Mutex;
@ -17,6 +18,18 @@ use subprocess::{Exec, Redirection};
static G_LOCAL_UNITS: Lazy<Mutex<SystemdUnits>> = Lazy::new(|| Mutex::new(SystemdUnits::new()));
static G_GLOBAL_UNITS: Lazy<Mutex<SystemdUnits>> = Lazy::new(|| Mutex::new(SystemdUnits::new()));
static G_DNS_SERVERS: phf::OrderedMap<&'static str, &'static str> = phf_ordered_map! {
"Adguard" => "94.140.14.14",
"Adguard Family Protection" => "94.140.14.15",
"Cloudflare" => "1.1.1.1",
"Cloudflare Malware and adult content blocking" => "1.1.1.3",
"DNS.Watch" => "84.200.69.80",
"Cisco Umbrella(OpenDNS)" => "208.67.222.222,208.67.220.220",
"Quad9" => "9.9.9.9",
"Google" => "8.8.8.8,8.8.4.4",
"Yandex" => "77.88.8.8,77.88.8.1",
};
struct DialogMessage {
pub msg: String,
pub msg_type: gtk::MessageType,
@ -26,6 +39,7 @@ struct DialogMessage {
enum Action {
RemoveLock,
RemoveOrphans,
SetDnsServer,
}
fn update_translation_apps_section(section_box: &gtk::Box) {
@ -51,6 +65,27 @@ fn update_translation_fixes_section(section_box: &gtk::Box) {
}
}
fn update_translation_connections_section(section_box: &gtk::Box) {
for section_box_element in section_box.children() {
if let Ok(object_box) = section_box_element.clone().downcast::<gtk::Box>() {
for object_box_widget in object_box.children() {
let widget_name = object_box_widget.widget_name().to_string();
if let Ok(box_element_btn) = object_box_widget.clone().downcast::<gtk::Button>() {
let translated_text = crate::localization::get_locale_text(&widget_name);
box_element_btn.set_label(&translated_text);
} else if let Ok(box_element_label) =
object_box_widget.clone().downcast::<gtk::Label>()
{
let translated_text = crate::localization::get_locale_text(&widget_name);
box_element_label.set_text(&translated_text);
}
}
} else if let Ok(section_label) = section_box_element.clone().downcast::<gtk::Label>() {
section_label.set_text(&fl!("dns-settings"));
}
}
}
fn update_translation_options_section(section_box: &gtk::Box) {
for section_box_element in section_box.children() {
if let Ok(button_box) = section_box_element.clone().downcast::<gtk::Box>() {
@ -101,14 +136,40 @@ pub fn update_translations(builder: &Builder) {
}
}
}
if let Some(widget) = stack.child_by_name("dnsConnectionsBrowserpage") {
if let Ok(viewport) = widget.downcast::<gtk::Viewport>() {
let first_child = &viewport.children()[0].clone().downcast::<gtk::Box>().unwrap();
let second_child =
&first_child.children()[1].clone().downcast::<gtk::Box>().unwrap();
for second_child_child_widget in second_child.children() {
let second_child_child_box =
second_child_child_widget.downcast::<gtk::Box>().unwrap();
update_translation_connections_section(&second_child_child_box);
}
}
}
}
}
fn create_fixes_section() -> gtk::Box {
fn get_nm_connections() -> Vec<String> {
let connections = Exec::cmd("/sbin/nmcli")
.args(&["-t", "-f", "NAME", "connection", "show"])
.stdout(Redirection::Pipe)
.capture()
.unwrap()
.stdout_str();
// get list of connections separated by newline
connections.split('\n').filter(|x| !x.is_empty()).map(String::from).collect::<Vec<_>>()
}
fn create_fixes_section(builder: &Builder) -> gtk::Box {
let topbox = gtk::Box::new(gtk::Orientation::Vertical, 2);
let button_box_f = gtk::Box::new(gtk::Orientation::Horizontal, 10);
let button_box_s = gtk::Box::new(gtk::Orientation::Horizontal, 10);
let button_box_t = gtk::Box::new(gtk::Orientation::Horizontal, 10);
let button_box_frth = gtk::Box::new(gtk::Orientation::Horizontal, 10);
let label = gtk::Label::new(None);
label.set_line_wrap(true);
label.set_justify(gtk::Justification::Center);
@ -121,6 +182,7 @@ fn create_fixes_section() -> gtk::Box {
let remove_orphans_btn = gtk::Button::with_label(&fl!("remove-orphans-title"));
let clear_pkgcache_btn = gtk::Button::with_label(&fl!("clear-pkgcache-title"));
let rankmirrors_btn = gtk::Button::with_label(&fl!("rankmirrors-title"));
let dnsserver_btn = gtk::Button::with_label(&fl!("dnsserver-title"));
{
removelock_btn.set_widget_name("remove-lock-title");
@ -130,10 +192,11 @@ fn create_fixes_section() -> gtk::Box {
remove_orphans_btn.set_widget_name("remove-orphans-title");
clear_pkgcache_btn.set_widget_name("clear-pkgcache-title");
rankmirrors_btn.set_widget_name("rankmirrors-title");
dnsserver_btn.set_widget_name("dnsserver-title");
}
// Create context channel.
let (dialog_tx, dialog_rx) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
let (dialog_tx, dialog_rx) = glib::MainContext::channel(glib::Priority::default());
// Connect signals.
let dialog_tx_clone = dialog_tx.clone();
@ -207,9 +270,14 @@ fn create_fixes_section() -> gtk::Box {
rankmirrors_btn.connect_clicked(move |_| {
// Spawn child process in separate thread.
std::thread::spawn(move || {
let _ = utils::run_cmd_terminal(String::from("cachyos-rate-mirrors"), true);
let _ = utils::run_cmd_terminal(String::from("rate-mirrors"), true);
});
});
dnsserver_btn.connect_clicked(glib::clone!(@weak builder => move |_| {
let name = "dnsConnectionsBrowser";
let stack: gtk::Stack = builder.object("stack").unwrap();
stack.set_visible_child_name(&format!("{name}page"));
}));
// Setup receiver.
let removelock_btn_clone = removelock_btn.clone();
@ -218,6 +286,7 @@ fn create_fixes_section() -> gtk::Box {
let widget_obj = match msg.action {
Action::RemoveLock => &removelock_btn_clone,
Action::RemoveOrphans => &remove_orphans_btn_clone,
_ => panic!("Unexpected action!!"),
};
let widget_window =
utils::get_window_from_widget(widget_obj).expect("Failed to retrieve window");
@ -230,7 +299,7 @@ fn create_fixes_section() -> gtk::Box {
.modal(true)
.build();
dialog.show();
glib::Continue(true)
glib::ControlFlow::Continue
});
topbox.pack_start(&label, true, false, 1);
@ -241,9 +310,12 @@ fn create_fixes_section() -> gtk::Box {
button_box_s.pack_start(&clear_pkgcache_btn, true, true, 2);
button_box_s.pack_end(&remove_orphans_btn, true, true, 2);
button_box_t.pack_end(&rankmirrors_btn, true, true, 2);
button_box_frth.pack_end(&dnsserver_btn, true, true, 2);
button_box_f.set_halign(gtk::Align::Fill);
button_box_s.set_halign(gtk::Align::Fill);
button_box_t.set_halign(gtk::Align::Fill);
button_box_frth.set_halign(gtk::Align::Fill);
topbox.pack_end(&button_box_frth, true, true, 5);
topbox.pack_end(&button_box_t, true, true, 5);
topbox.pack_end(&button_box_s, true, true, 5);
topbox.pack_end(&button_box_f, true, true, 5);
@ -265,6 +337,7 @@ fn create_options_section() -> gtk::Box {
gtk::CheckButton::with_label(&fl!("tweak-enabled-title", tweak = "Profile-sync-daemon"));
let systemd_oomd_btn =
gtk::CheckButton::with_label(&fl!("tweak-enabled-title", tweak = "Systemd-oomd"));
let bpftune_btn = gtk::CheckButton::with_label(&fl!("tweak-enabled-title", tweak = "Bpftune"));
let apparmor_btn =
gtk::CheckButton::with_label(&fl!("tweak-enabled-title", tweak = "Apparmor"));
let bluetooth_btn =
@ -276,6 +349,7 @@ fn create_options_section() -> gtk::Box {
psd_btn.set_widget_name("Profile-sync-daemon");
systemd_oomd_btn.set_widget_name("Systemd-oomd");
apparmor_btn.set_widget_name("Apparmor");
bpftune_btn.set_widget_name("Bpftune");
bluetooth_btn.set_widget_name("Bluetooth");
ananicy_cpp_btn.set_widget_name("Ananicy Cpp");
}
@ -290,6 +364,9 @@ fn create_options_section() -> gtk::Box {
apparmor_btn.set_data("actionData", "apparmor.service");
apparmor_btn.set_data("actionType", "service");
apparmor_btn.set_data("alpmPackage", "apparmor");
bpftune_btn.set_data("actionData", "bpftune.service");
bpftune_btn.set_data("actionType", "service");
bpftune_btn.set_data("alpmPackage", "bpftune-git");
bluetooth_btn.set_data("actionData", "bluetooth.service");
bluetooth_btn.set_data("actionType", "service");
bluetooth_btn.set_data("alpmPackage", "bluez");
@ -298,7 +375,14 @@ fn create_options_section() -> gtk::Box {
ananicy_cpp_btn.set_data("alpmPackage", "ananicy-cpp");
}
for btn in &[&psd_btn, &systemd_oomd_btn, &apparmor_btn, &bluetooth_btn, &ananicy_cpp_btn] {
for btn in &[
&psd_btn,
&systemd_oomd_btn,
&apparmor_btn,
&bpftune_btn,
&bluetooth_btn,
&ananicy_cpp_btn,
] {
let data: &str = unsafe { *btn.data("actionData").unwrap().as_ptr() };
if G_LOCAL_UNITS.lock().unwrap().enabled_units.contains(&String::from(data))
|| G_GLOBAL_UNITS.lock().unwrap().enabled_units.contains(&String::from(data))
@ -312,6 +396,7 @@ fn create_options_section() -> gtk::Box {
box_collection.pack_start(&psd_btn, true, false, 2);
box_collection_s.pack_start(&systemd_oomd_btn, true, false, 2);
box_collection.pack_start(&apparmor_btn, true, false, 2);
box_collection_s.pack_start(&bpftune_btn, true, false, 2);
box_collection.pack_start(&ananicy_cpp_btn, true, false, 2);
box_collection_s.pack_start(&bluetooth_btn, true, false, 2);
box_collection.set_halign(gtk::Align::Fill);
@ -356,6 +441,187 @@ fn create_apps_section() -> Option<gtk::Box> {
}
}
fn create_connections_section() -> gtk::Box {
let topbox = gtk::Box::new(gtk::Orientation::Vertical, 2);
let connection_box = gtk::Box::new(gtk::Orientation::Horizontal, 2);
let dnsservers_box = gtk::Box::new(gtk::Orientation::Horizontal, 2);
let button_box = gtk::Box::new(gtk::Orientation::Horizontal, 2);
let label = gtk::Label::new(None);
label.set_line_wrap(true);
label.set_justify(gtk::Justification::Center);
label.set_text(&fl!("dns-settings"));
let connections_label = gtk::Label::new(None);
connections_label.set_justify(gtk::Justification::Left);
connections_label.set_text(&fl!("select-connection"));
connections_label.set_widget_name("select-connection");
let servers_label = gtk::Label::new(None);
servers_label.set_justify(gtk::Justification::Left);
servers_label.set_text(&fl!("select-dns-server"));
servers_label.set_widget_name("select-dns-server");
let apply_btn = gtk::Button::with_label(&fl!("apply"));
let reset_btn = gtk::Button::with_label(&fl!("reset"));
apply_btn.set_widget_name("apply");
reset_btn.set_widget_name("reset");
let combo_conn = {
let store = gtk::ListStore::new(&[String::static_type()]);
let nm_connections = get_nm_connections();
for nm_connection in nm_connections.iter() {
store.set(&store.append(), &[(0, nm_connection)]);
}
utils::create_combo_with_model(&store)
};
let combo_servers = {
let store = gtk::ListStore::new(&[String::static_type()]);
for dns_server in G_DNS_SERVERS.keys() {
store.set(&store.append(), &[(0, dns_server)]);
}
utils::create_combo_with_model(&store)
};
combo_servers.set_active(Some(2));
combo_conn.set_widget_name("connections_combo");
combo_servers.set_widget_name("servers_combo");
// Create context channel.
let (dialog_tx, dialog_rx) = glib::MainContext::channel(glib::Priority::default());
// Connect signals.
let dialog_tx_clone = dialog_tx.clone();
let combo_conn_clone = combo_conn.clone();
let combo_serv_clone = combo_servers.clone();
apply_btn.connect_clicked(move |_| {
let dialog_tx_clone = dialog_tx_clone.clone();
let conn_name = {
if let Some(tree_iter) = combo_conn_clone.active_iter() {
let model = combo_conn_clone.model().unwrap();
let group_gobj = model.value(&tree_iter, 0);
let group = group_gobj.get::<&str>().unwrap();
String::from(group)
} else {
"".into()
}
};
let server_name = {
if let Some(tree_iter) = combo_serv_clone.active_iter() {
let model = combo_serv_clone.model().unwrap();
let group_gobj = model.value(&tree_iter, 0);
let group = group_gobj.get::<&str>().unwrap();
String::from(group)
} else {
"".into()
}
};
let server_addr = G_DNS_SERVERS.get(&server_name).unwrap();
std::thread::spawn(move || {
let status_code = Exec::cmd("/sbin/pkexec")
.arg("bash")
.arg("-c")
.arg(format!(
"nmcli con mod '{conn_name}' ipv4.dns '{server_addr}' && systemctl restart \
NetworkManager"
))
.join()
.unwrap();
if status_code.success() {
dialog_tx_clone
.send(DialogMessage {
msg: fl!("dns-server-changed"),
msg_type: gtk::MessageType::Info,
action: Action::SetDnsServer,
})
.expect("Couldn't send data to channel");
} else {
dialog_tx_clone
.send(DialogMessage {
msg: fl!("dns-server-failed"),
msg_type: gtk::MessageType::Error,
action: Action::SetDnsServer,
})
.expect("Couldn't send data to channel");
}
});
});
let dialog_tx_clone = dialog_tx.clone();
let combo_conn_clone = combo_conn.clone();
reset_btn.connect_clicked(move |_| {
let dialog_tx_clone = dialog_tx_clone.clone();
let conn_name = {
if let Some(tree_iter) = combo_conn_clone.active_iter() {
let model = combo_conn_clone.model().unwrap();
let group_gobj = model.value(&tree_iter, 0);
let group = group_gobj.get::<&str>().unwrap();
String::from(group)
} else {
"".into()
}
};
std::thread::spawn(move || {
let status_code = Exec::cmd("/sbin/pkexec")
.arg("bash")
.arg("-c")
.arg(format!(
"nmcli con mod '{conn_name}' ipv4.dns '' && systemctl restart NetworkManager"
))
.join()
.unwrap();
if status_code.success() {
dialog_tx_clone
.send(DialogMessage {
msg: fl!("dns-server-reset"),
msg_type: gtk::MessageType::Info,
action: Action::SetDnsServer,
})
.expect("Couldn't send data to channel");
} else {
dialog_tx_clone
.send(DialogMessage {
msg: fl!("dns-server-reset-failed"),
msg_type: gtk::MessageType::Error,
action: Action::SetDnsServer,
})
.expect("Couldn't send data to channel");
}
});
});
// Setup receiver
let apply_btn_clone = apply_btn.clone();
dialog_rx.attach(None, move |msg| {
let widget_obj = &apply_btn_clone;
let widget_window =
utils::get_window_from_widget(widget_obj).expect("Failed to retrieve window");
let dialog = gtk::MessageDialog::builder()
.transient_for(&widget_window)
.message_type(msg.msg_type)
.text(msg.msg)
.title(msg.msg_type.to_string())
.modal(true)
.build();
dialog.show();
glib::ControlFlow::Continue
});
topbox.pack_start(&label, true, false, 1);
connection_box.pack_start(&connections_label, true, true, 2);
connection_box.pack_end(&combo_conn, true, true, 2);
dnsservers_box.pack_start(&servers_label, true, true, 2);
dnsservers_box.pack_end(&combo_servers, true, true, 2);
button_box.pack_start(&reset_btn, true, true, 2);
button_box.pack_end(&apply_btn, true, true, 2);
connection_box.set_halign(gtk::Align::Fill);
dnsservers_box.set_halign(gtk::Align::Fill);
button_box.set_halign(gtk::Align::Fill);
topbox.pack_start(&connection_box, true, true, 5);
topbox.pack_start(&dnsservers_box, true, true, 5);
topbox.pack_start(&button_box, true, true, 5);
topbox.set_hexpand(true);
topbox
}
fn load_enabled_units() {
G_LOCAL_UNITS.lock().unwrap().loaded_units.clear();
G_LOCAL_UNITS.lock().unwrap().enabled_units.clear();
@ -420,7 +686,7 @@ pub fn create_tweaks_page(builder: &Builder) {
}));
let options_section_box = create_options_section();
let fixes_section_box = create_fixes_section();
let fixes_section_box = create_fixes_section(builder);
let apps_section_box_opt = create_apps_section();
let child_name = "tweaksBrowserpage";
@ -459,6 +725,48 @@ pub fn create_tweaks_page(builder: &Builder) {
stack.add_named(&viewport, child_name);
}
pub fn create_dnsconnections_page(builder: &Builder) {
let viewport = gtk::Viewport::new(gtk::Adjustment::NONE, gtk::Adjustment::NONE);
let image = gtk::Image::from_icon_name(Some("go-previous"), gtk::IconSize::Button);
let back_btn = gtk::Button::new();
back_btn.set_image(Some(&image));
back_btn.set_widget_name("tweaksBrowser");
back_btn.connect_clicked(glib::clone!(@weak builder => move |button| {
let name = button.widget_name();
let stack: gtk::Stack = builder.object("stack").unwrap();
stack.set_visible_child_name(&format!("{name}page"));
}));
let connections_section_box = create_connections_section();
let child_name = "dnsConnectionsBrowserpage";
connections_section_box.set_widget_name(&format!("{child_name}_connections"));
let grid = gtk::Grid::new();
grid.set_hexpand(true);
grid.set_margin_start(10);
grid.set_margin_end(10);
grid.set_margin_top(5);
grid.set_margin_bottom(5);
grid.attach(&back_btn, 0, 1, 1, 1);
let box_collection_s = gtk::Box::new(gtk::Orientation::Vertical, 5);
let box_collection = gtk::Box::new(gtk::Orientation::Vertical, 5);
box_collection.set_widget_name(child_name);
box_collection.pack_start(&connections_section_box, false, false, 10);
box_collection.set_valign(gtk::Align::Center);
box_collection.set_halign(gtk::Align::Center);
box_collection_s.pack_start(&grid, false, false, 0);
box_collection_s.pack_start(&box_collection, false, false, 10);
viewport.add(&box_collection_s);
viewport.show_all();
let stack: gtk::Stack = builder.object("stack").unwrap();
stack.add_named(&viewport, child_name);
}
pub fn create_appbrowser_page(builder: &Builder) {
let install: gtk::Button = builder.object("appBrowser").unwrap();
install.set_visible(true);
@ -512,7 +820,7 @@ fn on_servbtn_clicked(button: &gtk::CheckButton) {
};
// Create context channel.
let (tx, rx) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
let (tx, rx) = glib::MainContext::channel(glib::Priority::default());
// Spawn child process in separate thread.
std::thread::spawn(move || {
@ -555,7 +863,7 @@ fn on_servbtn_clicked(button: &gtk::CheckButton) {
.build();
dialog.show();
}
glib::Continue(true)
glib::ControlFlow::Continue
});
}
@ -652,7 +960,7 @@ fn on_appbtn_clicked(button: &gtk::Button) {
let bash_cmd = format!("{} {}", &envs, &exe_path);
// Create context channel.
let (tx, rx) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
let (tx, rx) = glib::MainContext::channel(glib::Priority::default());
// Spawn child process in separate thread.
std::thread::spawn(move || {
@ -667,7 +975,7 @@ fn on_appbtn_clicked(button: &gtk::Button) {
rx.attach(None, move |text| {
println!("{text}");
glib::Continue(true)
glib::ControlFlow::Continue
});
}

98
src/scripts/amd_drivers.sh Executable file
View File

@ -0,0 +1,98 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "###############################################################################"
echo "# XeroLinux Free (Open Source) Driver Installer #"
echo "# #"
echo "# !!! ATTENTION !!! #"
echo "# #"
echo "# This Will Install GPU Drivers For Any Intel or AMD GPUs #"
echo "# #"
echo "# Carefully Select The Appropriate Drivers. #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, Please Select An Option Below."
echo
echo "################# GPU Checker #################"
echo
echo "1. Check Which GPU You Have."
echo
echo "############# Open Source Drivers #############"
echo
echo "2. AMD GPU Free."
echo "3. ATI (Radeon HD) GPU Free."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "##########################################"
echo " Checking Installed GPU "
echo "##########################################"
echo
echo "Your system has the following GPU(s)"
echo
sleep 3
lspci -x | grep VGA
sleep 3
echo
glxinfo | grep -E "OpenGL vendor|OpenGL renderer*"
sleep 6
echo
echo "#######################################"
echo " Done ! "
echo "#######################################"
clear && sh /usr/share/xerowelcome/scripts/amd_drivers.sh
;;
2 )
echo
echo "##########################################"
echo " Installing AMD GPU Free Drivers "
echo "##########################################"
sleep 3
sudo pacman -S --noconfirm xf86-video-amdgpu libvdpau-va-gl vulkan-swrast libva-vdpau-driver libclc vulkan-radeon lib32-vulkan-radeon lib32-amdvlk amdvlk vulkan-icd-loader lib32-vulkan-icd-loader egl-wayland
sudo mkinitcpio -P
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
exit
;;
3 )
echo
echo "##########################################"
echo " Installing ATI GPU Free Drivers "
echo "##########################################"
sleep 3
sudo pacman -S --noconfirm xf86-video-ati vulkan-radeon lib32-vulkan-radeon libvdpau-va-gl vulkan-swrast libva-vdpau-driver libclc
sudo mkinitcpio -P
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
exit
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

168
src/scripts/apply_defaults.sh Executable file
View File

@ -0,0 +1,168 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 1
echo "###############################################################################"
echo "# !!! XeroLinux Reset Tool !!! #"
echo "# #"
echo "# Having Issues With Messed Up Layout or Settings ? #"
echo "# #"
echo "# This Will Restore OOB Defaults. Layout WILL BE RESET #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, which Edition are you using ?"
echo
echo "1. XeroLinux KDE Plasma."
echo "2. XeroLinux GNOME Spin."
echo "3. XeroLinux XFCE Spin."
echo
#echo "4. Exit"
echo
echo "Please Select an Option..."
echo
read CHOICE
case $CHOICE in
1 )
echo
# echo "Option currently unavailable. Please check back soon..."
tput setaf 4
read -p "Final Warning, This Will Undo Your Customizations, Proceed ? (y/n): " proceed_response
tput sgr0
echo
if [[ $proceed_response == "y" || $proceed_response == "yes" ]]; then
echo
echo "###################################"
echo " Restoring/Applying KDE defaults "
echo "###################################"
sleep 2
echo
echo "Git Cloning Default Settings Repo"
cd ~ && git clone https://github.com/xerolinux/xero-layan-git && cd xero-layan-git/
sleep 2
echo
echo "Running Install Script..."
sh install.sh
echo
rm -Rf ~/xero-layan-git/
sleep 2
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
else
echo "Restoration cancelled."
exit 0
fi
;;
2 )
echo
tput setaf 4
read -p "Final Warning, This Will Undo Your Customizations, Proceed ? (y/n): " proceed_response
tput sgr0
echo
if [[ $proceed_response == "y" || $proceed_response == "yes" ]]; then
echo
echo "###################################"
echo " Restoring/Applying Gnome defaults "
echo "###################################"
sleep 2
echo
echo "Creating backup & Applying custom Settings"
echo "##########################################"
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S) && cp -Rf /etc/skel/. ~ && sudo cp -Rf /etc/skel/. /root/
rm ~/.config/autostart/dconf-load.desktop
sh /usr/local/bin/xdconf
sleep 2
echo
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
else
echo "Restoration cancelled."
exit 0
fi
;;
3 )
echo
tput setaf 4
read -p "Final Warning, This Will Undo Your Customizations, Proceed ? (y/n): " proceed_response
tput sgr0
echo
if [[ $proceed_response == "y" || $proceed_response == "yes" ]]; then
echo
echo "###################################"
echo " Restoring/Applying Gnome defaults "
echo "###################################"
sleep 2
echo
echo "Creating Backups of ~/.config folder"
echo "#####################################"
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S)
sleep 2
echo "###################################"
echo " Restoring XFCE defaults "
echo "###################################"
sleep 2
cp -rf /etc/skel/. ~
sudo cp -Rf /etc/skel/. /root/
sleep 2
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
else
echo "Restoration cancelled."
exit 0
fi
;;
* )
echo "#################################"
echo "Choose the correct number"
echo "#################################"
;;
esac

163
src/scripts/dbox.sh Executable file
View File

@ -0,0 +1,163 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "#################################################"
echo "# XeroLinux Distrobox Tool. #"
echo "#################################################"
tput sgr0
echo
echo "Hello $USER, what would you like to do today ?"
echo
echo "################## Distrobox & Docker Setup ##################"
echo
echo "i. Install/Configure Distrobox & Docker (Automatically)."
echo "d. Distrobox Documentaion on Github (Will open browser)."
echo
echo "################### Top 5 Container Images ###################"
echo
echo "1. Debian."
echo "2. Fedora."
echo "3. Void Linux."
echo "4. OpenSuse Tumbleweed."
echo "5. Gentoo Linux (For Advanced Users)."
echo
echo "u. Update all Containers (Might take a while)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
i )
echo
sleep 2
echo "Installing packages..."
echo
sudo pacman -S --noconfirm distrobox docker docker-compose
sleep 2
echo
echo "Enabling Services & Adding you to group"
echo
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
sleep 2
echo
# Prompt the user to reboot
tput setaf 1
read -p "All done. Reboot is required. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 2
echo "Please manually reboot your system before using Distrobox."
sleep 6
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
tput sgr0
fi
;;
d )
echo
sleep 2
echo "Opening Distrobox Documentation In Your Default Browser..."
echo
xdg-open 'https://github.com/89luca89/distrobox/tree/main/docs#quick-start' &>/dev/null;
sleep 6
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
1 )
echo
sleep 2
echo "Pulling Latest Debian Image with label XeroDeb, Please Wait..."
echo
distrobox create -i quay.io/toolbx-images/debian-toolbox:latest -n "XeroDeb"
sleep 10
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
2 )
echo
sleep 2
echo "Pulling Latest Fedora Image with label XeroDora, Please Wait..."
echo
distrobox create -i registry.fedoraproject.org/fedora-toolbox:latest -n "XeroDora"
sleep 10
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
3 )
echo
sleep 2
echo "Pulling Latest Void Linux Image with label XeroVoid, Please Wait..."
echo
distrobox create -i ghcr.io/void-linux/void-linux:latest-full-x86_64 -n "XeroVoid"
sleep 10
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
4 )
echo
sleep 2
echo "Pulling Latest OpenSuse Tumbleweed Image with label XeroSuse..."
echo
distrobox create -i registry.opensuse.org/opensuse/tumbleweed:latest -n "XeroSuse"
sleep 10
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
5 )
echo
sleep 2
echo "Pulling Latest Gentoo Linux Image with label XeroGen..."
echo
distrobox create -i docker.io/gentoo/stage3:latest -n "XeroGen"
sleep 10
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
u )
echo
sleep 2
echo "Upgrading all Containers Please Wait..."
echo
distrobox-upgrade --all
sleep 3
echo
clear && sh /usr/share/xerowelcome/scripts/dbox.sh
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

80
src/scripts/firewalled.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "###############################################################################"
echo "# XeroLinux Firewall Enabler #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, which Edition are you using ?"
echo
echo "########## Edition Selection ##########"
echo
echo "1. XeroLinux KDE Plasma."
echo "2. XeroLinux GNOME (GUFW)."
echo "3. XeroLinux XFCE (FireJail)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "###########################################"
echo " Adding/Enabling Firewalld "
echo "###########################################"
sleep 3
sudo pacman -S --noconfirm plasma-firewall firewalld
sudo systemctl enable --now firewalld
sleep 3
echo "###########################################"
echo " Done ! Check Status from KDE Settings "
echo "###########################################"
sleep 6
;;
2 )
echo
echo "############################################"
echo " Installing Firewall for Gnome "
echo "############################################"
sleep 3
sudo pacman -S --noconfirm gufw ufw
sleep 3
echo "###############################################"
echo " Done ! Configure Firewall From The Gufw App "
echo "###############################################"
sleep 6
;;
3 )
echo
echo "########################################"
echo " Installing Firewall for XFCE "
echo "########################################"
sleep 3
sudo pacman -S --noconfirm firejail firetools
sleep 3
echo "###############################################"
echo " Done ! Configure Firewall From FireJail App "
echo "###############################################"
sleep 6
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

51
src/scripts/fix_keys.sh Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/bash
#set -e
echo "#################################"
echo "# Fixing Pacman Databases.. #"
echo "#################################"
sleep 2
echo
echo "##################################"
echo "# Deleting Existing Keys.. #"
echo "##################################"
sudo rm /var/lib/pacman/sync/*
sleep 2
echo
echo "#################################"
echo "# Deleting gnupg files.. #"
echo "#################################"
sudo rm -r /etc/pacman.d/gnupg/*
sleep 2
echo
echo "#################################"
echo "# Populating Keys.. #"
echo "#################################"
sudo pacman-key --init && sudo pacman-key --populate
sleep 2
echo
echo "#################################"
echo "# Adding Ubuntu keyserver.. #"
echo "#################################"
echo "keyserver hkp://keyserver.ubuntu.com:80" | sudo tee --append /etc/pacman.d/gnupg/gpg.conf
sleep 2
echo
echo "##################################"
echo "# Updating ArchLinux Keyring.. #"
echo "##################################"
sudo pacman -Sy --noconfirm archlinux-keyring
sleep 2
echo
echo "##################################"
echo "# Done ! Try Update now & Report #"
echo "##################################"

64
src/scripts/hw_service.sh Executable file
View File

@ -0,0 +1,64 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "###############################################################################"
echo "# XeroLinux Hardware Service #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, What shall we do today ?"
echo
echo "1. List Hardware Config via inxi."
echo "2. Probe & Upload System Config for Sharing."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "###########################################"
echo " Check System Config via inxi "
echo "###########################################"
sleep 2
inxi -b
sleep 2
echo "###########################################"
echo " Share Screenshot for help "
echo "###########################################"
;;
2 )
echo
echo "############################################"
echo " Probing config & Uploading "
echo "############################################"
echo
sleep 2
sudo -E hw-probe -all -upload
sleep 2
echo
echo "###############################################"
echo " Ctrl+Click to open link for sharing "
echo "###############################################"
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

47
src/scripts/init_snapper.sh Executable file
View File

@ -0,0 +1,47 @@
#!/usr/bin/bash
#set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m'
echo "#####################################"
echo " XeroLinux Snapper Setup "
echo "#####################################"
echo
# Get current user's username
username=$(whoami)
# Welcome message
echo -e "${GREEN}Hi, $username! Checking for BTRFS, if so BTRFS Assistant & Snapper tools will be installed.${NC}"
echo
sleep 3
# Check if the file system is BTRFS
if lsblk -f | grep -q "btrfs"; then
echo -e "${GREEN}BTRFS partitions found. Adding Necessary Modules, Installing Packages & Initializing Root/Home.r.${NC}"
echo
echo "Installing Packages & Updating mkinitcpio configuration"
sudo pacman -Sy --noconfirm btrfs-assistant btrfs-du snapper-support btrfsmaintenance
echo
sleep 3
sudo sed -i 's/MODULES="\(.*\)"/MODULES="\1 btrfs"/; s/crc32c//g' /etc/mkinitcpio.conf
sudo mkinitcpio -P
sleep 3
echo
echo "Initializing snapper for root subvolume"
sudo snapper -c root create-config /
sudo snapper -c root create
echo
sleep 3
echo "Initializing snapper for home subvolume"
sudo snapper -c home create-config /home
sudo snapper -c home create
echo
sleep 3
echo -e "${BLUE}Snapper installed and initialized. Reboot required.${NC}"
echo
else
echo -e "${RED}No BTRFS Partitions found. Exiting...${NC}"
exit 1
fi

107
src/scripts/iso_builder.sh Executable file
View File

@ -0,0 +1,107 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "###############################################################################"
echo "# XeroLinux ISO Builder #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, which ISO would you like to build today ?"
echo
#echo "Please close this window, thanks..."
echo "########## Edition Selection ##########"
echo
echo "1. XeroLinux KDE Plasma."
echo "2. XeroLinux GNOME Spin."
echo "3. XeroLinux XFCE Spin."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
# echo "Option currently unavailable. Will be back once optimized for Gnome 45..."
echo "###########################################"
echo " Building XeroLinux KDE Flagship "
echo "###########################################"
echo
sleep 3
cd ~ && git clone https://github.com/xerolinux/xero_iso.git
sleep 3
echo
cd ~/xero_iso/ && ./build.sh
sleep 3
echo
cd ~ && rm -rf ~/xero_iso/
echo "###########################################"
echo " Done ! Check Home Folder for ISO "
echo "###########################################"
sleep 3
clear && sh /usr/share/xerowelcome/scripts/iso_builder.sh
;;
2 )
echo
# echo "Option currently unavailable. Will be back once optimized for Gnome 45..."
echo "###########################################"
echo " Building XeroLinux Gnome Spin "
echo "###########################################"
echo
sleep 3
cd ~ && git clone https://github.com/xerolinux/xero_g_iso.git
sleep 3
echo
cd ~/xero_g_iso/ && ./build.sh
sleep 3
echo
cd ~ && rm -rf ~/xero_g_iso/
echo "###########################################"
echo " Done ! Check Home Folder for ISO "
echo "###########################################"
sleep 3
clear && sh /usr/share/xerowelcome/scripts/iso_builder.sh
;;
3 )
echo
# echo "Option currently unavailable. Will be back once optimized for Gnome 45..."
echo "###########################################"
echo " Building XeroLinux XFCE Spin "
echo "###########################################"
echo
sleep 3
cd ~ && git clone https://github.com/xerolinux/xero_xfce_iso.git
sleep 3
echo
cd ~/xero_xfce_iso/ && ./build.sh
sleep 3
echo
cd ~ && rm -rf ~/xero_xfce_iso/
echo "###########################################"
echo " Done ! Check Home Folder for ISO "
echo "###########################################"
sleep 3
clear && sh /usr/share/xerowelcome/scripts/iso_builder.sh
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

377
src/scripts/nVidia_drivers.sh Executable file
View File

@ -0,0 +1,377 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Extensive modifications by: vlk (https://github.com/REALERvolker1)
# Website : http://xerolinux.xyz
##################################################################################################################
# Set the window title to something pleasant
echo -en "\033]2;XeroLinux Nvidia Setup\007"
# Attempt to fix on Konsole
echo -ne "\033]30;XeroLinux Nvidia Setup\007"
# set to 1 to remove dxvk-bin in the driver uninstall function
XEROLINUX_REMOVE_DXVK_BIN=0 # 1
shopt -s checkwinsize
(
: # curse you, shfmt
:
)
# define some useful characters that are hard to type
BOLD=""
RESET=""
# TAB=$'\t' # make shellcheck happy
LF=$'\n'
_print_header() {
local surround htx i surround fsur width_pad color
local vert_pad=$'\n'
local -i width
local -i halfwidth
local -i i_width
local -a prints=()
for i in "$@"; do
i_val="${i#*=}" # preprocess
case "$i" in
'--width='*)
width="$i_val"
;;
'--surround_char='*)
((${#i_val} == 1)) && surround="$i_val"
;;
'--full-surround') # if you want to have the text surrounded
fsur=true
;;
'--no-vertical-pad')
vert_pad=''
;;
'--color='*)
color="$i_val"
;;
*)
prints+=("$i")
;;
esac
done
((${#surround} == 1)) || surround='#' # if the surround character is not 1 character long, set it to default
((width > 3)) || width="$COLUMNS" # make sure width is a number, and it is enough to do fun things with later
htx="$(printf "\e[1${color:+;$color}m%${width}s\e[0m" '')"
htx="${htx// /$surround}" # first print a bunch of spaces of the desired width, then replace those spaces with the surround character
if ((${#fsur})); then
fsur="\e[1;${color:+;$color}m${surround}" # fsur is dual-purpose. If it is set, then turn it from a bool into a fmt string
width="$((width - 2))" # make sure the width is small enough to be completely surrounded
fi
((width % 2)) && width_pad=' ' # pad width with a space on one side if it is not an even number
halfwidth="$((width / 2))" # precompute half the width (as an integer)
echo "${vert_pad:-}$htx"
for i in "${prints[@]}"; do
i_width="$((${#i} / 2))" # character count of $i, divided by two
# if fsur is not set, set it to an empty string. Pad the width in spaces to be centered
printf "${fsur:=}\e[${color:-0}m%$((i_width + halfwidth))s%$((halfwidth - i_width))s${width_pad:=}${fsur:-}\n" "$i"
done
echo "$htx${vert_pad:-}"
}
_pause_for_readability() {
local delay="${1:?Error, a period of time to delay is required!}"
echo -en "\e[2m(Pausing $delay seconds for readability)\e[0m"
# [[ ${1:-} =~ ^([0-9]+)$ ]] && delay="${1:-}"
# read -r -t "$delay" -p "Press RETURN to skip the $delay-second delay..." delay
read -r -t "$delay"
echo -en "\e[2K\r" # Erase the text and return cursor position to normal
}
_wayland_setup() {
local sudocmd prompt_str REBOOT_CHOICE dkms_pkg i
if [[ ${1:-} == '--open' ]]; then
dkms_pkg="nvidia-open-dkms"
_print_header \
'Installing Experimental Open-dkms Drivers' \
'' \
'Provides Experimental Open-dkms Drivers' \
'Limited to Turing Series GPUs & Up'
printf '%s\n' 'This option installs the latest open-source nVidia kernel modules.' \
'Recommended for tinkering and testing' \
"${BOLD}Warning${RESET}: Only compatible with ${BOLD}Turing+${RESET} GPUs$RESET"
else
dkms_pkg="nvidia-dkms"
_print_header \
'Installing Clean Vanilla Drivers (NFB)' \
'' \
'Provides Clean Vanilla Drivers' \
'Limiting you to only 900 Series & Up'
printf '%s\n' 'This option installs the latest proprietary kernel modules.' \
'Recommended for most use cases'
fi
_pause_for_readability 5
local should_install_cuda
_print_header --width=55 'Do you want to include CUDA for Machine Learning?' \
"${BOLD}WARNING${RESET}: This takes ${BOLD}4.3${RESET} GiB of disk space!!!"
read -r -p "Do you want to install Cuda ? [y/N] > " should_install_cuda
# if we do not have sudo perms, warn the user. Redirect all output (stdout, stderr, etc) to /dev/null
if ((${#DRY})); then
sudocmd='echo sudo'
# prompt_str="${BOLD}[Dry run]${RESET} "
else
sudocmd='sudo'
sudo -vn &>/dev/null || echo "${BOLD}[Sudo required]${RESET}"
fi
# read, unmangle backslashes, return false after 5 seconds, only read 1 character, prompt with string, no variable
# read -r -t 5 -n 1 -p "${prompt_str:-}Press Enter to continue, or wait 5 seconds...${LF}"
local -a required_packages=(
"$dkms_pkg"
'nvidia-utils'
'libxnvctrl'
'lib32-libxnvctrl'
'dxvk-bin'
'opencl-nvidia'
'lib32-opencl-nvidia'
'lib32-nvidia-utils'
'nvidia-settings'
'libvdpau'
'lib32-libvdpau'
'vulkan-icd-loader'
'lib32-vulkan-icd-loader'
)
[[ ${should_install_cuda:-} == y ]] && required_packages+=(cuda)
# pacman sends currently installed packages to stdout, and not-installed packages to stderr.
# Take stderr and get only the package name. Disregard any colors.
local oldifs="$IFS"
local IFS=$'\n'
local -a needed_packages=($(pacman -Q "${required_packages[@]}" 2> >(grep -oP --color=never "^error:[^']*'\K[^']*") >/dev/null))
IFS="$oldifs"
if ((${#needed_packages[@]})); then
_print_header --width=35 "Installing packages"
printf '%s\n' "${needed_packages[@]}"
_pause_for_readability 5
$sudocmd pacman -S --needed --noconfirm "${required_packages[@]}" # install everything though because you need to have it all
else
_print_header --width=35 "Drivers already installed. Skipping"
fi
_print_header --width=35 'Applying Wayland Specific Stuff.'
_pause_for_readability 3
local -i no_force_powermgmt=1
local wants_powermgmt
local DESKTOP_ENVIRONMENT="${XDG_CURRENT_DESKTOP,,}"
if [[ "${DESKTOP_ENVIRONMENT:=}" == "kde" || "${DESKTOP_ENVIRONMENT:=}" == "gnome" ]]; then
echo "Step 1: Updating mkinitcpio configuration"
_pause_for_readability 2
$sudocmd sed -i 's/MODULES="\(.*\)"/MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm"/; s/crc32c//g' '/etc/mkinitcpio.conf'
echo "${LF}Step 2: Creating a backup of Grub & adding necessary Kernel Flags"
_pause_for_readability 2
$sudocmd cp '/etc/default/grub' '/etc/default/grub.xbk'
$sudocmd sed -i "s/\(GRUB_CMDLINE_LINUX_DEFAULT='[^']*\)'/\1 nvidia_drm.modeset=1'/" '/etc/default/grub'
$sudocmd update-grub
if [[ "$DESKTOP_ENVIRONMENT" == "gnome" ]]; then
echo "Step 2a: Applying Extra Gnome Modifications..."
_pause_for_readability 2
echo "options nvidia NVreg_PreserveVideoMemoryAllocations=1" | (
# stdin is propagated to subprocesses of subshells
if ((${#DRY})); then
tee
else
$sudocmd tee '/etc/modprobe.d/nvidia-wayland-gnome.conf' >/dev/null
fi
)
# $sudocmd ln -s '/dev/null' '/etc/udev/rules.d/61-gdm.rules'
$sudocmd mkinitcpio -P
fi
wants_powermgmt=y
no_force_powermgmt=0
fi
local -a services=(nvidia-{hibernate,resume,suspend})
# ((no_force_powermgmt)) && read -r -p "Do you want to enable Nvidia power services? [y/N] > " wants_powermgmt
local needs_nvidia_powerd
read -r -p "Do you want to enable 'nvidia-powerd'? For Ampere (RTX 30 series+) laptop GPUs. [y/N] > " needs_nvidia_powerd
[[ ${needs_nvidia_powerd:-} == 'y' ]] && services+=('nvidia-powerd')
_print_header --width=35 'Enabling power services' "${services[@]}"
_pause_for_readability 2
# if [[ ${wants_powermgmt:-} == y || no_force_powermgmt -eq 1 ]]; then
if :; then
$sudocmd systemctl enable "${services[@]}" # &>/dev/null # it's always good to just double check
if ((${#DRY})); then
echo "Dry run selected. Skipping reboot"
else
_print_header "Reboot required. Press Enter to reboot or any other key to exit."
read -r REBOOT_CHOICE
if [[ -z ${REBOOT_CHOICE:-} ]]; then
$sudocmd reboot
else
echo "${LF}Please reboot your system later to apply the changes."
fi
fi
else
echo "Skipping nvidia power services"
fi
}
_check_gpu() {
_print_header 'Checking Installed GPU'
echo "${LF}Your system has the following GPU(s)${LF}"
lspci -x | grep --color=always -P '[^A-Za-z]+VGA.*NVIDIA[^\[]+\[\K[^\]]+'
glxinfo | grep --color=always -P 'OpenGL\s*(vendor|renderer)[^:]*:\s*\K.*'
nvurl='https://www.nvidia.com/download/index.aspx?lang=en-us'
skiptext="Skipping opening url '$nvurl'"
if ((${#DRY})); then
echo "$skiptext"
else
read -r -p "Want to open the nVidia drivers page?${LF}[y/N] > " ans
if [[ $ans == y ]]; then
_print_header --width=66 \
'Opening nVidia Drivers page...' \
'Check What Version Your GPU Needs Before Installing or Building.'
_pause_for_readability 2
xdg-open "$nvurl" &>/dev/null
else
echo "$skiptext"
fi
fi
}
_remove_everything() {
_print_header --width=66 'Uninstalling all nVidia Drivers'
((XEROLINUX_REMOVE_DXVK_BIN)) && packages+=("dxvk-bin")
# See driver install function for code explanation
_print_header --width=35 "Removing packages"
# local -a removing_packages=($(pacman -Q "${packages[@]}" 2>/dev/null | cut -d ' ' -f 1))
local -a removing_packages=($(pacman -Q | grep -oE '\S*(nv(idia|ctrl|api)|cuda|vdpau)\S*'))
((${#removing_packages[@]})) && printf '%s\n' "${removing_packages[@]}"
# If the user suddenly doesn't want to remove nvidia drivers, they have a second chance
local second_thoughts
read -r -p "Do you want to ${BOLD}REMOVE${RESET} these packages? [y/N] > " second_thoughts
[[ ${second_thoughts:-} == 'y' ]] || return
if ((${#DRY})); then
# echo "Dry run -- skipping removal of ${packages[*]}"
sudocmd='echo sudo'
else
sudocmd='sudo'
fi
local package
for package in "${packages[@]}"; do
$sudocmd pacman -Rdd --noconfirm "$package" &>/dev/null
done
$sudocmd mkinitcpio -P
}
__reset_everything() {
if [[ ${1:-} == '--header' ]]; then
_print_header --width=49 'Done!' 'Press ENTER to return to main screen'
fi
read -r
echo -en "${RESET}" # clear formatting
clear
# sh '/usr/share/xerowelcome/scripts/nVidia_drivers.sh' # DANGEROUS RECURSION!!
}
DRY=''
# argument parsing
for i in "$@"; do
case "${i:-}" in
'--dry-run' | -d)
DRY=true
;;
'-'*)
# ARGZERO (the script name), greedily matched until the last slash
# turns '/home/vlk/Downloads/nVidia_driversNov.sh' into 'nVidia_driversNov.sh'
echo "${0##*/} [--dry-run (-d)]"
echo "run ${0##*/} with no args to run the script as usual"
exit 1
;;
esac
done
# save everything to a variable
header_text="$(
_print_header --color=91 --no-vertical-pad --full-surround \
'XeroLinux nVidia (Proprietary) Driver Installer' \
'Wayland Support Included. This Applies to KDE & Gnome NOT XFCE.' \
"Note : nvidia-settings GUI isn't Yet Wayland Ready, Plz Use Terminal." \
'Normally This is Enough For Hybrid Setups, If Not, More Research is Needed.'
cat <<EOF
###################### Detected GPUs ######################
Hello ${USER:=$(whoami)}, you have the following nVidia GPU(s):
$(
lspci | grep -oP '^.*VGA[^:]+:\s*\K.*NVIDIA.*\](?=\s*\(.*)' | sed -E 's/(\[)/\1/g ; s/(\])/\1/g'
)
################ Vanilla/Open-DKMS Drivers ################
${BOLD}1${RESET}. Latest Vanilla Drivers (900 Series & up).
${BOLD}2${RESET}. Latest Open-dkms Drivers (Experimental/Turing+).
############### Troubleshooting. (Cleanup). ###############
${BOLD}r${RESET}. Remove all Drivers. (Start Fresh)
Type Your Selection. To Exit, press ${BOLD}q${RESET} or close Window.
${RESET}
EOF
)"
while :; do
CHOICE=''
# print the header every time
# read, unmangle backslashes, stop after 1 character, prompt with string, variable
read -r -n 1 -p "$header_text${LF}${INVALID_OPTION_STR:-}[1|2|r|q] > ${BOLD}" CHOICE
INVALID_OPTION_STR=''
echo "${RESET}" # user's answer is bolded. This is required to reset
case "${CHOICE:=}" in
1)
_wayland_setup
;;
2)
_wayland_setup --open
;;
c)
_check_gpu
# __reset_everything --header
;;
r)
_remove_everything
;;
q)
exit 0
;;
*)
# _print_header --width=33 'Choose a valid option!' # no one will see this
INVALID_OPTION_STR="Invalid option: '${CHOICE:-}' "
clear
continue # re-prompt
;;
esac
__reset_everything --header
done

11
src/scripts/rank_mirrors.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/bash
echo
echo "##########################################"
echo " Updating Mirrors To Fastest Ones "
echo "##########################################"
echo
sudo reflector --verbose -phttps -f10 -l10 --sort rate --save /etc/pacman.d/mirrorlist && sudo pacman -Syy
echo
echo "##################################"
echo " Done ! Updating should go faster "
echo "##################################"

111
src/scripts/switch_dm.sh Executable file
View File

@ -0,0 +1,111 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "###############################################################################"
echo "# XeroLinux Display Manager Switcher #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, which Display Manager do you want to switch to ?"
echo
echo "########## DM Selector ##########"
echo
echo "1. LightDM."
echo "2. KDE SDDM (For KDE use only)."
echo "3. Gnome GDM (For Gnome use only)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "###########################################"
echo " Switching to LightDM "
echo "###########################################"
sleep 2
echo
echo "Removing Current Display Manager"
echo "################################"
sudo pacman -Rdd --noconfirm sddm &>/dev/null; sudo pacman -Rdd --noconfirm sddm-git &>/dev/null; sudo pacman -Rdd --noconfirm sddm-git &>/dev/null; sudo pacman -Rdd --noconfirm sddm-kcm &>/dev/null; sudo pacman -Rdd --noconfirm gdm &>/dev/null
sleep 2
echo
echo "Installing & Enabling LightDM"
echo "#############################"
sudo pacman -S --needed --noconfirm lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
sleep 2
sudo systemctl enable lightdm.service -f
echo
echo "###########################################"
echo " Done ! Please reboot to apply "
echo "###########################################"
sleep 3
;;
2 )
echo
echo "###########################################"
echo " Switching to SDDM "
echo "###########################################"
sleep 2
echo
echo "Removing Current Display Manager"
echo "################################"
sudo pacman -Rdd --noconfirm sddm &>/dev/null; sudo pacman -Rdd --noconfirm lightdm &>/dev/null; sudo pacman -Rdd --noconfirm lightdm-gtk-greeter &>/dev/null; sudo pacman -Rdd --noconfirm lightdm-gtk-greeter-settings &>/dev/null; sudo pacman -Rdd --noconfirm gdm &>/dev/null
sleep 2
echo
echo "Installing & Enabling SDDM"
echo "##########################"
yay -S sddm-git --noconfirm
sudo pacman -S sddm-kcm --needed --noconfirm
sleep 2
sudo systemctl enable sddm.service -f
echo
echo "###########################################"
echo " Done ! Please reboot to apply "
echo "###########################################"
sleep 3
;;
3 )
echo
echo "###########################################"
echo " Switching to GDM "
echo "###########################################"
sleep 2
echo
echo "Removing Current Display Manager"
echo "################################"
sudo pacman -Rdd --noconfirm sddm &>/dev/null; sudo pacman -Rdd --noconfirm sddm-git &>/dev/null; sudo pacman -Rdd --noconfirm sddm-kcm &>/dev/null; sudo pacman -Rdd --noconfirm lightdm &>/dev/null; sudo pacman -Rdd --noconfirm lightdm-gtk-greeter &>/dev/null; sudo pacman -Rdd --noconfirm lightdm-gtk-greeter-settings &>/dev/null
sleep 2
echo
echo "Installing & Enabling GDM"
echo "#########################"
sudo pacman -S --needed --noconfirm gdm
sleep 2
sudo systemctl enable gdm.service -f
echo
echo "###########################################"
echo " Done ! Please reboot to apply "
echo "###########################################"
sleep 3
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

38
src/scripts/switch_to_zsh.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
#set -e
echo "######################################"
echo "Setting up ZSH With p10k & OMZ Plugins"
echo "######################################"
sleep 2
echo "Step 1 - Grabing Necessary Fonts"
echo "################################"
sudo pacman -S --needed --noconfirm zsh grml-zsh-config
yay -S --noconfirm ttf-meslo-nerd siji-git ttf-unifont noto-color-emoji-fontconfig xorg-fonts-misc ttf-dejavu ttf-meslo-nerd-font-powerlevel10k noto-fonts-emoji powerline-fonts zsh-theme-powerlevel10k
sleep 2
echo "Step 2 - Grabing OhMyZsh & Plugins"
echo "##################################"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sleep 2
echo "Step 3 - Grabing PowerLevel10k Theme"
echo "#####################################"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
cd $HOME/ && wget https://raw.githubusercontent.com/xerolinux/xero-fixes/main/conf/.p10k.zsh
sleep 2
echo "Step 4 - Setting Default Shell to ZSH"
echo "#####################################"
sudo chsh $USER -s /bin/zsh
cd $HOME/.local/share/konsole/
sed -i 's|/bin/bash|/bin/zsh|g' XeroLinux.profile
sleep 2
echo "Step 5 - Importing XeroLinux .zshrc"
echo "#####################################"
cd $HOME/
rm .zshrc
wget https://raw.githubusercontent.com/xerolinux/xero-fixes/main/conf/.zshrc
sleep 2
echo "#####################################"
echo " Done ! Now Logout & back in "
echo "#####################################"

2
src/scripts/terminal-helper Executable file → Normal file
View File

@ -56,7 +56,7 @@ done
fi
if [ -z "$terminal" ]; then
notify-send -t 1500 --app-name=CachyOS "No terminal installed" "Could not find a terminal emulator. Please install one."
notify-send -t 1500 --app-name="Melawy Linux" "No terminal installed" "Could not find a terminal emulator. Please install one."
exit 1
fi

103
src/scripts/update_system.sh Executable file
View File

@ -0,0 +1,103 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 5
echo "###############################################################################"
echo "# XeroLinux System Updater #"
echo "# #"
echo "# !!! Please Note !!! #"
echo "# #"
echo "# AUR Packages Will Build Before Installing.. #"
echo "# Which might take some time depending on Package. In case it fails #"
echo "# #"
echo "# Please do NOT report to us, but to the package maintainer(s) upstream #"
echo "###############################################################################"
tput sgr0
echo
echo "Hello $USER, Please Select Packages To Update."
echo
echo "########## Package Manager Selector ##########"
echo
echo "1. Update Arch Packages Only."
echo "2. Update Arch & A.U.R Packages."
echo "3. Update Flatpak Packages Only."
echo
echo "4. Update All in one go. (Not Topgrade)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "##########################################"
echo " Updating Arch Packages "
echo "##########################################"
sleep 3
sudo pacman -Syyu
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
clear && sh /usr/share/xerowelcome/scripts/update_system.sh
;;
2 )
echo
echo "##########################################"
echo " Updating Arch & AUR Packages "
echo "##########################################"
sleep 3
yay -Syyu
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
clear && sh /usr/share/xerowelcome/scripts/update_system.sh
;;
3 )
echo
echo "##########################################"
echo " Updating Flatpak Packages "
echo "##########################################"
sleep 3
flatpak update
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
clear && sh /usr/share/xerowelcome/scripts/update_system.sh
;;
4 )
echo
echo "##########################################"
echo " Updating Everything in One Go "
echo "##########################################"
sleep 3
yay -Syyu && flatpak update
sleep 3
echo "#######################################"
echo " Done ! "
echo "#######################################"
clear && sh /usr/share/xerowelcome/scripts/update_system.sh
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

206
src/scripts/xero_rices.sh Executable file
View File

@ -0,0 +1,206 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "#################################################"
echo "# The XeroLinux Rice Installer #"
echo "# The Following Script is for KDE Only #"
echo "#################################################"
tput sgr0
echo
echo "Hello $USER, which rice would you like to apply today ?"
echo
echo "################# Rice Selector #################"
echo
echo "1. The Catppuccin Rice (Teddy)."
echo "2. The Dunes Rice (GamerKing)."
echo "3. The Nord Rice (DarkXero)."
echo "4. The Sweet Rice (Teddy)."
echo
echo "################# Ricing Tweaks #################"
echo
echo "5. Reset config back to Pure Vanilla KDE."
echo "6. Activate Flatpak Theming (Required If used)."
echo "7. Update Default System Theme (Layan KDE/GTK)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
echo "#################################################"
echo "# Applying Selected Rice #"
echo "#################################################"
echo
sleep 2
cd ~ && git clone https://github.com/xerolinux/xero-catppuccin-git && cd ~/xero-catppuccin-git/ && ./install.sh
sleep 3
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
exit 0
;;
2 )
echo
echo "#################################################"
echo "# Applying Selected Rice #"
echo "#################################################"
echo
sleep 2
cd ~ && git clone https://github.com/xerolinux/xero-dunes-git.git && cd ~/xero-dunes-git/ && ./install.sh
sleep 3
echo
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput sgr0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
echo "Please manually reboot your system to apply changes."
fi
exit 0
;;
3 )
echo
echo "#################################################"
echo "# Applying Selected Rice #"
echo "#################################################"
echo
sleep 2
cd ~ && git clone https://github.com/xerolinux/xero-nord-git.git && cd ~/xero-nord-git/ && ./install.sh
sleep 3
echo
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
exit 0
;;
4 )
echo
echo "#################################################"
echo "# Applying Selected Rice #"
echo "#################################################"
echo
sleep 2
cd ~ && git clone https://github.com/xerolinux/xero-sweet-git.git && cd ~/xero-sweet-git/ && ./install.sh
sleep 3
echo
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
exit 0
;;
5 )
echo
echo "#################################################"
echo "# Resetting to Vanilla KDE #"
echo "# #"
echo "# Warning, will undo current settings ! #"
echo "# This will revert settings to Pure Vanilla KDE #"
echo "#################################################"
echo
sleep 6
cp -Rf ~/.config ~/.config-backup-$(date +%Y.%m.%d-%H.%M.%S) && rm -Rf ~/.config/
sudo sed -i "s/GRUB_THEME/#GRUB_THEME/g" /etc/default/grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
sleep 3
echo
# Prompt the user to reboot
tput setaf 4
read -p "Customization Restored. Reboot recommended. Reboot now? (y/n): " reboot_response
tput setaf 0
echo
# Check the user's response
if [[ $reboot_response == "y" || $reboot_response == "yes" ]]; then
sudo reboot
else
echo
tput setaf 4
echo "Please manually reboot your system to apply changes."
tput sgr0
fi
exit 0
;;
6 )
echo
sleep 2
sh /usr/local/bin/flatfix
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xero_rices.sh
;;
7 )
echo
sleep 2
sh /usr/local/bin/stup
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xero_rices.sh
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

97
src/scripts/xerofix.sh Executable file
View File

@ -0,0 +1,97 @@
#!/bin/bash
#set -e
##################################################################################################################
# Written to be used on 64 bits computers
# Author : DarkXero
# Website : http://xerolinux.xyz
##################################################################################################################
tput setaf 3
echo "#################################################"
echo "# XeroLinux Fixes/Tweaks #"
echo "#################################################"
tput sgr0
echo
echo "Hello $USER, what would you like to do today ?"
echo
echo "################## Troubleshooting ##################"
echo
echo "1. Apply The Samba Share Fix."
echo "2. Clear Pacman Cache (Free Space)."
echo "3. Restart PipeWire/PipeWire-Pulse."
echo "4. Unlock Pacman DB (In case of error)."
echo "5. Enable The PipeWire Echo-Cancel Module."
echo "6. TKG Kernel/nVidia Scripts (Advanced use only)."
echo
echo "Type Your Selection. To Exit, just close Window."
echo
while :; do
read CHOICE
case $CHOICE in
1 )
echo
sleep 2
sh /usr/local/bin/smbfix
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
2 )
echo
sleep 2
sudo pacman -Scc
sleep 2
echo
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
3 )
echo
sleep 2
sh /usr/local/bin/rpipe
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
4 )
echo
sleep 2
sudo rm /var/lib/pacman/db.lck
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
5 )
echo
sleep 2
sh /usr/local/bin/pipecho
sleep 2
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
6 )
echo
sleep 2
sh /usr/local/bin/tkg
echo
sleep 3
clear && sh /usr/share/xerowelcome/scripts/xerofix.sh
;;
* )
echo "#################################"
echo " Choose the correct number "
echo "#################################"
;;
esac
done

View File

@ -106,11 +106,11 @@ pub fn run_cmd_terminal(cmd: String, escalate: bool) -> bool {
let cmd_formated = format!("{cmd}; read -p 'Press enter to exit'");
let mut args: Vec<&str> = vec![];
if escalate {
args.extend_from_slice(&["-s", "pkexec /usr/share/cachyos-hello/scripts/rootshell.sh"]);
args.extend_from_slice(&["-s", "pkexec /usr/share/melawy-welcome/scripts/rootshell.sh"]);
}
args.push(cmd_formated.as_str());
let exit_status = Exec::cmd("/usr/share/cachyos-hello/scripts/terminal-helper")
let exit_status = Exec::cmd("/usr/share/melawy-welcome/scripts/terminal-helper")
.args(args.as_slice())
.stdout(Redirection::Pipe)
.join()
@ -134,7 +134,7 @@ pub fn get_pacman_wrapper() -> PacmanWrapper {
pub fn is_alpm_pkg_installed(package_name: &str) -> bool {
let pacman = pacmanconf::Config::with_opts(None, Some("/etc/pacman.conf"), Some("/")).unwrap();
let alpm = alpm_utils::alpm_with_conf(&pacman).unwrap();
matches!(alpm.localdb().pkg(package_name.as_bytes()), Ok(_))
alpm.localdb().pkg(package_name.as_bytes()).is_ok()
}
#[cfg(test)]

View File

@ -1,30 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0
<!-- Generated with glade 3.40.0
Copyright (C) 2021-2023 CachyOS team
Copyright (C) 2023-2024 Melawy (Valeria Fadeeva)
This file is part of cachyos-welcome.
This file is part of melawy-welcome.
cachyos-welcome is free software: you can redistribute it and/or modify
melawy-welcome is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
cachyos-welcome is distributed in the hope that it will be useful,
melawy-welcome is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with cachyos-welcome. If not, see <http://www.gnu.org/licenses/>.
along with melawy-welcome. If not, see <http://www.gnu.org/licenses/>.
-->
<interface domain="cachyos-hello">
<interface domain="melawy-welcome">
<requires lib="gtk+" version="3.20"/>
<!-- interface-css-provider-path style.css -->
<!-- interface-license-type gplv3 -->
<!-- interface-name cachyos-welcome -->
<!-- interface-copyright 2021-2023 CachyOS team -->
<!-- interface-name melawy-welcome -->
<!-- interface-copyright 2023-2024 Melawy (Valeria Fadeeva) -->
<object class="GtkImage" id="abouticon">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -71,7 +72,7 @@ along with cachyos-welcome. If not, see <http://www.gnu.org/licenses/>.
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="has-focus">True</property>
<property name="label" translatable="yes">Welcome to CachyOS!</property>
<property name="label" translatable="yes">Welcome to Melawy Linux!</property>
<attributes>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="2"/>
@ -89,7 +90,7 @@ along with cachyos-welcome. If not, see <http://www.gnu.org/licenses/>.
<property name="can-focus">False</property>
<property name="label" translatable="yes">Thank you for joining our community!
We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we enjoy building it. The links below will help you get started with your new operating system. So enjoy the experience, and don't hesitate to send us your feedback.</property>
We, the Melawy Developers, hope that you will enjoy using Melawy as much as we enjoy building it. The links below will help you get started with your new operating system. So enjoy the experience, and don't hesitate to send us your feedback.</property>
<property name="justify">fill</property>
<property name="wrap">True</property>
<property name="width-chars">1</property>
@ -284,8 +285,6 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
<property name="can-focus">False</property>
<items>
<item id="en">English</item>
<item id="de">German</item>
<item id="pl">Polish</item>
<item id="ru">Russian</item>
</items>
<signal name="changed" handler="on_languages_changed" swapped="no"/>
@ -415,15 +414,15 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
<property name="spacing">10</property>
<child>
<object class="GtkEventBox">
<property name="name">telegram</property>
<property name="name">website</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<signal name="button-press-event" handler="on_link1_clicked" swapped="no"/>
<child>
<object class="GtkImage" id="telegram">
<object class="GtkImage" id="website">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text">Telegram</property>
<property name="tooltip-text">Website</property>
</object>
</child>
</object>
@ -433,6 +432,26 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEventBox">
<property name="name">mastodon</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<signal name="button-press-event" handler="on_link1_clicked" swapped="no"/>
<child>
<object class="GtkImage" id="mastodon">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text">Mastodon</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkEventBox">
<property name="name">discord</property>
@ -447,26 +466,6 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkEventBox">
<property name="name">reddit</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<signal name="button-press-event" handler="on_link1_clicked" swapped="no"/>
<child>
<object class="GtkImage" id="reddit">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="tooltip-text">Reddit</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
@ -497,6 +496,9 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<style>
<class name="homepage"/>
</style>
@ -511,7 +513,7 @@ We, the CachyOS Developers, hope that you will enjoy using CachyOS as much as we
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="title">CachyOS Hello</property>
<property name="title">Melawy Welcome</property>
<property name="show-close-button">True</property>
<child>
<placeholder/>