adds brave browser

adds brave browser search engine inject script
adds sqlite and sqlitebrowser
updates wireguard vpn peers
updates dash-to-dock fav apps
adds plexamp
updates update.sh to show slightly more logging
updates auto-start to clear dead screens before starting stuff
This commit is contained in:
Menno van Leeuwen 2024-11-14 12:03:40 +01:00
parent 042826cd4f
commit a26038b47a
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE
13 changed files with 212 additions and 17 deletions

View File

@ -10,6 +10,11 @@ apps=(
fcitx5
)
# check if screen has any dead sessions
if screen -list | grep -q "Dead"; then
screen -wipe
fi
echo "Starting auto-start applications..."
for app in "${apps[@]}"; do
if [ -x "$(command -v $app)" ]; then
@ -24,7 +29,3 @@ for app in "${apps[@]}"; do
fi
done
# check if screen has any dead sessions
if screen -list | grep -q "Dead"; then
screen -wipe
fi

View File

@ -93,7 +93,10 @@ symlinks() {
}
sys_packages_upgrade() {
printfe "%s\n" "cyan" "Running NixOS channel update..."
sudo nix-channel --update
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure
}
@ -157,6 +160,8 @@ flatpakpkgs() {
}
homemanager() {
printfe "%s\n" "cyan" "Running Home Manager update..."
# Due to weirdness delete this file if it exists
if [ -f "$HOME/.config/mimeapps.list.backup" ]; then
echo "Removing mimeapps.list.backup"

View File

@ -0,0 +1,10 @@
[Flatpak Ref]
Name=com.plexamp.Plexamp
Branch=stable
Title=com.plexamp.Plexamp from flathub
IsRuntime=false
Url=https://dl.flathub.org/repo/
SuggestRemoteName=flathub
GPGKey=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
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo

View File

@ -0,0 +1,132 @@
#!/usr/bin/env bash
BRAVE_DIR="$HOME/.config/BraveSoftware/Brave-Browser/Default"
MAX_ATTEMPTS=30 # Maximum number of seconds to wait
# Function to kill all Brave processes
kill_brave() {
# Store whether Brave was running
if pgrep -x "brave" > /dev/null; then
echo "Brave was running, will restart after completion"
export BRAVE_WAS_RUNNING=1
else
export BRAVE_WAS_RUNNING=0
fi
echo "Closing all Brave browser instances..."
pkill -x "brave" || true
sleep 2 # Give it a moment to clean up
# Force kill if any processes remain
if pgrep -x "brave" > /dev/null; then
echo "Force closing remaining Brave processes..."
pkill -9 -x "brave" || true
fi
}
# Function to check if database is locked
is_db_locked() {
local db_file="$1"
if lsof "$db_file" >/dev/null 2>&1; then
return 0 # true, db is locked
else
return 1 # false, db is not locked
fi
}
# Check if profile exists
if [ ! -d "$BRAVE_DIR" ]; then
echo "Brave profile directory doesn't exist. Please run Brave at least once."
exit 1
fi
# Check if Web Data exists
if [ ! -f "$BRAVE_DIR/Web Data" ]; then
echo "Web Data file doesn't exist. Please run Brave at least once."
exit 1
fi
# Kill any running Brave instances
kill_brave
# Wait for database to be unlocked
attempts=0
while is_db_locked "$BRAVE_DIR/Web Data" && [ $attempts -lt $MAX_ATTEMPTS ]; do
echo "Database is locked. Waiting... ($attempts/$MAX_ATTEMPTS)"
sleep 1
attempts=$((attempts + 1))
done
if is_db_locked "$BRAVE_DIR/Web Data"; then
echo "Database is still locked after $MAX_ATTEMPTS seconds. Please ensure Brave is completely closed and try again."
exit 1
fi
echo "Setting up search engines..."
# Create temporary file for SQL commands
SQLCOMMANDS=$(mktemp)
cat > $SQLCOMMANDS << 'ENDSQL'
DELETE FROM keywords WHERE keyword NOT IN ('@bookmarks', '@history');
INSERT INTO keywords (
short_name, keyword, favicon_url, url, safe_for_autoreplace,
date_created, usage_count, input_encodings, suggest_url, prepopulate_id,
sync_guid, alternate_urls, last_visited, is_active
) VALUES
(
'Brave', ':br',
'https://cdn.search.brave.com/serp/v2/_app/immutable/assets/favicon.acxxetWH.ico',
'https://search.brave.com/search?q={searchTerms}&source=desktop',
1, 0, 0, 'UTF-8',
'https://search.brave.com/api/suggest?q={searchTerms}&rich=true&source=desktop',
550, '485bf7d3-0215-45af-87dc-538868000550', '[]', 13376052494948729, 0
),
(
'Google', ':g',
'https://www.google.com/images/branding/product/ico/googleg_alldp.ico',
'{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:language}{google:prefetchSource}{google:searchClient}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}',
1, 0, 0, 'UTF-8',
'{google:baseSuggestURL}search?{google:searchFieldtrialParameter}client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:omniboxFocusType}{google:cursorPosition}{google:currentPageUrl}{google:pageClassification}{google:clientCacheTimeToLive}{google:searchVersion}{google:sessionToken}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}',
1, '485bf7d3-0215-45af-87dc-538868000001', '[]', 0, 0
),
(
'DuckDuckGo', ':d',
'https://duckduckgo.com/favicon.ico',
'https://duckduckgo.com/?q={searchTerms}&t=brave',
1, 0, 0, 'UTF-8',
'https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list',
501, '485bf7d3-0215-45af-87dc-538868000501', '[]', 0, 0
),
(
'NixOS', 'nix',
'https://search.nixos.org/favicon.png',
'https://search.nixos.org/packages?query={searchTerms}',
1, 13376052510404586, 1, '',
'',
0, 'bea7b4cd-8693-40d8-8bd0-7f59e0f0eb8d', '[]', 13376052522458505, 1
),
(
'GoLink', 'go',
'https://tailscale.com/favicon.ico',
'http://go/{searchTerms}',
1, 13376052510404586, 1, '',
'',
0, 'bef7b3cd-8693-40d8-8bd0-5f59e0f0eb8d', '[]', 13376052522458505, 1
);
ENDSQL
# Execute SQL commands
sqlite3 "$BRAVE_DIR/Web Data" < $SQLCOMMANDS
# Cleanup
rm $SQLCOMMANDS
echo "Search engines setup completed successfully!"
# Restart Brave if it was running before
if [ "$BRAVE_WAS_RUNNING" = "1" ]; then
echo "Restarting Brave..."
brave &> /dev/null &
fi

View File

@ -0,0 +1,38 @@
{
lib,
config,
pkgs,
...
}:
{
# Copy search engine configuration script
home.file.".local/bin/brave-search-engines.sh" = {
source = ./brave-search-engines.sh;
executable = true;
};
# Run search engine configuration script
home.activation = {
setBraveSearchEngines = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
PATH="${pkgs.procps}/bin:${pkgs.sqlite}/bin:$PATH" $HOME/.local/bin/brave-search-engines.sh
'';
};
programs.chromium = {
enable = true;
package = pkgs.brave;
extensions = [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
{ id = "aeblfdkhhhdcdjpifhhbdiojplfjncoa"; } # 1password
{ id = "oldceeleldhonbafppcapldpdifcinji"; } # language tool
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # sponsor block
{ id = "gebbhagfogifgggkldgodflihgfeippi"; } # return youtube dislike
{ id = "neebplgakaahbhdphmkckjjcegoiijjo"; } # keepa
{ id = "dnhpnfgdlenaccegplpojghhmaamnnfp"; } # augmented steam
{ id = "fihnjjcciajhdojfnbdddfaoknhalnja"; } # I don't care about cookies
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # gnome shell integration
{ id = "eadndfjplgieldjbigjakmdgkmoaaaoc"; } # xdebug helper
];
commandLineArgs = [ ];
};
}

View File

@ -1,7 +1,10 @@
{ ... }:
let
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
files = builtins.removeAttrs (builtins.readDir ./.) [
"default.nix"
"brave-search-engines.sh"
];
# Import all other .nix files as modules
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);

