treewide: going no_std

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia1c001eb099ea8cae9bdf76642b873376a6a6964
This commit is contained in:
raf 2026-03-27 17:29:49 +03:00
commit 472dbfc7e7
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
14 changed files with 856 additions and 143 deletions

View file

@ -1,18 +1,15 @@
use std::{ffi::OsStr, fmt::Write};
use alloc::string::String;
use crate::getenv_str;
#[must_use]
#[cfg_attr(feature = "hotpath", hotpath::measure)]
pub fn get_desktop_info() -> String {
let desktop_os = std::env::var_os("XDG_CURRENT_DESKTOP");
let session_os = std::env::var_os("XDG_SESSION_TYPE");
let desktop_raw = getenv_str("XDG_CURRENT_DESKTOP").unwrap_or("Unknown");
let session_raw = getenv_str("XDG_SESSION_TYPE").unwrap_or("");
let desktop_raw = desktop_os
.as_deref()
.and_then(OsStr::to_str)
.unwrap_or("Unknown");
let desktop_str = desktop_raw.strip_prefix("none+").unwrap_or(desktop_raw);
let session_raw = session_os.as_deref().and_then(OsStr::to_str).unwrap_or("");
let backend_str = if session_raw.is_empty() {
"Unknown"
} else {
@ -27,9 +24,15 @@ pub fn get_desktop_info() -> String {
result.push_str(" (");
// Capitalize first character of backend
if let Some(first_char) = backend_str.chars().next() {
let _ = write!(result, "{}", first_char.to_ascii_uppercase());
result.push_str(&backend_str[first_char.len_utf8()..]);
if let Some(first_byte) = backend_str.as_bytes().first() {
// Convert first byte to uppercase if it's ASCII lowercase
let upper = if first_byte.is_ascii_lowercase() {
(first_byte - b'a' + b'A') as char
} else {
*first_byte as char
};
result.push(upper);
result.push_str(&backend_str[1..]);
}
result.push(')');