Added newton config

This commit is contained in:
Julien Malka 2021-12-10 14:54:42 +01:00
parent f3cdf9d3e2
commit 736c627795
13 changed files with 1030 additions and 8 deletions

View file

@ -0,0 +1,90 @@
[Filter.1]
query = subject:"Formulaire d'externement"
tags = +externement
message = Externement
[Filter.2]
query = subject:/\[DG\]/
tags = +dg
message = Mail pour la DG
[Filter.3]
query = subject:"Demande de malle"
tags = +malle
message = Malle
[Filter.4]
query = subject:"Demande d'inscription de"
tags = +thurnage
message = Thurnage
[Filter.5]
query = subject:"Formulaire situation de"
tags = +situation
message = Situation
[Filter.6]
query = subject:"Inscription au thurnage général de"
tags = +thurnage
message = TG
[Filter.7]
query = subject:"Prévision d'externement de"
tags = +externement
message = previsionext
[Filter.8]
query = subject:"Demande d'accès"
tags = +malle
message = acces
[Filter.9]
query = subject:"Rendu de malle"
tags = +malle
message = rendu
[Filter.10]
query = subject:"Prolongation de la malle"
tags = +malle
message = prolong
[Filter.11]
query = subject:"Fermeture de l'internat"
tags = +fermeture
message = fermeture
[Filter.12]
query = subject:/\[COF\]/
tags = +cof
message = COF
[Filter.13]
query = subject:"Modification inscription TG"
tags= +thurnage
[Filter.14]
query = subject:/\[Pouët-Pouêt\]/
tags = +fanfare
message = fanfare
[Filter.15]
query = subject:/\[K-Fêt\]/
tags = +kfet
message = kfet
[Filter.16]
query = subject:/\[Chef.fe.s\]/
tags = +chefs
message = chefs
[InboxFilter]
[MailMover]
folders = ens/INBOX ens/DG
rename = True
ens/INBOX = 'tag:dg':ens/DG 'tag:COF':ens/COF 'tag:fanfare':ens/Fanfare 'tag:kfet':ens/K-Fet 'tag:chefs':ens/K-Fet/Chefs
ens/DG = 'tag:externement':ens/DG/Externements 'tag:malle':ens/DG/Malles 'tag:thurnage':ens/DG/Thurnages 'tag:situation':ens/DG/Situations 'tag:fermeture':ens/DG/Fermeture

View file

@ -0,0 +1,73 @@
{ pkgs, config, lib, ... }:
let
cfg = config.luj.emails;
in
with lib;
{
options.luj.emails = {
enable = mkEnableOption "enable mail management";
backend.enable = mkEnableOption "enable filtering backend";
};
config = mkMerge [
(mkIf cfg.enable {
programs.mbsync.enable = true;
programs.neomutt.enable = true;
programs.msmtp.enable = true;
accounts.email = {
accounts.ens = {
address = "julien.malka@ens.fr";
imap.host = "clipper.ens.fr";
mbsync = {
enable = true;
create = "maildir";
extraConfig.channel = {
"CopyArrivalDate" = "yes";
};
};
msmtp.enable = true;
primary = true;
realName = "Julien Malka";
passwordCommand = "${pkgs.gnupg}/bin/gpg -q --batch --passphrase-file /home/julien/email-passphrase -d ${./ens.pass.gpg}";
smtp = {
host = "clipper.ens.fr";
};
userName = "jmalka";
};
};
services.mbsync = {
enable = true;
frequency = "*-*-* *:*:00";
verbose = false;
};
xdg.configFile = {
"neomutt/neomuttrc".source = lib.mkForce ./neomuttrc;
};
})
(mkIf (cfg.enable && cfg.backend.enable) {
programs.afew.enable = true;
accounts.email.accounts.ens.notmuch.enable = true;
services.mbsync.postExec = "${pkgs.notmuch}/bin/notmuch new";
programs.notmuch = {
enable = true;
new.tags = [ "new" ];
hooks.postNew = ''
${pkgs.afew}/bin/afew --tag --new
${pkgs.afew}/bin/afew --move-mails
'';
};
xdg.configFile = {
"afew/config".source = lib.mkForce ./afewconfig;
};
})
];
}

View file