View File

@ -13,6 +13,7 @@
gnome-frog # OCR tool
gnome.gnome-boxes # Virtual machine manager
deja-dup # Backup tool
sqlitebrowser # SQLite database manager
## Chat Apps
telegram-desktop

View File

@ -40,10 +40,10 @@
};
# Pinned apps
# add more by listing them with `gsettings list-recursively | grep favorite-apps`
# add more by listing them with `gsettings list-recursively | grep favorite-apps | sed "s/,//g; s/'/\"/g"` then copy pasting the output here
"org/gnome/shell" = {
favorite-apps = [
"io.github.zen_browser.zen.desktop"
"brave-browser.desktop"
"code.desktop"
"org.telegram.desktop.desktop"
"spotify.desktop"

View File

@ -4,11 +4,11 @@
xdg.mimeApps = {
enable = true;
defaultApplications = {
# Zen Browser
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
# Brave Browser
"application/xhtml+xml" = [ "brave-browser.desktop" ];
"text/html" = [ "brave-browser.desktop" ];
"x-scheme-handler/http" = [ "brave-browser.desktop" ];
"x-scheme-handler/https" = [ "brave-browser.desktop" ];
# Geary
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];

View File

@ -12,6 +12,7 @@
user-themes
weather-oclock
native-window-placement
kimpanel
]
++ (with pkgs-unstable.gnomeExtensions; [
tiling-shell
@ -55,6 +56,7 @@
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"kimpanel@kde.org"
"lilypad@shendrew.github.io"
"tilingshell@ferrarodomenico.com"
"gsconnect@andyholmes.github.io"
@ -94,6 +96,8 @@
# Configure dash-to-dock
"org/gnome/shell/extensions/dash-to-dock" = {
pressure-threshold = 250;
require-pressure-to-show = false;
apply-custom-theme = false;
apply-glossy-effect = false;
autohide-in-fullscreen = true;

View File

@ -17,7 +17,7 @@ services:
cap_add:
- NET_ADMIN
environment:
- PEERS=fold6,pc,laptop
- PEERS=s24,pc,laptop
volumes:
- ./config:/config
ports:
@ -25,4 +25,3 @@ services:
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped

View File

@ -5,5 +5,6 @@
environment.systemPackages = with pkgs; [
yubikey-manager
trash-cli
sqlite # Used for managing SQLite databases (Brave Settings etc.)
];
}

View File

@ -13,6 +13,7 @@
"docker"
"video"
"render"
"users"
];
};
}