Compare commits

...

35 commits

Author SHA1 Message Date
Emi Simpson 334312457c
Fix syncthing 2024-06-24 20:15:37 -04:00
Emi Simpson 9a2876b9ce
Upgrade JustSeeds fonts 2024-06-23 09:59:26 -04:00
Emi Simpson ddd54db905
Upgrade dw 2024-06-23 09:59:11 -04:00
Emi Simpson f56866cdbb
List sasha's machine in hosts 2024-06-23 09:58:56 -04:00
Emi Simpson b233b7268b
Add some more backup ignore paths 2024-06-23 09:58:35 -04:00
Emi Simpson e96552cd01
Fix LSP settings for nvim 2024-06-23 09:58:11 -04:00
Emi Simpson b517ac71dc
Switch to using KeePass 2024-06-23 09:57:28 -04:00
Emi Simpson 7090183f8e
Add text scale keybindings to Kitty 2024-05-19 10:16:45 -04:00
Emi Simpson 02e0cb21d5
EditorConfig is now supported out of the box in neovim 2024-05-19 10:15:54 -04:00
Emi Simpson cbda59d467
Add zen plugin to neovim 2024-04-11 17:58:54 -04:00
Emi Simpson 9a006186de
Make the uwu script better 2024-04-11 17:58:08 -04:00
Emi Simpson 250e2829f6
Add CSV to editorconfig 2024-04-11 17:57:45 -04:00
Emi Simpson e0ed1b01bf
Add redwood's local IP 2024-04-05 18:08:57 -04:00
Emi Simpson 762d3f98b9
Install a handful of utils 2024-04-05 18:08:26 -04:00
Emi Simpson e80d5586a2
Correct Redwood SSH port 2024-04-05 18:07:38 -04:00
Emi Simpson 05dd5d7726
Install GSConnect 2024-04-05 18:07:21 -04:00
Emi Simpson 4ef897d67a
Upgrade PIP-on-top plugin 2024-04-05 18:07:06 -04:00
Emi Simpson 55b6c49acb
Add fish functions for uwu and editm4b 2024-04-05 18:05:43 -04:00
Emi Simpson 7cce30000b
Correct ledger file location 2024-03-15 21:13:01 -04:00
Emi Simpson 1c4a71b791
Reinstall google fonts 2024-03-06 08:47:02 -05:00
Emi Simpson 86197248c5
Install hledger 2024-03-05 17:49:28 -05:00
Emi Simpson 5c367b4a07
Switch out some fonts 2024-02-23 16:47:49 -05:00
Emi Simpson d5ab4c9f31
Update JustSeeds package 2024-02-23 16:47:34 -05:00
Emi Simpson 93e637e9f5
Add Anarchist's Stencil font 2024-02-23 16:46:52 -05:00
Emi Simpson 25d157baa7
Install nom 2024-02-23 16:46:06 -05:00
Emi Simpson bbf25dcb6d
Turn on JACK 2024-02-23 16:45:58 -05:00
Emi Simpson 71fdda00f1
Add a few more directories for backup to ignore 2024-02-23 16:45:43 -05:00
Emi Simpson cf330ec24e
Add a youtube download alias 2024-02-23 16:45:30 -05:00
Emi Simpson cc25ed7cc4
Did that! 2024-02-23 16:44:49 -05:00
Emi Simpson 1939321edf
Make lonk always read from clipboard 2024-02-23 16:44:13 -05:00
Emi Simpson 85357ce259
Add semantic scholar as a search for firefox 2024-02-23 16:42:05 -05:00
Emi Simpson fc32b67d43
Switch out youtube-dl with yt-dlp 2024-02-23 16:41:51 -05:00
Emi Simpson d2e4584f78
Install picard 2024-02-23 16:41:43 -05:00
Emi Simpson 1cfe531356
Install calibre 2024-02-23 16:41:36 -05:00
Emi Simpson b2f6a28299
Turn on compose as right alt 2024-02-23 16:41:14 -05:00
15 changed files with 219 additions and 40 deletions

View file

