From 98b2f461cdbd24f536e0f9f44664ccd688d08500 Mon Sep 17 00:00:00 2001 From: Aner Zakobar Date: Mon, 5 Oct 2026 11:31:04 +0300 Subject: [PATCH] Leetcode and chess overhaul --- features/chess/default.nix | 4 ++-- features/chess/emacs/_pkg.nix | 14 ++++++++++++++ features/chess/emacs/config.org | 29 +++++++++++++++++++++++++++++ features/chess/emacs/default.nix | 3 +++ features/leetcode/default.nix | 19 +++++++++++++++++++ features/leetcode/emacs/_pkg.nix | 14 ++++++++++++++ features/leetcode/emacs/config.org | 29 +++++++++++++++++++++++++++++ features/leetcode/emacs/default.nix | 3 +++ home-manager/home.nix | 3 ++- 9 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 features/chess/emacs/_pkg.nix create mode 100644 features/chess/emacs/config.org create mode 100644 features/chess/emacs/default.nix create mode 100644 features/leetcode/default.nix create mode 100644 features/leetcode/emacs/_pkg.nix create mode 100644 features/leetcode/emacs/config.org create mode 100644 features/leetcode/emacs/default.nix diff --git a/features/chess/default.nix b/features/chess/default.nix index 813d9c0..8c82d40 100644 --- a/features/chess/default.nix +++ b/features/chess/default.nix @@ -32,8 +32,8 @@ }; config = lib.mkIf config.azos.chess.enable { - azos.emacs.pkgs = [pkgs.emacs-lichess]; - azos.emacs.enabledSuites = ["lichess"]; + azos.emacs.pkgs = [pkgs.azos-emacs-chess]; + azos.emacs.enabledSuites = ["azos-emacs-chess"]; }; }; } diff --git a/features/chess/emacs/_pkg.nix b/features/chess/emacs/_pkg.nix new file mode 100644 index 0000000..227ee7a --- /dev/null +++ b/features/chess/emacs/_pkg.nix @@ -0,0 +1,14 @@ +{ + orgTrivialBuild, + epkgs, + pkgs, +}: +orgTrivialBuild { + pname = "azos-emacs-chess"; + version = "0.1.0"; + src = ./config.org; + packageRequires = with epkgs; [ + pkgs.azos-emacs-base + pkgs.emacs-lichess + ]; +} diff --git a/features/chess/emacs/config.org b/features/chess/emacs/config.org new file mode 100644 index 0000000..c52952f --- /dev/null +++ b/features/chess/emacs/config.org @@ -0,0 +1,29 @@ +#+title: Aner's Emacs Chess Configuration +#+property: header-args :results silent + +* Base setup +** Require + +#+begin_src emacs-lisp +(require 'azos-emacs-base) +#+end_src + +* Lichess + +#+begin_src emacs-lisp +(use-package lichess + :init + (defun azos/chess/open () + "Open lichess in its dedicated \"chess\" tab." + (interactive) + (azos/tab-bar/open-singleton-tab "chess" #'lichess)) + :bind + (:map azos/global-minor-mode/open-keymap + ("k" . azos/chess/open))) +#+end_src + +* Provide + +#+begin_src emacs-lisp +(provide 'azos-emacs-chess) +#+end_src diff --git a/features/chess/emacs/default.nix b/features/chess/emacs/default.nix new file mode 100644 index 0000000..1936925 --- /dev/null +++ b/features/chess/emacs/default.nix @@ -0,0 +1,3 @@ +{...}: { + config.flake.overlayPkgs.azos-emacs-chess = pkgs: pkgs.localEmacsPkg ./_pkg.nix; +} diff --git a/features/leetcode/default.nix b/features/leetcode/default.nix new file mode 100644 index 0000000..b644fff --- /dev/null +++ b/features/leetcode/default.nix @@ -0,0 +1,19 @@ +{...}: { + config.flake.modules.homeManager.leetcode = { + lib, + config, + pkgs, + ... + }: { + options.azos.leetcode.enable = lib.mkOption { + default = false; + example = true; + type = lib.types.bool; + }; + + config = lib.mkIf config.azos.leetcode.enable { + azos.emacs.pkgs = [pkgs.azos-emacs-leetcode]; + azos.emacs.enabledSuites = ["azos-emacs-leetcode"]; + }; + }; +} diff --git a/features/leetcode/emacs/_pkg.nix b/features/leetcode/emacs/_pkg.nix new file mode 100644 index 0000000..a3c6d10 --- /dev/null +++ b/features/leetcode/emacs/_pkg.nix @@ -0,0 +1,14 @@ +{ + orgTrivialBuild, + epkgs, + pkgs, +}: +orgTrivialBuild { + pname = "azos-emacs-leetcode"; + version = "0.1.0"; + src = ./config.org; + packageRequires = with epkgs; [ + pkgs.azos-emacs-base + leetcode + ]; +} diff --git a/features/leetcode/emacs/config.org b/features/leetcode/emacs/config.org new file mode 100644 index 0000000..6633d23 --- /dev/null +++ b/features/leetcode/emacs/config.org @@ -0,0 +1,29 @@ +#+title: Aner's Emacs Leetcode Configuration +#+property: header-args :results silent + +* Base setup +** Require + +#+begin_src emacs-lisp +(require 'azos-emacs-base) +#+end_src + +* Leetcode + +#+begin_src emacs-lisp +(use-package leetcode + :init + (defun azos/leetcode/open () + "Open leetcode in its dedicated \"leetcode\" tab." + (interactive) + (azos/tab-bar/open-singleton-tab "leetcode" #'leetcode)) + :bind + (:map azos/global-minor-mode/open-keymap + ("L" . azos/leetcode/open))) +#+end_src + +* Provide + +#+begin_src emacs-lisp +(provide 'azos-emacs-leetcode) +#+end_src diff --git a/features/leetcode/emacs/default.nix b/features/leetcode/emacs/default.nix new file mode 100644 index 0000000..b8b6477 --- /dev/null +++ b/features/leetcode/emacs/default.nix @@ -0,0 +1,3 @@ +{...}: { + config.flake.overlayPkgs.azos-emacs-leetcode = pkgs: pkgs.localEmacsPkg ./_pkg.nix; +} diff --git a/home-manager/home.nix b/home-manager/home.nix index be486f4..4966298 100755 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -35,12 +35,14 @@ suiteModules.homeManager.ytdl suiteModules.homeManager.chess suiteModules.homeManager.homey-alert + suiteModules.homeManager.leetcode ]; programs.home-manager.enable = true; azos.suites.lauretta.enable = true; azos.chess.enable = true; + azos.leetcode.enable = true; azos.name = "Aner Zakobar"; azos.headphones.enable = true; @@ -57,7 +59,6 @@ mac = "E4:17:D8:29:9B:16"; name = "8bitdo"; } - ]; azos.roam-backup.enable = true; azos.homey-alert.enable = true;