Merge branch 'horsch'
commit
06de03dd73
|
@ -0,0 +1,8 @@
|
||||||
|
use flake .nix
|
||||||
|
|
||||||
|
if on_git_branch; then
|
||||||
|
echo
|
||||||
|
git status --short --branch
|
||||||
|
echo
|
||||||
|
git fetch
|
||||||
|
fi
|
|
@ -2,4 +2,3 @@
|
||||||
# Ignore build outputs from performing a nix-build or `nix build` command
|
# Ignore build outputs from performing a nix-build or `nix build` command
|
||||||
result
|
result
|
||||||
result-*
|
result-*
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720418205,
|
||||||
|
"narHash": "sha256-cPJoFPXU44GlhWg4pUk9oUPqurPlCFZ11ZQPk21GTPU=",
|
||||||
|
"rev": "655a58a72a6601292512670343087c2d75d859c1",
|
||||||
|
"revCount": 650378,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.650378%2Brev-655a58a72a6601292512670343087c2d75d859c1/019095fe-96b2-7a7c-ad7c-2131b3fb6fa7/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.%2A.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
description = "A flake editing flake";
|
||||||
|
|
||||||
|
inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.*.tar.gz";
|
||||||
|
|
||||||
|
outputs = { nixpkgs, ... }:
|
||||||
|
let
|
||||||
|
supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||||
|
forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f {
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
devShells = forEachSupportedSystem ({ pkgs }: {
|
||||||
|
default = pkgs.mkShell.override
|
||||||
|
{
|
||||||
|
# Override stdenv in order to change compiler:
|
||||||
|
# stdenv = pkgs.clangStdenv;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
packages = with pkgs; [
|
||||||
|
pre-commit
|
||||||
|
commitizen
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
pre-commit install --allow-missing-config --hook-type pre-commit --hook-type commit-msg
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
# See https://pre-commit.com for more information
|
||||||
|
# See https://pre-commit.com/hooks.html for more hooks
|
||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v4.6.0
|
||||||
|
hooks:
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-added-large-files
|
||||||
|
- id: detect-private-key
|
||||||
|
- id: mixed-line-ending
|
||||||
|
|
||||||
|
- repo: https://github.com/commitizen-tools/commitizen
|
||||||
|
rev: v3.27.0
|
||||||
|
hooks:
|
||||||
|
- id: commitizen
|
||||||
|
stages: [commit-msg]
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: home-manager-check
|
||||||
|
name: Home Manager Config Check
|
||||||
|
entry: home-manager switch --dry-run
|
||||||
|
language: system
|
||||||
|
pass_filenames: false
|
||||||
|
exclude: ^docs/
|
|
@ -0,0 +1,91 @@
|
||||||
|
# Setup Log WSL/Alpine
|
||||||
|
|
||||||
|
## User setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
su -
|
||||||
|
apk add sudo
|
||||||
|
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel
|
||||||
|
adduser mmandl sudo
|
||||||
|
passwd mmandl
|
||||||
|
logout
|
||||||
|
```
|
||||||
|
|
||||||
|
## Home-manager setup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install nix package manager
|
||||||
|
sudo apk add curl xz openssh-client
|
||||||
|
curl -L https://nixos.org/nix/install | sh
|
||||||
|
echo ". /home/mmandl/.nix-profile/etc/profile.d/nix.sh" >> ~/.profile
|
||||||
|
|
||||||
|
# Add home-manager channel and install
|
||||||
|
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
|
||||||
|
nix-channel --update
|
||||||
|
nix-shell '<home-manager>' -A install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Home-manager config
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Extract initial home-manager config
|
||||||
|
unzip /mnt/c/Users/mmandl/Downloads/home-manager-main.zip
|
||||||
|
mv home-manager-main home-manager
|
||||||
|
rm -rf .config/home-manager
|
||||||
|
ln -s ../home-manager .config/home-manager
|
||||||
|
|
||||||
|
# Enable nix flakes support
|
||||||
|
mkdir -p .config/nix
|
||||||
|
echo "experimental-features = nix-command flakes" > .config/nix/nix.conf
|
||||||
|
|
||||||
|
# Install and configure user environment
|
||||||
|
home-manager switch
|
||||||
|
|
||||||
|
# Install zsh
|
||||||
|
sudo apk add zsh
|
||||||
|
chsh -s /bin/zsh
|
||||||
|
|
||||||
|
# Install gpg and ssh private keys
|
||||||
|
gpg --import /mnt/c/Users/mmandl/OneDrive\ -\ Horsch\ Maschinen\ GmbH/Dokumente/GPG/Michael\ Mandl\ michael.mandl@horsch.com\ \(0x088ED38F036C7AF2\)\ pub-sec.asc
|
||||||
|
|
||||||
|
# Switch to final home-manager config
|
||||||
|
rm -rf home-manager
|
||||||
|
git clone git@github.com:mmandl-horsch/home-manager.git
|
||||||
|
```
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Enable openrc on boot
|
||||||
|
echo "[boot]\ncommand = /sbin/openrc default" > /etc/wsl.conf
|
||||||
|
|
||||||
|
# Install docker
|
||||||
|
sudo apk add docker
|
||||||
|
sudo rc-update add docker default
|
||||||
|
sudo adduser mmandl docker
|
||||||
|
|
||||||
|
# Install buildserver CA
|
||||||
|
firefox https://confluence.horsch.com/display/DFEDOCU1/SE+Tools+-+Buildserver+-+SSL?preview=/114590403/114590426/20201123_horsch_buildserver_ca_install.sh
|
||||||
|
sudo sh 20201123_horsch_buildserver_ca_install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## VSCode
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install vscode server runtime dependency
|
||||||
|
sudo apk add libstdc++
|
||||||
|
```
|
||||||
|
|
||||||
|
## Yocto
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install non-busybox `readlink`
|
||||||
|
sudo apk add coreutils
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kernel Module Autoloading
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apk add alpine-config
|
||||||
|
sudo setup-devd udev
|
||||||
|
```
|
125
email.nix
125
email.nix
|
@ -1,125 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = [ pkgs.libsecret ];
|
|
||||||
|
|
||||||
programs.msmtp.enable = true;
|
|
||||||
programs.mbsync.enable = true;
|
|
||||||
programs.neomutt = {
|
|
||||||
enable = true;
|
|
||||||
sidebar.enable = true;
|
|
||||||
vimKeys = true;
|
|
||||||
macros = [
|
|
||||||
{
|
|
||||||
action = "<shell-escape>mbsync -all<enter>";
|
|
||||||
key = "S";
|
|
||||||
map = [ "index" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
accounts.email = {
|
|
||||||
maildirBasePath = "${config.xdg.dataHome}/mail";
|
|
||||||
|
|
||||||
accounts = {
|
|
||||||
molez = rec {
|
|
||||||
primary = true;
|
|
||||||
|
|
||||||
realName = "Michael Mandl";
|
|
||||||
address = "mandlm@molez.net";
|
|
||||||
|
|
||||||
userName = address;
|
|
||||||
passwordCommand = "secret-tool lookup email mandlm@molez.net";
|
|
||||||
|
|
||||||
imap = {
|
|
||||||
host = "mail.molez.net";
|
|
||||||
port = 993;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
smtp = {
|
|
||||||
host = "mail.molez.net";
|
|
||||||
port = 465;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gpg = {
|
|
||||||
key = "0x4AA25D647AA54CC7";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
msmtp.enable = true;
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
expunge = "both";
|
|
||||||
};
|
|
||||||
|
|
||||||
neomutt.enable = true;
|
|
||||||
};
|
|
||||||
swp = {
|
|
||||||
realName = "Michael Mandl";
|
|
||||||
address = "mandl@vi-bim.de";
|
|
||||||
|
|
||||||
userName = "mandl";
|
|
||||||
passwordCommand = "secret-tool lookup email mandl@vi-bim.de";
|
|
||||||
|
|
||||||
imap = {
|
|
||||||
host = "swpmail.softwareparadies.de";
|
|
||||||
port = 993;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
smtp = {
|
|
||||||
host = "swpmail.softwareparadies.de";
|
|
||||||
port = 465;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gpg = {
|
|
||||||
key = "0x4E60F44227F611B4 ";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
signature = {
|
|
||||||
showSignature = "append";
|
|
||||||
text = ''
|
|
||||||
--
|
|
||||||
Mit freundlichen Grüßen
|
|
||||||
|
|
||||||
Michael Mandl
|
|
||||||
Entwicklung
|
|
||||||
------------------------------------------
|
|
||||||
swp software systems GmbH & Co. KG
|
|
||||||
|
|
||||||
Königsbrücker Straße 124
|
|
||||||
01099 Dresden
|
|
||||||
Tel: 0351-492850
|
|
||||||
Fax: 0351-4928550
|
|
||||||
www: https://www.vi-bim.de
|
|
||||||
|
|
||||||
Kennen Sie schon unsere FAQ-Wissensdatenbank? Einfach hier klicken:
|
|
||||||
https://faq.vi-bim.de
|
|
||||||
|
|
||||||
Unsere Datenschutzerklärung finden Sie unter https://datenschutz.vi-bim.de
|
|
||||||
|
|
||||||
Registergericht: Amtsgericht Dresden HRA 3008
|
|
||||||
persönlich haftender Gesellschafter:
|
|
||||||
swp Beteiligungs GmbH
|
|
||||||
Registergericht: Amtsgericht Dresden HRB 15 20 9
|
|
||||||
Geschäftsführer: Holger Schönemann, Stefan Urlberger
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
msmtp.enable = true;
|
|
||||||
mbsync = {
|
|
||||||
enable = true;
|
|
||||||
create = "both";
|
|
||||||
expunge = "both";
|
|
||||||
};
|
|
||||||
|
|
||||||
neomutt.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
32
flake.nix
32
flake.nix
|
@ -20,12 +20,40 @@
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
./home.nix
|
./shell
|
||||||
|
./git
|
||||||
|
./gpg
|
||||||
|
./neovim
|
||||||
|
./private.nix
|
||||||
./xps.nix
|
./xps.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
username = "mandlm";
|
user = "mandlm";
|
||||||
|
userName = "Michael Mandl";
|
||||||
|
userEmail = "mandlm@molez.net";
|
||||||
|
gpgSigningKey = "4AA25D647AA54CC7";
|
||||||
|
gpgSSHKeys = [ "1F937AC8F77ED74CE24EAAE79B5601F73C6D115F" ];
|
||||||
|
theme = "dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"mmandl@NB11313" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
./shell
|
||||||
|
./git
|
||||||
|
./gpg
|
||||||
|
./neovim
|
||||||
|
./horsch.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
extraSpecialArgs = {
|
||||||
|
user = "mmandl";
|
||||||
|
userName = "Michael Mandl";
|
||||||
|
userEmail = "michael.mandl@horsch.com";
|
||||||
|
gpgSigningKey = "088ED38F036C7AF2";
|
||||||
|
gpgSSHKeys = [ "AEB2BF3FF9CF9529E9A3C6F1A202D21686FF9278" ];
|
||||||
theme = "dark";
|
theme = "dark";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
71
git.nix
71
git.nix
|
@ -1,71 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
core.editor = "nvim";
|
|
||||||
|
|
||||||
diff.external = "difft --background light";
|
|
||||||
diff.tool = "difftastic";
|
|
||||||
diff.ignoreSubmodules = "none";
|
|
||||||
|
|
||||||
difftool.difftastic.cmd = "difft --background light \"$LOCAL\" \"$REMOTE\"";
|
|
||||||
difftool.prompt = false;
|
|
||||||
|
|
||||||
fetch.writeCommitGraph = true;
|
|
||||||
fetch.recurseSubmodules = true;
|
|
||||||
|
|
||||||
format.pretty = "format:%C(yellow)%h %Cblue%>(12)%ad %C(red)%G? %Cgreen%<(7,trunc)%aN%Cred%d %Creset%s";
|
|
||||||
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
|
|
||||||
log.date = "relative";
|
|
||||||
|
|
||||||
merge.ff = false;
|
|
||||||
merge.tool = "nvim";
|
|
||||||
|
|
||||||
mergetool.nvim.cmd = "nvim -f -c \"Gdiffsplit!\" \"$MERGED\"";
|
|
||||||
mergetool.prompt = false;
|
|
||||||
|
|
||||||
pager.difftool = true;
|
|
||||||
|
|
||||||
pull.rebase = true;
|
|
||||||
|
|
||||||
push.recurseSubmodules = "on-demand";
|
|
||||||
|
|
||||||
rebase.autostash = true;
|
|
||||||
|
|
||||||
rerere.enabled = true;
|
|
||||||
|
|
||||||
status.submoduleSummary = true;
|
|
||||||
|
|
||||||
submodule.recurse = true;
|
|
||||||
|
|
||||||
user.private.email = "mandlm@molez.net";
|
|
||||||
user.private.name = "Michael Mandl";
|
|
||||||
user.private.signingkey = "4AA25D647AA54CC7";
|
|
||||||
|
|
||||||
user.swp.email = "mandl@vi-bim.de";
|
|
||||||
user.swp.name = "Michael Mandl";
|
|
||||||
user.swp.signingkey = "4E60F44227F611B4";
|
|
||||||
|
|
||||||
worktree.guessRemote = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
aliases = {
|
|
||||||
identity = ''! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; git config user.signingkey "$(git config user.$1.signingkey)"; git config commit.gpgsign "true"; : '';
|
|
||||||
clone-worktree = ''! mkdir $2; git clone $1 $2/.base; BRANCH=`git -C $2/.base symbolic-ref --short HEAD`; echo "branch is $BRANCH"; git -C $2/.base checkout --detach HEAD; git -C $2/.base worktree add ../$BRANCH; :'';
|
|
||||||
graph = "log --graph --all --max-count 32";
|
|
||||||
};
|
|
||||||
|
|
||||||
ignores = [
|
|
||||||
".env"
|
|
||||||
".direnv"
|
|
||||||
"*.swp"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
{ pkgs, userName, userEmail, gpgSigningKey, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
less.enable = true;
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
inherit userName;
|
||||||
|
inherit userEmail;
|
||||||
|
|
||||||
|
signing = {
|
||||||
|
key = gpgSigningKey;
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
difftastic = {
|
||||||
|
enable = true;
|
||||||
|
background = "light";
|
||||||
|
};
|
||||||
|
|
||||||
|
lfs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
core.editor = "nvim";
|
||||||
|
core.pager = "less -FX";
|
||||||
|
|
||||||
|
credential.helper = "cache --timeout=3600";
|
||||||
|
|
||||||
|
diff.ignoreSubmodules = "none";
|
||||||
|
|
||||||
|
fetch.writeCommitGraph = true;
|
||||||
|
fetch.recurseSubmodules = true;
|
||||||
|
|
||||||
|
format.pretty = "format:%C(yellow)%h %Cblue%>(12)%ad %C(red)%G? %Cgreen%<(7,trunc)%aN%Cred%d %Creset%s";
|
||||||
|
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
|
||||||
|
log.date = "relative";
|
||||||
|
|
||||||
|
merge.ff = false;
|
||||||
|
merge.tool = "nvim";
|
||||||
|
|
||||||
|
mergetool.nvim.cmd = "nvim -f -c \"Gdiffsplit!\" \"$MERGED\"";
|
||||||
|
mergetool.prompt = false;
|
||||||
|
|
||||||
|
pager.difftool = true;
|
||||||
|
|
||||||
|
pull.rebase = true;
|
||||||
|
|
||||||
|
push.recurseSubmodules = "on-demand";
|
||||||
|
|
||||||
|
rebase.autostash = true;
|
||||||
|
|
||||||
|
rerere.enabled = true;
|
||||||
|
|
||||||
|
status.submoduleSummary = true;
|
||||||
|
|
||||||
|
submodule.recurse = true;
|
||||||
|
|
||||||
|
worktree.guessRemote = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases = {
|
||||||
|
graph = "log --graph --all --max-count 32";
|
||||||
|
};
|
||||||
|
|
||||||
|
ignores = [
|
||||||
|
".env"
|
||||||
|
".direnv"
|
||||||
|
"*.swp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(writeShellScriptBin "git-clone-worktree" ''
|
||||||
|
|
||||||
|
uri=''${1}
|
||||||
|
dir=''${2}
|
||||||
|
|
||||||
|
if [[ -z ''${dir} ]]; then
|
||||||
|
dir=''$(basename ''${1} .git)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e ''${dir} ]]; then
|
||||||
|
echo "error: directory ''${dir} already exists"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir ''${dir}
|
||||||
|
git clone ''${uri} ''${dir}/.base
|
||||||
|
|
||||||
|
branch=`git -C ''${dir}/.base symbolic-ref --short HEAD`
|
||||||
|
echo "default branch is ''${branch}"
|
||||||
|
|
||||||
|
git -C ''${dir}/.base checkout --detach HEAD
|
||||||
|
git -C ''${dir}/.base worktree add ../''${branch}
|
||||||
|
'')
|
||||||
|
|
||||||
|
(writeShellScriptBin "git-make-relative" ''
|
||||||
|
|
||||||
|
gitfile=''${1}
|
||||||
|
|
||||||
|
if [[ -z ''${gitfile} ]]; then
|
||||||
|
gitfile=".git"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f ''${gitfile} ]]; then
|
||||||
|
echo "file ''${gitfile} does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
gitdir=$(grep "gitdir:" ''${gitfile} | cut -d: -f2 | xargs)
|
||||||
|
rel_gitdir=$(realpath -s --relative-to=. ''${gitdir})
|
||||||
|
|
||||||
|
echo "relative path: ''${rel_gitdir}"
|
||||||
|
|
||||||
|
sed -i -e "s,gitdir:.*,gitdir: ''${rel_gitdir}," ''${gitfile}
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,21 +1,41 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, gpgSSHKeys, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
pinentryPackage = pkgs.pinentry-gnome3;
|
pinentryPackage = pkgs.pinentry-curses;
|
||||||
enableSshSupport = true;
|
enableSshSupport = true;
|
||||||
sshKeys = [ "1F937AC8F77ED74CE24EAAE79B5601F73C6D115F" ];
|
sshKeys = gpgSSHKeys;
|
||||||
|
defaultCacheTtl = 3600 * 12;
|
||||||
|
defaultCacheTtlSsh = 3600 * 12;
|
||||||
|
maxCacheTtl = 3600 * 12;
|
||||||
|
maxCacheTtlSsh = 3600 * 12;
|
||||||
|
extraConfig = ''
|
||||||
|
allow-loopback-pinentry
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gpg = {
|
programs.gpg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mutableKeys = true;
|
mutableKeys = false;
|
||||||
mutableTrust = true;
|
mutableTrust = false;
|
||||||
publicKeys = [{
|
settings = {
|
||||||
source = ./pubring.asc;
|
pinentry-mode = "loopback";
|
||||||
trust = "ultimate";
|
};
|
||||||
}];
|
publicKeys = [
|
||||||
|
{
|
||||||
|
source = ./molez.pub.asc;
|
||||||
|
trust = "ultimate";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = ./vi-bim.pub.asc;
|
||||||
|
trust = "ultimate";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = ./horsch.pub.asc;
|
||||||
|
trust = "ultimate";
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=oAoO
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -47,53 +47,6 @@ FuydeynUenih4/FBYwLGYIFM6rHVXCv0OYtOasyriNxCRDqbfT2NtSn8yj0Q8erp
|
||||||
GAcygR/FR37HTF3GRSXG3nlypzZOuaaD35OOpI6265LKPswZB5TbQB+Ggay2p2hU
|
GAcygR/FR37HTF3GRSXG3nlypzZOuaaD35OOpI6265LKPswZB5TbQB+Ggay2p2hU
|
||||||
EgMFmGaH+cxFjfD08CBuWaBQOlPv+1TTpnUAQc/Yx2HsnDJrtkznSN2JXrBNabfj
|
EgMFmGaH+cxFjfD08CBuWaBQOlPv+1TTpnUAQc/Yx2HsnDJrtkznSN2JXrBNabfj
|
||||||
GBdIZ3fqpsYGf8J3EQf2/weT12oGFjXdjPRcOTu9Dord2AtgZYOdNwDNIJyBciB6
|
GBdIZ3fqpsYGf8J3EQf2/weT12oGFjXdjPRcOTu9Dord2AtgZYOdNwDNIJyBciB6
|
||||||
0bwMRPpj0JGZAg0EXvmEoQEQAMIrSpPKCGZpbs/zHDTVPsQ1VlCSc2W8o+lxPM4b
|
0bwMRPpj0JE=
|
||||||
nRO3l/MJnghH7KaHW7o7Kyo0JoX6ABD23aEKQKiCxPIUb5Ci8TmTGxtDyGNHJvXy
|
=B2N+
|
||||||
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
|
|
||||||
iL8jv/hUCyjfKBN5Qa14
|
|
||||||
=dpaN
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -0,0 +1,52 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
3ygTeUGteA==
|
||||||
|
=Ok46
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
75
home.nix
75
home.nix
|
@ -1,75 +0,0 @@
|
||||||
{ pkgs, username, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.username = "${username}";
|
|
||||||
home.homeDirectory = "/home/${username}";
|
|
||||||
|
|
||||||
home.stateVersion = "24.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
eza
|
|
||||||
jq
|
|
||||||
htop
|
|
||||||
ripgrep
|
|
||||||
pavucontrol
|
|
||||||
gnumake
|
|
||||||
unzip
|
|
||||||
gcc
|
|
||||||
thunderbird
|
|
||||||
keepassxc
|
|
||||||
tree
|
|
||||||
light
|
|
||||||
element-desktop
|
|
||||||
difftastic
|
|
||||||
darktable
|
|
||||||
kubectl
|
|
||||||
kubectx
|
|
||||||
simple-scan
|
|
||||||
calibre
|
|
||||||
libreoffice
|
|
||||||
gthumb
|
|
||||||
gimp
|
|
||||||
evince
|
|
||||||
screen
|
|
||||||
inkscape
|
|
||||||
chromium
|
|
||||||
xclip
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
|
||||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
|
||||||
# shell provided by Home Manager. If you don't want to manage your shell
|
|
||||||
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
|
||||||
# located at either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/mandlm/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
home.sessionVariables = { };
|
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./bat.nix
|
|
||||||
./carapace.nix
|
|
||||||
./direnv.nix
|
|
||||||
./firefox.nix
|
|
||||||
./fzf.nix
|
|
||||||
./git.nix
|
|
||||||
./gpg
|
|
||||||
./kitty.nix
|
|
||||||
./neovim
|
|
||||||
./nextcloud.nix
|
|
||||||
./starship.nix
|
|
||||||
./sway
|
|
||||||
./zoxide.nix
|
|
||||||
./zsh.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
{ pkgs, user, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.username = user;
|
||||||
|
home.homeDirectory = "/home/${user}";
|
||||||
|
|
||||||
|
home.stateVersion = "24.05"; # Please read the comment before changing.
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
wsl-open
|
||||||
|
xdg-utils
|
||||||
|
];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./picocom.nix
|
||||||
|
./podman.nix
|
||||||
|
|
||||||
|
./horsch/ssh.nix
|
||||||
|
./horsch/zsh.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
matchBlocks = {
|
||||||
|
SmartCAN = {
|
||||||
|
host = "smartcan 192.168.5.1";
|
||||||
|
user = "root";
|
||||||
|
hostname = "192.168.5.1";
|
||||||
|
checkHostIP = false;
|
||||||
|
extraOptions = {
|
||||||
|
StrictHostKeyChecking = "no";
|
||||||
|
UserKnownHostsFile = "/dev/null";
|
||||||
|
LogLevel = "ERROR";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Fusion-USB = {
|
||||||
|
host = "fusion-usb fusion 172.16.0.1";
|
||||||
|
user = "root";
|
||||||
|
hostname = "172.16.0.1";
|
||||||
|
checkHostIP = false;
|
||||||
|
extraOptions = {
|
||||||
|
StrictHostKeyChecking = "no";
|
||||||
|
UserKnownHostsFile = "/dev/null";
|
||||||
|
LogLevel = "ERROR";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Fusion-Wifi = {
|
||||||
|
host = "fusion-wifi 172.16.1.1";
|
||||||
|
user = "root";
|
||||||
|
hostname = "172.16.1.1";
|
||||||
|
checkHostIP = false;
|
||||||
|
extraOptions = {
|
||||||
|
StrictHostKeyChecking = "no";
|
||||||
|
UserKnownHostsFile = "/dev/null";
|
||||||
|
LogLevel = "ERROR";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Fusion-TX = {
|
||||||
|
host = "fusion-tx 10.100.30.160";
|
||||||
|
user = "root";
|
||||||
|
hostname = "10.100.30.160";
|
||||||
|
checkHostIP = false;
|
||||||
|
extraOptions = {
|
||||||
|
StrictHostKeyChecking = "no";
|
||||||
|
UserKnownHostsFile = "/dev/null";
|
||||||
|
LogLevel = "ERROR";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hcvpnde = {
|
||||||
|
host = "hcvpnde hcvpnde.horsch.com";
|
||||||
|
hostname = "hcvpnde.horsch.com";
|
||||||
|
};
|
||||||
|
smartcan-vpn = {
|
||||||
|
host = "smartcan3-*";
|
||||||
|
user = "root";
|
||||||
|
proxyJump = "hcvpnde";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,53 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.zsh.initExtra = ''
|
||||||
|
if [ -f $HOME/.nix-profile/etc/profile.d/nix.sh ];
|
||||||
|
then
|
||||||
|
source $HOME/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
function sc-log {
|
||||||
|
ssh smartcan "SYSTEMD_COLORS=true journalctl --follow --no-tail --unit smartcan-''${1:-*}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function sc-restart {
|
||||||
|
ssh smartcan "systemctl restart smartcan-''${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function fu-reboot {
|
||||||
|
ssh fusion "reboot"
|
||||||
|
}
|
||||||
|
|
||||||
|
function fu-flash {
|
||||||
|
local ssh_login="fusion"
|
||||||
|
local update_file=''${1}
|
||||||
|
|
||||||
|
if [ -z ''${update_file} ]; then
|
||||||
|
update_file=$(find build/tmp/deploy/images -name "*.swu" -type f | fzf --select-1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z ''${update_file} ]; then
|
||||||
|
echo "no file selected"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f ''${update_file} ]; then
|
||||||
|
echo "file \"''${update_file}\" does not exist"
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "flashing ''${update_file} to device..."
|
||||||
|
cat "''${update_file}" | ssh ''${ssh_login} "swupdate-client -"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "update failed"
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "rebooting device"
|
||||||
|
ssh ''${ssh_login} reboot
|
||||||
|
|
||||||
|
echo "done."
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,3 +1,3 @@
|
||||||
require("auto-session").setup {
|
require("auto-session").setup {
|
||||||
log_level = "error",
|
log_level = "error",
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,11 +25,11 @@ vim.cmd([[
|
||||||
]])
|
]])
|
||||||
|
|
||||||
dap.listeners.after.event_initialized["dapui_config"] = function()
|
dap.listeners.after.event_initialized["dapui_config"] = function()
|
||||||
dapui.open()
|
dapui.open()
|
||||||
end
|
end
|
||||||
dap.listeners.before.event_terminated["dapui_config"] = function()
|
dap.listeners.before.event_terminated["dapui_config"] = function()
|
||||||
dapui.close()
|
dapui.close()
|
||||||
end
|
end
|
||||||
dap.listeners.before.event_exited["dapui_config"] = function()
|
dap.listeners.before.event_exited["dapui_config"] = function()
|
||||||
dapui.close()
|
dapui.close()
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
{ pkgs, theme, ... }:
|
{ pkgs, theme, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
# symlink for a stable path
|
# symlink for a stable path
|
||||||
home.file.".vscode-extensions/vscode-lldb".source = pkgs.vscode-extensions.vadimcn.vscode-lldb;
|
home.file.".vscode-extensions/vscode-lldb".source = pkgs.vscode-extensions.vadimcn.vscode-lldb;
|
||||||
|
|
||||||
|
@ -29,6 +27,7 @@
|
||||||
better-escape-nvim
|
better-escape-nvim
|
||||||
|
|
||||||
nvim-treesitter.withAllGrammars
|
nvim-treesitter.withAllGrammars
|
||||||
|
nvim-treesitter-textobjects
|
||||||
markdown-preview-nvim # use({ "iamcco/markdown-preview.nvim", run = ":call mkdp#util#install()" })
|
markdown-preview-nvim # use({ "iamcco/markdown-preview.nvim", run = ":call mkdp#util#install()" })
|
||||||
toggleterm-nvim
|
toggleterm-nvim
|
||||||
nvim-notify
|
nvim-notify
|
||||||
|
@ -96,13 +95,14 @@
|
||||||
terraform-ls
|
terraform-ls
|
||||||
tflint
|
tflint
|
||||||
bash-language-server
|
bash-language-server
|
||||||
nodePackages.dockerfile-language-server-nodejs
|
|
||||||
nodePackages.eslint_d
|
|
||||||
nodePackages.prettier
|
|
||||||
nodePackages.typescript
|
|
||||||
nodePackages.typescript-language-server
|
|
||||||
nodePackages.vscode-langservers-extracted
|
|
||||||
nodePackages.yaml-language-server
|
nodePackages.yaml-language-server
|
||||||
|
nodePackages.prettier
|
||||||
|
nodePackages.eslint_d
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
nodePackages.typescript
|
||||||
|
nodePackages.dockerfile-language-server-nodejs
|
||||||
|
nodePackages.vscode-langservers-extracted
|
||||||
|
vscode-extensions.vue.volar
|
||||||
lldb
|
lldb
|
||||||
vscode-extensions.vadimcn.vscode-lldb
|
vscode-extensions.vadimcn.vscode-lldb
|
||||||
marksman
|
marksman
|
||||||
|
@ -111,6 +111,16 @@
|
||||||
texlab
|
texlab
|
||||||
nixd
|
nixd
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
bitbake-language-server
|
||||||
|
(python3.withPackages (ps: with ps; [
|
||||||
|
pep8
|
||||||
|
autopep8
|
||||||
|
python-lsp-server
|
||||||
|
]))
|
||||||
|
pyright
|
||||||
|
|
||||||
|
#clipboard
|
||||||
|
xclip
|
||||||
];
|
];
|
||||||
|
|
||||||
extraLuaPackages = luaPackages: [
|
extraLuaPackages = luaPackages: [
|
||||||
|
@ -151,17 +161,11 @@
|
||||||
${builtins.readFile ./project-nvim.lua }
|
${builtins.readFile ./project-nvim.lua }
|
||||||
${builtins.readFile ./dap.lua }
|
${builtins.readFile ./dap.lua }
|
||||||
${builtins.readFile ./neorg.lua }
|
${builtins.readFile ./neorg.lua }
|
||||||
|
${builtins.readFile ./illuminate.lua }
|
||||||
|
|
||||||
vim.g.gitblame_date_format = "%r"
|
vim.g.gitblame_date_format = "%r"
|
||||||
|
|
||||||
-- setup illuminate highlight groups
|
|
||||||
vim.api.nvim_set_hl(0, "IlluminatedWordText", { bold = true })
|
|
||||||
vim.api.nvim_set_hl(0, "IlluminatedWordRead", { link = "IlluminatedWordText" })
|
|
||||||
vim.api.nvim_set_hl(0, "IlluminatedWordWrite", { link = "IlluminatedWordText" })
|
|
||||||
EOF
|
EOF
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
local illuminate = require("illuminate")
|
||||||
|
|
||||||
|
illuminate.configure({
|
||||||
|
providers = {
|
||||||
|
"lsp", "treesitter", "regex",
|
||||||
|
},
|
||||||
|
under_cursor = true,
|
||||||
|
})
|
|
@ -1,5 +1,5 @@
|
||||||
require("ibl").setup {
|
require("ibl").setup {
|
||||||
indent = {
|
indent = {
|
||||||
char = "┊",
|
char = "┊",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
local function nnoremap(key, command)
|
local function nnoremap(key, command)
|
||||||
vim.api.nvim_set_keymap("n", key, command, { noremap = true })
|
vim.api.nvim_set_keymap("n", key, command, { noremap = true })
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
|
@ -27,13 +27,13 @@ local telescope_themes = require("telescope.themes")
|
||||||
local telescope_projects = require("telescope").extensions.projects
|
local telescope_projects = require("telescope").extensions.projects
|
||||||
|
|
||||||
local function map_telescope(key, telescope_function)
|
local function map_telescope(key, telescope_function)
|
||||||
vim.api.nvim_set_keymap("n", key, "", {
|
vim.api.nvim_set_keymap("n", key, "", {
|
||||||
noremap = true,
|
noremap = true,
|
||||||
callback = function()
|
callback = function()
|
||||||
local theme = telescope_themes.get_dropdown({ layout_config = { width = 0.9 } })
|
local theme = telescope_themes.get_dropdown({ layout_config = { width = 0.9 } })
|
||||||
telescope_function(theme)
|
telescope_function(theme)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
map_telescope("<leader>ff", telescope.find_files)
|
map_telescope("<leader>ff", telescope.find_files)
|
||||||
|
@ -47,16 +47,16 @@ map_telescope("<C-g>", telescope.live_grep)
|
||||||
|
|
||||||
-- terminal
|
-- terminal
|
||||||
vim.api.nvim_create_autocmd("TermOpen", {
|
vim.api.nvim_create_autocmd("TermOpen", {
|
||||||
pattern = "term://*",
|
pattern = "term://*",
|
||||||
callback = function()
|
callback = function()
|
||||||
local opts = { noremap = true }
|
local opts = { noremap = true }
|
||||||
vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts)
|
vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts)
|
||||||
vim.api.nvim_buf_set_keymap(0, 't', '<C-h>', [[<C-\><C-n><C-W>h]], opts)
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-h>', [[<C-\><C-n><C-W>h]], opts)
|
||||||
vim.api.nvim_buf_set_keymap(0, 't', '<C-j>', [[<C-\><C-n><C-W>j]], opts)
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-j>', [[<C-\><C-n><C-W>j]], opts)
|
||||||
vim.api.nvim_buf_set_keymap(0, 't', '<C-k>', [[<C-\><C-n><C-W>k]], opts)
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-k>', [[<C-\><C-n><C-W>k]], opts)
|
||||||
vim.api.nvim_buf_set_keymap(0, 't', '<C-l>', [[<C-\><C-n><C-W>l]], opts)
|
vim.api.nvim_buf_set_keymap(0, 't', '<C-l>', [[<C-\><C-n><C-W>l]], opts)
|
||||||
end,
|
end,
|
||||||
desc = "Map terminal esc and window switch keys",
|
desc = "Map terminal esc and window switch keys",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- buffer closing
|
-- buffer closing
|
||||||
|
|
|
@ -1,154 +1,170 @@
|
||||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
||||||
|
|
||||||
local on_attach = function(client, bufnr)
|
local on_attach = function(client, bufnr)
|
||||||
local function nnoremap(key, command)
|
local function nnoremap(key, command)
|
||||||
vim.keymap.set("n", key, command, { noremap = true, silent = true, buffer = bufnr })
|
vim.keymap.set("n", key, command, { noremap = true, silent = true, buffer = bufnr })
|
||||||
end
|
end
|
||||||
|
|
||||||
local function format_buffer()
|
local function format_buffer()
|
||||||
vim.lsp.buf.format({
|
vim.lsp.buf.format({
|
||||||
timeout_ms = 3000,
|
timeout_ms = 3000,
|
||||||
async = false,
|
async = false,
|
||||||
filter = function(formatter)
|
filter = function(formatter)
|
||||||
return formatter.name ~= "tsserver" and formatter.name ~= "volar"
|
return formatter.name ~= "tsserver" and formatter.name ~= "volar"
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
require("lsp-inlayhints").on_attach(client, bufnr)
|
require("lsp-inlayhints").on_attach(client, bufnr)
|
||||||
|
|
||||||
local telescope = require("telescope.builtin")
|
local telescope = require("telescope.builtin")
|
||||||
|
|
||||||
nnoremap("gD", vim.lsp.buf.declaration)
|
nnoremap("gD", vim.lsp.buf.declaration)
|
||||||
nnoremap("gd", telescope.lsp_definitions)
|
nnoremap("gd", telescope.lsp_definitions)
|
||||||
nnoremap("gt", telescope.lsp_type_definitions)
|
nnoremap("gt", telescope.lsp_type_definitions)
|
||||||
nnoremap("gi", telescope.lsp_implementations)
|
nnoremap("gi", telescope.lsp_implementations)
|
||||||
nnoremap("gr", telescope.lsp_references)
|
nnoremap("gr", telescope.lsp_references)
|
||||||
nnoremap("K", vim.lsp.buf.hover)
|
nnoremap("K", vim.lsp.buf.hover)
|
||||||
nnoremap("<leader>rn", vim.lsp.buf.rename)
|
nnoremap("<leader>rn", vim.lsp.buf.rename)
|
||||||
nnoremap("<leader>ca", vim.lsp.buf.code_action)
|
nnoremap("<leader>ca", vim.lsp.buf.code_action)
|
||||||
nnoremap("<leader>f", format_buffer)
|
nnoremap("<leader>f", format_buffer)
|
||||||
nnoremap("<leader>d", telescope.diagnostics)
|
nnoremap("<leader>d", telescope.diagnostics)
|
||||||
nnoremap("<leader>D", require("lsp_lines").toggle)
|
nnoremap("<leader>D", require("lsp_lines").toggle)
|
||||||
nnoremap("<C-p>", vim.diagnostic.goto_prev)
|
nnoremap("<C-p>", vim.diagnostic.goto_prev)
|
||||||
nnoremap("<C-n>", vim.diagnostic.goto_next)
|
nnoremap("<C-n>", vim.diagnostic.goto_next)
|
||||||
|
nnoremap("<M-o>", ":ClangdSwitchSourceHeader<CR>")
|
||||||
|
|
||||||
if client.supports_method("textDocument/formatting") then
|
if client.supports_method("textDocument/formatting") then
|
||||||
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
||||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||||
group = augroup,
|
group = augroup,
|
||||||
buffer = bufnr,
|
buffer = bufnr,
|
||||||
callback = format_buffer,
|
callback = format_buffer,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
require("lsp-inlayhints").setup({})
|
require("lsp-inlayhints").setup({})
|
||||||
|
|
||||||
local lsp_status = require("lsp-status")
|
local lsp_status = require("lsp-status")
|
||||||
lsp_status.config({
|
lsp_status.config({
|
||||||
current_function = false,
|
current_function = false,
|
||||||
show_filename = false,
|
show_filename = false,
|
||||||
diagnostics = true,
|
diagnostics = true,
|
||||||
status_symbol = "",
|
status_symbol = "",
|
||||||
})
|
})
|
||||||
lsp_status.register_progress()
|
lsp_status.register_progress()
|
||||||
|
|
||||||
-- setup lua language server for init.nvim and nvim plugin development
|
-- setup lua language server for init.nvim and nvim plugin development
|
||||||
require("neodev").setup({
|
require("neodev").setup({
|
||||||
override = function(root_dir, options)
|
override = function(root_dir, options)
|
||||||
if require("neodev.util").has_file(root_dir, "/etc/nixos") then
|
if require("neodev.util").has_file(root_dir, "/etc/nixos") then
|
||||||
options.enabled = true
|
options.enabled = true
|
||||||
options.plugins = true
|
options.plugins = true
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities(lsp_status.capabilities)
|
local capabilities = require("cmp_nvim_lsp").default_capabilities(lsp_status.capabilities)
|
||||||
|
|
||||||
local servers = {
|
local servers = {
|
||||||
["bashls"] = {},
|
["bashls"] = {},
|
||||||
["clangd"] = {},
|
["bitbake_language_server"] = {},
|
||||||
["cmake"] = {},
|
["clangd"] = {},
|
||||||
["dockerls"] = {},
|
["cmake"] = {},
|
||||||
["eslint"] = {},
|
["dockerls"] = {},
|
||||||
["html"] = {},
|
["eslint"] = {},
|
||||||
["jsonls"] = {},
|
["html"] = {},
|
||||||
["lua_ls"] = {
|
["jsonls"] = {},
|
||||||
Lua = {
|
["lua_ls"] = {
|
||||||
runtime = {
|
Lua = {
|
||||||
version = "LuaJIT",
|
runtime = {
|
||||||
},
|
version = "LuaJIT",
|
||||||
diagnostics = {
|
},
|
||||||
globals = { "vim" },
|
diagnostics = {
|
||||||
},
|
globals = { "vim" },
|
||||||
workspace = {
|
},
|
||||||
library = vim.api.nvim_get_runtime_file("", true),
|
workspace = {
|
||||||
},
|
library = vim.api.nvim_get_runtime_file("", true),
|
||||||
telemetry = {
|
},
|
||||||
enable = false,
|
telemetry = {
|
||||||
},
|
enable = false,
|
||||||
|
},
|
||||||
|
format = {
|
||||||
|
enable = true,
|
||||||
|
defaultConfig = {
|
||||||
|
indent_style = "space",
|
||||||
|
indent_size = "2",
|
||||||
},
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
["marksman"] = {},
|
},
|
||||||
["nixd"] = {},
|
["marksman"] = {},
|
||||||
["pylsp"] = {
|
["nixd"] = {},
|
||||||
pylsp = {
|
["pylsp"] = {
|
||||||
plugins = {
|
pylsp = {
|
||||||
pycodestyle = {
|
plugins = {
|
||||||
maxLineLength = 120
|
autopep8 = {
|
||||||
}
|
enabled = true
|
||||||
}
|
},
|
||||||
|
flake8 = {
|
||||||
|
enabled = true
|
||||||
|
},
|
||||||
|
pycodestyle = {
|
||||||
|
maxLineLength = 120,
|
||||||
|
enabled = true,
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
["pyright"] = {},
|
}
|
||||||
["terraformls"] = {},
|
},
|
||||||
["texlab"] = {},
|
["pyright"] = {},
|
||||||
["tflint"] = {},
|
["terraformls"] = {},
|
||||||
["tsserver"] = {},
|
["texlab"] = {},
|
||||||
["yamlls"] = {
|
["tflint"] = {},
|
||||||
yaml = {
|
["tsserver"] = {},
|
||||||
keyOrdering = false
|
["yamlls"] = {
|
||||||
}
|
yaml = {
|
||||||
},
|
keyOrdering = false
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local lspconfig = require("lspconfig")
|
local lspconfig = require("lspconfig")
|
||||||
|
|
||||||
for lsp, settings in pairs(servers) do
|
for lsp, settings in pairs(servers) do
|
||||||
lspconfig[lsp].setup({
|
lspconfig[lsp].setup({
|
||||||
settings = settings,
|
settings = settings,
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
-- setup rustaceanvim
|
-- setup rustaceanvim
|
||||||
vim.g.rustaceanvim = {
|
vim.g.rustaceanvim = {
|
||||||
server = {
|
server = {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
settings = {
|
settings = {
|
||||||
["rust-analyzer"] = {
|
["rust-analyzer"] = {
|
||||||
cargo = {
|
cargo = {
|
||||||
loadOutDirsFromCheck = true,
|
loadOutDirsFromCheck = true,
|
||||||
},
|
|
||||||
checkOnSave = { command = "clippy" },
|
|
||||||
procMacro = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
checkOnSave = { command = "clippy" },
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- setup null-ls for markdown formatting
|
-- setup null-ls for markdown formatting
|
||||||
local null_ls = require("null-ls")
|
local null_ls = require("null-ls")
|
||||||
null_ls.setup({
|
null_ls.setup({
|
||||||
sources = {
|
sources = {
|
||||||
null_ls.builtins.formatting.prettier,
|
null_ls.builtins.formatting.prettier,
|
||||||
null_ls.builtins.diagnostics.tsc,
|
null_ls.builtins.diagnostics.tsc,
|
||||||
},
|
},
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- setup lsp_lines
|
-- setup lsp_lines
|
||||||
|
@ -156,29 +172,29 @@ require("lsp_lines").setup()
|
||||||
|
|
||||||
-- setup vim diagnostics
|
-- setup vim diagnostics
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
virtual_text = false,
|
virtual_text = false,
|
||||||
signs = true,
|
signs = true,
|
||||||
update_in_insert = true,
|
update_in_insert = true,
|
||||||
underline = true,
|
underline = true,
|
||||||
severity_sort = true,
|
severity_sort = true,
|
||||||
float = {
|
float = {
|
||||||
border = "rounded",
|
border = "rounded",
|
||||||
source = "always",
|
source = true,
|
||||||
header = "",
|
header = "",
|
||||||
prefix = "",
|
prefix = "",
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- setup diagnostics signs
|
-- setup diagnostics signs
|
||||||
local diagnostics_signs = { Error = "", Warn = "", Hint = "", Info = "" }
|
local diagnostics_signs = { Error = "", Warn = "", Hint = "", Info = "" }
|
||||||
for type, icon in pairs(diagnostics_signs) do
|
for type, icon in pairs(diagnostics_signs) do
|
||||||
local hl = "DiagnosticSign" .. type
|
local hl = "DiagnosticSign" .. type
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- setup volar
|
-- setup volar
|
||||||
lspconfig["volar"].setup({
|
lspconfig["volar"].setup({
|
||||||
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json' },
|
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json' },
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require('lualine').setup({
|
require('lualine').setup({
|
||||||
options = { globalstatus = true },
|
options = { globalstatus = true },
|
||||||
sections = {
|
sections = {
|
||||||
lualine_c = { { "filename", path = 1 }, "require('lsp-status').status()" }
|
lualine_c = { { "filename", path = 1 }, "require('lsp-status').status()" }
|
||||||
},
|
},
|
||||||
extensions = { "toggleterm" }
|
extensions = { "toggleterm" }
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
local neorg = require("neorg")
|
local neorg = require("neorg")
|
||||||
|
|
||||||
neorg.setup({
|
neorg.setup({
|
||||||
load = {
|
load = {
|
||||||
["core.defaults"] = {},
|
["core.defaults"] = {},
|
||||||
["core.concealer"] = {},
|
["core.concealer"] = {},
|
||||||
["core.dirman"] = {
|
["core.dirman"] = {
|
||||||
config = {
|
config = {
|
||||||
workspaces = {
|
workspaces = {
|
||||||
notes = "~/notes",
|
notes = "~/notes",
|
||||||
},
|
|
||||||
default_workspace = "notes",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
default_workspace = "notes",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,87 +1,87 @@
|
||||||
local has_words_before = function()
|
local has_words_before = function()
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||||
return col ~= 0 and
|
return col ~= 0 and
|
||||||
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
|
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(
|
||||||
col, col):match("%s") == nil
|
col, col):match("%s") == nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
local luasnip = require("luasnip")
|
local luasnip = require("luasnip")
|
||||||
|
|
||||||
cmp.setup({
|
cmp.setup({
|
||||||
snippet = {
|
snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
luasnip.lsp_expand(args.body)
|
luasnip.lsp_expand(args.body)
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
sources = cmp.config.sources({
|
sources = cmp.config.sources({
|
||||||
{ name = "nvim_lsp" },
|
{ name = "nvim_lsp" },
|
||||||
{ name = "nvim_lsp_signature_help" },
|
{ name = "nvim_lsp_signature_help" },
|
||||||
{ name = "luasnip" },
|
{ name = "luasnip" },
|
||||||
{ name = "path" },
|
{ name = "path" },
|
||||||
{ name = "buffer" },
|
{ name = "buffer" },
|
||||||
{ name = "nvim-lua" },
|
{ name = "nvim-lua" },
|
||||||
{ name = "calc" },
|
{ name = "calc" },
|
||||||
}),
|
}),
|
||||||
mapping = cmp.mapping.preset.insert({
|
mapping = cmp.mapping.preset.insert({
|
||||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
["<C-Space>"] = cmp.mapping.complete({}),
|
["<C-Space>"] = cmp.mapping.complete({}),
|
||||||
["<C-e>"] = cmp.mapping.abort(),
|
["<C-e>"] = cmp.mapping.abort(),
|
||||||
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
cmp.select_next_item()
|
cmp.select_next_item()
|
||||||
elseif luasnip.expand_or_jumpable() then
|
elseif luasnip.expand_or_jumpable() then
|
||||||
luasnip.expand_or_jump()
|
luasnip.expand_or_jump()
|
||||||
elseif has_words_before() then
|
elseif has_words_before() then
|
||||||
cmp.complete()
|
cmp.complete()
|
||||||
else
|
else
|
||||||
fallback()
|
fallback()
|
||||||
end
|
end
|
||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
cmp.select_prev_item()
|
cmp.select_prev_item()
|
||||||
elseif luasnip.jumpable(-1) then
|
elseif luasnip.jumpable(-1) then
|
||||||
luasnip.jump(-1)
|
luasnip.jump(-1)
|
||||||
else
|
else
|
||||||
fallback()
|
fallback()
|
||||||
end
|
end
|
||||||
end, { "i", "s" }),
|
end, { "i", "s" }),
|
||||||
}),
|
}),
|
||||||
experimental = { ghost_text = true },
|
experimental = { ghost_text = true },
|
||||||
window = {
|
window = {
|
||||||
completion = cmp.config.window.bordered(),
|
completion = cmp.config.window.bordered(),
|
||||||
documentation = cmp.config.window.bordered(),
|
documentation = cmp.config.window.bordered(),
|
||||||
},
|
},
|
||||||
formatting = {
|
formatting = {
|
||||||
fields = { "menu", "abbr", "kind" },
|
fields = { "menu", "abbr", "kind" },
|
||||||
format = function(entry, item)
|
format = function(entry, item)
|
||||||
local menu_icon = {
|
local menu_icon = {
|
||||||
nvim_lsp = "λ",
|
nvim_lsp = "λ",
|
||||||
luasnip = "⋗",
|
luasnip = "⋗",
|
||||||
buffer = "Ω",
|
buffer = "Ω",
|
||||||
path = "🖿",
|
path = "🖿",
|
||||||
}
|
}
|
||||||
|
|
||||||
item.menu = menu_icon[entry.source.name]
|
item.menu = menu_icon[entry.source.name]
|
||||||
return item
|
return item
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- `/` cmdline setup.
|
-- `/` cmdline setup.
|
||||||
cmp.setup.cmdline("/", {
|
cmp.setup.cmdline("/", {
|
||||||
sources = cmp.config.sources(
|
sources = cmp.config.sources(
|
||||||
{ name = "buffer" }
|
{ name = "buffer" }
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
-- `:` cmdline setup.
|
-- `:` cmdline setup.
|
||||||
cmp.setup.cmdline(":", {
|
cmp.setup.cmdline(":", {
|
||||||
sources = cmp.config.sources(
|
sources = cmp.config.sources(
|
||||||
{ name = "path" },
|
{ name = "path" },
|
||||||
{ name = "cmdline" }
|
{ name = "cmdline" }
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -5,8 +5,8 @@ vim.opt.termguicolors = true
|
||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
|
|
||||||
-- tabwidth
|
-- tabwidth
|
||||||
vim.opt.tabstop = 4
|
vim.opt.tabstop = 2
|
||||||
vim.opt.shiftwidth = 4
|
vim.opt.shiftwidth = 2
|
||||||
|
|
||||||
-- indent with spaces
|
-- indent with spaces
|
||||||
vim.opt.expandtab = true
|
vim.opt.expandtab = true
|
||||||
|
|
|
@ -3,25 +3,25 @@ local actions = require("telescope.actions")
|
||||||
local themes = require("telescope.themes")
|
local themes = require("telescope.themes")
|
||||||
|
|
||||||
telescope.setup({
|
telescope.setup({
|
||||||
defaults = {
|
defaults = {
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = {
|
||||||
["<C-j>"] = actions.move_selection_next,
|
["<C-j>"] = actions.move_selection_next,
|
||||||
["<C-k>"] = actions.move_selection_previous,
|
["<C-k>"] = actions.move_selection_previous,
|
||||||
["<ESC>"] = actions.close,
|
["<ESC>"] = actions.close,
|
||||||
["<C-c>"] = actions.close
|
["<C-c>"] = actions.close
|
||||||
},
|
},
|
||||||
n = {
|
n = {
|
||||||
["<ESC>"] = actions.close,
|
["<ESC>"] = actions.close,
|
||||||
["<C-c>"] = actions.close
|
["<C-c>"] = actions.close
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
|
||||||
extensions = {
|
|
||||||
["ui-select"] = {
|
|
||||||
themes.get_dropdown({})
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
themes.get_dropdown({})
|
||||||
|
},
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
telescope.load_extension("fzf")
|
telescope.load_extension("fzf")
|
||||||
|
|
|
@ -1,14 +1,93 @@
|
||||||
require('nvim-treesitter.configs').setup({
|
require('nvim-treesitter.configs').setup({
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<C-space>",
|
||||||
|
node_incremental = "<C-space>",
|
||||||
|
node_decremental = "<bs>",
|
||||||
|
scope_incremental = false,
|
||||||
},
|
},
|
||||||
incremental_selection = {
|
},
|
||||||
|
textobjects = {
|
||||||
|
select = {
|
||||||
|
enable = true,
|
||||||
|
lookahead = true,
|
||||||
|
keymaps = {
|
||||||
|
["a="] = { query = "@assignment.outer", desc = "Select outer part of an assignment" },
|
||||||
|
["i="] = { query = "@assignment.inner", desc = "Select inner part of an assignment" },
|
||||||
|
["l="] = { query = "@assignment.lhs", desc = "Select left hand side of an assignment" },
|
||||||
|
["r="] = { query = "@assignment.rhs", desc = "Select right hand side of an assignment" },
|
||||||
|
|
||||||
|
["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
|
||||||
|
["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
|
||||||
|
|
||||||
|
["ai"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
|
||||||
|
["ii"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
|
||||||
|
|
||||||
|
["al"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
|
||||||
|
["il"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
|
||||||
|
|
||||||
|
["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
|
||||||
|
["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
|
||||||
|
|
||||||
|
["am"] = { query = "@function.outer", desc = "Select outer part of a method/function definition" },
|
||||||
|
["im"] = { query = "@function.inner", desc = "Select inner part of a method/function definition" },
|
||||||
|
|
||||||
|
["ac"] = { query = "@class.outer", desc = "Select outer part of a class" },
|
||||||
|
["ic"] = { query = "@class.inner", desc = "Select inner part of a class" },
|
||||||
|
},
|
||||||
|
move = {
|
||||||
enable = true,
|
enable = true,
|
||||||
keymaps = {
|
set_jumps = true, -- whether to set jumps in the jumplist
|
||||||
init_selection = "v",
|
goto_next_start = {
|
||||||
node_decremental = "<",
|
["]f"] = { query = "@call.outer", desc = "Next function call start" },
|
||||||
node_incremental = ">",
|
["]m"] = { query = "@function.outer", desc = "Next method/function def start" },
|
||||||
scope_incremental = false,
|
["]c"] = { query = "@class.outer", desc = "Next class start" },
|
||||||
|
["]i"] = { query = "@conditional.outer", desc = "Next conditional start" },
|
||||||
|
["]l"] = { query = "@loop.outer", desc = "Next loop start" },
|
||||||
|
|
||||||
|
-- You can pass a query group to use query from `queries/<lang>/<query_group>.scm file in your runtime path.
|
||||||
|
-- Below example nvim-treesitter's `locals.scm` and `folds.scm`. They also provide highlights.scm and indent.scm.
|
||||||
|
["]s"] = { query = "@scope", query_group = "locals", desc = "Next scope" },
|
||||||
|
["]z"] = { query = "@fold", query_group = "folds", desc = "Next fold" },
|
||||||
},
|
},
|
||||||
|
goto_next_end = {
|
||||||
|
["]F"] = { query = "@call.outer", desc = "Next function call end" },
|
||||||
|
["]M"] = { query = "@function.outer", desc = "Next method/function def end" },
|
||||||
|
["]C"] = { query = "@class.outer", desc = "Next class end" },
|
||||||
|
["]I"] = { query = "@conditional.outer", desc = "Next conditional end" },
|
||||||
|
["]L"] = { query = "@loop.outer", desc = "Next loop end" },
|
||||||
|
},
|
||||||
|
goto_previous_start = {
|
||||||
|
["[f"] = { query = "@call.outer", desc = "Prev function call start" },
|
||||||
|
["[m"] = { query = "@function.outer", desc = "Prev method/function def start" },
|
||||||
|
["[c"] = { query = "@class.outer", desc = "Prev class start" },
|
||||||
|
["[i"] = { query = "@conditional.outer", desc = "Prev conditional start" },
|
||||||
|
["[l"] = { query = "@loop.outer", desc = "Prev loop start" },
|
||||||
|
},
|
||||||
|
goto_previous_end = {
|
||||||
|
["[F"] = { query = "@call.outer", desc = "Prev function call end" },
|
||||||
|
["[M"] = { query = "@function.outer", desc = "Prev method/function def end" },
|
||||||
|
["[C"] = { query = "@class.outer", desc = "Prev class end" },
|
||||||
|
["[I"] = { query = "@conditional.outer", desc = "Prev conditional end" },
|
||||||
|
["[L"] = { query = "@loop.outer", desc = "Prev loop end" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lsp_interop = {
|
||||||
|
enable = true,
|
||||||
|
border = 'none',
|
||||||
|
floating_preview_opts = {},
|
||||||
|
peek_definition_code = {
|
||||||
|
["<leader>df"] = "@function.outer",
|
||||||
|
["<leader>dF"] = "@class.outer",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.picocom ];
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.podman ];
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
{ pkgs, user, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.username = user;
|
||||||
|
home.homeDirectory = "/home/${user}";
|
||||||
|
|
||||||
|
home.stateVersion = "24.05"; # Please read the comment before changing.
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
pavucontrol
|
||||||
|
gnumake
|
||||||
|
gcc
|
||||||
|
thunderbird
|
||||||
|
keepassxc
|
||||||
|
light
|
||||||
|
element-desktop
|
||||||
|
darktable
|
||||||
|
kubectl
|
||||||
|
kubectx
|
||||||
|
simple-scan
|
||||||
|
calibre
|
||||||
|
libreoffice
|
||||||
|
gthumb
|
||||||
|
gimp
|
||||||
|
evince
|
||||||
|
inkscape
|
||||||
|
chromium
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./firefox.nix
|
||||||
|
./kitty.nix
|
||||||
|
./nextcloud.nix
|
||||||
|
./sway
|
||||||
|
];
|
||||||
|
}
|
|
@ -5,4 +5,3 @@
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
difftastic
|
||||||
|
htop
|
||||||
|
jq
|
||||||
|
unzip
|
||||||
|
xclip
|
||||||
|
];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./bat.nix
|
||||||
|
./carapace.nix
|
||||||
|
./direnv.nix
|
||||||
|
./eza.nix
|
||||||
|
./fzf.nix
|
||||||
|
./ripgrep.nix
|
||||||
|
./rsync.nix
|
||||||
|
./shell_aliases.nix
|
||||||
|
./starship.nix
|
||||||
|
./tree.nix
|
||||||
|
./zoxide.nix
|
||||||
|
./zsh.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.eza = {
|
||||||
|
enable = true;
|
||||||
|
git = true;
|
||||||
|
extraOptions = [ "--group-directories-first" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
ripgrep = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.rsync ];
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.shellAliases = {
|
||||||
|
g = "git";
|
||||||
|
gg = "git graph";
|
||||||
|
gs = "git status";
|
||||||
|
gd = "git diff";
|
||||||
|
k = "kubectl";
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.tree ];
|
||||||
|
}
|
|
@ -6,4 +6,3 @@
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,10 @@ in
|
||||||
highlight = zsh_autosuggest_highlight_style;
|
highlight = zsh_autosuggest_highlight_style;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
syntaxHighlighting = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
function set_win_title(){
|
function set_win_title(){
|
||||||
local TITLE=$(git config --get remote.origin.url || echo "$PWD")
|
local TITLE=$(git config --get remote.origin.url || echo "$PWD")
|
||||||
|
@ -21,11 +25,5 @@ in
|
||||||
|
|
||||||
precmd_functions+=(set_win_title)
|
precmd_functions+=(set_win_title)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
shellAliases = {
|
|
||||||
ls = "eza --group-directories-first --git";
|
|
||||||
neovide = "neovide --multigrid";
|
|
||||||
xclip = "xclip -selection clipboard";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
Loading…
Reference in New Issue