@ -0,0 +1,83 @@
set from = "julien.malka@ens.fr"
# Nom complet de l'expéditeur
set realname = "Julien Malka"
# Génération du champs from
set use_from = yes
set edit_headers=yes
set reverse_name
set mark_old=no
set editor = "nvim -c 'set tw=72' -c 'set wrap'"
#set editor="vim +':set textwidth=0' +':set wrapmargin=0' +':set wrap'"
#set wrap="72"
set folder = ~/Maildir/ens
set mbox_type=Maildir
set virtual_spoolfile=yes
set header_cache=~/.cache/mutt
set sidebar_visible = yes
set record = "+Sent\ Messages"
#mailboxes =Inbox =DG =DG/Malles =DG/Externements =DG/Thurnages =DG/Situations =DG/Fermeture =Sent\ Messages
#named-mailboxes "Malles" =DG/Malles
#named-mailboxes "Externements" =DG/Externements
#named-mailboxes "Thurnages" =DG/Thurnages
#named-mailboxes "Situations" =DG/Situations
#named-mailboxes "Fermeture" =DG/Fermeture
#named-mailboxes "Sent" =Sent\ Messages
set nm_unread_tag = unread
set mail_check_stats=yes
set sidebar_short_path = yes
set timeout=10
set mail_check=10
virtual-mailboxes "Inbox" "notmuch://?query=tag:inbox and NOT tag:dg and NOT tag:cof and NOT tag:fanfare and NOT tag:kfet and NOT tag:chefs"
virtual-mailboxes "K-Fêt" "notmuch://?query=tag:kfet"
virtual-mailboxes "Chefs" "notmuch://?query=tag:chefs"
virtual-mailboxes "DG" "notmuch://?query=tag:dg and NOT tag:externement and NOT tag:fermeture and NOT tag:malle and NOT tag:situation and NOT tag:thurnage"
virtual-mailboxes "Externements" "notmuch://?query=tag:externement"
virtual-mailboxes "Fermeture" "notmuch://?query=tag:fermeture"
virtual-mailboxes "Malles" "notmuch://?query=tag:malle"
virtual-mailboxes "Situations" "notmuch://?query=tag:situation"
virtual-mailboxes "Thurnages" "notmuch://?query=tag:thurnage"
virtual-mailboxes "Fanfare" "notmuch://?query=tag:fanfare"
set sidebar_width=15
set sidebar_divider_char='|'
# color of folders with new mail
# ctrl-n, ctrl-p to select next, prev folder# ctrl-o to open selected folder
bind index \CP sidebar-prev
bind index \CN sidebar-next
bind index \CO sidebar-open
bind pager \CP sidebar-prev
bind pager \CN sidebar-next
bind pager \CO sidebar-open
bind pager <Backspace> previous-line
set nm_default_url = "notmuch:///home/julien/Maildir"
macro index \\ "<vfolder-from-query>"
set metoo=yes
set text_flowed
set collapse_unread = no
set collapse_all = yes
bind index - collapse-thread
set sort = threads
set sort_aux = reverse-last-date-received
folder-hook . 'source /home/julien/dotfiles/profile.default'
folder-hook "DG" 'source /home/julien/dotfiles/profile.dg'
folder-hook "K-Fêt" 'source /home/julien/dotfiles/profile.kfet'
folder-hook "Chefs" 'source /home/julien/dotfiles/profile.chefs'
set sidebar_format = '%D%* %?N?(%N)?%*'
color sidebar_unread yellow default
source ~/dotfiles/dracula.muttrc
set sendmail = "msmtp"

View file

@ -0,0 +1,72 @@
{ pkgs, lib, config, ... }:
let
cfg = config.luj.programs.neovim;
dusk-vim = pkgs.vimUtils.buildVimPlugin {
name = "dusk-vim";
src = pkgs.fetchFromGitHub {
owner = "notusknot";
repo = "dusk-vim";
rev = "8eb71f092ebfa173a6568befbe522a56e8382756";
sha256 = "09l4hda5jnyigc2hhlirv1rc8hsnsc4zgcv4sa4br8fryi73nf4g";
};
};
in
with lib;
{
options.luj.programs.neovim = {
enable = mkEnableOption "activate neovim program";
};
config = mkIf cfg.enable{
programs.neovim = {
enable = true;
package = pkgs.neovim-unwrapped;
plugins = with pkgs.vimPlugins; [
# File tree
nvim-web-devicons
nvim-tree-lua
# LSP
nvim-lspconfig
# Languages
vim-nix
# Eyecandy
nvim-treesitter
bufferline-nvim
galaxyline-nvim
nvim-colorizer-lua
pears-nvim
dusk-vim
# Lsp and completion
nvim-lspconfig
nvim-compe
# Telescope
telescope-nvim
# Indent lines
indent-blankline-nvim
];
extraPackages = with pkgs; [
gcc
rnix-lsp
tree-sitter
sumneko-lua-language-server
];
extraConfig = ''
luafile ${./lua}/lsp.lua
luafile ${./lua}/nvim-tree.lua
luafile ${./lua}/galaxyline.lua
luafile ${./lua}/settings.lua
'';
};
};
}

View file

