Extend pgp key and add a zsa keyboard udev rule

This commit is contained in:
Konstantin Nazarov 2024-05-26 21:21:45 +01:00
parent 4c800a96d7
commit c76ae0dcda
Signed by: knazarov
GPG key ID: 4CFE0A42FA409C22
5 changed files with 138 additions and 64 deletions

View file

@ -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", '' + ''

View file

@ -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)

View file

@ -35,30 +35,30 @@ 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
@ -70,18 +70,18 @@ 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
@ -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-----

View file

@ -47,4 +47,6 @@ in {
# for mira
hardware.system76.enableAll = true;
hardware.keyboard.zsa.enable = true;
}

33
zsa-udev-rules.nix Normal file
View file

@ -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";
};
}