Skip to content

Commit

Permalink
Replace Joplin by nb
Browse files Browse the repository at this point in the history
  • Loading branch information
rake5k committed Sep 21, 2023
1 parent 5a2e38a commit 29e106b
Show file tree
Hide file tree
Showing 8 changed files with 239 additions and 67 deletions.
12 changes: 0 additions & 12 deletions home/programs/xmonad/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -129,18 +129,6 @@ in
type = types.str;
description = "Command to spawn the default terminal emulator";
};

wiki = {
command = mkOption {
type = types.str;
description = "Command to spawn the default wiki app";
};
wmClassName = mkOption {
type = types.str;
description = "Window manager class name retrieved via `xprop` utility";
};
};

};
};

Expand Down
4 changes: 2 additions & 2 deletions home/programs/xmonad/xmonad.hs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ pkgs.writeText "xmonad.hs" ''
h = (3/4)
x = center w
y = center h
spawnWiki = "${cfg.wiki.command}"
findWiki = className =? "${cfg.wiki.wmClassName}"
spawnWiki = myTerminal ++ " -t wiki -e nb --interactive ls"
findWiki = title =? "wiki"
manageWiki = customFloating $ W.RationalRect x y w h
where
w = (4/5)
Expand Down
4 changes: 0 additions & 4 deletions home/roles/desktop/xmonad/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,6 @@ in
command = mkDefault "1password";
wmClassName = mkDefault "1Password";
};
wiki = {
command = mkDefault "joplin-desktop";
wmClassName = mkDefault "Joplin";
};
};
};
};
Expand Down
1 change: 0 additions & 1 deletion home/roles/web/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ in
_1password
_1password-gui
bind
joplin-desktop
wget
thunderbird

Expand Down
2 changes: 1 addition & 1 deletion home/users/christian/shell/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ in
gron
htop
killall
nb
neofetch
pandoc
texlive.combined.scheme-small
Expand All @@ -67,7 +68,6 @@ in

