Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. var spawn = require("child_process").spawn;
  2. var fs = require("fs");
  3. var pathlib = require("path");
  4. var debounce = require("../../js/debounce");
  5. exports.start = start;
  6. exports.stop = stop;
  7. exports.event = event;
  8. var conf;
  9. var logger;
  10. var modules;
  11. function runFeh() {
  12. var mode;
  13. logger.info("Setting background to", conf.path);
  14. switch (conf.mode) {
  15. case "scale":
  16. case undefined:
  17. mode = "--bg-scale";
  18. break;
  19. case "center":
  20. mode = "--bg-center";
  21. break;
  22. case "fill":
  23. mode = "--bg-fill";
  24. break;
  25. case "max":
  26. mode = "--bg-max";
  27. break;
  28. case "tile":
  29. mode = "--bg-tile";
  30. break;
  31. default:
  32. return logger.error("Invalid mode: "+conf.mode);
  33. }
  34. var child = spawn("feh", [ mode, conf.path ]);
  35. child.stdout.on("data", d =>
  36. logger.info("feh stdout:", d.toString().trim()));
  37. child.stderr.on("data", d =>
  38. logger.info("feh stderr:", d.toString().trim()));
  39. }
  40. function start(conf_, logger_, modules_) {
  41. conf = conf_ || conf;
  42. logger = logger_ || logger;
  43. modules = modules_ || modules;
  44. if (!conf.path)
  45. return logger.error("Expected conf.path");
  46. runFeh();
  47. var dirname = pathlib.dirname(conf.path);
  48. var basename = pathlib.basename(conf.path);
  49. var run = debounce(runFeh);
  50. fs.watch(dirname, (type, name) => {
  51. if (name !== basename)
  52. return;
  53. run();
  54. });
  55. }
  56. function stop(cb) {
  57. cb();
  58. }
  59. function event(name, ...params) {
  60. logger.info("Event", name, params.toString());
  61. switch (name) {
  62. case "reload":
  63. runFeh();
  64. break;
  65. }
  66. }