Skip to content

Commit 3a002e3

Browse files
committed
👷 pages: add btn to install DPI spoof
1 parent 54324a2 commit 3a002e3

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

‎i18n/en/cachyos_hello.ftl

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ lock-doesnt-exist = Pacman db lock does not exist!
1111
orphans-not-found = No orphan packages found!
1212
package-not-installed = Package '{$package_name}' has not been installed!
1313
gaming-package-installed = Gaming packages already installed!
14+
spoof-dpi-package-installed = SpoofDPI is already installed!
1415
snapper-package-installed = 'cachyos-snapper-support' package already installed!
1516
1617
# Application Browser page
@@ -50,6 +51,7 @@ dnsserver-title = Change DNS server
5051
show-kwinw-debug-title = Show kwin(Wayland) debug window
5152
install-gaming-title = Install Gaming packages
5253
install-snapper-title = Install Snapper support
54+
install-spoof-dpi-title = Install SpoofDPI
5355
5456
# Main Page (buttons)
5557
button-about-tooltip = About

‎src/pages.rs

+22
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box {
232232
let dnsserver_btn = gtk::Button::with_label(&fl!("dnsserver-title"));
233233
let install_gaming_btn = gtk::Button::with_label(&fl!("install-gaming-title"));
234234
let install_snapper_btn = gtk::Button::with_label(&fl!("install-snapper-title"));
235+
let install_spoof_dpi_btn = gtk::Button::with_label(&fl!("install-spoof-dpi-title"));
235236

236237
{
237238
removelock_btn.set_widget_name("remove-lock-title");
@@ -244,6 +245,7 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box {
244245
dnsserver_btn.set_widget_name("dnsserver-title");
245246
install_gaming_btn.set_widget_name("install-gaming-title");
246247
install_snapper_btn.set_widget_name("install-snapper-title");
248+
install_spoof_dpi_btn.set_widget_name("install-spoof-dpi-title");
247249
}
248250

249251
// Create context channel.
@@ -253,6 +255,7 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box {
253255
let dialog_tx_clone = dialog_tx.clone();
254256
let dialog_tx_gaming = dialog_tx.clone();
255257
let dialog_tx_snapper = dialog_tx.clone();
258+
let dialog_tx_spoof = dialog_tx.clone();
256259
removelock_btn.connect_clicked(move |_| {
257260
let dialog_tx_clone = dialog_tx_clone.clone();
258261
std::thread::spawn(move || {
@@ -367,6 +370,24 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box {
367370
let stack: gtk::Stack = builder.object("stack").unwrap();
368371
stack.set_visible_child_name(&format!("{name}page"));
369372
}));
373+
install_spoof_dpi_btn.connect_clicked(move |_| {
374+
let dialog_tx_spoof_dpi = dialog_tx_spoof.clone();
375+
// Spawn child process in separate thread.
376+
std::thread::spawn(move || {
377+
const alpm_package_name: &str = "spoof-dpi-bin";
378+
if !utils::is_alpm_pkg_installed(alpm_package_name) {
379+
let _ = utils::run_cmd_terminal(format!("pacman -S {alpm_package_name}"), true);
380+
} else {
381+
dialog_tx_spoof_dpi
382+
.send(DialogMessage {
383+
msg: fl!("spoof-dpi-package-installed"),
384+
msg_type: gtk::MessageType::Info,
385+
action: Action::InstallSnapper,
386+
})
387+
.expect("Couldn't send data to channel");
388+
}
389+
});
390+
});
370391

371392
// Setup receiver.
372393
let removelock_btn_clone = removelock_btn.clone();
@@ -410,6 +431,7 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box {
410431
button_box_t.pack_end(&install_snapper_btn, true, true, 2);
411432
}
412433
button_box_t.pack_end(&install_gaming_btn, true, true, 2);
434+
button_box_frth.pack_end(&install_spoof_dpi_btn, true, true, 2);
413435
button_box_frth.pack_end(&dnsserver_btn, true, true, 2);
414436
button_box_f.set_halign(gtk::Align::Fill);
415437
button_box_s.set_halign(gtk::Align::Fill);

0 commit comments

Comments
 (0)