mirror of
https://codeberg.org/leana8959/.files.git
synced 2026-02-01 14:39:39 +00:00
Compare commits
3 commits
c7a09c5a23
...
041fbcfa1c
| Author | SHA1 | Date | |
|---|---|---|---|
| 041fbcfa1c | |||
| c2e068dc48 | |||
| ae8a563863 |
71 changed files with 700 additions and 1142 deletions
|
|
@ -1,176 +0,0 @@
|
||||||
" 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 +0,0 @@
|
||||||
.config/nvim/ftplugin/agda.vim
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
"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" },
|
||||||
|
|
@ -22,7 +21,6 @@
|
||||||
"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" },
|
||||||
|
|
@ -41,6 +39,5 @@
|
||||||
"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,19 +120,6 @@ 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",
|
||||||
|
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
" 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 { backward = false } end)
|
vim.keymap.set({ "n", "x", "o" }, "s", function() leap.leap() end)
|
||||||
vim.keymap.set("n", "S", function() leap.leap { backward = true } end)
|
vim.keymap.set("n", "S", function() leap.leap { backward = true } end)
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,6 @@ local servers = {
|
||||||
["nil"] = { formatting = { command = { "nixfmt" } } },
|
["nil"] = { formatting = { command = { "nixfmt" } } },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
zls = {},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vim.diagnostic.config {
|
vim.diagnostic.config {
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,6 @@ 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,6 +40,7 @@ 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,11 +1,9 @@
|
||||||
# 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 = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
min-free = 50 * 1024 * 1024 * 1024;
|
||||||
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
max-free = 100 * 1024 * 1024 * 1024;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.nix-daemon.serviceConfig = {
|
systemd.services.nix-daemon.serviceConfig = {
|
||||||
|
|
@ -13,4 +11,11 @@ in
|
||||||
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,6 +45,7 @@ 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,16 +54,21 @@ 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
|
../overlays/iosevka.nix
|
||||||
../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
|
||||||
|
|
@ -95,7 +100,6 @@ 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
|
||||||
|
|
@ -116,7 +120,6 @@ 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
|
||||||
|
|
@ -173,6 +176,7 @@ 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,14 +27,10 @@
|
||||||
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 = {
|
||||||
|
|
@ -75,7 +71,6 @@
|
||||||
"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="
|
||||||
|
|
@ -83,7 +78,6 @@
|
||||||
"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,7 +115,6 @@ 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,46 +17,6 @@
|
||||||
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
|
||||||
|
|
@ -66,12 +26,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.serial_experiments_lain.lain_windows_error}";
|
".wallpaper".source = "${pkgs.wallpapers.packages.knights_of_guinevere.fixing_gwen}";
|
||||||
};
|
};
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"xmonad".source = "${./xmonad}";
|
"xmonad".source = "${./xmonad}";
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@
|
||||||
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
|
||||||
|
|
@ -42,11 +41,13 @@
|
||||||
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
|
||||||
|
|
@ -68,32 +69,49 @@
|
||||||
pkgs.onefetch
|
pkgs.onefetch
|
||||||
pkgs.just
|
pkgs.just
|
||||||
|
|
||||||
pkgs.nixfmt-rfc-style # formatter
|
# nix tools
|
||||||
pkgs.nurl # fetcher made easy
|
# # Alejandra handles inline comments poorly
|
||||||
pkgs.nix-diff # debug cache miss
|
# # https://github.com/kamadorueda/alejandra/issues/429
|
||||||
|
# pkgs.alejandra
|
||||||
|
pkgs.nixfmt-rfc-style
|
||||||
|
pkgs.nurl
|
||||||
|
pkgs.dix
|
||||||
|
pkgs.niv
|
||||||
pkgs.npins
|
pkgs.npins
|
||||||
pkgs.nix-tree # analyze closure
|
pkgs.nix-tree
|
||||||
|
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.picard # music tagger
|
|
||||||
pkgs.mousai
|
|
||||||
pkgs.nicotine-plus
|
pkgs.nicotine-plus
|
||||||
|
pkgs.picard # music tagger
|
||||||
pkgs.qbittorrent
|
pkgs.qbittorrent
|
||||||
pkgs.mkvtoolnix
|
pkgs.mousai
|
||||||
pkgs.localsend # file share with iOS
|
pkgs.localsend # file share with iOS
|
||||||
|
pkgs.minder # mindmap tool
|
||||||
|
pkgs.mkvtoolnix
|
||||||
|
|
||||||
# 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
|
||||||
|
|
@ -115,6 +133,10 @@
|
||||||
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;
|
||||||
|
|
@ -153,7 +175,18 @@
|
||||||
mouse-scroll-multiplier = 1;
|
mouse-scroll-multiplier = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# chromium.enable = true;
|
kitty = {
|
||||||
|
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.mullvad-status
|
pkgs.hrt-time
|
||||||
]
|
]
|
||||||
}"
|
}"
|
||||||
'';
|
'';
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,20 @@ config =
|
||||||
, Run $
|
, Run $
|
||||||
Com
|
Com
|
||||||
"tomorrow"
|
"tomorrow"
|
||||||
[ "--target", "2026-02-02=monmaster"
|
[ "--target", "2025-08-14"
|
||||||
|
, "--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)
|
||||||
|
|
@ -89,7 +102,7 @@ config =
|
||||||
]
|
]
|
||||||
(6 &second)
|
(6 &second)
|
||||||
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
|
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
|
||||||
, Run $ Com "mullvad-status" [] "" (6 &second)
|
, Run $ Com "hrt-time" ["days"] "" (60 &minute)
|
||||||
, Run XMonadLog
|
, Run XMonadLog
|
||||||
, Run $
|
, Run $
|
||||||
Weather
|
Weather
|
||||||
|
|
@ -111,9 +124,8 @@ config =
|
||||||
<> alignSep config
|
<> alignSep config
|
||||||
<> intercalate "|"
|
<> intercalate "|"
|
||||||
[ " %LFRN% "
|
[ " %LFRN% "
|
||||||
, " %mullvad-status% "
|
|
||||||
, " %battery%, %powerprofilesctl%) "
|
, " %battery%, %powerprofilesctl%) "
|
||||||
, " %hereClock% (%tomorrow%) "
|
, " %hereClock% (%tomorrow%, %hrt-time%) "
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,8 @@ 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 (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s
|
||||||
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,8 +3,10 @@
|
||||||
|
|
||||||
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
|
||||||
|
|
@ -31,9 +33,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
|
||||||
|
|
||||||
|
|
@ -46,6 +48,7 @@ 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
|
||||||
|
|
@ -77,7 +80,7 @@ myLayout =
|
||||||
$ smartSpacingWithEdge 5
|
$ smartSpacingWithEdge 5
|
||||||
$ reflectMsg . reflectHoriz
|
$ reflectMsg . reflectHoriz
|
||||||
$ SetMasterNTall
|
$ SetMasterNTall
|
||||||
$ ResizableTall 1 (1/10) (3/7) [1.2, 1, 1, 1.2]
|
$ ResizableTall 1 (1/10) (3/7) []
|
||||||
|
|
||||||
isSioyek :: Query Bool
|
isSioyek :: Query Bool
|
||||||
isSioyek = className =? "sioyek"
|
isSioyek = className =? "sioyek"
|
||||||
|
|
@ -206,21 +209,11 @@ setMasterNEventHandleHook :: Event -> X All
|
||||||
setMasterNEventHandleHook ev =
|
setMasterNEventHandleHook ev =
|
||||||
let adjustMasterCount :: X ()
|
let adjustMasterCount :: X ()
|
||||||
adjustMasterCount = do
|
adjustMasterCount = do
|
||||||
ws <- gets windowset
|
count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||||
-- Remove the floating windows in the count
|
if count <= 3 then sendMessage (SetMasterN 1)
|
||||||
let s :: Maybe (W.Stack Window)
|
else if count <= 5 then sendMessage (SetMasterN 2)
|
||||||
s = W.stack $ W.workspace $ W.current ws
|
else if count <= 7 then sendMessage (SetMasterN 3)
|
||||||
|
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
|
||||||
|
|
@ -280,6 +273,9 @@ 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 =
|
||||||
[
|
[
|
||||||
|
|
@ -319,20 +315,39 @@ 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), unGrab >> spawn fullscreen )
|
in [ ((0, xK_Print), spawn fullscreen )
|
||||||
, ((superMask .|. shiftMask, xK_3 ), unGrab >> spawn fullscreen )
|
, ((superMask .|. shiftMask, xK_3 ), spawn fullscreen )
|
||||||
, ((superMask .|. shiftMask, xK_4 ), unGrab >> spawn withSelection)
|
, ((superMask .|. shiftMask, xK_4 ), spawn withSelection)
|
||||||
, ((superMask .|. shiftMask, xK_5 ), unGrab >> spawn toFloat )
|
, ((superMask .|. shiftMask, xK_5 ), spawn toFloat )
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -351,7 +366,7 @@ keybinds =
|
||||||
|
|
||||||
-- Launcher
|
-- Launcher
|
||||||
++ (let launchFirefox = "zen"
|
++ (let launchFirefox = "zen"
|
||||||
launchDmenu = "dmenu_run -i -fn \"Iosevka-18\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10"
|
launchDmenu = "dmenu_run -i -fn \"Iosevka-14\" -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,7 +115,6 @@ in
|
||||||
[
|
[
|
||||||
addons.sponsorblock
|
addons.sponsorblock
|
||||||
addons.return-youtube-dislikes
|
addons.return-youtube-dislikes
|
||||||
addons.shinigami-eyes
|
|
||||||
addons.consent-o-matic
|
addons.consent-o-matic
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -63,13 +63,6 @@
|
||||||
# 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
|
||||||
|
|
@ -83,19 +76,4 @@
|
||||||
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, pkgs, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
|
|
@ -15,12 +15,6 @@
|
||||||
"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" ];
|
||||||
|
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
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,11 +1,8 @@
|
||||||
# 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 = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
min-free = 50 * 1024 * 1024 * 1024;
|
||||||
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
max-free = 100 * 1024 * 1024 * 1024;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.nix-daemon.serviceConfig = {
|
systemd.services.nix-daemon.serviceConfig = {
|
||||||
|
|
@ -13,4 +10,11 @@ in
|
||||||
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,14 +16,6 @@ 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,13 +53,10 @@ 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;
|
|
||||||
"browser.link.open_newwindow" = 2; # open in new tab
|
# open links in new window
|
||||||
"browser.translations.automaticallyPopup" = false;
|
# this works a lot better with xmonad where I have a bunch of windows
|
||||||
"browser.tabs.closeWindowWithLastTab" = true;
|
"browser.link.open_newwindow" = 2;
|
||||||
"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 --command $SHELL -p";
|
"," = "nix-shell -p";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -21,6 +21,10 @@
|
||||||
# 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,17 +11,10 @@
|
||||||
#
|
#
|
||||||
# Script dependencies
|
# Script dependencies
|
||||||
#
|
#
|
||||||
home.packages = [
|
home.packages = [ pkgs.vivid ];
|
||||||
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
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
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
|
||||||
command nom-build $argv
|
nom-build $argv
|
||||||
else
|
else
|
||||||
command nix-build $argv
|
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
|
||||||
command nom-shell $argv
|
nom-shell $argv
|
||||||
else
|
else
|
||||||
command nix-shell $argv
|
nix-shell $argv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
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,4 +83,7 @@ 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.IosevkaTerm
|
pkgs.nerd-fonts.iosevka
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.ghostty.settings = {
|
programs.ghostty.settings = {
|
||||||
|
|
@ -21,15 +21,13 @@ in
|
||||||
resize-overlay = "never";
|
resize-overlay = "never";
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
font-family = "IosevkaTerm NFM";
|
font-family = "Iosevka 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,9 +5,6 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
# 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;
|
||||||
|
|
@ -20,11 +17,7 @@
|
||||||
in
|
in
|
||||||
lib.mkIf patdiffCfg.enable {
|
lib.mkIf patdiffCfg.enable {
|
||||||
settings = {
|
settings = {
|
||||||
git.paging = [
|
git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
||||||
{
|
|
||||||
externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,17 +5,13 @@
|
||||||
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,
|
||||||
# https://security.stackexchange.com/a/69089
|
trust ? 5,
|
||||||
# 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; };
|
||||||
|
|
@ -31,7 +27,6 @@
|
||||||
{
|
{
|
||||||
user = "leana8959";
|
user = "leana8959";
|
||||||
hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo=";
|
hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo=";
|
||||||
trust = 5;
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
user = "vanilla-extracts";
|
user = "vanilla-extracts";
|
||||||
|
|
@ -41,6 +36,10 @@
|
||||||
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=";
|
||||||
|
|
|
||||||
62
nix/homeModules/common/kitty.nix
Normal file
62
nix/homeModules/common/kitty.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
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,7 +9,6 @@ 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 = 2_000
|
min_time = 60_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,17 +1,53 @@
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.programs.zen-browser;
|
inherit (pkgs) nur;
|
||||||
|
|
||||||
firefoxCfg = config.programs.firefox;
|
cfg = config.programs.zen-browser;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.zen-browser = {
|
programs.zen-browser = {
|
||||||
policies = firefoxCfg.policies;
|
# https://mozilla.github.io/policy-templates
|
||||||
|
# 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
|
||||||
#
|
#
|
||||||
|
|
@ -21,21 +57,92 @@ 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 = lib.mkMerge [
|
profiles.default = {
|
||||||
firefoxCfg.profiles.default
|
|
||||||
{
|
|
||||||
# Zen specific
|
|
||||||
settings = {
|
settings = {
|
||||||
|
# Zen specific
|
||||||
"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;
|
|
||||||
"zen.view.compact.toolbar-flash-popup" = true;
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
"zen.view.show-newtab-button-top" = false;
|
"browser.tabs.loadInBackground" = true;
|
||||||
"zen.view.use-single-toolbar" = false;
|
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||||
"zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs
|
"layout.css.devPixelsPerPx" = 1.1;
|
||||||
|
"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 '<nixpkgs>' -A 'wpa_supplicant')/share/doc/wpa_supplicant/wpa_supplicant.conf.example
|
# less $(nix-build --no-out-link -E '(import <nixpkgs> {}).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,10 +8,6 @@
|
||||||
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,14 +0,0 @@
|
||||||
# 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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
11
nix/overlays/calibre-no-mime.nix
Normal file
11
nix/overlays/calibre-no-mime.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
# 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
|
|
||||||
6
nix/overlays/dix.nix
Normal file
6
nix/overlays/dix.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
final: _: {
|
||||||
|
dix = sources.dix.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
||||||
|
}
|
||||||
6
nix/overlays/eepy.nix
Normal file
6
nix/overlays/eepy.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
final: _: {
|
||||||
|
eepy = sources.eepy.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
||||||
|
}
|
||||||
|
|
@ -1,20 +1,7 @@
|
||||||
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 =
|
ghostty = sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
||||||
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;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
174
nix/overlays/iosevka.nix
Normal file
174
nix/overlays/iosevka.nix
Normal file
|
|
@ -0,0 +1,174 @@
|
||||||
|
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 |]
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
# 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;
|
|
||||||
}
|
|
||||||
|
|
@ -1,147 +0,0 @@
|
||||||
# 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]
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
let
|
|
||||||
sources = import ../../npins;
|
|
||||||
in
|
|
||||||
final: _: {
|
|
||||||
npins = import sources.npins { pkgs = final; };
|
|
||||||
}
|
|
||||||
6
nix/overlays/pin-emacs28.nix
Normal file
6
nix/overlays/pin-emacs28.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
_: _: {
|
||||||
|
unsafe-emacs28 = (import sources.pin-emacs28 { }).emacs;
|
||||||
|
}
|
||||||
7
nix/overlays/pin-isabelle-2023.nix
Normal file
7
nix/overlays/pin-isabelle-2023.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
_: _: {
|
||||||
|
# Isabelle version 2023
|
||||||
|
isabelle-2023 = (import sources.pin-isabelle { }).isabelle;
|
||||||
|
}
|
||||||
8
nix/overlays/pin-wireshark.nix
Normal file
8
nix/overlays/pin-wireshark.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
let
|
||||||
|
sources = import ../../npins;
|
||||||
|
in
|
||||||
|
_: _: {
|
||||||
|
# Wireshark bug
|
||||||
|
# https://gitlab.com/wireshark/wireshark/-/issues/19574
|
||||||
|
inherit (import sources.pin-wireshark { }) wireshark;
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
fetchpatch,
|
|
||||||
stdenvNoCC,
|
stdenvNoCC,
|
||||||
lib,
|
lib,
|
||||||
}:
|
}:
|
||||||
|
|
@ -15,31 +14,6 @@ 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;
|
||||||
|
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
{
|
|
||||||
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)
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
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 = "0e08e66f48e6ba5483a7a39456a753581587151f";
|
rev = "addc8a75dcfd64d5f40516f2526210c8fc163e70";
|
||||||
hash = "sha256-ay8V35FuXF5eFvWjH87PDzMSQTRALHDRBiZNdOC3gFg=";
|
hash = "sha256-6dnZgkeG0p2O4ROtrFoG+jUmAQPWKHodKzUdVrBgcIM=";
|
||||||
}) { };
|
}) { };
|
||||||
|
|
||||||
cabalOverrides = o: {
|
cabalOverrides = o: {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
writeShellApplication,
|
writeShellApplication,
|
||||||
tmux,
|
tmux,
|
||||||
procps,
|
procps,
|
||||||
fd,
|
|
||||||
fzf,
|
fzf,
|
||||||
gnused,
|
gnused,
|
||||||
lib,
|
lib,
|
||||||
|
|
@ -43,7 +42,6 @@ let
|
||||||
tmux-sessionizer = writeShellApplication {
|
tmux-sessionizer = writeShellApplication {
|
||||||
name = "tmux-sessionizer";
|
name = "tmux-sessionizer";
|
||||||
runtimeInputs = [
|
runtimeInputs = [
|
||||||
fd
|
|
||||||
fzf
|
fzf
|
||||||
gnused
|
gnused
|
||||||
];
|
];
|
||||||
|
|
|
||||||
39
nix/packages/by-name/tokei/package.nix
Normal file
39
nix/packages/by-name/tokei/package.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
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)
|
(import ../overlays/iosevka.nix)
|
||||||
];
|
];
|
||||||
}).export
|
}).export
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,8 @@
|
||||||
*/
|
*/
|
||||||
# Generated by npins. Do not modify; will be overwritten regularly
|
# Generated by npins. Do not modify; will be overwritten regularly
|
||||||
let
|
let
|
||||||
# Backwards-compatibly make something that previously didn't take any arguments take some
|
data = builtins.fromJSON (builtins.readFile ./sources.json);
|
||||||
# The function must return an attrset, and will unfortunately be eagerly evaluated
|
version = data.version;
|
||||||
# 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 =
|
||||||
|
|
@ -28,6 +21,7 @@ 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
|
||||||
|
|
@ -54,61 +48,19 @@ 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 fetchers spec
|
mkGitSource spec
|
||||||
else if spec.type == "GitRelease" then
|
else if spec.type == "GitRelease" then
|
||||||
mkGitSource fetchers spec
|
mkGitSource spec
|
||||||
else if spec.type == "PyPi" then
|
else if spec.type == "PyPi" then
|
||||||
mkPyPiSource fetchers spec
|
mkPyPiSource spec
|
||||||
else if spec.type == "Channel" then
|
else if spec.type == "Channel" then
|
||||||
mkChannelSource fetchers spec
|
mkChannelSource spec
|
||||||
else if spec.type == "Tarball" then
|
else if spec.type == "Tarball" then
|
||||||
mkTarballSource fetchers spec
|
mkTarballSource 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
|
||||||
|
|
@ -126,26 +78,22 @@ 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
|
||||||
fetchTarball {
|
builtins.fetchTarball {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash;
|
sha256 = hash; # FIXME: check nix version & use SRI hashes
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
let
|
let
|
||||||
|
|
@ -156,8 +104,6 @@ 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 =
|
||||||
|
|
@ -172,91 +118,51 @@ 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
|
||||||
fetchGit {
|
builtins.fetchGit {
|
||||||
rev = revision;
|
rev = revision;
|
||||||
narHash = hash;
|
inherit name;
|
||||||
|
# hash = hash;
|
||||||
inherit name submodules url;
|
inherit url submodules;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkPyPiSource =
|
mkPyPiSource =
|
||||||
{ fetchurl, ... }:
|
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
fetchurl {
|
builtins.fetchurl {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkChannelSource =
|
mkChannelSource =
|
||||||
{ fetchTarball, ... }:
|
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
fetchTarball {
|
builtins.fetchTarball {
|
||||||
inherit url;
|
inherit url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkTarballSource =
|
mkTarballSource =
|
||||||
{ fetchTarball, ... }:
|
|
||||||
{
|
{
|
||||||
url,
|
url,
|
||||||
locked_url ? url,
|
locked_url ? url,
|
||||||
hash,
|
hash,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
fetchTarball {
|
builtins.fetchTarball {
|
||||||
url = locked_url;
|
url = locked_url;
|
||||||
sha256 = hash;
|
sha256 = hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
mkContainerSource =
|
sources =
|
||||||
pkgs:
|
if version == 5 then
|
||||||
{
|
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
|
||||||
pkgs.dockerTools.pullImage {
|
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`";
|
||||||
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,24 +14,7 @@
|
||||||
"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": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU="
|
"hash": "01dhrghwa7zw93cybvx4gnrskqk97b004nfxgsys0736823956la"
|
||||||
},
|
|
||||||
"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",
|
||||||
|
|
@ -47,7 +30,37 @@
|
||||||
"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": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0="
|
"hash": "13brimg7z7k9y36n4jc1pssqyw94nd8qvgfjv53z66lv4xkhin92"
|
||||||
|
},
|
||||||
|
"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",
|
||||||
|
|
@ -60,7 +73,7 @@
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa",
|
"revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa",
|
||||||
"url": null,
|
"url": null,
|
||||||
"hash": "sha256-FL0/BcE6yJhbo4AuoDnh547AE1Wx3JJq/sJf8iwby2c=",
|
"hash": "0ryb3cng4py2zrm95p5ial9w13p7w4ws0bl0lddrij1sq42kzg8l",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
|
|
@ -75,7 +88,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": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
"hash": "0g4izwn5k7qpavlk3w41a92rhnp4plr928vmrhc75041vzm3vb1l",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"ghostty-dev": {
|
"ghostty-dev": {
|
||||||
|
|
@ -87,9 +100,9 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "34eaad6fc86e086f469e81769a793be20d1e169b",
|
"revision": "45abfa91905a5dafdddb711dd9402d45947cdfbb",
|
||||||
"url": "https://github.com/ghostty-org/ghostty/archive/34eaad6fc86e086f469e81769a793be20d1e169b.tar.gz",
|
"url": "https://github.com/ghostty-org/ghostty/archive/45abfa91905a5dafdddb711dd9402d45947cdfbb.tar.gz",
|
||||||
"hash": "sha256-628LfxEPA0tiCjh6syMupdrGvVb6twhoJTtUFKDbqBQ="
|
"hash": "1pmfsxd65yva3ij2v20xb5r1hf3mx6lqr593nivnvsi345jnfh1y"
|
||||||
},
|
},
|
||||||
"hategroup-dnsbl": {
|
"hategroup-dnsbl": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -102,7 +115,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": "sha256-SZBrjIBUw687MdrbOV7WrP5IhAAtKvPL2GqdcICHNvQ=",
|
"hash": "1x1nhy0717bav35z6aid0224izmcsrg3knys64xszhslh266p429",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
|
|
@ -133,7 +146,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": "sha256-4XPDTUvV8dfuf9GzKg2/r7j7lMELRAwKKFx3ecQObeg="
|
"hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1"
|
||||||
},
|
},
|
||||||
"nil": {
|
"nil": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -146,7 +159,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": "sha256-18j8X2Nbe0Wg1+7YrWRlYzmjZ5Wq0NCVwJHJlBIw/dc="
|
"hash": "1mzx60999jciq2ax1l5ajmks6fb3cmjavn7fsyh4aysvcdgzrj6p"
|
||||||
},
|
},
|
||||||
"nix-monitored": {
|
"nix-monitored": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -159,7 +172,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": "sha256-Z8PknjkmIr/8ZCH+dmc2Pc+UltiOr7/oKg37PXuVvuU=",
|
"hash": "1rdyjmxkvyqd5blbzbwfv2b99krx6rkpdzi1ckyby8i676gf9hv7",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
|
|
@ -171,9 +184,9 @@
|
||||||
},
|
},
|
||||||
"branch": "master",
|
"branch": "master",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca",
|
"revision": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
||||||
"url": "https://github.com/NixOS/nixos-hardware/archive/9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca.tar.gz",
|
"url": "https://github.com/NixOS/nixos-hardware/archive/40b1a28dce561bea34858287fbb23052c3ee63fe.tar.gz",
|
||||||
"hash": "sha256-3ymIZ8s3+hu7sDl/Y48o6bwMxorfKrmn97KuWiw1vjY="
|
"hash": "197v6xxdq5j4w8kil6q21ij9x6ng8z6j72brkwwjim23798c2c4n"
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -188,22 +201,6 @@
|
||||||
"url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz",
|
"url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz",
|
||||||
"hash": "1h3g9iyfj0xwz7i4ywcxjpp3p9xk7ahp563m0h1i25697sc2lrji"
|
"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",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
@ -213,9 +210,9 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "bea55329cc806cfe3b826f7baab0503fd6b6892f",
|
"revision": "68e3e935ba29960813ab1ecf2852a0ecbe8d5946",
|
||||||
"url": "https://github.com/nix-community/nur/archive/bea55329cc806cfe3b826f7baab0503fd6b6892f.tar.gz",
|
"url": "https://github.com/nix-community/nur/archive/68e3e935ba29960813ab1ecf2852a0ecbe8d5946.tar.gz",
|
||||||
"hash": "sha256-B8+OiD8kYXtFc4vJc9+d7q8+MOic8VYR0G8wbSHjuSc="
|
"hash": "02pmkhd6ram43qnmirh3z46w1l31rmm16mhkx36jaxhpnzlwgr2i"
|
||||||
},
|
},
|
||||||
"pin-emacs28": {
|
"pin-emacs28": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -228,7 +225,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": "sha256-r+GZkJ5HiC3HIGiGpTfw5MUuAYuPOj+k0YPjPzYlF6U=",
|
"hash": "198p4lv3zqw3s6j3yflgic0jxig4y0vsb1k8433jv227ks89kqdg",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-florashell": {
|
"pin-florashell": {
|
||||||
|
|
@ -242,7 +239,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": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
|
"hash": "0klkpy7ah033y3cwj51a0l96lwmkqqvwgfv3kid4z9x5g2rqr0l5",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-fourmolu": {
|
"pin-fourmolu": {
|
||||||
|
|
@ -256,7 +253,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": "sha256-4bOckWvBVfncvshtd2JdC+W3XYkyS4xmcfX7uAJnE6k=",
|
"hash": "1a8kcw1biyzmf5k8qjrji5fvgr8bbmi7fvf8pvfgjmf1df8rrcz1",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-isabelle": {
|
"pin-isabelle": {
|
||||||
|
|
@ -270,7 +267,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": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
"hash": "1q7y5ygr805l5axcjhn0rn3wj8zrwbrr0c6a8xd981zh8iccmx0p",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-masna3shell": {
|
"pin-masna3shell": {
|
||||||
|
|
@ -284,7 +281,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": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
|
"hash": "10hpb1aw884k3zzcy1mhf47dqvfagiyx7kr6hg0p5xcwg04mkx8x",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-necro-man-nixpkgs": {
|
"pin-necro-man-nixpkgs": {
|
||||||
|
|
@ -298,7 +295,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": "sha256-cZTdVSg1Lzyv/j/H333yliE3E8MnIo1ZsclrLtnQsfg=",
|
"hash": "1y5is3cjwsy9n5cqs8i7qc9kf8cny9yxzirzzspkqbrm51axv53i",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-vim-tw": {
|
"pin-vim-tw": {
|
||||||
|
|
@ -312,7 +309,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": "sha256-BOuI+BWpOvmNcNc+HXMEQmfxfAX4kadqLvWC6+FsuoQ=",
|
"hash": "115sdkhyp0pm5rmag4gq0myg2rs20irisgnpf26zjfm92pw8isq4",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"pin-wireshark": {
|
"pin-wireshark": {
|
||||||
|
|
@ -326,7 +323,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": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
|
"hash": "0bjqgsprq9fgl5yh58dk59xmchi4dajq3sf5i447q02dbiasjsil",
|
||||||
"frozen": true
|
"frozen": true
|
||||||
},
|
},
|
||||||
"url-eater": {
|
"url-eater": {
|
||||||
|
|
@ -340,7 +337,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": "sha256-lS9M7v8w7ruYz/ylom0ZIfK45vkFZQ3X98a/Is8BOTY="
|
"hash": "0dir077j5gy6yzbhsr85z7kbiwi135ns59gwrycbpvihzzp4qbwm"
|
||||||
},
|
},
|
||||||
"wallpapers": {
|
"wallpapers": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -352,9 +349,9 @@
|
||||||
},
|
},
|
||||||
"branch": "mistress",
|
"branch": "mistress",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "2ed11d34f02d86795f6d08bb3ec23e341a46a788",
|
"revision": "ee12113e53e1b9b80638b6963a5b7075c3b81e93",
|
||||||
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/2ed11d34f02d86795f6d08bb3ec23e341a46a788.tar.gz",
|
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/ee12113e53e1b9b80638b6963a5b7075c3b81e93.tar.gz",
|
||||||
"hash": "sha256-fE2uKYi3yWV6h6i4ZXifux9vCOnXdYTJ7kWJUISQ3B4="
|
"hash": "1pv17pvc60jkr8y7j8g3q0wmy5qgsjxsq1gv23yb3gf52g4z98sk"
|
||||||
},
|
},
|
||||||
"wired-notify": {
|
"wired-notify": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -367,7 +364,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": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0="
|
"hash": "07gaizslvsiihvfrrbcdz0b2c04llsfqaji03ls55p1zbm41w6f3"
|
||||||
},
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
|
|
@ -378,10 +375,10 @@
|
||||||
},
|
},
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "0fac05e4b604c3304e7710a95572e78350fe9968",
|
"revision": "350c729b261e6f5529460140a5f0943dd4c5e156",
|
||||||
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/0fac05e4b604c3304e7710a95572e78350fe9968.tar.gz",
|
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/350c729b261e6f5529460140a5f0943dd4c5e156.tar.gz",
|
||||||
"hash": "sha256-jejW3u1bkqz0ObXZeiZqLQNwC7+MXb8/KMwf3VPQpRI="
|
"hash": "1fbx200712rdz3b8c4acrz0ib8fd636bvsiyv4m31xqpfqpj3kza"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 7
|
"version": 5
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
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