55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| export const date = Variable("", {
 | |
|   poll: [1000, 'date "+%H %M %S %Y-%m-%d"'],
 | |
| });
 | |
| 
 | |
| class User {
 | |
|   constructor(user_string) {
 | |
|     var split_string = user_string.split(":");
 | |
|     this.username = split_string[0];
 | |
|     this.uid = split_string[2];
 | |
|     this.gid = split_string[3];
 | |
|     this.real_name = split_string[4];
 | |
|     if (this.real_name == "") {
 | |
|       this.real_name = this.username;
 | |
|     }
 | |
|     this.home_directory = split_string[5];
 | |
|   }
 | |
| }
 | |
| 
 | |
| var is_bar_extended = false;
 | |
| var current_menu = "bar";
 | |
| 
 | |
| // TODO(maybe): watch for changes to real name
 | |
| var uid = Utils.exec("sh -c 'echo $UID'");
 | |
| export const CURRENT_USER = new User(
 | |
|   Utils.exec(`grep -P '\\w+:x:${uid}' /etc/passwd`),
 | |
| );
 | |
| export const HOSTNAME = Utils.exec("hostname");
 | |
| 
 | |
| export function on_window_event(_, window_name, visible) {
 | |
|   console.log(`is ${window_name} visible => ${visible}`);
 | |
|   console.log(`current menu is ${current_menu}`);
 | |
|   console.log(`is bar extended => ${is_bar_extended}`);
 | |
|   if (window_name != "bar" && visible) {
 | |
|     var previous_menu = current_menu;
 | |
|     current_menu = window_name;
 | |
|     if (previous_menu != "bar") {
 | |
|       App.getWindow(previous_menu).visible = false;
 | |
|     }
 | |
|     App.getWindow("bar").css = "opacity: 0";
 | |
|     if (window_name == "bar_extended") {
 | |
|       is_bar_extended = true;
 | |
|     }
 | |
|   } else if (window_name != "bar" && !visible) {
 | |
|     if (
 | |
|       (window_name == "bar_extended" && current_menu == "bar_extended") ||
 | |
|       !is_bar_extended
 | |
|     ) {
 | |
|       is_bar_extended = false;
 | |
|       current_menu = "bar";
 | |
|       App.getWindow("bar").css = "opacity: 1";
 | |
|     } else if (window_name != "bar_extended" && is_bar_extended) {
 | |
|       App.getWindow("bar_extended").visible = true;
 | |
|     }
 | |
|   }
 | |
| }
 |