Compare commits

..

No commits in common. "74b11aead415d68ca6e7143ef2111adafce5d705" and "8eef537cba4b1843154e699e0fc120da0c0068a2" have entirely different histories.

9 changed files with 224 additions and 83 deletions

View File

@ -10,11 +10,11 @@
]
},
"locked": {
"lastModified": 1667210711,
"narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=",
"lastModified": 1654858401,
"narHash": "sha256-53bw34DtVJ2bnF6WEwy6Tym+qY0pNEiEwARUlvmTZjs=",
"owner": "numtide",
"repo": "devshell",
"rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7",
"rev": "f55e05c6d3bbe9acc7363bc8fc739518b2f02976",
"type": "github"
},
"original": {
@ -25,11 +25,11 @@
},
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github"
},
"original": {
@ -42,36 +42,35 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
]
},
"locked": {
"lastModified": 1670253003,
"narHash": "sha256-/tJIy4+FbsQyslq1ipyicZ2psOEd8dvl4OJ9lfisjd0=",
"lastModified": 1654113405,
"narHash": "sha256-VpK+0QaWG2JRgB00lw77N9TjkE3ec0iMYIX1TzGpxa4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0e8125916b420e41bf0d23a0aa33fadd0328beb3",
"rev": "ac2287df5a2d6f0a44bbcbd11701dbbf6ec43675",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-22.11",
"ref": "release-22.05",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1671040593,
"narHash": "sha256-W5aZNwYBjaEaLifDWGEfecvnCiDkXjI26rHgidSftUM=",
"lastModified": 1662874738,
"narHash": "sha256-kG29aU9f5UTWhPf/QEh5LanDmqqbbcErWYAcPptC/Cg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "170e39462b516bd1475ce9184f7bb93106d27c59",
"rev": "dd1f4d982445a7d1b1869baa42f8f0f9bc606714",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-22.11",
"ref": "nixos-22.05",
"repo": "nixpkgs",
"type": "github"
}
@ -83,21 +82,6 @@
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
},
"utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",

View File

@ -2,10 +2,10 @@
description = "Samw's home environment, as managed by nix/home-manager.";
inputs = {
# Nixpkgs
nixpkgs = {url = "github:nixos/nixpkgs/nixos-22.11";};
nixpkgs = {url = "github:nixos/nixpkgs/nixos-22.05";};
# Other modules
home-manager = {
url = "github:nix-community/home-manager/release-22.11";
url = "github:nix-community/home-manager/release-22.05";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
@ -21,6 +21,8 @@
(final: prev: rec {
# Make my local packages available as pkgs.mypkgs.<foo>
mypkgs = prev.callPackage ./pkgs {};
# Directly override yubikey-manager
yubikey-manager = mypkgs.yubikey-manager;
})
];
in (rec {
@ -32,17 +34,17 @@
username ? "samw",
}:
inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = [
{ home = {
inherit username;
homeDirectory =
if (inputs.nixpkgs.lib.systems.elaborate system).isDarwin
then "/Users/${username}"
else "/home/${username}";
stateVersion = "21.11";
};}] ++ profiles ++ [{nixpkgs.overlays = overlays;}];
inherit username system;
stateVersion = "21.11";
homeDirectory =
if (inputs.nixpkgs.lib.systems.elaborate system).isDarwin
then "/Users/${username}"
else "/home/${username}";
# In home-manager 22.11 configuration/extraModules go away and are replaced
# by a single "modules". So let's get ready for that.
configuration = {...}: {};
extraSpecialArgs = {inherit system;};
extraModules = profiles ++ [{nixpkgs.overlays = overlays;}];
};
};

View File

