mirror of https://github.com/wlcx/home.git
Compare commits
No commits in common. "74b11aead415d68ca6e7143ef2111adafce5d705" and "8eef537cba4b1843154e699e0fc120da0c0068a2" have entirely different histories.
74b11aead4
...
8eef537cba
46
flake.lock
46
flake.lock
|
@ -10,11 +10,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667210711,
|
"lastModified": 1654858401,
|
||||||
"narHash": "sha256-IoErjXZAkzYWHEpQqwu/DeRNJGFdR7X2OGbkhMqMrpw=",
|
"narHash": "sha256-53bw34DtVJ2bnF6WEwy6Tym+qY0pNEiEwARUlvmTZjs=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "96a9dd12b8a447840cc246e17a47b81a4268bba7",
|
"rev": "f55e05c6d3bbe9acc7363bc8fc739518b2f02976",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -25,11 +25,11 @@
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1653893745,
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
"rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -42,36 +42,35 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
]
|
||||||
"utils": "utils"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1670253003,
|
"lastModified": 1654113405,
|
||||||
"narHash": "sha256-/tJIy4+FbsQyslq1ipyicZ2psOEd8dvl4OJ9lfisjd0=",
|
"narHash": "sha256-VpK+0QaWG2JRgB00lw77N9TjkE3ec0iMYIX1TzGpxa4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0e8125916b420e41bf0d23a0aa33fadd0328beb3",
|
"rev": "ac2287df5a2d6f0a44bbcbd11701dbbf6ec43675",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-22.11",
|
"ref": "release-22.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1671040593,
|
"lastModified": 1662874738,
|
||||||
"narHash": "sha256-W5aZNwYBjaEaLifDWGEfecvnCiDkXjI26rHgidSftUM=",
|
"narHash": "sha256-kG29aU9f5UTWhPf/QEh5LanDmqqbbcErWYAcPptC/Cg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "170e39462b516bd1475ce9184f7bb93106d27c59",
|
"rev": "dd1f4d982445a7d1b1869baa42f8f0f9bc606714",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-22.11",
|
"ref": "nixos-22.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -83,21 +82,6 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs"
|
"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",
|
"root": "root",
|
||||||
|
|
26
flake.nix
26
flake.nix
|
@ -2,10 +2,10 @@
|
||||||
description = "Samw's home environment, as managed by nix/home-manager.";
|
description = "Samw's home environment, as managed by nix/home-manager.";
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs = {url = "github:nixos/nixpkgs/nixos-22.11";};
|
nixpkgs = {url = "github:nixos/nixpkgs/nixos-22.05";};
|
||||||
# Other modules
|
# Other modules
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-22.11";
|
url = "github:nix-community/home-manager/release-22.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
@ -21,6 +21,8 @@
|
||||||
(final: prev: rec {
|
(final: prev: rec {
|
||||||
# Make my local packages available as pkgs.mypkgs.<foo>
|
# Make my local packages available as pkgs.mypkgs.<foo>
|
||||||
mypkgs = prev.callPackage ./pkgs {};
|
mypkgs = prev.callPackage ./pkgs {};
|
||||||
|
# Directly override yubikey-manager
|
||||||
|
yubikey-manager = mypkgs.yubikey-manager;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
in (rec {
|
in (rec {
|
||||||
|
@ -32,17 +34,17 @@
|
||||||
username ? "samw",
|
username ? "samw",
|
||||||
}:
|
}:
|
||||||
inputs.home-manager.lib.homeManagerConfiguration {
|
inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
inherit username system;
|
||||||
modules = [
|
stateVersion = "21.11";
|
||||||
{ home = {
|
homeDirectory =
|
||||||
inherit username;
|
if (inputs.nixpkgs.lib.systems.elaborate system).isDarwin
|
||||||
homeDirectory =
|
then "/Users/${username}"
|
||||||
if (inputs.nixpkgs.lib.systems.elaborate system).isDarwin
|
else "/home/${username}";
|
||||||
then "/Users/${username}"
|
# In home-manager 22.11 configuration/extraModules go away and are replaced
|
||||||
else "/home/${username}";
|
# by a single "modules". So let's get ready for that.
|
||||||
stateVersion = "21.11";
|
configuration = {...}: {};
|
||||||
};}] ++ profiles ++ [{nixpkgs.overlays = overlays;}];
|
|
||||||
extraSpecialArgs = {inherit system;};
|
extraSpecialArgs = {inherit system;};
|
||||||
|
extraModules = profiles ++ [{nixpkgs.overlays = overlays;}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,9 @@ in {
|
||||||
[
|
[
|
||||||
# More fancy shit
|
# More fancy shit
|
||||||
nvim-treesitter
|
nvim-treesitter
|
||||||
trouble-nvim
|
# Language stuff
|
||||||
# Language server/completions
|
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
nvim-cmp
|
trouble-nvim
|
||||||
cmp-nvim-lsp
|
|
||||||
# Language specific
|
|
||||||
rust-vim
|
rust-vim
|
||||||
vim-terraform
|
vim-terraform
|
||||||
vim-protobuf
|
vim-protobuf
|
||||||
|
|
|
@ -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)
|
vim.api.nvim_buf_set_keymap(bufnr, 'n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Completion
|
-- Enable Language LSPs
|
||||||
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{
|
require'lspconfig'.gopls.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
}
|
||||||
require'lspconfig'.pylsp.setup{
|
require'lspconfig'.pylsp.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
|
||||||
handlers = {
|
handlers = {
|
||||||
["textDocument/publishDiagnostics"] = vim.lsp.with(
|
["textDocument/publishDiagnostics"] = vim.lsp.with(
|
||||||
vim.lsp.diagnostic.on_publish_diagnostics, {
|
vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||||
|
@ -48,26 +25,21 @@ require'lspconfig'.pylsp.setup{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
require'lspconfig'.rnix.setup{
|
require'lspconfig'.rnix.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
}
|
||||||
require'lspconfig'.rust_analyzer.setup{
|
require'lspconfig'.rust_analyzer.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
}
|
||||||
require'lspconfig'.dhall_lsp_server.setup{
|
require'lspconfig'.dhall_lsp_server.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
}
|
||||||
require'lspconfig'.eslint.setup{
|
require'lspconfig'.eslint.setup{
|
||||||
on_attach = on_attach,
|
on_attach = on_attach
|
||||||
capabilities = capabilities,
|
|
||||||
}
|
}
|
||||||
-- Configure volar (vuejs language server stuff) in "takeover" mode
|
-- Configure volar (vuejs language server stuff) in "takeover" mode
|
||||||
require'lspconfig'.volar.setup{
|
require'lspconfig'.volar.setup{
|
||||||
on_attach = on_attach,
|
|
||||||
capabilities = capabilities,
|
|
||||||
filetypes = {'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json'},
|
filetypes = {'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json'},
|
||||||
|
on_attach = on_attach
|
||||||
}
|
}
|
||||||
--[[ If we didn't have takeover mode enabled above, we'd want this
|
--[[ If we didn't have takeover mode enabled above, we'd want this
|
||||||
require'lspconfig'.tsserver.setup{
|
require'lspconfig'.tsserver.setup{
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
# TODO: auto import everything
|
# TODO: auto import everything
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
qrclip = pkgs.callPackage ./qrclip {};
|
qrclip = pkgs.callPackage ./qrclip {};
|
||||||
|
zbar = pkgs.callPackage ./zbar {};
|
||||||
|
yubikey-manager = pkgs.callPackage ./yubikey-manager {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
}: let
|
}: let
|
||||||
zbar = pkgs.zbar.override {enableVideo = false;};
|
zbar = pkgs.mypkgs.zbar.override {enableVideo = false;};
|
||||||
in
|
in
|
||||||
(pkgs.writeShellScriptBin "qrclip" ''
|
(pkgs.writeShellScriptBin "qrclip" ''
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
|
|
|
@ -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];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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"
|
|
@ -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";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue