This commit is contained in:
stupidcomputer 2024-06-15 21:58:37 -05:00
commit 6cfbe5e003
26 changed files with 223 additions and 155 deletions

19
.config/khard/khard.conf Normal file
View File

@ -0,0 +1,19 @@
[addressbooks]
[[main]]
path = ~/vdir/people/main/20cda0dd-5922-4905-8956-859c989a6519
[general]
default_action = list
editor = nvim
merge_editor = nvim, -d
[contact table]
display = first_name
group_by_addressbook = no
reverse = no
show_nicknames = no
show_uids = yes
show_kinds = no
sort = last_name
localize_dates = yes
preferred_phone_number_type = pref, cell, home
preferred_email_address_type = pref, work, home

View File

@ -92,6 +92,7 @@ function setTabbing(lang, width)
end
setTabbing("python", 4)
setTabbing("htmldjango", 4)
setTabbing("javascript", 4)
setTabbing("css", 4)
setTabbing("html", 4)

View File

@ -1,3 +1,3 @@
# start the wm
sxhkd &
mode sxhkdrc
bspwm

View File

@ -50,5 +50,9 @@ super + {_,shift + } {1-9,0}
super + {t,f,s}
bspc node -t {tiled,floating,fullscreen}
# x230t specific -- activate the tablet menu
XF86RotateWindows
tabletmenu
shift + Insert
special_ins

View File

@ -33,7 +33,9 @@ things to do
license
-------
all materials, except for:
a) `./home/wallpapers/pape.jpg`, which is of unknown licenses, and
b) ./builds/st, which is licensed under MIT, persuant to ./builds/st/LICENSE,
is licensed under the GPLv3.
all materials in this repository, except for:
* `./home/wallpapers/pape.jpg`, which is of unknown license, and
* `./builds/st`, which is licensed under MIT, persuant to `./builds/st/LICENSE`,
is (c) rndusr, randomuser, stupidcomputer, etc 2024 and licensed under the GPLv3 (see `./LICENSE`)

View File

@ -10,7 +10,7 @@
../../modules/common.nix
../../modules/x11.nix
../../modules/discord.nix
../../modules/gaming.nix
# ../../modules/gaming.nix
../../modules/rbw.nix
];

View File

@ -193,14 +193,6 @@
forceSSL = true;
enableACME = true;
root = "/var/www/beepboop.systems";
locations."/" = {
extraConfig = ''
if ($request_uri ~ ^/(.*)\.html(\?|$)) {
return 302 /$1;
}
try_files $uri $uri.html $uri/ =404;
'';
};
};
services.nginx.virtualHosts."git.beepboop.systems" = {

View File

@ -7,6 +7,7 @@
, fontconfig
, freetype
, ncurses
, lightMode ? false
, extraLibs ? [ ]
}:
@ -19,7 +20,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config fontconfig freetype ncurses ];
buildInputs = [ libX11 libXft ] ++ extraLibs;
buildPhase = ''
buildPhase = lib.optionalString (lightMode == true) "cp lightmode.h colors.h;" +
''
make
'';

20
builds/st/lightmode.h Normal file
View File

@ -0,0 +1,20 @@
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* solarized light */
"#eee8d5", /* 0: black */
"#dc322f", /* 1: red */
"#859900", /* 2: green */
"#b58900", /* 3: yellow */
"#268bd2", /* 4: blue */
"#d33682", /* 5: magenta */
"#2aa198", /* 6: cyan */
"#073642", /* 7: white */
"#fdf6e3", /* 8: brblack */
"#cb4b16", /* 9: brred */
"#93a1a1", /* 10: brgreen */
"#839496", /* 11: bryellow */
"#657b83", /* 12: brblue */
"#6c71c4", /* 13: brmagenta*/
"#586e75", /* 14: brcyan */
"#002b36", /* 15: brwhite */
};

View File