programs = {
ssh = import ./ssh.nix;
zsh = import ./zsh.nix;

bat.enable = true;
exa.enable = true;
Expand Down
47 changes: 0 additions & 47 deletions home/users/christian/shell/zsh.nix

This file was deleted.

174 changes: 174 additions & 0 deletions home/users/christian/shell/zsh/completions/_nb
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
#compdef nb
###############################################################################
# __ _
# \ \ _ __ | |__
# \ \ | '_ \| '_ \
# / / | | | | |_) |
# /_/ |_| |_|_.__/
#
# [nb] Command line and local web note-taking, bookmarking, and archiving with
# plain text data storage, encryption, filtering and search, pinning, #tagging,
# Git-backed versioning and syncing, Pandoc-backed conversion, global and local
# notebooks, customizable color themes, [[wiki-style linking]], plugins, and
# more in a single portable, user-friendly script.
#
# https://github.com/xwmx/nb
###############################################################################
_nb_subcommands() {
# _nb_cache_completions()
#
# Usage:
# _nb_cache_completions <path>
#
# Description:
# Cache completions for `nb`. Generating completions can be slow and
# native shell caching doesn't appear to help.
_nb_cache_completions() {
local _cache_path="${1:-}"

[[ -z "${_cache_path:-}" ]] && return 0

# Remove outdated cache files.

local _base_cache_path="${_cache_path%-*}"

local __suffix=
for __suffix in "zsh" "v1"
do
if [[ -e "${_base_cache_path:?}-${__suffix:?}" ]]
then
\rm -f "${_base_cache_path:?}-${__suffix:?}"
fi
done

# Rebuild completion cache.

local _commands=
IFS=$'\n' _commands=($(nb subcommands))

local _notebooks=
IFS=$'\n' _notebooks=($(nb notebooks --names --no-color --unarchived))

local _completions=()
IFS=$'\n' _completions=(${_commands[@]})

local _commands_cached=
local _notebooks_cached=

if [[ -e "${_cache_path}" ]]
then
local _counter=0

local __line=
while IFS= read -r __line
do
_counter=$((_counter+1))

if [[ "${_counter}" == 1 ]]
then
_commands_cached="${__line}"
elif [[ "${_counter}" == 2 ]]
then
_notebooks_cached="${__line}"
else
break
fi
done < "${_cache_path}"
fi

if [[ "${_commands_cached}" != "${_commands[*]:-}" ]] ||
[[ "${_notebooks_cached}" != "${_notebooks[*]:-}" ]]
then
# Construct <notebook>:<subcommand> completions.
local __notebook=
for __notebook in "${_notebooks[@]}"
do
local __command=
for __command in "${_commands[@]}"
do
if [[ -n "${__notebook:-}" ]] &&
[[ -n "${__command:-}" ]]
then
_completions+=("${__notebook}:${__command}")
fi
done
done

local _directory_path=
_directory_path="$(dirname "${_cache_path}")"

mkdir -p "${_directory_path}"

if [[ -f "${_cache_path:?}" ]]
then
\rm -f "${_cache_path:?}"
fi

touch "${_cache_path:?}"

{
(IFS=$' '; printf "%s\\n" "${_commands[*]}")
(IFS=$' '; printf "%s\\n" "${_notebooks[*]}")
printf "%s\\n" "${_completions[@]}"
} >> "${_cache_path}"
fi
}

local _nb_dir=
_nb_dir="$(nb env | grep 'NB_DIR' | cut -d = -f 2)"

if [[ -z "${_nb_dir:?}" ]] ||
[[ ! -e "${_nb_dir}" ]]
then
return 0
elif [[ -L "${_nb_dir}" ]]
then
if hash "realpath" 2>/dev/null
then
_nb_dir="$(realpath "${_nb_dir}")"
else
_nb_dir="$(readlink "${_nb_dir}")"
fi
fi

if [[ ! -d "${_nb_dir}" ]]
then
return 0
fi

local _cache_path="${_nb_dir:?}/.cache/nb-completion-cache-v2"
local _completions_cached=()

if [[ ! -e "${_cache_path}" ]]
then
_nb_cache_completions "${_cache_path}"
fi

if [[ -e "${_cache_path}" ]]
then
local _counter=0

local __line=
while IFS= read -r __line
do
_counter=$((_counter+1))

if [[ "${_counter}" -gt 2 ]]
then
_completions_cached+=("${__line}")
fi
done < "${_cache_path}"

(_nb_cache_completions "${_cache_path}" &)
fi

if [[ "${?}" -eq 0 ]]
then
compadd -- "${_completions_cached[@]}"
return 0
else
return 1
fi
}

_nb_subcommands "$@"
62 changes: 62 additions & 0 deletions home/users/christian/shell/zsh/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{ config, lib, pkgs, ... }:

with lib;

{
home = {
file = {
"${config.programs.zsh.dotDir}/completions".source = ./completions;
};
};

programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
enableSyntaxHighlighting = true;
autocd = true;
dotDir = ".config/zsh";
dirHashes = {
bb = "/mnt/bluecare/bluecare";
bh = "/mnt/bluecare/home";
bt = "/mnt/bluecare/transfer";
d = "$HOME/Documents";
dl = "$HOME/Downloads";
hh = "/mnt/home/home";
hm = "/mnt/home/music";
hp = "/mnt/home/photo";
ht = "/mnt/home/public";
hv = "/mnt/home/video";
p = "$HOME/Pictures";
usb = "/run/media/chr";
v = "$HOME/Videos";
};
history =
let
historySize = 1000000;
in
{
expireDuplicatesFirst = true;
extended = true;
ignoreDups = true;
ignoreSpace = true;
path = "$ZDOTDIR/.zsh_history";
save = historySize;
share = true;
size = historySize;
};
initExtraBeforeCompInit = ''
fpath=(~/.zsh/completion $fpath)
'';
shellGlobalAliases = {
"..." = "../..";
"...." = "../../..";
"....." = "../../../..";
"......" = "../../../../..";
"......." = "../../../../../..";
"........" = "../../../../../../..";
G = "| grep";
UUID = "$(uuidgen | tr -d \\n)";
};
};
}

0 comments on commit 29e106b

Please sign in to comment.