1
Fork 0

feat: greek letter keyboard layout + custom brackets in nvim

This commit is contained in:
Matei Adriel 2022-04-04 02:10:26 +03:00
parent 9571595b6f
commit 0c1f2b4297
39 changed files with 1228 additions and 87 deletions

View file

@ -3,4 +3,5 @@
My flake based nixos configuration. To use this, just rebuild your system using `sudo nixos-rebuild switch --flake .` while in the project directory. My flake based nixos configuration. To use this, just rebuild your system using `sudo nixos-rebuild switch --flake .` while in the project directory.
## TODO: ## TODO:
- make special separate dir for dotfiles. Would makes it easier to share them specifically - make special separate dir for dotfiles. Would makes it easier to share them specifically

View file

@ -2,6 +2,7 @@
imports = [ ./modules ]; imports = [ ./modules ];
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.tmpOnTmpfs = true;
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
@ -44,14 +45,9 @@
home-manager.users.adrielus = { home-manager.users.adrielus = {
manual.manpages.enable = false; manual.manpages.enable = false;
# home.packages = with pkgs; [ bluez bluez-tools ];
}; };
# Enable blueman
# services.blueman.enable = true;
hardware = { hardware = {
pulseaudio = { pulseaudio = {
enable = true; enable = true;
@ -62,35 +58,8 @@
# Extra codecs # Extra codecs
extraModules = [ pkgs.pulseaudio-modules-bt ]; extraModules = [ pkgs.pulseaudio-modules-bt ];
}; };
# configFile = pkgs.writeText "default.pa" ''
# load-module module-bluetooth-policy
# load-module module-bluetooth-discover
# ## module fails to load with
# ## module-bluez5-device.c: Failed to get device path from module arguments
# ## module.c: Failed to load module "module-bluez5-device" (argument: ""): initialization failed.
# # load-module module-bluez5-device
# # load-module module-bluez5-discover
# '';
# extraConfig = ''
# load-module module-switch-on-connect
# '';
# };
# bluetooth = {
# enable = true;
# config."General"."Enable" = "Source,Sink,Media,Socket";
# };
}; };
# home-manager.users.adrielus.services.mpris-proxy = {
# Unit.Description = "Mpris proxy";
# Unit.After = [ "network.target" "sound.target" ];
# Service.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
# Install.WantedBy = [ "default.target" ];
# };
system.stateVersion = "21.11"; system.stateVersion = "21.11";
# TODO: put nixpkgs stuff inside their own file # TODO: put nixpkgs stuff inside their own file

109
dotfiles/kmonad/keymap.kbd Normal file
View file