@ -7,7 +7,7 @@ setup(
author_email = 'ryan@beepboop.systems',
url = 'https://git.beepboop.systems/stupidcomputer/dot_testing',
description = 'simple statusbar content program',
license = 'MIT',
license = 'GPLv3',
entry_points = {
'console_scripts': [
'statusbar = statusbar.statusbar:main'

View File

@ -38,6 +38,32 @@ def generate_desktop_string(monitor_array):
return ' '.join(output)
def filemodfactory(filename: str, modname: str):
def filemod(queue, _):
orig = 0
while True:
new = os.path.getmtime(filename)
if(new > orig):
with open(filename, 'r') as f:
queue.put({
"module": modname,
"data": f.read().rstrip()
})
orig = new
time.sleep(0.1)
return filemod
def new_mail(queue, _):
while True:
dir_output = os.listdir("/home/usr/Mail/main/INBOX/new")
dir_output = len(dir_output)
queue.put({
"module": "newmail",
"data": str(dir_output)
})
time.sleep(20)
def bspwm(queue, monitor):
client = socket.socket(
socket.AF_UNIX,
@ -90,12 +116,13 @@ def filecheckerfactory(filename: str, modname: str, timeout=60):
battery = filecheckerfactory("/sys/class/power_supply/BAT0/capacity", "bat")
batterystatus = filecheckerfactory("/sys/class/power_supply/BAT0/status", "batstat")
sxhkdmode = filemodfactory("/home/usr/.cache/statusbar/sxhkd_mode", "sxhkdmode")
def render(modules) -> str:
columns, _ = os.get_terminal_size(0)
left = "{} | {}".format(modules["clock"], modules["bspwm"])
right = "{}({})".format(modules["bat"], modules["batstat"])
left = "{} | {}({})".format(modules["clock"], modules["bspwm"], modules["sxhkdmode"])
right = "{} {}({})".format(modules["newmail"], modules["bat"], modules["batstat"])
padding = " " * (columns - len(left) - len(right) - 0)
output = left + padding + right
@ -117,10 +144,12 @@ def render(modules) -> str:
stdout.flush()
def main():
try:
os.mkdir("/home/usr/.cache/statusbar")
except FileExistsError:
pass
if argv[1] == "start_statusbars":
# signal.signal(signal.SIGINT, signal.SIG_IGN)
# os.system("pkill statusbar")
# signal.signal(signal.SIGINT, signal.SIG_DFL)
# get the monitors
xrandr = subprocess.Popen(['xrandr'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = list(xrandr.stdout)
@ -146,7 +175,7 @@ def main():
))
return
queue = Queue()
modules = [bspwm, clock, battery, batterystatus]
modules = [bspwm, clock, battery, batterystatus, sxhkdmode, new_mail]
[Process(target=module, args=(queue, argv[1])).start() for module in modules]
module_outputs = defaultdict(lambda: "")

View File

@ -13,7 +13,6 @@
, figlet
, curl
, ytfzf
, herbe
, xrandr
, xrectsel
, ffcast
@ -21,7 +20,6 @@
, xkbset
, rbw
, xclip
, libsForQt5
}:
stdenv.mkDerivation rec {
@ -31,7 +29,7 @@ stdenv.mkDerivation rec {
src = ./utils;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash feh xrandr jq curl fzy ytfzf sshuttle svkbd scrcpy xkbset rbw xclip ffcast libsForQt5.kolourpaint ];
buildInputs = [ bash feh xrandr jq curl fzy ytfzf sshuttle svkbd scrcpy rbw xclip ffcast xkbset ];
installPhase = ''
mkdir -p $out/bin
@ -39,7 +37,7 @@ stdenv.mkDerivation rec {
for i in $(ls $src/sh); do
cp $src/sh/$i $out/bin
ln -sf $out/bin/tmenu_run $out/bin/regenerate
wrapProgram $out/bin/$i --prefix PATH : ${lib.makeBinPath [ sxhkd bash feh xrandr jq figlet curl fzy ytfzf herbe sshuttle svkbd scrcpy libsForQt5.kolourpaint xrectsel ffcast ]}
wrapProgram $out/bin/$i --prefix PATH : ${lib.makeBinPath [ sxhkd bash feh xrandr jq figlet curl fzy xkbset ytfzf sshuttle svkbd scrcpy xrectsel ffcast ]}
done
'';
}

View File

@ -3,6 +3,8 @@
set -x
[ "$1" = "-h" ] && echo "use DISP_ACCESS_IP to control sshfs conn ip" && exit 0
set_walls() {
for i in $(xrandr | grep ' connected' | cut -d' ' -f1); do
xwallpaper --output $i --zoom ~/.local/share/pape.jpg
@ -56,49 +58,55 @@ case "$(hostname)" in
case "$1" in
"invert")
xrandr \
--output HDMI-0 --mode 1920x1080 --pos 3840x0 --rotate right --rate 60 \
--output DP-0 --off \
--output DP-1-2 --primary --mode 1920x1080 --pos 0x352 --rotate normal --rate 180 \
--output DP-1-1 --mode 1920x1080 --pos 1920x352 --rotate normal --rate 180
bspc monitor DP-1-2 -d 1 3 5 7
bspc monitor DP-1-1 -d 2 4 6 8
bspc monitor HDMI-0 -d 9
;;
*)
xrandr \
--output HDMI-0 --mode 1920x1080 --pos 3840x0 --rotate right --rate 60 \
--output DP-0 --off \
--output DP-1-1 --primary --mode 1920x1080 --pos 0x352 --rotate normal --rate 180 \
--output DP-1-2 --mode 1920x1080 --pos 1920x352 --rotate normal --rate 180
bspc monitor DP-1-1 -d 1 3 5 7
bspc monitor DP-1-2 -d 2 4 6 8
bspc monitor HDMI-0 -d 9
;;
"solo")
bspc monitor DP-0 -d 1 2 3 4 5 6 7 8 9
;;
*)
xrandr \
--output DP-0 --off \
--output DP-1-2 --primary --mode 1920x1080 --pos 0x352 --rotate normal --rate 180 \
--output DP-1-1 --mode 1920x1080 --pos 1920x352 --rotate normal --rate 180
bspc monitor DP-1-2 -d 1 3 5 7
bspc monitor DP-1-1 -d 2 4 6 8
;;
esac
xinput set-prop 'INSTANT USB GAMING MOUSE ' 'libinput Accel Speed' -1
# setup synchronization
# check if we have another IP defined
if [ ! -z "$DISP_ACCESS_IP" ]; then
target="$DISP_ACCESS_IP"
else
target=x230t
fi
pkill sshfs
rm $HOME/doc # this is safe, as doc is a dir if it mattered,
# but it's just a link, so it's a regular file.
# in conclusion, good either way
mkdir -p $HOME/.cache/mount_point
sshfs usr@x230t:/home/usr/doc $HOME/.cache/mount_point
sshfs "usr@$target:/home/usr/doc" $HOME/.cache/mount_point -o ConnectTimeout=1
ln -sf $HOME/.cache/mount_point $HOME/doc
rm $HOME/.thunderbird # see previous comment
mkdir -p $HOME/.cache/mount_point3
sshfs usr@x230t:/home/usr/.thunderbird $HOME/.cache/mount_point3
sshfs "usr@$target:/home/usr/.thunderbird" $HOME/.cache/mount_point3 -o ConnectTimeout=1
ln -sf $HOME/.cache/mount_point3 $HOME/.thunderbird
rm $HOME/Mail
mkdir -p $HOME/.cache/mount_point4
sshfs usr@x230t:/home/usr/Mail $HOME/.cache/mount_point4
sshfs "usr@$target:/home/usr/Mail" $HOME/.cache/mount_point4 -o ConnectTimeout=1
ln -sf $HOME/.cache/mount_point4 $HOME/Mail
rm $HOME/vdir
mkdir -p $HOME/.cache/mount_point5
sshfs usr@x230t:/home/usr/vdir $HOME/.cache/mount_point5
sshfs "usr@$target:/home/usr/vdir" $HOME/.cache/mount_point5 -o ConnectTimeout=1
ln -sf $HOME/.cache/mount_point5 $HOME/vdir
;;

View File

@ -4,6 +4,7 @@ if [ -n "$1" ]; then
pkill sxhkd
sxhkd -c ~/.config/sxhkd/$1 & disown
[ -f "~/.config/sxhkd/$1.sh" ] && ~/.config/sxhkd/$1.sh
echo "$1" > ~/.cache/statusbar/sxhkd_mode
exit
fi

14
builds/utils/sh/special_ins Executable file
View File

@ -0,0 +1,14 @@
# insert special characters universally in xorg
(
tmenu <<DONE
í i-acute
Í I-acute
ó o-acute
Ó O-acute
á a-acute
Á a-acute
DONE
) | awk -F' ' '{print $1}' \
| tr -d '\n' \
| xclip -in -selection clipboard

View File

@ -41,11 +41,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1714043889,
"narHash": "sha256-f7aben2pbfL/CzphiAAwwe5CrmSYRZv3UF7zaGkD+Pc=",
"lastModified": 1718165009,
"narHash": "sha256-/N2ZesXMM5Fw9mpQhSCCieGxM/9jysbQQBLYHiSQppI=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "fee36e584de8c0034f311b76b5da1b81dad0b17b",
"rev": "7e3ce9990c382947c33f0def2a1c33c420d8c710",
"type": "gitlab"
},
"original": {
@ -58,11 +58,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1668681692,
"narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "009399224d5e398d03b22badca40a37ac85412a1",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
@ -93,16 +93,16 @@
]
},
"locked": {
"lastModified": 1714043624,
"narHash": "sha256-Xn2r0Jv95TswvPlvamCC46wwNo8ALjRCMBJbGykdhcM=",
"lastModified": 1717527182,
"narHash": "sha256-vWSkg6AMok1UUQiSYVdGMOXKD2cDFnajITiSi0Zjd1A=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "86853e31dc1b62c6eeed11c667e8cdd0285d4411",
"rev": "845a5c4c073f74105022533907703441e0464bc3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"ref": "release-24.05",
"repo": "home-manager",
"type": "github"
}
@ -114,11 +114,11 @@
]
},
"locked": {
"lastModified": 1713166947,
"narHash": "sha256-Vk+eyK7EcvoXf6IxEuaKVmme2ui6W/mketcrZxfFmGg=",
"lastModified": 1716729631,
"narHash": "sha256-IerjU5GUeKc0eW9FPOdlPveSGJ2ZrO+lIfuHPUmUF2I=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6779167a739240778d34024b89ecf6404fb28f9e",
"rev": "fc4492181833eaaa7a26a8081c0615d95792d825",
"type": "github"
},
"original": {
@ -199,47 +199,32 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1713995372,
"narHash": "sha256-fFE3M0vCoiSwCX02z8VF58jXFRj9enYUSTqjyHAjrds=",
"lastModified": 1718086528,
"narHash": "sha256-hoB7B7oPgypePz16cKWawPfhVvMSXj4G/qLsfFuhFjw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dd37924974b9202f8226ed5d74a252a9785aedf8",
"rev": "47b604b07d1e8146d5398b42d3306fdebd343986",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-23_05": {
"nixpkgs-24_05": {
"locked": {
"lastModified": 1704290814,
"narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=",
"lastModified": 1717144377,
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421",
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"type": "indirect"
}
},
"nixpkgs-23_11": {
"locked": {
"lastModified": 1706098335,
"narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a77ab169a83a4175169d78684ddd2e54486ac651",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"type": "indirect"
}
},
@ -276,11 +261,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1705856552,
"narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
"lastModified": 1717602782,
"narHash": "sha256-pL9jeus5QpX5R+9rsp3hhZ+uplVHscNJh8n8VpqscM0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
"rev": "e8057b67ebf307f01bdcc8fba94d94f75039d1f6",
"type": "github"
},
"original": {
@ -370,32 +355,49 @@
"blobs": "blobs",
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs_2",
"nixpkgs-23_05": "nixpkgs-23_05",
"nixpkgs-23_11": "nixpkgs-23_11",
"nixpkgs-24_05": "nixpkgs-24_05",
"utils": "utils"
},
"locked": {
"lastModified": 1706219574,
"narHash": "sha256-qO+8UErk+bXCq2ybHU4GzXG4Ejk4Tk0rnnTPNyypW4g=",
"lastModified": 1718084203,
"narHash": "sha256-Cx1xoVfSMv1XDLgKg08CUd1EoTYWB45VmB9XIQzhmzI=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "e47f3719f1db3e0961a4358d4cb234a0acaa7baf",
"rev": "29916981e7b3b5782dc5085ad18490113f8ff63b",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"ref": "nixos-23.11",
"ref": "nixos-24.05",
"repo": "nixos-mailserver",
"type": "gitlab"
}
},
"utils": {
"systems": {
"locked": {
"lastModified": 1605370193,
"narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5021eac20303a61fafe17224c087f5519baed54d",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {

View File

@ -3,9 +3,9 @@
inputs = {
# regular nixos stuff
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
home-manager = {
url = "github:nix-community/home-manager/release-23.11";
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
@ -13,7 +13,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
simple-nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-23.11";
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
};
nix-colors = {
url = "github:misterio77/nix-colors";

18
home/brave/default.nix Normal file
View File

@ -0,0 +1,18 @@
{ lib, inputs, config, pkgs, home, ... }:
let
plib = import ../../lib { inherit pkgs; };
in {
programs.chromium = {
enable = true;
package = lib.mkForce (plib.mkPackageWrapper
pkgs.brave
"export HOME=$HOME/.cache/brave"
""
"--args --disable-frame-rate-limit"
);
extensions = [
{ id = "ecnphlgnajanjnkcmbpancdjoidceilk"; }
];
};
}

View File

@ -2,7 +2,7 @@
{
home.packages = [
(pkgs.callPackage ./elinks.nix {})
pkgs.elinks
];
home.file = {

View File

@ -1,49 +0,0 @@
{ lib, stdenv, fetchFromGitHub, ncurses, libX11, bzip2, zlib
, brotli, zstd, xz, openssl, autoreconfHook, gettext, pkg-config, libev
, gpm, libidn, tre, expat, luajit
}:
stdenv.mkDerivation rec {
pname = "elinks";
version = "0.17.0";
src = fetchFromGitHub {
owner = "rkd77";
repo = "elinks";
rev = "v${version}";
hash = "sha256-JeUiMHAqSZxxBe8DplzmzHzsY6KqoBqba0y8GDwaR0Y=";
};
buildInputs = [
ncurses libX11 bzip2 zlib brotli zstd xz
openssl libidn tre expat libev luajit
]
++ lib.optional stdenv.isLinux gpm
;
nativeBuildInputs = [ autoreconfHook gettext pkg-config ];
configureFlags = [
"--enable-finger"
"--enable-html-highlight"
"--enable-gopher"
"--enable-gemini"
"--enable-cgi"
"--enable-bittorrent"
"--enable-nntp"
"--enable-256-colors"
"--enable-true-color"
"--with-brotli"
"--with-lzma"
"--with-libev"
"--with-terminfo"
];
meta = with lib; {
description = "Full-featured text-mode web browser";
homepage = "https://github.com/rkd77/elinks";
license = licenses.gpl2;
platforms = with platforms; linux ++ darwin;
maintainers = with maintainers; [ iblech gebner ];
};
}

13
home/khard/default.nix Normal file
View File

@ -0,0 +1,13 @@
{ lib, config, pkgs, home, ... }:
{
home.packages = with pkgs; [
khard
];
home.file = {
".config/khard/config" = {
source = ../../.config/khard/khard.conf;
};
};
}

View File

@ -6,7 +6,7 @@
settings = {
base_url = "https://bitwarden.beepboop.systems";
email = "bit@beepboop.systems";
# pinentry = "gtk";
pinentry = pkgs.pinentry-gnome3;
};
};
}

View File

@ -12,12 +12,5 @@ in {
pkgs.xwallpaper
pkgs.xbrightness
pkgs.xdotool
] ++ [
(plib.mkPackageWrapper
pkgs.brave
"export HOME=$HOME/.cache/brave"
""
"--args --disable-frame-rate-limit"
)
];
}

View File

@ -3,6 +3,7 @@
{
imports = [
./bspwm
./brave
./sx
./sxhkd
./tridactyl
@ -10,6 +11,7 @@
./wallpapers
./vdirsyncer
./khal
./khard
./isync
./todoman
./neomutt

View File

@ -7,7 +7,7 @@
environment.systemPackages = [
(pkgs.callPackage ../builds/rebuild.nix {})
(pkgs.callPackage ../builds/st.nix {})
(pkgs.callPackage ../builds/st.nix { lightMode = false; })
(pkgs.callPackage ../builds/utils.nix {})
(pkgs.callPackage ../builds/statusbar {})
pkgs.man-pages

View File

@ -3,7 +3,6 @@
{
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "gtk2";
enableSSHSupport = true;
};
}