diff --git a/.bashrc b/.bashrc index 99b76e6..e56f2bc 100644 --- a/.bashrc +++ b/.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 diff --git a/bin/actions/export.sh b/bin/actions/export.sh deleted file mode 100755 index ba91e47..0000000 --- a/bin/actions/export.sh +++ /dev/null @@ -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" \ No newline at end of file diff --git a/bin/actions/update.sh b/bin/actions/update.sh index 67b064b..d04c8ac 100755 --- a/bin/actions/update.sh +++ b/bin/actions/update.sh @@ -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" ;; diff --git a/bin/dotf b/bin/dotf index 5ccdf6a..d687f2d 100755 --- a/bin/dotf +++ b/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 $@ ;; diff --git a/bin/helpers/fonts.sh b/bin/helpers/fonts.sh deleted file mode 100755 index a941593..0000000 --- a/bin/helpers/fonts.sh +++ /dev/null @@ -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" -} diff --git a/bin/helpers/gnome_extensions.sh b/bin/helpers/gnome_extensions.sh deleted file mode 100755 index ea9435b..0000000 --- a/bin/helpers/gnome_extensions.sh +++ /dev/null @@ -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 -} diff --git a/bin/resources/help.txt b/bin/resources/help.txt index ff6cfcd..74d350f 100755 --- a/bin/resources/help.txt +++ b/bin/resources/help.txt @@ -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 diff --git a/config/home-manager/flake.nix b/config/home-manager/flake.nix deleted file mode 100644 index e000c36..0000000 --- a/config/home-manager/flake.nix +++ /dev/null @@ -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; }; - }; - }; -} \ No newline at end of file diff --git a/config/home-manager/home.nix b/config/home-manager/home.nix index 5e6c1a3..c32145c 100644 --- a/config/home-manager/home.nix +++ b/config/home-manager/home.nix @@ -10,11 +10,9 @@ ./auto-start.nix ]; - nixpkgs = { - config = { - allowUnfree = true; - allowUnfreePredicate = (_: true); - }; + nixpkgs.config = { + allowUnfree = true; + allowUnfreePredicate = pkg: true; }; home.username = "menno"; diff --git a/config/home-manager/kitty.nix b/config/home-manager/kitty.nix index 8bc956d..f18b400 100644 --- a/config/home-manager/kitty.nix +++ b/config/home-manager/kitty.nix @@ -9,8 +9,8 @@ settings = { dynamic_background_opacity = true; - background_opacity = "0.85"; - background_blur = 32; + background_opacity = "0.95"; + background_blur = 64; }; diff --git a/config/home-manager/packages.nix b/config/home-manager/packages.nix index 07796ad..8a883aa 100644 --- a/config/home-manager/packages.nix +++ b/config/home-manager/packages.nix @@ -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 diff --git a/config/home-manager/packages/firefox.nix b/config/home-manager/packages/firefox.nix deleted file mode 100644 index d44308f..0000000 --- a/config/home-manager/packages/firefox.nix +++ /dev/null @@ -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; - }; - }; - }; -} diff --git a/config/nixos/configuration.nix b/config/nixos/configuration.nix index 67a93eb..c677eef 100644 --- a/config/nixos/configuration.nix +++ b/config/nixos/configuration.nix @@ -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"; }; diff --git a/config/nixos/flatpak.nix b/config/nixos/flatpak.nix new file mode 100644 index 0000000..396c208 --- /dev/null +++ b/config/nixos/flatpak.nix @@ -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 + ''; + }; +} \ No newline at end of file