Compare commits

...

3 commits

Author SHA1 Message Date
ae9854f178
fish and jj
Some checks failed
/ lint (push) Failing after 30s
2026-03-24 08:41:38 +01:00
ac7e310e00
less 2026-03-24 08:33:08 +01:00
194cefe340
vimium etc 2026-03-19 10:05:31 +01:00
14 changed files with 508 additions and 354 deletions

View file

@ -3,6 +3,7 @@ inputs@{
deploy-rs, deploy-rs,
self, self,
pkgsForSystem, pkgsForSystem,
unstablePkgsForSystem,
... ...
}: }:
@ -63,6 +64,7 @@ rec {
}: }:
home-only: { home-only: {
pkgs = pkgsForSystem system; pkgs = pkgsForSystem system;
pkgs-unstable = unstablePkgsForSystem system;
flakes = inputs; flakes = inputs;
inherit inputs; inherit inputs;
inherit (inputs.secrets.packages.${system}) secrets; inherit (inputs.secrets.packages.${system}) secrets;

60
flake.lock generated
View file

@ -718,11 +718,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1772058280, "lastModified": 1774289893,
"narHash": "sha256-8gZ6wh++43JAe6PH0hmm4Q8gPEScf0S7rkb0MmIxu2U=", "narHash": "sha256-si2LHcNiLuF01yOuaUs90p1U09hhaketA8tyanWwiP0=",
"owner": "jdonszelmann", "owner": "jdonszelmann",
"repo": "homepage", "repo": "homepage",
"rev": "ead7bebdfa71b207d2513d7f002e164d0b17a264", "rev": "635f900ce31b7f901da33c6fa830a2e7c116552f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1123,6 +1123,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1766185129,
"narHash": "sha256-ldujgxS7lslpNf3oV2DHCEgNutfzEtMPv5O6l22XHNY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5d9ea8caac0dda3bc216047d29943b8a59e431b7",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5d9ea8caac0dda3bc216047d29943b8a59e431b7",
"type": "github"
}
},
"nixpkgs_10": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1757967192, "lastModified": 1757967192,
@ -1326,6 +1342,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_22": {
"locked": {
"lastModified": 1745930157,
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1732521221, "lastModified": 1732521221,
@ -1442,7 +1474,7 @@
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
], ],
"systems": "systems_10" "systems": "systems_10"
}, },
@ -1696,6 +1728,7 @@
"niri": "niri", "niri": "niri",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_11", "nixpkgs": "nixpkgs_11",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim", "nixvim": "nixvim",
"noctalia": "noctalia", "noctalia": "noctalia",
"p1n3appl3": "p1n3appl3", "p1n3appl3": "p1n3appl3",
@ -1707,6 +1740,7 @@
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"t": "t", "t": "t",
"totpal": "totpal", "totpal": "totpal",
"vimium-options": "vimium-options",
"vpn-confinement": "vpn-confinement" "vpn-confinement": "vpn-confinement"
} }
}, },
@ -2273,6 +2307,24 @@
"type": "github" "type": "github"
} }
}, },
"vimium-options": {
"inputs": {
"nixpkgs": "nixpkgs_22"
},
"locked": {
"lastModified": 1746118178,
"narHash": "sha256-MtIuTMLMF/Cl3MEJwO56rVhtXUtRhZ/i2hG49jcosEE=",
"owner": "uimataso",
"repo": "vimium-nixos",
"rev": "a9e4b051cf944718fd3fbb638bc1c08057507c31",
"type": "github"
},
"original": {
"owner": "uimataso",
"repo": "vimium-nixos",
"type": "github"
}
},
"vpn-confinement": { "vpn-confinement": {
"locked": { "locked": {
"lastModified": 1767604552, "lastModified": 1767604552,

View file

@ -2,6 +2,7 @@
description = "jana's server infrastructure"; description = "jana's server infrastructure";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs"; nixpkgs.url = "github:NixOS/nixpkgs";
nixpkgs-unstable.url = "github:nixos/nixpkgs/5d9ea8caac0dda3bc216047d29943b8a59e431b7";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
@ -29,7 +30,7 @@
# home # home
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
t.url = "github:jdonszelmann/t-rs"; t.url = "github:jdonszelmann/t-rs";
dumpasm.url = "github:jdonszelmann/dumpasm"; dumpasm.url = "github:jdonszelmann/dumpasm";
@ -68,11 +69,12 @@
url = "github:drannex/FirefoxSidebar"; url = "github:drannex/FirefoxSidebar";
flake = false; flake = false;
}; };
vimium-options.url = "github:uimataso/vimium-nixos";
}; };
outputs = outputs =
{ {
nixpkgs, nixpkgs,
nixpkgs-unstable,
flake-utils, flake-utils,
sops-nix, sops-nix,
vpn-confinement, vpn-confinement,
@ -81,9 +83,10 @@
}@inputs: }@inputs:
let let
custom = pkgs: import ./pkgs/custom.nix (inputs // { inherit pkgs; }); custom = pkgs: import ./pkgs/custom.nix (inputs // { inherit pkgs; });
pkgsForSystem =
system: pkgsForSystemShared =
import nixpkgs { np: system:
import np {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = [ overlays = [
@ -92,7 +95,9 @@
}) })
]; ];
}; };
configs = import ./config.nix (inputs // { inherit pkgsForSystem; }); pkgsForSystem = pkgsForSystemShared nixpkgs;
unstablePkgsForSystem = pkgsForSystemShared nixpkgs-unstable;
configs = import ./config.nix (inputs // { inherit pkgsForSystem unstablePkgsForSystem; });
in in
(configs.configs [ (configs.configs [
{ {

View file

@ -5,6 +5,7 @@
[ [
./xdg.nix ./xdg.nix
./ssh.nix ./ssh.nix
./less.nix
./nvim ./nvim
./fish ./fish
./kanata ./kanata
@ -44,10 +45,11 @@
inherit inputs; inherit inputs;
requirements = [ "graphical" ]; requirements = [ "graphical" ];
home-config = home-config =
{ config {
, pkgs config,
, lib pkgs,
, ... lib,
...
}: }:
let let
disableFeatures = [ disableFeatures = [
@ -212,6 +214,7 @@
just just
uv uv
llvmPackages.bintools llvmPackages.bintools
nodejs
(writeShellScriptBin "nas" '' (writeShellScriptBin "nas" ''
mkdir -p ~/Documents/nas mkdir -p ~/Documents/nas

View file

@ -23,6 +23,48 @@ inputs@{ machine, ... }:
# }; # };
in in
{ {
imports = [ flakes.vimium-options.homeManagerModules.vimium-options ];
home.vimiumOptions = {
enable = true;
outputFilePath = ".cache/vimium-options.json";
keyMappings = {
unmapAll = true;
map = {
"j" = "scrollDown";
"k" = "scrollUp";
"<" = "goBack";
">" = "goForward";
"gi" = "focusInput";
"gr" = "goToRoot";
"gu" = "goUp";
"g[" = "goNext";
"g]" = "goPrevious";
"gF" = "mainFrame";
"gf" = "nextFrame";
"p" = "openCopiedUrlInCurrentTab";
"P" = "openCopiedUrlInNewTab";
"G" = "scrollToBottom";
"gg" = "scrollToTop";
"C-o" = "visitPreviousTab";
"f" = "LinkHints.activateMode";
"F" = "LinkHints.activateModeToOpenInNewTab";
"<a-f>" = "LinkHints.activateModeWithQueue";
"yf" = "LinkHints.activateModeToCopyLinkUrl";
};
};
exclusionRules = [
{
pattern = "https?://mail.google.com/*";
}
{
pattern = "https?://squaredle.app/*";
}
];
};
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped { package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
@ -88,7 +130,7 @@ inputs@{ machine, ... }:
ublock-origin ublock-origin
sidebery sidebery
sponsorblock sponsorblock
# vimium vimium
]; ];
bookmarks = { bookmarks = {
@ -154,16 +196,16 @@ inputs@{ machine, ... }:
}; };
}; };
xdg.mimeApps = { xdg.mimeApps.defaultApplications = {
defaultApplications."x-scheme-handler/http" = [ "x-scheme-handler/http" = [
"firefox.desktop" "firefox.desktop"
]; ];
defaultApplications."x-scheme-handler/https" = [ "x-scheme-handler/https" = [
"firefox.desktop" "firefox.desktop"
]; ];
defaultApplications."text/html" = [ "firefox.desktop" ]; "text/html" = [ "firefox.desktop" ];
defaultApplications."x-scheme-handler/about" = [ "firefox.desktop" ]; "x-scheme-handler/about" = [ "firefox.desktop" ];
defaultApplications."x-scheme-handler/unknown" = [ "firefox.desktop" ]; "x-scheme-handler/unknown" = [ "firefox.desktop" ];
}; };
}; };
}; };

View file

@ -5,10 +5,11 @@ inputs@{ machine, ... }:
inherit inputs; inherit inputs;
requirements = [ "cli" ]; requirements = [ "cli" ];
home-config = home-config =
{ config {
, pkgs config,
, lib pkgs,
, ... lib,
...
}: }:
with builtins; with builtins;
with lib.attrsets; with lib.attrsets;
@ -228,7 +229,10 @@ inputs@{ machine, ... }:
fish_add_path "$HOME/.nix-profile/bin" fish_add_path "$HOME/.nix-profile/bin"
function fish_greeting function fish_greeting
if test -e /etc/motd
else
${pkgs.blahaj}/bin/blahaj -s ${pkgs.blahaj}/bin/blahaj -s
end
echo "mrow! This is $(uname -n) and ur $(whoami) :3" echo "mrow! This is $(uname -n) and ur $(whoami) :3"
end end
''; '';
@ -239,11 +243,13 @@ inputs@{ machine, ... }:
setupTide = lib.hm.dag.entryAfter [ "writeBoundary" ] '' setupTide = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
setupTide() { setupTide() {
${pkgs.fish}/bin/fish -c ${lib.escapeShellArg "tide configure ${ ${pkgs.fish}/bin/fish -c ${lib.escapeShellArg "tide configure ${
lib.cli.toCommandLineShell (optionName: { lib.cli.toCommandLineShell
(optionName: {
option = if builtins.stringLength optionName > 1 then "--${optionName}" else "-${optionName}"; option = if builtins.stringLength optionName > 1 then "--${optionName}" else "-${optionName}";
sep = null; sep = null;
explicitBool = false; explicitBool = false;
}) { })
{
auto = true; auto = true;
style = "Lean"; style = "Lean";
prompt_colors = "True color"; prompt_colors = "True color";

View file

@ -13,12 +13,12 @@ inputs@{ machine, ... }:
settings = { settings = {
user = { user = {
email = config.programs.git.settings.user.email; inherit (config.programs.git.settings.user) email;
name = config.programs.git.settings.user.name; inherit (config.programs.git.settings.user) name;
}; };
ui = { ui = {
paginate = "never"; # paginate = "never";
# pager = "${pkgs.delta}/bin/delta"; # pager = "${pkgs.delta}/bin/delta";
# for delta # for delta
# diff-formatter = ":git"; # diff-formatter = ":git";
@ -31,8 +31,6 @@ inputs@{ machine, ... }:
default-command = [ default-command = [
"log" "log"
"--reversed"
"--no-pager"
]; ];
merge-editor = [ merge-editor = [
"${pkgs.meld}/bin/meld" "${pkgs.meld}/bin/meld"
@ -154,14 +152,26 @@ inputs@{ machine, ... }:
"--from" "--from"
"trunk()" "trunk()"
]; ];
n = [ "edit" "@+" ]; n = [
p = [ "edit" "@-" ]; "edit"
"@+"
];
p = [
"edit"
"@-"
];
gp = [ "git" "push" ]; gp = [
"git"
"push"
];
t = tug; t = tug;
d = "describe"; d = "describe";
dm = [ "describe" "-m" ]; dm = [
"describe"
"-m"
];
e = "edit"; e = "edit";
s = "squash"; s = "squash";
si = "squash -i"; si = "squash -i";

22
programs/less.nix Normal file
View file

@ -0,0 +1,22 @@
inputs@{ machine, ... }:
{
imports = machine.program {
name = "less";
inherit inputs;
requirements = [ "cli" ];
home-config =
{ pkgs, ... }:
{
home.packages = with pkgs; [ less ];
programs.less = {
enable = true;
config = ''
#command
#env
LESS=--quit-if-one-screen --ignore-case --long-prompt --tabs=4 --redraw-on-quit --use-color --RAW-CONTROL-CHARS --chop-long-lines --exit-follow-on-close
'';
};
};
};
}

View file

@ -28,9 +28,10 @@ end, { remap = true })
-- vim.keymap.set('n', 'gr', (function() builtin.lsp_references({jump_type="vsplit"}) end), {}) vim.keymap.set('n', 'gr', (function() builtin.lsp_references({}) end), {})
-- vim.keymap.set('n', 'gd', (function() builtin.lsp_definitions({jump_type="vsplit"}) end), {}) vim.keymap.set('n', 'gd', (function() builtin.lsp_definitions({}) end), {})
-- vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {}) vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({}) end), {})
vim.keymap.set('n', 'gi', (function() builtin.lsp_implementations({}) end), {})
-- vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {}) -- vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {})

View file

@ -5,10 +5,12 @@ inputs@{ machine, ... }:
inherit inputs; inherit inputs;
requirements = [ "cli" ]; requirements = [ "cli" ];
home-config = home-config =
{ pkgs {
, flakes pkgs,
, lib pkgs-unstable,
, ... flakes,
lib,
...
}: }:
let let
nvim_mime_types = [ nvim_mime_types = [
@ -50,6 +52,10 @@ inputs@{ machine, ... }:
sessionVariables = { sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
}; };
packages = with pkgs-unstable; [
tree-sitter
];
}; };
home.file.".local/share/applications/${desktop-entry-name}.desktop" = { home.file.".local/share/applications/${desktop-entry-name}.desktop" = {
@ -57,11 +63,9 @@ inputs@{ machine, ... }:
}; };
xdg.mimeApps.associations.added = lib.mergeAttrsList ( xdg.mimeApps.associations.added = lib.mergeAttrsList (
map map (mime: {
(mime: {
${mime} = [ "${desktop-entry-name}.desktop" ]; ${mime} = [ "${desktop-entry-name}.desktop" ];
}) }) nvim_mime_types
nvim_mime_types
); );
imports = [ imports = [
@ -90,11 +94,10 @@ inputs@{ machine, ... }:
performance = { performance = {
byteCompileLua.enable = true; byteCompileLua.enable = true;
combinePlugins = { combinePlugins = {
enable = true; enable = false;
standalonePlugins = [ standalonePlugins = [
# clashes with lualine # clashes with lualine
"onedark.nvim"
]; ];
}; };
}; };
@ -103,7 +106,8 @@ inputs@{ machine, ... }:
extraPackages = [ pkgs.imagemagick ]; extraPackages = [ pkgs.imagemagick ];
# package = (import inputs.unstable { inherit (pkgs) system; }).neovim-unwrapped; # package = (import inputs.unstable { inherit (pkgs) system; }).neovim-unwrapped;
package = pkgs.neovim-unwrapped; # package = pkgs.neovim-unwrapped;
package = with pkgs-unstable; neovim-unwrapped;
colorschemes.onedark = { colorschemes.onedark = {
enable = true; enable = true;

View file

@ -19,8 +19,7 @@ in
# jumplist # jumplist
(map "" "<C-a>" "<C-i>") # note: C-a is actually C-i, remapped through kitty. (map "" "<C-a>" "<C-i>") # note: C-a is actually C-i, remapped through kitty.
(luamap "n" "<leader>r" "${telescope}.jumplist()") (luamap "n" "<leader>j" "${telescope}.jumplist()")
(luamap "n" "<leader>R" "${telescope}.loclist()")
# pickers # pickers
(luamap "n" "<leader><leader>" "${telescope}.find_files()") (luamap "n" "<leader><leader>" "${telescope}.find_files()")

View file

@ -1,4 +1,9 @@
{ pkgs, config, ... }: {
pkgs,
pkgs-unstable,
config,
...
}:
let let
render-markdown = pkgs.vimUtils.buildVimPlugin { render-markdown = pkgs.vimUtils.buildVimPlugin {
name = "render-markdown"; name = "render-markdown";
@ -127,17 +132,19 @@ in
treesitter = { treesitter = {
enable = true; enable = true;
nixGrammars = false; nixGrammars = true;
grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars;
nixvimInjections = false; nixvimInjections = false;
# package = with pkgs-unstable; tree-sitter;
settings = { settings = {
indent.enable = true; indent.enable = true;
ensure_installed = "all"; # ensure_installed = "all";
ignore_install = [ # ignore_install = [
"wing" # "wing"
"brightscript" # "brightscript"
]; # ];
highlight.enable = true; highlight.enable = true;
@ -623,36 +630,37 @@ in
}; };
options = { options = {
pipeline = config.lib.nixvim.mkRaw '' # pipeline = config.lib.nixvim.mkRaw "";
wilder.branch( #''
wilder.cmdline_pipeline({ # wilder.branch(
language = 'python', # wilder.cmdline_pipeline({
fuzzy = 2, # language = 'python',
}), # fuzzy = 2,
wilder.python_search_pipeline({ # }),
pattern = wilder.python_fuzzy_pattern(), # wilder.python_search_pipeline({
sorter = wilder.python_difflib_sorter(), # pattern = wilder.python_fuzzy_pattern(),
engine = 're', # sorter = wilder.python_difflib_sorter(),
}), # engine = 're',
wilder.substitute_pipeline({ # }),
pipeline = wilder.python_search_pipeline({ # wilder.substitute_pipeline({
skip_cmdtype_check = 1, # pipeline = wilder.python_search_pipeline({
pattern = wilder.python_fuzzy_pattern({ # skip_cmdtype_check = 1,
start_at_boundary = 0, # pattern = wilder.python_fuzzy_pattern({
}), # start_at_boundary = 0,
}), # }),
}), # }),
{ # }),
wilder.check(function(ctx, x) return x == "" end), # {
wilder.history(), # wilder.check(function(ctx, x) return x == "" end),
}, # wilder.history(),
wilder.python_file_finder_pipeline({ # },
file_command = {'${pkgs.ripgrep}/bin/rg', '--files'}, # wilder.python_file_finder_pipeline({
dir_command = {'${pkgs.fd}/bin/fd', '-td'}, # file_command = {'${pkgs.ripgrep}/bin/rg', '--files'},
filters = {'cpsm_filter'}, # dir_command = {'${pkgs.fd}/bin/fd', '-td'},
}) # filters = {'cpsm_filter'},
) # })
''; # )
# '';
renderer = config.lib.nixvim.mkRaw '' renderer = config.lib.nixvim.mkRaw ''
(function() (function()

View file

@ -1,6 +1,6 @@
inputs@{ machine, ... }: { inputs@{ machine, ... }:
imports = {
machine.program { imports = machine.program {
name = "ssh"; name = "ssh";
inherit inputs; inherit inputs;
requirements = [ "cli" ]; requirements = [ "cli" ];
@ -37,6 +37,5 @@ inputs@{ machine, ... }: {
}; };
}; };
}; };
} };
;
} }

View file

@ -27,6 +27,7 @@ let
mimeMap = { mimeMap = {
text = [ text = [
"text/rust"
"text/plain" "text/plain"
"text/english" "text/english"
"application/x-zerosize" "application/x-zerosize"