{ config, pkgs, user, firefox-addons, ... }: { # Home Manager needs a bit of information about you and the # paths it should manage. home.username = user; home.homeDirectory = "/home/${user}"; # Packages that should be installed to the user profile. home.packages = with pkgs; [ aseprite audacity blender darktable digikam discord drawio exiftool # For digikam famistudio digikam firefox flameshot gimp-with-plugins gnucash godot_4 grafx2 jellyfin-media-player keepassxc krita rawtherapee libreoffice lmms lutris moonlight-qt ncdu nextcloud-client nixpkgs-fmt obsidian picard polybar rawtherapee rofi spotify sqlitebrowser steam syncthing ventoy-full vlc winetricks wineWowPackages.unstableFull yt-dlp ]; # WM/DE config gtk = { enable = true; font.name = "Victor Mono SemiBold 12"; theme = { name = "SolArc-Dark"; package = pkgs.solarc-gtk-theme; }; }; xsession = { enable = true; windowManager.bspwm = { enable = true; settings = { border_width = 10; }; extraConfig = '' polybar & ''; startupPrograms = [ ]; }; }; services.sxhkd = { enable = true; keybindings = { "super + Return" = "kitty"; "super + @space" = "rofi"; }; }; # User software configurations programs = { bash = { shellAliases = { "git-override" = "git add . && git commit --amend --no-edit && git push --force-with-lease"; }; }; firefox = { enable = true; profiles.default = { settings = { "browser.newtabpage.activity-stream.default.sites" = "https://www.wikipedia.org/"; "browser.newtabpage.activity-stream.discoverystream.saveToPocketCard.enabled" = false; "browser.newtabpage.activity-stream.discoverystream.sendToPocket.enabled" = false; "browser.newtabpage.activity-stream.feeds.section.topstories" = false; "browser.newtabpage.activity-stream.feeds.system.topstories" = false; "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.havePinned" = "duckduckgo"; "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts.searchEngines" = "duckduckgo"; "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.system.showSponsored" = false; "browser.newtabpage.pinned" = [{ url = "https://duckduckgo.com"; label = "@duckduckgo"; searchTopSite = true; }]; "browser.topsites.contile.cachedTiles" = [ ]; "browser.topsites.contile.enabled" = false; # man fuck this shit, its the api that gets FF newpage shortcuts like FB, expedia, ... "browser.urlbar.suggest.quicksuggest.sponsored" = false; "extensions.autoDisableScopes" = 0; }; extensions = with firefox-addons; [ darkreader multi-account-containers simple-tab-groups ublock-origin umatrix ]; search = { force = true; default = "DuckDuckGo"; engines = { "Nix Packages" = { urls = [{ template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; }]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@np" ]; }; }; order = [ "DuckDuckGo" "Nix Packages" "Wikipedia" "Google" "Amazon" ]; }; }; }; git = { enable = true; userEmail = "alexmat2on@protonmail.com"; userName = "alex"; ignores = [ "*~" ]; extraConfig = { init.defaultBranch = "main"; }; }; kitty = { enable = true; # TODO figure out how to get atau-nixpkgs working from the flake with different systems # background_image ${atau-nixpkgs.atau-wallpapers}/share/backgrounds/atau-wallpapers/aos1.png extraConfig = '' background_tint 0.2 background_image_layout centered modify_font cell_width 110% window_border_width 1 window_margin_width 10 window_padding_width 2 ''; theme = "Rosé Pine Dawn"; font.package = pkgs.victor-mono; font.name = "Victor Mono"; font.size = 12; }; mpv = { enable = true; scriptOpts = { "ytdl_hook" = { "ytdl_path" = "${pkgs.yt-dlp}/bin/yt-dlp"; }; }; }; vscode = { enable = true; extensions = with pkgs; [ vscode-extensions.eamodio.gitlens vscode-extensions.jnoortheen.nix-ide vscode-extensions.scalameta.metals ]; userSettings = { "workbench.colorTheme" = "Default Dark Modern"; "security.workspace.trust.untrustedFiles" = "open"; "nix.formatterPath" = "nixpkgs-fmt"; "files.autoSave" = "afterDelay"; "editor.formatOnSave" = true; }; }; }; # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new Home Manager release introduces backwards # incompatible changes. # # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. home.stateVersion = "23.05"; home.enableNixpkgsReleaseCheck = true; # Let Home Manager install and manage itself. programs.home-manager.enable = true; }