gardesk/gardm / 5624ed9

Browse files

Pass session_type from greeter to daemon

Add session_type parameter to handle_login function and include
it in the StartSession IPC request. Get session type from the
session selector for both button click and Enter key handlers.
Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
5624ed9208bb15ca36ce939edce76eac5d1a8541
Parents
e7cad66
Tree
1d5cfb2

1 changed file

StatusFile+-
M gardm-greeter/src/main.rs 15 3
gardm-greeter/src/main.rsmodified
@@ -299,17 +299,22 @@ async fn main() -> Result<()> {
299299
                     }
300300
                     // Check login button click
301301
                     else if form.button_contains(click_x, click_y) && form.can_submit() {
302
-                        // Get selected session exec command
302
+                        // Get selected session exec command and type
303303
                         let session_exec = session_selector
304304
                             .selected_exec()
305305
                             .unwrap_or("gar-session.sh")
306306
                             .to_string();
307
+                        let session_type = session_selector
308
+                            .selected_type()
309
+                            .unwrap_or("x11")
310
+                            .to_string();
307311
 
308312
                         // Attempt login
309313
                         if let Some(fade) = handle_login(
310314
                             &mut client,
311315
                             &mut form,
312316
                             &session_exec,
317
+                            &session_type,
313318
                             config.effective_fade_duration(),
314319
                         )
315320
                         .await?
@@ -352,17 +357,22 @@ async fn main() -> Result<()> {
352357
 
353358
                         keycodes::RETURN => {
354359
                             if form.focused_field == FocusedField::Password && form.can_submit() {
355
-                                // Get selected session exec command
360
+                                // Get selected session exec command and type
356361
                                 let session_exec = session_selector
357362
                                     .selected_exec()
358363
                                     .unwrap_or("gar-session.sh")
359364
                                     .to_string();
365
+                                let session_type = session_selector
366
+                                    .selected_type()
367
+                                    .unwrap_or("x11")
368
+                                    .to_string();
360369
 
361370
                                 // Attempt login
362371
                                 if let Some(fade) = handle_login(
363372
                                     &mut client,
364373
                                     &mut form,
365374
                                     &session_exec,
375
+                                    &session_type,
366376
                                     config.effective_fade_duration(),
367377
                                 )
368378
                                 .await?
@@ -475,6 +485,7 @@ async fn handle_login(
475485
     client: &mut Client,
476486
     form: &mut LoginForm,
477487
     session_exec: &str,
488
+    session_type: &str,
478489
     fade_duration_ms: u64,
479490
 ) -> Result<Option<FadeOutTransition>> {
480491
     form.is_loading = true;
@@ -516,11 +527,12 @@ async fn handle_login(
516527
 
517528
             // Start session with selected session command
518529
             let session_cmd = vec![session_exec.to_string()];
519
-            tracing::info!(?session_cmd, "Starting session");
530
+            tracing::info!(?session_cmd, %session_type, "Starting session");
520531
 
521532
             let response = client
522533
                 .request(&Request::StartSession {
523534
                     cmd: session_cmd,
535
+                    session_type: session_type.to_string(),
524536
                     env: vec![],
525537
                 })
526538
                 .await?;