From df3f6b75f16f3cf7960a6bb3fded975e892aea53 Mon Sep 17 00:00:00 2001
From: Nathaniel van Diepen <nathaniel.vandiepen@gmail.com>
Date: Sun, 14 Jan 2024 04:21:34 -0700
Subject: [PATCH] Add keyd config and remove uneeded shortcuts

---
 applications/system-service/controller.h      |  3 --
 applications/system-service/main.qml          |  8 -----
 .../system-service/system-service.pro         |  4 +++
 assets/opt/etc/keyd/oxide.conf                | 36 +++++++++++++++++++
 4 files changed, 40 insertions(+), 11 deletions(-)
 create mode 100644 assets/opt/etc/keyd/oxide.conf

diff --git a/applications/system-service/controller.h b/applications/system-service/controller.h
index f5e71cd53..4e231bdfa 100644
--- a/applications/system-service/controller.h
+++ b/applications/system-service/controller.h
@@ -4,7 +4,6 @@
 
 #include "appsapi.h"
 #include "screenapi.h"
-#include "systemapi.h"
 
 class Controller : public QObject{
     Q_OBJECT
@@ -14,8 +13,6 @@ class Controller : public QObject{
     Q_INVOKABLE void taskSwitcher(){ appsAPI->openTaskSwitcher(); }
     Q_INVOKABLE void processManager(){ appsAPI->openTaskManager(); }
     Q_INVOKABLE void back(){ appsAPI->previousApplication(); }
-    Q_INVOKABLE void suspend(){ systemAPI->suspend(); }
-    Q_INVOKABLE void powerOff(){ systemAPI->powerOff(); }
     Q_INVOKABLE void lock(){ appsAPI->openLockScreen(); }
     Q_INVOKABLE void terminal(){ appsAPI->openTerminal(); }
 };
diff --git a/applications/system-service/main.qml b/applications/system-service/main.qml
index 150051e0e..4fca6347a 100644
--- a/applications/system-service/main.qml
+++ b/applications/system-service/main.qml
@@ -24,14 +24,6 @@ Window{
         sequences: ["Meta+Backspace", "End+Backspace"]
         onActivated: controller.back()
     }
-    Shortcut{
-        sequences: [Qt.Key_Suspend, "Ctrl+Shift+Alt+S"]
-        onActivated: controller.suspend()
-    }
-    Shortcut{
-        sequences: [Qt.Key_PowerDown, "Ctrl+Shift+Alt+O"]
-        onActivated: controller.powerOff()
-    }
     Shortcut{
         sequences: [Qt.Key_LogOff, Qt.Key_ScreenSaver, "End+L", "Meta+L"]
         onActivated: controller.lock()
diff --git a/applications/system-service/system-service.pro b/applications/system-service/system-service.pro
index 051ef0d89..6dfa3fae9 100644
--- a/applications/system-service/system-service.pro
+++ b/applications/system-service/system-service.pro
@@ -40,6 +40,10 @@ service.files = ../../assets/etc/systemd/system/tarnish.service
 service.path = /etc/systemd/system/
 INSTALLS += service
 
+keyd.files = ../../assets/opt/etc/keyd/oxide.conf
+keyd.path = /opt/etc/keyd/
+INSTALLS += keyd
+
 applications.files = ../../assets/opt/usr/share/applications/xochitl.oxide
 applications.path = /opt/usr/share/applications/
 INSTALLS += applications
diff --git a/assets/opt/etc/keyd/oxide.conf b/assets/opt/etc/keyd/oxide.conf
new file mode 100644
index 000000000..44953eff7
--- /dev/null
+++ b/assets/opt/etc/keyd/oxide.conf
@@ -0,0 +1,36 @@
+[ids]
+2edd:0001 # type folio
+
+[main]
+end = layer(meta)
+= = -
+\ = ~
+
+[shift:S]
+= = _
+\ = `
+
+[meta:G]
+1 = esc
+= = =
+\ = \
+0 = +
+, = [
+. = ]
+right = end
+left = home
+up = pageup
+down = pagedown
+backspace = macro(end+backspace)
+l = macro(end+l)
+
+[shift+meta]
+\ = |
+, = {
+. = }
+s = print
+
+[ctrl:C]
+
+[ctrl+shift]
+1 = computer