@ -0,0 +1,204 @@
-- This file configures galaxyline, a fast and small statusline for nvim.
-- The configuration was taken from github.com/siduck76/neovim-dotfiles/
-- All I did was change the colors. Full credit goes to siduck76
local gl = require("galaxyline")
local gls = gl.section
gl.short_line_list = {" "} -- keeping this table { } as empty will show inactive statuslines
local colors = {
bg = "#2e303e",
line_bg = "#2e303e",
fg = "#e3e6ee",
green = "#29d398",
orange = "#efb993",
red = "#e95678",
lightbg = "#2e303e",
lightbasdfg = "#393b4d",
nord = "#9699b7",
greenYel = "#efb993"
}
gls.left[1] = {
leftRounded = {
provider = function()
return " "
end,
highlight = {colors.nord, colors.bg}
}
}
gls.left[2] = {
statusIcon = {
provider = function()
return ""
end,
highlight = {colors.fg, colors.bg},
separator = " ",
separator_highlight = {colors.lightbg, colors.lightbg}
}
}
gls.left[3] = {
FileIcon = {
provider = "FileIcon",
condition = buffer_not_empty,
highlight = {require("galaxyline.provider_fileinfo").get_file_icon_color, colors.lightbg}
}
}
gls.left[4] = {
FileName = {
provider = {"FileName", "FileSize"},
condition = buffer_not_empty,
highlight = {colors.fg, colors.lightbg}
}
}
gls.left[5] = {
teech = {
provider = function()
return " "
end,
separator = " ",
highlight = {colors.lightbg, colors.bg}
}
}
local checkwidth = function()
local squeeze_width = vim.fn.winwidth(0) / 2
if squeeze_width > 40 then
return true
end
return false
end
gls.left[6] = {
DiffAdd = {
provider = "DiffAdd",
condition = checkwidth,
icon = "",
highlight = {colors.greenYel, colors.line_bg}
}
}
gls.left[7] = {
DiffModified = {
provider = "DiffModified",
condition = checkwidth,
icon = "",
highlight = {colors.orange, colors.line_bg}
}
}
gls.left[8] = {
DiffRemove = {
provider = "DiffRemove",
condition = checkwidth,
icon = "",
highlight = {colors.lightbg, colors.line_bg}
}
}
gls.left[9] = {
LeftEnd = {
provider = function()
return " "
end,
separator = " ",
separator_highlight = {colors.line_bg, colors.line_bg},
highlight = {colors.line_bg, colors.line_bg}
}
}
gls.left[10] = {
DiagnosticError = {
provider = "DiagnosticError",
icon = "",
highlight = {colors.red, colors.bg}
}
}
gls.left[11] = {
Space = {
provider = function()
return " "
end,
highlight = {colors.line_bg, colors.line_bg}
}
}
gls.left[12] = {
DiagnosticWarn = {
provider = "DiagnosticWarn",
icon = "",
highlight = {colors.red, colors.bg}
}
}
gls.right[1] = {
GitIcon = {
provider = function()
return ""
end,
condition = require("galaxyline.provider_vcs").check_git_workspace,
highlight = {colors.green, colors.line_bg}
}
}
gls.right[2] = {
GitBranch = {
provider = "GitBranch",
condition = require("galaxyline.provider_vcs").check_git_workspace,
highlight = {colors.green, colors.line_bg}
}
}
gls.right[3] = {
right_LeftRounded = {
provider = function()
return " "
end,
separator = " ",
separator_highlight = {colors.bg, colors.bg},
highlight = {colors.lightbg, colors.bg}
}
}
gls.right[4] = {
ViMode = {
provider = function()
local alias = {
n = "NORMAL",
i = "INSERT",
c = "COMMAND",
V = "VISUAL",
[""] = "VISUAL",
v = "VISUAL",
R = "REPLACE"
}
return alias[vim.fn.mode()]
end,
highlight = {colors.fg, colors.lightbg}
}
}
gls.right[5] = {
PerCent = {
provider = "LinePercent",
separator = " ",
separator_highlight = {colors.lightbg, colors.lightbg},
highlight = {colors.fg, colors.lightbg}
}
}
gls.right[6] = {
rightRounded = {
provider = function()
return " "
end,
highlight = {colors.lightbg, colors.bg}
}
}

View file