@ -81,6 +81,7 @@ mkTuple: {
hacks-level = 0;
};
"org/gnome/desktop/input-sources" = {
xkb-options = ["compose:ralt"];
show-all-sources=true;
sources=[
(mkTuple ["xkb" "us+3l"])

View file

@ -2,15 +2,18 @@
imports = [./home.nogui.nix];
home.packages = with pkgs; [
caddy
calibre
clapper
playerctl
picard
inkscape
libreoffice
gnomeExtensions.blur-my-shell
gnomeExtensions.burn-my-windows
gnomeExtensions.pop-shell
gnomeExtensions.firefox-pip-always-on-top
gnomeExtensions.espresso
gnomeExtensions.pip-on-top
gnomeExtensions.gsconnect
] ;
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";

View file

@ -5,6 +5,7 @@
LANG = "en_US.UTF-8";
EDITOR = "nvim";
RCLONE_CONFIG = "${programs/rclone.conf}";
LEDGER_FILE = "/home/ember/Sync/Budget.journal";
};
home.keyboard.layout = "us";
home.keyboard.variant = "3l";
@ -24,8 +25,11 @@
rclone
bubblewrap
termdown
youtube-dl
yt-dlp
magic-wormhole-rs
hledger
keepassxc
passhole
] ++ (import ../system/home-manager.nix).extraPackages pkgs;
editorconfig = {
enable = true;
@ -38,7 +42,7 @@
trim_trailing_whitespace = true;
insert_final_newline = false;
};
settings."{*.{md,gmi,adoc},COMMIT_EDITMSG}" = {
settings."{*.{md,gmi,adoc,csv},COMMIT_EDITMSG}" = {
max_line_length = 0;
};
settings."*.{elm,lisp,yml,purs,hs}" = {

View file

@ -102,6 +102,19 @@ pkgs: {
updateInterval = 7 * 24 * 60 * 60 * 1000; # every week
definedAliases = [ "!gh" ];
};
"Semantic Scholar" = {
urls = [
{
template = "https://www.semanticscholar.org/search";
params = [
{name = "q"; value = "{searchTerms}";}
];
}
];
iconUpdateURL = "https://cdn.semanticscholar.org/445569b6ca9ba36c/img/darkmode/favicon-196x196.png";
updateInterval = 7 * 24 * 60 * 60 * 1000; # every week
definedAliases = [ "!s2" ];
};
"Wikipedia (en)".metaData.alias = "!w";
"Google".metaData.alias = "!g";
"Bing".metaData.hidden = true;

View file

@ -16,23 +16,21 @@ pkgs: {
l = "ls -lah --hyperlink=auto";
icat = "kitty +kitten icat";
rust-musl-builder = "fish -c 'docker run --rm -it -v (pwd):/home/rust/src ekidd/rust-musl-builder cargo build --release'";
lonk = "qrencode -t utf8i";
lonk = "qrencode -t utf8i (kitten clipboard -g)";
s = "kitty +kitten ssh";
weather = "curl wttr.in/43.0844,-77.6749";
uwu = "mkdir -p /tmp/uwu && encfs -i 60 ~/Pictures/uwu/ /tmp/uwu --extpass 'pass storage-encryption/annex-fs'";
};
shellAbbrs = rec {
tab = "clone-in-kitty --type=tab";
win = "clone-in-kitty --type=os-window";
ns = "nix-shell --run fish -p";
unlock-rclone = "set -x RCLONE_CONFIG_PASS (pass rclone)";
unlock-rclone = "set -x RCLONE_CONFIG_PASS (ph show --field Password rclone)";
":qa" = "exit";
":q" = "exit";
"rmount" = "rclone --rc --rc-web-gui --rc-no-auth --cache-dir /tmp/rclone-cache mount --vfs-cache-mode full --vfs-cache-max-size 8Gi";
"backup" = "eval (pass backblaze/backup-bucket) && restic -r s3:s3.us-west-000.backblazeb2.com/ember-restic-backups/(hostname | sed \"s/\\(.\\)/\\u\\1/\") -p (pass backups | psub) backup ~/ --exclude-caches --exclude-file=${import ./restic.nix}";
"diary" = "bwrap --bind ~/Diary/gate/ / --bind ~/Diary/store /store --ro-bind /nix /nix --bind /run /run -- (whereis -b restic | cut -c 9-) -r /store -p (pass diary | psub) backup -H 'diary' -e /nix -e /run -e /store -e /home /";
"backup" = "eval (ph show --field 'Fish Script' 'Backblaze - Backup Bucket') && restic -r s3:s3.us-west-000.backblazeb2.com/ember-restic-backups/(hostname | sed \"s/\\(.\\)/\\u\\1/\") -p (ph show --field Password System/Backups | psub) backup ~/ --exclude-caches --exclude-file=${import ./restic.nix}";
"dl" = "wget (kitty +kitten clipboard --get-clipboard)";
bottom = "termdown 2023-06-13T7:30:00";
yt = "yt-dlp -o '%(release_date>%Y-%m-%d,upload_date>%Y-%m-%d|???)s.%(title)s.%(ext)s' -f bestvideo+bestaudio --embed-subs --embed-thumbnail --embed-metadata --embed-chapters --embed-info-json (kitten clipboard -g)";
};
shellInit = ''
set fish_color_command magenta
@ -52,6 +50,23 @@ pkgs: {
# echo "You seriously are incredibly wonderful and you mean so much to me, you've made my life so much brighter and i never wanna let you go <3"
'';
functions = {
editm4b = {
description = "Edit the chapters in an m4b file";
body = "tone tag --meta-chapters-file=(tone dump --format ChptFmtNative \$argv[1] | vipe | psub) \$argv[1]";
argumentNames = ["Audiobook"];
};
uwu = {
description = "notices your fish function";
body = ''
set UWU_DIR (mktemp -d /tmp/uwu.XXX)
encfs -i 60 ~/Pictures/uwu/ $UWU_DIR --extpass 'ph show System/encfs/uwu --field Password'
cd $UWU_DIR
fish --private
cd -
umount $UWU_DIR
rm -d $UWU_DIR
'';
};
n = {
description = "support nnn quit and change directory";
wraps = "nnn";

View file

@ -61,4 +61,14 @@ pkgs: {
# Roman Siler (Punctuation)
# b4a8c8
};
}
keybindings = {
# Keymappings for zooming
# ctrl+shift * = Reset
# ctrl+shift ( = Shrink
# ctrl+shift ) = Grow
# 'cause 3l breaks the default bindings for this
"ctrl+shift+9" = "change_font_size all -2.0";
"ctrl+shift+0" = "change_font_size all +2.0";
"ctrl+shift+8" = "change_font_size all 0";
};
}

View file

@ -92,7 +92,6 @@ in
{
enable = true;
plugins = with pkgs.vimPlugins; [
editorconfig-nvim
vim-airline
vim-airline-themes
lsp_signature-nvim
@ -103,6 +102,7 @@ in
nvim-treesitter.withAllGrammars
nvim-ts-rainbow
nvim-lspconfig
true-zen-nvim
(fromGitHub "HEAD" "whonore/Coqtail")
];
extraConfig = mkConfig {
@ -264,14 +264,26 @@ in
};
coc.enable = true;
coc.settings = {
"diagnostic-languageserver.filetypes" = {
python = "mypy";
};
haskell = {
command = "haskell-language-server-wrapper";
args = ["--lsp"];
rootPatterns = ["*.cabal" "stack.yaml" "cabal.project" "package.yaml" "hie.yaml"];
filetypes = ["hs" "lhs" "haskell" "lhaskell"];
languageserver = {
"diagnostic-languageserver.filetypes" = {
python = "mypy";
};
haskell = {
command = "haskell-language-server-wrapper";
args = ["--lsp"];
rootPatterns = ["*.cabal" "stack.yaml" "cabal.project" "package.yaml" "hie.yaml"];
filetypes = ["hs" "lhs" "haskell" "lhaskell"];
};
godot = {
host = "127.0.0.1";
filetypes = ["gd" "gdscript" "gdscript3"];
port = 6005;
};
csharp-ls = {
command = "csharp-ls";
filetypes = ["cs"];
rootPatterns = ["*.csproj" "*.sln"];
};
};
};
}

View file

@ -3,12 +3,15 @@ let paths = [
"**/cache/"
"**/.cache/"
"**/Cache/"
"**/shader_cache/"
"**/dist/" # npm build directory
"**/mono/temp/"
"**/node_modules/"
"**/__pycache__/"
"**/.clj-kondo/"
"**/.lsp/"
"**/.stack-work/"
"**/shader_cache/"
"**/target/"
"/home/ember/Audiobooks/"
"/home/ember/.cabal/"
@ -19,6 +22,7 @@ let paths = [
"/home/ember/.config/syncthing/index-v*.db/"
"/home/ember/.config/archivewebpage/IndexedDB"
"/home/ember/.config/archivewebpage/**/Cache*/"
"/home/ember/.dotnet/"
"/home/ember/.ghcup/"
"/home/ember/.lein"
"/home/ember/.local/share/geary/"
@ -30,21 +34,28 @@ let paths = [
"/home/ember/.m2/"
"/home/ember/.mozilla"
"/home/ember/.npm/"
"/home/ember/.nuget/"
"/home/ember/.opam/"
"/home/ember/.pki/"
"/home/ember/.pub-cache/"
"/home/ember/.rustup/"
"/home/ember/.stack/"
"/home/ember/.var/app/*/cache/"
"/home/ember/.var/app/io.itch.itch/config/itch/apps/"
"/home/ember/.var/app/io.itch.itch/data/wine/drive_c/windows/"
"/home/ember/.var/app/org.mozilla.firefox/"
"/home/ember/.var/app/org.gimp.GIMP/"
"/home/ember/.var/app/org.gnome.Geary/data/"
"/home/ember/.var/app/app.organicmaps.desktop/"
"/home/ember/.var/app/com.usebottles.bottles/"
"/home/ember/.var/app/com.valvesoftware.Steam/"
"/home/ember/.var/app/io.gitlab.news_flash.NewsFlash/"
"/home/ember/.var/app/net.lutris.Lutris/"
"/home/ember/.var/app/org.gnome.Boxes/"
"/home/ember/.var/app/org.gnome.Lollypop"
"/home/ember/.var/app/org.gnome.Podcasts/cache/"
"/home/ember/.var/app/org.gnome.Podcasts/data/"
"/home/ember/.var/app/org.prismlauncher.PrismLauncher/"
"/home/ember/.local/share/containers/"
"/home/ember/.local/share/flatpak/"
"/home/ember/.local/share/Trash/"

View file

@ -17,7 +17,7 @@
muscaria.user = "emi";
redwood.hostname = "redwood.corviform.gay";
redwood.port = 57452;
redwood.port = 38555;
redwood.user = "ember";
redwood.localForwards = [{
bind.port = 8080;

View file

@ -89,7 +89,7 @@ let systemInformation = import ./system/system-information.nix; in
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
@ -114,6 +114,7 @@ let systemInformation = import ./system/system-information.nix; in
# List packages installed in system profile. To search, run:
environment.systemPackages = with pkgs; [
git
wget
gnumake
htop
@ -124,6 +125,11 @@ let systemInformation = import ./system/system-information.nix; in
file
pavucontrol
nix-index
nix-output-monitor
zbar
tone
moreutils
mediainfo
gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-libav gst_all_1.gst-vaapi gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-good gst_all_1.gst-plugins-ugly
];
environment.gnome.excludePackages = with pkgs.gnome; [
@ -137,10 +143,12 @@ let systemInformation = import ./system/system-information.nix; in
fonts = {
packages = with pkgs; with import packages/all-packages.nix nixpkgs; [
justseeds
anarchists-stencil
manrope
google-fonts
comic-mono
atkinson-hyperlegible
openmoji-color
];
fontDir.enable = true;
enableDefaultPackages = true;
@ -177,7 +185,15 @@ let systemInformation = import ./system/system-information.nix; in
kudzu.id =
"RQUVE3L-D345NMM-4KUE7D6-PCJ3HIO-VFZNYJ6-BNF2YH3-6UBCXF7-NS5YKQR";
};
settings.folders.sync = {
devices = ["redwood" "mugwort" "kudzu"];
id = "xuwnn-mknwe";
label = "Sync";
path = "~/Sync";
versioning = { type = "trashcan"; params.cleanoutDays = "14"; };
};
overrideDevices = true;
overrideFolders = true;
};
openssh = {
# Disable by default
@ -199,6 +215,8 @@ let systemInformation = import ./system/system-information.nix; in
networking.hosts = {
"162.255.119.254" = ["www.librepunk.club"];
"129.21.49.69" = ["www.librepunk.club"];
"192.168.1.204" = ["redwood.corviform.gay"];
"192.168.1.227" = ["wyvern.kitty.lan"];
};
# This value determines the NixOS release from which the default

View file

@ -1,4 +1,6 @@
{pkgs, ...}: {
dw = pkgs.callPackage ./dw.nix {};
justseeds = pkgs.callPackage ./justseeds.nix {};
anarchists-stencil = pkgs.callPackage ./anarchists-stencil.nix {};
passhole = pkgs.callPackage ./passhole.nix {};
}

View file

@ -0,0 +1,23 @@
{pkgs, stdenv, lib, ...}:
stdenv.mkDerivation {
pname = "anarchists-stencil";
version = "1.000";
src = pkgs.fetchurl {
url = "https://www.dimka.com/fonts/anarchists-stencil/anarchists-stencil.woff2";
hash = "sha256-gkXQcarvnoEzz/8JjKnZI2ck6gzg9U2N9bbZfODKD+o=";
};
dontUnpack = true;
installPhase = ''
install -D -m 444 $src -t $out/share/fonts
'';
meta = {
description = "Anarchists Stencil";
homepage = "https://www.myfonts.com/collections/anarchists-stencil-font-dimka-fonts";
license = lib.licenses.unfree;
maintainers = [];
};
}

View file

@ -1,16 +1,23 @@
{pkgs, lib, ...}: pkgs.rustPlatform.buildRustPackage rec {
pname = "dw";
version = "0.1.0";
version = "0.2.0";
src = pkgs.fetchFromGitea {
domain = "fem.mint.lgbt";
owner = "Emi";
repo = "password-script";
rev = "v0.1.0";
sha256 = "0w/MOHG7oe1TZEiFmSOk+o34uxArF2DCjns7Tb6l9sw=";
# Gitea downloads failing as of right now
# src = pkgs.fetchFromGitea {
# domain = "fem.mint.lgbt";
# owner = "Emi";
# repo = "password-script";
# rev = "v0.2.0";
# sha256 = "0w/MOHG7oe1TZEiFmSOk+o34uxArF2DCjns7Tb6l9sw=";
# };
src = pkgs.fetchgit {
url = "https://fem.mint.lgbt/Emi/password-script.git";
rev = "v0.2.0";
sha256 = "xlp6nV/GbuNCGDnpyhplSGsioG3RrVD4JTauiD+UT+g=";
};
cargoSha256 = "0oVTwNrE3Qoz+K+daBUwVKCKUxJkodqQYMz0TT4FpHg=";
cargoSha256 = "iWiNV/YMKmyMC9tawkW3hqEtVZZUhiGFpCZ66vBUHv8=";
meta = {
description = "A simple diceware script, with defaults picked by Emi";

View file

@ -1,6 +1,6 @@
{pkgs, stdenv, lib, ...}: stdenv.mkDerivation {
pname = "justseeds-fontpack";
version = "13.000";
version = "14.000";
# Fontpack 1
pack01 = pkgs.fetchzip {
@ -32,15 +32,15 @@
# Fontpack 5
pack05 = pkgs.fetchzip {
url = "https://justseeds.org/wp-content/uploads/JS-Font-Pak-5.zip";
sha256 = "2cgh4Xd0prG+fk/hNyugRxW0+8dYrsRIAlBh2AH5ql8=";
url = "https://justseeds.org/wp-content/uploads/JSOTP5_2.zip";
sha256 = "9dCyNv+9Zf4aQBtb6lZIYCz7pEsxaCwdLlSTlPfPihA=";
stripRoot = false;
};
# Fontpack 6
pack06 = pkgs.fetchzip {
url = "https://justseeds.org/wp-content/uploads/JS-Font-pack-6.zip";
sha256 = "JgJ6czKxNHq/aZ80MqLAazLWW/pe7qZrPgc2+h6itGI=";
url = "https://justseeds.org/wp-content/uploads/JS-Font-pack-6_2.zip";
sha256 = "f6tcmnyd5Ey5j28RCohUG7f01CabA8RpwSxPXYDY5jg=";
stripRoot = false;
};
@ -53,8 +53,8 @@
# Fontpack 8
pack08 = pkgs.fetchzip {
url = "https://justseeds.org/wp-content/uploads/Justseeds-Font-Pack-8_3.zip";
sha256 = "eM0jT716BaDMfW42zkoVqMy+DIcz7rm8+BPFmX6+0bk=";
url = "https://justseeds.org/wp-content/uploads/Justseeds-Font-Pack-8_4.zip";
sha256 = "9tyxRxlwuR1VAOzF03zTS/DoF9/Scw1+5ItNiwBuNqQ=";
stripRoot = false;
};
@ -81,8 +81,8 @@
# Fontpack 12
pack12 = pkgs.fetchzip {
url = "https://justseeds.org/wp-content/uploads/JSOTP-12.zip";
sha256 = "anwRr+yaQWp/nxdXu89UMHSoexGvAuE2gApsfq3UibU=";
url = "https://justseeds.org/wp-content/uploads/JSOTP-12_1223.zip";
sha256 = "9LO4zt1TGhiPptzeXY/0wZewraZ574U73WZSuTzpJRs=";
stripRoot = false;
};
@ -93,14 +93,21 @@
stripRoot = false;
};
# Fontpack 14
pack14 = pkgs.fetchzip {
url = "https://justseeds.org/wp-content/uploads/JSOTP-14.zip";
sha256 = "JaoefaCCE3I8CrUHuTn0Ggn8HTp2mgjsn9WLFGG/ycU=";
stripRoot = false;
};
dontUnpack = true;
installPhase = ''
install -D -m 444 $pack01/JS_fontpak1/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack02/justseeds_fontpak2/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack03/'JSOTP FP3_2'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack04/fontpak4/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack05/'JS Font Pak 5'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack06/'JS Font pack 6'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack05/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack06/'JS Font pack 6 zip'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack07/'JS Font Pack 7'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack08/'Justseeds Font Pack 8'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack09/'Justseeds Font Pack 9'/*.otf -t $out/share/fonts/otf
@ -108,6 +115,7 @@
install -D -m 444 $pack11/'JSOTP 11'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack12/'JSOTP 12'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack13/'JOSTP 13'/*.otf -t $out/share/fonts/otf
install -D -m 444 $pack14/'JSOTP 14'/*.otf -t $out/share/fonts/otf
'';
meta = {

52
packages/passhole.nix Normal file
View file

@ -0,0 +1,52 @@
{ lib, python3Packages, fetchFromGitHub, callPackage}:
with python3Packages;
let
pykeepass-cache =
buildPythonPackage {
pname = "pykeepass-cache";
version = "2.0.2";
propagatedBuildInputs = [ pykeepass rpyc python-daemon ];
doCheck = false;
src = fetchFromGitHub {
owner = "libkeepass";
repo = "pykeepass_cache";
rev = "8ccd94e";
hash = "sha256-2QbbjC/GyBHMCEEZOJimPe+MZpHr5Hs1QzHhXS8Hn0k=";
};
pythonImportsCheck = [ "pykeepass_cache" ];
meta = with lib; {
homepage = "https://github.com/libkeepass/pykeepass_cache/tree/master";
description = "database caching for PyKeePass";
license = licenses.gpl3Only;
maintainers = [{
email = "ember@corviform.gay";
github = "Alch-Emi";
githubId = 38897201;
name = "Ember Hearth";
}];
};
};
in
buildPythonApplication rec {
pname = "passhole";
version = "1.10.0";
propagatedBuildInputs = [ pynput pykeepass pykeepass-cache colorama future pyotp qrcode ];
src = fetchFromGitHub {
owner = "Evidlo";
repo = "passhole";
rev = "v${version}";
hash = "sha256-SupFNFSgewpXogtZwfg1EvyLiLzE68CoJITWSG9NcwQ=";
};
pythonImportsCheck = [ "passhole" ];
meta = with lib; {
homepage = "https://github.com/Evidlo/passhole";
description = "CLI KeePass client with dmenu support";
license = licenses.gpl3Only;
maintainers = [{
email = "ember@corviform.gay";
github = "Alch-Emi";
githubId = 38897201;
name = "Ember Hearth";
}];
};
}