Get rid of neomutt and neovim
This commit is contained in:
parent
afa2c88f6a
commit
18ec940162
13 changed files with 10 additions and 3158 deletions
|
@ -40,10 +40,6 @@ let
|
||||||
};
|
};
|
||||||
msmtp.enable = true;
|
msmtp.enable = true;
|
||||||
mu.enable = true;
|
mu.enable = true;
|
||||||
neomutt = {
|
|
||||||
enable = true;
|
|
||||||
sendMailCommand = "msmtpq --read-envelope-from --read-recipients --account ${name}";
|
|
||||||
};
|
|
||||||
passwordCommand = "${passwordScript} ${passFile}";
|
passwordCommand = "${passwordScript} ${passFile}";
|
||||||
realName = "Charlotte Van Petegem";
|
realName = "Charlotte Van Petegem";
|
||||||
signature = {
|
signature = {
|
||||||
|
@ -96,9 +92,6 @@ in
|
||||||
host = "mail.vanpetegem.me";
|
host = "mail.vanpetegem.me";
|
||||||
passFile = "mail/Personal";
|
passFile = "mail/Personal";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates '^.*@cvpetegem.be$' '^charlotte\+.*@vanpetegem.me'
|
|
||||||
'';
|
|
||||||
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
||||||
primary = true;
|
primary = true;
|
||||||
};
|
};
|
||||||
|
@ -113,9 +106,6 @@ in
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Deleted Items"; };
|
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Deleted Items"; };
|
||||||
mbsync.extraConfig.account.PipelineDepth = "1";
|
mbsync.extraConfig.account.PipelineDepth = "1";
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates dodona@ugent.be
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
work-aap-we-fr = makeAccount {
|
work-aap-we-fr = makeAccount {
|
||||||
|
@ -137,9 +127,6 @@ in
|
||||||
host = "posteo.de";
|
host = "posteo.de";
|
||||||
passFile = "mail/Posteo";
|
passFile = "mail/Posteo";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates '^chvp\+.*posteo.net'
|
|
||||||
'';
|
|
||||||
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -151,9 +138,6 @@ in
|
||||||
passFile = "jonggroen/GoogleAppMail";
|
passFile = "jonggroen/GoogleAppMail";
|
||||||
useStartTls = true;
|
useStartTls = true;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates it@jonggroen.be rvb@jonggroen.be
|
|
||||||
'';
|
|
||||||
flavor = "gmail.com";
|
flavor = "gmail.com";
|
||||||
folders = {
|
folders = {
|
||||||
drafts = "[Gmail].Drafts";
|
drafts = "[Gmail].Drafts";
|
||||||
|
@ -169,9 +153,6 @@ in
|
||||||
host = "mail.vanpetegem.me";
|
host = "mail.vanpetegem.me";
|
||||||
passFile = "mail/Postbot";
|
passFile = "mail/Postbot";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates '.*@vanpetegem.me$'
|
|
||||||
'';
|
|
||||||
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -181,9 +162,6 @@ in
|
||||||
host = "mail.vanpetegem.me";
|
host = "mail.vanpetegem.me";
|
||||||
passFile = "mail/Webmaster";
|
passFile = "mail/Webmaster";
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
neomutt.extraConfig = ''
|
|
||||||
alternates root@vanpetegem.me
|
|
||||||
'';
|
|
||||||
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
folders = { drafts = "Drafts"; inbox = "INBOX"; sent = "INBOX"; trash = "Trash"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -225,8 +203,8 @@ in
|
||||||
general = {
|
general = {
|
||||||
debug = "no";
|
debug = "no";
|
||||||
default_action = "list";
|
default_action = "list";
|
||||||
editor = "nvim";
|
editor = "emacs";
|
||||||
merge_editor = "nvim, -d";
|
merge_editor = "${pkgs.writeShellScript "ediff" ''emacs --eval "(ediff-merge-files \"$1\" \"$2\")"''}";
|
||||||
};
|
};
|
||||||
"contact table" = {
|
"contact table" = {
|
||||||
display = "formatted_name";
|
display = "formatted_name";
|
||||||
|
@ -285,43 +263,6 @@ in
|
||||||
mbsync.enable = true;
|
mbsync.enable = true;
|
||||||
msmtp.enable = true;
|
msmtp.enable = true;
|
||||||
mu.enable = true;
|
mu.enable = true;
|
||||||
neomutt = {
|
|
||||||
enable = true;
|
|
||||||
sidebar = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
auto_view text/html
|
|
||||||
|
|
||||||
set mail_check_stats
|
|
||||||
set query_command = "${pkgs.khard}/bin/khard email -p %s"
|
|
||||||
set send_charset="utf-8"
|
|
||||||
set print_command = "${pkgs.wl-clipboard}/bin/wl-copy"
|
|
||||||
|
|
||||||
color normal black white
|
|
||||||
color error red white
|
|
||||||
color status white blue
|
|
||||||
color indicator white blue
|
|
||||||
color quoted yellow default
|
|
||||||
color header blue white "^(Subject)"
|
|
||||||
color header brightblue white "^(From)"
|
|
||||||
color index white red "~D" # deleted messages
|
|
||||||
color attachment green white
|
|
||||||
'';
|
|
||||||
macros = [
|
|
||||||
{
|
|
||||||
map = "index";
|
|
||||||
key = "\\Ck";
|
|
||||||
action = "<sidebar-prev><sidebar-open>";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
map = "index";
|
|
||||||
key = "\\Cj";
|
|
||||||
action = "<sidebar-next><sidebar-open>";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
vimKeys = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
imapnotify.enable = true;
|
imapnotify.enable = true;
|
||||||
|
|
|
@ -132,10 +132,8 @@ in
|
||||||
workspace 1
|
workspace 1
|
||||||
exec ${pkgs.firefox}/bin/firefox
|
exec ${pkgs.firefox}/bin/firefox
|
||||||
workspace 3
|
workspace 3
|
||||||
exec ${pkgs.kitty}/bin/kitty -e ${pkgs.tmuxinator}/bin/tmuxinator start mail
|
|
||||||
workspace 4
|
|
||||||
exec ${pkgs.gomuks}/bin/gomuks
|
exec ${pkgs.gomuks}/bin/gomuks
|
||||||
workspace 4
|
workspace 3
|
||||||
exec ${pkgs.teams}/bin/teams
|
exec ${pkgs.teams}/bin/teams
|
||||||
workspace 2
|
workspace 2
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
./global-mailer.nix
|
./global-mailer.nix
|
||||||
./gomuks.nix
|
./gomuks.nix
|
||||||
./minecraft.nix
|
./minecraft.nix
|
||||||
./neovim.nix
|
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./ovh.nix
|
./ovh.nix
|
||||||
|
|
|
@ -22,9 +22,12 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.file = {
|
home = {
|
||||||
".emacs.d/early-init.el".source = ./emacs/early-init.el;
|
file = {
|
||||||
".emacs.d/init.el".source = ./emacs/init.el;
|
".emacs.d/early-init.el".source = ./emacs/early-init.el;
|
||||||
|
".emacs.d/init.el".source = ./emacs/init.el;
|
||||||
|
};
|
||||||
|
sessionVariables = { EDITOR = "emacs"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,216 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
customPlugins = {
|
|
||||||
snow-color-theme = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "snow";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "nightsense";
|
|
||||||
repo = "snow";
|
|
||||||
rev = "f9800e987e404efed4748fe8098e04ddbec9770b";
|
|
||||||
sha256 = "099fky1bpppac5785bhx1jc26gfpm8n837p8487j1rf1lwq83q33";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
jdtls = import ../packages/jdtls/default.nix { inherit pkgs; stdenv = pkgs.stdenv; };
|
|
||||||
kotlinls = import ../packages/kotlin-language-server/default.nix { inherit pkgs; };
|
|
||||||
base = home: {
|
|
||||||
home.sessionVariables = { EDITOR = "nvim"; };
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = ''
|
|
||||||
set autoread
|
|
||||||
"" Theming
|
|
||||||
|
|
||||||
set termguicolors
|
|
||||||
set background=light
|
|
||||||
colorscheme snow
|
|
||||||
|
|
||||||
"" General settings
|
|
||||||
|
|
||||||
" Undo over sessions
|
|
||||||
set undofile
|
|
||||||
set undodir=${config.chvp.cachePrefix}${home}/.cache/nvim/undo
|
|
||||||
|
|
||||||
" Automatically save sessions on exit and load them on start
|
|
||||||
function! MakeSession()
|
|
||||||
let b:sessiondir = "${config.chvp.cachePrefix}${home}/.local/share/nvim/sessions" . getcwd()
|
|
||||||
if (filewritable(b:sessiondir) != 2)
|
|
||||||
exe 'silent !mkdir -p ' b:sessiondir
|
|
||||||
redraw!
|
|
||||||
endif
|
|
||||||
let b:filename = b:sessiondir . '/session.vim'
|
|
||||||
exe "mksession! " . b:filename
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! LoadSession()
|
|
||||||
let b:sessiondir = "${config.chvp.cachePrefix}${home}/.local/share/nvim/sessions" . getcwd()
|
|
||||||
let b:sessionfile = b:sessiondir . "/session.vim"
|
|
||||||
if (filereadable(b:sessionfile))
|
|
||||||
exe 'source ' b:sessionfile
|
|
||||||
else
|
|
||||||
echo "No session loaded."
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
if(argc() == 0)
|
|
||||||
au VimEnter * nested :call LoadSession()
|
|
||||||
au VimLeave * :call MakeSession()
|
|
||||||
endif
|
|
||||||
|
|
||||||
"" Filetype configuration
|
|
||||||
|
|
||||||
" Base settings for all files
|
|
||||||
|
|
||||||
syntax enable
|
|
||||||
set number
|
|
||||||
set showcmd
|
|
||||||
set scrolloff=8
|
|
||||||
set expandtab
|
|
||||||
set tabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set linebreak
|
|
||||||
|
|
||||||
set list
|
|
||||||
set listchars=tab:·\ ,trail:·
|
|
||||||
set inccommand=split
|
|
||||||
set clipboard=unnamedplus
|
|
||||||
|
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
"" Fuzzy search in vim
|
|
||||||
|
|
||||||
function! s:completedFiles(winid, filename, ...) abort
|
|
||||||
bdelete!
|
|
||||||
call win_gotoid(a:winid)
|
|
||||||
if filereadable(a:filename)
|
|
||||||
let lines = readfile(a:filename)
|
|
||||||
if !empty(lines)
|
|
||||||
exe ':e ' . lines[0]
|
|
||||||
endif
|
|
||||||
call delete(a:filename)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! FzyFiles()
|
|
||||||
let file = tempname()
|
|
||||||
let winid = win_getid()
|
|
||||||
let cmd = split(&shell) + split(&shellcmdflag) + ["${pkgs.ripgrep.out}/bin/rg --files --hidden -g '!/.git' --smart-case | ${pkgs.fzy.out}/bin/fzy > " . file]
|
|
||||||
let F = function('s:completedFiles', [winid, file])
|
|
||||||
botright 10 new
|
|
||||||
call termopen(cmd, {'on_exit': F})
|
|
||||||
startinsert
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:completedGrep(winid, filename, ...) abort
|
|
||||||
bdelete!
|
|
||||||
call win_gotoid(a:winid)
|
|
||||||
if filereadable(a:filename)
|
|
||||||
let lines = readfile(a:filename)
|
|
||||||
if !empty(lines)
|
|
||||||
let list = split(lines[0], ':')
|
|
||||||
let file = list[0]
|
|
||||||
let line = list[1]
|
|
||||||
exe ':e ' . file
|
|
||||||
exe line
|
|
||||||
endif
|
|
||||||
call delete(a:filename)
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! FzyGrep()
|
|
||||||
let file = tempname()
|
|
||||||
let winid = win_getid()
|
|
||||||
let cmd = split(&shell) + split(&shellcmdflag) + ["${pkgs.ripgrep.out}/bin/rg --vimgrep --hidden -g '!/.git' '^' | ${pkgs.fzy.out}/bin/fzy > " . file]
|
|
||||||
let F = function('s:completedGrep', [winid, file])
|
|
||||||
botright 10 new
|
|
||||||
call termopen(cmd, {'on_exit': F})
|
|
||||||
startinsert
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
nnoremap <C-f> :call FzyFiles()<CR>
|
|
||||||
nnoremap <C-g> :call FzyGrep()<CR>
|
|
||||||
'';
|
|
||||||
plugins = with pkgs.vimPlugins // customPlugins; [
|
|
||||||
{
|
|
||||||
plugin = ale;
|
|
||||||
config = ''
|
|
||||||
let g:ale_fix_on_save = 1
|
|
||||||
let g:ale_fixers = {
|
|
||||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
'' + (lib.optionalString config.chvp.graphical ''
|
|
||||||
\ 'javascript': ['eslint', 'remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'ledger': ['trim_whitespace'],
|
|
||||||
\ 'nix': ['nixpkgs-fmt', 'remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'ruby': ['rubocop', 'remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'typescript': ['eslint', 'remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'vue': ['prettier', 'remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
'') + ''
|
|
||||||
\}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
auto-pairs
|
|
||||||
{
|
|
||||||
plugin = deoplete-nvim;
|
|
||||||
config = ''
|
|
||||||
let g:deoplete#enable_at_startup = 1
|
|
||||||
set completeopt+=noselect
|
|
||||||
'' + lib.optionalString config.chvp.graphical ''
|
|
||||||
au VimEnter * call deoplete#custom#option('omni_patterns', {
|
|
||||||
\ 'ledger': ['[a-zA-Z][a-zA-Z: ]*'],
|
|
||||||
\})
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
editorconfig-vim
|
|
||||||
snow-color-theme
|
|
||||||
vim-nix
|
|
||||||
] ++ lib.optionals config.chvp.graphical [
|
|
||||||
kotlin-vim
|
|
||||||
{
|
|
||||||
plugin = LanguageClient-neovim;
|
|
||||||
config = ''
|
|
||||||
" Required for operations modifying multiple buffers like rename
|
|
||||||
set hidden
|
|
||||||
|
|
||||||
let g:LanguageClient_serverCommands = {
|
|
||||||
\ 'java': ['${jdtls}/bin/jdtls'],
|
|
||||||
\ 'javascript': ['${pkgs.nodePackages.javascript-typescript-langserver}/bin/javascript-typescript-stdio'],
|
|
||||||
\ 'kotlin': ['${kotlinls}/bin/kotlin-language-server'],
|
|
||||||
\ 'ruby': ['${pkgs.solargraph}/bin/solargraph', 'stdio'],
|
|
||||||
\ 'typescript': ['${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server', '--stdio'],
|
|
||||||
\ 'vue': ['${pkgs.nodePackages.vue-language-server}/bin/vls'],
|
|
||||||
\ }
|
|
||||||
|
|
||||||
function LC_maps()
|
|
||||||
if has_key(g:LanguageClient_serverCommands, &filetype)
|
|
||||||
nnoremap <buffer> <silent> K :call LanguageClient#textDocument_hover()<cr>
|
|
||||||
nnoremap <buffer> <silent> gd :call LanguageClient#textDocument_definition()<CR>
|
|
||||||
nnoremap <buffer> <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
autocmd FileType * call LC_maps()
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
vim-ledger
|
|
||||||
vim-ruby
|
|
||||||
vim-vue
|
|
||||||
yats-vim
|
|
||||||
];
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
nixpkgs-fmt
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.chvp.neovim = {
|
|
||||||
enable = lib.mkOption {
|
|
||||||
default = true;
|
|
||||||
example = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.chvp.neovim.enable {
|
|
||||||
home-manager.users.charlotte = { ... }: (base "/home/charlotte");
|
|
||||||
home-manager.users.root = { ... }: (base "/root");
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -13,7 +13,6 @@ let
|
||||||
set -sg escape-time 10
|
set -sg escape-time 10
|
||||||
'';
|
'';
|
||||||
keyMode = "vi";
|
keyMode = "vi";
|
||||||
tmuxinator.enable = lib.mkIf config.chvp.graphical true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -24,13 +23,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.chvp.tmux.enable {
|
config = lib.mkIf config.chvp.tmux.enable {
|
||||||
home-manager.users.charlotte = { ... }: base // lib.optionalAttrs config.chvp.graphical {
|
home-manager.users.charlotte = { ... }: base;
|
||||||
xdg.configFile = {
|
|
||||||
"tmuxinator/accentor.yml".source = ./tmux/accentor.yml;
|
|
||||||
"tmuxinator/dodona.yml".source = ./tmux/dodona.yml;
|
|
||||||
"tmuxinator/mail.yml".source = ./tmux/mail.yml;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager.users.root = { ... }: base;
|
home-manager.users.root = { ... }: base;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
name: accentor
|
|
||||||
project_root: "/home/charlotte/repos/accentor"
|
|
||||||
windows:
|
|
||||||
- api:
|
|
||||||
root: "/home/charlotte/repos/accentor/api"
|
|
||||||
layout: main-vertical
|
|
||||||
panes:
|
|
||||||
- nvim
|
|
||||||
- git status
|
|
||||||
- web:
|
|
||||||
root: "/home/charlotte/repos/accentor/web"
|
|
||||||
layout: main-vertical
|
|
||||||
panes:
|
|
||||||
- nvim
|
|
||||||
- git status
|
|
||||||
- android:
|
|
||||||
root: "/home/charlotte/repos/accentor/android"
|
|
||||||
layout: main-vertical
|
|
||||||
panes:
|
|
||||||
- nvim
|
|
||||||
- git status
|
|
||||||
- run:
|
|
||||||
layout: even-horizontal
|
|
||||||
panes:
|
|
||||||
- rails:
|
|
||||||
- cd api
|
|
||||||
- bundle exec rails s
|
|
||||||
- delayed_job:
|
|
||||||
- cd api
|
|
||||||
- bundle exec rails jobs:work
|
|
||||||
- vue:
|
|
||||||
- cd web
|
|
||||||
- yarn run serve
|
|
||||||
- postgres:
|
|
||||||
- cd api
|
|
||||||
- start-db
|
|
|
@ -1,55 +0,0 @@
|
||||||
# /home/charlotte/.config/tmuxinator/dodona.yml
|
|
||||||
|
|
||||||
name: dodona
|
|
||||||
root: ~/repos/dodona/dodona
|
|
||||||
|
|
||||||
# Optional tmux socket
|
|
||||||
# socket_name: foo
|
|
||||||
|
|
||||||
# Note that the pre and post options have been deprecated and will be replaced by
|
|
||||||
# project hooks.
|
|
||||||
|
|
||||||
# Project hooks
|
|
||||||
# Runs on project start, always
|
|
||||||
# on_project_start: command
|
|
||||||
# Run on project start, the first time
|
|
||||||
# on_project_first_start: command
|
|
||||||
# Run on project start, after the first time
|
|
||||||
# on_project_restart: command
|
|
||||||
# Run on project exit ( detaching from tmux session )
|
|
||||||
# on_project_exit: command
|
|
||||||
# Run on project stop
|
|
||||||
# on_project_stop: command
|
|
||||||
|
|
||||||
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
|
|
||||||
# pre_window: rbenv shell 2.0.0-p247
|
|
||||||
|
|
||||||
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
|
|
||||||
# tmux_options: -f ~/.tmux.mac.conf
|
|
||||||
|
|
||||||
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
|
|
||||||
# tmux_command: byobu
|
|
||||||
|
|
||||||
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
|
|
||||||
# startup_window: editor
|
|
||||||
|
|
||||||
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
|
|
||||||
# startup_pane: 1
|
|
||||||
|
|
||||||
# Controls whether the tmux session should be attached to automatically. Defaults to true.
|
|
||||||
# attach: false
|
|
||||||
|
|
||||||
windows:
|
|
||||||
- editor:
|
|
||||||
layout: main-vertical
|
|
||||||
panes:
|
|
||||||
- nvim
|
|
||||||
- git status
|
|
||||||
- server:
|
|
||||||
layout: even-horizontal
|
|
||||||
panes:
|
|
||||||
- bundle exec rails s
|
|
||||||
- bundle exec rails jobs:work
|
|
||||||
- ./bin/webpack-dev-server
|
|
||||||
- logs: tail -f log/development.log
|
|
||||||
- db: start-dockers
|
|
|
@ -1,47 +0,0 @@
|
||||||
# /home/charlotte/.config/tmuxinator/mail.yml
|
|
||||||
|
|
||||||
name: mail
|
|
||||||
root: ~/mail
|
|
||||||
|
|
||||||
# Optional tmux socket
|
|
||||||
# socket_name: foo
|
|
||||||
|
|
||||||
# Note that the pre and post options have been deprecated and will be replaced by
|
|
||||||
# project hooks.
|
|
||||||
|
|
||||||
# Project hooks
|
|
||||||
# Runs on project start, always
|
|
||||||
# on_project_start: command
|
|
||||||
# Run on project start, the first time
|
|
||||||
# on_project_first_start: command
|
|
||||||
# Run on project start, after the first time
|
|
||||||
# on_project_restart: command
|
|
||||||
# Run on project exit ( detaching from tmux session )
|
|
||||||
# on_project_exit: command
|
|
||||||
# Run on project stop
|
|
||||||
# on_project_stop: command
|
|
||||||
|
|
||||||
# Runs in each window and pane before window/pane specific commands. Useful for setting up interpreter versions.
|
|
||||||
# pre_window: rbenv shell 2.0.0-p247
|
|
||||||
|
|
||||||
# Pass command line options to tmux. Useful for specifying a different tmux.conf.
|
|
||||||
# tmux_options: -f ~/.tmux.mac.conf
|
|
||||||
|
|
||||||
# Change the command to call tmux. This can be used by derivatives/wrappers like byobu.
|
|
||||||
# tmux_command: byobu
|
|
||||||
|
|
||||||
# Specifies (by name or index) which window will be selected on project startup. If not set, the first window is used.
|
|
||||||
# startup_window: editor
|
|
||||||
|
|
||||||
# Specifies (by index) which pane of the specified window will be selected on project startup. If not set, the first pane is used.
|
|
||||||
# startup_pane: 1
|
|
||||||
|
|
||||||
# Controls whether the tmux session should be attached to automatically. Defaults to true.
|
|
||||||
# attach: false
|
|
||||||
|
|
||||||
windows:
|
|
||||||
- main:
|
|
||||||
layout: main-vertical
|
|
||||||
panes:
|
|
||||||
- neomutt
|
|
||||||
- khal interactive
|
|
|
@ -1,36 +0,0 @@
|
||||||
{ stdenv, pkgs, ... }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "jdtls";
|
|
||||||
version = "0.57.0";
|
|
||||||
src = pkgs.fetchurl {
|
|
||||||
url = "http://download.eclipse.org/${pname}/milestones/${version}/jdt-language-server-${version}-202006172108.tar.gz";
|
|
||||||
sha256 = "1yvk6pby5ylvnhcax6da86dzrx76iym3jc25mnvfv4krpfcl8zl9";
|
|
||||||
};
|
|
||||||
sourceRoot = ".";
|
|
||||||
buildPhase = "true";
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/java/jdtls
|
|
||||||
mv config_* features plugins $out/share/java/jdtls
|
|
||||||
mkdir $out/bin
|
|
||||||
cat >$out/bin/jdtls <<HERE
|
|
||||||
#!${pkgs.bash}/bin/bash
|
|
||||||
|
|
||||||
tmp_dir=\$(mktemp -d /tmp/jdtls.XXXXX)
|
|
||||||
cp -R $out/share/java/jdtls/config_linux \$tmp_dir
|
|
||||||
chmod -R u=rwX \$tmp_dir
|
|
||||||
trap "{ rm -rf \$tmp_dir; }" 0
|
|
||||||
|
|
||||||
${pkgs.jdk11}/bin/java \
|
|
||||||
-Declipse.application=org.eclipse.jdt.ls.core.id1 \
|
|
||||||
-Dosgi.bundles.defaultStartLevel=4 \
|
|
||||||
-Declipse.product=org.eclipse.jdt.ls.core.product \
|
|
||||||
-noverify \
|
|
||||||
-Xms1G \
|
|
||||||
-jar $out/share/java/jdtls/plugins/org.eclipse.equinox.launcher_*.jar \
|
|
||||||
-configuration "\$tmp_dir/config_linux" \
|
|
||||||
"\$@"
|
|
||||||
HERE
|
|
||||||
chmod +x $out/bin/jdtls
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ pkgs ? import <nixpkgs> { } }:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
let
|
|
||||||
buildGradle = callPackage ./gradle-env.nix { };
|
|
||||||
in
|
|
||||||
buildGradle {
|
|
||||||
envSpec = ./gradle-env.json;
|
|
||||||
src = fetchTarball {
|
|
||||||
url = "https://github.com/fwcd/kotlin-language-server/archive/0.7.0.tar.gz";
|
|
||||||
sha256 = "0by07h2ly84dzmwzjf3fsgghm3fwhyhhbnnv3kl7dy1iajhl4shj";
|
|
||||||
};
|
|
||||||
gradleFlags = [ "server:installDist" ];
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -r server/build/install/server/* $out/
|
|
||||||
'';
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,278 +0,0 @@
|
||||||
# This file is generated by gradle2nix.
|
|
||||||
#
|
|
||||||
# Example usage (e.g. in default.nix):
|
|
||||||
#
|
|
||||||
# with (import <nixpkgs> {});
|
|
||||||
# let
|
|
||||||
# buildGradle = callPackage ./gradleEnv.nix {};
|
|
||||||
# in
|
|
||||||
# buildGradle {
|
|
||||||
# envSpec = ./gradle-env.json;
|
|
||||||
#
|
|
||||||
# src = ./.;
|
|
||||||
#
|
|
||||||
# gradleFlags = [ "installDist" ];
|
|
||||||
#
|
|
||||||
# installPhase = ''
|
|
||||||
# mkdir -p $out
|
|
||||||
# cp -r app/build/install/myproject $out
|
|
||||||
# '';
|
|
||||||
# }
|
|
||||||
|
|
||||||
{ stdenv, buildEnv, fetchurl, gradleGen, writeText, writeTextDir }:
|
|
||||||
|
|
||||||
{ envSpec
|
|
||||||
, pname ? null
|
|
||||||
, version ? null
|
|
||||||
, enableParallelBuilding ? true
|
|
||||||
, gradleFlags ? [ "build" ]
|
|
||||||
, gradlePackage ? null
|
|
||||||
, enableDebug ? false
|
|
||||||
, ...
|
|
||||||
} @ args:
|
|
||||||
let
|
|
||||||
inherit (builtins)
|
|
||||||
filter sort replaceStrings attrValues match fromJSON
|
|
||||||
concatStringsSep
|
|
||||||
;
|
|
||||||
|
|
||||||
inherit (stdenv.lib)
|
|
||||||
versionOlder unique mapAttrs last concatMapStringsSep removeSuffix
|
|
||||||
optionalString groupBy' readFile hasSuffix
|
|
||||||
;
|
|
||||||
mkDep = depSpec: stdenv.mkDerivation {
|
|
||||||
inherit (depSpec) name;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
inherit (depSpec) urls sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
phases = "installPhase";
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/${depSpec.path}
|
|
||||||
ln -s $src $out/${depSpec.path}/${depSpec.name}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
mkModuleMetadata = deps:
|
|
||||||
let
|
|
||||||
ids = filter
|
|
||||||
(id: id.type == "pom")
|
|
||||||
(map (dep: dep.id) deps);
|
|
||||||
modules = groupBy'
|
|
||||||
(
|
|
||||||
meta: id:
|
|
||||||
let
|
|
||||||
isNewer = versionOlder meta.latest id.version;
|
|
||||||
isNewerRelease =
|
|
||||||
!(hasSuffix "-SNAPSHOT" id.version)
|
|
||||||
&& versionOlder meta.release id.version;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
groupId = id.group;
|
|
||||||
artifactId = id.name;
|
|
||||||
latest = if isNewer then id.version else meta.latest;
|
|
||||||
release = if isNewerRelease then id.version else meta.release;
|
|
||||||
versions = meta.versions ++ [ id.version ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
{
|
|
||||||
latest = "";
|
|
||||||
release = "";
|
|
||||||
versions = [ ];
|
|
||||||
}
|
|
||||||
(id: "${replaceStrings [ "." ] [ "/" ] id.group}/${id.name}/maven-metadata.xml")
|
|
||||||
ids;
|
|
||||||
in
|
|
||||||
attrValues (
|
|
||||||
mapAttrs
|
|
||||||
(
|
|
||||||
path: meta:
|
|
||||||
let
|
|
||||||
versions' = sort versionOlder (unique meta.versions);
|
|
||||||
in
|
|
||||||
with meta; writeTextDir path ''
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<metadata modelVersion="1.1">
|
|
||||||
<groupId>${groupId}</groupId>
|
|
||||||
<artifactId>${artifactId}</artifactId>
|
|
||||||
<versioning>
|
|
||||||
${optionalString (latest != "") "<latest>${latest}</latest>"}
|
|
||||||
${optionalString (release != "") "<release>${release}</release>"}
|
|
||||||
<versions>
|
|
||||||
${concatMapStringsSep "\n " (v: "<version>${v}</version>") versions'}
|
|
||||||
</versions>
|
|
||||||
</versioning>
|
|
||||||
</metadata>
|
|
||||||
''
|
|
||||||
)
|
|
||||||
modules
|
|
||||||
);
|
|
||||||
mkSnapshotMetadata = deps:
|
|
||||||
let
|
|
||||||
snapshotDeps = filter (dep: dep ? build && dep ? timestamp) deps;
|
|
||||||
modules = groupBy'
|
|
||||||
(
|
|
||||||
meta: dep:
|
|
||||||
let
|
|
||||||
id = dep.id;
|
|
||||||
isNewer = dep.build > meta.buildNumber;
|
|
||||||
# Timestamp values can be bogus, e.g. jitpack.io
|
|
||||||
updated =
|
|
||||||
if (match "[0-9]{8}\.[0-9]{6}" dep.timestamp) != null
|
|
||||||
then replaceStrings [ "." ] [ "" ] dep.timestamp
|
|
||||||
else "";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
groupId = id.group;
|
|
||||||
artifactId = id.name;
|
|
||||||
version = id.version;
|
|
||||||
timestamp = if isNewer then dep.timestamp else meta.timestamp;
|
|
||||||
buildNumber = if isNewer then dep.build else meta.buildNumber;
|
|
||||||
lastUpdated = if isNewer then updated else meta.lastUpdated;
|
|
||||||
versions = meta.versions or [ ] ++ [
|
|
||||||
{
|
|
||||||
classifier = id.classifier or "";
|
|
||||||
extension = id.extension;
|
|
||||||
value = "${removeSuffix "-SNAPSHOT" id.version}-${dep.timestamp}-${toString dep.build}";
|
|
||||||
updated = updated;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
{
|
|
||||||
timestamp = "";
|
|
||||||
buildNumber = -1;
|
|
||||||
lastUpdated = "";
|
|
||||||
}
|
|
||||||
(dep: "${replaceStrings [ "." ] [ "/" ] dep.id.group}/${dep.id.name}/${dep.id.version}/maven-metadata.xml")
|
|
||||||
snapshotDeps;
|
|
||||||
mkSnapshotVersion = version: ''
|
|
||||||
<snapshotVersion>
|
|
||||||
${optionalString (version.classifier != "") "<classifier>${version.classifier}</classifier>"}
|
|
||||||
<extension>${version.extension}</extension>
|
|
||||||
<value>${version.value}</value>
|
|
||||||
${optionalString (version.updated != "") "<updated>${version.updated}</updated>"}
|
|
||||||
</snapshotVersion>
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
attrValues (
|
|
||||||
mapAttrs
|
|
||||||
(
|
|
||||||
path: meta:
|
|
||||||
with meta; writeTextDir path ''
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<metadata modelVersion="1.1">
|
|
||||||
<groupId>${groupId}</groupId>
|
|
||||||
<artifactId>${artifactId}</artifactId>
|
|
||||||
<version>${version}</version>
|
|
||||||
<versioning>
|
|
||||||
<snapshot>
|
|
||||||
${optionalString (timestamp != "") "<timestamp>${timestamp}</timestamp>"}
|
|
||||||
${optionalString (buildNumber != -1) "<buildNumber>${toString buildNumber}</buildNumber>"}
|
|
||||||
</snapshot>
|
|
||||||
${optionalString (lastUpdated != "") "<lastUpdated>${lastUpdated}</lastUpdated>"}
|
|
||||||
<snapshotVersions>
|
|
||||||
${concatMapStringsSep "\n " mkSnapshotVersion versions}
|
|
||||||
</snapshotVersions>
|
|
||||||
</versioning>
|
|
||||||
</metadata>
|
|
||||||
''
|
|
||||||
)
|
|
||||||
modules
|
|
||||||
);
|
|
||||||
mkRepo = project: type: deps: buildEnv {
|
|
||||||
name = "${project}-gradle-${type}-env";
|
|
||||||
paths = map mkDep deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps;
|
|
||||||
};
|
|
||||||
mkInitScript = projectSpec:
|
|
||||||
let
|
|
||||||
repos = mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies;
|
|
||||||
in
|
|
||||||
writeText "init.gradle" ''
|
|
||||||
static def offlineRepo(RepositoryHandler repositories, String env, String path) {
|
|
||||||
repositories.clear()
|
|
||||||
repositories.maven {
|
|
||||||
name "Nix''${env.capitalize()}MavenOffline"
|
|
||||||
url path
|
|
||||||
metadataSources {
|
|
||||||
it.gradleMetadata()
|
|
||||||
it.mavenPom()
|
|
||||||
it.artifact()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
repositories.ivy {
|
|
||||||
name "Nix''${env.capitalize()}IvyOffline"
|
|
||||||
url path
|
|
||||||
layout "maven"
|
|
||||||
metadataSources {
|
|
||||||
it.gradleMetadata()
|
|
||||||
it.ivyDescriptor()
|
|
||||||
it.artifact()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gradle.settingsEvaluated {
|
|
||||||
offlineRepo(it.pluginManagement.repositories, "plugin", "${repos.plugin}")
|
|
||||||
}
|
|
||||||
|
|
||||||
gradle.projectsLoaded {
|
|
||||||
allprojects {
|
|
||||||
buildscript {
|
|
||||||
offlineRepo(repositories, "buildscript", "${repos.buildscript}")
|
|
||||||
}
|
|
||||||
offlineRepo(repositories, "project", "${repos.project}")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
mkGradle = gradleSpec:
|
|
||||||
gradleGen.gradleGen {
|
|
||||||
inherit (gradleSpec) nativeVersion;
|
|
||||||
|
|
||||||
name = "gradle-${gradleSpec.version}-${gradleSpec.type}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
inherit (gradleSpec) url sha256;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mkProjectEnv = projectSpec: {
|
|
||||||
inherit (projectSpec) name version;
|
|
||||||
initScript = mkInitScript projectSpec;
|
|
||||||
gradle = args.gradlePackage or mkGradle projectSpec.gradle;
|
|
||||||
};
|
|
||||||
gradleEnv = mapAttrs
|
|
||||||
(_: p: mkProjectEnv p)
|
|
||||||
(fromJSON (readFile envSpec));
|
|
||||||
projectEnv = gradleEnv."";
|
|
||||||
pname = args.pname or projectEnv.name;
|
|
||||||
version = args.version or projectEnv.version;
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (
|
|
||||||
args // {
|
|
||||||
|
|
||||||
inherit pname version;
|
|
||||||
|
|
||||||
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ projectEnv.gradle ];
|
|
||||||
|
|
||||||
buildPhase = args.buildPhase or ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
(
|
|
||||||
set -x
|
|
||||||
env \
|
|
||||||
"GRADLE_USER_HOME=$(mktemp -d)" \
|
|
||||||
gradle --offline --no-daemon --no-build-cache \
|
|
||||||
--info --full-stacktrace --warning-mode=all \
|
|
||||||
${optionalString enableParallelBuilding "--parallel"} \
|
|
||||||
${optionalString enableDebug "-Dorg.gradle.debug=true"} \
|
|
||||||
--init-script ${projectEnv.initScript} \
|
|
||||||
${concatStringsSep " " gradleFlags}
|
|
||||||
)
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
|
|
||||||
dontStrip = true;
|
|
||||||
}
|
|
||||||
)
|
|
Loading…
Add table
Add a link
Reference in a new issue