@ -18,12 +18,9 @@ in {
[
# More fancy shit
nvim-treesitter
trouble-nvim
# Language server/completions
# Language stuff
nvim-lspconfig
nvim-cmp
cmp-nvim-lsp
# Language specific
trouble-nvim
rust-vim
vim-terraform
vim-protobuf

View File

@ -9,35 +9,12 @@ local on_attach = function(client, bufnr)
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
end
-- Completion
local cmp = require'cmp'
cmp.setup({
window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
}),
}, {
{ name = 'buffer' },
})
-- Language servers
local capabilities = require('cmp_nvim_lsp').default_capabilities()
-- Enable Language LSPs
require'lspconfig'.gopls.setup{
on_attach = on_attach,
capabilities = capabilities,
}
require'lspconfig'.pylsp.setup{
on_attach = on_attach,
capabilities = capabilities,
handlers = {
["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
@ -48,26 +25,21 @@ require'lspconfig'.pylsp.setup{
}
}
require'lspconfig'.rnix.setup{
on_attach = on_attach,
capabilities = capabilities,
on_attach = on_attach
}
require'lspconfig'.rust_analyzer.setup{
on_attach = on_attach,
capabilities = capabilities,
on_attach = on_attach
}
require'lspconfig'.dhall_lsp_server.setup{
on_attach = on_attach,
capabilities = capabilities,
on_attach = on_attach
}
require'lspconfig'.eslint.setup{
on_attach = on_attach,
capabilities = capabilities,
on_attach = on_attach
}
-- Configure volar (vuejs language server stuff) in "takeover" mode
require'lspconfig'.volar.setup{
on_attach = on_attach,
capabilities = capabilities,
filetypes = {'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json'},
on_attach = on_attach
}
--[[ If we didn't have takeover mode enabled above, we'd want this
require'lspconfig'.tsserver.setup{

View File

@ -1,4 +1,6 @@
# TODO: auto import everything
{pkgs, ...}: {
qrclip = pkgs.callPackage ./qrclip {};
zbar = pkgs.callPackage ./zbar {};
yubikey-manager = pkgs.callPackage ./yubikey-manager {};
}

View File

@ -3,7 +3,7 @@
lib,
stdenv,
}: let
zbar = pkgs.zbar.override {enableVideo = false;};
zbar = pkgs.mypkgs.zbar.override {enableVideo = false;};
in
(pkgs.writeShellScriptBin "qrclip" ''
set -eo pipefail

View File

@ -0,0 +1,78 @@
{
python3Packages,
fetchFromGitHub,
lib,
yubikey-personalization,
libu2f-host,
libusb1,
procps,
}:
python3Packages.buildPythonPackage rec {
pname = "yubikey-manager";
version = "4.0.8";
format = "pyproject";
src = fetchFromGitHub {
repo = "yubikey-manager";
rev = version;
owner = "Yubico";
sha256 = "sha256-OszXOu/NhoX4WutsT4Z1LsY54KTOWRKt13yDo2fzDbA=";
};
patches = [./lol.patch];
doCheck = false;
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'cryptography = "^2.1 || ^3.0"' 'cryptography = "*"'
substituteInPlace "ykman/pcsc/__init__.py" \
--replace 'pkill' '${procps}/bin/pkill'
'';
nativeBuildInputs = with python3Packages; [poetry-core];
propagatedBuildInputs = with python3Packages;
[
click
cryptography
pyscard
pyusb
six
fido2
]
++ [
libu2f-host
libusb1
yubikey-personalization
];
makeWrapperArgs = [
"--prefix"
"LD_LIBRARY_PATH"
":"
(lib.makeLibraryPath [libu2f-host libusb1 yubikey-personalization])
];
postInstall = ''
mkdir -p "$out/man/man1"
cp man/ykman.1 "$out/man/man1"
mkdir -p $out/share/bash-completion/completions
_YKMAN_COMPLETE=source $out/bin/ykman > $out/share/bash-completion/completions/ykman || :
mkdir -p $out/share/zsh/site-functions/
_YKMAN_COMPLETE=source_zsh "$out/bin/ykman" > "$out/share/zsh/site-functions/_ykman" || :
substituteInPlace "$out/share/zsh/site-functions/_ykman" \
--replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"'
'';
checkInputs = with python3Packages; [pytestCheckHook makefun];
meta = with lib; {
homepage = "https://developers.yubico.com/yubikey-manager";
description = "Command line tool for configuring any YubiKey over all USB transports";
license = licenses.bsd2;
platforms = platforms.unix;
maintainers = with maintainers; [benley lassulus pinpox];
};
}

View File

@ -0,0 +1,12 @@
diff --git a/pyproject.toml b/pyproject.toml
index 7544201..9caa5c6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -30,7 +30,6 @@ packages = [
python = "^3.6"
dataclasses = {version = "^0.8", python = "<3.7"}
cryptography = ">=2.1, <39"
-pyOpenSSL = {version = ">=0.15.1", optional = true}
pyscard = "^1.9 || ^2.0"
fido2 = ">=0.9, <1.0"
click = "^6.0 || ^7.0 || ^8.0"

94
pkgs/zbar/default.nix Normal file
View File

@ -0,0 +1,94 @@
{
stdenv,
lib,
fetchFromGitHub,
imagemagickBig,
pkg-config,
libX11,
libv4l,
libiconv,
qtbase ? null,
darwin,
qtx11extras ? null,
wrapQtAppsHook ? null,
wrapGAppsHook,
gtk3,
xmlto,
docbook_xsl,
autoreconfHook,
dbus,
enableVideo ? stdenv.isLinux,
# The implementation is buggy and produces an error like
# Name Error (Connection ":1.4380" is not allowed to own the service "org.linuxtv.Zbar" due to security policies in the configuration file)
# for every scanned code.
# see https://github.com/mchehab/zbar/issues/104
enableDbus ? false,
libintl,
}:
stdenv.mkDerivation rec {
pname = "zbar";
version = "0.23.90";
outputs = ["out" "lib" "dev" "doc" "man"];
src = fetchFromGitHub {
owner = "mchehab";
repo = "zbar";
rev = version;
sha256 = "sha256-FvV7TMc4JbOiRjWLka0IhtpGGqGm5fis7h870OmJw2U=";
};
nativeBuildInputs =
[pkg-config xmlto autoreconfHook docbook_xsl] ++ lib.optionals enableVideo [wrapQtAppsHook wrapGAppsHook];
buildInputs =
[imagemagickBig libX11 libintl]
++ lib.optionals enableDbus [dbus]
++ lib.optionals enableVideo [libv4l gtk3 qtbase qtx11extras]
++ lib.optionals stdenv.isDarwin [libiconv darwin.apple_sdk.frameworks.Foundation];
# Disable assertions which include -dev QtBase file paths.
NIX_CFLAGS_COMPILE = "-DQT_NO_DEBUG";
configureFlags =
["--without-python"]
++ (
if enableDbus
then ["--with-dbusconfdir=${placeholder "out"}/share"]
else ["--without-dbus"]
)
++ (
if enableVideo
then ["--with-gtk=gtk3"]
else [
"--disable-video"
"--without-gtk"
"--without-qt"
]
);
dontWrapQtApps = true;
dontWrapGApps = true;
postFixup = lib.optionalString enableVideo ''
wrapGApp "$out/bin/zbarcam-gtk"
wrapQtApp "$out/bin/zbarcam-qt"
'';
enableParallelBuilding = true;
meta = with lib; {
description = "Bar code reader";
longDescription = ''
ZBar is an open source software suite for reading bar codes from various
sources, such as video streams, image files and raw intensity sensors. It
supports many popular symbologies (types of bar codes) including
EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR
Code.
'';
maintainers = with maintainers; [delroth raskin];
platforms = platforms.unix;
license = licenses.lgpl21;
homepage = "https://github.com/mchehab/zbar";
};
}