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-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"cornelis": { "branch": "master", "commit": "deda7eb399efe94cc49c645da7b6f94780fe0c19" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "64463022a1f2ff1318ab22a2ea4125ed9313a483" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "130beacf8a51f00aede9c31064c749136679a321" },
|
||||
|
|
@ -22,7 +21,6 @@
|
|||
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "81e676d3203c9eb6e4c0ccf1eba1679296ef923f" },
|
||||
"nvim-dap": { "branch": "master", "commit": "818cd8787a77a97703eb1d9090543a374f79a9ac" },
|
||||
"nvim-hs.vim": { "branch": "develop", "commit": "d4a6b7278ae6a1fdc64e300c3ebc1e24719af342" },
|
||||
"nvim-jdtls": { "branch": "master", "commit": "f73731b543f5971e0da9665eb1d7ceffe1fde71f" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" },
|
||||
"nvim-metals": { "branch": "main", "commit": "90dadd67bb1069ce1ba2a4dabf4e45da2807ba80" },
|
||||
|
|
@ -41,6 +39,5 @@
|
|||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
|
||||
"vim-textobj-user": { "branch": "master", "commit": "41a675ddbeefd6a93664a4dc52f302fe3086a933" },
|
||||
"vimtex": { "branch": "master", "commit": "2e1bbabeb2c34bb17d7bc8cfdf8f95b16dd0db0c" }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,19 +120,6 @@ local plugins = {
|
|||
lazy = false,
|
||||
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",
|
||||
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")
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@ local servers = {
|
|||
["nil"] = { formatting = { command = { "nixfmt" } } },
|
||||
},
|
||||
},
|
||||
|
||||
zls = {},
|
||||
}
|
||||
|
||||
vim.diagnostic.config {
|
||||
|
|
|
|||
|
|
@ -52,9 +52,6 @@ telescope.setup {
|
|||
live_grep = {
|
||||
layout_config = { height = 0.7 },
|
||||
},
|
||||
buffers = {
|
||||
sort_lastused = true,
|
||||
},
|
||||
resume = {
|
||||
initial_mode = "normal",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
let
|
||||
sources = import ./npins;
|
||||
in
|
||||
{
|
||||
sources ? import ./npins,
|
||||
}:
|
||||
{
|
||||
# for repl sessions
|
||||
inherit sources;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ in
|
|||
|
||||
# use lix everywhere and wrap it with nom
|
||||
../overlays/lix.nix
|
||||
../overlays/nix-monitored.nix
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
# Protect my system from running out of storage or memory
|
||||
let
|
||||
totalStorage = 500;
|
||||
in
|
||||
{
|
||||
# 500GB Storage
|
||||
nix.settings = {
|
||||
min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
||||
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
||||
min-free = 50 * 1024 * 1024 * 1024;
|
||||
max-free = 100 * 1024 * 1024 * 1024;
|
||||
};
|
||||
|
||||
systemd.services.nix-daemon.serviceConfig = {
|
||||
|
|
@ -13,4 +11,11 @@ in
|
|||
MemoryMax = "90%";
|
||||
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
|
||||
../overlays/lix.nix
|
||||
../overlays/nix-monitored.nix
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -54,16 +54,21 @@ in
|
|||
../overlays/wired-notify.nix
|
||||
../overlays/wallpapers.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/npins.nix
|
||||
../overlays/cornelis.nix
|
||||
|
||||
../overlays/iosevka
|
||||
../overlays/iosevka.nix
|
||||
../packages/overlay.nix
|
||||
|
||||
./vanadium/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
|
||||
../overlays/lix.nix
|
||||
../overlays/nix-monitored.nix
|
||||
|
|
@ -95,7 +100,6 @@ in
|
|||
./vanadium/nixos/input.nix
|
||||
|
||||
./vanadium/nixos/misc.nix
|
||||
./vanadium/nixos/remote-builders.nix
|
||||
|
||||
./vanadium/nixos/display.nix
|
||||
./vanadium/nixos/gui.nix
|
||||
|
|
@ -116,7 +120,6 @@ in
|
|||
# ../nixosModules/extra/secure_dns.nix
|
||||
../nixosModules/extra/zram.nix
|
||||
../nixosModules/extra/leana.nix
|
||||
../nixosModules/extra/lean-nixos.nix
|
||||
|
||||
#
|
||||
# Extern modules
|
||||
|
|
@ -173,6 +176,7 @@ in
|
|||
../homeModules/common/fzf.nix
|
||||
../homeModules/common/git.nix
|
||||
../homeModules/common/gpg.nix
|
||||
../homeModules/common/kitty.nix
|
||||
../homeModules/common/ghostty.nix
|
||||
../homeModules/common/leana.nix
|
||||
../homeModules/common/locale.nix
|
||||
|
|
|
|||
|
|
@ -27,14 +27,10 @@
|
|||
pkgs.taplo # toml
|
||||
pkgs.vscode-langservers-extracted # JSON etc
|
||||
pkgs.yaml-language-server # yaml
|
||||
pkgs.cornelis # agda
|
||||
|
||||
# bash
|
||||
pkgs.shfmt
|
||||
pkgs.nodePackages.bash-language-server
|
||||
|
||||
# ghc
|
||||
pkgs.hs-speedscope
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
|
|
@ -75,7 +71,6 @@
|
|||
"https://haskell-language-server.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
"https://cache.iog.io"
|
||||
"https://ghostty.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"ghc-nix.cachix.org-1:ziC/I4BPqeA4VbtOFpFpu6D1t6ymFvRWke/lc2+qjcg="
|
||||
|
|
@ -83,7 +78,6 @@
|
|||
"haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"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.return-youtube-dislikes
|
||||
addons.shinigami-eyes
|
||||
addons.consent-o-matic
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -17,46 +17,6 @@
|
|||
monospace = [ "Iosevka" ];
|
||||
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 = [
|
||||
pkgs.noto-fonts
|
||||
|
|
@ -66,12 +26,12 @@
|
|||
pkgs.noto-fonts-color-emoji
|
||||
pkgs.noto-fonts-emoji-blob-bin
|
||||
pkgs.ubuntu-classic
|
||||
pkgs.Iosevka
|
||||
pkgs.iosevka
|
||||
];
|
||||
|
||||
home.file = {
|
||||
".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 = {
|
||||
"xmonad".source = "${./xmonad}";
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@
|
|||
home.packages = [
|
||||
pkgs.ghc # my favorite calculator
|
||||
|
||||
pkgs.lsr # fast ls with io_uring
|
||||
pkgs.nmap
|
||||
pkgs.stow
|
||||
pkgs.zip
|
||||
|
|
@ -42,11 +41,13 @@
|
|||
pkgs.macchanger
|
||||
|
||||
# The file picker is not ergonomic enough, sadly
|
||||
pkgs.helix
|
||||
# pkgs.helix
|
||||
# pkgs.nushell
|
||||
|
||||
pkgs.ruler
|
||||
pkgs.mini-calc
|
||||
pkgs.eepy
|
||||
pkgs.zbar
|
||||
|
||||
# pdf
|
||||
pkgs.poppler-utils # pdfseparate, pdfunite
|
||||
|
|
@ -68,32 +69,49 @@
|
|||
pkgs.onefetch
|
||||
pkgs.just
|
||||
|
||||
pkgs.nixfmt-rfc-style # formatter
|
||||
pkgs.nurl # fetcher made easy
|
||||
pkgs.nix-diff # debug cache miss
|
||||
# nix tools
|
||||
# # Alejandra handles inline comments poorly
|
||||
# # https://github.com/kamadorueda/alejandra/issues/429
|
||||
# pkgs.alejandra
|
||||
pkgs.nixfmt-rfc-style
|
||||
pkgs.nurl
|
||||
pkgs.dix
|
||||
pkgs.niv
|
||||
pkgs.npins
|
||||
pkgs.nix-tree # analyze closure
|
||||
pkgs.nix-tree
|
||||
pkgs.nix-output-monitor
|
||||
pkgs.nh
|
||||
|
||||
# productivity / media
|
||||
pkgs.evolution
|
||||
pkgs.libreoffice
|
||||
pkgs.calibre
|
||||
pkgs.foliate # TODO: replace calibre with foliate
|
||||
# pkgs.rawtherapee
|
||||
pkgs.digikam
|
||||
pkgs.gimp
|
||||
pkgs.easyeffects
|
||||
pkgs.nautilus
|
||||
pkgs.sushi # space bar previewer
|
||||
# pkgs.blender
|
||||
# pkgs.inkscape
|
||||
# pkgs.aseprite
|
||||
# pkgs.xournalpp
|
||||
pkgs.picard # music tagger
|
||||
pkgs.mousai
|
||||
pkgs.nicotine-plus
|
||||
pkgs.picard # music tagger
|
||||
pkgs.qbittorrent
|
||||
pkgs.mkvtoolnix
|
||||
pkgs.mousai
|
||||
pkgs.localsend # file share with iOS
|
||||
pkgs.minder # mindmap tool
|
||||
pkgs.mkvtoolnix
|
||||
|
||||
# social
|
||||
pkgs.iamb
|
||||
pkgs.discord # keep the app for video calls
|
||||
pkgs.signal-desktop
|
||||
pkgs.tuba # mastodon GUI client
|
||||
pkgs.emoji-picker-rs
|
||||
pkgs.telegram-desktop # for archlinux china
|
||||
|
||||
# wm utilities
|
||||
pkgs.xbrightness
|
||||
|
|
@ -115,6 +133,10 @@
|
|||
enable = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
emacs = {
|
||||
enable = true;
|
||||
package = pkgs.unsafe-emacs28;
|
||||
};
|
||||
lazygit.enable = true;
|
||||
fish = {
|
||||
enable = true;
|
||||
|
|
@ -153,7 +175,18 @@
|
|||
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 = {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
lib.makeBinPath [
|
||||
ghc
|
||||
pkgs.libnotify
|
||||
pkgs.mullvad-status
|
||||
pkgs.hrt-time
|
||||
]
|
||||
}"
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -65,7 +65,20 @@ config =
|
|||
, Run $
|
||||
Com
|
||||
"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)
|
||||
|
|
@ -89,7 +102,7 @@ config =
|
|||
]
|
||||
(6 &second)
|
||||
, Run $ Com "powerprofilesctl" ["get"] "" (6 &second)
|
||||
, Run $ Com "mullvad-status" [] "" (6 &second)
|
||||
, Run $ Com "hrt-time" ["days"] "" (60 &minute)
|
||||
, Run XMonadLog
|
||||
, Run $
|
||||
Weather
|
||||
|
|
@ -111,9 +124,8 @@ config =
|
|||
<> alignSep config
|
||||
<> intercalate "|"
|
||||
[ " %LFRN% "
|
||||
, " %mullvad-status% "
|
||||
, " %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
|
||||
in (fmap . fmap . fmap) SetMasterNTall . runLayout ws'
|
||||
|
||||
handleMessage (SetMasterNTall l@(ResizableTall n0 d f s)) mess
|
||||
| Just (SetMasterN n) <- fromMessage mess = pure $
|
||||
if n0 /= n then Just $ SetMasterNTall $ ResizableTall n d f s
|
||||
else Nothing
|
||||
handleMessage (SetMasterNTall l@(ResizableTall _n0 d f s)) mess
|
||||
| Just (SetMasterN n) <- fromMessage mess = pure $ Just $ SetMasterNTall $ ResizableTall n d f s
|
||||
| otherwise = (fmap . fmap) SetMasterNTall . handleMessage l $ mess
|
||||
|
||||
description (SetMasterNTall l) = description l
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@
|
|||
|
||||
import XMonad
|
||||
import XMonad.Actions.CopyWindow
|
||||
import XMonad.Actions.Navigation2D
|
||||
import XMonad.Actions.Submap
|
||||
import XMonad.Actions.SwapWorkspaces
|
||||
import XMonad.Actions.Warp
|
||||
import XMonad.Hooks.DynamicLog
|
||||
import XMonad.Hooks.EwmhDesktops
|
||||
import XMonad.Hooks.InsertPosition
|
||||
|
|
@ -31,9 +33,9 @@ import XMonad.Util.NamedScratchpad
|
|||
import XMonad.Util.SpawnOnce
|
||||
|
||||
import Data.Char.Greek
|
||||
import qualified Data.Map.Strict as M
|
||||
import Data.Ratio
|
||||
import Data.Semigroup
|
||||
import qualified Data.Map.Strict as M
|
||||
import System.Posix
|
||||
import Graphics.X11.ExtraTypes.XF86
|
||||
|
||||
|
|
@ -46,6 +48,7 @@ main =
|
|||
$ withSB xmobarConfig . docks
|
||||
$ setEwmhActivateHook myActivateHook
|
||||
$ ewmhFullscreen . ewmh
|
||||
$ withNavigation2DConfig def
|
||||
$ def
|
||||
{ modMask = superMask
|
||||
, borderWidth = 5
|
||||
|
|
@ -77,7 +80,7 @@ myLayout =
|
|||
$ smartSpacingWithEdge 5
|
||||
$ reflectMsg . reflectHoriz
|
||||
$ SetMasterNTall
|
||||
$ ResizableTall 1 (1/10) (3/7) [1.2, 1, 1, 1.2]
|
||||
$ ResizableTall 1 (1/10) (3/7) []
|
||||
|
||||
isSioyek :: Query Bool
|
||||
isSioyek = className =? "sioyek"
|
||||
|
|
@ -206,21 +209,11 @@ setMasterNEventHandleHook :: Event -> X All
|
|||
setMasterNEventHandleHook ev =
|
||||
let adjustMasterCount :: X ()
|
||||
adjustMasterCount = do
|
||||
ws <- gets windowset
|
||||
-- Remove the floating windows in the count
|
||||
let s :: Maybe (W.Stack Window)
|
||||
s = W.stack $ W.workspace $ W.current ws
|
||||
|
||||
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)
|
||||
count <- gets $ length . W.integrate' . W.stack . W.workspace . W.current . windowset
|
||||
if count <= 3 then sendMessage (SetMasterN 1)
|
||||
else if count <= 5 then sendMessage (SetMasterN 2)
|
||||
else if count <= 7 then sendMessage (SetMasterN 3)
|
||||
else pure ()
|
||||
in do
|
||||
case ev of
|
||||
MapRequestEvent{} -> adjustMasterCount
|
||||
|
|
@ -280,6 +273,9 @@ removedKeybinds =
|
|||
++ [ (superMask , 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 =
|
||||
[
|
||||
|
|
@ -319,20 +315,39 @@ keybinds =
|
|||
, submap $ M.fromList
|
||||
[ ((0, xK_t), withFocused $ windows . W.sink)
|
||||
, ((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
|
||||
++ (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"
|
||||
toFloat = "maim -u -s -b 5 -o | feh --auto-zoom -"
|
||||
in [ ((0, xK_Print), unGrab >> spawn fullscreen )
|
||||
, ((superMask .|. shiftMask, xK_3 ), unGrab >> spawn fullscreen )
|
||||
, ((superMask .|. shiftMask, xK_4 ), unGrab >> spawn withSelection)
|
||||
, ((superMask .|. shiftMask, xK_5 ), unGrab >> spawn toFloat )
|
||||
in [ ((0, xK_Print), spawn fullscreen )
|
||||
, ((superMask .|. shiftMask, xK_3 ), spawn fullscreen )
|
||||
, ((superMask .|. shiftMask, xK_4 ), spawn withSelection)
|
||||
, ((superMask .|. shiftMask, xK_5 ), spawn toFloat )
|
||||
]
|
||||
)
|
||||
|
||||
|
|
@ -351,7 +366,7 @@ keybinds =
|
|||
|
||||
-- Launcher
|
||||
++ (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"
|
||||
in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" )
|
||||
, ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" )
|
||||
|
|
|
|||
|
|
@ -115,7 +115,6 @@ in
|
|||
[
|
||||
addons.sponsorblock
|
||||
addons.return-youtube-dislikes
|
||||
addons.shinigami-eyes
|
||||
addons.consent-o-matic
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -63,13 +63,6 @@
|
|||
# This is the fascist one, just block it because I can't tell
|
||||
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
|
||||
0.0.0.0 linkedin.com
|
||||
0.0.0.0 www.linkedin.com
|
||||
|
|
@ -83,19 +76,4 @@
|
|||
services.mullvad-vpn.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";
|
||||
|
||||
|
|
@ -15,12 +15,6 @@
|
|||
"pcie_aspm=off"
|
||||
];
|
||||
|
||||
boot.plymouth = {
|
||||
enable = true;
|
||||
themePackages = [ pkgs.plymouth-blahaj-theme ];
|
||||
theme = "blahaj";
|
||||
};
|
||||
|
||||
# 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
|
||||
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
|
||||
let
|
||||
totalStorage = 930;
|
||||
in
|
||||
{
|
||||
nix.settings = {
|
||||
min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024;
|
||||
max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024;
|
||||
min-free = 50 * 1024 * 1024 * 1024;
|
||||
max-free = 100 * 1024 * 1024 * 1024;
|
||||
};
|
||||
|
||||
systemd.services.nix-daemon.serviceConfig = {
|
||||
|
|
@ -13,4 +10,11 @@ in
|
|||
MemoryMax = "90%";
|
||||
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
|
||||
];
|
||||
|
||||
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:
|
||||
# pinned branch of https://github.com/astrand/xclip/tree/xerror
|
||||
# use this until #43 gets resolved properly
|
||||
|
|
|
|||
|
|
@ -53,13 +53,10 @@ in
|
|||
"browser.tabs.loadInBackground" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||
"layout.css.devPixelsPerPx" = 1.1;
|
||||
"browser.startup.page" = 1;
|
||||
"browser.link.open_newwindow" = 2; # open in new tab
|
||||
"browser.translations.automaticallyPopup" = false;
|
||||
"browser.tabs.closeWindowWithLastTab" = true;
|
||||
"general.smoothScroll" = false; # makes me dizzy
|
||||
"accessibility.typeaheadfind" = true; # type to find
|
||||
"media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = true;
|
||||
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
programs.fish = {
|
||||
shellAbbrs = lib.mkMerge [
|
||||
(lib.mkIf pkgs.stdenv.isLinux {
|
||||
"," = "nix-shell --command $SHELL -p";
|
||||
"," = "nix-shell -p";
|
||||
})
|
||||
];
|
||||
|
||||
|
|
@ -21,6 +21,10 @@
|
|||
# idiot protection
|
||||
chmod = "chmod --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
|
||||
#
|
||||
home.packages = [
|
||||
pkgs.nix-output-monitor # pretty ui for shells
|
||||
];
|
||||
home.packages = [ pkgs.vivid ];
|
||||
programs = {
|
||||
fd.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
|
||||
if type -q nom-build
|
||||
command nom-build $argv
|
||||
nom-build $argv
|
||||
else
|
||||
command nix-build $argv
|
||||
nix-build $argv
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
function nix-shell
|
||||
if type -q nom-shell
|
||||
command nom-shell $argv
|
||||
nom-shell $argv
|
||||
else
|
||||
command nix-shell $argv
|
||||
nix-shell $argv
|
||||
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
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ in
|
|||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
pkgs.nerd-fonts.IosevkaTerm
|
||||
pkgs.nerd-fonts.iosevka
|
||||
];
|
||||
|
||||
programs.ghostty.settings = {
|
||||
|
|
@ -21,15 +21,13 @@ in
|
|||
resize-overlay = "never";
|
||||
|
||||
# Fonts
|
||||
font-family = "IosevkaTerm NFM";
|
||||
font-family = "Iosevka NFM";
|
||||
adjust-cursor-thickness = 2;
|
||||
keybind = [
|
||||
"ctrl+shift+==increase_font_size:1"
|
||||
"ctrl+-=decrease_font_size:1"
|
||||
];
|
||||
|
||||
mouse-hide-while-typing = true;
|
||||
|
||||
# Theme
|
||||
background = "#fdf6e3";
|
||||
foreground = "#073642";
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@
|
|||
}:
|
||||
{
|
||||
# git plugins
|
||||
programs.git = {
|
||||
lfs.enable = true;
|
||||
};
|
||||
programs.patdiff = {
|
||||
enable = lib.mkDefault true;
|
||||
enableGitIntegration = lib.mkDefault true;
|
||||
|
|
@ -20,11 +17,7 @@
|
|||
in
|
||||
lib.mkIf patdiffCfg.enable {
|
||||
settings = {
|
||||
git.paging = [
|
||||
{
|
||||
externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
||||
}
|
||||
];
|
||||
git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -5,17 +5,13 @@
|
|||
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 =
|
||||
let
|
||||
fromUrl =
|
||||
{
|
||||
url,
|
||||
hash,
|
||||
# https://security.stackexchange.com/a/69089
|
||||
# One lower than ultimate (introducer in the web of trust) is good enough.
|
||||
trust ? 4,
|
||||
trust ? 5,
|
||||
}:
|
||||
{
|
||||
source = pkgs.fetchurl { inherit url hash; };
|
||||
|
|
@ -31,7 +27,6 @@
|
|||
{
|
||||
user = "leana8959";
|
||||
hash = "sha256-Y+v/8bLkyUIe4vjToChQP3ChPxRV/DqI72OTsx6F0oo=";
|
||||
trust = 5;
|
||||
}
|
||||
{
|
||||
user = "vanilla-extracts";
|
||||
|
|
@ -41,6 +36,10 @@
|
|||
user = "jappeace";
|
||||
hash = "sha256-wJ4hiE7M7dcEMaE8waNZEi+tybpVIsFzoeDJhIIaLhk=";
|
||||
}
|
||||
{
|
||||
user = "gautaz";
|
||||
hash = "sha256-j0I9l8uKfzKNrc2qveFi5mkRppxL36+BUEqvFPs6vqA=";
|
||||
}
|
||||
{
|
||||
user = "confusedkernel";
|
||||
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
|
||||
{
|
||||
home.packages = lib.mkIf cfg.enable [
|
||||
pkgs.zbar
|
||||
pkgs.pwgen
|
||||
pkgs.diceware
|
||||
];
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ style = "blue"
|
|||
|
||||
#################### Right hand side ####################
|
||||
[cmd_duration]
|
||||
min_time = 2_000
|
||||
min_time = 60_000
|
||||
show_milliseconds = true
|
||||
style = 'blue'
|
||||
format = '([$duration]($style) )'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.Iosevka ];
|
||||
home.packages = [ pkgs.iosevka ];
|
||||
services.wired = {
|
||||
config = "${./wired.ron}";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,17 +1,53 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.programs.zen-browser;
|
||||
inherit (pkgs) nur;
|
||||
|
||||
firefoxCfg = config.programs.firefox;
|
||||
cfg = config.programs.zen-browser;
|
||||
in
|
||||
{
|
||||
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)
|
||||
# https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences
|
||||
#
|
||||
|
|
@ -21,20 +57,91 @@ in
|
|||
# - click the buttons
|
||||
# - diff it
|
||||
# diff .zen/default/prefs.js{.bk,}
|
||||
profiles.default = lib.mkMerge [
|
||||
firefoxCfg.profiles.default
|
||||
{
|
||||
profiles.default = {
|
||||
settings = {
|
||||
# Zen specific
|
||||
settings = {
|
||||
"zen.theme.content-element-separation" = 0; # Remove "borders" around window
|
||||
"zen.tabs.show-newtab-vertical" = false;
|
||||
"zen.view.compact.toolbar-flash-popup" = true;
|
||||
"zen.view.show-newtab-button-top" = false;
|
||||
"zen.view.use-single-toolbar" = false;
|
||||
"zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs
|
||||
};
|
||||
}
|
||||
];
|
||||
"zen.theme.content-element-separation" = 0; # Remove "borders" around window
|
||||
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.tabs.loadInBackground" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||
"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 =
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# This loads the list of networks as a NixOS wpa_supplicant compatible attrset
|
||||
#
|
||||
# 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
|
||||
sources = import ../../npins;
|
||||
lib = import (sources.nixpkgs + "/lib");
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@
|
|||
package = lib.mkDefault pkgs.nix;
|
||||
|
||||
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
|
||||
min-free = lib.mkDefault (5 * 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
|
||||
sources = import ../../npins;
|
||||
in
|
||||
final: prev:
|
||||
let
|
||||
inherit (final) lib;
|
||||
in
|
||||
{
|
||||
final: prev: {
|
||||
# Dev version of ghostty, "tip"
|
||||
ghostty =
|
||||
let
|
||||
shortRev = lib.substring 0 8 sources.ghostty-dev.revision;
|
||||
in
|
||||
# NOTE:
|
||||
# ghostty-dev internally builds a derivation used as a cache.
|
||||
# Overriding the pname would cause cache mismatch.
|
||||
sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override {
|
||||
revision = shortRev;
|
||||
};
|
||||
ghostty = sources.ghostty-dev.asFlake.packages.${final.stdenv.hostPlatform.system}.default;
|
||||
}
|
||||
|
|
|
|||
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,
|
||||
fetchpatch,
|
||||
stdenvNoCC,
|
||||
lib,
|
||||
}:
|
||||
|
|
@ -15,31 +14,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
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
|
||||
preferLocalBuild = true;
|
||||
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";
|
||||
owner = "leana8959";
|
||||
repo = "ruler";
|
||||
rev = "0e08e66f48e6ba5483a7a39456a753581587151f";
|
||||
hash = "sha256-ay8V35FuXF5eFvWjH87PDzMSQTRALHDRBiZNdOC3gFg=";
|
||||
rev = "addc8a75dcfd64d5f40516f2526210c8fc163e70";
|
||||
hash = "sha256-6dnZgkeG0p2O4ROtrFoG+jUmAQPWKHodKzUdVrBgcIM=";
|
||||
}) { };
|
||||
|
||||
cabalOverrides = o: {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
writeShellApplication,
|
||||
tmux,
|
||||
procps,
|
||||
fd,
|
||||
fzf,
|
||||
gnused,
|
||||
lib,
|
||||
|
|
@ -43,7 +42,6 @@ let
|
|||
tmux-sessionizer = writeShellApplication {
|
||||
name = "tmux-sessionizer";
|
||||
runtimeInputs = [
|
||||
fd
|
||||
fzf
|
||||
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 {
|
||||
overlays = map scopeOverlay [
|
||||
(import ./overlay.nix)
|
||||
(import ../overlays/iosevka)
|
||||
(import ../overlays/iosevka.nix)
|
||||
];
|
||||
}).export
|
||||
|
|
|
|||
|
|
@ -9,15 +9,8 @@
|
|||
*/
|
||||
# Generated by npins. Do not modify; will be overwritten regularly
|
||||
let
|
||||
# Backwards-compatibly make something that previously didn't take any arguments take some
|
||||
# The function must return an attrset, and will unfortunately be eagerly evaluated
|
||||
# Same thing, but it catches eval errors on the default argument so that one may still call it with other arguments
|
||||
mkFunctor =
|
||||
fn:
|
||||
let
|
||||
e = builtins.tryEval (fn { });
|
||||
in
|
||||
(if e.success then e.value else { error = fn { }; }) // { __functor = _self: fn; };
|
||||
data = builtins.fromJSON (builtins.readFile ./sources.json);
|
||||
version = data.version;
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
|
||||
range =
|
||||
|
|
@ -28,6 +21,7 @@ let
|
|||
|
||||
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
|
||||
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
|
||||
concatMapStrings = f: list: concatStrings (map f list);
|
||||
concatStrings = builtins.concatStringsSep "";
|
||||
|
||||
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
|
||||
|
|
@ -54,61 +48,19 @@ let
|
|||
|
||||
mkSource =
|
||||
name: spec:
|
||||
{
|
||||
pkgs ? null,
|
||||
}:
|
||||
assert spec ? type;
|
||||
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 =
|
||||
if spec.type == "Git" then
|
||||
mkGitSource fetchers spec
|
||||
mkGitSource spec
|
||||
else if spec.type == "GitRelease" then
|
||||
mkGitSource fetchers spec
|
||||
mkGitSource spec
|
||||
else if spec.type == "PyPi" then
|
||||
mkPyPiSource fetchers spec
|
||||
mkPyPiSource spec
|
||||
else if spec.type == "Channel" then
|
||||
mkChannelSource fetchers spec
|
||||
mkChannelSource spec
|
||||
else if spec.type == "Tarball" then
|
||||
mkTarballSource fetchers spec
|
||||
else if spec.type == "Container" then
|
||||
mkContainerSource pkgs spec
|
||||
mkTarballSource spec
|
||||
else
|
||||
builtins.throw "Unknown source type ${spec.type}";
|
||||
in
|
||||
|
|
@ -126,26 +78,22 @@ let
|
|||
};
|
||||
|
||||
mkGitSource =
|
||||
{
|
||||
fetchTarball,
|
||||
fetchGit,
|
||||
...
|
||||
}:
|
||||
{
|
||||
repository,
|
||||
revision,
|
||||
url ? null,
|
||||
submodules,
|
||||
hash,
|
||||
branch ? null,
|
||||
...
|
||||
}:
|
||||
assert repository ? type;
|
||||
# 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
|
||||
if url != null && !submodules then
|
||||
fetchTarball {
|
||||
builtins.fetchTarball {
|
||||
inherit url;
|
||||
sha256 = hash;
|
||||
sha256 = hash; # FIXME: check nix version & use SRI hashes
|
||||
}
|
||||
else
|
||||
let
|
||||
|
|
@ -156,8 +104,6 @@ let
|
|||
"https://github.com/${repository.owner}/${repository.repo}.git"
|
||||
else if repository.type == "GitLab" then
|
||||
"${repository.server}/${repository.repo_path}.git"
|
||||
else if repository.type == "Forgejo" then
|
||||
"${repository.server}/${repository.owner}/${repository.repo}.git"
|
||||
else
|
||||
throw "Unrecognized repository type ${repository.type}";
|
||||
urlToName =
|
||||
|
|
@ -172,91 +118,51 @@ let
|
|||
"${if matched == null then "source" else builtins.head matched}${appendShort}";
|
||||
name = urlToName url revision;
|
||||
in
|
||||
fetchGit {
|
||||
builtins.fetchGit {
|
||||
rev = revision;
|
||||
narHash = hash;
|
||||
|
||||
inherit name submodules url;
|
||||
inherit name;
|
||||
# hash = hash;
|
||||
inherit url submodules;
|
||||
};
|
||||
|
||||
mkPyPiSource =
|
||||
{ fetchurl, ... }:
|
||||
{
|
||||
url,
|
||||
hash,
|
||||
...
|
||||
}:
|
||||
fetchurl {
|
||||
builtins.fetchurl {
|
||||
inherit url;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
mkChannelSource =
|
||||
{ fetchTarball, ... }:
|
||||
{
|
||||
url,
|
||||
hash,
|
||||
...
|
||||
}:
|
||||
fetchTarball {
|
||||
builtins.fetchTarball {
|
||||
inherit url;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
mkTarballSource =
|
||||
{ fetchTarball, ... }:
|
||||
{
|
||||
url,
|
||||
locked_url ? url,
|
||||
hash,
|
||||
...
|
||||
}:
|
||||
fetchTarball {
|
||||
builtins.fetchTarball {
|
||||
url = locked_url;
|
||||
sha256 = hash;
|
||||
};
|
||||
|
||||
mkContainerSource =
|
||||
pkgs:
|
||||
{
|
||||
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"
|
||||
sources =
|
||||
if version == 5 then
|
||||
builtins.mapAttrs mkSource data.pins
|
||||
else
|
||||
pkgs.dockerTools.pullImage {
|
||||
imageName = image_name;
|
||||
imageDigest = image_digest;
|
||||
finalImageTag = image_tag;
|
||||
};
|
||||
|
||||
sources = mkFunctor (
|
||||
{
|
||||
input ? ./sources.json,
|
||||
}:
|
||||
let
|
||||
data =
|
||||
if builtins.isPath input then
|
||||
# while `readFile` will throw an error anyways if the path doesn't exist,
|
||||
# we still need to check beforehand because *our* error can be caught but not the one from the builtin
|
||||
# *piegames sighs*
|
||||
if builtins.pathExists input then
|
||||
builtins.fromJSON (builtins.readFile input)
|
||||
else
|
||||
throw "Input path ${toString input} does not exist"
|
||||
else if builtins.isAttrs input then
|
||||
input
|
||||
else
|
||||
throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset";
|
||||
version = data.version;
|
||||
in
|
||||
if version == 7 then
|
||||
builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins
|
||||
else
|
||||
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
|
||||
);
|
||||
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`";
|
||||
in
|
||||
sources
|
||||
|
|
|
|||
|
|
@ -14,24 +14,7 @@
|
|||
"version": "0.15.0",
|
||||
"revision": "564595d0ad4be7277e07fa63b5a991b3c645655d",
|
||||
"url": "https://api.github.com/repos/ryantm/agenix/tarball/0.15.0",
|
||||
"hash": "sha256-ipqShkBmHKC9ft1ZAsA6aeKps32k7+XZSPwfxeHLsAU="
|
||||
},
|
||||
"cornelis": {
|
||||
"type": "GitRelease",
|
||||
"repository": {
|
||||
"type": "GitHub",
|
||||
"owner": "agda",
|
||||
"repo": "cornelis"
|
||||
},
|
||||
"pre_releases": false,
|
||||
"version_upper_bound": null,
|
||||
"release_prefix": null,
|
||||
"submodules": false,
|
||||
"version": "v2.7.1",
|
||||
"revision": "40298eed11eb877526b3ab3f648d8a7bff9e2f50",
|
||||
"url": "https://api.github.com/repos/agda/cornelis/tarball/refs/tags/v2.7.1",
|
||||
"hash": "sha256-h18AeggnOSSjy0RLJIkWsSID1BJTarOV9F1APKusIrE=",
|
||||
"frozen": true
|
||||
"hash": "01dhrghwa7zw93cybvx4gnrskqk97b004nfxgsys0736823956la"
|
||||
},
|
||||
"disko": {
|
||||
"type": "GitRelease",
|
||||
|
|
@ -47,7 +30,37 @@
|
|||
"version": "v1.11.0",
|
||||
"revision": "cdf8deded8813edfa6e65544f69fdd3a59fa2bb4",
|
||||
"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": {
|
||||
"type": "Git",
|
||||
|
|
@ -60,7 +73,7 @@
|
|||
"submodules": true,
|
||||
"revision": "cba16e03fd43b1ee8a15d20e14ecf0fb1c6762fa",
|
||||
"url": null,
|
||||
"hash": "sha256-FL0/BcE6yJhbo4AuoDnh547AE1Wx3JJq/sJf8iwby2c=",
|
||||
"hash": "0ryb3cng4py2zrm95p5ial9w13p7w4ws0bl0lddrij1sq42kzg8l",
|
||||
"frozen": true
|
||||
},
|
||||
"flake-compat": {
|
||||
|
|
@ -75,7 +88,7 @@
|
|||
"submodules": false,
|
||||
"revision": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||
"url": "https://git.lix.systems/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz",
|
||||
"hash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||
"hash": "0g4izwn5k7qpavlk3w41a92rhnp4plr928vmrhc75041vzm3vb1l",
|
||||
"frozen": true
|
||||
},
|
||||
"ghostty-dev": {
|
||||
|
|
@ -87,9 +100,9 @@
|
|||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "34eaad6fc86e086f469e81769a793be20d1e169b",
|
||||
"url": "https://github.com/ghostty-org/ghostty/archive/34eaad6fc86e086f469e81769a793be20d1e169b.tar.gz",
|
||||
"hash": "sha256-628LfxEPA0tiCjh6syMupdrGvVb6twhoJTtUFKDbqBQ="
|
||||
"revision": "45abfa91905a5dafdddb711dd9402d45947cdfbb",
|
||||
"url": "https://github.com/ghostty-org/ghostty/archive/45abfa91905a5dafdddb711dd9402d45947cdfbb.tar.gz",
|
||||
"hash": "1pmfsxd65yva3ij2v20xb5r1hf3mx6lqr593nivnvsi345jnfh1y"
|
||||
},
|
||||
"hategroup-dnsbl": {
|
||||
"type": "Git",
|
||||
|
|
@ -102,7 +115,7 @@
|
|||
"submodules": false,
|
||||
"revision": "cc19c050997d5f54014bb20c764b131e003dfb17",
|
||||
"url": "https://github.com/chigh/hategroup-dnsbl/archive/cc19c050997d5f54014bb20c764b131e003dfb17.tar.gz",
|
||||
"hash": "sha256-SZBrjIBUw687MdrbOV7WrP5IhAAtKvPL2GqdcICHNvQ=",
|
||||
"hash": "1x1nhy0717bav35z6aid0224izmcsrg3knys64xszhslh266p429",
|
||||
"frozen": true
|
||||
},
|
||||
"home-manager": {
|
||||
|
|
@ -133,7 +146,7 @@
|
|||
"version": "v2.4",
|
||||
"revision": "c7da66119bb3502a59402cd2d1688a3f0a02577a",
|
||||
"url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz",
|
||||
"hash": "sha256-4XPDTUvV8dfuf9GzKg2/r7j7lMELRAwKKFx3ecQObeg="
|
||||
"hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1"
|
||||
},
|
||||
"nil": {
|
||||
"type": "Git",
|
||||
|
|
@ -146,7 +159,7 @@
|
|||
"submodules": false,
|
||||
"revision": "504599f7e555a249d6754698473124018b80d121",
|
||||
"url": "https://github.com/oxalica/nil/archive/504599f7e555a249d6754698473124018b80d121.tar.gz",
|
||||
"hash": "sha256-18j8X2Nbe0Wg1+7YrWRlYzmjZ5Wq0NCVwJHJlBIw/dc="
|
||||
"hash": "1mzx60999jciq2ax1l5ajmks6fb3cmjavn7fsyh4aysvcdgzrj6p"
|
||||
},
|
||||
"nix-monitored": {
|
||||
"type": "Git",
|
||||
|
|
@ -159,7 +172,7 @@
|
|||
"submodules": false,
|
||||
"revision": "60f3baa4701d58eab86c2d1d9c3d7e820074d461",
|
||||
"url": "https://github.com/ners/nix-monitored/archive/60f3baa4701d58eab86c2d1d9c3d7e820074d461.tar.gz",
|
||||
"hash": "sha256-Z8PknjkmIr/8ZCH+dmc2Pc+UltiOr7/oKg37PXuVvuU=",
|
||||
"hash": "1rdyjmxkvyqd5blbzbwfv2b99krx6rkpdzi1ckyby8i676gf9hv7",
|
||||
"frozen": true
|
||||
},
|
||||
"nixos-hardware": {
|
||||
|
|
@ -171,9 +184,9 @@
|
|||
},
|
||||
"branch": "master",
|
||||
"submodules": false,
|
||||
"revision": "9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca",
|
||||
"url": "https://github.com/NixOS/nixos-hardware/archive/9f7ba891ea5fc3ededd7804f1a23fafadbcb26ca.tar.gz",
|
||||
"hash": "sha256-3ymIZ8s3+hu7sDl/Y48o6bwMxorfKrmn97KuWiw1vjY="
|
||||
"revision": "40b1a28dce561bea34858287fbb23052c3ee63fe",
|
||||
"url": "https://github.com/NixOS/nixos-hardware/archive/40b1a28dce561bea34858287fbb23052c3ee63fe.tar.gz",
|
||||
"hash": "197v6xxdq5j4w8kil6q21ij9x6ng8z6j72brkwwjim23798c2c4n"
|
||||
},
|
||||
"nixpkgs": {
|
||||
"type": "Git",
|
||||
|
|
@ -188,22 +201,6 @@
|
|||
"url": "https://github.com/nixos/nixpkgs/archive/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5.tar.gz",
|
||||
"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": {
|
||||
"type": "Git",
|
||||
"repository": {
|
||||
|
|
@ -213,9 +210,9 @@
|
|||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "bea55329cc806cfe3b826f7baab0503fd6b6892f",
|
||||
"url": "https://github.com/nix-community/nur/archive/bea55329cc806cfe3b826f7baab0503fd6b6892f.tar.gz",
|
||||
"hash": "sha256-B8+OiD8kYXtFc4vJc9+d7q8+MOic8VYR0G8wbSHjuSc="
|
||||
"revision": "68e3e935ba29960813ab1ecf2852a0ecbe8d5946",
|
||||
"url": "https://github.com/nix-community/nur/archive/68e3e935ba29960813ab1ecf2852a0ecbe8d5946.tar.gz",
|
||||
"hash": "02pmkhd6ram43qnmirh3z46w1l31rmm16mhkx36jaxhpnzlwgr2i"
|
||||
},
|
||||
"pin-emacs28": {
|
||||
"type": "Git",
|
||||
|
|
@ -228,7 +225,7 @@
|
|||
"submodules": false,
|
||||
"revision": "93c121f6888986f9148a33afd39d714f4b2ca98c",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/93c121f6888986f9148a33afd39d714f4b2ca98c.tar.gz",
|
||||
"hash": "sha256-r+GZkJ5HiC3HIGiGpTfw5MUuAYuPOj+k0YPjPzYlF6U=",
|
||||
"hash": "198p4lv3zqw3s6j3yflgic0jxig4y0vsb1k8433jv227ks89kqdg",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-florashell": {
|
||||
|
|
@ -242,7 +239,7 @@
|
|||
"submodules": false,
|
||||
"revision": "7282cb574e0607e65224d33be8241eae7cfe0979",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/7282cb574e0607e65224d33be8241eae7cfe0979.tar.gz",
|
||||
"hash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=",
|
||||
"hash": "0klkpy7ah033y3cwj51a0l96lwmkqqvwgfv3kid4z9x5g2rqr0l5",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-fourmolu": {
|
||||
|
|
@ -256,7 +253,7 @@
|
|||
"submodules": false,
|
||||
"revision": "f6cf0e77542dd938f002652dd54391b973f792de",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/f6cf0e77542dd938f002652dd54391b973f792de.tar.gz",
|
||||
"hash": "sha256-4bOckWvBVfncvshtd2JdC+W3XYkyS4xmcfX7uAJnE6k=",
|
||||
"hash": "1a8kcw1biyzmf5k8qjrji5fvgr8bbmi7fvf8pvfgjmf1df8rrcz1",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-isabelle": {
|
||||
|
|
@ -270,7 +267,7 @@
|
|||
"submodules": false,
|
||||
"revision": "805a384895c696f802a9bf5bf4720f37385df547",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/805a384895c696f802a9bf5bf4720f37385df547.tar.gz",
|
||||
"hash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
||||
"hash": "1q7y5ygr805l5axcjhn0rn3wj8zrwbrr0c6a8xd981zh8iccmx0p",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-masna3shell": {
|
||||
|
|
@ -284,7 +281,7 @@
|
|||
"submodules": false,
|
||||
"revision": "641d909c4a7538f1539da9240dedb1755c907e40",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/641d909c4a7538f1539da9240dedb1755c907e40.tar.gz",
|
||||
"hash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
|
||||
"hash": "10hpb1aw884k3zzcy1mhf47dqvfagiyx7kr6hg0p5xcwg04mkx8x",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-necro-man-nixpkgs": {
|
||||
|
|
@ -298,7 +295,7 @@
|
|||
"submodules": false,
|
||||
"revision": "c58ed2fc0f592ebc280bfba077ea418ce10213d1",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/c58ed2fc0f592ebc280bfba077ea418ce10213d1.tar.gz",
|
||||
"hash": "sha256-cZTdVSg1Lzyv/j/H333yliE3E8MnIo1ZsclrLtnQsfg=",
|
||||
"hash": "1y5is3cjwsy9n5cqs8i7qc9kf8cny9yxzirzzspkqbrm51axv53i",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-vim-tw": {
|
||||
|
|
@ -312,7 +309,7 @@
|
|||
"submodules": false,
|
||||
"revision": "c93c1b3413bd7e235fc22b469bc0d2feec332cf5",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/c93c1b3413bd7e235fc22b469bc0d2feec332cf5.tar.gz",
|
||||
"hash": "sha256-BOuI+BWpOvmNcNc+HXMEQmfxfAX4kadqLvWC6+FsuoQ=",
|
||||
"hash": "115sdkhyp0pm5rmag4gq0myg2rs20irisgnpf26zjfm92pw8isq4",
|
||||
"frozen": true
|
||||
},
|
||||
"pin-wireshark": {
|
||||
|
|
@ -326,7 +323,7 @@
|
|||
"submodules": false,
|
||||
"revision": "9d3ae807ebd2981d593cddd0080856873139aa40",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/9d3ae807ebd2981d593cddd0080856873139aa40.tar.gz",
|
||||
"hash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
|
||||
"hash": "0bjqgsprq9fgl5yh58dk59xmchi4dajq3sf5i447q02dbiasjsil",
|
||||
"frozen": true
|
||||
},
|
||||
"url-eater": {
|
||||
|
|
@ -340,7 +337,7 @@
|
|||
"submodules": false,
|
||||
"revision": "d617007eba79f9760db084aefda6c02c80ad7971",
|
||||
"url": "https://github.com/AgathaSorceress/url-eater/archive/d617007eba79f9760db084aefda6c02c80ad7971.tar.gz",
|
||||
"hash": "sha256-lS9M7v8w7ruYz/ylom0ZIfK45vkFZQ3X98a/Is8BOTY="
|
||||
"hash": "0dir077j5gy6yzbhsr85z7kbiwi135ns59gwrycbpvihzzp4qbwm"
|
||||
},
|
||||
"wallpapers": {
|
||||
"type": "Git",
|
||||
|
|
@ -352,9 +349,9 @@
|
|||
},
|
||||
"branch": "mistress",
|
||||
"submodules": false,
|
||||
"revision": "2ed11d34f02d86795f6d08bb3ec23e341a46a788",
|
||||
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/2ed11d34f02d86795f6d08bb3ec23e341a46a788.tar.gz",
|
||||
"hash": "sha256-fE2uKYi3yWV6h6i4ZXifux9vCOnXdYTJ7kWJUISQ3B4="
|
||||
"revision": "ee12113e53e1b9b80638b6963a5b7075c3b81e93",
|
||||
"url": "https://git.confusedcompiler.org/leana8959/wallpapers/archive/ee12113e53e1b9b80638b6963a5b7075c3b81e93.tar.gz",
|
||||
"hash": "1pv17pvc60jkr8y7j8g3q0wmy5qgsjxsq1gv23yb3gf52g4z98sk"
|
||||
},
|
||||
"wired-notify": {
|
||||
"type": "Git",
|
||||
|
|
@ -367,7 +364,7 @@
|
|||
"submodules": false,
|
||||
"revision": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3",
|
||||
"url": "https://github.com/Toqozz/wired-notify/archive/491197a6a5ef9c65a85c3eb1531786f32ffff5b3.tar.gz",
|
||||
"hash": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0="
|
||||
"hash": "07gaizslvsiihvfrrbcdz0b2c04llsfqaji03ls55p1zbm41w6f3"
|
||||
},
|
||||
"zen-browser": {
|
||||
"type": "Git",
|
||||
|
|
@ -378,10 +375,10 @@
|
|||
},
|
||||
"branch": "main",
|
||||
"submodules": false,
|
||||
"revision": "0fac05e4b604c3304e7710a95572e78350fe9968",
|
||||
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/0fac05e4b604c3304e7710a95572e78350fe9968.tar.gz",
|
||||
"hash": "sha256-jejW3u1bkqz0ObXZeiZqLQNwC7+MXb8/KMwf3VPQpRI="
|
||||
"revision": "350c729b261e6f5529460140a5f0943dd4c5e156",
|
||||
"url": "https://github.com/0xc000022070/zen-browser-flake/archive/350c729b261e6f5529460140a5f0943dd4c5e156.tar.gz",
|
||||
"hash": "1fbx200712rdz3b8c4acrz0ib8fd636bvsiyv4m31xqpfqpj3kza"
|
||||
}
|
||||
},
|
||||
"version": 7
|
||||
"version": 5
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
let
|
||||
sources = import ./npins;
|
||||
in
|
||||
{
|
||||
sources ? import ./npins,
|
||||
pkgs ? import sources.nixpkgs {
|
||||
overlays = map import [
|
||||
./nix/overlays/disko.nix
|
||||
./nix/overlays/npins.nix
|
||||
];
|
||||
},
|
||||
withGHC ? false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue