You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

daemon.js 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. var syscheck = require("./js/syscheck");
  2. var modules = {
  3. display: require("./modules/display"),
  4. input: require("./modules/input"),
  5. wallpaper: require("./modules/wallpaper")
  6. };
  7. var config = {
  8. display: [
  9. {
  10. name: "*",
  11. resolution: "max",
  12. rate: "max",
  13. where: { left_of: "primary" },
  14. },
  15. ],
  16. input: [
  17. {
  18. type: "pointer",
  19. name: "*",
  20. options: [,
  21. [ "libinput Tapping Enabled", 1 ],
  22. ],
  23. },
  24. {
  25. type: "pointer",
  26. name: "Razer Razer Naga",
  27. options: [
  28. [ "libinput Accel Speed", "-0.8" ],
  29. ],
  30. },
  31. {
  32. type: "keyboard",
  33. name: "*",
  34. commands: [
  35. "xset r rate 200 60",
  36. "setxkbmap dvorak -option ctrl:swapcaps -option altwin:swap_alt_win",
  37. ],
  38. },
  39. ],
  40. wallpaper: {
  41. path: "/home/martin/background.jpg",
  42. },
  43. }
  44. function createLogger(name) {
  45. function log(pre, msg) {
  46. console.error(pre+msg.join(" "));
  47. }
  48. return {
  49. info: (...msg) => log(name+": INFO: ", msg),
  50. warn: (...msg) => log(name+": WARNING: ", msg),
  51. error: (...msg) => log(name+": ERROR: ", msg),
  52. }
  53. }
  54. function startAll() {
  55. Object.keys(modules).forEach(i => {
  56. var mod = modules[i];
  57. var conf = config[i] || {};
  58. mod.start(conf, createLogger(i), modules);
  59. });
  60. }
  61. function stopAll(cb) {
  62. var keys = Object.keys(modules);
  63. var cbs = keys.length;
  64. function next() {
  65. cbs -= 1;
  66. if (cbs === 0)
  67. cb();
  68. }
  69. keys.forEach(i => modules.stop(next));
  70. }
  71. syscheck(ok => {
  72. if (ok)
  73. startAll();
  74. else
  75. console.error("Missing binaries, exiting.");
  76. });