switch to flatpak zen browser
This commit is contained in:
parent
1229d516f9
commit
4fb1fa9d2c
3
.bashrc
3
.bashrc
@ -59,6 +59,9 @@ export PATH=$PATH:$HOME/.local/bin
|
||||
export PATH=$PATH:$HOME/.cargo/bin
|
||||
export PATH=$PATH:$HOME/dotfiles/bin
|
||||
|
||||
# Add flatpak to XDG_DATA_DIRS
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share
|
||||
|
||||
# Tradaware / DiscountOffice Configuration
|
||||
if [ -d "/home/menno/Projects/Work" ]; then
|
||||
export TRADAWARE_FROM_SOURCE=true
|
||||
|
@ -1,12 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
printfe "%s\n" "cyan" "Exporting GNOME extensions"
|
||||
source $HOME/dotfiles/bin/helpers/gnome_extensions.sh
|
||||
export_gnome_extensions
|
||||
|
||||
printfe "%s\n" "cyan" "Exporting gnome-terminal settings"
|
||||
dconf dump /org/gnome/terminal/ > ~/dotfiles/config/gnome-terminal.dconf
|
||||
|
||||
printfe "%s\n" "green" "Finished, don't forget to commit and push"
|
@ -180,17 +180,6 @@ tailscalecmd() {
|
||||
ensure_tailscale_installed
|
||||
}
|
||||
|
||||
extensions() {
|
||||
if is_wsl; then
|
||||
printfe "%s\n" "yellow" "Running in WSL, skipping extensions."
|
||||
return
|
||||
fi
|
||||
|
||||
printfe "%s\n" "cyan" "Ensuring GNOME Extensions are installed..."
|
||||
source $HOME/dotfiles/bin/helpers/gnome_extensions.sh
|
||||
ensure_gnome_extensions_installed
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
# Update system settings
|
||||
####################################################################################################
|
||||
@ -206,45 +195,6 @@ fonts() {
|
||||
ensure_fonts_installed
|
||||
}
|
||||
|
||||
terminal() {
|
||||
if is_wsl; then
|
||||
printfe "%s\n" "yellow" "Running in WSL, skipping setting default terminal."
|
||||
return
|
||||
fi
|
||||
|
||||
printfe "%s\n" "cyan" "Setting gnome-terminal as default terminal..."
|
||||
if [ -x "$(command -v gnome-terminal)" ]; then
|
||||
current_terminal=$(sudo update-alternatives --query x-terminal-emulator | grep '^Value:' | awk '{print $2}')
|
||||
|
||||
if [ "$current_terminal" != $(which gnome-terminal) ]; then
|
||||
printfe "%s\n" "yellow" " - Setting gnome-terminal as default terminal"
|
||||
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator $(which gnome-terminal) 80
|
||||
else
|
||||
printfe "%s\n" "green" " - gnome-terminal is already the default terminal"
|
||||
fi
|
||||
else
|
||||
printfe "%s\n" "red" " - gnome-terminal is not installed"
|
||||
fi
|
||||
|
||||
# Reset gnome-terminal settings
|
||||
printfe "%s\n" "cyan" "Resetting gnome-terminal settings..."
|
||||
dconf reset -f /org/gnome/terminal/
|
||||
|
||||
# Set gnome-terminal settings from $HOME/dotfiles/config/gnome-terminal
|
||||
printfe "%s\n" "cyan" "Loading gnome-terminal settings..."
|
||||
dconf load /org/gnome/terminal/ < $HOME/dotfiles/config/gnome-terminal.dconf
|
||||
}
|
||||
|
||||
default_shell() {
|
||||
printfe "%s\n" "cyan" "Setting bash as default shell..."
|
||||
if [ "$SHELL" != "/usr/bin/bash" ]; then
|
||||
printfe "%s\n" "yellow" " - Setting bash as default shell"
|
||||
chsh -s /usr/bin/bash
|
||||
else
|
||||
printfe "%s\n" "green" " - bash is already the default shell"
|
||||
fi
|
||||
}
|
||||
|
||||
git_repos() {
|
||||
####################################################################################################
|
||||
# Ensure git repos
|
||||
@ -256,7 +206,7 @@ git_repos() {
|
||||
}
|
||||
|
||||
homemanager() {
|
||||
home-manager switch
|
||||
cd $HOME/dotfiles/config/home-manager && home-manager switch
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
@ -282,14 +232,10 @@ if [ "$#" -eq 0 ]; then
|
||||
git_repos
|
||||
flatpakpkgs
|
||||
tailscalecmd
|
||||
extensions
|
||||
fonts
|
||||
terminal
|
||||
default_shell
|
||||
else
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--homemanager)
|
||||
--home-manager)
|
||||
homemanager
|
||||
;;
|
||||
--git)
|
||||
@ -321,18 +267,6 @@ else
|
||||
--tailscale)
|
||||
tailscalecmd
|
||||
;;
|
||||
--extensions)
|
||||
extensions
|
||||
;;
|
||||
--fonts)
|
||||
fonts
|
||||
;;
|
||||
--terminal)
|
||||
terminal
|
||||
;;
|
||||
--default-shell)
|
||||
default_shell
|
||||
;;
|
||||
*)
|
||||
printfe "%s\n" "red" "Unknown option: $arg"
|
||||
;;
|
||||
|
8
bin/dotf
8
bin/dotf
@ -15,10 +15,6 @@ help() {
|
||||
$HOME/dotfiles/bin/actions/help.sh $@
|
||||
}
|
||||
|
||||
exports() {
|
||||
$HOME/dotfiles/bin/actions/export.sh $@
|
||||
}
|
||||
|
||||
secrets() {
|
||||
$HOME/dotfiles/bin/actions/secrets.sh $@
|
||||
}
|
||||
@ -62,10 +58,6 @@ case $1 in
|
||||
logo continue
|
||||
status $@
|
||||
;;
|
||||
"export")
|
||||
logo
|
||||
exports $@
|
||||
;;
|
||||
"help"|"--help"|"")
|
||||
help $@
|
||||
;;
|
||||
|
@ -1,95 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
install_font() {
|
||||
font_url="$1"
|
||||
font_name="$2"
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
font_dir="$HOME/Library/Fonts"
|
||||
else
|
||||
font_dir="$HOME/.local/share/fonts"
|
||||
fi
|
||||
|
||||
mkdir -p $font_dir
|
||||
|
||||
# Check if any font files with the base name exist in the target directory
|
||||
found=$(find "$font_dir" -name "${font_name}*.ttf" | wc -l)
|
||||
if [ $found -gt 0 ]; then
|
||||
printfe "%s\n" "green" " - $font_name is already installed"
|
||||
else
|
||||
printfe "%s" "yellow" " - Downloading $font_name..."
|
||||
echo -en "\r"
|
||||
|
||||
result=$(curl -s -L -w "%{http_code}" -o /tmp/$font_name.zip $font_url)
|
||||
if [ $? -ne 0 ] || [ "$result" -ne "200" ]; then
|
||||
printfe "%s\n" "red" " - Failed to download $font_name"
|
||||
printfe "%s\n" "red" " HTTP status code: $result"
|
||||
return 1
|
||||
fi
|
||||
|
||||
printfe "%s" "yellow" " - Unzipping $font_name..."
|
||||
echo -en "\r"
|
||||
|
||||
result=$(unzip -o /tmp/$font_name.zip -d /tmp/$font_name 2>&1)
|
||||
if [ $? -ne 0 ]; then
|
||||
printfe "%s\n" "red" " - Failed to unzip $font_name"
|
||||
printfe "%s\n" "red" " Error: $result"
|
||||
return 1
|
||||
fi
|
||||
|
||||
printfe "%s\n" "yellow" " - Moving $font_name to $font_dir..."
|
||||
mv /tmp/$font_name/*.ttf $font_dir &> /dev/null
|
||||
|
||||
# Clear font cache
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
fc-cache -fv $font_dir &> /dev/null
|
||||
fi
|
||||
|
||||
printfe "%s\n" "green" " - $font_name has been installed"
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_fonts_installed() {
|
||||
# Load fonts from cat $DOTFILES_CONFIG | shyaml keys config.fonts
|
||||
fonts=($(cat $DOTFILES_CONFIG | shyaml keys config.fonts))
|
||||
|
||||
for font in "${fonts[@]}"; do
|
||||
name=$(cat $DOTFILES_CONFIG | shyaml get-value config.fonts.$font.name)
|
||||
url=$(cat $DOTFILES_CONFIG | shyaml get-value config.fonts.$font.url)
|
||||
install_font $url $name
|
||||
done
|
||||
}
|
||||
|
||||
print_fonts_status() {
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
font_dir="$HOME/Library/Fonts"
|
||||
else
|
||||
font_dir="$HOME/.local/share/fonts"
|
||||
fi
|
||||
|
||||
mkdir -p $font_dir
|
||||
|
||||
fonts=($(cat $DOTFILES_CONFIG | shyaml keys config.fonts))
|
||||
total_fonts=0
|
||||
installed_fonts=0
|
||||
|
||||
for font in "${fonts[@]}"; do
|
||||
font_name=$(echo $font | awk '{print $2}')
|
||||
((total_fonts++))
|
||||
|
||||
found=$(find "$font_dir" -name "${font_name}*.ttf" | wc -l)
|
||||
if [ "$found" -gt 0 ]; then
|
||||
((installed_fonts++))
|
||||
fi
|
||||
done
|
||||
|
||||
printfe "%s" "cyan" "NerdFonts:"
|
||||
if [ "$installed_fonts" -eq "$total_fonts" ]; then
|
||||
printfe "%s" "green" " $installed_fonts/$total_fonts "
|
||||
else
|
||||
printfe "%s" "red" " $installed_fonts/$total_fonts "
|
||||
fi
|
||||
printfe "%s\n" "cyan" "fonts installed"
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
ensure_gnome_extensions_installed() {
|
||||
if is_wsl; then
|
||||
printfe "%s\n" "yellow" "Running in WSL, skipping GNOME extensions."
|
||||
return
|
||||
fi
|
||||
|
||||
# In case gnome-extensions is installed but we don't use GNOME let's do a check
|
||||
if [ "$XDG_CURRENT_DESKTOP" != "GNOME" ]; then
|
||||
printfe "%s\n" "red" " - XDG_CURRENT_DESKTOP is not GNOME, likely not running GNOME."
|
||||
return
|
||||
fi
|
||||
|
||||
# Attempt to connect to GNOME shell, if it fails, we can stop here
|
||||
if ! gnome-extensions &> /dev/null; then
|
||||
printfe "%s\n" "red" " - gnome-extensions command not found, likely not running GNOME?!"
|
||||
return
|
||||
fi
|
||||
|
||||
printfe "%s" "cyan" " - Loading GNOME extension json file..."
|
||||
echo -en '\r'
|
||||
|
||||
if [ ! -f ~/dotfiles/gnome/extensions.json ]; then
|
||||
printfe "%s\n" "red" " - No GNOME extensions file found."
|
||||
return
|
||||
fi
|
||||
|
||||
extensions=$(cat ~/dotfiles/gnome/extensions.json)
|
||||
gnome_extensions=($(echo $extensions | jq -r '.[]'))
|
||||
|
||||
for i in "${gnome_extensions[@]}";
|
||||
do
|
||||
printfe "%s" "cyan" " - Fetching extension details for $(echo $i | grep -oP 'extension/\K[^/]+')"
|
||||
echo -en '\r'
|
||||
|
||||
# Check if extension_id is already installed
|
||||
if gnome-extensions list | grep --quiet ${i}; then
|
||||
printfe "%s\n" "green" " - Extension $i is already installed."
|
||||
continue
|
||||
fi
|
||||
|
||||
printfe "%s" "cyan" " - Installing $i..."
|
||||
echo -en '\r'
|
||||
|
||||
result=$(gext install $i 2>&1)
|
||||
if [ $? -ne 0 ]; then
|
||||
printfe "%s\n" "red" " - Failed to install $i"
|
||||
printfe "%s\n" "red" " $result"
|
||||
continue
|
||||
fi
|
||||
|
||||
if echo $result | grep --quiet "Cannot find extension"; then
|
||||
printfe "%s\n" "red" " - Failed to install $i, extension not found."
|
||||
continue
|
||||
fi
|
||||
|
||||
printfe "%s\n" "green" " - Extension $i has been installed."
|
||||
done
|
||||
}
|
||||
|
||||
# Export a JSON file with all installed GNOME extensions IDs
|
||||
export_gnome_extensions() {
|
||||
# Only export if we have the gnome-extensions command
|
||||
if ! command -v gnome-extensions &> /dev/null; then
|
||||
printfe "%s\n" "red" " - gnome-extensions command not found, likely not running GNOME."
|
||||
return
|
||||
fi
|
||||
|
||||
extensions=$(gnome-extensions list --enabled --user)
|
||||
echo $extensions | jq -R -s -c 'split("\n")[:-1]' > ~/dotfiles/gnome/extensions.json
|
||||
}
|
@ -3,7 +3,6 @@ All [] are optional parameters. And all <> are required parameters.
|
||||
Usage: dotf [options] [optional parameters]
|
||||
|
||||
update: Pull latest changes, and update symlinks and configurations.
|
||||
export: Export dconf, gsettings, and other configurations.
|
||||
status: Show the status of the dotfiles repository.
|
||||
secrets: Encrypt and decrypt secrets.
|
||||
help: Shows this help message
|
||||
|
@ -1,28 +0,0 @@
|
||||
{
|
||||
description = "Home Manager configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, home-manager, firefox-addons, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
homeConfigurations."yourusername" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
};
|
||||
};
|
||||
}
|
@ -10,11 +10,9 @@
|
||||
./auto-start.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
};
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = pkg: true;
|
||||
};
|
||||
|
||||
home.username = "menno";
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
settings = {
|
||||
dynamic_background_opacity = true;
|
||||
background_opacity = "0.85";
|
||||
background_blur = 32;
|
||||
background_opacity = "0.95";
|
||||
background_blur = 64;
|
||||
};
|
||||
|
||||
|
||||
|
@ -1,8 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./packages/firefox.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# General packages
|
||||
git
|
||||
@ -12,7 +8,6 @@
|
||||
wget
|
||||
|
||||
# Package management
|
||||
flatpak
|
||||
pipx
|
||||
|
||||
# Development SDKs/Toolkits
|
||||
|
@ -1,132 +0,0 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
profiles.default = {
|
||||
id = 0;
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
|
||||
settings = {
|
||||
"browser.startup.homepage" = "about:home";
|
||||
|
||||
# Disable irritating first-run stuff
|
||||
"browser.disableResetPrompt" = true;
|
||||
"browser.download.panel.shown" = true;
|
||||
"browser.feeds.showFirstRunUI" = false;
|
||||
"browser.messaging-system.whatsNewPanel.enabled" = false;
|
||||
"browser.rights.3.shown" = true;
|
||||
"browser.shell.checkDefaultBrowser" = false;
|
||||
"browser.shell.defaultBrowserCheckCount" = 1;
|
||||
"browser.startup.homepage_override.mstone" = "ignore";
|
||||
"browser.uitour.enabled" = false;
|
||||
"startup.homepage_override_url" = "";
|
||||
"trailhead.firstrun.didSeeAboutWelcome" = true;
|
||||
"browser.bookmarks.restore_default_bookmarks" = false;
|
||||
"browser.bookmarks.addedImportButton" = true;
|
||||
|
||||
# Don't ask for download dir
|
||||
"browser.download.useDownloadDir" = false;
|
||||
|
||||
# Disable crappy home activity stream page
|
||||
"browser.newtabpage.activity-stream.feeds.topsites" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
|
||||
|
||||
# Disable some telemetry
|
||||
"app.shield.optoutstudies.enabled" = false;
|
||||
"browser.discovery.enabled" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
"datareporting.healthreport.service.enabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||
"datareporting.sessions.current.clean" = true;
|
||||
"devtools.onboarding.telemetry.logged" = false;
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||
"toolkit.telemetry.hybridContent.enabled" = false;
|
||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
||||
"toolkit.telemetry.prompted" = 2;
|
||||
"toolkit.telemetry.rejected" = true;
|
||||
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||
"toolkit.telemetry.server" = "";
|
||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||
"toolkit.telemetry.unified" = false;
|
||||
"toolkit.telemetry.unifiedIsOptIn" = false;
|
||||
"toolkit.telemetry.updatePing.enabled" = false;
|
||||
|
||||
"sidebar.revamp" = true;
|
||||
"sidebar.verticalTabs" = true;
|
||||
|
||||
# Disable "save password" prompt
|
||||
"signon.rememberSignons" = false;
|
||||
# Harden
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
"dom.security.https_only_mode" = true;
|
||||
# Layout
|
||||
"browser.uiCustomization.state" = builtins.toJSON {
|
||||
currentVersion = 20;
|
||||
newElementCount = 5;
|
||||
dirtyAreaCache = ["nav-bar" "PersonalToolbar" "toolbar-menubar" "TabsToolbar" "widget-overflow-fixed-list"];
|
||||
placements = {
|
||||
PersonalToolbar = ["personal-bookmarks"];
|
||||
TabsToolbar = ["tabbrowser-tabs" "alltabs-button"];
|
||||
nav-bar = ["back-button" "forward-button" "stop-reload-button" "urlbar-container" "downloads-button" "ublock0_raymondhill_net-browser-action" "_testpilot-containers-browser-action" "reset-pbm-toolbar-button" "unified-extensions-button"];
|
||||
toolbar-menubar = ["menubar-items"];
|
||||
unified-extensions-area = [];
|
||||
widget-overflow-fixed-list = [];
|
||||
};
|
||||
seen = ["save-to-pocket-button" "developer-button" "ublock0_raymondhill_net-browser-action" "_testpilot-containers-browser-action"];
|
||||
};
|
||||
};
|
||||
|
||||
extensions = with pkgs.inputs.firefox-addons; [
|
||||
ublock-origin
|
||||
browserpass
|
||||
];
|
||||
|
||||
search = {
|
||||
force = true;
|
||||
default = "DuckDuckGo";
|
||||
privateDefault = "DuckDuckGo";
|
||||
|
||||
engines = {
|
||||
"DuckDuckGo".metaData.hidden = false;
|
||||
"Google".metaData.hidden = true;
|
||||
"Amazon.com".metaData.hidden = true;
|
||||
"Bing".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
"Qwant".metaData.hidden = true;
|
||||
|
||||
# Add custom golink search engine
|
||||
"golink" = {
|
||||
urls = [ { template = "http://go/%s"; } ];
|
||||
iconUpdateURL = "";
|
||||
updateInterval = 24 * 60 * 60 * 1000;
|
||||
definedAliases = [ "go" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Order of search engines in the search bar
|
||||
order = [
|
||||
"DuckDuckGo"
|
||||
"golink"
|
||||
];
|
||||
};
|
||||
|
||||
# Optional: Additional Firefox preferences you might want
|
||||
settings = {
|
||||
"browser.startup.page" = 3; # Restore previous session
|
||||
"browser.download.dir" = "${config.home.homeDirectory}/Downloads";
|
||||
"browser.download.folderList" = 2;
|
||||
"browser.toolbars.bookmarks.visibility" = "never";
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -6,6 +6,7 @@
|
||||
./nvidia.nix
|
||||
./virtualization.nix
|
||||
./users.nix
|
||||
./flatpak.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
@ -84,6 +85,7 @@
|
||||
"1password/custom_allowed_browsers" = {
|
||||
text = ''
|
||||
firefox
|
||||
brave
|
||||
'';
|
||||
mode = "0755";
|
||||
};
|
||||
|
10
config/nixos/flatpak.nix
Normal file
10
config/nixos/flatpak.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ pkgs, ... }: {
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user