mirror of
https://codeberg.org/leana8959/.files.git
synced 2026-02-01 14:39:39 +00:00
Compare commits
123 commits
041fbcfa1c
...
c7a09c5a23
| Author | SHA1 | Date | |
|---|---|---|---|
| c7a09c5a23 | |||
| 8e201d91f5 | |||
| 496f2f1f46 | |||
| 7ff36d8926 | |||
| 29004da42a | |||
| e78c2841d4 | |||
| ea3571e226 | |||
| 760774d053 | |||
| ae75bd7483 | |||
| 80d3a7234e | |||
| 2f4b5e59fe | |||
| f8aae6bd65 | |||
| 2dd8b24a33 | |||
| e645fcebfe | |||
| 64921628a8 | |||
| a9a85f16a4 | |||
| 94e3d872f0 | |||
| 08b934cf21 | |||
| b9093075f9 | |||
| 6c178a152d | |||
| b55accdd01 | |||
| 43fd967b78 | |||
| edf313dfb3 | |||
| cc9a1be62f | |||
| e538cf1fdf | |||
| d2ebdb0073 | |||
| 16dfce7e6e | |||
| e63978da7f | |||
| 4514493746 | |||
| 2a9804f87f | |||
| 934038691d | |||
| 5ffb48d5cd | |||
| a1a918193a | |||
| 9c6bfa1058 | |||
| 643d736942 | |||
| 69c07154c9 | |||
| 46447d8a02 | |||
| f8658bc793 | |||
| 5045521db5 | |||
| bd8bd280ea | |||
| 26acc21d31 | |||
| 352be82869 | |||
| 0ad8a3c659 | |||
| 8bd410c116 | |||
| ad6669d42f | |||
| ae75eae20f | |||
| e08afde62f | |||
| 51d27a224a | |||
| 8cb87dff9b | |||
| bc67b4226f | |||
| 9230f7b378 | |||
| d93813d04e | |||
| f2bd846e22 | |||
| acab4af809 | |||
| 4260ebfda0 | |||
| aed2fed5a9 | |||
| 4932575819 | |||
| 5b4c35df1c | |||
| 2d6ead2145 | |||
| 7e65f2d093 | |||
| 1c8df62dfe | |||
| f772e03821 | |||
| 9c728011be | |||
| 3133e11a96 | |||
| 0a34f6cc7d | |||
| 963b1afacd | |||
| 8eb2603a8f | |||
| 98125368d3 | |||
| 0798147e92 | |||
| 3acb95f745 | |||
| c43cd8b595 | |||
| 294868e522 | |||
| fd5e046406 | |||
| 6ae3f6932d | |||
| b15abf8bdb | |||
| 87cb944464 | |||
| e5c88e5910 | |||
| ec4d17cf83 | |||
| bab66207cc | |||
| 261ffa3ff1 | |||
| a12fabd33d | |||
| bcd45dddf5 | |||
| a3c02415f8 | |||
| 5a296c6e97 | |||
| 810a395610 | |||
| 3d91894fbb | |||
| 23ec902deb | |||
| a8e5776854 | |||
| daf4d2901e | |||
| 085442e442 | |||
| d2617493e8 | |||
| 627888c13f | |||
| 4af7f74bdf | |||
| 8587f2258b | |||
| 1c73168fdc | |||
| a70b9db0c7 | |||
| 10da2954b7 | |||
| e47ae2d648 | |||
| cdfe147f81 | |||
| 157bbd8f7d | |||
| 36367bdfaf | |||
| ba80b161b8 | |||
| 5751f70d5e | |||
| 4b12e279e0 | |||
| 7c335b264f | |||
| c0e0dbe9b9 | |||
| d6417797db | |||
| 6470614a33 | |||
| c2c7fd2b37 | |||
| 62f81c84c5 | |||
| e3b843e00d | |||
| 9e33750fd9 | |||
| ff476b5c66 | |||
| 40754f9b6a | |||
| c23aad611a | |||
| 9426f74fce | |||
| 4728a44721 | |||
| c33bef854b | |||
| 92a20d36b6 | |||
| 2d17c2c145 | |||
| 245da500a0 | |||
| 088c6b31a5 | |||
| 040afef280 |
72 changed files with 1151 additions and 764 deletions
176
.config/nvim/ftplugin/agda.vim
Normal file
176
.config/nvim/ftplugin/agda.vim
Normal file
|
|
@ -0,0 +1,176 @@
|
||||||
|
" Sourced from
|
||||||
|
" https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.VIMEditing#:~:text=agda%2Dutf8%2Evim
|
||||||
|
" (Link is dead so use wayback machine)
|
||||||
|
|
||||||
|
" To add more
|
||||||
|
" https://www.compart.com/en/unicode/
|
||||||
|
|
||||||
|
" Superscripts
|
||||||
|
imap <buffer> \^0 ⁰
|
||||||
|
imap <buffer> \^1 ¹
|
||||||
|
imap <buffer> \^2 ²
|
||||||
|
imap <buffer> \^3 ³
|
||||||
|
imap <buffer> \^4 ⁴
|
||||||
|
imap <buffer> \^5 ⁵
|
||||||
|
imap <buffer> \^6 ⁶
|
||||||
|
imap <buffer> \^7 ⁷
|
||||||
|
imap <buffer> \^8 ⁸
|
||||||
|
imap <buffer> \^9 ⁹
|
||||||
|
imap <buffer> \^+ ⁺
|
||||||
|
imap <buffer> \^- ⁻
|
||||||
|
imap <buffer> \^= ⁼
|
||||||
|
imap <buffer> \^( ⁽
|
||||||
|
imap <buffer> \^) ⁾
|
||||||
|
imap <buffer> \^n ⁿ
|
||||||
|
|
||||||
|
imap <buffer> \^l ˡ
|
||||||
|
imap <buffer> \^r ʳ
|
||||||
|
|
||||||
|
imap <buffer> \' ′
|
||||||
|
imap <buffer> \'' ″
|
||||||
|
imap <buffer> \''' ‴
|
||||||
|
imap <buffer> \'''' ⁗
|
||||||
|
|
||||||
|
" Subscripts
|
||||||
|
imap <buffer> \_0 ₀
|
||||||
|
imap <buffer> \_1 ₁
|
||||||
|
imap <buffer> \_2 ₂
|
||||||
|
imap <buffer> \_3 ₃
|
||||||
|
imap <buffer> \_4 ₄
|
||||||
|
imap <buffer> \_5 ₅
|
||||||
|
imap <buffer> \_6 ₆
|
||||||
|
imap <buffer> \_7 ₇
|
||||||
|
imap <buffer> \_8 ₈
|
||||||
|
imap <buffer> \_9 ₉
|
||||||
|
imap <buffer> \_+ ₊
|
||||||
|
imap <buffer> \_- ₋
|
||||||
|
imap <buffer> \_= ₌
|
||||||
|
imap <buffer> \_( ₍
|
||||||
|
imap <buffer> \_) ₎
|
||||||
|
|
||||||
|
" Arrows
|
||||||
|
imap <buffer> -> →
|
||||||
|
imap <buffer> <-- ←
|
||||||
|
imap <buffer> <--> ↔
|
||||||
|
imap <buffer> ==> ⇒
|
||||||
|
imap <buffer> <== ⇐
|
||||||
|
imap <buffer> <==> ⇔
|
||||||
|
"
|
||||||
|
" Symbols from mathematics and logic, LaTeX style
|
||||||
|
imap <buffer> \forall ∀
|
||||||
|
imap <buffer> \exists ∃
|
||||||
|
imap <buffer> \in ∈
|
||||||
|
imap <buffer> \ni ∋
|
||||||
|
imap <buffer> \empty ∅
|
||||||
|
imap <buffer> \prod ∏
|
||||||
|
imap <buffer> \sum ∑
|
||||||
|
imap <buffer> \le ≤
|
||||||
|
imap <buffer> \ge ≥
|
||||||
|
imap <buffer> \pm ±
|
||||||
|
imap <buffer> \subset ⊂
|
||||||
|
imap <buffer> \subseteq ⊆
|
||||||
|
imap <buffer> \supset ⊃
|
||||||
|
imap <buffer> \supseteq ⊇
|
||||||
|
imap <buffer> \setminus ∖
|
||||||
|
imap <buffer> \cap ∩
|
||||||
|
imap <buffer> \cup ∪
|
||||||
|
imap <buffer> \int ∫
|
||||||
|
imap <buffer> \therefore ∴
|
||||||
|
imap <buffer> \qed ∎
|
||||||
|
imap <buffer> \1 𝟙
|
||||||
|
imap <buffer> \N ℕ
|
||||||
|
imap <buffer> \Z ℤ
|
||||||
|
imap <buffer> \C ℂ
|
||||||
|
imap <buffer> \Q ℚ
|
||||||
|
imap <buffer> \R ℝ
|
||||||
|
imap <buffer> \E 𝔼
|
||||||
|
imap <buffer> \F 𝔽
|
||||||
|
imap <buffer> \to →
|
||||||
|
imap <buffer> \mapsto ↦
|
||||||
|
imap <buffer> \infty ∞
|
||||||
|
imap <buffer> \equiv ≡
|
||||||
|
imap <buffer> \cong ≅
|
||||||
|
imap <buffer> \:= ≔
|
||||||
|
imap <buffer> \=: ≕
|
||||||
|
imap <buffer> \ne ≠
|
||||||
|
imap <buffer> \approx ≈
|
||||||
|
imap <buffer> \perp ⊥
|
||||||
|
imap <buffer> \not ̷
|
||||||
|
imap <buffer> \ldots …
|
||||||
|
imap <buffer> \cdots ⋯
|
||||||
|
imap <buffer> \cdot ⋅
|
||||||
|
imap <buffer> \circ ◦
|
||||||
|
imap <buffer> \times ×
|
||||||
|
imap <buffer> \oplus ⊕
|
||||||
|
imap <buffer> \langle ⟨
|
||||||
|
imap <buffer> \rangle ⟩
|
||||||
|
|
||||||
|
" Math
|
||||||
|
imap <buffer> \monus ∸
|
||||||
|
|
||||||
|
" Greek alphabet...
|
||||||
|
imap <buffer> \alpha α
|
||||||
|
imap <buffer> \beta β
|
||||||
|
imap <buffer> \gamma γ
|
||||||
|
imap <buffer> \delta δ
|
||||||
|
imap <buffer> \epsilon ε
|
||||||
|
imap <buffer> \zeta ζ
|
||||||
|
imap <buffer> \nu η
|
||||||
|
imap <buffer> \theta θ
|
||||||
|
imap <buffer> \iota ι
|
||||||
|
imap <buffer> \kappa κ
|
||||||
|
imap <buffer> \lambda λ
|
||||||
|
imap <buffer> \mu μ
|
||||||
|
imap <buffer> \nu ν
|
||||||
|
imap <buffer> \xi ξ
|
||||||
|
imap <buffer> \omicron ο
|
||||||
|
imap <buffer> \pi π
|
||||||
|
imap <buffer> \rho ρ
|
||||||
|
imap <buffer> \stigma ς
|
||||||
|
imap <buffer> \sigma σ
|
||||||
|
imap <buffer> \tau τ
|
||||||
|
imap <buffer> \upsilon υ
|
||||||
|
imap <buffer> \phi ϕ
|
||||||
|
imap <buffer> \varphi φ
|
||||||
|
imap <buffer> \chi χ
|
||||||
|
imap <buffer> \psi ψ
|
||||||
|
imap <buffer> \omega ω
|
||||||
|
|
||||||
|
imap <buffer> \Alpha Α
|
||||||
|
imap <buffer> \Beta Β
|
||||||
|
imap <buffer> \Gamma Γ
|
||||||
|
imap <buffer> \Delta Δ
|
||||||
|
imap <buffer> \Epsilon Ε
|
||||||
|
imap <buffer> \Zeta Ζ
|
||||||
|
imap <buffer> \Nu Η
|
||||||
|
imap <buffer> \Theta Θ
|
||||||
|
imap <buffer> \Iota Ι
|
||||||
|
imap <buffer> \Kappa Κ
|
||||||
|
imap <buffer> \Lambda Λ
|
||||||
|
imap <buffer> \Mu Μ
|
||||||
|
imap <buffer> \Nu Ν
|
||||||
|
imap <buffer> \Xi Ξ
|
||||||
|
imap <buffer> \Omicron Ο
|
||||||
|
imap <buffer> \Pi Π
|
||||||
|
imap <buffer> \Rho Ρ
|
||||||
|
imap <buffer> \Sigma Σ
|
||||||
|
imap <buffer> \Tau Τ
|
||||||
|
imap <buffer> \Upsilon Υ
|
||||||
|
imap <buffer> \Phi Φ
|
||||||
|
imap <buffer> \Chi Χ
|
||||||
|
imap <buffer> \Psi Ψ
|
||||||
|
imap <buffer> \Omega Ω
|
||||||
|
|
||||||
|
" default cornelis mapping
|
||||||
|
nnoremap <buffer> <leader>l :CornelisLoad<CR>
|
||||||
|
nnoremap <buffer> <leader>r :CornelisRefine<CR>
|
||||||
|
nnoremap <buffer> <leader>d :CornelisMakeCase<CR>
|
||||||
|
nnoremap <buffer> <leader>, :CornelisTypeContext<CR>
|
||||||
|
nnoremap <buffer> <leader>. :CornelisTypeContextInfer<CR>
|
||||||
|
nnoremap <buffer> <leader>n :CornelisSolve<CR>
|
||||||
|
nnoremap <buffer> <leader>a :CornelisAuto<CR>
|
||||||
|
nnoremap <buffer> gd :CornelisGoToDefinition<CR>
|
||||||
|
nnoremap <buffer> [/ :CornelisPrevGoal<CR>
|
||||||
|
nnoremap <buffer> ]/ :CornelisNextGoal<CR>
|
||||||
|
nnoremap <buffer> <C-A> :CornelisInc<CR>
|
||||||
|
nnoremap <buffer> <C-X> :CornelisDec<CR>
|
||||||
1
.config/nvim/ftplugin/markdown.agda.vim
Symbolic link
1
.config/nvim/ftplugin/markdown.agda.vim
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
.config/nvim/ftplugin/agda.vim
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
"cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" },
|
"cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
"cornelis": { "branch": "master", "commit": "deda7eb399efe94cc49c645da7b6f94780fe0c19" },
|
||||||
"fidget.nvim": { "branch": "main", "commit": "64463022a1f2ff1318ab22a2ea4125ed9313a483" },
|
"fidget.nvim": { "branch": "main", "commit": "64463022a1f2ff1318ab22a2ea4125ed9313a483" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "130beacf8a51f00aede9c31064c749136679a321" },
|
"gitsigns.nvim": { "branch": "main", "commit": "130beacf8a51f00aede9c31064c749136679a321" },
|
||||||
|
|
@ -21,6 +22,7 @@
|
||||||
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
|
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
|
||||||
"nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" },
|
||||||
"nvim-dap": { "branch": "master", "commit": "818cd8787a77a97703eb1d9090543a374f79a9ac" },
|
"nvim-dap": { "branch": "master", "commit": "818cd8787a77a97703eb1d9090543a374f79a9ac" },
|
||||||
|
"nvim-hs.vim": { "branch": "develop", "commit": "d4a6b7278ae6a1fdc64e300c3ebc1e24719af342" },
|
||||||
"nvim-jdtls": { "branch": "master", "commit": "f73731b543f5971e0da9665eb1d7ceffe1fde71f" },
|
"nvim-jdtls": { "branch": "master", "commit": "f73731b543f5971e0da9665eb1d7ceffe1fde71f" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" },
|
"nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" },
|
||||||
"nvim-metals": { "branch": "main", "commit": "90dadd67bb1069ce1ba2a4dabf4e45da2807ba80" },
|
"nvim-metals": { "branch": "main", "commit": "90dadd67bb1069ce1ba2a4dabf4e45da2807ba80" },
|
||||||
|
|
@ -39,5 +41,6 @@
|
||||||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||||
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||||
|
"vim-textobj-user": { "branch": "master", "commit": "41a675ddbeefd6a93664a4dc52f302fe3086a933" },
|
||||||
"vimtex": { "branch": "master", "commit": "2e1bbabeb2c34bb17d7bc8cfdf8f95b16dd0db0c" }
|
"vimtex": { "branch": "master", "commit": "2e1bbabeb2c34bb17d7bc8cfdf8f95b16dd0db0c" }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,19 @@ local plugins = {
|
||||||
lazy = false,
|
lazy = false,
|
||||||
version = "^2",
|
version = "^2",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"agda/cornelis",
|
||||||
|
name = "cornelis",
|
||||||
|
ft = "agda",
|
||||||
|
init = function()
|
||||||
|
vim.g.cornelis_use_global_binary = 1
|
||||||
|
-- We don't use the default binding for shortcuts (see ftplugin)
|
||||||
|
-- Also, buffer reload is done in the ftplugin too
|
||||||
|
vim.g.cornelis_no_agda_input = 1
|
||||||
|
end,
|
||||||
|
dependencies = { "neovimhaskell/nvim-hs.vim", "kana/vim-textobj-user" },
|
||||||
|
version = "*",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
branch = "0.1.x",
|
branch = "0.1.x",
|
||||||
|
|
|
||||||
17
.config/nvim/plugin/cornelis.vim
Normal file
17
.config/nvim/plugin/cornelis.vim
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
" agda related autocommands
|
||||||
|
|
||||||
|
function! CornelisLoadWrapper()
|
||||||
|
if exists(":CornelisLoad") ==# 2
|
||||||
|
CornelisLoad
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
au BufReadPre *.agda call CornelisLoadWrapper()
|
||||||
|
au BufReadPre *.lagda* call CornelisLoadWrapper()
|
||||||
|
|
||||||
|
au QuitPre *.agda :CornelisCloseInfoWindows
|
||||||
|
au QuitPre *.lagda* :CornelisCloseInfoWindows
|
||||||
|
|
||||||
|
" autoreload at file write
|
||||||
|
au BufWritePost *.agda execute "normal! :CornelisLoad\<CR>"
|
||||||
|
au BufWritePost *.lagda* execute "normal! :CornelisLoad\<CR>"
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
local leap = require("leap")
|
local leap = require("leap")
|
||||||
vim.keymap.set({ "n", "x", "o" }, "s", function() leap.leap() end)
|
vim.keymap.set({ "n", "x", "o" }, "s", function() leap.leap { backward = false } end)
|
||||||
vim.keymap.set("n", "S", function() leap.leap { backward = true } end)
|
vim.keymap.set("n", "S", function() leap.leap { backward = true } end)
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ local servers = {
|
||||||
["nil"] = { formatting = { command = { "nixfmt" } } },
|
["nil"] = { formatting = { command = { "nixfmt" } } },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
zls = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.diagnostic.config {
|
vim.diagnostic.config {
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,9 @@ telescope.setup {
|
||||||
live_grep = {
|
live_grep = {
|
||||||
layout_config = { height = 0.7 },
|
layout_config = { height = 0.7 },
|
||||||
},
|
},
|
||||||
|
buffers = {
|
||||||
|
sort_lastused = true,
|
||||||
|
},
|
||||||
resume = {
|
resume = {
|
||||||
initial_mode = "normal",
|
initial_mode = "normal",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
let
|
||||||
sources ? import ./npins,
|
sources = import ./npins;
|
||||||
}:
|
in
|
||||||
{
|
{
|
||||||
# for repl sessions
|
# for repl sessions
|
||||||
inherit sources;
|
inherit sources;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ in
|
||||||
|
|
||||||
# use lix everywhere and wrap it with nom
|
# use lix everywhere and wrap it with nom
|
||||||
../overlays/lix.nix
|
../overlays/lix.nix
|
||||||
../overlays/nix-monitored.nix
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
# Protect my system from running out of storage or memory
|
# Protect my system from running out of storage or memory
|
||||||
|
let
|
||||||
|
totalStorage = 500;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# 500GB Storage
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
min-free = 50 * 1024 * 1024 * 1024;
|
min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
||||||
max-free = 100 * 1024 * 1024 * 1024;
|
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.nix-daemon.serviceConfig = {
|
systemd.services.nix-daemon.serviceConfig = {
|
||||||
|
|
@ -11,11 +13,4 @@
|
||||||
MemoryMax = "90%";
|
MemoryMax = "90%";
|
||||||
OOMScoreAdjust = 500;
|
OOMScoreAdjust = 500;
|
||||||
};
|
};
|
||||||
|
|
||||||
# 12 Cores, 64 GB RAM
|
|
||||||
# split into 4 jobs with 3C/16G
|
|
||||||
nix.settings = {
|
|
||||||
cores = 3;
|
|
||||||
max-jobs = 4;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ in
|
||||||
|
|
||||||
# use lix everywhere and wrap it with nom
|
# use lix everywhere and wrap it with nom
|
||||||
../overlays/lix.nix
|
../overlays/lix.nix
|
||||||
../overlays/nix-monitored.nix
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,21 +54,16 @@ in
|
||||||
../overlays/wired-notify.nix
|
../overlays/wired-notify.nix
|
||||||
../overlays/wallpapers.nix
|
../overlays/wallpapers.nix
|
||||||
../overlays/nil.nix
|
../overlays/nil.nix
|
||||||
../overlays/dix.nix
|
|
||||||
../overlays/eepy.nix
|
|
||||||
../overlays/calibre-no-mime.nix
|
|
||||||
../overlays/fcitx5-table-extra-taiwanese.nix
|
|
||||||
../overlays/ghostty-dev.nix
|
../overlays/ghostty-dev.nix
|
||||||
|
../overlays/npins.nix
|
||||||
|
../overlays/cornelis.nix
|
||||||
|
|
||||||
../overlays/iosevka.nix
|
../overlays/iosevka
|
||||||
../packages/overlay.nix
|
../packages/overlay.nix
|
||||||
|
|
||||||
./vanadium/overlay.nix
|
./vanadium/overlay.nix
|
||||||
./vanadium/kernel-overlay.nix
|
./vanadium/kernel-overlay.nix
|
||||||
|
|
||||||
# removed, but I need it for PLFA!
|
|
||||||
../overlays/pin-emacs28.nix
|
|
||||||
|
|
||||||
# use lix everywhere and wrap it with nom
|
# use lix everywhere and wrap it with nom
|
||||||
../overlays/lix.nix
|
../overlays/lix.nix
|
||||||
../overlays/nix-monitored.nix
|
../overlays/nix-monitored.nix
|
||||||
|
|
@ -100,6 +95,7 @@ in
|
||||||
./vanadium/nixos/input.nix
|
./vanadium/nixos/input.nix
|
||||||
|
|
||||||
./vanadium/nixos/misc.nix
|
./vanadium/nixos/misc.nix
|
||||||
|
./vanadium/nixos/remote-builders.nix
|
||||||
|
|
||||||
./vanadium/nixos/display.nix
|
./vanadium/nixos/display.nix
|
||||||
./vanadium/nixos/gui.nix
|
./vanadium/nixos/gui.nix
|
||||||
|
|
@ -113,7 +109,6 @@ in
|
||||||
../nixosModules/common/network.nix
|
../nixosModules/common/network.nix
|
||||||
../nixosModules/common/sudo-conf.nix
|
../nixosModules/common/sudo-conf.nix
|
||||||
../nixosModules/common/system-nixconf.nix
|
../nixosModules/common/system-nixconf.nix
|
||||||
../nixosModules/common/xscreensaver.nix
|
|
||||||
|
|
||||||
# QUIRK:
|
# QUIRK:
|
||||||
# Had issue when building the installer as it fails to bootstrap itself
|
# Had issue when building the installer as it fails to bootstrap itself
|
||||||
|
|
@ -121,6 +116,7 @@ in
|
||||||
# ../nixosModules/extra/secure_dns.nix
|
# ../nixosModules/extra/secure_dns.nix
|
||||||
../nixosModules/extra/zram.nix
|
../nixosModules/extra/zram.nix
|
||||||
../nixosModules/extra/leana.nix
|
../nixosModules/extra/leana.nix
|
||||||
|
../nixosModules/extra/lean-nixos.nix
|
||||||
|
|
||||||
#
|
#
|
||||||
# Extern modules
|
# Extern modules
|
||||||
|
|
@ -177,7 +173,6 @@ in
|
||||||
../homeModules/common/fzf.nix
|
../homeModules/common/fzf.nix
|
||||||
../homeModules/common/git.nix
|
../homeModules/common/git.nix
|
||||||
../homeModules/common/gpg.nix
|
../homeModules/common/gpg.nix
|
||||||
../homeModules/common/kitty.nix
|
|
||||||
../homeModules/common/ghostty.nix
|
../homeModules/common/ghostty.nix
|
||||||
../homeModules/common/leana.nix
|
../homeModules/common/leana.nix
|
||||||
../homeModules/common/locale.nix
|
../homeModules/common/locale.nix
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,14 @@
|
||||||
pkgs.taplo # toml
|
pkgs.taplo # toml
|
||||||
pkgs.vscode-langservers-extracted # JSON etc
|
pkgs.vscode-langservers-extracted # JSON etc
|
||||||
pkgs.yaml-language-server # yaml
|
pkgs.yaml-language-server # yaml
|
||||||
|
pkgs.cornelis # agda
|
||||||
|
|
||||||
# bash
|
# bash
|
||||||
pkgs.shfmt
|
pkgs.shfmt
|
||||||
pkgs.nodePackages.bash-language-server
|
pkgs.nodePackages.bash-language-server
|
||||||
|
|
||||||
|
# ghc
|
||||||
|
pkgs.hs-speedscope
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
|
|
@ -71,6 +75,7 @@
|
||||||
"https://haskell-language-server.cachix.org"
|
"https://haskell-language-server.cachix.org"
|
||||||
"https://helix.cachix.org"
|
"https://helix.cachix.org"
|
||||||
"https://cache.iog.io"
|
"https://cache.iog.io"
|
||||||
|
"https://ghostty.cachix.org"
|
||||||
];
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"ghc-nix.cachix.org-1:ziC/I4BPqeA4VbtOFpFpu6D1t6ymFvRWke/lc2+qjcg="
|
"ghc-nix.cachix.org-1:ziC/I4BPqeA4VbtOFpFpu6D1t6ymFvRWke/lc2+qjcg="
|
||||||
|
|
@ -78,6 +83,7 @@
|
||||||
"haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8="
|
"haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8="
|
||||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||||
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
||||||
|
"ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ in
|
||||||
[
|
[
|
||||||
addons.sponsorblock
|
addons.sponsorblock
|
||||||
addons.return-youtube-dislikes
|
addons.return-youtube-dislikes
|
||||||
|
addons.shinigami-eyes
|
||||||
addons.consent-o-matic
|
addons.consent-o-matic
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,46 @@
|
||||||
monospace = [ "Iosevka" ];
|
monospace = [ "Iosevka" ];
|
||||||
emoji = [ "Noto Color Emoji" ];
|
emoji = [ "Noto Color Emoji" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
configFile = {
|
||||||
|
thick-iosevka = {
|
||||||
|
enable = true;
|
||||||
|
# https://www.freedesktop.org/software/fontconfig/fontconfig-user.html
|
||||||
|
# https://gist.github.com/yuttie/adb22a6c07ef8e75d82e48d5484b7ad8
|
||||||
|
# https://github.com/N1k3YB/CS2FontChanger_ru/blob/5f1d8189220f42286d773c536ff83a49b2556da2/app.py#L227
|
||||||
|
#
|
||||||
|
# Use the following script to test
|
||||||
|
# for size in (seq 9 15)
|
||||||
|
# echo
|
||||||
|
# echo
|
||||||
|
# for weight in {regular,medium,bold}
|
||||||
|
# echo "weight=$weight:size=$size"
|
||||||
|
# fc-match "mono:weight=$weight:size=$size"
|
||||||
|
# end
|
||||||
|
# end | less
|
||||||
|
text = /* xml */ ''
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<match target="pattern">
|
||||||
|
<test name="family" compare="contains"><string>Iosevka</string></test>
|
||||||
|
<edit name="weight" mode="assign" binding="strong">
|
||||||
|
<if> <eq><name>weight</name><const>bold</const></eq> <!-- then --> <const>bold</const>
|
||||||
|
<if> <eq><name>weight</name><const>medium</const></eq> <!-- then --> <const>medium</const>
|
||||||
|
<!-- not bold nor medium -->
|
||||||
|
<if> <more><name>size</name><double>15</double></more> <!-- then --> <const>regular</const>
|
||||||
|
<if> <more><name>size</name><double>10</double></more> <!-- then --> <const>medium</const>
|
||||||
|
<!-- else --> <const>bold</const>
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.noto-fonts
|
pkgs.noto-fonts
|
||||||
|
|
@ -26,12 +66,12 @@
|
||||||
pkgs.noto-fonts-color-emoji
|
pkgs.noto-fonts-color-emoji
|
||||||
pkgs.noto-fonts-emoji-blob-bin
|
pkgs.noto-fonts-emoji-blob-bin
|
||||||
pkgs.ubuntu-classic
|
pkgs.ubuntu-classic
|
||||||
pkgs.iosevka
|
pkgs.Iosevka
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".xscreensaver".source = "${./xscreensaver/.xscreensaver}";
|
".xscreensaver".source = "${./xscreensaver/.xscreensaver}";
|
||||||
".wallpaper".source = "${pkgs.wallpapers.packages.knights_of_guinevere.fixing_gwen}";
|
".wallpaper".source = "${pkgs.wallpapers.packages.serial_experiments_lain.lain_windows_error}";
|
||||||
};
|
};
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"xmonad".source = "${./xmonad}";
|
"xmonad".source = "${./xmonad}";
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.ghc # my favorite calculator
|
pkgs.ghc # my favorite calculator
|
||||||
|
|
||||||
|
pkgs.lsr # fast ls with io_uring
|
||||||
pkgs.nmap
|
pkgs.nmap
|
||||||
pkgs.stow
|
pkgs.stow
|
||||||
pkgs.zip
|
pkgs.zip
|
||||||
|
|
@ -41,13 +42,11 @@
|
||||||
pkgs.macchanger
|
pkgs.macchanger
|
||||||
|
|
||||||
# The file picker is not ergonomic enough, sadly
|
# The file picker is not ergonomic enough, sadly
|
||||||
# pkgs.helix
|
pkgs.helix
|
||||||
# pkgs.nushell
|
# pkgs.nushell
|
||||||
|
|
||||||
pkgs.ruler
|
pkgs.ruler
|
||||||
pkgs.mini-calc
|
pkgs.mini-calc
|
||||||
pkgs.eepy
|
|
||||||
pkgs.zbar
|
|
||||||
|
|
||||||
# pdf
|
# pdf
|
||||||
pkgs.poppler-utils # pdfseparate, pdfunite
|
pkgs.poppler-utils # pdfseparate, pdfunite
|
||||||
|
|
@ -69,49 +68,32 @@
|
||||||
pkgs.onefetch
|
pkgs.onefetch
|
||||||
pkgs.just
|
pkgs.just
|
||||||
|
|
||||||
# nix tools
|
pkgs.nixfmt-rfc-style # formatter
|
||||||
# # Alejandra handles inline comments poorly
|
pkgs.nurl # fetcher made easy
|
||||||
# # https://github.com/kamadorueda/alejandra/issues/429
|
pkgs.nix-diff # debug cache miss
|
||||||
# pkgs.alejandra
|
|
||||||
pkgs.nixfmt-rfc-style
|
|
||||||
pkgs.nurl
|
|
||||||
pkgs.dix
|
|
||||||
pkgs.niv
|
|
||||||
pkgs.npins
|
pkgs.npins
|
||||||
pkgs.nix-tree
|
pkgs.nix-tree # analyze closure
|
||||||
pkgs.nix-output-monitor
|
|
||||||
pkgs.nh
|
|
||||||
|
|
||||||
# productivity / media
|
# productivity / media
|
||||||
pkgs.evolution
|
pkgs.evolution
|
||||||
pkgs.libreoffice
|
pkgs.libreoffice
|
||||||
pkgs.calibre
|
pkgs.calibre
|
||||||
pkgs.foliate # TODO: replace calibre with foliate
|
|
||||||
# pkgs.rawtherapee
|
|
||||||
pkgs.digikam
|
pkgs.digikam
|
||||||
pkgs.gimp
|
|
||||||
pkgs.easyeffects
|
|
||||||
pkgs.nautilus
|
pkgs.nautilus
|
||||||
pkgs.sushi # space bar previewer
|
pkgs.sushi # space bar previewer
|
||||||
# pkgs.blender
|
|
||||||
# pkgs.inkscape
|
|
||||||
# pkgs.aseprite
|
|
||||||
# pkgs.xournalpp
|
# pkgs.xournalpp
|
||||||
pkgs.nicotine-plus
|
|
||||||
pkgs.picard # music tagger
|
pkgs.picard # music tagger
|
||||||
pkgs.qbittorrent
|
|
||||||
pkgs.mousai
|
pkgs.mousai
|
||||||
pkgs.localsend # file share with iOS
|
pkgs.nicotine-plus
|
||||||
pkgs.minder # mindmap tool
|
pkgs.qbittorrent
|
||||||
pkgs.mkvtoolnix
|
pkgs.mkvtoolnix
|
||||||
|
pkgs.localsend # file share with iOS
|
||||||
|
|
||||||
# social
|
# social
|
||||||
pkgs.iamb
|
pkgs.iamb
|
||||||
pkgs.discord # keep the app for video calls
|
pkgs.discord # keep the app for video calls
|
||||||
pkgs.signal-desktop
|
pkgs.signal-desktop
|
||||||
pkgs.tuba # mastodon GUI client
|
|
||||||
pkgs.emoji-picker-rs
|
pkgs.emoji-picker-rs
|
||||||
pkgs.telegram-desktop # for archlinux china
|
|
||||||
|
|
||||||
# wm utilities
|
# wm utilities
|
||||||
pkgs.xbrightness
|
pkgs.xbrightness
|
||||||
|
|
@ -133,10 +115,6 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
};
|
};
|
||||||
emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.unsafe-emacs28;
|
|
||||||
};
|
|
||||||
lazygit.enable = true;
|
lazygit.enable = true;
|
||||||
fish = {
|
fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -175,18 +153,7 @@
|
||||||
mouse-scroll-multiplier = 1;
|
mouse-scroll-multiplier = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
kitty = {
|
# chromium.enable = true;
|
||||||
enable = false;
|
|
||||||
font.size = 12; # sweet spot for framework 13
|
|
||||||
settings = {
|
|
||||||
shell = lib.getExe config.programs.fish.package;
|
|
||||||
# https://github.com/kovidgoyal/kitty/issues/1866
|
|
||||||
# https://sw.kovidgoyal.net/kitty/conf/#terminal-bell
|
|
||||||
linux_bell_theme = "elementary";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
chromium.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
lib.makeBinPath [
|
lib.makeBinPath [
|
||||||
ghc
|
ghc
|
||||||
pkgs.libnotify
|
pkgs.libnotify
|
||||||
pkgs.hrt-time
|
pkgs.mullvad-status
|
||||||
]
|
]
|
||||||
}"
|
}"
|
||||||
'';
|
'';
|
||||||
|
|
|
||||||
|
|
@ -65,20 +65,7 @@ config =
|
||||||
, Run $
|
, Run $
|
||||||
Com
|
Com
|
||||||
"tomorrow"
|
"tomorrow"
|
||||||
[ "--target", "2025-08-14"
|
[ "--target", "2026-02-02=monmaster"
|
||||||
, "--target", "2025-08-21"
|
|
||||||
, "--target", "2025-08-22"
|
|
||||||
, "--target", "2025-09-16=snip snip"
|
|
||||||
, "--target", "2025-10-13=no teef"
|
|
||||||
, "--target", "2025-10-31=dragon book"
|
|
||||||
, "--target", "2025-11-19=scalpel"
|
|
||||||
, "--target", "2025-11-29=à deux"
|
|
||||||
-- , "--target", "2025-12-15=campus baguette"
|
|
||||||
-- , "--target", "2025-12-16=dragon book"
|
|
||||||
, "--target", "2025-12-18=baguette"
|
|
||||||
, "--target", "2025-12-30=seule"
|
|
||||||
, "--target", "2026-02-02=monmaster"
|
|
||||||
, "--target", "2026-02-22=dernier appel"
|
|
||||||
]
|
]
|
||||||
""
|
""
|
||||||
(60 &minute)
|
(60 &minute)
|
||||||
|
|
@ -102,7 +89,7 @@ config =
|
||||||
]
|
]
|
||||||
(6 &second)
|
(6 &second)
|
||||||
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
|
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
|
||||||
, Run $ Com "hrt-time" ["days"] "" (60 &minute)
|
, Run $ Com "mullvad-status" [] "" (6 &second)
|
||||||
, Run XMonadLog
|
, Run XMonadLog
|
||||||
, Run $
|
, Run $
|
||||||
Weather
|
Weather
|
||||||
|
|
@ -124,8 +111,9 @@ config =
|
||||||
<> alignSep config
|
<> alignSep config
|
||||||
<> intercalate "|"
|
<> intercalate "|"
|
||||||
[ " %LFRN% "
|
[ " %LFRN% "
|
||||||
|
, " %mullvad-status% "
|
||||||
, " %battery%, %powerprofilesctl%) "
|
, " %battery%, %powerprofilesctl%) "
|
||||||
, " %hereClock% (%tomorrow%, %hrt-time%) "
|
, " %hereClock% (%tomorrow%) "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,10 @@ instance LayoutClass SetMasterNTall a where
|
||||||
let ws' = W.Workspace t (unSetMasterNTall l) s
|
let ws' = W.Workspace t (unSetMasterNTall l) s
|
||||||
in (fmap . fmap . fmap) SetMasterNTall . runLayout ws'
|
in (fmap . fmap . fmap) SetMasterNTall . runLayout ws'
|
||||||
|
|
||||||
handleMessage (SetMasterNTall l@(ResizableTall _n0 d f s)) mess
|
handleMessage (SetMasterNTall l@(ResizableTall n0 d f s)) mess
|
||||||
| Just (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s
|
| Just (SetMasterN n) <- fromMessage mess = pure $
|
||||||
|
if n0 /= n then Just $ SetMasterNTall $ ResizableTall n d f s
|
||||||
|
else Nothing
|
||||||
| otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess
|
| otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess
|
||||||
|
|
||||||
description (SetMasterNTall l) = description l
|
description (SetMasterNTall l) = description l
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
import XMonad.Actions.CopyWindow
|
import XMonad.Actions.CopyWindow
|
||||||
import XMonad.Actions.Navigation2D
|
|
||||||
import XMonad.Actions.Submap
|
import XMonad.Actions.Submap
|
||||||
import XMonad.Actions.SwapWorkspaces
|
import XMonad.Actions.SwapWorkspaces
|
||||||
import XMonad.Actions.Warp
|
|
||||||
import XMonad.Hooks.DynamicLog
|
import XMonad.Hooks.DynamicLog
|
||||||
import XMonad.Hooks.EwmhDesktops
|
import XMonad.Hooks.EwmhDesktops
|
||||||
import XMonad.Hooks.InsertPosition
|
import XMonad.Hooks.InsertPosition
|
||||||
|
|
@ -33,9 +31,9 @@ import XMonad.Util.NamedScratchpad
|
||||||
import XMonad.Util.SpawnOnce
|
import XMonad.Util.SpawnOnce
|
||||||
|
|
||||||
import Data.Char.Greek
|
import Data.Char.Greek
|
||||||
|
import qualified Data.Map.Strict as M
|
||||||
import Data.Ratio
|
import Data.Ratio
|
||||||
import Data.Semigroup
|
import Data.Semigroup
|
||||||
import qualified Data.Map.Strict as M
|
|
||||||
import System.Posix
|
import System.Posix
|
||||||
import Graphics.X11.ExtraTypes.XF86
|
import Graphics.X11.ExtraTypes.XF86
|
||||||
|
|
||||||
|
|
@ -48,7 +46,6 @@ main =
|
||||||
$ withSB xmobarConfig . docks
|
$ withSB xmobarConfig . docks
|
||||||
$ setEwmhActivateHook myActivateHook
|
$ setEwmhActivateHook myActivateHook
|
||||||
$ ewmhFullscreen . ewmh
|
$ ewmhFullscreen . ewmh
|
||||||
$ withNavigation2DConfig def
|
|
||||||
$ def
|
$ def
|
||||||
{ modMask = superMask
|
{ modMask = superMask
|
||||||
, borderWidth = 5
|
, borderWidth = 5
|
||||||
|
|
@ -80,7 +77,7 @@ myLayout =
|
||||||
$ smartSpacingWithEdge 5
|
$ smartSpacingWithEdge 5
|
||||||
$ reflectMsg . reflectHoriz
|
$ reflectMsg . reflectHoriz
|
||||||
$ SetMasterNTall
|
$ SetMasterNTall
|
||||||
$ ResizableTall 1 (1/10) (3/7) []
|
$ ResizableTall 1 (1/10) (3/7) [1.2, 1, 1, 1.2]
|
||||||
|
|
||||||
isSioyek :: Query Bool
|
isSioyek :: Query Bool
|
||||||
isSioyek = className =? "sioyek"
|
isSioyek = className =? "sioyek"
|
||||||
|
|
@ -209,11 +206,21 @@ setMasterNEventHandleHook :: Event -> X All
|
||||||
setMasterNEventHandleHook ev =
|
setMasterNEventHandleHook ev =
|
||||||
let adjustMasterCount :: X ()
|
let adjustMasterCount :: X ()
|
||||||
adjustMasterCount = do
|
adjustMasterCount = do
|
||||||
count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
ws <- gets windowset
|
||||||
if count <= 3 then sendMessage (SetMasterN 1)
|
-- Remove the floating windows in the count
|
||||||
else if count <= 5 then sendMessage (SetMasterN 2)
|
let s :: Maybe (W.Stack Window)
|
||||||
else if count <= 7 then sendMessage (SetMasterN 3)
|
s = W.stack $ W.workspace $ W.current ws
|
||||||
else pure ()
|
|
||||||
|
count :: Int
|
||||||
|
count =
|
||||||
|
length
|
||||||
|
$ filter (flip M.notMember (W.floating ws))
|
||||||
|
$ W.integrate' s
|
||||||
|
|
||||||
|
if count > 7 then sendMessage (SetMasterN 4)
|
||||||
|
else if count > 5 then sendMessage (SetMasterN 3)
|
||||||
|
else if count > 3 then sendMessage (SetMasterN 2)
|
||||||
|
else sendMessage (SetMasterN 1)
|
||||||
in do
|
in do
|
||||||
case ev of
|
case ev of
|
||||||
MapRequestEvent{} -> adjustMasterCount
|
MapRequestEvent{} -> adjustMasterCount
|
||||||
|
|
@ -273,9 +280,6 @@ removedKeybinds =
|
||||||
++ [ (superMask , n) | n <- [xK_1 .. xK_9] ]
|
++ [ (superMask , n) | n <- [xK_1 .. xK_9] ]
|
||||||
++ [ (superMask .|. shiftMask, n) | n <- [xK_1 .. xK_9] ]
|
++ [ (superMask .|. shiftMask, n) | n <- [xK_1 .. xK_9] ]
|
||||||
|
|
||||||
warpToWindowCenter :: X ()
|
|
||||||
warpToWindowCenter = warpToWindow 0.5 0.5
|
|
||||||
|
|
||||||
keybinds :: [((KeyMask, KeySym), X ())]
|
keybinds :: [((KeyMask, KeySym), X ())]
|
||||||
keybinds =
|
keybinds =
|
||||||
[
|
[
|
||||||
|
|
@ -315,39 +319,20 @@ keybinds =
|
||||||
, submap $ M.fromList
|
, submap $ M.fromList
|
||||||
[ ((0, xK_t), withFocused $ windows . W.sink)
|
[ ((0, xK_t), withFocused $ windows . W.sink)
|
||||||
, ((0, xK_l), withFocused $ windows . flip W.float centeredFloat)
|
, ((0, xK_l), withFocused $ windows . flip W.float centeredFloat)
|
||||||
|
, ((0, xK_c), windows copyToAll)
|
||||||
|
, ((0, xK_k), killAllOtherCopies)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
-- Switch between layers
|
|
||||||
, ((altMask, xK_s), switchLayer )
|
|
||||||
|
|
||||||
-- We override default focus shifting bindings to warp the cursor to the center of the new window.
|
|
||||||
-- This is especially useful because mag doesn't work well with focusFollowsMouse.
|
|
||||||
-- The order is important: focus shift, and then warp the cursor
|
|
||||||
--
|
|
||||||
-- Warp when focus shifts by binding, not by mouse (otherwise it's annoying)
|
|
||||||
|
|
||||||
-- Directional navigation of windows
|
|
||||||
, ((altMask, xK_l), windowGo R False >> warpToWindowCenter)
|
|
||||||
, ((altMask, xK_h), windowGo L False >> warpToWindowCenter)
|
|
||||||
, ((altMask, xK_k), windowGo U False >> warpToWindowCenter)
|
|
||||||
, ((altMask, xK_j), windowGo D False >> warpToWindowCenter)
|
|
||||||
|
|
||||||
-- Swap adjacent windows
|
|
||||||
, ((altMask .|. superMask, xK_l), windowSwap R False >> warpToWindowCenter)
|
|
||||||
, ((altMask .|. superMask, xK_h), windowSwap L False >> warpToWindowCenter)
|
|
||||||
, ((altMask .|. superMask, xK_k), windowSwap U False >> warpToWindowCenter)
|
|
||||||
, ((altMask .|. superMask, xK_j), windowSwap D False >> warpToWindowCenter)
|
|
||||||
]
|
]
|
||||||
|
|
||||||
-- Screenshots
|
-- Screenshots
|
||||||
++ (let fullscreen = "maim -u | xclip -in -selection clipboard -t image/png"
|
++ (let fullscreen = "maim -u | xclip -in -selection clipboard -t image/png"
|
||||||
withSelection = "maim -u -s -b 5 -o | xclip -in -selection clipboard -t image/png"
|
withSelection = "maim -u -s -b 5 -o | xclip -in -selection clipboard -t image/png"
|
||||||
toFloat = "maim -u -s -b 5 -o | feh --auto-zoom -"
|
toFloat = "maim -u -s -b 5 -o | feh --auto-zoom -"
|
||||||
in [ ((0, xK_Print), spawn fullscreen )
|
in [ ((0, xK_Print), unGrab >> spawn fullscreen )
|
||||||
, ((superMask .|. shiftMask, xK_3 ), spawn fullscreen )
|
, ((superMask .|. shiftMask, xK_3 ), unGrab >> spawn fullscreen )
|
||||||
, ((superMask .|. shiftMask, xK_4 ), spawn withSelection)
|
, ((superMask .|. shiftMask, xK_4 ), unGrab >> spawn withSelection)
|
||||||
, ((superMask .|. shiftMask, xK_5 ), spawn toFloat )
|
, ((superMask .|. shiftMask, xK_5 ), unGrab >> spawn toFloat )
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -366,7 +351,7 @@ keybinds =
|
||||||
|
|
||||||
-- Launcher
|
-- Launcher
|
||||||
++ (let launchFirefox = "zen"
|
++ (let launchFirefox = "zen"
|
||||||
launchDmenu = "dmenu_run -i -fn \"Iosevka-14\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10"
|
launchDmenu = "dmenu_run -i -fn \"Iosevka-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10"
|
||||||
lock = "xscreensaver-command -lock"
|
lock = "xscreensaver-command -lock"
|
||||||
in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" )
|
in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" )
|
||||||
, ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" )
|
, ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" )
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ in
|
||||||
[
|
[
|
||||||
addons.sponsorblock
|
addons.sponsorblock
|
||||||
addons.return-youtube-dislikes
|
addons.return-youtube-dislikes
|
||||||
|
addons.shinigami-eyes
|
||||||
addons.consent-o-matic
|
addons.consent-o-matic
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
# To enable roaming https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
|
# To enable roaming https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
|
||||||
wireless = {
|
wireless = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userControlled.enable = true;
|
userControlled = true;
|
||||||
secretsFile = config.age.secrets.wpa_password.path;
|
secretsFile = config.age.secrets.wpa_password.path;
|
||||||
scanOnLowSignal = false;
|
scanOnLowSignal = false;
|
||||||
networks =
|
networks =
|
||||||
|
|
@ -63,6 +63,13 @@
|
||||||
# This is the fascist one, just block it because I can't tell
|
# This is the fascist one, just block it because I can't tell
|
||||||
0.0.0.0 nixos.wiki
|
0.0.0.0 nixos.wiki
|
||||||
|
|
||||||
|
# Gotta purify my smoos brain for a while
|
||||||
|
0.0.0.0 instagram.com
|
||||||
|
0.0.0.0 www.instagram.com
|
||||||
|
|
||||||
|
0.0.0.0 youtube.com
|
||||||
|
0.0.0.0 www.youtube.com
|
||||||
|
|
||||||
# The "people who you viewed can see you" thing is weird af
|
# The "people who you viewed can see you" thing is weird af
|
||||||
0.0.0.0 linkedin.com
|
0.0.0.0 linkedin.com
|
||||||
0.0.0.0 www.linkedin.com
|
0.0.0.0 www.linkedin.com
|
||||||
|
|
@ -76,4 +83,19 @@
|
||||||
services.mullvad-vpn.enable = true;
|
services.mullvad-vpn.enable = true;
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
# Printing and auto-discovery of Wi-Fi printers
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.printing = {
|
||||||
|
enable = true;
|
||||||
|
drivers = with pkgs; [
|
||||||
|
cups-filters
|
||||||
|
cups-browsed
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
|
@ -15,6 +15,12 @@
|
||||||
"pcie_aspm=off"
|
"pcie_aspm=off"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
boot.plymouth = {
|
||||||
|
enable = true;
|
||||||
|
themePackages = [ pkgs.plymouth-blahaj-theme ];
|
||||||
|
theme = "blahaj";
|
||||||
|
};
|
||||||
|
|
||||||
# Cross building
|
# Cross building
|
||||||
# https://discourse.nixos.org/t/how-do-i-get-my-aarch64-linux-machine-to-build-x86-64-linux-extra-platforms-doesnt-seem-to-work/38106/2?u=leana8959
|
# https://discourse.nixos.org/t/how-do-i-get-my-aarch64-linux-machine-to-build-x86-64-linux-extra-platforms-doesnt-seem-to-work/38106/2?u=leana8959
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
|
|
||||||
31
nix/configurations/vanadium/nixos/remote-builders.nix
Normal file
31
nix/configurations/vanadium/nixos/remote-builders.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
let
|
||||||
|
supportedFeatures = [
|
||||||
|
"nixos-test"
|
||||||
|
"benchmark"
|
||||||
|
"big-parallel"
|
||||||
|
"kvm"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
nix.buildMachines = [
|
||||||
|
# NOTE: these hosts need to be put in the .ssh/config of root.
|
||||||
|
# https://wiki.nixos.org/wiki/Distributed_build#Recommended_setup:_multi-user_Nix_local_%E2%80%93%3E_multi-user_Nix_remote
|
||||||
|
{
|
||||||
|
hostName = "pancake";
|
||||||
|
sshUser = "remotebuild";
|
||||||
|
speedFactor = 2;
|
||||||
|
system = pkgs.stdenv.hostPlatform.system;
|
||||||
|
maxJobs = 1;
|
||||||
|
inherit supportedFeatures;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
hostName = "hetzner_benchmark";
|
||||||
|
sshUser = "remotebuild";
|
||||||
|
speedFactor = 12;
|
||||||
|
system = pkgs.stdenv.hostPlatform.system;
|
||||||
|
maxJobs = 3;
|
||||||
|
inherit supportedFeatures;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
# Protect my system from running out of storage or memory
|
# Protect my system from running out of storage or memory
|
||||||
|
let
|
||||||
|
totalStorage = 930;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
min-free = 50 * 1024 * 1024 * 1024;
|
min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
||||||
max-free = 100 * 1024 * 1024 * 1024;
|
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.nix-daemon.serviceConfig = {
|
systemd.services.nix-daemon.serviceConfig = {
|
||||||
|
|
@ -10,11 +13,4 @@
|
||||||
MemoryMax = "90%";
|
MemoryMax = "90%";
|
||||||
OOMScoreAdjust = 500;
|
OOMScoreAdjust = 500;
|
||||||
};
|
};
|
||||||
|
|
||||||
# 16 Cores, 32 GB RAM
|
|
||||||
# split into 4 jobs with 4C/8G
|
|
||||||
nix.settings = {
|
|
||||||
cores = 2;
|
|
||||||
max-jobs = 4;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,14 @@ infuse {
|
||||||
./patches/helix/W-as-write.patch
|
./patches/helix/W-as-write.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
|
btop.__output.patches.__append = [
|
||||||
|
(final.fetchpatch {
|
||||||
|
name = "btrfs-io-graph";
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/aristocratos/btop/pull/1285.patch";
|
||||||
|
hash = "sha256-za6B1EiOV1JqKMJwrNQo43RKChw+C4mmC8pcoxLLau4=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# pinned branch of https://github.com/astrand/xclip/tree/xerror
|
# pinned branch of https://github.com/astrand/xclip/tree/xerror
|
||||||
# use this until #43 gets resolved properly
|
# use this until #43 gets resolved properly
|
||||||
|
|
|
||||||
|
|
@ -53,10 +53,13 @@ in
|
||||||
"browser.tabs.loadInBackground" = true;
|
"browser.tabs.loadInBackground" = true;
|
||||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||||
"layout.css.devPixelsPerPx" = 1.1;
|
"layout.css.devPixelsPerPx" = 1.1;
|
||||||
|
"browser.startup.page" = 1;
|
||||||
# open links in new window
|
"browser.link.open_newwindow" = 2; # open in new tab
|
||||||
# this works a lot better with xmonad where I have a bunch of windows
|
"browser.translations.automaticallyPopup" = false;
|
||||||
"browser.link.open_newwindow" = 2;
|
"browser.tabs.closeWindowWithLastTab" = true;
|
||||||
|
"general.smoothScroll" = false; # makes me dizzy
|
||||||
|
"accessibility.typeaheadfind" = true; # type to find
|
||||||
|
"media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = true;
|
||||||
|
|
||||||
# Sponsored crap
|
# Sponsored crap
|
||||||
# Yes
|
# Yes
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
shellAbbrs = lib.mkMerge [
|
shellAbbrs = lib.mkMerge [
|
||||||
(lib.mkIf pkgs.stdenv.isLinux {
|
(lib.mkIf pkgs.stdenv.isLinux {
|
||||||
"," = "nix-shell -p";
|
"," = "nix-shell --command $SHELL -p";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -21,10 +21,6 @@
|
||||||
# idiot protection
|
# idiot protection
|
||||||
chmod = "chmod --preserve-root";
|
chmod = "chmod --preserve-root";
|
||||||
chown = "chown --preserve-root";
|
chown = "chown --preserve-root";
|
||||||
|
|
||||||
# I can't make alias with a space, i.e. `nom shell`
|
|
||||||
nix-shell = "nix-shell --command fish";
|
|
||||||
nom-shell = "nom-shell --command fish";
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,17 @@
|
||||||
#
|
#
|
||||||
# Script dependencies
|
# Script dependencies
|
||||||
#
|
#
|
||||||
home.packages = [ pkgs.vivid ];
|
home.packages = [
|
||||||
|
pkgs.nix-output-monitor # pretty ui for shells
|
||||||
|
];
|
||||||
programs = {
|
programs = {
|
||||||
fd.enable = true;
|
fd.enable = true;
|
||||||
fzf.enable = true;
|
fzf.enable = true;
|
||||||
|
# fd uses LS_COLORS
|
||||||
|
vivid = {
|
||||||
|
enable = true;
|
||||||
|
activeTheme = "solarized-light"; # similar to milou
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
7
nix/homeModules/common/fish/functions/ls.fish
Normal file
7
nix/homeModules/common/fish/functions/ls.fish
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
function ls
|
||||||
|
if type -q lsr
|
||||||
|
command lsr $argv
|
||||||
|
else
|
||||||
|
command ls $argv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
function nix-build
|
function nix-build
|
||||||
if type -q nom-build
|
if type -q nom-build
|
||||||
nom-build $argv
|
command nom-build $argv
|
||||||
else
|
else
|
||||||
nix-build $argv
|
command nix-build $argv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
function nix-shell
|
function nix-shell
|
||||||
if type -q nom-shell
|
if type -q nom-shell
|
||||||
nom-shell $argv
|
command nom-shell $argv
|
||||||
else
|
else
|
||||||
nix-shell $argv
|
command nix-shell $argv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
11
nix/homeModules/common/fish/functions/nix.fish
Normal file
11
nix/homeModules/common/fish/functions/nix.fish
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
function nix
|
||||||
|
if [ $(count $argv) -lt 1 ]
|
||||||
|
command nix $argv
|
||||||
|
end
|
||||||
|
and if [ $argv[1] = "build" -o $argv[1] = "shell" ] && type -q nom
|
||||||
|
nom $argv
|
||||||
|
else
|
||||||
|
command nix $argv
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
@ -83,7 +83,4 @@ set -x fzf_fd_opts --hidden --exclude=.git
|
||||||
# fzf-fish using patdiff would show incomplete diff, it is a bug
|
# fzf-fish using patdiff would show incomplete diff, it is a bug
|
||||||
# don't do it
|
# don't do it
|
||||||
|
|
||||||
# fd uses LS_COLORS
|
|
||||||
set -x LS_COLORS (vivid -m 24-bit generate solarized-light) # similar to milou
|
|
||||||
|
|
||||||
set -g sponge_purge_only_on_exit true
|
set -g sponge_purge_only_on_exit true
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ in
|
||||||
{
|
{
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.nerd-fonts.iosevka
|
pkgs.nerd-fonts.IosevkaTerm
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.ghostty.settings = {
|
programs.ghostty.settings = {
|
||||||
|
|
@ -21,13 +21,15 @@ in
|
||||||
resize-overlay = "never";
|
resize-overlay = "never";
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
font-family = "Iosevka NFM";
|
font-family = "IosevkaTerm NFM";
|
||||||
adjust-cursor-thickness = 2;
|
adjust-cursor-thickness = 2;
|
||||||
keybind = [
|
keybind = [
|
||||||
"ctrl+shift+==increase_font_size:1"
|
"ctrl+shift+==increase_font_size:1"
|
||||||
"ctrl+-=decrease_font_size:1"
|
"ctrl+-=decrease_font_size:1"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
mouse-hide-while-typing = true;
|
||||||
|
|
||||||
# Theme
|
# Theme
|
||||||
background = "#fdf6e3";
|
background = "#fdf6e3";
|
||||||
foreground = "#073642";
|
foreground = "#073642";
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
# git plugins
|
# git plugins
|
||||||
|
programs.git = {
|
||||||
|
lfs.enable = true;
|
||||||
|
};
|
||||||
programs.patdiff = {
|
programs.patdiff = {
|
||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
enableGitIntegration = lib.mkDefault true;
|
enableGitIntegration = lib.mkDefault true;
|
||||||
|
|
@ -17,7 +20,11 @@
|
||||||
in
|
in
|
||||||
lib.mkIf patdiffCfg.enable {
|
lib.mkIf patdiffCfg.enable {
|
||||||
settings = {
|
settings = {
|
||||||
git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
git.paging = [
|
||||||
|
{
|
||||||
|
externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,17 @@
|
||||||
gpg-agent.pinentry.package = pkgs.pinentry-tty;
|
gpg-agent.pinentry.package = pkgs.pinentry-tty;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Fun video btw
|
||||||
|
# https://media.ccc.de/v/39c3-to-sign-or-not-to-sign-practical-vulnerabilities-i
|
||||||
programs.gpg.publicKeys =
|
programs.gpg.publicKeys =
|
||||||
let
|
let
|
||||||
fromUrl =
|
fromUrl =
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
hash,
|
hash,
|
||||||
trust ? 5,
|
# https://security.stackexchange.com/a/69089
|
||||||
|
# One lower than ultimate (introducer in the web of trust) is good enough.
|
||||||
|
trust ? 4,
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
source = pkgs.fetchurl { inherit url hash; };
|
source = pkgs.fetchurl { inherit url hash; };
|
||||||
|
|
@ -27,6 +31,7 @@
|
||||||
{
|
{
|
||||||
user = "leana8959";
|
user = "leana8959";
|
||||||
hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo=";
|
hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo=";
|
||||||
|
trust = 5;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
user = "vanilla-extracts";
|
user = "vanilla-extracts";
|
||||||
|
|
@ -36,10 +41,6 @@
|
||||||
user = "jappeace";
|
user = "jappeace";
|
||||||
hash = "sha256-wJ4hiE7M7dcEMaE8waNZEi+tybpVIsFzoeDJhIIaLhk=";
|
hash = "sha256-wJ4hiE7M7dcEMaE8waNZEi+tybpVIsFzoeDJhIIaLhk=";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
user = "gautaz";
|
|
||||||
hash = "sha256-j0I9l8uKfzKNrc2qveFi5mkRppxL36+BUEqvFPs6vqA=";
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
user = "confusedkernel";
|
user = "confusedkernel";
|
||||||
hash = "sha256-9DdtDAcv+2Z0jJMSLAXbp5ne8uHYj5V/lNGi0kKSdv4=";
|
hash = "sha256-9DdtDAcv+2Z0jJMSLAXbp5ne8uHYj5V/lNGi0kKSdv4=";
|
||||||
|
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.programs.kitty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
pkgs.nerd-fonts.iosevka
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.kitty = {
|
|
||||||
font.name = "family=\"Iosevka NFM\"";
|
|
||||||
|
|
||||||
settings = rec {
|
|
||||||
# Make text thicker
|
|
||||||
text_composition_strategy = lib.mkIf pkgs.stdenv.isLinux "2.8 0";
|
|
||||||
|
|
||||||
# Don't prompt
|
|
||||||
confirm_os_window_close = 0;
|
|
||||||
|
|
||||||
# Never underline links
|
|
||||||
underline_hyperlinks = "never";
|
|
||||||
|
|
||||||
# No default bindings
|
|
||||||
clear_all_shortcuts = "no";
|
|
||||||
|
|
||||||
# cursor
|
|
||||||
cursor_blink_interval = 1;
|
|
||||||
cursor_stop_blinking_after = 15; # always blink
|
|
||||||
|
|
||||||
# theme
|
|
||||||
background = "#fdf6e3";
|
|
||||||
foreground = "#073642";
|
|
||||||
cursor = "#000000";
|
|
||||||
cursor_text_color = "#ffffff";
|
|
||||||
selection_foreground = foreground;
|
|
||||||
selection_background = "#dbcba3";
|
|
||||||
color0 = "#073642";
|
|
||||||
color8 = "#4d4d4d";
|
|
||||||
color1 = "#af005f";
|
|
||||||
color9 = "#d33682";
|
|
||||||
color2 = "#859900";
|
|
||||||
color10 = "#29a350";
|
|
||||||
color3 = "#ba9b23";
|
|
||||||
color11 = "#d6b429";
|
|
||||||
color4 = "#268bd2";
|
|
||||||
color12 = "#469edd";
|
|
||||||
color5 = "#5f5faf";
|
|
||||||
color13 = "#6060d1";
|
|
||||||
color6 = "#2aa198";
|
|
||||||
color14 = "#4bccc1"; # a platupus? perry the platupus?
|
|
||||||
color7 = "#a0a1a7";
|
|
||||||
color15 = "#eeeadd";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -9,6 +9,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = lib.mkIf cfg.enable [
|
home.packages = lib.mkIf cfg.enable [
|
||||||
|
pkgs.zbar
|
||||||
pkgs.pwgen
|
pkgs.pwgen
|
||||||
pkgs.diceware
|
pkgs.diceware
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,7 @@ style = "blue"
|
||||||
|
|
||||||
#################### Right hand side ####################
|
#################### Right hand side ####################
|
||||||
[cmd_duration]
|
[cmd_duration]
|
||||||
min_time = 60_000
|
min_time = 2_000
|
||||||
show_milliseconds = true
|
show_milliseconds = true
|
||||||
style = 'blue'
|
style = 'blue'
|
||||||
format = '([$duration]($style) )'
|
format = '([$duration]($style) )'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.iosevka ];
|
home.packages = [ pkgs.Iosevka ];
|
||||||
services.wired = {
|
services.wired = {
|
||||||
config = "${./wired.ron}";
|
config = "${./wired.ron}";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,53 +1,17 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (pkgs) nur;
|
|
||||||
|
|
||||||
cfg = config.programs.zen-browser;
|
cfg = config.programs.zen-browser;
|
||||||
|
|
||||||
|
firefoxCfg = config.programs.firefox;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.zen-browser = {
|
programs.zen-browser = {
|
||||||
# https://mozilla.github.io/policy-templates
|
policies = firefoxCfg.policies;
|
||||||
# The following have more complex logic, keep them as policies and not profiles
|
|
||||||
policies = {
|
|
||||||
RequestedLocales = [
|
|
||||||
"fr-FR" # for fuck sake stop showing me translated version of French gov sites
|
|
||||||
"zh-TW"
|
|
||||||
"en-US"
|
|
||||||
];
|
|
||||||
|
|
||||||
SearchEngines = {
|
|
||||||
Remove = [
|
|
||||||
"Google"
|
|
||||||
"Bing"
|
|
||||||
"DuckDuckGo"
|
|
||||||
"Qwant"
|
|
||||||
"eBay"
|
|
||||||
"Perplexity"
|
|
||||||
];
|
|
||||||
Default = "DuckDuckGo Lite";
|
|
||||||
Add = [
|
|
||||||
{
|
|
||||||
Name = "DuckDuckGo Lite";
|
|
||||||
URLTemplate = "https://lite.duckduckgo.com/lite/search?q={searchTerms}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
NoDefaultBookmarks = true;
|
|
||||||
DisplayMenuBar = "never";
|
|
||||||
DisplayBookmarksToolbar = "never";
|
|
||||||
DNSOverHTTPS = {
|
|
||||||
Enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://searchfox.org/mozilla-central/source/browser/components/enterprisepolicies/Policies.sys.mjs
|
|
||||||
# Some policies can be rewritten to profiles configuration
|
|
||||||
#
|
|
||||||
# "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t)
|
# "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t)
|
||||||
# https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences
|
# https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences
|
||||||
#
|
#
|
||||||
|
|
@ -57,92 +21,21 @@ in
|
||||||
# - click the buttons
|
# - click the buttons
|
||||||
# - diff it
|
# - diff it
|
||||||
# diff .zen/default/prefs.js{.bk,}
|
# diff .zen/default/prefs.js{.bk,}
|
||||||
profiles.default = {
|
profiles.default = lib.mkMerge [
|
||||||
settings = {
|
firefoxCfg.profiles.default
|
||||||
|
{
|
||||||
# Zen specific
|
# Zen specific
|
||||||
|
settings = {
|
||||||
"zen.theme.content-element-separation" = 0; # Remove "borders" around window
|
"zen.theme.content-element-separation" = 0; # Remove "borders" around window
|
||||||
|
"zen.tabs.show-newtab-vertical" = false;
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"zen.view.compact.toolbar-flash-popup" = true;
|
||||||
"browser.tabs.loadInBackground" = true;
|
"zen.view.show-newtab-button-top" = false;
|
||||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
"zen.view.use-single-toolbar" = false;
|
||||||
"layout.css.devPixelsPerPx" = 1.1;
|
"zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs
|
||||||
"browser.startup.page" = 1;
|
|
||||||
"browser.translations.automaticallyPopup" = false;
|
|
||||||
"browser.tabs.closeWindowWithLastTab" = true;
|
|
||||||
"general.smoothScroll" = false;
|
|
||||||
|
|
||||||
# open links in new window
|
|
||||||
# this works a lot better with xmonad where I have a bunch of windows
|
|
||||||
"browser.link.open_newwindow" = 2;
|
|
||||||
|
|
||||||
# Sponsored crap
|
|
||||||
# Yes
|
|
||||||
"browser.newtabpage.activity-stream.showSearch" = true;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.topsites" = true;
|
|
||||||
# No
|
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.section.highlights" = false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
|
|
||||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
|
||||||
|
|
||||||
# URL
|
|
||||||
# Yes
|
|
||||||
"browser.urlbar.suggest.quicksuggest.nonsponsored" = true;
|
|
||||||
# No
|
|
||||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
|
||||||
|
|
||||||
# Pasword manager
|
|
||||||
"signon.rememberSignons" = false;
|
|
||||||
"services.passwordSavingEnabled" = false;
|
|
||||||
"pref.privacy.disable_button.view_passwords" = false;
|
|
||||||
|
|
||||||
# Hardware acceleration
|
|
||||||
"layers.acceleration.disabled" = false;
|
|
||||||
|
|
||||||
# Screenshot
|
|
||||||
"screenshots.browser.component.enabled" = true;
|
|
||||||
|
|
||||||
# Recommendations
|
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
|
|
||||||
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
|
|
||||||
"extensions.htmlaboutaddons.recommendations.enabled" = false; # Addons
|
|
||||||
|
|
||||||
# Onboarding
|
|
||||||
"browser.aboutwelcome.enabled" = false;
|
|
||||||
|
|
||||||
# AI crap
|
|
||||||
"browser.ml.chat.enabled" = false;
|
|
||||||
"browser.ml.chat.page" = false;
|
|
||||||
"browser.ml.chat.shortcuts" = false;
|
|
||||||
"browser.ml.chat.sidebar" = false;
|
|
||||||
|
|
||||||
# Prevent WebRTC leak
|
|
||||||
# https://mullvad.net/en/help/webrtc
|
|
||||||
"media.peerconnection.enabled" = false;
|
|
||||||
};
|
};
|
||||||
|
}
|
||||||
extensions.packages =
|
|
||||||
let
|
|
||||||
addons = nur.repos.rycee.firefox-addons;
|
|
||||||
in
|
|
||||||
[
|
|
||||||
addons.ublock-origin
|
|
||||||
addons.privacy-badger
|
|
||||||
addons.user-agent-string-switcher
|
|
||||||
|
|
||||||
/*
|
|
||||||
Here's to you who want to remove news feed eradicator because you find it annoying:
|
|
||||||
It is here to annoy you so it is less likely for you to be on the agency inversion path.
|
|
||||||
DO NOT REMOVE IT. I repeat, DO NOT REMOVE IT.
|
|
||||||
|
|
||||||
If you think it's annoying, go do some jump rope, sing, live.
|
|
||||||
*/
|
|
||||||
addons.news-feed-eradicator # did you read the comment above?
|
|
||||||
addons.multi-account-containers
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps =
|
xdg.mimeApps =
|
||||||
let
|
let
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
# This loads the list of networks as a NixOS wpa_supplicant compatible attrset
|
# This loads the list of networks as a NixOS wpa_supplicant compatible attrset
|
||||||
#
|
#
|
||||||
# View the example config
|
# View the example config
|
||||||
# less $(nix-build --no-out-link -E '(import <nixpkgs> {}).wpa_supplicant')/share/doc/wpa_supplicant/wpa_supplicant.conf.example
|
# less $(nix-build --no-out-link '<nixpkgs>' -A 'wpa_supplicant')/share/doc/wpa_supplicant/wpa_supplicant.conf.example
|
||||||
let
|
let
|
||||||
sources = import ../../npins;
|
sources = import ../../npins;
|
||||||
lib = import (sources.nixpkgs + "/lib");
|
lib = import (sources.nixpkgs + "/lib");
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@
|
||||||
package = lib.mkDefault pkgs.nix;
|
package = lib.mkDefault pkgs.nix;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
# it is impossible to anser in nix-direnv, so we force it to off.
|
||||||
|
# https://github.com/nix-community/nix-direnv/issues/678
|
||||||
|
accept-flake-config = lib.mkForce false;
|
||||||
|
|
||||||
# Try to have at least 10GB of space by default
|
# Try to have at least 10GB of space by default
|
||||||
min-free = lib.mkDefault (5 * 1024 * 1024 * 1024);
|
min-free = lib.mkDefault (5 * 1024 * 1024 * 1024);
|
||||||
max-free = lib.mkDefault (10 * 1024 * 1024 * 1024);
|
max-free = lib.mkDefault (10 * 1024 * 1024 * 1024);
|
||||||
|
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
#
|
|
||||||
# This module provides a service react to xscreensaver events
|
|
||||||
#
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.services.xscreensaver;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
services.xscreensaver.hooks = lib.mkOption {
|
|
||||||
type = with lib.types; attrsOf str;
|
|
||||||
description = "An attrset of events mapped a block of shell command to be run";
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
systemd.user.services = {
|
|
||||||
"xscreensaver-hooks" = {
|
|
||||||
description = "Run commands on xscreensaver events";
|
|
||||||
after = [
|
|
||||||
"graphical-session.target"
|
|
||||||
"xscreensaver.service"
|
|
||||||
];
|
|
||||||
partOf = [ "graphical-session.target" ];
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
script =
|
|
||||||
let
|
|
||||||
handlers = lib.concatMapAttrsStringSep "\n" (event: action: ''
|
|
||||||
"${event}")
|
|
||||||
( ${action}
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
'') cfg.hooks;
|
|
||||||
in
|
|
||||||
''
|
|
||||||
xscreensaver-command -watch | while read event rest; do
|
|
||||||
echo "The handler script got \"$event\""
|
|
||||||
case $event in
|
|
||||||
${handlers}
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
path = [
|
|
||||||
cfg.package # contains xscreensaver-command
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
14
nix/nixosModules/extra/lean-nixos.nix
Normal file
14
nix/nixosModules/extra/lean-nixos.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# disable unused tools on nixos systems (that I don't use)
|
||||||
|
{
|
||||||
|
system.tools = {
|
||||||
|
# build a network of virtual machines? never used this.
|
||||||
|
nixos-build-vms.enable = false;
|
||||||
|
|
||||||
|
# only useful for installer
|
||||||
|
nixos-generate-config.enable = false;
|
||||||
|
nixos-install.enable = false;
|
||||||
|
|
||||||
|
# interactively show options, just use the repl instead
|
||||||
|
nixos-option.enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# cailbre is obnoxious about opening HTML
|
|
||||||
final: prev: {
|
|
||||||
calibre = final.symlinkJoin {
|
|
||||||
name = "calibre";
|
|
||||||
paths = [ prev.calibre ];
|
|
||||||
buildInputs = [ final.makeWrapper ];
|
|
||||||
postBuild = ''
|
|
||||||
rm -r $out/share/mime
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
10
nix/overlays/cornelis.nix
Normal file
10
nix/overlays/cornelis.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# The Agda support for Vim
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
|
||||||
|
# If this is updated, we break split on case support for PLFA.
|
||||||
|
# PLFA uses 2.7.0
|
||||||
|
# https://github.com/agda/cornelis/issues/169
|
||||||
|
assert sources.cornelis.version == "v2.7.1";
|
||||||
|
sources.cornelis.asFlake.overlays.cornelis
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
final: _: {
|
|
||||||
dix = sources.dix.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
final: _: {
|
|
||||||
eepy = sources.eepy.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,20 @@
|
||||||
let
|
let
|
||||||
sources = import ../../npins;
|
sources = import ../../npins;
|
||||||
in
|
in
|
||||||
final: prev: {
|
final: prev:
|
||||||
|
let
|
||||||
|
inherit (final) lib;
|
||||||
|
in
|
||||||
|
{
|
||||||
# Dev version of ghostty, "tip"
|
# Dev version of ghostty, "tip"
|
||||||
ghostty = sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
ghostty =
|
||||||
|
let
|
||||||
|
shortRev = lib.substring 0 8 sources.ghostty-dev.revision;
|
||||||
|
in
|
||||||
|
# NOTE:
|
||||||
|
# ghostty-dev internally builds a derivation used as a cache.
|
||||||
|
# Overriding the pname would cause cache mismatch.
|
||||||
|
sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override {
|
||||||
|
revision = shortRev;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,174 +0,0 @@
|
||||||
final: prev: rec {
|
|
||||||
nerd-fonts =
|
|
||||||
let
|
|
||||||
mkNerdFont = final.callPackage ../lib/mkNerdFont.nix { };
|
|
||||||
in
|
|
||||||
prev.nerd-fonts
|
|
||||||
// {
|
|
||||||
iosevka = mkNerdFont {
|
|
||||||
font = iosevka;
|
|
||||||
patcherArgs = [
|
|
||||||
"--complete"
|
|
||||||
"--careful"
|
|
||||||
"--name {/.}-NFM"
|
|
||||||
"--mono"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
iosevka = prev.iosevka.override {
|
|
||||||
set = "";
|
|
||||||
|
|
||||||
# Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md
|
|
||||||
privateBuildPlan = {
|
|
||||||
family = "Iosevka";
|
|
||||||
serifs = "sans";
|
|
||||||
spacing = "normal";
|
|
||||||
|
|
||||||
# Otherwise kitty behaves funny with ligature
|
|
||||||
# noLigation = true;
|
|
||||||
exportGlyphNames = true;
|
|
||||||
|
|
||||||
variants.design = {
|
|
||||||
ampersand = "et-tailed";
|
|
||||||
capital-q = "crossing";
|
|
||||||
capital-z = "straight-serifless-with-crossbar";
|
|
||||||
cent = "open";
|
|
||||||
dollar = "open";
|
|
||||||
lig-double-arrow-bar = "with-notch";
|
|
||||||
lig-equal-chain = "with-notch";
|
|
||||||
lig-hyphen-chain = "with-notch";
|
|
||||||
lig-plus-chain = "with-notch";
|
|
||||||
lig-single-arrow-bar = "with-notch";
|
|
||||||
lower-lambda = "tailed-turn";
|
|
||||||
number-sign = "slanted";
|
|
||||||
percent = "rings-continuous-slash-also-connected";
|
|
||||||
seven = "straight-serifless-crossbar";
|
|
||||||
};
|
|
||||||
variants.italic = {
|
|
||||||
v = "cursive-serifless";
|
|
||||||
w = "cursive-serifless";
|
|
||||||
};
|
|
||||||
|
|
||||||
weights = {
|
|
||||||
# Build 580, but indicate 400 in output
|
|
||||||
Regular.shape = 580;
|
|
||||||
Regular.menu = 400;
|
|
||||||
Regular.css = 400;
|
|
||||||
Bold.shape = 700;
|
|
||||||
Bold.menu = 700;
|
|
||||||
Bold.css = 700;
|
|
||||||
};
|
|
||||||
|
|
||||||
widths = {
|
|
||||||
Normal.shape = 500;
|
|
||||||
Normal.menu = 5;
|
|
||||||
Normal.css = "normal";
|
|
||||||
Extended.shape = 600;
|
|
||||||
Extended.menu = 7;
|
|
||||||
Extended.css = "expanded";
|
|
||||||
};
|
|
||||||
|
|
||||||
slopes = {
|
|
||||||
Upright.angle = 0;
|
|
||||||
Upright.css = "normal";
|
|
||||||
Upright.menu = "upright";
|
|
||||||
Upright.shape = "upright";
|
|
||||||
Italic.angle = 9.4;
|
|
||||||
Italic.shape = "italic";
|
|
||||||
Italic.menu = "italic";
|
|
||||||
Italic.css = "italic";
|
|
||||||
};
|
|
||||||
|
|
||||||
# The ligatures are defined based on Haskell and Nix usages.
|
|
||||||
#
|
|
||||||
# Follow: <https://github.com/be5invis/Iosevka/blob/main/params/ligation-set.toml> for more details
|
|
||||||
ligations.enables = [
|
|
||||||
"arrow-l" # Left-pointing arrows
|
|
||||||
# "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"arrow-r" # Right-pointing arrows
|
|
||||||
# "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"arrow-lr" # Dual-pointing arrows
|
|
||||||
# "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"counter-arrow-l" # Left-pointing counter-arrows
|
|
||||||
# "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod
|
|
||||||
# "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod
|
|
||||||
# "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"counter-arrow-r" # Right-pointing counter-arrows
|
|
||||||
# "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod
|
|
||||||
# "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod
|
|
||||||
# "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
# "eqeqeq" # Enable special ligation for === with triple lines
|
|
||||||
"eqeq" # Enable ligation for == and ===
|
|
||||||
"lteq" # Enable ligation for <= as less-than-or-equal sign
|
|
||||||
# "eqlt" # Enable ligation for =< as less-than-or-equal sign
|
|
||||||
"gteq" # Enable ligation for >= as greater-than-or-equal sign
|
|
||||||
# "lteq-separate" # Display <= as separate shape
|
|
||||||
# "eqlt-separate" # Display =< as separate shape
|
|
||||||
# "gteq-separate" # Display >= as separate shape
|
|
||||||
|
|
||||||
# "exeqeqeq" # Enable special ligation for !=== with triple lines
|
|
||||||
# "exeqeq" # Enable special ligation for !== with triple lines
|
|
||||||
# "eqexeq" # Enable special ligation for =!= with triple lines
|
|
||||||
# "eqexeq-dl" # Enable special ligation for =!= with double lines
|
|
||||||
# "exeq" # Enable ligation for != and !==
|
|
||||||
# "tildeeq" # Enable ligation for ~= as inequality
|
|
||||||
# "eqslasheq" # Enable special triple-line ligation for =/= as inequality
|
|
||||||
"slasheq" # Enable ligation for /= and =/= as inequality
|
|
||||||
"trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols
|
|
||||||
# "ltgt-ne" # Enable ligation for <> as inequality
|
|
||||||
"ltgt-diamond" # Enable ligation for <> as diamond
|
|
||||||
# "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag
|
|
||||||
# "ltgt-slash-tag" # Enable ligation for </, /> and </>
|
|
||||||
# "brst" # Center asterisk in (* and *)
|
|
||||||
"slash-asterisk" # Shift asterisk in /* and */
|
|
||||||
"kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ...
|
|
||||||
# "kern-bars" # Move consecutive bars closer, like for ||, ||| and //
|
|
||||||
"center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +)
|
|
||||||
|
|
||||||
# These put -. to the same height
|
|
||||||
# "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered
|
|
||||||
# "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered
|
|
||||||
|
|
||||||
# These put *= to the same height
|
|
||||||
# "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered
|
|
||||||
# "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered
|
|
||||||
|
|
||||||
"center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered
|
|
||||||
"center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered
|
|
||||||
"center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered
|
|
||||||
"center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered
|
|
||||||
# "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering
|
|
||||||
"center-op-influence-colon" # Treat colon (:) as operator and perform chained centering
|
|
||||||
"tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line
|
|
||||||
# "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line
|
|
||||||
# "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line
|
|
||||||
# "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line
|
|
||||||
# "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected.
|
|
||||||
# "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected.
|
|
||||||
# "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected
|
|
||||||
# "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected
|
|
||||||
# "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected
|
|
||||||
# "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected
|
|
||||||
# "logic" # Enable ligation for /\ and \/
|
|
||||||
# "llgg" # Enable ligation for <<, >> and other angle-bracket chaining
|
|
||||||
# "llggeq" # Enable ligation for <<=, >>= as shift operator
|
|
||||||
# "html-comment" # Enable ligation for <!-- and <!---
|
|
||||||
# "colon-greater-as-colon-arrow:" Transform :> into : and a narrow arrow
|
|
||||||
# "brace-bar" # Enable ligation for {| and |}
|
|
||||||
"brack-bar" # Enable ligation for [| and |]
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
58
nix/overlays/iosevka/default.nix
Normal file
58
nix/overlays/iosevka/default.nix
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
# A thicker family of custom build of iosevkas. Optimized for Haskell and Nix.
|
||||||
|
final: prev:
|
||||||
|
let
|
||||||
|
inherit (prev) lib;
|
||||||
|
|
||||||
|
iosevkaConfig = final: import ./privateBuildPlan.nix;
|
||||||
|
|
||||||
|
mkIosevka =
|
||||||
|
mergedConfig:
|
||||||
|
prev.iosevka.override {
|
||||||
|
# HACK:
|
||||||
|
# Used to construct pname internally, appended to "Iosevka".
|
||||||
|
# We drop the prefix so it is not duplicated.
|
||||||
|
set = lib.removePrefix "Iosevka" mergedConfig.family;
|
||||||
|
privateBuildPlan = mergedConfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkNerdFont =
|
||||||
|
font:
|
||||||
|
final.callPackage ../../lib/mkNerdFont.nix { } {
|
||||||
|
inherit font;
|
||||||
|
patcherArgs = [
|
||||||
|
"--complete"
|
||||||
|
"--careful"
|
||||||
|
"--name {/.}-NFM"
|
||||||
|
"--mono"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
identityOverlay = _: _: { };
|
||||||
|
overlays =
|
||||||
|
let
|
||||||
|
# Useless complexity just for the fun
|
||||||
|
n-airyToList = acc: x: {
|
||||||
|
value = acc ++ [ x ];
|
||||||
|
__functor = self: n-airyToList self.value;
|
||||||
|
};
|
||||||
|
combinations = lib.crossLists (n-airyToList [ ]) [
|
||||||
|
(import ./spacings.nix)
|
||||||
|
([ identityOverlay ] ++ import ./variants.nix)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
map ({ value, ... }: lib.composeManyExtensions value) combinations;
|
||||||
|
|
||||||
|
iosevkas = lib.genAttrs' overlays (
|
||||||
|
overlay:
|
||||||
|
let
|
||||||
|
mergedConfig = lib.fix (lib.extends overlay iosevkaConfig);
|
||||||
|
in
|
||||||
|
lib.nameValuePair mergedConfig.family (mkIosevka mergedConfig)
|
||||||
|
);
|
||||||
|
|
||||||
|
iosevka-nerds = builtins.mapAttrs (_: mkNerdFont) iosevkas;
|
||||||
|
in
|
||||||
|
iosevkas
|
||||||
|
// {
|
||||||
|
nerd-fonts = prev.nerd-fonts // iosevka-nerds;
|
||||||
|
}
|
||||||
147
nix/overlays/iosevka/privateBuildPlan.nix
Normal file
147
nix/overlays/iosevka/privateBuildPlan.nix
Normal file
|
|
@ -0,0 +1,147 @@
|
||||||
|
# Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md
|
||||||
|
{
|
||||||
|
family = "Iosevka";
|
||||||
|
serifs = "sans";
|
||||||
|
|
||||||
|
variants.design = {
|
||||||
|
ampersand = "et-tailed";
|
||||||
|
capital-q = "crossing";
|
||||||
|
capital-z = "straight-serifless-with-crossbar";
|
||||||
|
cent = "open";
|
||||||
|
dollar = "open";
|
||||||
|
lig-double-arrow-bar = "with-notch";
|
||||||
|
lig-equal-chain = "with-notch";
|
||||||
|
lig-hyphen-chain = "with-notch";
|
||||||
|
lig-plus-chain = "with-notch";
|
||||||
|
lig-single-arrow-bar = "with-notch";
|
||||||
|
lower-lambda = "tailed-turn";
|
||||||
|
# number-sign = "slanted";
|
||||||
|
percent = "rings-continuous-slash-also-connected";
|
||||||
|
seven = "straight-serifless-crossbar";
|
||||||
|
brace = "curly";
|
||||||
|
};
|
||||||
|
variants.italic = {
|
||||||
|
v = "cursive-serifless";
|
||||||
|
w = "cursive-serifless";
|
||||||
|
};
|
||||||
|
|
||||||
|
weights = {
|
||||||
|
Regular.shape = 420;
|
||||||
|
Regular.menu = 400;
|
||||||
|
Regular.css = 400;
|
||||||
|
Medium.shape = 550;
|
||||||
|
Medium.menu = 500;
|
||||||
|
Medium.css = 500;
|
||||||
|
Bold.shape = 700;
|
||||||
|
Bold.menu = 700;
|
||||||
|
Bold.css = 700;
|
||||||
|
};
|
||||||
|
|
||||||
|
widths = {
|
||||||
|
Normal.shape = 500;
|
||||||
|
Normal.menu = 5;
|
||||||
|
Normal.css = "normal";
|
||||||
|
};
|
||||||
|
|
||||||
|
slopes = {
|
||||||
|
Upright.angle = 0;
|
||||||
|
Upright.css = "normal";
|
||||||
|
Upright.menu = "upright";
|
||||||
|
Upright.shape = "upright";
|
||||||
|
Italic.angle = 9.4;
|
||||||
|
Italic.shape = "italic";
|
||||||
|
Italic.menu = "italic";
|
||||||
|
Italic.css = "italic";
|
||||||
|
};
|
||||||
|
|
||||||
|
# The ligatures are defined based on Haskell and Nix usages.
|
||||||
|
#
|
||||||
|
# Follow: <https://github.com/be5invis/Iosevka/blob/main/params/ligation-set.toml> for more details
|
||||||
|
ligations.enables = [
|
||||||
|
"arrow-l" # Left-pointing arrows
|
||||||
|
# "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"arrow-r" # Right-pointing arrows
|
||||||
|
# "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"arrow-lr" # Dual-pointing arrows
|
||||||
|
# "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"counter-arrow-l" # Left-pointing counter-arrows
|
||||||
|
# "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod
|
||||||
|
# "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod
|
||||||
|
# "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"counter-arrow-r" # Right-pointing counter-arrows
|
||||||
|
# "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod
|
||||||
|
# "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod
|
||||||
|
# "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
# "eqeqeq" # Enable special ligation for === with triple lines
|
||||||
|
"eqeq" # Enable ligation for == and ===
|
||||||
|
"lteq" # Enable ligation for <= as less-than-or-equal sign
|
||||||
|
# "eqlt" # Enable ligation for =< as less-than-or-equal sign
|
||||||
|
"gteq" # Enable ligation for >= as greater-than-or-equal sign
|
||||||
|
# "lteq-separate" # Display <= as separate shape
|
||||||
|
# "eqlt-separate" # Display =< as separate shape
|
||||||
|
# "gteq-separate" # Display >= as separate shape
|
||||||
|
|
||||||
|
# "exeqeqeq" # Enable special ligation for !=== with triple lines
|
||||||
|
# "exeqeq" # Enable special ligation for !== with triple lines
|
||||||
|
# "eqexeq" # Enable special ligation for =!= with triple lines
|
||||||
|
# "eqexeq-dl" # Enable special ligation for =!= with double lines
|
||||||
|
# "exeq" # Enable ligation for != and !==
|
||||||
|
# "tildeeq" # Enable ligation for ~= as inequality
|
||||||
|
# "eqslasheq" # Enable special triple-line ligation for =/= as inequality
|
||||||
|
"slasheq" # Enable ligation for /= and =/= as inequality
|
||||||
|
"trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols
|
||||||
|
# "ltgt-ne" # Enable ligation for <> as inequality
|
||||||
|
"ltgt-diamond" # Enable ligation for <> as diamond
|
||||||
|
# "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag
|
||||||
|
# "ltgt-slash-tag" # Enable ligation for </, /> and </>
|
||||||
|
"brst" # Center asterisk in (* and *)
|
||||||
|
"slash-asterisk" # Shift asterisk in /* and */
|
||||||
|
"kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ...
|
||||||
|
# "kern-bars" # Move consecutive bars closer, like for ||, ||| and //
|
||||||
|
"center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +)
|
||||||
|
|
||||||
|
# These put -. to the same height
|
||||||
|
# "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered
|
||||||
|
# "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered
|
||||||
|
|
||||||
|
# These put *= to the same height
|
||||||
|
# "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered
|
||||||
|
# "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered
|
||||||
|
|
||||||
|
"center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered
|
||||||
|
"center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered
|
||||||
|
"center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered
|
||||||
|
"center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered
|
||||||
|
# "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering
|
||||||
|
"center-op-influence-colon" # Treat colon (:) as operator and perform chained centering
|
||||||
|
"tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line
|
||||||
|
# "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line
|
||||||
|
# "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line
|
||||||
|
# "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line
|
||||||
|
# "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected.
|
||||||
|
# "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected.
|
||||||
|
# "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected
|
||||||
|
# "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected
|
||||||
|
# "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected
|
||||||
|
# "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected
|
||||||
|
# "logic" # Enable ligation for /\ and \/
|
||||||
|
# "llgg" # Enable ligation for <<, >> and other angle-bracket chaining
|
||||||
|
# "llggeq" # Enable ligation for <<=, >>= as shift operator
|
||||||
|
# "html-comment" # Enable ligation for <!-- and <!---
|
||||||
|
# "colon-greater-as-colon-arrow:" Transform :> into : and a narrow arrow
|
||||||
|
# "brace-bar" # Enable ligation for {| and |}
|
||||||
|
"brack-bar" # Enable ligation for [| and |]
|
||||||
|
"markdown-checkboxes" # Enable ligation for Markdown checkboxes like - [ ] and - [x]
|
||||||
|
];
|
||||||
|
}
|
||||||
24
nix/overlays/iosevka/spacings.nix
Normal file
24
nix/overlays/iosevka/spacings.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
let
|
||||||
|
list = [
|
||||||
|
{
|
||||||
|
adjustFamily = old: old;
|
||||||
|
spacing = "normal";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iosevka + Ghostty makes "…" display in a odd way.
|
||||||
|
# We use "term" width to avoid this.
|
||||||
|
# https://github.com/ghostty-org/ghostty/discussions/10335
|
||||||
|
{
|
||||||
|
adjustFamily = old: old + "Term";
|
||||||
|
spacing = "term";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
map (
|
||||||
|
{ adjustFamily, spacing }:
|
||||||
|
final: prev: {
|
||||||
|
family = adjustFamily prev.family;
|
||||||
|
inherit spacing;
|
||||||
|
}
|
||||||
|
) list
|
||||||
93
nix/overlays/iosevka/variants.nix
Normal file
93
nix/overlays/iosevka/variants.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
let
|
||||||
|
list = [
|
||||||
|
{
|
||||||
|
code = "ss01";
|
||||||
|
name = "Andale Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss02";
|
||||||
|
name = "Anonymous Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss03";
|
||||||
|
name = "Consolas";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss04";
|
||||||
|
name = "Menlo";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss05";
|
||||||
|
name = "Fira Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss06";
|
||||||
|
name = "Liberation Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss07";
|
||||||
|
name = "Monaco";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss08";
|
||||||
|
name = "Pragmata Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss09";
|
||||||
|
name = "Source Code Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss10";
|
||||||
|
name = "Envy Code R";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss11";
|
||||||
|
name = "X Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss12";
|
||||||
|
name = "Ubuntu Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss13";
|
||||||
|
name = "Lucida";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss14";
|
||||||
|
name = "JetBrains Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss15";
|
||||||
|
name = "IBM Plex Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss16";
|
||||||
|
name = "PT Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss17";
|
||||||
|
name = "Recursive Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss18";
|
||||||
|
name = "Input Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss20";
|
||||||
|
name = "Curly";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
map (
|
||||||
|
{ name, code }:
|
||||||
|
let
|
||||||
|
shortName = builtins.replaceStrings [ " " ] [ "" ] name;
|
||||||
|
in
|
||||||
|
final: prev: {
|
||||||
|
family = prev.family + "${shortName}";
|
||||||
|
variants = prev.variants // {
|
||||||
|
inherits = code;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
) list
|
||||||
6
nix/overlays/npins.nix
Normal file
6
nix/overlays/npins.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
final: _: {
|
||||||
|
npins = import sources.npins { pkgs = final; };
|
||||||
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
_: _: {
|
|
||||||
unsafe-emacs28 = (import sources.pin-emacs28 { }).emacs;
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
_: _: {
|
|
||||||
# Isabelle version 2023
|
|
||||||
isabelle-2023 = (import sources.pin-isabelle { }).isabelle;
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
_: _: {
|
|
||||||
# Wireshark bug
|
|
||||||
# https://gitlab.com/wireshark/wireshark/-/issues/19574
|
|
||||||
inherit (import sources.pin-wireshark { }) wireshark;
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
|
fetchpatch,
|
||||||
stdenvNoCC,
|
stdenvNoCC,
|
||||||
lib,
|
lib,
|
||||||
}:
|
}:
|
||||||
|
|
@ -14,6 +15,31 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
hash = "sha256-p3wfR28DH6V8BHn9DT10d09Yq3mdbBecWwlR1CdDYUA=";
|
hash = "sha256-p3wfR28DH6V8BHn9DT10d09Yq3mdbBecWwlR1CdDYUA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches =
|
||||||
|
let
|
||||||
|
mkPRPatch =
|
||||||
|
{ number, hash }:
|
||||||
|
fetchpatch {
|
||||||
|
name = "ai-blocklist-patch-PR${toString number}";
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/laylavish/uBlockOrigin-HUGE-AI-Blocklist/pull/${toString number}.patch";
|
||||||
|
inherit hash;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
map mkPRPatch [
|
||||||
|
{
|
||||||
|
number = 286;
|
||||||
|
hash = "sha256-ijkOCtHCmiSUTpVfGIumPijr8xscRDBTtu7XfTMRiXY=";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
number = 300;
|
||||||
|
hash = "sha256-oso0e1+CM7hmglNZpFgaz51OU2Dhuuo7mXayTbva+vY=";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
number = 324;
|
||||||
|
hash = "sha256-/FFPFZpIQSPE7XXeFEcmVv8g8wg5JFIgKoYUTthLg5A=";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
# Build takes no time
|
# Build takes no time
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
allowSubstitutes = false;
|
allowSubstitutes = false;
|
||||||
|
|
|
||||||
28
nix/packages/by-name/hs-speedscope/package.nix
Normal file
28
nix/packages/by-name/hs-speedscope/package.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
haskellPackages,
|
||||||
|
haskell,
|
||||||
|
fetchFromGitHub,
|
||||||
|
fetchpatch,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (haskell.lib.compose) appendPatches justStaticExecutables;
|
||||||
|
|
||||||
|
drv = haskellPackages.callCabal2nix "hs-speedscope" (fetchFromGitHub {
|
||||||
|
owner = "mpickering";
|
||||||
|
repo = "hs-speedscope";
|
||||||
|
rev = "c34ac00d35f5db52e14dc5b9ba5b228aa9953398";
|
||||||
|
hash = "sha256-sVTIPIUophj/sgNp1ox1eWHa19zhsZJGjvQt5hUfYk4=";
|
||||||
|
}) { };
|
||||||
|
in
|
||||||
|
appendPatches [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "fix-event-dropping-logic";
|
||||||
|
url = "https://github.com/mpickering/hs-speedscope/commit/1420a9615dc0cafc3051c87cad8a8c463550fcda.patch";
|
||||||
|
hash = "sha256-kOaMhXHAxSQRhvxhF0uDSD1Us+ywNJcqnrKDfNaU5hA=";
|
||||||
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
name = "passing-rts-options";
|
||||||
|
url = "https://github.com/mpickering/hs-speedscope/commit/12ad16062325817242f0b7ebefabb40b9af4aa3e.patch";
|
||||||
|
hash = "sha256-AcL8t+D2xccKGVCCASXgP8t1K4EfHQmDpn2ZmR2Ppxk=";
|
||||||
|
})
|
||||||
|
] (justStaticExecutables drv)
|
||||||
40
nix/packages/by-name/mullvad-status/mullvad-status.sh
Normal file
40
nix/packages/by-name/mullvad-status/mullvad-status.sh
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
if ! type mullvad >/dev/null; then
|
||||||
|
echo -n "Mullvad unavailable"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
MULLVAD_STATUS="$(mullvad status -j)"
|
||||||
|
|
||||||
|
function xmobarColor {
|
||||||
|
fg="$1"
|
||||||
|
x="$2"
|
||||||
|
echo -n "<fc=$fg>$x</fc>"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$(echo "$MULLVAD_STATUS" | jq -r ".state")" in
|
||||||
|
connected)
|
||||||
|
function has-feature {
|
||||||
|
echo "$MULLVAD_STATUS" | jq --exit-status ".details.feature_indicators|contains([\"$1\"])" >/dev/null
|
||||||
|
}
|
||||||
|
if has-feature "LockdownMode"; then
|
||||||
|
xmobarColor "green" "Mullvad On "
|
||||||
|
else
|
||||||
|
xmobarColor "orange" "Mullvad On"
|
||||||
|
fi
|
||||||
|
|
||||||
|
COUNTRY="$(echo "$MULLVAD_STATUS" | jq -r '.details.location.country')"
|
||||||
|
CITY="$(echo "$MULLVAD_STATUS" | jq -r '.details.location.city')"
|
||||||
|
|
||||||
|
echo -n " ($COUNTRY,$CITY)"
|
||||||
|
;;
|
||||||
|
disconnected)
|
||||||
|
function is-locked-down {
|
||||||
|
echo "$MULLVAD_STATUS" | jq --exit-status ".details.locked_down" >/dev/null
|
||||||
|
}
|
||||||
|
if is-locked-down "LockdownMode"; then
|
||||||
|
xmobarColor "red" "Mullvad Off "
|
||||||
|
else
|
||||||
|
xmobarColor "orange" "Mullvad Off"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
14
nix/packages/by-name/mullvad-status/package.nix
Normal file
14
nix/packages/by-name/mullvad-status/package.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
writeShellApplication,
|
||||||
|
jq,
|
||||||
|
mullvad,
|
||||||
|
}:
|
||||||
|
|
||||||
|
writeShellApplication {
|
||||||
|
name = "mullvad-status";
|
||||||
|
runtimeInputs = [
|
||||||
|
mullvad
|
||||||
|
jq
|
||||||
|
];
|
||||||
|
text = builtins.readFile ./mullvad-status.sh;
|
||||||
|
}
|
||||||
|
|
@ -13,8 +13,8 @@ let
|
||||||
domain = "git.confusedcompiler.org";
|
domain = "git.confusedcompiler.org";
|
||||||
owner = "leana8959";
|
owner = "leana8959";
|
||||||
repo = "ruler";
|
repo = "ruler";
|
||||||
rev = "addc8a75dcfd64d5f40516f2526210c8fc163e70";
|
rev = "0e08e66f48e6ba5483a7a39456a753581587151f";
|
||||||
hash = "sha256-6dnZgkeG0p2O4ROtrFoG+jUmAQPWKHodKzUdVrBgcIM=";
|
hash = "sha256-ay8V35FuXF5eFvWjH87PDzMSQTRALHDRBiZNdOC3gFg=";
|
||||||
}) { };
|
}) { };
|
||||||
|
|
||||||
cabalOverrides = o: {
|
cabalOverrides = o: {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
writeShellApplication,
|
writeShellApplication,
|
||||||
tmux,
|
tmux,
|
||||||
procps,
|
procps,
|
||||||
|
fd,
|
||||||
fzf,
|
fzf,
|
||||||
gnused,
|
gnused,
|
||||||
lib,
|
lib,
|
||||||
|
|
@ -42,6 +43,7 @@ let
|
||||||
tmux-sessionizer = writeShellApplication {
|
tmux-sessionizer = writeShellApplication {
|
||||||
name = "tmux-sessionizer";
|
name = "tmux-sessionizer";
|
||||||
runtimeInputs = [
|
runtimeInputs = [
|
||||||
|
fd
|
||||||
fzf
|
fzf
|
||||||
gnused
|
gnused
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchFromGitHub,
|
|
||||||
rustPlatform,
|
|
||||||
libiconv,
|
|
||||||
darwin,
|
|
||||||
zlib,
|
|
||||||
}:
|
|
||||||
rustPlatform.buildRustPackage (
|
|
||||||
finalAttrs:
|
|
||||||
let
|
|
||||||
cargoToml = fromTOML (builtins.readFile (finalAttrs.src + "/Cargo.toml"));
|
|
||||||
cargoLock = finalAttrs.src + "/Cargo.lock";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
pname = "tokei";
|
|
||||||
version = cargoToml.package.version;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "XAMPPRocky";
|
|
||||||
repo = "tokei";
|
|
||||||
rev = "v13.0.0-alpha.9";
|
|
||||||
hash = "sha256-OSIJYSUwc8SvszEOMgt+d/ljCW2jtBkPw6buof4JpUc=";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoLock.lockFile = cargoLock;
|
|
||||||
|
|
||||||
buildInputs = lib.optionals stdenv.isDarwin [
|
|
||||||
libiconv
|
|
||||||
darwin.Security
|
|
||||||
];
|
|
||||||
|
|
||||||
checkInputs = lib.optionals stdenv.isDarwin [ zlib ];
|
|
||||||
|
|
||||||
# enable all output formats
|
|
||||||
buildFeatures = [ "all" ];
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
@ -7,6 +7,6 @@ in
|
||||||
(import sources.nixpkgs {
|
(import sources.nixpkgs {
|
||||||
overlays = map scopeOverlay [
|
overlays = map scopeOverlay [
|
||||||
(import ./overlay.nix)
|
(import ./overlay.nix)
|
||||||
(import ../overlays/iosevka.nix)
|
(import ../overlays/iosevka)
|
||||||
];
|
];
|
||||||
}).export
|
}).export
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,15 @@
|
||||||
*/
|
*/
|
||||||
# Generated by npins. Do not modify; will be overwritten regularly
|
# Generated by npins. Do not modify; will be overwritten regularly
|
||||||
let
|
let
|
||||||
data = builtins.fromJSON (builtins.readFile ./sources.json);
|
# Backwards-compatibly make something that previously didn't take any arguments take some
|
||||||
version = data.version;
|
# The function must return an attrset, and will unfortunately be eagerly evaluated
|
||||||
|
# Same thing, but it catches eval errors on the default argument so that one may still call it with other arguments
|
||||||
|
mkFunctor =
|
||||||
|
fn:
|
||||||
|
let
|
||||||
|
e = builtins.tryEval (fn { });
|
||||||
|
in
|
||||||
|
(if e.success then e.value else { error = fn { }; }) // { __functor = _self: fn; };
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
||||||
range =
|
range =
|
||||||
|
|
@ -21,7 +28,6 @@ let
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
||||||
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
||||||
concatMapStrings = f: list: concatStrings (map f list);
|
|
||||||
concatStrings = builtins.concatStringsSep "";
|
concatStrings = builtins.concatStringsSep "";
|
||||||
|
|
||||||
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
|
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
|
||||||
|
|
@ -48,19 +54,61 @@ let
|
||||||
|
|
||||||
mkSource =
|
mkSource =
|
||||||
name: spec:
|
name: spec:
|
||||||
|
{
|
||||||
|
pkgs ? null,
|
||||||
|
}:
|
||||||
assert spec ? type;
|
assert spec ? type;
|
||||||
let
|
let
|
||||||
|
# Unify across builtin and pkgs fetchers.
|
||||||
|
# `fetchGit` requires a wrapper because of slight API differences.
|
||||||
|
fetchers =
|
||||||
|
if pkgs == null then
|
||||||
|
{
|
||||||
|
inherit (builtins) fetchTarball fetchurl;
|
||||||
|
# For some fucking reason, fetchGit has a different signature than the other builtin fetchers …
|
||||||
|
fetchGit = args: (builtins.fetchGit args).outPath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fetchTarball =
|
||||||
|
{
|
||||||
|
url,
|
||||||
|
sha256,
|
||||||
|
}:
|
||||||
|
pkgs.fetchzip {
|
||||||
|
inherit url sha256;
|
||||||
|
extension = "tar";
|
||||||
|
};
|
||||||
|
inherit (pkgs) fetchurl;
|
||||||
|
fetchGit =
|
||||||
|
{
|
||||||
|
url,
|
||||||
|
submodules,
|
||||||
|
rev,
|
||||||
|
name,
|
||||||
|
narHash,
|
||||||
|
}:
|
||||||
|
pkgs.fetchgit {
|
||||||
|
inherit url rev name;
|
||||||
|
fetchSubmodules = submodules;
|
||||||
|
hash = narHash;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Dispatch to the correct code path based on the type
|
||||||
path =
|
path =
|
||||||
if spec.type == "Git" then
|
if spec.type == "Git" then
|
||||||
mkGitSource spec
|
mkGitSource fetchers spec
|
||||||
else if spec.type == "GitRelease" then
|
else if spec.type == "GitRelease" then
|
||||||
mkGitSource spec
|
mkGitSource fetchers spec
|
||||||
else if spec.type == "PyPi" then
|
else if spec.type == "PyPi" then
|
||||||
mkPyPiSource spec
|
mkPyPiSource fetchers spec
|
||||||
else if spec.type == "Channel" then
|
else if spec.type == "Channel" then
|
||||||
mkChannelSource spec
|
mkChannelSource fetchers spec
|
||||||
else if spec.type == "Tarball" then
|
else if spec.type == "Tarball" then
|
||||||
mkTarballSource spec
|
mkTarballSource fetchers spec
|
||||||
|
else if spec.type == "Container" then
|
||||||
|
mkContainerSource pkgs spec
|
||||||
else
|
else
|
||||||
builtins.throw "Unknown source type ${spec.type}";
|
builtins.throw "Unknown source type ${spec.type}";
|
||||||
in
|
in
|
||||||
|
|
@ -78,22 +126,26 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
mkGitSource =
|
mkGitSource =
|
||||||
|
{
|
||||||
|
fetchTarball,
|
||||||
|
fetchGit,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
repository,
|
repository,
|
||||||
revision,
|
revision,
|
||||||
url ? null,
|
url ? null,
|
||||||
submodules,
|
submodules,
|
||||||
hash,
|
hash,
|
||||||
branch ? null,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
assert repository ? type;
|
assert repository ? type;
|
||||||
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
|
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
|
||||||
# In the latter case, there we will always be an url to the tarball
|
# In the latter case, there we will always be an url to the tarball
|
||||||
if url != null && !submodules then
|
if url != null && !submodules then
|
||||||
builtins.fetchTarball {
|
fetchTarball {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash; # FIXME: check nix version & use SRI hashes
|
sha256 = hash;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
let
|
let
|
||||||
|
|
@ -104,6 +156,8 @@ let
|
||||||
"https://github.com/${repository.owner}/${repository.repo}.git"
|
"https://github.com/${repository.owner}/${repository.repo}.git"
|
||||||
else if repository.type == "GitLab" then
|
else if repository.type == "GitLab" then
|
||||||
"${repository.server}/${repository.repo_path}.git"
|
"${repository.server}/${repository.repo_path}.git"
|
||||||
|
else if repository.type == "Forgejo" then
|
||||||
|
"${repository.server}/${repository.owner}/${repository.repo}.git"
|
||||||
else
|
else
|
||||||
throw "Unrecognized repository type ${repository.type}";
|
throw "Unrecognized repository type ${repository.type}";
|
||||||
urlToName =
|
urlToName =
|
||||||
|
|
@ -118,51 +172,91 @@ let
|
||||||
"${if matched == null then "source" else builtins.head matched}${appendShort}";
|
"${if matched == null then "source" else builtins.head matched}${appendShort}";
|
||||||
name = urlToName url revision;
|
name = urlToName url revision;
|
||||||
in
|
in
|
||||||
builtins.fetchGit {
|
fetchGit {
|
||||||
rev = revision;
|
rev = revision;
|
||||||
inherit name;
|
narHash = hash;
|
||||||
# hash = hash;
|
|
||||||
inherit url submodules;
|
inherit name submodules url;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkPyPiSource =
|
mkPyPiSource =
|
||||||
|
{ fetchurl, ... }:
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
builtins.fetchurl {
|
fetchurl {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkChannelSource =
|
mkChannelSource =
|
||||||
|
{ fetchTarball, ... }:
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
builtins.fetchTarball {
|
fetchTarball {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkTarballSource =
|
mkTarballSource =
|
||||||
|
{ fetchTarball, ... }:
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
locked_url ? url,
|
locked_url ? url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
builtins.fetchTarball {
|
fetchTarball {
|
||||||
url = locked_url;
|
url = locked_url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
sources =
|
mkContainerSource =
|
||||||
if version == 5 then
|
pkgs:
|
||||||
builtins.mapAttrs mkSource data.pins
|
{
|
||||||
|
image_name,
|
||||||
|
image_tag,
|
||||||
|
image_digest,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
if pkgs == null then
|
||||||
|
builtins.throw "container sources require passing in a Nixpkgs value: https://github.com/andir/npins/blob/master/README.md#using-the-nixpkgs-fetchers"
|
||||||
else
|
else
|
||||||
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`";
|
pkgs.dockerTools.pullImage {
|
||||||
|
imageName = image_name;
|
||||||
|
imageDigest = image_digest;
|
||||||
|
finalImageTag = image_tag;
|
||||||
|
};
|
||||||
|
|
||||||
|
sources = mkFunctor (
|
||||||
|
{
|
||||||
|
input ? ./sources.json,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
data =
|
||||||
|
if builtins.isPath input then
|
||||||
|
# while `readFile` will throw an error anyways if the path doesn't exist,
|
||||||
|
# we still need to check beforehand because *our* error can be caught but not the one from the builtin
|
||||||
|
# *piegames sighs*
|
||||||
|
if builtins.pathExists input then
|
||||||
|
builtins.fromJSON (builtins.readFile input)
|
||||||
|
else
|
||||||
|
throw "Input path ${toString input} does not exist"
|
||||||
|
else if builtins.isAttrs input then
|
||||||
|
input
|
||||||
|
else
|
||||||
|
throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset";
|
||||||
|
version = data.version;
|
||||||
|
in
|
||||||
|
if version == 7 then
|
||||||
|
builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins
|
||||||
|
else
|
||||||
|
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
|
||||||
|
);
|
||||||
in
|
in
|
||||||
sources
|
sources
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,24 @@
|
||||||
"version": "0.15.0",
|
"version": "0.15.0",
|
||||||
"revision": "564595d0ad4be7277e07fa63b5a991b3c645655d",
|
"revision": "564595d0ad4be7277e07fa63b5a991b3c645655d",
|
||||||
"url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0",
|
"url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0",
|
||||||
"hash": "01dhrghwa7zw93cybvx4gnrskqk97b004nfxgsys0736823956la"
|
"hash": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU="
|
||||||
|
},
|
||||||
|
"cornelis": {
|
||||||
|
"type": "GitRelease",
|
||||||
|
"repository": {
|
||||||
|
"type": "GitHub",
|
||||||
|
"owner": "agda",
|
||||||
|
"repo": "cornelis"
|
||||||
|
},
|
||||||
|
"pre_releases": false,
|
||||||
|
"version_upper_bound": null,
|
||||||
|
"release_prefix": null,
|
||||||
|
"submodules": false,
|
||||||
|
"version": "v2.7.1",
|
||||||
|
"revision": "40298eed11eb877526b3ab3f648d8a7bff9e2f50",
|
||||||
|
"url": "https://api.github.com/repos/agda/cornelis/tarball/refs/tags/v2.7.1",
|
||||||
|
"hash": "sha256-h18AeggnOSSjy0RLJIkWsSID1BJTarOV9F1APKusIrE=",
|
||||||
|
"frozen": true
|
||||||
},
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"type": "GitRelease",
|
"type": "GitRelease",
|
||||||
|
|
@ -30,37 +47,7 @@
|
||||||
"version": "v1.11.0",
|
"version": "v1.11.0",
|
||||||
"revision": "cdf8deded8813edfa6e65544f69fdd3a59fa2bb4",
|
"revision": "cdf8deded8813edfa6e65544f69fdd3a59fa2bb4",
|
||||||
"url": "https://api.github.com/repos/nix-community/disko/tarball/v1.11.0",
|
"url": "https://api.github.com/repos/nix-community/disko/tarball/v1.11.0",
|
||||||
"hash": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92"
|
"hash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0="
|
||||||
},
|
|
||||||
"dix": {
|
|
||||||
"type": "GitRelease",
|
|
||||||
"repository": {
|
|
||||||
"type": "GitHub",
|
|
||||||
"owner": "bloxx12",
|
|
||||||
"repo": "dix"
|
|
||||||
},
|
|
||||||
"pre_releases": false,
|
|
||||||
"version_upper_bound": null,
|
|
||||||
"release_prefix": null,
|
|
||||||
"submodules": false,
|
|
||||||
"version": "v1.3.0",
|
|
||||||
"revision": "ba315562f8c4a957dc9c058d75a43419e3307f63",
|
|
||||||
"url": "https://api.github.com/repos/bloxx12/dix/tarball/v1.3.0",
|
|
||||||
"hash": "00gr8b6i9xis9kmbblvnafjpaa2hk18bs0i3pxisyzibp928bv2z"
|
|
||||||
},
|
|
||||||
"eepy": {
|
|
||||||
"type": "Git",
|
|
||||||
"repository": {
|
|
||||||
"type": "GitHub",
|
|
||||||
"owner": "cafkafk",
|
|
||||||
"repo": "eepy"
|
|
||||||
},
|
|
||||||
"branch": "main",
|
|
||||||
"submodules": false,
|
|
||||||
"revision": "2092e67cf48f62754cdeb45ced1e5670d11fddc3",
|
|
||||||
"url": "https://github.com/cafkafk/eepy/archive/2092e67cf48f62754cdeb45ced1e5670d11fddc3.tar.gz",
|
|
||||||
"hash": "0rddwwrkbbgcdava542qg1wb3ca9d6g24l9gp4ghp55f04p55p79",
|
|
||||||
"frozen": true
|
|
||||||
},
|
},
|
||||||
"fcitx5-table-extra": {
|
"fcitx5-table-extra": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -73,7 +60,7 @@
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa",
|
"revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa",
|
||||||
"url": null,
|
"url": null,
|
||||||
"hash": "0ryb3cng4py2zrm95p5ial9w13p7w4ws0bl0lddrij1sq42kzg8l",
|
"hash": "sha256-FL0/BcE6yJhbo4AuoDnh547AE1Wx3JJq/sJf8iwby2c=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
|
@ -88,7 +75,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
"revision": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz",
|
"url": "https://git.lix.systems/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz",
|
||||||
"hash": "0g4izwn5k7qpavlk3w41a92rhnp4plr928vmrhc75041vzm3vb1l",
|
"hash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"ghostty-dev": {
|
"ghostty-dev": {
|
||||||
|
|
@ -100,9 +87,9 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "45abfa91905a5dafdddb711dd9402d45947cdfbb",
|
"revision": "34eaad6fc86e086f469e81769a793be20d1e169b",
|
||||||
"url": "https://github.com/ghostty-org/ghostty/archive/45abfa91905a5dafdddb711dd9402d45947cdfbb.tar.gz",
|
"url": "https://github.com/ghostty-org/ghostty/archive/34eaad6fc86e086f469e81769a793be20d1e169b.tar.gz",
|
||||||
"hash": "1pmfsxd65yva3ij2v20xb5r1hf3mx6lqr593nivnvsi345jnfh1y"
|
"hash": "sha256-628LfxEPA0tiCjh6syMupdrGvVb6twhoJTtUFKDbqBQ="
|
||||||
},
|
},
|
||||||
"hategroup-dnsbl": {
|
"hategroup-dnsbl": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -115,7 +102,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "cc19c050997d5f54014bb20c764b131e003dfb17",
|
"revision": "cc19c050997d5f54014bb20c764b131e003dfb17",
|
||||||
"url": "https://github.com/chigh/hategroup-dnsbl/archive/cc19c050997d5f54014bb20c764b131e003dfb17.tar.gz",
|
"url": "https://github.com/chigh/hategroup-dnsbl/archive/cc19c050997d5f54014bb20c764b131e003dfb17.tar.gz",
|
||||||
"hash": "1x1nhy0717bav35z6aid0224izmcsrg3knys64xszhslh266p429",
|
"hash": "sha256-SZBrjIBUw687MdrbOV7WrP5IhAAtKvPL2GqdcICHNvQ=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
|
|
@ -125,11 +112,11 @@
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager"
|
"repo": "home-manager"
|
||||||
},
|
},
|
||||||
"branch": "release-25.11",
|
"branch": "master",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "6bd04da47cfb48dfd15eabf08364b78ad894f5b2",
|
"revision": "4e8b7bef66c60735982369f3151b93e62fe37da7",
|
||||||
"url": "https://github.com/nix-community/home-manager/archive/6bd04da47cfb48dfd15eabf08364b78ad894f5b2.tar.gz",
|
"url": "https://github.com/nix-community/home-manager/archive/4e8b7bef66c60735982369f3151b93e62fe37da7.tar.gz",
|
||||||
"hash": "1wvysqiybcyf2hzvvpja2522fqhk45554j0b07h3s7zhzc2056ia"
|
"hash": "0jva394l5s9vdrwfffvb8f4181i8832g6hffasn8nc8aqyn1wq5f"
|
||||||
},
|
},
|
||||||
"infuse": {
|
"infuse": {
|
||||||
"type": "GitRelease",
|
"type": "GitRelease",
|
||||||
|
|
@ -146,7 +133,7 @@
|
||||||
"version": "v2.4",
|
"version": "v2.4",
|
||||||
"revision": "c7da66119bb3502a59402cd2d1688a3f0a02577a",
|
"revision": "c7da66119bb3502a59402cd2d1688a3f0a02577a",
|
||||||
"url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz",
|
"url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz",
|
||||||
"hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1"
|
"hash": "sha256-4XPDTUvV8dfuf9GzKg2/r7j7lMELRAwKKFx3ecQObeg="
|
||||||
},
|
},
|
||||||
"nil": {
|
"nil": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -159,7 +146,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "504599f7e555a249d6754698473124018b80d121",
|
"revision": "504599f7e555a249d6754698473124018b80d121",
|
||||||
"url": "https://github.com/oxalica/nil/archive/504599f7e555a249d6754698473124018b80d121.tar.gz",
|
"url": "https://github.com/oxalica/nil/archive/504599f7e555a249d6754698473124018b80d121.tar.gz",
|
||||||
"hash": "1mzx60999jciq2ax1l5ajmks6fb3cmjavn7fsyh4aysvcdgzrj6p"
|
"hash": "sha256-18j8X2Nbe0Wg1+7YrWRlYzmjZ5Wq0NCVwJHJlBIw/dc="
|
||||||
},
|
},
|
||||||
"nix-monitored": {
|
"nix-monitored": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -172,7 +159,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "60f3baa4701d58eab86c2d1d9c3d7e820074d461",
|
"revision": "60f3baa4701d58eab86c2d1d9c3d7e820074d461",
|
||||||
"url": "https://github.com/ners/nix-monitored/archive/60f3baa4701d58eab86c2d1d9c3d7e820074d461.tar.gz",
|
"url": "https://github.com/ners/nix-monitored/archive/60f3baa4701d58eab86c2d1d9c3d7e820074d461.tar.gz",
|
||||||
"hash": "1rdyjmxkvyqd5blbzbwfv2b99krx6rkpdzi1ckyby8i676gf9hv7",
|
"hash": "sha256-Z8PknjkmIr/8ZCH+dmc2Pc+UltiOr7/oKg37PXuVvuU=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
|
|
@ -184,9 +171,9 @@
|
||||||
},
|
},
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
"revision": "9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca",
|
||||||
"url": "https://github.com/NixOS/nixos-hardware/archive/40b1a28dce561bea34858287fbb23052c3ee63fe.tar.gz",
|
"url": "https://github.com/NixOS/nixos-hardware/archive/9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca.tar.gz",
|
||||||
"hash": "197v6xxdq5j4w8kil6q21ij9x6ng8z6j72brkwwjim23798c2c4n"
|
"hash": "sha256-3ymIZ8s3+hu7sDl/Y48o6bwMxorfKrmn97KuWiw1vjY="
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -195,11 +182,27 @@
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs"
|
"repo": "nixpkgs"
|
||||||
},
|
},
|
||||||
"branch": "nixos-25.11-small",
|
"branch": "nixos-unstable",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "a35a20f6d3d51b6b42b68a6879701f7d87381896",
|
"revision": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5",
|
||||||
"url": "https://github.com/nixos/nixpkgs/archive/a35a20f6d3d51b6b42b68a6879701f7d87381896.tar.gz",
|
"url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz",
|
||||||
"hash": "00781d4nhmqzvxph2lpsj3kika3v8y0nigfadr6y8lvzxrcppkfj"
|
"hash": "1h3g9iyfj0xwz7i4ywcxjpp3p9xk7ahp563m0h1i25697sc2lrji"
|
||||||
|
},
|
||||||
|
"npins": {
|
||||||
|
"type": "GitRelease",
|
||||||
|
"repository": {
|
||||||
|
"type": "GitHub",
|
||||||
|
"owner": "andir",
|
||||||
|
"repo": "npins"
|
||||||
|
},
|
||||||
|
"pre_releases": false,
|
||||||
|
"version_upper_bound": "0.5",
|
||||||
|
"release_prefix": null,
|
||||||
|
"submodules": false,
|
||||||
|
"version": "0.4.0",
|
||||||
|
"revision": "52904b878c2db61e062b63beb07784d41f98c765",
|
||||||
|
"url": "https://api.github.com/repos/andir/npins/tarball/0.4.0",
|
||||||
|
"hash": "sha256-ksOXi7u4bpHyWNHwkUR62fdwKowPW5GqBS7MA7Apwh4="
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -210,9 +213,9 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "68e3e935ba29960813ab1ecf2852a0ecbe8d5946",
|
"revision": "bea55329cc806cfe3b826f7baab0503fd6b6892f",
|
||||||
"url": "https://github.com/nix-community/nur/archive/68e3e935ba29960813ab1ecf2852a0ecbe8d5946.tar.gz",
|
"url": "https://github.com/nix-community/nur/archive/bea55329cc806cfe3b826f7baab0503fd6b6892f.tar.gz",
|
||||||
"hash": "02pmkhd6ram43qnmirh3z46w1l31rmm16mhkx36jaxhpnzlwgr2i"
|
"hash": "sha256-B8+OiD8kYXtFc4vJc9+d7q8+MOic8VYR0G8wbSHjuSc="
|
||||||
},
|
},
|
||||||
"pin-emacs28": {
|
"pin-emacs28": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -225,7 +228,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "93c121f6888986f9148a33afd39d714f4b2ca98c",
|
"revision": "93c121f6888986f9148a33afd39d714f4b2ca98c",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/93c121f6888986f9148a33afd39d714f4b2ca98c.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/93c121f6888986f9148a33afd39d714f4b2ca98c.tar.gz",
|
||||||
"hash": "198p4lv3zqw3s6j3yflgic0jxig4y0vsb1k8433jv227ks89kqdg",
|
"hash": "sha256-r+GZkJ5HiC3HIGiGpTfw5MUuAYuPOj+k0YPjPzYlF6U=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-florashell": {
|
"pin-florashell": {
|
||||||
|
|
@ -239,7 +242,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "7282cb574e0607e65224d33be8241eae7cfe0979",
|
"revision": "7282cb574e0607e65224d33be8241eae7cfe0979",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/7282cb574e0607e65224d33be8241eae7cfe0979.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/7282cb574e0607e65224d33be8241eae7cfe0979.tar.gz",
|
||||||
"hash": "0klkpy7ah033y3cwj51a0l96lwmkqqvwgfv3kid4z9x5g2rqr0l5",
|
"hash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-fourmolu": {
|
"pin-fourmolu": {
|
||||||
|
|
@ -253,7 +256,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "f6cf0e77542dd938f002652dd54391b973f792de",
|
"revision": "f6cf0e77542dd938f002652dd54391b973f792de",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/f6cf0e77542dd938f002652dd54391b973f792de.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/f6cf0e77542dd938f002652dd54391b973f792de.tar.gz",
|
||||||
"hash": "1a8kcw1biyzmf5k8qjrji5fvgr8bbmi7fvf8pvfgjmf1df8rrcz1",
|
"hash": "sha256-4bOckWvBVfncvshtd2JdC+W3XYkyS4xmcfX7uAJnE6k=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-isabelle": {
|
"pin-isabelle": {
|
||||||
|
|
@ -267,7 +270,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "805a384895c696f802a9bf5bf4720f37385df547",
|
"revision": "805a384895c696f802a9bf5bf4720f37385df547",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/805a384895c696f802a9bf5bf4720f37385df547.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/805a384895c696f802a9bf5bf4720f37385df547.tar.gz",
|
||||||
"hash": "1q7y5ygr805l5axcjhn0rn3wj8zrwbrr0c6a8xd981zh8iccmx0p",
|
"hash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-masna3shell": {
|
"pin-masna3shell": {
|
||||||
|
|
@ -281,7 +284,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "641d909c4a7538f1539da9240dedb1755c907e40",
|
"revision": "641d909c4a7538f1539da9240dedb1755c907e40",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/641d909c4a7538f1539da9240dedb1755c907e40.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/641d909c4a7538f1539da9240dedb1755c907e40.tar.gz",
|
||||||
"hash": "10hpb1aw884k3zzcy1mhf47dqvfagiyx7kr6hg0p5xcwg04mkx8x",
|
"hash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-necro-man-nixpkgs": {
|
"pin-necro-man-nixpkgs": {
|
||||||
|
|
@ -295,7 +298,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "c58ed2fc0f592ebc280bfba077ea418ce10213d1",
|
"revision": "c58ed2fc0f592ebc280bfba077ea418ce10213d1",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/c58ed2fc0f592ebc280bfba077ea418ce10213d1.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/c58ed2fc0f592ebc280bfba077ea418ce10213d1.tar.gz",
|
||||||
"hash": "1y5is3cjwsy9n5cqs8i7qc9kf8cny9yxzirzzspkqbrm51axv53i",
|
"hash": "sha256-cZTdVSg1Lzyv/j/H333yliE3E8MnIo1ZsclrLtnQsfg=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-vim-tw": {
|
"pin-vim-tw": {
|
||||||
|
|
@ -309,7 +312,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "c93c1b3413bd7e235fc22b469bc0d2feec332cf5",
|
"revision": "c93c1b3413bd7e235fc22b469bc0d2feec332cf5",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/c93c1b3413bd7e235fc22b469bc0d2feec332cf5.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/c93c1b3413bd7e235fc22b469bc0d2feec332cf5.tar.gz",
|
||||||
"hash": "115sdkhyp0pm5rmag4gq0myg2rs20irisgnpf26zjfm92pw8isq4",
|
"hash": "sha256-BOuI+BWpOvmNcNc+HXMEQmfxfAX4kadqLvWC6+FsuoQ=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-wireshark": {
|
"pin-wireshark": {
|
||||||
|
|
@ -323,7 +326,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "9d3ae807ebd2981d593cddd0080856873139aa40",
|
"revision": "9d3ae807ebd2981d593cddd0080856873139aa40",
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/9d3ae807ebd2981d593cddd0080856873139aa40.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs/archive/9d3ae807ebd2981d593cddd0080856873139aa40.tar.gz",
|
||||||
"hash": "0bjqgsprq9fgl5yh58dk59xmchi4dajq3sf5i447q02dbiasjsil",
|
"hash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"url-eater": {
|
"url-eater": {
|
||||||
|
|
@ -337,7 +340,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "d617007eba79f9760db084aefda6c02c80ad7971",
|
"revision": "d617007eba79f9760db084aefda6c02c80ad7971",
|
||||||
"url": "https://github.com/AgathaSorceress/url-eater/archive/d617007eba79f9760db084aefda6c02c80ad7971.tar.gz",
|
"url": "https://github.com/AgathaSorceress/url-eater/archive/d617007eba79f9760db084aefda6c02c80ad7971.tar.gz",
|
||||||
"hash": "0dir077j5gy6yzbhsr85z7kbiwi135ns59gwrycbpvihzzp4qbwm"
|
"hash": "sha256-lS9M7v8w7ruYz/ylom0ZIfK45vkFZQ3X98a/Is8BOTY="
|
||||||
},
|
},
|
||||||
"wallpapers": {
|
"wallpapers": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -349,9 +352,9 @@
|
||||||
},
|
},
|
||||||
"branch": "mistress",
|
"branch": "mistress",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "ee12113e53e1b9b80638b6963a5b7075c3b81e93",
|
"revision": "2ed11d34f02d86795f6d08bb3ec23e341a46a788",
|
||||||
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/ee12113e53e1b9b80638b6963a5b7075c3b81e93.tar.gz",
|
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/2ed11d34f02d86795f6d08bb3ec23e341a46a788.tar.gz",
|
||||||
"hash": "1pv17pvc60jkr8y7j8g3q0wmy5qgsjxsq1gv23yb3gf52g4z98sk"
|
"hash": "sha256-fE2uKYi3yWV6h6i4ZXifux9vCOnXdYTJ7kWJUISQ3B4="
|
||||||
},
|
},
|
||||||
"wired-notify": {
|
"wired-notify": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -364,7 +367,7 @@
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3",
|
"revision": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3",
|
||||||
"url": "https://github.com/Toqozz/wired-notify/archive/491197a6a5ef9c65a85c3eb1531786f32ffff5b3.tar.gz",
|
"url": "https://github.com/Toqozz/wired-notify/archive/491197a6a5ef9c65a85c3eb1531786f32ffff5b3.tar.gz",
|
||||||
"hash": "07gaizslvsiihvfrrbcdz0b2c04llsfqaji03ls55p1zbm41w6f3"
|
"hash": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0="
|
||||||
},
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -375,10 +378,10 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "350c729b261e6f5529460140a5f0943dd4c5e156",
|
"revision": "0fac05e4b604c3304e7710a95572e78350fe9968",
|
||||||
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/350c729b261e6f5529460140a5f0943dd4c5e156.tar.gz",
|
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/0fac05e4b604c3304e7710a95572e78350fe9968.tar.gz",
|
||||||
"hash": "1fbx200712rdz3b8c4acrz0ib8fd636bvsiyv4m31xqpfqpj3kza"
|
"hash": "sha256-jejW3u1bkqz0ObXZeiZqLQNwC7+MXb8/KMwf3VPQpRI="
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 5
|
"version": 7
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
|
let
|
||||||
|
sources = import ./npins;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
sources ? import ./npins,
|
|
||||||
pkgs ? import sources.nixpkgs {
|
pkgs ? import sources.nixpkgs {
|
||||||
overlays = map import [
|
overlays = map import [
|
||||||
./nix/overlays/disko.nix
|
./nix/overlays/disko.nix
|
||||||
|
./nix/overlays/npins.nix
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
withGHC ? false,
|
withGHC ? false,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue