Compare commits

..

3 Commits

Author SHA1 Message Date
Sam W 74b11aead4 vim: Add lsp completion 2022-12-15 18:42:05 +00:00
Sam W 9d17d0b0be Remove zbar workaround 2022-12-15 17:34:53 +00:00
Sam W d173f84fc0 Update to 22.11, remove ykman workaround 2022-12-15 17:34:53 +00:00
9 changed files with 83 additions and 224 deletions

View File

@ -10,11 +10,11 @@
]
},
"locked": {
"lastModified": 1654858401,
"narHash": "sha256-53bw34DtVJ2bnF6WEwy6Tym+qY0pNEiEwARUlvmTZjs=",
"lastModified": 1667210711,
"narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=",
"owner": "numtide",
"repo": "devshell",
"rev": "f55e05c6d3bbe9acc7363bc8fc739518b2f02976",
"rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7",
"type": "github"
},
"original": {
@ -25,11 +25,11 @@
},
"flake-utils": {
"locked": {
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
@ -42,35 +42,36 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
]
],
"utils": "utils"
},
"locked": {
"lastModified": 1654113405,
"narHash": "sha256-VpK+0QaWG2JRgB00lw77N9TjkE3ec0iMYIX1TzGpxa4=",
"lastModified": 1670253003,
"narHash": "sha256-/tJIy4+FbsQyslq1ipyicZ2psOEd8dvl4OJ9lfisjd0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "ac2287df5a2d6f0a44bbcbd11701dbbf6ec43675",
"rev": "0e8125916b420e41bf0d23a0aa33fadd0328beb3",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-22.05",
"ref": "release-22.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1662874738,
"narHash": "sha256-kG29aU9f5UTWhPf/QEh5LanDmqqbbcErWYAcPptC/Cg=",
"lastModified": 1671040593,
"narHash": "sha256-W5aZNwYBjaEaLifDWGEfecvnCiDkXjI26rHgidSftUM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dd1f4d982445a7d1b1869baa42f8f0f9bc606714",
"rev": "170e39462b516bd1475ce9184f7bb93106d27c59",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-22.05",
"ref": "nixos-22.11",
"repo": "nixpkgs",
"type": "github"
}
@ -82,6 +83,21 @@
"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.05";};
nixpkgs = {url = "github:nixos/nixpkgs/nixos-22.11";};
# Other modules
home-manager = {
url = "github:nix-community/home-manager/release-22.05";
url = "github:nix-community/home-manager/release-22.11";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils";
@ -21,8 +21,6 @@
(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 {
@ -34,17 +32,17 @@
username ? "samw",
}:
inputs.home-manager.lib.homeManagerConfiguration {
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 = {...}: {};
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;}];
extraSpecialArgs = {inherit system;};
extraModules = profiles ++ [{nixpkgs.overlays = overlays;}];
};
};

View File

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

View File

@ -9,12 +9,35 @@ 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
-- Enable Language LSPs
-- 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()
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, {
@ -25,21 +48,26 @@ require'lspconfig'.pylsp.setup{
}
}
require'lspconfig'.rnix.setup{
on_attach = on_attach
on_attach = on_attach,
capabilities = capabilities,
}
require'lspconfig'.rust_analyzer.setup{
on_attach = on_attach
on_attach = on_attach,
capabilities = capabilities,
}
require'lspconfig'.dhall_lsp_server.setup{
on_attach = on_attach
on_attach = on_attach,
capabilities = capabilities,
}
require'lspconfig'.eslint.setup{
on_attach = on_attach
on_attach = on_attach,
capabilities = capabilities,
}
-- 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,6 +1,4 @@
# 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.mypkgs.zbar.override {enableVideo = false;};
zbar = pkgs.zbar.override {enableVideo = false;};
in
(pkgs.writeShellScriptBin "qrclip" ''
set -eo pipefail

View File

@ -1,78 +0,0 @@
{
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

@ -1,12 +0,0 @@
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"

View File

@ -1,94 +0,0 @@
{
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";
};
}