@ -0,0 +1,109 @@
(defcfg
;; For Linux
input (device-file "/dev/input/by-path/platform-i8042-serio-0-event-kbd")
output (uinput-sink "My KMonad output"
;; To understand the importance of the following line, see the section on
;; Compose-key sequences at the near-bottom of this file.
"/run/current-system/sw/bin/sleep 1 && /run/current-system/sw/bin/setxkbmap -option compose:ralt")
cmp-seq ralt ;; Set the compose key to `RightAlt'
cmp-seq-delay 5 ;; 5ms delay between each compose-key sequence press
;; Comment this is you want unhandled events not to be emitted
fallthrough true
;; Set this to false to disable any command-execution in KMonad
allow-cmd false
)
#|
(deflayer qwerty
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _
)
|#
(defalias
mth (layer-toggle math)
Mth (layer-toggle capital-math)
ga #(ralt a h) ;; alpha
gb #(ralt b h) ;; beta
gg #(ralt g h) ;; gamma
ge #(ralt e h) ;; epsilon
gt #(ralt t h) ;; tau
gl #(ralt l h) ;; lambda
gm #(ralt m h) ;; miu
gp #(ralt p h) ;; pi
gx #(ralt x h) ;; xi
gs #(ralt s h) ;; sigma
go #(ralt o h) ;; omega
gu #(ralt u h) ;; uspilon
gph #(ralt l p h h) ;; phi
gth #(ralt l t h h) ;; theta
gps #(ralt l p s h) ;; psi
Gu #(ralt u j) ;; UPSILON
Gg #(ralt g j) ;; GAMMA
Gd #(ralt d j) ;; DELTAJ
Gp #(ralt p j) ;; PI
Gs #(ralt s j) ;; SIGMA
Go #(ralt o j) ;; OMEGA
Gx #(ralt x j) ;; XI
neg #(ralt l -) ;; ¬
fal #(ralt l v) ;; ∀
ex #(ralt l e) ;; ∃
lar #(ralt < -) ;; ←
rar #(ralt - >) ;; →
alp #(ralt f \( ) ;; angled left parenthesis
arp #(ralt f \) ) ;; angled right parenthesis
shrugFace #(ralt l s h r) ;; shrug face
topBar #(ralt t -) ;; ¯
shr #(@topBar \ \_ \_ \( @shrugFace \) \_ / @topBar) ;; ¯\_(ツ)_/¯
)
(defsrc
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lsgt lmet lalt spc ralt rctl
)
(deflayer qwerty
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
@mth a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lsgt lmet lalt spc ralt rctl
)
(deflayer math
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ @ex _ _ _ _ _ @alp @arp @neg _ _
_ @shr @go @ge _ @gt _ @gu _ @go @gp _ _ _
_ @ga @gs _ _ @gg @gth @gps @gph @gl _ _ _
@Mth _ @gx _ @fal @gb _ @gm @lar @rar _ _
_ _ _ _ _ _ _
)
(deflayer capital-math
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ @Gu _ @Go @Gp _ _ _
_ _ @Gs @Gd _ @Gg _ _ _ _ _ _ _
_ _ @Gx _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _
)

2
dotfiles/kmonad/test.sh Executable file
View file

@ -0,0 +1,2 @@
#!/run/current-system/sw/bin/bash
kmonad -d "`dirname "$0"`/keymap.kbd"

40
dotfiles/kmonad/xcompose Normal file
View file

@ -0,0 +1,40 @@
# -*- coding: utf-8; mode: conf -*- include "%L"
<Multi_key> <a> <h> : "ɑ" U0251 # LATIN SMALL LETTER ALPHA
<Multi_key> <b> <h> : "β" U0252 # LATIN SMALL LETTER BETA
<Multi_key> <g> <h> : "γ" U0253 # LATIN SMALL LETTER GAMMA
<Multi_key> <e> <h> : "ϵ" U0254 # LATIN SMALL LETTER EPSILON
<Multi_key> <l> <h> : "λ" U0255 # LATIN SMALL LETTER LAMBDA
<Multi_key> <m> <h> : "μ" U0256 # LATIN SMALL LETTER MU
<Multi_key> <p> <h> : "π" U0257 # LATIN SMALL LETTER PI
<Multi_key> <t> <h> : "τ" U0258 # LATIN SMALL LETTER TAU
<Multi_key> <x> <h> : "ξ" U0259 # LATIN SMALL LETTER XI
<Multi_key> <s> <h> : "σ" U0260 # LATIN SMALL LETTER SIGMA
<Multi_key> <o> <h> : "ω" U0261 # LATIN SMALL LETTER OMEGA
<Multi_key> <u> <h> : "υ" U0262 # LATIN SMALL LETTER UPSILON
<Multi_key> <l> <p> <h> <h> : "ϕ" U0270 # LATIN SMALL LETTER PHI
<Multi_key> <l> <t> <h> <h> : "θ" U0271 # LATIN SMALL LETTER THETA
<Multi_key> <l> <p> <s> <h> : "ψ" U0272 # LATIN SMALL LETTER PSI
<Multi_key> <u> <j> : "ϒ" U0280 # LATIN CAPITAL LETTER UPSILON
<Multi_key> <g> <j> : "Γ" U0281 # LATIN CAPITAL LETTER GAMMA
<Multi_key> <d> <j> : "Δ" U0282 # LATIN CAPITAL LETTER DELTA
<Multi_key> <p> <j> : "Π" U0283 # LATIN CAPITAL LETTER PI
<Multi_key> <s> <j> : "Σ" U0284 # LATIN CAPITAL LETTER SIGMA
<Multi_key> <o> <j> : "Ω" U0285 # LATIN CAPITAL LETTER OMEGA
<Multi_key> <x> <j> : "Ξ" U0286 # LATIN CAPITAL LETTER XI
<Multi_key> <l> <t> <h> <j> : "Θ" U0300 # LATIN CAPITAL LETTER OMEGA
<Multi_key> <l> <s> <h> <r> : "ツ" U0350 # SHRUG FACE
<Multi_key> <t> <minus> : "¯" U0351 # TOP BAR
<Multi_key> <l> <minus> : "¬" U0352 # LOGICAL NEGATION
<Multi_key> <minus> <greater> : "→" U0353 # ARROW RIGHT
<Multi_key> <less> <minus> : "←" U0354 # ARROW LEFT
<Multi_key> <l> <v> : "∀" U0355 # LOGICAL FORALL
<Multi_key> <l> <e> : "∃" U0356 # LOGICAL EXISTS
<Multi_key> <f> <parenleft> : "⟨" U0357 # FANCY LEFT PAREN
<Multi_key> <f> <parenright> : "⟩" U0358 # FANCY RIGHT PAREN

View file

@ -2,3 +2,4 @@
require("my.options").setup() require("my.options").setup()
require('my.keymaps').setup() require('my.keymaps').setup()
require('my.plugins').setup() require('my.plugins').setup()
require("telescope.extensions.unicode").setupAbbreviations()

View file

@ -0,0 +1,12 @@
local bin_name = 'agda-language-server'
local cmd = {bin_name, '--stdio'}
if vim.fn.has 'win32' == 1 then cmd = {'cmd.exe', '/C', bin_name, '--stdio'} end
return {
default_config = {
cmd = cmd,
filetypes = {'agda'}
-- root_dir = util.root_pattern('bower.json', 'psc-package.json', 'spago.dhall'),
}
}

View file

@ -0,0 +1,8 @@
local M = {}
function M.abbr(lhs, rhs)
-- Create abbreviation
vim.cmd(":iabbrev " .. lhs .. " " .. rhs)
end
return M

View file

@ -0,0 +1,14 @@
local M = {}
function M.augroup(name, inside)
vim.cmd('augroup ' .. name)
vim.cmd('autocmd!')
inside()
vim.cmd('augroup END')
end
function M.autocmd(event, glob, action)
vim.cmd('autocmd ' .. event .. ' ' .. glob .. ' ' .. action)
end
return M

View file

@ -1,10 +1,18 @@
local helpers = require("my.helpers") local helpers = require("my.helpers")
local arpeggio = require("my.plugins.arpeggio")
local M = {} local M = {}
function M.map(mode, lhs, rhs, opts) function M.map(mode, lhs, rhs, opts)
local options = helpers.mergeTables(opts, {noremap = true}) if string.len(mode) > 1 then
vim.api.nvim_set_keymap(mode, lhs, rhs, options) for i = 1, #mode do
local c = mode:sub(i, i)
M.map(c, lhs, rhs, opts)
end
else
local options = helpers.mergeTables(opts, {noremap = true})
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
end end
function M.mapSilent(mode, lhs, rhs, opts) function M.mapSilent(mode, lhs, rhs, opts)
@ -16,6 +24,11 @@ function M.setup()
M.map("i", "jj", "<Esc>") -- Remap Esc to jj M.map("i", "jj", "<Esc>") -- Remap Esc to jj
M.map("n", "<Space><Space>", ":w<cr>") -- Double space to sace M.map("n", "<Space><Space>", ":w<cr>") -- Double space to sace
M.map("n", "vv", "<C-w>v") -- Create vertical split M.map("n", "vv", "<C-w>v") -- Create vertical split
if arpeggio ~= nil then
-- Create chords
arpeggio.chord("i", "<Leader>k", "C-k") -- Rebind digraph insertion to leader+k
end
end end
return M return M

View file

@ -1,18 +1,26 @@
local A = require("my.helpers.augroup")
local M = {} local M = {}
local extraCommentStrings = {nix = "# %s", lean = "/- %s -/"}
-- Update comments for certain languages -- Update comments for certain languages
local function setCommentString(extension, commentString) local function setCommentString(extension, commentString)
vim.cmd('augroup set-commentstring-' .. extension) A.augroup('set-commentstring-' .. extension, function()
vim.cmd('autocmd!') local action =
vim.cmd('autocmd BufEnter *.' .. extension .. ' :lua vim.api.nvim_buf_set_option(0, "commentstring", "' .. commentString .. '")') ':lua vim.api.nvim_buf_set_option(0, "commentstring", "' ..
vim.cmd('autocmd BufFilePost *.' .. extension .. ' :lua vim.api.nvim_buf_set_option(0, "commentstring", "' .. commentString .. '")') commentString .. '")'
vim.cmd('augroup END')
A.autocmd('BufEnter', '*.' .. extension, action)
A.autocmd('BufFilePost', '*.' .. extension, action)
end)
end end
function M.setup() function M.setup()
require('nvim_comment').setup() require('nvim_comment').setup()
setCommentString("nix", "# %s") for lang, commentString in pairs(extraCommentStrings) do
setCommentString(lang, commentString)
end
end end
return M return M

View file

@ -0,0 +1,33 @@
local arpeggio = require("my.plugins.arpeggio")
local lspconfig = require("my.plugins.lspconfig")
local M = {}
local idrisChords = {
sc = "case_split",
mc = "make_case",
ml = "make_lemma",
es = "expr_search",
gd = "generate_def",
rh = "refine_hole",
ac = "add_clause"
}
function M.setup()
require("idris2").setup({
server = {
on_attach = function(client, bufnr)
lspconfig.on_attach(client, bufnr)
for key, value in pairs(idrisChords) do
arpeggio.chord("n", "i" .. key,
":lua require('idris2.code_action')." ..
value .. "()<CR>")
end
end
},
client = {hover = {use_split = true}}
})
end
return M

View file

@ -4,21 +4,25 @@ function M.setup()
-- Other unconfigured plugins -- Other unconfigured plugins
require('nvim-autopairs').setup() require('nvim-autopairs').setup()
require("startup").setup({theme = "dashboard"}) require("startup").setup({theme = "dashboard"})
require("presence"):setup({}) require("presence"):setup({}) -- wtf does the : do here?
-- Plugins with their own configs: -- Plugins with their own configs:
-- require("my.plugins.fzf-lua").setup()
-- require("my.plugins.nerdtree").setup()
require("my.plugins.cmp").setup() require("my.plugins.cmp").setup()
require("my.plugins.lspconfig").setup() require("my.plugins.lspconfig").setup()
require("my.plugins.null-ls").setup() require("my.plugins.null-ls").setup()
require("my.plugins.lualine").setup() require("my.plugins.lualine").setup()
-- require("my.plugins.fzf-lua").setup()
require("my.plugins.treesitter").setup() require("my.plugins.treesitter").setup()
require("my.plugins.comment").setup() require("my.plugins.comment").setup()
-- require("my.plugins.nerdtree").setup()
require("my.plugins.nvim-tree").setup() require("my.plugins.nvim-tree").setup()
require("my.plugins.vimtex").setup() require("my.plugins.vimtex").setup()
require("my.plugins.telescope").setup() require("my.plugins.telescope").setup()
require("my.plugins.vimux").setup() require("my.plugins.vimux").setup()
require("my.plugins.idris").setup()
require("my.plugins.lean").setup()
require("my.plugins.vim-tmux-navigator").setup()
require("my.plugins.lh-brackets").setup()
end end
return M return M

View file

@ -0,0 +1,13 @@
local lspconfig = require("my.plugins.lspconfig")
local M = {}
function M.setup()
require('lean').setup {
abbreviations = {builtin = true, cmp = true},
lsp = {on_attach = lspconfig.on_attach},
lsp3 = {on_attach = lspconfig.on_attach},
mappings = true
}
end
return M

View file

@ -0,0 +1,38 @@
local A = require("my.helpers.augroup")
local map = require("my.keymaps").mapSilent
local M = {}
local extraBrackets = {lean = {{"", ""}}}
function M.createBracketCommand(lhs, rhs, isGlobal, opts)
local suffix = ""
if isGlobal then suffix = "!" end
return ":Brackets" .. suffix .. " " .. lhs .. " " .. rhs .. " " ..
(opts or "")
end
function M.createBracket(lhs, rhs, isGlobal, opts)
vim.cmd(M.createBracketCommand(lhs, rhs, isGlobal, opts))
end
function M.setup()
vim.g.marker_define_jump_mappings = 0 -- disable automatic binding of marker jumping (conflicts with tmux-vim-navigator)
map("inv", "sf", '<Plug>MarkersJumpF')
map("inv", "fs", '<Plug>MarkersJumpB')
map("inv", "mi", '<Plug>MarkersMark')
map("inv", "ml", '<Plug>MarkersCloseAllAndJumpToLast')
map("inv", "mo", '<Plug>MarkersJumpOutside')
for key, brackets in pairs(extraBrackets) do
for _, v in ipairs(brackets) do
A.augroup('custom-brackets' .. key, function()
local action = M.createBracketCommand(v[1], v[2], 0, v[3] or "")
A.autocmd('BufEnter', '*.' .. key, action)
end)
end
end
end
return M

View file

@ -25,8 +25,10 @@ function M.on_attach(client, bufnr)
map(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>') map(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>')
-- Hover -- Hover
map(bufnr, 'n', 'J',
"<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>")
map(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') map(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
map(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>') map(bufnr, 'n', 'L', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
-- Workspace stuff -- Workspace stuff
map(bufnr, 'n', '<space>wa', map(bufnr, 'n', '<space>wa',
@ -88,6 +90,7 @@ local servers = {
} }
}, },
rnix = {} rnix = {}
-- agda = {}, Haven't gotten this one to work yet
} }
function M.setup() function M.setup()

View file

@ -1,4 +1,5 @@
local mapSilent = require("my.keymaps").mapSilent local mapSilent = require("my.keymaps").mapSilent
local arpeggio = require("my.plugins.arpeggio")
local M = {} local M = {}
@ -25,19 +26,42 @@ local bindings = {
git_commits = "<space>gj", git_commits = "<space>gj",
git_branches = "<space>gk" git_branches = "<space>gk"
}, },
["extensions.file_browser.file_browser"] = "<space>p" ["extensions.file_browser.file_browser"] = "<space>p",
extensions = {
unicode = {picker = {mode = "i", kind = "dropdown", key = "uu"}}
}
} }
local function setupKeybinds(obj, path) local function setupKeybinds(obj, path)
if path == nil then path = "" end if path == nil then path = "" end
for name, keybinds in pairs(obj) do for name, keybinds in pairs(obj) do
if (type(keybinds) == "table") then if (type(keybinds) == "table") and keybinds.key == nil then
-- This means we found a table of keybinds, so we go deeper -- This means we found a table of keybinds, so we go deeper
setupKeybinds(keybinds, path .. "." .. name) setupKeybinds(keybinds, path .. "." .. name)
else else
local config = keybinds
local pickerArgument = ""
local key = config
local mode = "n"
local bind = mapSilent
if type(config) == "table" then
key = config.key
if config.mode ~= nil then mode = config.mode end
if config.kind ~= nil then
pickerArgument = "require('telescope.themes').get_" ..
config.kind .. "({})"
end
if config.chord then
-- Useful for insert mode bindings
bind = arpeggio.chordSilent
end
end
-- Maps the keybind to the action -- Maps the keybind to the action
mapSilent('n', keybinds, "<cmd>lua require('telescope" .. path .. bind(mode, key,
"')." .. name .. "()<CR>") "<cmd>lua require('telescope" .. path .. "')." .. name .. "(" ..
pickerArgument .. ")<CR>")
end end
end end
end end
@ -47,6 +71,7 @@ function M.setup()
local settings = { local settings = {
defaults = {mappings = {i = {["<C-h>"] = "which_key"}}}, defaults = {mappings = {i = {["<C-h>"] = "which_key"}}},
pickers = {find_files = {hidden = true}},
extensions = { extensions = {
file_browser = { file_browser = {
mappings = { mappings = {

View file

@ -0,0 +1,15 @@
local map = require("my.keymaps").mapSilent
local M = {}
-- For some reason the default mappings do not work for me
function M.setup()
vim.g.tmux_navigator_no_mappings = 1
map("", "<C-h>", ":TmuxNavigateLeft<cr>")
map("", "<C-j>", ":TmuxNavigateDown<cr>")
map("", "<C-k>", ":TmuxNavigateUp<cr>")
map("", "<C-l>", ":TmuxNavigateRight<cr>")
end
return M

View file

@ -0,0 +1,80 @@
local M = {}
local pickers = require "telescope.pickers"
local finders = require "telescope.finders"
local conf = require("telescope.config").values
local actions = require "telescope.actions"
local action_state = require "telescope.actions.state"
local previewers = require "telescope.previewers"
local utils = require "telescope.utils"
local add_abbreviations = false
local unicodeChars = {
nats = "",
rationals = "",
reals = "",
integers = "",
forall = "",
lambda = "λ",
arrow = "",
compose = "",
inverse = "⁻¹",
dots = ""
}
-- our picker function for unicode chars
function M.picker(opts)
opts = opts or {}
local results = {}
for key, value in pairs(unicodeChars) do
-- Name: char pair
table.insert(results, {key, value})
end
print(results)
pickers.new(opts, {
prompt_title = "Unicode characters",
finder = finders.new_table {
results = results,
entry_maker = function(entry)
return {value = entry, display = entry[1], ordinal = entry[1]}
end
},
sorter = conf.generic_sorter(opts),
previewer = previewers.new {
preview_fn = function(_, entry) return entry.value[2] end
},
attach_mappings = function(prompt_bufnr)
actions.select_default:replace(function()
actions.close(prompt_bufnr)
local selection = action_state.get_selected_entry()
if selection == nil then
utils.__warn_no_selection "builtin.planets"
return
end
vim.api.nvim_put({selection.value[2]}, "", false, true)
vim.cmd("startinsert")
end)
return true
end
}):find()
end
function M.setupAbbreviations(ending)
ending = ending or ""
if not add_abbreviations then return end
local abbreviate = require("my.abbreviations").abbr
for key, value in pairs(unicodeChars) do
-- By default abbreviations are triggered using "_"
abbreviate(key .. ending, value)
end
end
return M

View file

@ -19,12 +19,6 @@ unbind %
unbind C-z unbind C-z
bind -n C-z resize-pane -Z bind -n C-z resize-pane -Z
# Vim-like keybinds for switching between panes
bind -n C-h select-pane -L
bind -n C-l select-pane -R
bind -n C-k select-pane -U
bind -n C-j select-pane -D
# Vim-mode # Vim-mode
set-window-option -g mode-keys vi set-window-option -g mode-keys vi

View file

@ -1,5 +1,85 @@
{ {
"nodes": { "nodes": {
"Prettier": {
"flake": false,
"locked": {
"lastModified": 1639310097,
"narHash": "sha256-+eSLEJDuy2ZRkh1h0Y5IF6RUeHEcWhAHpWhwdwW65f0=",
"owner": "Z-snails",
"repo": "prettier",
"rev": "4a90663b1d586f6d6fce25873aa0f0d7bc633b89",
"type": "github"
},
"original": {
"owner": "Z-snails",
"repo": "prettier",
"type": "github"
}
},
"collie": {
"flake": false,
"locked": {
"lastModified": 1631011321,
"narHash": "sha256-goYctB+WBoLgsbjA0DlqGjD8i9wr1K0lv0agqpuwflU=",
"owner": "ohad",
"repo": "collie",
"rev": "ed2eda5e04fbd02a7728e915d396e14cc7ec298e",
"type": "github"
},
"original": {
"owner": "ohad",
"repo": "collie",
"type": "github"
}
},
"comonad": {
"flake": false,
"locked": {
"lastModified": 1638093386,
"narHash": "sha256-kxmN6XuszFLK2i76C6LSGHe5XxAURFu9NpzJbi3nodk=",
"owner": "stefan-hoeck",
"repo": "idris2-comonad",
"rev": "06d6b551db20f1f940eb24c1dae051c957de97ad",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-comonad",
"type": "github"
}
},
"dom": {
"flake": false,
"locked": {
"lastModified": 1639041519,
"narHash": "sha256-4ZYc0qaUEVARxhWuH3JgejIeT+GEDNxdS6zIGhBCk34=",
"owner": "stefan-hoeck",
"repo": "idris2-dom",
"rev": "01ab52d0ffdb3b47481413a949b8f0c0688c97e4",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-dom",
"type": "github"
}
},
"dot-parse": {
"flake": false,
"locked": {
"lastModified": 1638264571,
"narHash": "sha256-VJQITz+vuQgl5HwR5QdUGwN8SRtGcb2/lJaAVfFbiSk=",
"owner": "CodingCellist",
"repo": "idris2-dot-parse",
"rev": "48fbda8bf8adbaf9e8ebd6ea740228e4394154d9",
"type": "github"
},
"original": {
"owner": "CodingCellist",
"repo": "idris2-dot-parse",
"type": "github"
}
},
"easy-dhall-nix": { "easy-dhall-nix": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -32,6 +112,38 @@
"type": "github" "type": "github"
} }
}, },
"effect": {
"flake": false,
"locked": {
"lastModified": 1637477153,
"narHash": "sha256-Ta2Vogg/IiSBkfhhD57jjPTEf3S4DOiVRmof38hmwlM=",
"owner": "russoul",
"repo": "idris2-effect",
"rev": "ea1daf53b2d7e52f9917409f5653adc557f0ee1a",
"type": "github"
},
"original": {
"owner": "russoul",
"repo": "idris2-effect",
"type": "github"
}
},
"elab-util": {
"flake": false,
"locked": {
"lastModified": 1639041013,
"narHash": "sha256-K61s/xifFiTDXJTak5NZmZL6757CTYCY+TGywRZMD7M=",
"owner": "stefan-hoeck",
"repo": "idris2-elab-util",
"rev": "7a381c7c5dc3adb7b97c8b8be17e4fb4cc63027d",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-elab-util",
"type": "github"
}
},
"fish-plugin-z": { "fish-plugin-z": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -129,6 +241,21 @@
} }
}, },
"flake-utils": { "flake-utils": {
"locked": {
"lastModified": 1638122382,
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"locked": { "locked": {
"lastModified": 1644229661, "lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@ -143,7 +270,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": { "flake-utils_3": {
"locked": {
"lastModified": 1644229661,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": { "locked": {
"lastModified": 1638122382, "lastModified": 1638122382,
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
@ -158,6 +300,38 @@
"type": "github" "type": "github"
} }
}, },
"frex": {
"flake": false,
"locked": {
"lastModified": 1637410704,
"narHash": "sha256-BthU1t++n0ZvS76p0fCHsE33QSoXYxf0hMUSKajDY8w=",
"owner": "frex-project",
"repo": "idris-frex",
"rev": "22c480e879c757a5cebca7bb555ec3d21ae3ac28",
"type": "github"
},
"original": {
"owner": "frex-project",
"repo": "idris-frex",
"type": "github"
}
},
"fvect": {
"flake": false,
"locked": {
"lastModified": 1633247988,
"narHash": "sha256-zElIze03XpcrYL4H5Aj0ZGNplJGbtOx+iWnivJMzHm0=",
"owner": "mattpolzin",
"repo": "idris-fvect",
"rev": "1c5e3761e0cd83e711a3535ef9051bea45e6db3f",
"type": "github"
},
"original": {
"owner": "mattpolzin",
"repo": "idris-fvect",
"type": "github"
}
},
"githubNvimTheme": { "githubNvimTheme": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -174,6 +348,38 @@
"type": "github" "type": "github"
} }
}, },
"hashable": {
"flake": false,
"locked": {
"lastModified": 1633965157,
"narHash": "sha256-Dggf5K//RCZ7uvtCyeiLNJS6mm+8/n0RFW3zAc7XqPg=",
"owner": "z-snails",
"repo": "idris2-hashable",
"rev": "d6fec8c878057909b67f3d4da334155de4f37907",
"type": "github"
},
"original": {
"owner": "z-snails",
"repo": "idris2-hashable",
"type": "github"
}
},
"hedgehog": {
"flake": false,
"locked": {
"lastModified": 1639041435,
"narHash": "sha256-893cPy7gGSQpVmm9co3QCpWsgjukafZHy8YFk9xts30=",
"owner": "stefan-hoeck",
"repo": "idris2-hedgehog",
"rev": "a66b1eb0bf84c4a7b743cfb217be69866bc49ad8",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-hedgehog",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -194,9 +400,227 @@
"type": "github" "type": "github"
} }
}, },
"idrall": {
"flake": false,
"locked": {
"lastModified": 1636495701,
"narHash": "sha256-aOdCRd4XsSxwqVGta1adlZBy8TVTxTwFDnJ1dyMZK8M=",
"owner": "alexhumphreys",
"repo": "idrall",
"rev": "13ef174290169d05c9e9abcd77c53412e3e0c944",
"type": "github"
},
"original": {
"owner": "alexhumphreys",
"ref": "13ef174",
"repo": "idrall",
"type": "github"
}
},
"idris-server": {
"flake": false,
"locked": {
"lastModified": 1634507315,
"narHash": "sha256-ulo23yLJXsvImoMB/1C6yRRTqmn/Odo+aUaVi+tUhJo=",
"owner": "avidela",
"repo": "idris-server",
"rev": "661a4ecf0fadaa2bd79c8e922c2d4f79b0b7a445",
"type": "gitlab"
},
"original": {
"owner": "avidela",
"repo": "idris-server",
"type": "gitlab"
}
},
"idris2": {
"flake": false,
"locked": {
"lastModified": 1639427352,
"narHash": "sha256-C1K2FM1Kio8vi9FTrivdacYCX4cywIsLBeNCsZ6ft4g=",
"owner": "idris-lang",
"repo": "idris2",
"rev": "36918e618646177b1e0c2fd01f21cc8d04d9da30",
"type": "github"
},
"original": {
"owner": "idris-lang",
"repo": "idris2",
"type": "github"
}
},
"idris2-pkgs": {
"inputs": {
"Prettier": "Prettier",
"collie": "collie",
"comonad": "comonad",
"dom": "dom",
"dot-parse": "dot-parse",
"effect": "effect",
"elab-util": "elab-util",
"flake-utils": "flake-utils",
"frex": "frex",
"fvect": "fvect",
"hashable": "hashable",
"hedgehog": "hedgehog",
"idrall": "idrall",
"idris-server": "idris-server",
"idris2": "idris2",
"indexed": "indexed",
"inigo": "inigo",
"ipkg-to-json": "ipkg-to-json",
"json": "json",
"katla": "katla",
"lsp": "lsp",
"nixpkgs": [
"nixpkgs"
],
"odf": "odf",
"pretty-show": "pretty-show",
"python": "python",
"rhone": "rhone",
"rhone-js": "rhone-js",
"snocvect": "snocvect",
"sop": "sop",
"tailrec": "tailrec",
"xml": "xml"
},
"locked": {
"lastModified": 1642030375,
"narHash": "sha256-J1uXnpPR72mjFjLBuYcvDHStBxVya6/MjBNNwqxGeD0=",
"owner": "claymager",
"repo": "idris2-pkgs",
"rev": "ac33a49d4d4bd2b50fddb040cd889733a02c8f09",
"type": "github"
},
"original": {
"owner": "claymager",
"repo": "idris2-pkgs",
"type": "github"
}
},
"indexed": {
"flake": false,
"locked": {
"lastModified": 1638685238,
"narHash": "sha256-FceB7o88yKYzjTfRC6yfhOL6oDPMmCQAsJZu/pjE2uA=",
"owner": "mattpolzin",
"repo": "idris-indexed",
"rev": "ff3ba99b0063da6a74c96178e7f3c58a4ac1693e",
"type": "github"
},
"original": {
"owner": "mattpolzin",
"repo": "idris-indexed",
"type": "github"
}
},
"inigo": {
"flake": false,
"locked": {
"lastModified": 1637596767,
"narHash": "sha256-LNx30LO0YWDVSPTxRLWGTFL4f3d5ANG6c60WPdmiYdY=",
"owner": "idris-community",
"repo": "Inigo",
"rev": "57f5b5c051222d8c630010a0a3cf7d7138910127",
"type": "github"
},
"original": {
"owner": "idris-community",
"repo": "Inigo",
"type": "github"
}
},
"ipkg-to-json": {
"flake": false,
"locked": {
"lastModified": 1634937414,
"narHash": "sha256-LhSmWRpI7vyIQE7QTo38ZTjlqYPVSvV/DIpIxzPmqS0=",
"owner": "claymager",
"repo": "ipkg-to-json",
"rev": "2969b6b83714eeddc31e41577a565778ee5922e6",
"type": "github"
},
"original": {
"owner": "claymager",
"repo": "ipkg-to-json",
"type": "github"
}
},
"json": {
"flake": false,
"locked": {
"lastModified": 1639041459,
"narHash": "sha256-TP/V1jBBP1hFPm/cJ5O2EJiaNoZ19KvBOAI0S9lvAR4=",
"owner": "stefan-hoeck",
"repo": "idris2-json",
"rev": "7c0c028acad0ba0b63b37b92199f37e6ec73864a",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-json",
"type": "github"
}
},
"katla": {
"flake": false,
"locked": {
"lastModified": 1636542431,
"narHash": "sha256-X83NA/P3k1iPcBa8g5z8JldEmFEz/jxVeViJX0/FikY=",
"owner": "idris-community",
"repo": "katla",
"rev": "d841ec243f96b4762074211ee81033e28884c858",
"type": "github"
},
"original": {
"owner": "idris-community",
"repo": "katla",
"type": "github"
}
},
"kmonad": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"dir": "nix",
"lastModified": 1647852712,
"narHash": "sha256-glteo+r5qz/O9BirpK/ziigpYbGjZIY5UFuxsADC4qY=",
"owner": "kmonad",
"repo": "kmonad",
"rev": "65b501defdd0049563752f8af8c8c57f5a1ae38b",
"type": "github"
},
"original": {
"dir": "nix",
"owner": "kmonad",
"repo": "kmonad",
"type": "github"
}
},
"lsp": {
"flake": false,
"locked": {
"lastModified": 1639486283,
"narHash": "sha256-po396FnUu8iqiipwPxqpFZEU4rtpX3jnt3cySwjLsH8=",
"owner": "idris-community",
"repo": "idris2-lsp",
"rev": "7ebb6caf6bb4b57c5107579aba2b871408e6f183",
"type": "github"
},
"original": {
"owner": "idris-community",
"repo": "idris2-lsp",
"type": "github"
}
},
"neovim-flake": { "neovim-flake": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils_3",
"nixpkgs": [ "nixpkgs": [
"neovim-nightly-overlay", "neovim-nightly-overlay",
"nixpkgs" "nixpkgs"
@ -304,6 +728,54 @@
"type": "github" "type": "github"
} }
}, },
"nvim-plugin-agda": {
"flake": false,
"locked": {
"lastModified": 1642289590,
"narHash": "sha256-c7UjrVbfaagIJS7iGdjWiFlpLUDHGc0I3ZGoUPECL00=",
"owner": "isti115",
"repo": "agda.nvim",
"rev": "c7da627547e978b4ac3780af1b8f418c8b12ff98",
"type": "github"
},
"original": {
"owner": "isti115",
"repo": "agda.nvim",
"type": "github"
}
},
"nvim-plugin-idris2": {
"flake": false,
"locked": {
"lastModified": 1645883550,
"narHash": "sha256-paIQIUdEOHkJaKWf7TS523VFBmRtmnguM0+gM7Sm9vg=",
"owner": "ShinKage",
"repo": "idris2-nvim",
"rev": "011b932079cd10e674821020b36e717998c1d3d3",
"type": "github"
},
"original": {
"owner": "ShinKage",
"repo": "idris2-nvim",
"type": "github"
}
},
"odf": {
"flake": false,
"locked": {
"lastModified": 1638184051,
"narHash": "sha256-usSdPx+UqOGImHHdHcrytdzi2LXtIRZuUW0fkD/Wwnk=",
"owner": "madman-bob",
"repo": "idris2-odf",
"rev": "d2f532437321c8336f1ca786b44b6ebef4117126",
"type": "github"
},
"original": {
"owner": "madman-bob",
"repo": "idris2-odf",
"type": "github"
}
},
"oh-my-fish": { "oh-my-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -320,6 +792,70 @@
"type": "github" "type": "github"
} }
}, },
"pretty-show": {
"flake": false,
"locked": {
"lastModified": 1639041411,
"narHash": "sha256-BzEe1fpX+lqGEk8b1JZoQT1db5I7s7SZnLCttRVGXdY=",
"owner": "stefan-hoeck",
"repo": "idris2-pretty-show",
"rev": "a4bc6156b9dac43699f87504cbdb8dada5627863",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-pretty-show",
"type": "github"
}
},
"python": {
"flake": false,
"locked": {
"lastModified": 1635936936,
"narHash": "sha256-c9mcMApN0qgu0AXQVu0V+NXt2poP258wCPkyvtQvv4I=",
"owner": "madman-bob",
"repo": "idris2-python",
"rev": "0eab028933c65bebe744e879881416f5136d6943",
"type": "github"
},
"original": {
"owner": "madman-bob",
"repo": "idris2-python",
"type": "github"
}
},
"rhone": {
"flake": false,
"locked": {
"lastModified": 1639041532,
"narHash": "sha256-2g43shlWQIT/1ogesUBUBV9N8YiD3RwaCbbhdKLVp1s=",
"owner": "stefan-hoeck",
"repo": "idris2-rhone",
"rev": "c4d828b0b8efea495d9a5f1e842a9c67cad57724",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-rhone",
"type": "github"
}
},
"rhone-js": {
"flake": false,
"locked": {
"lastModified": 1639041546,
"narHash": "sha256-ddWVsSRbfA6ghmwiRMzDpHBPM+esGdutuqm1qQZgs88=",
"owner": "stefan-hoeck",
"repo": "idris2-rhone-js",
"rev": "520dd59549f5b14075045314b6805c7492ed636e",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-rhone-js",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"easy-dhall-nix": "easy-dhall-nix", "easy-dhall-nix": "easy-dhall-nix",
@ -330,15 +866,20 @@
"fish-theme-harleen": "fish-theme-harleen", "fish-theme-harleen": "fish-theme-harleen",
"githubNvimTheme": "githubNvimTheme", "githubNvimTheme": "githubNvimTheme",
"home-manager": "home-manager", "home-manager": "home-manager",
"idris2-pkgs": "idris2-pkgs",
"kmonad": "kmonad",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nixos-unstable": "nixos-unstable", "nixos-unstable": "nixos-unstable",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nvim-plugin-agda": "nvim-plugin-agda",
"nvim-plugin-idris2": "nvim-plugin-idris2",
"oh-my-fish": "oh-my-fish", "oh-my-fish": "oh-my-fish",
"sddm-theme-chili": "sddm-theme-chili", "sddm-theme-chili": "sddm-theme-chili",
"telescope-file-browser-nvim": "telescope-file-browser-nvim", "telescope-file-browser-nvim": "telescope-file-browser-nvim",
"vim-extra-plugins": "vim-extra-plugins", "vim-extra-plugins": "vim-extra-plugins",
"vim-plugin-arpeggio": "vim-plugin-arpeggio" "vim-plugin-arpeggio": "vim-plugin-arpeggio",
"vim-plugin-kmonad": "vim-plugin-kmonad"
} }
}, },
"sddm-theme-chili": { "sddm-theme-chili": {
@ -357,6 +898,54 @@
"type": "github" "type": "github"
} }
}, },
"snocvect": {
"flake": false,
"locked": {
"lastModified": 1641633224,
"narHash": "sha256-6zTU4sDzd/R/dFCTNZaX41H4L3/USGLFghMS0Oc9liY=",
"owner": "mattpolzin",
"repo": "idris-snocvect",
"rev": "ff1e7afba360a62f7e522e9bbb856096a79702c4",
"type": "github"
},
"original": {
"owner": "mattpolzin",
"repo": "idris-snocvect",
"type": "github"
}
},
"sop": {
"flake": false,
"locked": {
"lastModified": 1639041379,
"narHash": "sha256-PDTf1Wx6EygiWszguvoVPiqIISYFLabI4e0lXHlrjcA=",
"owner": "stefan-hoeck",
"repo": "idris2-sop",
"rev": "e4354d1883cd73616019457cb9ebf864d99df6a0",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-sop",
"type": "github"
}
},
"tailrec": {
"flake": false,
"locked": {
"lastModified": 1637146655,
"narHash": "sha256-0yi7MQIrISPvAwkgDC1M5PHDEeVyIaISF0HjKDaT0Rw=",
"owner": "stefan-hoeck",
"repo": "idris2-tailrec",
"rev": "dd0bc6381b3a2e69aa37f9a8c1b165d4b1516ad7",
"type": "github"
},
"original": {
"owner": "stefan-hoeck",
"repo": "idris2-tailrec",
"type": "github"
}
},
"telescope-file-browser-nvim": { "telescope-file-browser-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -376,7 +965,7 @@
"vim-extra-plugins": { "vim-extra-plugins": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
@ -408,6 +997,38 @@
"repo": "vim-arpeggio", "repo": "vim-arpeggio",
"type": "github" "type": "github"
} }
},
"vim-plugin-kmonad": {
"flake": false,
"locked": {
"lastModified": 1647812451,
"narHash": "sha256-7PKVOsb3jvuGEnP/LsrDr96wFSQMou2dgnV+hRaI444=",
"owner": "kmonad",
"repo": "kmonad-vim",
"rev": "37978445197ab00edeb5b731e9ca90c2b141723f",
"type": "github"
},
"original": {
"owner": "kmonad",
"repo": "kmonad-vim",
"type": "github"
}
},
"xml": {
"flake": false,
"locked": {
"lastModified": 1637939752,
"narHash": "sha256-yYJBhPfwYoi7amlHmeNGrVCOAc3BjZpKTCd9wDs3XEM=",
"owner": "madman-bob",
"repo": "idris2-xml",
"rev": "1292ccfcd58c551089ef699e4560343d5c473d64",
"type": "github"
},
"original": {
"owner": "madman-bob",
"repo": "idris2-xml",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -6,9 +6,21 @@
nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixos-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager"; home-manager = {
home-manager.inputs.nixpkgs.follows = "nixpkgs"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# keyboard layout configuration
kmonad = {
url = "github:kmonad/kmonad?dir=nix";
inputs.nixpkgs.follows = "nixpkgs";
};
idris2-pkgs = {
url = "github:claymager/idris2-pkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
#### Nvim stuff #### Nvim stuff
neovim-nightly-overlay = { neovim-nightly-overlay = {
@ -24,6 +36,21 @@
flake = false; flake = false;
}; };
vim-plugin-kmonad = {
url = "github:kmonad/kmonad-vim";
flake = false;
};
nvim-plugin-agda = {
url = "github:isti115/agda.nvim";
flake = false;
};
nvim-plugin-idris2 = {
url = "github:ShinKage/idris2-nvim";
flake = false;
};
# Create / delete files within telescope # Create / delete files within telescope
telescope-file-browser-nvim = { telescope-file-browser-nvim = {
url = "github:nvim-telescope/telescope-file-browser.nvim"; url = "github:nvim-telescope/telescope-file-browser.nvim";
@ -80,7 +107,7 @@
}; };
}; };
outputs = inputs@{ self, nixpkgs, home-manager, ... }: outputs = inputs@{ self, nixpkgs, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
provideInputs = provideInputs =
@ -91,6 +118,7 @@
nixpkgs.overlays = [ nixpkgs.overlays = [
inputs.vim-extra-plugins.overlay inputs.vim-extra-plugins.overlay
inputs.neovim-nightly-overlay.overlay inputs.neovim-nightly-overlay.overlay
inputs.idris2-pkgs.overlay
provideInputs provideInputs
]; ];
}; };
@ -100,7 +128,8 @@
inherit system; inherit system;
modules = [ modules = [
home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.kmonad.nixosModule
overlays overlays
./hardware/laptop.nix ./hardware/laptop.nix
./configuration.nix ./configuration.nix

View file

@ -4,7 +4,7 @@
./shells ./shells
# ./wakatime # ./wakatime
./xmonad ./xmonad
./xmodmap # ./xmodmap
# ./wine.nix # ./wine.nix
./kdeconnect.nix ./kdeconnect.nix
@ -18,6 +18,7 @@
./postgres.nix ./postgres.nix
./neovim.nix ./neovim.nix
./tmux.nix ./tmux.nix
./kmonad.nix
]; ];
} }

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
let kmonadRoot = ../../dotfiles/kmonad; in
{
users.extraUsers.adrielus.extraGroups = [ "input" "uinput" ];
services = {
kmonad = {
enable = true;
configfiles = [ (kmonadRoot + "/keymap.kbd") ];
};
xserver = {
xkbOptions = "compose:ralt";
layout = "us";
};
};
home-manager.users.adrielus = {
home.file.".XCompose".source = kmonadRoot + "/xcompose";
};
}

View file

@ -2,8 +2,13 @@
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "Europe/Bucharest"; time.timeZone = "Europe/Bucharest";
i18n.inputMethod = {
enabled = "ibus";
# ibus.engines = with pkgs.ibus-engines; [ /* any engine you want, for example */ anthy ];
};
console = { console = {
keyMap = "us"; keyMap = "us";
font = "Lat2-Terminus16"; font = "SourceCodePro";
}; };
} }

View file

@ -29,6 +29,7 @@
zathura zathura
cmake cmake
# kdeconnect # kdeconnect
sloc # line of code counter
# editors # editors
# vscodium # vscodium
@ -64,7 +65,7 @@
# blueman # bluetooth manager # blueman # bluetooth manager
# freesweep # minesweeper I can play w the keyboard. # freesweep # minesweeper I can play w the keyboard.
# multimc # multimc
sloc # line of code counter lmms # music software
# Nes emulators and stuff # Nes emulators and stuff
# zsnes # zsnes

View file

@ -34,10 +34,12 @@ in
extraPackages = with pkgs; [ extraPackages = with pkgs; [
# Language servers # Language servers
# haskellPackages.agda-language-server # agda
nodePackages.typescript-language-server # typescript nodePackages.typescript-language-server # typescript
easy-purescript-nix.purescript-language-server # purescript easy-purescript-nix.purescript-language-server # purescript
idris2 # idris2 lang
idris2-pkgs.lsp # idris2
sumneko-lua-language-server # lua sumneko-lua-language-server # lua
efm-langserver # auto-formatting
rnix-lsp # nix rnix-lsp # nix
# Formatters # Formatters
@ -77,6 +79,14 @@ in
vim-tmux-navigator # easly switch between tmux and vim panes vim-tmux-navigator # easly switch between tmux and vim panes
arpeggio # allows me to setup chord keybinds (keybinds where all the keys are pressed at the same time) arpeggio # allows me to setup chord keybinds (keybinds where all the keys are pressed at the same time)
presence-nvim # discord rich presence presence-nvim # discord rich presence
agda-nvim # agda support
unicode-vim # better unicode support
nui-nvim # ui lib required by idris plugin
idris2-nvim # idris2 support
lean-nvim # lean support
kmonad-vim # support for the kmonad config language
lh-vim-lib # dependency for lh-brackets
lh-brackets # bracket customization
# Cmp related stuff. See https://github.com/hrsh7th/nvim-cmp # Cmp related stuff. See https://github.com/hrsh7th/nvim-cmp
cmp-nvim-lsp cmp-nvim-lsp

View file

@ -5,7 +5,7 @@ in
{ {
home-manager.users.adrielus.programs = { home-manager.users.adrielus.programs = {
# Add tmux-navigator plugin to neovim # Add tmux-navigator plugin to neovim
neovim.extraPackages = [ pkgs.vimPlugins.vim-tmux-navigator ]; # neovim.extraPackages = [ pkgs.vimPlugins.vim-tmux-navigator ];
tmux = { tmux = {
enable = true; enable = true;

View file

@ -1,5 +1,8 @@
! Remap caps lock to control ! Remap caps lock to control
clear lock clear Lock
clear control ! clear control
add control = Caps_Lock Control_L Control_R ! add control = Caps_Lock Control_L Control_R
! New way of hitting caps lock
keycode 66 = Control_L Caps_Lock NoSymbol NoSymbol keycode 66 = Control_L Caps_Lock NoSymbol NoSymbol
keycode 0x42 = backslash

3
modules/dev/agda.nix Normal file
View file

@ -0,0 +1,3 @@
{ pkgs, ... }: {
home-manager.users.adrielus.home.packages = [ pkgs.agda ];
}

View file

@ -4,12 +4,16 @@
./nix.nix ./nix.nix
./purescript.nix ./purescript.nix
./javascript.nix ./javascript.nix
./fsharp.nix
./rust.nix ./rust.nix
# ./idris.nix
# ./racket.nix
# ./elm.nix
./dhall.nix ./dhall.nix
./haskell ./haskell
./fsharp.nix
# ./racket.nix
# ./elm.nix
# Proof assistants
./agda.nix
./idris.nix
./lean.nix
]; ];
} }

View file

@ -1,3 +1,6 @@
{ pkgs, ... }: { { pkgs, ... }: {
home-manager.users.adrielus.home.packages = with pkgs; [ idris2 ]; home-manager.users.adrielus.home.packages = with pkgs; [
idris2
idris2-pkgs.lsp # idris2
];
} }

5
modules/dev/lean.nix Normal file
View file

@ -0,0 +1,5 @@
{ pkgs, ... }: {
home-manager.users.adrielus.home.packages = with pkgs; [
elan # lean version manager
];
}

View file

@ -2,18 +2,27 @@
nix = { nix = {
trustedUsers = [ "root" "adrielus" "@wheel" ]; trustedUsers = [ "root" "adrielus" "@wheel" ];
autoOptimiseStore = true; autoOptimiseStore = true;
gc.automatic = true;
optimise.automatic = true; optimise.automatic = true;
binaryCaches = [ "https://cache.nixos.org" "https://all-hies.cachix.org" ]; gc.automatic = false;
binaryCachePublicKeys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"all-hies.cachix.org-1:JjrzAOEUsD9ZMt8fdFbzo3jNAyEWlPAwdVuHw4RD43k="
];
# Emanble nix flakes # Emanble nix flakes
package = pkgs.nixFlakes; package = pkgs.nixFlakes;
extraOptions = '' extraOptions = ''
experimental-features = nix-command flakes experimental-features = nix-command flakes
''; '';
# Caching and whatnot
binaryCaches = [
"https://nix-community.cachix.org"
"https://cm-idris2-pkgs.cachix.org"
"https://cache.nixos.org"
"https://all-hies.cachix.org" # Do I even use all-hies anymore?
];
binaryCachePublicKeys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cm-idris2-pkgs.cachix.org-1:YB2oJSEsD5oMJjAESxolC2GQtE6B5I6jkWhte2gtXjk="
"all-hies.cachix.org-1:JjrzAOEUsD9ZMt8fdFbzo3jNAyEWlPAwdVuHw4RD43k="
];
}; };
} }

View file

@ -1,18 +1,33 @@
{ system }: { system }:
{ home-manager { home-manager
# nixos stuff
, nixpkgs , nixpkgs
, nixpkgs-unstable , nixpkgs-unstable
, nixos-unstable , nixos-unstable
# easy-*
, easy-purescript-nix , easy-purescript-nix
, easy-dhall-nix , easy-dhall-nix
# fish plugins
, fish-plugin-z , fish-plugin-z
, fish-theme-harleen , fish-theme-harleen
, fish-theme-agnoster , fish-theme-agnoster
, fish-theme-dangerous , fish-theme-dangerous
, oh-my-fish , oh-my-fish
, githubNvimTheme , githubNvimTheme
# vim plugins
, vim-plugin-arpeggio , vim-plugin-arpeggio
, telescope-file-browser-nvim , vim-plugin-kmonad
# nvim plugins
, nvim-plugin-agda
, nvim-plugin-idris2
, telescope-file-browser-nvim # TODO: rename this one
, sddm-theme-chili , sddm-theme-chili
, ... , ...
}: self: super: }: self: super:
@ -63,10 +78,11 @@ in
myVimPlugins = { myVimPlugins = {
githubNvimTheme = githubNvimTheme; githubNvimTheme = githubNvimTheme;
telescope-file-browser-nvim = telescope-file-browser-nvim = plugin "file_browser" telescope-file-browser-nvim;
plugin "file_browser" telescope-file-browser-nvim; agda-nvim = plugin "agda" nvim-plugin-agda;
idris2-nvim = plugin "idris" nvim-plugin-idris2;
arpeggio = plugin "arpeggio" vim-plugin-arpeggio; arpeggio = plugin "arpeggio" vim-plugin-arpeggio;
kmonad-vim = plugin "kmonad-vim" vim-plugin-kmonad;
}; };
sddm-theme-chili = sddm-theme-chili; sddm-theme-chili = sddm-theme-chili;

View file

@ -10,7 +10,7 @@ lib.lists.map (theme: pkgs.callPackage theme { }) [
}) })
(githubVariant { (githubVariant {
variant = "dark"; variant = "dark";
wallpaper = ./wallpapers/spaceship.jpg; wallpaper = ./wallpapers/synthwave.jpg;
transparency = 0.8; transparency = 0.8;
}) })
] ]

View file

@ -1,5 +1,26 @@
{ pkgs, ... }: { pkgs, ... }:
with import ../secrets.nix; { with import ../secrets.nix; {
# options = {
# myUser = {
# type = lib.types.string;
# default = "";
# };
# };
# config = {
# myUser = "adrielus";
# Disable asking for password for sudo
security.sudo.extraRules = [
{
users = [ "adrielus" ];
commands = [{
command = "ALL";
options = [ "SETENV" "NOPASSWD" ];
}];
}
];
users = { users = {
mutableUsers = false; mutableUsers = false;
users.adrielus = { users.adrielus = {
@ -10,4 +31,5 @@ with import ../secrets.nix; {
shell = pkgs.fish; shell = pkgs.fish;
}; };
}; };
# };
} }

2
rebuild.sh Normal file
View file

@ -0,0 +1,2 @@
# TODO: run tests and only rebuild on success

3
test.sh Executable file
View file

@ -0,0 +1,3 @@
# Test kmonad config
echo "Testing kmonad..."
./dotfiles/kmonad/test.sh