Chrome: Manage declaratively.
This commit is contained in:
parent
83e8d165ea
commit
b887b6cb7d
79
home/config/chromium/default.nix
Normal file
79
home/config/chromium/default.nix
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
file = (pkgs.formats.json { }).generate "ChromiumConfig" {
|
||||||
|
bookmark_bar.show_on_all_tabs = false;
|
||||||
|
browser.show_home_button = false;
|
||||||
|
default_apps_install_state = 2;
|
||||||
|
default_search_provider = {
|
||||||
|
guid = "5761b040-db50-4f8e-9d00-c9ad985779a4";
|
||||||
|
synced_guid = "5761b040-db50-4f8e-9d00-c9ad985779a4";
|
||||||
|
};
|
||||||
|
default_search_provider_data = {
|
||||||
|
template_url_data = {
|
||||||
|
id = 11;
|
||||||
|
is_active = 1;
|
||||||
|
keyword = "s";
|
||||||
|
short_name = "SearX";
|
||||||
|
synced_guid = "5761b040-db50-4f8e-9d00-c9ad985779a4";
|
||||||
|
url = "https://search.voronind.com/search?q={searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
download.prompt_for_download = false;
|
||||||
|
download_bubble.partial_view_enabled = false;
|
||||||
|
extensions = {
|
||||||
|
alerts.initialized = false;
|
||||||
|
commands = {
|
||||||
|
"linux:Alt+Shift+L" = {
|
||||||
|
command_name = "addSite";
|
||||||
|
extension = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
|
||||||
|
global = false;
|
||||||
|
};
|
||||||
|
"linux:Alt+Shift+B" = {
|
||||||
|
command_name = "_execute_browser_action";
|
||||||
|
extension = "cgbcahbpdhpcegmbfconppldiemgcoii";
|
||||||
|
global = false;
|
||||||
|
};
|
||||||
|
"linux:Alt+Shift+K" = {
|
||||||
|
command_name = "launch-element-zapper";
|
||||||
|
extension = "cgbcahbpdhpcegmbfconppldiemgcoii";
|
||||||
|
global = false;
|
||||||
|
};
|
||||||
|
"linux:Alt+Shift+J" = {
|
||||||
|
command_name = "toggle-javascript";
|
||||||
|
extension = "cgbcahbpdhpcegmbfconppldiemgcoii";
|
||||||
|
global = false;
|
||||||
|
};
|
||||||
|
"linux:Alt+Shift+P" = {
|
||||||
|
command_name = "_execute_action";
|
||||||
|
extension = "gcknhkkoolaabfmlnjonogaaifnjlfnp";
|
||||||
|
global = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
intl.selected_languages = "en-US,en";
|
||||||
|
password_manager = {
|
||||||
|
autofillable_credentials_account_store_login_database = false;
|
||||||
|
autofillable_credentials_profile_store_login_database = false;
|
||||||
|
};
|
||||||
|
name = "Work";
|
||||||
|
session.restore_on_startup = 1;
|
||||||
|
side_panel.is_right_aligned = false;
|
||||||
|
webkit = {
|
||||||
|
webprefs = {
|
||||||
|
default_fixed_font_size = 14;
|
||||||
|
default_font_size = 17;
|
||||||
|
minimum_font_size = 16;
|
||||||
|
fonts = let
|
||||||
|
mono = "Terminess Nerd Font Mono";
|
||||||
|
sans = "SF Pro";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
fixed.Zyyy = mono;
|
||||||
|
sansserif.Zyyy = sans;
|
||||||
|
serif.Zyyy = sans;
|
||||||
|
standard.Zyyy = sans;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,6 +6,7 @@
|
||||||
}@args:
|
}@args:
|
||||||
let
|
let
|
||||||
btop = import ./btop args;
|
btop = import ./btop args;
|
||||||
|
chromium = import ./chromium args;
|
||||||
editor = import ./editorconfig args;
|
editor = import ./editorconfig args;
|
||||||
foot = import ./foot args;
|
foot = import ./foot args;
|
||||||
fuzzel = import ./fuzzel args;
|
fuzzel = import ./fuzzel args;
|
||||||
|
@ -28,6 +29,7 @@ in
|
||||||
".config/MangoHud/MangoHud.conf".source = mangohud.config;
|
".config/MangoHud/MangoHud.conf".source = mangohud.config;
|
||||||
".config/MangoHud/presets.conf".source = mangohud.presets;
|
".config/MangoHud/presets.conf".source = mangohud.presets;
|
||||||
".config/btop/btop.conf".text = btop.text;
|
".config/btop/btop.conf".text = btop.text;
|
||||||
|
".config/chromium/Default/Preferences".source = chromium.file;
|
||||||
".config/foot/foot.ini".source = foot.file;
|
".config/foot/foot.ini".source = foot.file;
|
||||||
".config/fuzzel/fuzzel.ini".source = fuzzel.file;
|
".config/fuzzel/fuzzel.ini".source = fuzzel.file;
|
||||||
".config/gtk-3.0/bookmarks".text = gtk3.bookmarks;
|
".config/gtk-3.0/bookmarks".text = gtk3.bookmarks;
|
||||||
|
@ -48,10 +50,10 @@ in
|
||||||
".ideavimrc".text = jetbrains.ideavimrc;
|
".ideavimrc".text = jetbrains.ideavimrc;
|
||||||
".nix".source = self;
|
".nix".source = self;
|
||||||
".nixpkgs".source = inputs.nixpkgs;
|
".nixpkgs".source = inputs.nixpkgs;
|
||||||
# TODO: Add after migrating to stable.
|
|
||||||
# ".nixpkgs_unstable".source = inputs.nixpkgs;
|
|
||||||
# ".nixpkgs_master".source = inputs.nixpkgs;
|
|
||||||
".parallel/will-cite".text = "";
|
".parallel/will-cite".text = "";
|
||||||
".ssh/config".text = ssh.text;
|
".ssh/config".text = ssh.text;
|
||||||
".template".source = ./template;
|
".template".source = ./template;
|
||||||
|
# ".nixpkgs_master".source = inputs.nixpkgs;
|
||||||
|
# ".nixpkgs_unstable".source = inputs.nixpkgs;
|
||||||
|
# TODO: Add after migrating to stable.
|
||||||
}
|
}
|
||||||
|
|
29
home/config/keyd/module/Chromium.nix
Normal file
29
home/config/keyd/module/Chromium.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
file = (pkgs.formats.ini { }).generate "KeydChromiumConfig" {
|
||||||
|
"chromium-browser" = {
|
||||||
|
"alt.capslock" = "C-t"; # New tab.
|
||||||
|
"alt.x" = "C-w"; # Close tab.
|
||||||
|
"alt.u" = "C-S-t"; # Restore closed tab.
|
||||||
|
"alt.q" = "C-pageup"; # Prev tab.
|
||||||
|
"alt.e" = "C-pagedown"; # Next tab.
|
||||||
|
"alt.Q" = "C-S-pageup"; # Move tab left.
|
||||||
|
"alt.E" = "C-S-pagedown"; # Move tab right.
|
||||||
|
"alt.a" = "A-left"; # Go back.
|
||||||
|
"alt.d" = "A-right"; # Go forward.
|
||||||
|
"alt.s" = "down"; # Scroll down.
|
||||||
|
"alt.w" = "up"; # Scroll up.
|
||||||
|
"alt.f" = "C-f"; # Find text.
|
||||||
|
"alt.N" = "S-f3"; # Find prev.
|
||||||
|
"alt.n" = "f3"; # Find next.
|
||||||
|
"alt.space" = "f6"; # Focus address bar.
|
||||||
|
"alt.r" = "C-f5"; # Full refresh.
|
||||||
|
"alt.l" = "A-S-l"; # Toggle dark mode.
|
||||||
|
"alt.enter" = "C-S-l"; # Fill password.
|
||||||
|
"alt.p" = "A-S-p"; # Toggle proxy.
|
||||||
|
"alt.j" = "A-S-j"; # Toggle js.
|
||||||
|
"alt.k" = "A-S-k"; # Block element.
|
||||||
|
"alt.b" = "A-S-b"; # Show uBlock.
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -19,7 +19,7 @@
|
||||||
"alt.space" = "f6"; # Focus address bar.
|
"alt.space" = "f6"; # Focus address bar.
|
||||||
"alt.r" = "C-f5"; # Full refresh.
|
"alt.r" = "C-f5"; # Full refresh.
|
||||||
"alt.l" = "A-S-a"; # Toggle dark mode.
|
"alt.l" = "A-S-a"; # Toggle dark mode.
|
||||||
"alt.p" = "C-S-l"; # Fill password.
|
"alt.enter" = "C-S-l"; # Fill password.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
67
home/program/chromium/default.nix
Normal file
67
home/program/chromium/default.nix
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
package = pkgs.ungoogled-chromium;
|
||||||
|
browserVersion = lib.versions.major package.version;
|
||||||
|
extensions = let
|
||||||
|
fetchFromStore = { id, sha256, version }:
|
||||||
|
{
|
||||||
|
inherit id version;
|
||||||
|
crxPath = pkgs.fetchurl {
|
||||||
|
inherit sha256;
|
||||||
|
url = "https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&prodversion=${browserVersion}&x=id%3D${id}%26installsource%3Dondemand%26uc";
|
||||||
|
name = "${id}.crx";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fetchFromUrl = { id, url, sha256, version }:
|
||||||
|
{
|
||||||
|
inherit id version;
|
||||||
|
crxPath = pkgs.fetchurl {
|
||||||
|
inherit sha256 url;
|
||||||
|
name = "${id}.crx";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
[
|
||||||
|
(fetchFromStore {
|
||||||
|
# uBlock Origin dev.
|
||||||
|
id = "cgbcahbpdhpcegmbfconppldiemgcoii";
|
||||||
|
sha256 = "sha256-sTE96l7/B3n4rJHYC0p4hCVmXUMYj/6O6+596DFIK58=";
|
||||||
|
version = "1.60.1.16";
|
||||||
|
})
|
||||||
|
(fetchFromStore {
|
||||||
|
# Dark reader.
|
||||||
|
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
|
||||||
|
sha256 = "sha256-98sGCo2dG+XYMzBeLR+10Ic5DLjDXhSh1DzatLOCyQQ=";
|
||||||
|
version = "4.9.95";
|
||||||
|
})
|
||||||
|
(fetchFromStore {
|
||||||
|
# Foxy Proxy.
|
||||||
|
id = "gcknhkkoolaabfmlnjonogaaifnjlfnp";
|
||||||
|
sha256 = "sha256-Zm7x/467CaGcEN+cYwf8XowpaZRJQIzIEY/F6NhJ3pA=";
|
||||||
|
version = "8.9";
|
||||||
|
})
|
||||||
|
(fetchFromStore {
|
||||||
|
# Vimium.
|
||||||
|
id = "dbepggeogbaibhgnhhndojpepiihcmeb";
|
||||||
|
sha256 = "sha256-DaEM1NyMX8RMBvWoIVOhmfY/ae66HCNfRFnwAuLUHVU=";
|
||||||
|
version = "2.1.2";
|
||||||
|
})
|
||||||
|
# (fetchFromUrl rec {
|
||||||
|
# # Ext updater.
|
||||||
|
# id = "ocaahdebbfolfmndjeplogmgcagdmblk";
|
||||||
|
# url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v${version}/Chromium.Web.Store.crx";
|
||||||
|
# sha256 = "sha256-gKAcrvnxLh9gMraTFX4zRsUua4OI+lak51gpII29d8g=";
|
||||||
|
# version = "1.5.4.3";
|
||||||
|
# })
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
inherit extensions package;
|
||||||
|
dictionaries = with pkgs.hunspellDictsChromium; [ en_US ];
|
||||||
|
commandLineArgs = [
|
||||||
|
# Disable animations.
|
||||||
|
"--wm-window-animations-disabled"
|
||||||
|
"--animation-duration-scale=0"
|
||||||
|
];
|
||||||
|
}
|
|
@ -28,6 +28,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
desktop = {
|
desktop = {
|
||||||
|
chromium = import ./chromium args;
|
||||||
firefox = import ./firefox args;
|
firefox = import ./firefox args;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,6 @@
|
||||||
|
|
||||||
common = with pkgs; [
|
common = with pkgs; [
|
||||||
evince # Document viewer.
|
evince # Document viewer.
|
||||||
ungoogled-chromium # Just in case I ever need it.
|
|
||||||
gimp # Image manipulation program.
|
gimp # Image manipulation program.
|
||||||
gnome-calculator # Calculator.
|
gnome-calculator # Calculator.
|
||||||
gparted # GUI disk utility just in case.
|
gparted # GUI disk utility just in case.
|
||||||
|
|
Loading…
Reference in a new issue