tangled
alpha
login
or
join now
bwc9876.dev
/
nixos-config
1
fork
atom
Flake for my NixOS devices
1
fork
atom
overview
issues
pulls
pipelines
Toggleterm bindings
bwc9876.dev
8 months ago
fb3e3f41
af211e01
verified
This commit was signed with the committer's
known signature
.
bwc9876.dev
SSH Key Fingerprint:
SHA256:DanMEP/RNlSC7pAVbnXO6wzQV00rqyKj053tz4uH5gQ=
+341
-351
2 changed files
expand all
collapse all
unified
split
nixosModules
dev
nvim.nix
graphics
floorp.nix
+139
-141
nixosModules/dev/nvim.nix
···
4
4
config,
5
5
lib,
6
6
...
7
7
-
}:
8
8
-
{
7
7
+
}: {
9
8
environment.systemPackages = with pkgs; [
10
9
ripgrep
11
10
fd
12
11
];
13
12
14
13
home-manager.users.bean = {
15
15
-
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
14
14
+
imports = [inputs.nixvim.homeManagerModules.nixvim];
16
15
17
16
programs.nixvim = {
18
17
enable = true;
···
63
62
background = true;
64
63
};
65
64
virtual_text = {
66
66
-
errors = [ "italic" ];
67
67
-
hints = [ "italic" ];
68
68
-
information = [ "italic" ];
69
69
-
warnings = [ "italic" ];
70
70
-
ok = [ "italic" ];
65
65
+
errors = ["italic"];
66
66
+
hints = ["italic"];
67
67
+
information = ["italic"];
68
68
+
warnings = ["italic"];
69
69
+
ok = ["italic"];
71
70
};
72
71
underlines = {
73
73
-
errors = [ "underline" ];
74
74
-
hints = [ "underline" ];
75
75
-
information = [ "underline" ];
76
76
-
warnings = [ "underline" ];
72
72
+
errors = ["underline"];
73
73
+
hints = ["underline"];
74
74
+
information = ["underline"];
75
75
+
warnings = ["underline"];
77
76
};
78
77
};
79
78
};
···
94
93
'';
95
94
96
95
autoGroups = {
97
97
-
restore_cursor = { };
98
98
-
open_neotree = { };
96
96
+
restore_cursor = {};
97
97
+
open_neotree = {};
99
98
};
100
99
101
100
opts = {
···
116
115
autoCmd = [
117
116
{
118
117
group = "restore_cursor";
119
119
-
event = [ "BufReadPost" ];
118
118
+
event = ["BufReadPost"];
120
119
pattern = "*";
121
120
callback.__raw = ''
122
121
function()
···
133
132
}
134
133
{
135
134
group = "open_neotree";
136
136
-
event = [ "BufRead" ];
135
135
+
event = ["BufRead"];
137
136
pattern = "*";
138
137
once = true;
139
138
callback.__raw = ''
···
161
160
};
162
161
};
163
162
164
164
-
keymaps =
165
165
-
let
166
166
-
prefixMap =
167
167
-
pre: maps:
168
168
-
builtins.map (k: {
169
169
-
action = "<cmd>${k.action}<cr>";
170
170
-
key = "${pre}${k.key}";
171
171
-
options = k.options;
172
172
-
}) maps;
173
173
-
in
163
163
+
keymaps = let
164
164
+
prefixMap = pre: maps:
165
165
+
builtins.map (k: {
166
166
+
action = "<cmd>${k.action}<cr>";
167
167
+
key = "${pre}${k.key}";
168
168
+
options = k.options;
169
169
+
})
170
170
+
maps;
171
171
+
in
174
172
lib.lists.flatten (
175
175
-
builtins.map (g: if builtins.hasAttr "group" g then prefixMap g.prefix g.keys else g) [
173
173
+
builtins.map (g:
174
174
+
if builtins.hasAttr "group" g
175
175
+
then prefixMap g.prefix g.keys
176
176
+
else g) [
176
177
{
177
178
group = "Tab Navigation";
178
179
prefix = "<Tab>";
···
291
292
key = "<leader><leader>";
292
293
options.desc = "Telescope Launch";
293
294
}
295
295
+
{
296
296
+
action.__raw = "[[<C-\\><C-n><C-w>]]";
297
297
+
mode = ["t"];
298
298
+
key = "<C-w>";
299
299
+
}
300
300
+
{
301
301
+
action.__raw = "[[<C-\\><C-n>]]";
302
302
+
mode = ["t"];
303
303
+
key = "<esc>";
304
304
+
}
294
305
]
295
306
);
296
307
297
308
extraPlugins = with pkgs.vimPlugins; [
298
298
-
{ plugin = pkgs.nvim-mdx; }
299
299
-
{ plugin = pkgs.nvim-flatten; }
300
300
-
{ plugin = tiny-devicons-auto-colors-nvim; }
301
301
-
{ plugin = nvim-biscuits; }
309
309
+
{plugin = pkgs.nvim-mdx;}
310
310
+
{plugin = pkgs.nvim-flatten;}
311
311
+
{plugin = tiny-devicons-auto-colors-nvim;}
312
312
+
{plugin = nvim-biscuits;}
302
313
];
303
314
304
315
plugins = {
···
370
381
opts = {
371
382
position = "center";
372
383
};
373
373
-
layout =
374
374
-
let
375
375
-
o = {
376
376
-
position = "center";
377
377
-
};
378
378
-
txt = s: {
379
379
-
type = "text";
380
380
-
val = s;
381
381
-
opts = {
384
384
+
layout = let
385
385
+
o = {
386
386
+
position = "center";
387
387
+
};
388
388
+
txt = s: {
389
389
+
type = "text";
390
390
+
val = s;
391
391
+
opts =
392
392
+
{
382
393
hl = "Keyword";
383
383
-
} // o;
384
384
-
};
385
385
-
grp = g: {
386
386
-
type = "group";
387
387
-
val = g;
388
388
-
opts.spacing = 1;
389
389
-
};
390
390
-
btn =
391
391
-
{
392
392
-
val,
393
393
-
onClick,
394
394
-
...
395
395
-
}:
396
396
-
{
397
397
-
type = "button";
398
398
-
inherit val;
399
399
-
opts = o;
400
400
-
on_press.__raw = "function() vim.cmd[[${onClick}]] end";
401
401
-
};
402
402
-
cmd =
403
403
-
{
404
404
-
command,
405
405
-
width,
406
406
-
height,
407
407
-
}:
408
408
-
{
409
409
-
type = "terminal";
410
410
-
inherit command width height;
411
411
-
opts = o;
412
412
-
};
413
413
-
pad = {
414
414
-
type = "padding";
415
415
-
val = 2;
416
416
-
};
417
417
-
in
394
394
+
}
395
395
+
// o;
396
396
+
};
397
397
+
grp = g: {
398
398
+
type = "group";
399
399
+
val = g;
400
400
+
opts.spacing = 1;
401
401
+
};
402
402
+
btn = {
403
403
+
val,
404
404
+
onClick,
405
405
+
...
406
406
+
}: {
407
407
+
type = "button";
408
408
+
inherit val;
409
409
+
opts = o;
410
410
+
on_press.__raw = "function() vim.cmd[[${onClick}]] end";
411
411
+
};
412
412
+
cmd = {
413
413
+
command,
414
414
+
width,
415
415
+
height,
416
416
+
}: {
417
417
+
type = "terminal";
418
418
+
inherit command width height;
419
419
+
opts = o;
420
420
+
};
421
421
+
pad = {
422
422
+
type = "padding";
423
423
+
val = 2;
424
424
+
};
425
425
+
in
418
426
[
419
427
pad
420
428
pad
···
424
432
(
425
433
let
426
434
banner =
427
427
-
pkgs.runCommand "nvim-banner" { }
428
428
-
''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out'';
435
435
+
pkgs.runCommand "nvim-banner" {}
436
436
+
''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out'';
429
437
# bannerText = builtins.readFile banner;
430
438
in
431
431
-
cmd {
432
432
-
command = ''open ${banner} | ${pkgs.lolcat}/bin/lolcat -f -S (random int 1..360)'';
433
433
-
# Hardcoding to prevent IFD
434
434
-
width = 83; # (builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3;
435
435
-
height = 12; # (builtins.length (lib.splitString "\n" bannerText)) - 1;
436
436
-
}
439
439
+
cmd {
440
440
+
command = ''open ${banner} | ${pkgs.lolcat}/bin/lolcat -f -S (random int 1..360)'';
441
441
+
# Hardcoding to prevent IFD
442
442
+
width = 83; # (builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3;
443
443
+
height = 12; # (builtins.length (lib.splitString "\n" bannerText)) - 1;
444
444
+
}
437
445
)
438
446
(grp [
439
447
(btn {
···
454
462
])
455
463
(txt "::<シ>")
456
464
])
457
457
-
++ [ pad ];
465
465
+
++ [pad];
458
466
};
459
467
460
468
trouble = {
···
517
525
start_in_insert = true;
518
526
insert_mappings = true;
519
527
terminal_mappings = true;
520
520
-
# winbar = {
521
521
-
# enabled = true;
522
522
-
# # name_formatter.__raw = ''
523
523
-
# # function(term)
524
524
-
# # return term:_display_name() .. " (" .. tostring(term.id) .. ")"
525
525
-
# # end
526
526
-
# # '';
527
527
-
# };
528
528
};
529
529
};
530
530
···
586
586
hover = {
587
587
enabled = true;
588
588
delay = 150;
589
589
-
reveal = [ "close" ];
589
589
+
reveal = ["close"];
590
590
};
591
591
sort_by = "insert_at_end";
592
592
diagnostics = "nvim_lsp";
···
601
601
602
602
statuscol = {
603
603
enable = true;
604
604
-
settings.segments =
605
605
-
let
606
606
-
dispCond = {
607
607
-
__raw = ''
608
608
-
function(ln)
609
609
-
return vim.bo.filetype ~= "neo-tree"
610
610
-
end
611
611
-
'';
612
612
-
};
613
613
-
in
614
614
-
[
615
615
-
{
616
616
-
click = "v:lua.ScSa";
617
617
-
condition = [
618
618
-
dispCond
619
619
-
];
620
620
-
text = [
621
621
-
"%s"
622
622
-
];
623
623
-
}
624
624
-
{
625
625
-
click = "v:lua.ScLa";
626
626
-
condition = [ dispCond ];
627
627
-
text = [
628
628
-
{
629
629
-
__raw = "require('statuscol.builtin').lnumfunc";
630
630
-
}
631
631
-
];
632
632
-
}
633
633
-
{
634
634
-
click = "v:lua.ScFa";
635
635
-
condition = [
636
636
-
dispCond
637
637
-
{
638
638
-
__raw = "require('statuscol.builtin').not_empty";
639
639
-
}
640
640
-
];
641
641
-
text = [
642
642
-
{
643
643
-
__raw = "require('statuscol.builtin').foldfunc";
644
644
-
}
645
645
-
" "
646
646
-
];
647
647
-
}
648
648
-
];
604
604
+
settings.segments = let
605
605
+
dispCond = {
606
606
+
__raw = ''
607
607
+
function(ln)
608
608
+
return vim.bo.filetype ~= "neo-tree"
609
609
+
end
610
610
+
'';
611
611
+
};
612
612
+
in [
613
613
+
{
614
614
+
click = "v:lua.ScSa";
615
615
+
condition = [
616
616
+
dispCond
617
617
+
];
618
618
+
text = [
619
619
+
"%s"
620
620
+
];
621
621
+
}
622
622
+
{
623
623
+
click = "v:lua.ScLa";
624
624
+
condition = [dispCond];
625
625
+
text = [
626
626
+
{
627
627
+
__raw = "require('statuscol.builtin').lnumfunc";
628
628
+
}
629
629
+
];
630
630
+
}
631
631
+
{
632
632
+
click = "v:lua.ScFa";
633
633
+
condition = [
634
634
+
dispCond
635
635
+
{
636
636
+
__raw = "require('statuscol.builtin').not_empty";
637
637
+
}
638
638
+
];
639
639
+
text = [
640
640
+
{
641
641
+
__raw = "require('statuscol.builtin').foldfunc";
642
642
+
}
643
643
+
" "
644
644
+
];
645
645
+
}
646
646
+
];
649
647
};
650
648
651
649
dropbar = {
···
671
669
672
670
options = {
673
671
theme = "catppuccin";
674
674
-
disabled_filetypes = [ "neo-tree" ];
675
675
-
ignore_focus = [ "neo-tree" ];
672
672
+
disabled_filetypes = ["neo-tree"];
673
673
+
ignore_focus = ["neo-tree"];
676
674
};
677
675
};
678
676
};
···
766
764
cmp = {
767
765
enable = true;
768
766
settings = {
769
769
-
sources = map (name: { inherit name; }) [
767
767
+
sources = map (name: {inherit name;}) [
770
768
"nvim_lsp"
771
769
"nvim_lsp_signature_help"
772
770
"path"
+202
-210
nixosModules/graphics/floorp.nix
···
2
2
lib,
3
3
pkgs,
4
4
...
5
5
-
}:
6
6
-
{
5
5
+
}: {
7
6
environment.systemPackages = with pkgs; [
8
7
floorp
9
8
];
···
51
50
EmailTracking = true;
52
51
};
53
52
54
54
-
Preferences =
55
55
-
let
56
56
-
lock = val: {
57
57
-
Value = val;
58
58
-
Status = "locked";
59
59
-
};
60
60
-
in
61
61
-
{
62
62
-
# General
63
63
-
"browser.aboutConfig.showWarning" = lock false;
64
64
-
"media.eme.enabled" = lock true; # Encrypted Media Extensions (DRM)
65
65
-
"layout.css.prefers-color-scheme.content-override" = lock 0;
66
66
-
"browser.startup.page" = 3; # Restore previous session
67
67
-
"toolkit.telemetry.server" = lock "";
53
53
+
Preferences = let
54
54
+
lock = val: {
55
55
+
Value = val;
56
56
+
Status = "locked";
57
57
+
};
58
58
+
in {
59
59
+
# General
60
60
+
"browser.aboutConfig.showWarning" = lock false;
61
61
+
"media.eme.enabled" = lock true; # Encrypted Media Extensions (DRM)
62
62
+
"layout.css.prefers-color-scheme.content-override" = lock 0;
63
63
+
"browser.startup.page" = 3; # Restore previous session
64
64
+
"toolkit.telemetry.server" = lock "";
68
65
69
69
-
# New Tab
70
70
-
"browser.newtabpage.activity-stream.showSponsored" = lock false;
71
71
-
"browser.newtabpage.activity-stream.system.showSponsored" = lock false;
72
72
-
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock false;
73
73
-
"browser.newtabpage.activity-stream.feeds.topsites" = lock false;
74
74
-
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock false;
75
75
-
"browser.newtabpage.activity-stream.showWeather" = lock false;
76
76
-
"browser.newtabpage.activity-stream.system.showWeather" = lock false;
77
77
-
"browser.newtabpage.activity-stream.feeds.weatherfeed" = lock false;
78
78
-
"browser.newtabpage.activity-stream.feeds.telemetry" = lock false;
79
79
-
"browser.newtabpage.activity-stream.telemetry" = lock false;
80
80
-
"browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint" = lock "";
81
81
-
"browser.newtabpage.pinned" = lock [ ];
82
82
-
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = lock "";
83
83
-
"browser.urlbar.suggest.weather" = lock false;
84
84
-
"browser.urlbar.quicksuggest.scenario" = lock "offline";
85
85
-
"browser.urlbar.suggest.quicksuggest.nonsponsored" = lock false;
86
86
-
"browser.urlbar.suggest.quicksuggest.sponsored" = lock false;
66
66
+
# New Tab
67
67
+
"browser.newtabpage.activity-stream.showSponsored" = lock false;
68
68
+
"browser.newtabpage.activity-stream.system.showSponsored" = lock false;
69
69
+
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock false;
70
70
+
"browser.newtabpage.activity-stream.feeds.topsites" = lock false;
71
71
+
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock false;
72
72
+
"browser.newtabpage.activity-stream.showWeather" = lock false;
73
73
+
"browser.newtabpage.activity-stream.system.showWeather" = lock false;
74
74
+
"browser.newtabpage.activity-stream.feeds.weatherfeed" = lock false;
75
75
+
"browser.newtabpage.activity-stream.feeds.telemetry" = lock false;
76
76
+
"browser.newtabpage.activity-stream.telemetry" = lock false;
77
77
+
"browser.newtabpage.activity-stream.telemetry.structuredIngestion.endpoint" = lock "";
78
78
+
"browser.newtabpage.pinned" = lock [];
79
79
+
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = lock "";
80
80
+
"browser.urlbar.suggest.weather" = lock false;
81
81
+
"browser.urlbar.quicksuggest.scenario" = lock "offline";
82
82
+
"browser.urlbar.suggest.quicksuggest.nonsponsored" = lock false;
83
83
+
"browser.urlbar.suggest.quicksuggest.sponsored" = lock false;
87
84
88
88
-
# Devtools
89
89
-
"devtools.theme" = lock "dark";
90
90
-
"devtools.dom.enabled" = lock true;
91
91
-
"devtools.command-button-rulers.enabled" = lock true;
92
92
-
"devtools.command-button-measure.enabled" = lock true;
93
93
-
"devtools.command-button-screenshot.enabled" = lock true;
94
94
-
"devtools.toolbox.host" = lock "right";
95
95
-
"devtools.webconsole.persistlog" = lock true;
96
96
-
"devtools.webconsole.timestampMessages" = lock true;
85
85
+
# Devtools
86
86
+
"devtools.theme" = lock "dark";
87
87
+
"devtools.dom.enabled" = lock true;
88
88
+
"devtools.command-button-rulers.enabled" = lock true;
89
89
+
"devtools.command-button-measure.enabled" = lock true;
90
90
+
"devtools.command-button-screenshot.enabled" = lock true;
91
91
+
"devtools.toolbox.host" = lock "right";
92
92
+
"devtools.webconsole.persistlog" = lock true;
93
93
+
"devtools.webconsole.timestampMessages" = lock true;
97
94
98
98
-
# Privacy
99
99
-
"dom.private-attribution.submission.enabled" = lock false;
100
100
-
"privacy.globalprivacycontrol.enabled" = lock true;
101
101
-
};
95
95
+
# Privacy
96
96
+
"dom.private-attribution.submission.enabled" = lock false;
97
97
+
"privacy.globalprivacycontrol.enabled" = lock true;
98
98
+
};
102
99
103
100
Extensions.Install =
104
101
map (x: "https://addons.mozilla.org/firefox/downloads/latest/${x}/latest.xpi")
105
105
-
[
106
106
-
# Appearance
107
107
-
"catppuccin-mocha-green"
108
108
-
"darkreader"
109
109
-
"material-icons-for-github"
110
110
-
"refined-github-"
102
102
+
[
103
103
+
# Appearance
104
104
+
"catppuccin-mocha-green"
105
105
+
"darkreader"
106
106
+
"material-icons-for-github"
107
107
+
"refined-github-"
111
108
112
112
-
# Security / Privacy
113
113
-
"privacy-badger17"
114
114
-
"decentraleyes"
115
115
-
"canvasblocker"
116
116
-
"facebook-container"
109
109
+
# Security / Privacy
110
110
+
"privacy-badger17"
111
111
+
"decentraleyes"
112
112
+
"canvasblocker"
113
113
+
"facebook-container"
117
114
118
118
-
## Ads / Youtube
119
119
-
"adnauseam"
120
120
-
"sponsorblock"
121
121
-
"youtube-shorts-block"
122
122
-
"dearrow"
115
115
+
## Ads / Youtube
116
116
+
"adnauseam"
117
117
+
"sponsorblock"
118
118
+
"youtube-shorts-block"
119
119
+
"dearrow"
123
120
124
124
-
# Information
125
125
-
"flagfox"
126
126
-
"awesome-rss"
121
121
+
# Information
122
122
+
"flagfox"
123
123
+
"awesome-rss"
127
124
128
128
-
# Devtools
129
129
-
"react-devtools"
130
130
-
"open-graph-preview-and-debug"
131
131
-
"wave-accessibility-tool"
132
132
-
"styl-us"
125
125
+
# Devtools
126
126
+
"react-devtools"
127
127
+
"open-graph-preview-and-debug"
128
128
+
"wave-accessibility-tool"
129
129
+
"styl-us"
133
130
134
134
-
# Misc
135
135
-
"plasma-integration" # integration with MPRIS & KDE Connect
136
136
-
"keepassxc-browser" # integration with KeepassXC
137
137
-
"meowad" # Replace ads on Twitter with :3
138
138
-
];
131
131
+
# Misc
132
132
+
"plasma-integration" # integration with MPRIS & KDE Connect
133
133
+
"keepassxc-browser" # integration with KeepassXC
134
134
+
"meowad" # Replace ads on Twitter with :3
135
135
+
];
139
136
140
137
ExtensionSettings."*" = {
141
138
default_area = "menupanel";
···
145
142
force = true;
146
143
default = "ddg@search.mozilla.orgdefault";
147
144
privateDefault = "ddg@search.mozilla.orgdefault";
148
148
-
engines =
149
149
-
let
150
150
-
mkEngineForceFavicon = aliases: queryUrl: iconUrl: {
151
151
-
definedAliases = aliases;
152
152
-
icon = iconUrl;
153
153
-
urls = [ { template = queryUrl; } ];
154
154
-
};
155
155
-
mkEngine =
156
156
-
aliases: queryUrl: iconExt:
157
157
-
(mkEngineForceFavicon aliases queryUrl (
158
158
-
let
159
159
-
noPath = lib.strings.concatStrings (
160
160
-
lib.strings.intersperse "/" (lib.lists.take 3 (lib.strings.splitString "/" queryUrl))
161
161
-
);
162
162
-
in
163
163
-
"${noPath}/favicon.${iconExt}"
164
164
-
));
165
165
-
in
166
166
-
{
167
167
-
# Dev
168
168
-
"GitHub Repos" =
169
169
-
mkEngineForceFavicon [ "@gh" "@github" ]
170
170
-
"https://github.com/search?type=repositories&q={searchTerms}"
171
171
-
"https://github.githubassets.com/favicons/favicon-dark.svg";
172
172
-
"SourceGraph" = mkEngine [
173
173
-
"@sg"
174
174
-
"@sourcegraph"
175
175
-
] "https://sourcegraph.com/search?q={searchTerms}" "png";
145
145
+
engines = let
146
146
+
mkEngineForceFavicon = aliases: queryUrl: iconUrl: {
147
147
+
definedAliases = aliases;
148
148
+
icon = iconUrl;
149
149
+
urls = [{template = queryUrl;}];
150
150
+
};
151
151
+
mkEngine = aliases: queryUrl: iconExt: (mkEngineForceFavicon aliases queryUrl (
152
152
+
let
153
153
+
noPath = lib.strings.concatStrings (
154
154
+
lib.strings.intersperse "/" (lib.lists.take 3 (lib.strings.splitString "/" queryUrl))
155
155
+
);
156
156
+
in "${noPath}/favicon.${iconExt}"
157
157
+
));
158
158
+
in {
159
159
+
# Dev
160
160
+
"GitHub Repos" =
161
161
+
mkEngineForceFavicon ["@gh" "@github"]
162
162
+
"https://github.com/search?type=repositories&q={searchTerms}"
163
163
+
"https://github.githubassets.com/favicons/favicon-dark.svg";
164
164
+
"SourceGraph" = mkEngine [
165
165
+
"@sg"
166
166
+
"@sourcegraph"
167
167
+
] "https://sourcegraph.com/search?q={searchTerms}" "png";
176
168
177
177
-
## Web
178
178
-
"MDN Web Docs" = mkEngine [
179
179
-
"@mdn"
180
180
-
] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico";
181
181
-
"Web.Dev" =
182
182
-
mkEngineForceFavicon [ "@webdev" "@lighthouse" ] "https://web.dev/s/results?q={searchTerms}"
183
183
-
"https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png";
184
184
-
"Can I Use" = mkEngineForceFavicon [
185
185
-
"@ciu"
186
186
-
"@baseline"
187
187
-
] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png";
188
188
-
"NPM" =
189
189
-
mkEngineForceFavicon [ "@npm" ] "https://www.npmjs.com/search?q={searchTerms}"
190
190
-
"https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png";
191
191
-
"Iconify" = mkEngine [
192
192
-
"@iconify"
193
193
-
"@icons"
194
194
-
] "https://icon-sets.iconify.design/?query={searchTerms}" "ico";
195
195
-
"Astro" = mkEngineForceFavicon [
196
196
-
"@astro"
197
197
-
] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg";
198
198
-
"Porkbun" = mkEngine [ "@porkbun" ] "https://porkbun.com/checkout/search?q={searchTerms}" "ico";
199
199
-
"Http.Cat" = mkEngine [ "@cat" "@hcat" "@httpcat" ] "https://http.cat/{searchTerms}" "ico";
169
169
+
## Web
170
170
+
"MDN Web Docs" = mkEngine [
171
171
+
"@mdn"
172
172
+
] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico";
173
173
+
"Web.Dev" =
174
174
+
mkEngineForceFavicon ["@webdev" "@lighthouse"] "https://web.dev/s/results?q={searchTerms}"
175
175
+
"https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png";
176
176
+
"Can I Use" = mkEngineForceFavicon [
177
177
+
"@ciu"
178
178
+
"@baseline"
179
179
+
] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png";
180
180
+
"NPM" =
181
181
+
mkEngineForceFavicon ["@npm"] "https://www.npmjs.com/search?q={searchTerms}"
182
182
+
"https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png";
183
183
+
"Iconify" = mkEngine [
184
184
+
"@iconify"
185
185
+
"@icons"
186
186
+
] "https://icon-sets.iconify.design/?query={searchTerms}" "ico";
187
187
+
"Astro" = mkEngineForceFavicon [
188
188
+
"@astro"
189
189
+
] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg";
190
190
+
"Porkbun" = mkEngine ["@porkbun"] "https://porkbun.com/checkout/search?q={searchTerms}" "ico";
191
191
+
"Http.Cat" = mkEngine ["@cat" "@hcat" "@httpcat"] "https://http.cat/{searchTerms}" "ico";
200
192
201
201
-
## Rust
202
202
-
"Crates.io" = mkEngine [
203
203
-
"@crates"
204
204
-
"@cratesio"
205
205
-
"@cargo"
206
206
-
] "https://crates.io/search?q={searchTerms}" "ico";
207
207
-
"Rust Docs" =
208
208
-
mkEngineForceFavicon [ "@rust" "@rustdocs" "@ruststd" ]
209
209
-
"https://doc.rust-lang.org/std/index.html?search={searchTerms}"
210
210
-
"https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg";
211
211
-
"Docsrs" = mkEngine [ "@docsrs" ] "https://docs.rs/releases/search?query={searchTerms}" "ico";
193
193
+
## Rust
194
194
+
"Crates.io" = mkEngine [
195
195
+
"@crates"
196
196
+
"@cratesio"
197
197
+
"@cargo"
198
198
+
] "https://crates.io/search?q={searchTerms}" "ico";
199
199
+
"Rust Docs" =
200
200
+
mkEngineForceFavicon ["@rust" "@rustdocs" "@ruststd"]
201
201
+
"https://doc.rust-lang.org/std/index.html?search={searchTerms}"
202
202
+
"https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg";
203
203
+
"Docsrs" = mkEngine ["@docsrs"] "https://docs.rs/releases/search?query={searchTerms}" "ico";
212
204
213
213
-
## Python
214
214
-
"PyPI" = mkEngineForceFavicon [
215
215
-
"@pypi"
216
216
-
"@pip"
217
217
-
] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico";
205
205
+
## Python
206
206
+
"PyPI" = mkEngineForceFavicon [
207
207
+
"@pypi"
208
208
+
"@pip"
209
209
+
] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico";
218
210
219
219
-
## .NET
220
220
-
"NuGet" = mkEngine [ "@nuget" ] "https://www.nuget.org/packages?q={searchTerms}" "ico";
211
211
+
## .NET
212
212
+
"NuGet" = mkEngine ["@nuget"] "https://www.nuget.org/packages?q={searchTerms}" "ico";
221
213
222
222
-
## Linux Stuff
223
223
-
"Kernel Docs" = mkEngine [
224
224
-
"@lnx"
225
225
-
"@linux"
226
226
-
"@kernel"
227
227
-
] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico";
228
228
-
"Arch Wiki" = mkEngine [
229
229
-
"@aw"
230
230
-
"@arch"
231
231
-
] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico";
232
232
-
"Nerd Fonts" =
233
233
-
mkEngineForceFavicon [ "@nf" "@nerdfonts" ] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}"
234
234
-
"https://www.nerdfonts.com/assets/img/favicon.ico";
214
214
+
## Linux Stuff
215
215
+
"Kernel Docs" = mkEngine [
216
216
+
"@lnx"
217
217
+
"@linux"
218
218
+
"@kernel"
219
219
+
] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico";
220
220
+
"Arch Wiki" = mkEngine [
221
221
+
"@aw"
222
222
+
"@arch"
223
223
+
] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico";
224
224
+
"Nerd Fonts" =
225
225
+
mkEngineForceFavicon ["@nf" "@nerdfonts"] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}"
226
226
+
"https://www.nerdfonts.com/assets/img/favicon.ico";
235
227
236
236
-
### Nix
237
237
-
"Nix Packages" = mkEngine [
238
238
-
"@nixpkgs"
239
239
-
] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png";
240
240
-
"NixOS Options" = mkEngine [
241
241
-
"@nixos"
242
242
-
] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png";
243
243
-
"NixOS Wiki" = mkEngine [ "@nixwiki" ] "https://nixos.wiki/index.php?search={searchTerms}" "png";
244
244
-
"Home Manager Options" =
245
245
-
mkEngineForceFavicon [ "@hm" ]
246
246
-
"https://home-manager-options.extranix.com/?release=master&query={searchTerms}"
247
247
-
"https://home-manager-options.extranix.com/images/favicon.png";
248
248
-
"Noogle" = mkEngine [
249
249
-
"@noogle"
250
250
-
"@nixlib"
251
251
-
] "https://noogle.dev/q?limit=100&term={searchTerms}" "png";
252
252
-
"SourceGraph Nix" =
253
253
-
mkEngine [ "@sgn" "@yoink" ]
254
254
-
"https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}"
255
255
-
"png";
256
256
-
"Nixpkgs Issues" =
257
257
-
mkEngineForceFavicon [ "@nixissues" ]
258
258
-
"https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}"
259
259
-
"https://github.githubassets.com/favicons/favicon-dark.svg";
260
260
-
"NixVim Options" =
261
261
-
mkEngineForceFavicon [ "@nixvim" ]
262
262
-
"https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}"
263
263
-
"https://nix-community.github.io/nixvim/search/favicon.ico";
228
228
+
### Nix
229
229
+
"Nix Packages" = mkEngine [
230
230
+
"@nixpkgs"
231
231
+
] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png";
232
232
+
"NixOS Options" = mkEngine [
233
233
+
"@nixos"
234
234
+
] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png";
235
235
+
"NixOS Wiki" = mkEngine ["@nixwiki"] "https://nixos.wiki/index.php?search={searchTerms}" "png";
236
236
+
"Home Manager Options" =
237
237
+
mkEngineForceFavicon ["@hm"]
238
238
+
"https://home-manager-options.extranix.com/?release=master&query={searchTerms}"
239
239
+
"https://home-manager-options.extranix.com/images/favicon.png";
240
240
+
"Noogle" = mkEngine [
241
241
+
"@noogle"
242
242
+
"@nixlib"
243
243
+
] "https://noogle.dev/q?limit=100&term={searchTerms}" "png";
244
244
+
"SourceGraph Nix" =
245
245
+
mkEngine ["@sgn" "@yoink"]
246
246
+
"https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}"
247
247
+
"png";
248
248
+
"Nixpkgs Issues" =
249
249
+
mkEngineForceFavicon ["@nixissues"]
250
250
+
"https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}"
251
251
+
"https://github.githubassets.com/favicons/favicon-dark.svg";
252
252
+
"NixVim Options" =
253
253
+
mkEngineForceFavicon ["@nixvim"]
254
254
+
"https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}"
255
255
+
"https://nix-community.github.io/nixvim/search/favicon.ico";
264
256
265
265
-
# Media
266
266
-
"youtube" = mkEngine [ "@yt" ] "https://www.youtube.com/results?search_query={searchTerms}" "ico";
267
267
-
"Spotify" =
268
268
-
mkEngineForceFavicon [ "@sp" "@spotify" ] "https://open.spotify.com/search/{searchTerms}"
269
269
-
"https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png";
270
270
-
"Netflix" = mkEngine [ "@nfx" ] "https://www.netflix.com/search?q={searchTerms}" "ico";
271
271
-
"IMDb" = mkEngine [ "@imdb" ] "https://www.imdb.com/find?q={searchTerms}" "ico";
257
257
+
# Media
258
258
+
"youtube" = mkEngine ["@yt"] "https://www.youtube.com/results?search_query={searchTerms}" "ico";
259
259
+
"Spotify" =
260
260
+
mkEngineForceFavicon ["@sp" "@spotify"] "https://open.spotify.com/search/{searchTerms}"
261
261
+
"https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png";
262
262
+
"Netflix" = mkEngine ["@nfx"] "https://www.netflix.com/search?q={searchTerms}" "ico";
263
263
+
"IMDb" = mkEngine ["@imdb"] "https://www.imdb.com/find?q={searchTerms}" "ico";
272
264
273
273
-
# Misc
274
274
-
"Firefox Add-ons" = mkEngine [
275
275
-
"@addons"
276
276
-
] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico";
277
277
-
"Urban Dictionary" = mkEngine [
278
278
-
"@ud"
279
279
-
"@urban"
280
280
-
] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico";
265
265
+
# Misc
266
266
+
"Firefox Add-ons" = mkEngine [
267
267
+
"@addons"
268
268
+
] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico";
269
269
+
"Urban Dictionary" = mkEngine [
270
270
+
"@ud"
271
271
+
"@urban"
272
272
+
] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico";
281
273
282
282
-
# Overrides
283
283
-
"History".metaData.alias = "@h";
284
284
-
"Bookmarks".metaData.alias = "@b";
285
285
-
"Tabs".metaData.alias = "@t";
286
286
-
"bing@search.mozilla.orgdefault".metaData.hidden = true;
287
287
-
"amazondotcom-us@search.mozilla.orgdefault".metaData.alias = "@amz";
288
288
-
"google@search.mozilla.orgdefault".metaData.alias = "@g";
289
289
-
"wikipedia@search.mozilla.orgdefault".metaData.alias = "@w";
290
290
-
};
274
274
+
# Overrides
275
275
+
"History".metaData.alias = "@h";
276
276
+
"Bookmarks".metaData.alias = "@b";
277
277
+
"Tabs".metaData.alias = "@t";
278
278
+
"bing@search.mozilla.orgdefault".metaData.hidden = true;
279
279
+
"amazondotcom-us@search.mozilla.orgdefault".metaData.alias = "@amz";
280
280
+
"google@search.mozilla.orgdefault".metaData.alias = "@g";
281
281
+
"wikipedia@search.mozilla.orgdefault".metaData.alias = "@w";
282
282
+
};
291
283
};
292
284
};
293
285
};