From c76ae0dcdae21d8ba0c69eed0749c07252d0e411 Mon Sep 17 00:00:00 2001 From: Konstantin Nazarov Date: Sun, 26 May 2024 21:21:45 +0100 Subject: [PATCH] Extend pgp key and add a zsa keyboard udev rule --- configuration.nix | 32 +++++---- emacs.el | 37 ++++++++++ gpg_public_key.asc | 98 +++++++++++++-------------- nodes/mira/hardware-configuration.nix | 2 + zsa-udev-rules.nix | 33 +++++++++ 5 files changed, 138 insertions(+), 64 deletions(-) create mode 100644 zsa-udev-rules.nix diff --git a/configuration.nix b/configuration.nix index bf68e90..219de0d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -322,20 +322,21 @@ in { services.keyd = { enable = true; keyboards = { - default = { - ids = [ "*" ]; - settings = { - main = { - capslock = "overload(control, esc)"; - leftalt = "layer(meta_mac)"; - leftmeta = "layer(alt)"; - }; - "meta_mac:M" = { - c = "C-insert"; - v = "S-insert"; - }; - }; - }; + + #default = { + #ids = [ "*" ]; + #settings = { + #main = { + #capslock = "overload(control, esc)"; + #leftalt = "layer(meta_mac)"; + #leftmeta = "layer(alt)"; + #}; + #"meta_mac:M" = { + #c = "C-insert"; + #v = "S-insert"; + #}; + #}; + #}; }; }; @@ -680,7 +681,8 @@ in { defaultNetwork.settings = { dns_enabled = true; }; }; }; - services.udev.packages = [ pkgs.android-udev-rules ]; + services.udev.packages = [ pkgs.android-udev-rules + (pkgs.callPackage ./zsa-udev-rules.nix {})]; #udevadm info --query=all --name=/dev/sda1 | grep ID_SERIAL services.udev.extraRules = ''ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", '' + '' diff --git a/emacs.el b/emacs.el index d425282..8bd4460 100755 --- a/emacs.el +++ b/emacs.el @@ -74,6 +74,18 @@ (savehist-mode +1) ) +;; -------- Clipboard --------- + +;; This plugin enabling yanking directly into the OS clipboard when +;; editing from terminal (with help of OSC-52 escape sequence) + +(use-package clipetty + :ensure t + :defer 1 + :diminish clipetty-mode + :config + (global-clipetty-mode) + ) ;; -------- Recent files -------- @@ -106,6 +118,12 @@ (setq inhibit-startup-screen t) (setq inhibit-splash-screen t) +;; Emacs is very persistent about showing you a welcome message in +;; the echo area. The only way to disable it is to pass your user +;; name in this magic variable +(put 'inhibit-startup-echo-area-message 'saved-value t) +(setq inhibit-startup-echo-area-message (user-login-name)) + (if (not (eq window-system 'mac)) (menu-bar-mode -1)) @@ -158,6 +176,8 @@ ;; Blinking cursor is inconvenient (blink-cursor-mode -1) +(unless (display-graphic-p) + (setq visible-cursor nil)) ;; Disable bell ring when moving outside of available area @@ -251,6 +271,7 @@ Intended for `after-make-frame-functions'." (use-package which-key + :ensure t :defer 2 :config (which-key-mode) @@ -375,6 +396,16 @@ Intended for `after-make-frame-functions'." :defer t :init (evil-terminal-cursor-changer-activate)) +(use-package evil-snipe + :ensure t + :defer t + :after evil + :config + (setq evil-snipe-scope 'buffer) + (evil-snipe-mode +1) + (evil-snipe-override-mode 1) + ) + ;; -------- Tools and environment -------- ;; By default, Emacs doesn't add system path to its search places @@ -896,6 +927,12 @@ Intended for `after-make-frame-functions'." :diminish flycheck-mode ) +(use-package flycheck-eglot + :ensure t + :after (flycheck eglot) + :config + (global-flycheck-eglot-mode 1)) + ;; Not usable for every single mode, so need to be selective ;;(add-hook 'prog-mode-hook #'flycheck-mode) diff --git a/gpg_public_key.asc b/gpg_public_key.asc index 324058e..91047de 100644 --- a/gpg_public_key.asc +++ b/gpg_public_key.asc @@ -35,30 +35,30 @@ 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 @@ -70,18 +70,18 @@ NNx3+MYvLiFiE4nnswcwkE7jwU7uX8dPs+VQDfT7s/DARJyefRB6QIrxLJHWjnsy 4hq6M2tu8hS5MtcVUBG/mNNzTkyYr7JY3IYw3y6CEgvQmM+eroG2CnuUCIJj9gSu 7ei9ZGDXrgWfDRqaXPDkj9fo1RgsPPsV67UNNC0OF+kuDsd0OUdvv/QsE1qakILJ nipnIOdALI2wlPfzvY/+M/gc+oszimoOqCdtTslwgBFPk+KCzu4LABEBAAGJAjwE -GAEKACYWIQTdtEI5mVBSNs9YX5sFYAIMnFd8GwUCZGoF9AIbDAUJAeEzgAAKCRAF -YAIMnFd8G9tUD/wN0gXEf2NB3m5OVcxw6NAc420r+Q3n/Em+VbULhiMFPSFybzL9 -sq52QWJ8t44J/B3dVT0HjV5ClF+2j2h5KqigYJW2qhnMtVphr3UocfUyZTmtQSa4 -hJ95aWTVe6Nq0X0PEnorC1fNVrTv+QN11OplG6Bqh/9og3JYBdAWe78TPVJHwPta -5fvl4yRq/iJAP8NwigDTySn7nEyoCHj/xaru9EyDvQVLJZF3PzvwhgNbu0ElRduZ -SqpAhEFo7B+UlOM/jrbz3cYWYVqo3leDh4XdRIX6J3zqfJkby7AfRnZcIk5+LIjM -nbvcoKdDaELX6gGMiblDRJnDcgw7Bt+Mkex3XaIiYoD1Y36TyV+EOTrpOHz9+jij -Oo7gtm9Zm5v6QakB+PVFT1dSMc1DJAOlSrqui60tLEv99/xcZ4KZu3cW/wzCGBf0 -bh8GWfLmkHPZNtE30E6TmUfrAus9OSst7kQr2HCPWhiuOgteh33w2UGHPmLYUx1x -9C8KsfR13fwFL7qrqA2EaKMj5DN6+18EM0oFb39KSD3frvO1DZSc6hIt2VVCG14j -V724J88cjJJ8N+7EWz6zujntmY0ybxabzl28KC53ga3A+e1/+HcNxv4u5DQRCHkV -iRw+Ye6ol35ju8iKHqA8BPRa4HT/qNGf4fXEsXeqfjWLJwQcmFFuyUdf3rkCDQRk +GAEKACYCGwwWIQTdtEI5mVBSNs9YX5sFYAIMnFd8GwUCZlOXIAUJBav4LAAKCRAF +YAIMnFd8G5u9EADKEZNnGypW3IxuNlQFiuEr7rW/cF59ITSnjedjVo+fDzIzb/E+ +JmvxAZgUuB3oJTqGDl4jLqzjJbo6fVoTBvHsGYGOOL3RaT42grb3DZHfrqDaiGdn +XN8wfI2tW85BBAmrxPa5HEO3U5cA9qtCW9/6IEQY8HGF6OtCk4pGPXMxTWx4cB/5 +zChZswJpj8ZNMh2GH4f6gjaeGBfIhkcY0c3Li6rn9jkKfCE63ts19RljKVZW7a0I +Or6VHFwUSN7T+Z0aBEBfwr/ncEiUTjbYImUlBRqw1FP4Br3NjpQtJmiVYUJJkWuM +Eq466Mzlv8ZOFVBIVm8ayxfYM3WtbvoYiSKrNvNh0AttOENIOmPJqK8SUdeh8L/c +NSsQMCZi4acjONQI+Q/JiIBAlnd+Ka7+71qezXA7eZX4ZWH3IeHL9CqmSKbjWDyO +HtvrtGSDQgNPeIGLQ8yqIIxmAxQ6Jj134E4OjA/NIFy3GgOB/R/oBUQx2fzu13An +X1bH2onn1KkK6ynfUXgcPOfG7APlghszQV9iqF3pwxRR9o3D7t9WDUhc10dOUB1Q +j2c2GtBdQ4vYxxcJIwpBdJ9hTZhJ7TJtfO4w0I/s/1pnOGKyVXupnvq1+rL3dJc9 +NqGrzLWy3oYIZJPBh3esaJW0sIfiAIwL8xZH4+DQGPyEGp+sF1xucEWjNbkCDQRk agZZARAAr7G+8P0WRvZh74noIEoDP3dGg0B7LuwKE2VQfItIzePMLJv2mihl8QaJ KPDjBLsLxvtuzv1tY1mcLzdXtxEn+ZkY4nU3s39fLI5ir9zbqdeyCiUdHq9dzGjz I3lSitHfuh+5x1oL/Ro06eDx3weDBC0AJ5sbsE12zTBpF3IS26Ok2UIOSfSdhvGI @@ -93,17 +93,17 @@ OwlGKyqgs/Ket5hBy2ZKCxRPDlKbFk4wsQaoGRk3HDH5M3l2ESDiezadujllmXwO b88cWtij9rK91BKHtnST0svqVPLsNCAVQOSN0v+AV6rr2LXLxkMoKNywMhU2hCTZ Mkn/Ext6HTtXz5e0UcpUzLCbd4QV/S1sRgRvvGyF01mvmV4397SeqExN/fQSHTgk VcjknxNwhsog4fBFDJCMGeOL+w/+phLZVgbq9LIxCDMQas34SQEAEQEAAYkCPAQY -AQoAJhYhBN20QjmZUFI2z1hfmwVgAgycV3wbBQJkagZZAhsgBQkB4TOAAAoJEAVg -AgycV3wbJdAQAIZgZH7Zuhs1Icv8J/Oufs6Gv9yvGA39eNW+CMA8lejV9l0sSryI -X+jqa3KCtyaCvIppJq6SyfDQjM6CsVxMsXPdCosIY11xDbacSLoZJZJlXjTCxPKd -KQdMgu6gp8D1p3/J0cOE0P2L4khUq5y5/W2h6R8D13qPsjgeHixMwof4UNAqzcWA -gOIkUR9nguvpXsLbGD2EiZ/zDnv9LhTYWt171/w4AiithZk7FyO1fBcd+1RaVmZx -odFZi/0U2rm8aKcBLzL7PD0bPAaPxgVxaaOCtBisZ+l9Q5etDGTz1dLslF8P/ISD -vMRgMmg2pNewR3DSNUa3GGUWgxZYd4ndarwZGEec+/zSMLqNh2wd3fw5Hi0SRR4/ -zUbeXPW1DPvMDZHxfVoS5hlwmo+BdZ1M5u5thgMsXI9nyuF7jIGrl4a+aDECNa9f -Vzutbm9DGPZ+9j21nbljGPOV7q+hDmYGD+KC1+nOzXiB9SYad+gF2yPo8xZNyRWL -CM9zT0dxamzgW8W0I3AxXKoTP1p6UstmuAdIczu9kd4N7T/dgA6oMDchNqEBLZ+G -2XvMe6dH8kYKZBLYi59hXUb5vX1YWPJRlNjHASsBSWl8yVRwILPawNnoOUS5ehxA -YXNBqvlCHex34MNWDC9nXPHYwhJ/7RT4/oSkDdITh22uBfw7W2ntZkaF -=Wr86 +AQoAJgIbIBYhBN20QjmZUFI2z1hfmwVgAgycV3wbBQJmU5cgBQkFq/fHAAoJEAVg +AgycV3wbfbsQAJvwn1/tyVVmho3Be74Z3rlkRj5AVm5Te5vfcWI8/E0d4SPrtgaZ +hwi5Xlkb2dgasRbTIYjE/6bVhFwk45BucDi7202/tAzf0bfcpDjkuspXRnc8r+4p +qqW29lTeXwivm62+/hnvOwy+wxq4pQfqvUceJL0+Epn+C36ZbzZUuJPFKRgo4YAy +YlJy4AdydoUiUbQ+vn1qw7Ljohe1BHVqf10LCZGx17+Xl4oGs9mJjWmJtwAXntIn +Pkwj8tMvTHXBbkWp12hc5+D7SUhQ++iLQKAerT1hTw5mgBRWY/anvV93pSAbDK8T +1puKswV3nqE/nZp0jc3tOd5jS5ZC+icJrzaWbuZaTy+KMp4ORHYJSXRTieHlFXs7 +7lwEeNC2HygFvEzqg9wxREda8PjAHos11Ab5wLgrsRGbGUdj6lO5IzLm8EEMJAjb +hK3x5j+xBTB7PVo9htI194d9cz7NT3KW/toGReC4AMrFhcl/rtyqdcfIMpctme08 ++o6AB8BLOnTmyiTpnAWWad2LuUYyytRR76YkujPCveWZ84ypyEfLr4Yd04SPCKRF +fmbzlZYjjRn88gtjiBAll4AEbBotEjwjjyStKsvk7JmRsfQXp5ccXG+ouE/uQJ3h +b3MtZQtY/syg/0WhbYI2VTE/hhS9307u6Eei/N6OiEx3jbkOuePPn2c1 +=6vCI -----END PGP PUBLIC KEY BLOCK----- diff --git a/nodes/mira/hardware-configuration.nix b/nodes/mira/hardware-configuration.nix index 8e11ef7..ba674a6 100644 --- a/nodes/mira/hardware-configuration.nix +++ b/nodes/mira/hardware-configuration.nix @@ -47,4 +47,6 @@ in { # for mira hardware.system76.enableAll = true; + hardware.keyboard.zsa.enable = true; + } diff --git a/zsa-udev-rules.nix b/zsa-udev-rules.nix new file mode 100644 index 0000000..9435b3e --- /dev/null +++ b/zsa-udev-rules.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "zsa-udev-rules"; + version = "unstable-2023-11-30"; + + src = fetchFromGitHub { + owner = "zsa"; + repo = "wally"; + rev = "a6648f6b543b703e3902faf5c08e997e0d58c909"; + hash = "sha256-j9n3VoX+UngX12DF28rtNh+oy80Th1BINPQqk053lvE="; + }; + + # Only copies udevs rules + dontConfigure = true; + dontBuild = true; + dontFixup = true; + + installPhase = '' + mkdir -p $out/lib/udev/rules.d + cp dist/linux64/50-oryx.rules $out/lib/udev/rules.d/ + cp dist/linux64/50-oryx-legacy.rules $out/lib/udev/rules.d/ + cp dist/linux64/50-wally.rules $out/lib/udev/rules.d/ + ''; + + meta = with lib; { + description = "udev rules for ZSA devices"; + license = licenses.mit; + maintainers = with maintainers; [ davidak ]; + platforms = platforms.linux; + homepage = "https://github.com/zsa/wally/wiki/Linux-install#2-create-a-udev-rule-file"; + }; +}