@ -0,0 +1,76 @@
-- This file sets up autocompletion for neovim's native lsp
-- This enables all the language servers I want on my system
-- Change these to whatever languages you use
require'lspconfig'.rnix.setup{}
require'lspconfig'.sumneko_lua.setup{}
vim.o.completeopt = "menuone,noselect"
-- Autocompletion setup
require'compe'.setup {
enabled = true;
autocomplete = true;
debug = false;
min_length = 1;
preselect = 'enable';
throttle_time = 80;
source_timeout = 200;
incomplete_delay = 400;
max_abbr_width = 100;
max_kind_width = 100;
max_menu_width = 100;
documentation = false;
source = {
path = true;
buffer = true;
nvim_lsp = true;
treesitter = true;
};
}
-- Set tab to accept the autocompletion
local t = function(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
_G.tab_complete = function()
if vim.fn.pumvisible() == 1 then
return t "<C-n>"
else
return t "<S-Tab>"
end
end
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
-- set the path to the sumneko installation; if you previously installed via the now deprecated :LspInstall, use
local sumneko_root_path = vim.fn.stdpath('cache')..'/lspconfig/sumneko_lua/lua-language-server'
local sumneko_binary = "lua-language-server"
local runtime_path = vim.split(package.path, ';')
table.insert(runtime_path, "lua/?.lua")
table.insert(runtime_path, "lua/?/init.lua")
require'lspconfig'.sumneko_lua.setup {
cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"};
settings = {
Lua = {
runtime = {
version = 'LuaJIT',
path = runtime_path,
},
diagnostics = {
globals = {'vim'},
},
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
preloadFileSize = 120
},
telemetry = {
enable = false,
},
},
},
}

View file

@ -0,0 +1,60 @@
-- following options are the default
-- each of these are documented in `:help nvim-tree.OPTION_NAME`
require'nvim-tree'.setup {
disable_netrw = true,
hijack_netrw = true,
open_on_setup = false,
ignore_ft_on_setup = {},
auto_close = false,
open_on_tab = false,
hijack_cursor = false,
update_cwd = false,
update_to_buf_dir = {
enable = true,
auto_open = true,
},
diagnostics = {
enable = false,
icons = {
hint = "",
info = "",
warning = "",
error = "",
}
},
update_focused_file = {
enable = false,
update_cwd = false,
ignore_list = {}
},
system_open = {
cmd = nil,
args = {}
},
filters = {
dotfiles = false,
custom = {}
},
git = {
enable = true,
ignore = true,
timeout = 500,
},
view = {
width = 30,
height = 30,
hide_root_folder = false,
side = 'left',
auto_resize = false,
mappings = {
custom_only = false,
list = {}
},
number = false,
relativenumber = false
},
trash = {
cmd = "trash",
require_confirm = true
}
}

View file

@ -0,0 +1,96 @@
-- Lazy load everything!
--
--
--dofile("lsp.lua")
--dofile("galaxyline.lua")
--dofile("nvim-tree.lua")
local opt = vim.opt
local g = vim.g
vim.cmd [[
set nowrap
set nobackup
set nowritebackup
set noerrorbells
set noswapfile
colorscheme dusk
function! Preserve(command)
let w = winsaveview()
execute a:command
call winrestview(w)
endfunction
autocmd FileType nix map <nowait> <leader>u :call Preserve("%!update-nix-fetchgit --location=" . line(".") . ":" . col("."))<CR>
autocmd BufWinEnter NvimTree setlocal nonumber
map ; :
highlight IndentBlanklineChar guifg = #393b4d
]]
-- Enable plugins
require('bufferline').setup{}
require('pears').setup()
require('colorizer').setup()
-- Treesitter settings
require'nvim-treesitter.configs'.setup {
ensure_installed = "all", -- one of "all", "maintained" (parsers with maintainers), or a list of languages
highlight = {
enable = true
},
}
local map = vim.api.nvim_set_keymap
options = { noremap = true }
map('n', '<C-p>', ':NvimTreeToggle <CR>', options)
map('n', '<C-f>', ':Telescope find_files <CR>', options)
map('n', '<C-n>', ':Telescope live_grep <CR>', options)
map('n', '<C-l>', ':noh <CR>', options)
map('n', '<C-s>', ':!xclip -sel c -o | pygmentize -f html | xclip -sel c <CR> <CR>', options)
vim.api.nvim_set_keymap('n', '0', "getline('.')[0 : col('.') - 2] =~# '^\\s\\+$' ? '0' : '^'", {silent = true, noremap = true, expr = true})
g.mapleader = ' '
-- Indent line
g.indent_blankline_char = ''
-- Performance
opt.lazyredraw = true;
opt.shell = "zsh"
opt.shadafile = "NONE"
-- Colors
opt.termguicolors = true
-- Undo files
opt.undofile = true
-- Indentation
opt.smartindent = true
opt.tabstop = 4
opt.shiftwidth = 4
opt.shiftround = true
opt.expandtab = true
opt.scrolloff = 3
-- Set clipboard to use system clipboard
opt.clipboard = "unnamedplus"
-- Use mouse
opt.mouse = "a"
-- Nicer UI settings
opt.cursorline = true
opt.relativenumber = true
opt.number = true
-- Get rid of annoying viminfo file
opt.viminfo = ""
opt.viminfofile = "NONE"
-- Miscellaneous quality of life
opt.ignorecase = true
opt.ttimeoutlen = 5
opt.compatible = false
opt.hidden = true
opt.shortmess = "atI"