diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/academic.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/academic.nix new file mode 100755 index 0000000..d7ab060 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/academic.nix @@ -0,0 +1,54 @@ +{ + name = "Academic"; + toolbar = false; + bookmarks = [ + { + name = "PubMed"; + url = "https://pubmed.ncbi.nlm.nih.gov"; + tags = [ + "pub" + "pubmed" + "science" + "research" + "academic" + ]; + keyword = "Pub"; + } + { + name = "Sci-Hub"; + url = "https://sci-hub.ee"; + tags = [ + "sci" + "sci-hub" + "scihub" + "science" + "research" + "academic" + "torrent" + ]; + keyword = "Sci"; + } + { + name = "Stanford Encyclopedia of Philosophy"; + url = "https://plato.stanford.edu"; + tags = [ + "standford" + "encyclopedia" + "philosophy" + "phil" + ]; + keyword = "Phil"; + } + { + name = "Zotero Bibliography"; + url = "https://zbib.org"; + tags = [ + "votero" + "bibliography" + "bib" + "zbib" + ]; + keyword = "Bib"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/development.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/development.nix new file mode 100755 index 0000000..85f01f0 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/development.nix @@ -0,0 +1,98 @@ +let + gitlabTags = [ + "git" + "gitlab" + ]; + gitlabURL = "https://gitlab.com"; +in +{ + name = "Development"; + toolbar = false; + bookmarks = [ + { + name = "Discord (Development Portal)"; + url = "https://discord.com/developers/applications"; + tags = [ + "discord" + "development" + "portal" + "bot" + ]; + keyword = "Discord"; + } + { + name = "Elm-UI"; + url = "https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/"; + tags = [ + "elm-ui" + "elm" + "ui" + ]; + keyword = "Elm"; + } + { + name = "Elm Examples"; + url = "https://elm-lang.org/examples"; + tags = [ + "elm" + "elm" + "examples" + ]; + keyword = "Elm"; + } + { + name = "GitHub"; + url = "https://github.com/BRBWaffles"; + tags = [ + "git" + "github" + "brbwaffles" + ]; + keyword = "GitHub"; + } + { + name = "GitLab (Fallaryn)"; + url = "${gitlabURL}/fallaryn/dotfiles"; + tags = [ + "fallaryn" + ] ++ gitlabTags; + keyword = "GitLab"; + } + { + name = "GitLab (Isaac)"; + url = "${gitlabURL}/askyourself/dotfiles"; + tags = [ + "isaac" + "askyourself" + ] ++ gitlabTags; + keyword = "GitLab"; + } + { + name = "GitLab (Nick)"; + url = "${gitlabURL}/upRootNutrition/dotfiles"; + tags = [ + "brbwaffles" + ] ++ gitlabTags; + keyword = "GitLab"; + } + { + name = "Hackage"; + url = "https://hackage.haskell.org"; + tags = [ + "hackage" + "hack" + "haskell" + ]; + keyword = "Hack"; + } + { + name = "Discord-Haskell"; + url = "https://hackage.haskell.org/package/discord-haskell-1.17.1"; + tags = [ + "discord" + "haskell" + ]; + keyword = "Dack"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/finances.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/finances.nix new file mode 100755 index 0000000..d1564f9 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/finances.nix @@ -0,0 +1,154 @@ +{ + name = "Finances"; + toolbar = false; + bookmarks = [ + { + name = "Adsense"; + url = "https://www.google.com/adsense/new/u/0/pub-4524791551954022/payments"; + tags = [ + "google" + "adsense" + "ads" + "money" + ]; + keyword = "Adsense"; + } + { + name = "Canada Revenue Agency"; + url = "https://apps4.ams-sga.cra-arc.gc.ca/gol-ged/awsc/amss/browser/check?program=mima&target=login&lang=en&idp=cms"; + tags = [ + "cra" + "canada" + "money" + ]; + keyword = "CRA"; + } + { + name = "Credit Karma"; + url = "https://www.creditkarma.ca"; + tags = [ + "credit" + "karma" + "bank" + "banking" + ]; + keyword = "Credit"; + } + { + name = "Kijiji"; + url = "https://www.kijiji.ca"; + tags = [ + "kijiji" + "kij" + "ki" + ]; + keyword = "Kij"; + } + { + name = "LiberaPay"; + url = "https://liberapay.com/upRootNutrition"; + tags = [ + "libera" + "liberapay" + "donations" + "bank" + "banking" + "money" + "uprootnutrition" + ]; + keyword = "Libera"; + } + { + name = "Patreon"; + url = "https://www.patreon.com/upRootNutrition"; + tags = [ + "patreon" + "donations" + "bank" + "banking" + "money" + "uprootnutrition" + ]; + keyword = "Patreon"; + } + { + name = "PayPal"; + url = "https://www.paypal.com/myaccount/summary?intl=0"; + tags = [ + "paypal" + "bank" + "banking" + "money" + ]; + keyword = "PayPal"; + } + { + name = "Shopify"; + url = "https://uprootnutrition.myshopify.com/admin"; + tags = [ + "shopify" + "business" + "shop" + "bank" + "banking" + "money" + ]; + keyword = "Shopify"; + } + { + name = "Simplii"; + url = "https://online.simplii.com/ebm-resources/public/client/web/index.html#/signon"; + tags = [ + "simplii" + "bank" + "banking" + "money" + ]; + keyword = "Simplii"; + } + { + name = "Stripe"; + url = "https://dashboard.stripe.com/settings/user"; + tags = [ + "stripe" + "bank" + "banking" + "money" + ]; + keyword = "Stripe"; + } + { + name = "Telus (Security)"; + url = "https://smarthome-security.telus.com/web/system/home"; + tags = [ + "telus" + "security" + ]; + keyword = "ADT"; + } + { + name = "Wealthsimple"; + url = "https://my.wealthsimple.com/app/tax-onboarding/2021"; + tags = [ + "wealth" + "simple" + "bank" + "banking" + "crypto" + ]; + keyword = "Wealth"; + } + { + name = "Wix"; + url = "https://manage.wix.com/dashboard/413fd74d-8a8f-4c77-bd91-9ea560ffe906/home"; + tags = [ + "wix" + "website" + "business" + "bills" + "uprootnutrition" + ]; + keyword = "Wix"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix new file mode 100755 index 0000000..33086ba --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix @@ -0,0 +1,213 @@ +{ flake, ... }: +let + inherit (flake.config.people) + user0 + ; + inherit (flake.config.people.users.${user0}) + aliases + ; + inherit (flake.config.machines.devices) + synology + server + ; + inherit (flake.config.services) + instances + ; + + jellyfinTags = [ + "jelly" + "video" + "streaming" + "movies" + "shows" + "music" + ]; + ollamaTags = [ + instances.ollama.name + "chat" + "ai" + ]; + owncastTags = [ + instances.owncast.name + "own" + "cast" + "stream" + ]; + syncthingTags = [ + instances.syncthing.name + "sync" + "thing" + instances.synology.name + ]; +in +{ + name = "Self Hosted"; + toolbar = false; + bookmarks = [ + { + name = "Elm-Land Server"; + url = "http://localhost:1234"; + tags = [ + "elm-land" + "elm" + "land" + ]; + keyword = "Website"; + } + { + name = instances.forgejo.label; + url = "https://${instances.forgejo.subdomain}.${instances.web.domains.url3}"; + tags = [ + instances.forgejo.name + "forge" + "git" + ]; + keyword = instances.forgejo.label; + } + # { + # name = instances.hledger.label; + # url = "http://localhost.${builtins.toString instances.hledger.ports.port0}"; + # tags = [ + # instances.hledger.name + # "hledger" + # "finances" + # ]; + # keyword = instances.hledger.label; + # } + { + name = "${instances.jellyfin.label} (Internet)"; + url = "https://${instances.jellyfin.name}.${instances.web.domains.url0}"; + tags = jellyfinTags; + keyword = instances.jellyfin.label; + } + { + name = "${instances.jellyfin.label} (Local)"; + url = "http://${server.ip.address0}:${toString instances.jellyfin.ports.port1}"; + tags = jellyfinTags; + keyword = instances.jellyfin.label; + } + { + name = instances.mastodon.label; + url = "https://${instances.mastodon.subdomain}.${instances.web.domains.url3}"; + tags = [ + instances.mastodon.name + "mast" + "md" + ]; + keyword = instances.mastodon.label; + } + { + name = "Namecheap"; + url = "https://www.namecheap.com"; + tags = [ + "namecheap" + "name" + "cheap" + "dns" + ]; + keyword = "Name"; + } + { + name = instances.nextcloud.label; + url = "https://${instances.nextcloud.subdomain}.${instances.web.domains.url1}"; + tags = [ + instances.nextcloud.name + "next" + "cloud" + "calendar" + ]; + keyword = instances.nextcloud.label; + } + { + name = aliases.name2; + url = instances.web.domains.url2; + tags = [ + aliases.name3 + "blog" + ]; + keyword = aliases.name2; + } + { + name = "${instances.ollama.label} (Server)"; + url = "https://${instances.ollama.subdomain}.${instances.web.domains.url0}"; + tags = ollamaTags; + keyword = instances.ollama.label; + } + { + name = "${instances.ollama.label} (Desktop)"; + url = "http://localhost:${toString instances.ollama.ports.port0}"; + tags = ollamaTags; + keyword = instances.ollama.label; + } + # { + # name = "${instances.owncast.label} (Admin)"; + # url = "http://${server.ip.address0}:${toString instances.owncast.ports.port0}/admin"; + # tags = owncastTags; + # keyword = instances.owncast.label; + # } + # { + # name = "${instances.owncast.label} (Server)"; + # url = "http://${instances.owncast.subdomain}.${instances.web.domains.url1}"; + # tags = owncastTags; + # keyword = instances.owncast.label; + # } + # { + # name = instances.peertube.label; + # url = "https://${instances.peertube.subdomain}.${instances.web.domains.url3}"; + # tags = [ + # instances.peertube.name + # "peer" + # "tube" + # "uprootnutrition" + # ]; + # keyword = instances.peertube.label; + # } + { + name = "Router"; + url = "http://${instances.web.localhost.address2}"; + tags = [ + "router" + "asus" + ]; + keyword = "Router"; + } + { + name = "${instances.syncthing.label} (${instances.synology.label})"; + url = "http://${synology.ip.address0}:${toString instances.syncthing.ports.port0}"; + tags = [ + "synology" + ] ++ syncthingTags; + keyword = instances.syncthing.label; + } + { + name = "${instances.syncthing.label} (Desktop)"; + url = "http://localhost:${toString instances.syncthing.ports.port0}"; + tags = [ + "desktop" + ] ++ syncthingTags; + keyword = instances.syncthing.label; + } + { + name = instances.synology.label; + url = "https://${synology.ip.address0}:${toString instances.synology.ports.port0}"; + tags = [ + instances.synology.name + "dsm" + "cloud" + ]; + keyword = instances.synology.label; + } + { + name = instances.vaultwarden.label; + url = "https://${instances.vaultwarden.subdomain}.${instances.web.domains.url0}"; + tags = [ + instances.vaultwarden.name + "bitwarden" + "vault" + "bit" + "warden" + ]; + keyword = instances.vaultwarden.label; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/gaming.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/gaming.nix new file mode 100755 index 0000000..e16fb8b --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/gaming.nix @@ -0,0 +1,52 @@ +{ + name = "Gaming"; + toolbar = false; + bookmarks = [ + { + name = "Battle.net"; + url = "https://us.shop.battle.net"; + tags = [ + "battle.net" + "battle" + "net" + ]; + keyword = "Battle"; + } + { + name = "Chess.com"; + url = "https://www.chess.com/home"; + tags = [ + "chess" + ]; + keyword = "Chess"; + } + { + name = "Lichess"; + url = "https://lichess.org"; + tags = [ + "lichess" + "chess" + ]; + keyword = "Li"; + } + { + name = "ProtonDB"; + url = "https://www.protondb.com"; + tags = [ + "steam" + "db" + ]; + keyword = "DB"; + } + { + name = "SteamDB"; + url = "https://steamdb.info"; + tags = [ + "steamdb" + "steam" + "db" + ]; + keyword = "SteamDB"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/shopping.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/shopping.nix new file mode 100755 index 0000000..871c0e3 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/shopping.nix @@ -0,0 +1,80 @@ +{ + name = "Shopping"; + toolbar = false; + bookmarks = [ + { + name = "Amazon"; + url = "https://www.amazon.ca"; + tags = [ + "amazon" + "shopping" + "supply" + ]; + keyword = "Amazon"; + } + { + name = "Door Dash"; + url = "https://www.doordash.com"; + tags = [ + "doordash" + "door" + "dash" + "food" + ]; + keyword = "Dash"; + } + { + name = "Fiverr"; + url = "https://www.fiverr.com"; + tags = [ + "fiverr" + "graphic" + "design" + ]; + keyword = "Five"; + } + { + name = "FTY Supplies"; + url = "https://fytsupplies.ca"; + tags = [ + "tattoo tat" + "fyt" + "shopping" + "supply" + ]; + keyword = "FYT"; + } + { + name = "Skip the Dishes"; + url = "https://www.skipthedishes.com"; + tags = [ + "skip" + "dishes" + "food" + ]; + keyword = "Skip"; + } + { + name = "Uber Eats"; + url = "https://www.ubereats.com"; + tags = [ + "uber" + "eats" + "food" + ]; + keyword = "Uber"; + } + { + name = "TatSoul"; + url = "https://www.tatsoul.com"; + tags = [ + "tattoo" + "tat" + "tatsoul" + "shopping" + "supply" + ]; + keyword = "TatSoul"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/socialMedia.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/socialMedia.nix new file mode 100755 index 0000000..d83ad21 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/socialMedia.nix @@ -0,0 +1,186 @@ +let + discordTags = [ + "disboard" + "discord" + "dis" + "ds" + "social" + ]; + youtubeTags = [ + "youtube" + "you" + "tube" + "yt" + ]; +in +{ + name = "Social Media"; + toolbar = false; + bookmarks = [ + { + name = "upRootNutrition"; + url = "https://upRootNutrition.com"; + tags = [ + "uprootnutrition" + "up" + "root" + "nutrition" + ]; + keyword = "Root"; + } + { + name = "Disboard"; + url = "https://disboard.org"; + tags = discordTags; + keyword = "Disboard"; + } + { + name = "Discord (Web Client)"; + url = "https://discord.com/channels/@me"; + tags = discordTags; + keyword = "Discord"; + } + { + name = "Facebook"; + url = "https://www.facebook.com/"; + tags = [ + "facebook" + "face" + "book" + ]; + keyword = "Face"; + } + { + name = "Gmail"; + url = "https://mail.google.com/mail/u/0/#inbox"; + tags = [ + "gmail" + "google" + "mail" + "gm" + "email" + ]; + keyword = "Gmail"; + } + { + name = "Lemmy"; + url = "https://lemmy.world"; + tags = [ + "lemmy" + "social" + ]; + keyword = "Lem"; + } + { + name = "OnlyFans"; + url = "https://onlyfans.com"; + tags = [ + "onlyfans" + "only" + "fans" + ]; + keyword = "Only"; + } + { + name = "Pixelfed"; + url = "https://pixelfed.social/i/web/profile/651714972141461392"; + tags = [ + "pixelfed" + "pixel" + "pi" + ]; + keyword = "Pix"; + } + { + name = "Proton Mail"; + url = "https://mail.proton.me/u/1/inbox"; + tags = [ + "proton" + "mail" + "pr" + "email" + ]; + keyword = "Pro"; + } + { + name = "Proton Calendar"; + url = "https://calendar.proton.me"; + tags = [ + "proton" + "calendar" + ]; + keyword = "Cal"; + } + { + name = "Proton VPN"; + url = "https://account.proton.me/u/0/vpn"; + tags = [ + "proton" + "vpn" + ]; + keyword = "VPN"; + } + { + name = "Reddit"; + url = "https://www.reddit.com"; + tags = [ + "reddit" + "social" + ]; + keyword = "Reddit"; + } + { + name = "Slack"; + url = "https://app.slack.com/"; + tags = [ + "slack" + "social" + ]; + keyword = "Slack"; + } + { + name = "StreamLabs"; + url = "https://streamlabs.com/dashboard"; + tags = [ + "streamlabs" + "stream" + "labs" + ]; + keyword = "Stream"; + } + { + name = "Tinder"; + url = "https://tinder.com/app/recs"; + tags = [ + "tinder" + "dating" + "booty" + ]; + keyword = "Tinder"; + } + { + name = "YouTube"; + url = "https://www.youtube.com"; + tags = youtubeTags; + keyword = "You"; + } + { + name = "YouTube Studio"; + url = "https://studio.youtube.com/channel/UCy9yYcDx2XuVVgcWLJJDoxw"; + tags = [ + "studio" + ] ++ youtubeTags; + keyword = "Studio"; + } + { + name = "X (Twitter)"; + url = "https://x.com/upRootNutrition"; + tags = [ + "twitter" + "x" + "social" + ]; + keyword = "Twitter"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tools.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tools.nix new file mode 100755 index 0000000..c7662d5 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tools.nix @@ -0,0 +1,282 @@ +{ + name = "Tools"; + toolbar = false; + bookmarks = [ + { + name = "Mullvad"; + url = "https://mullvad.net"; + tags = [ + "mullvad" + "vpn" + ]; + keyword = "Mull"; + } + { + name = "Cyanophage Layout Analyzer"; + url = "https://cyanophage.github.io"; + tags = [ + "cyanophage" + "keyboard" + "layout" + ]; + keyword = "Layout"; + } + { + name = "Smtp2Go"; + url = "https://app-us.smtp2go.com/dashboard/main"; + tags = [ + "smtp" + "email" + ]; + keyword = "Smtp"; + } + { + name = "Oryx"; + url = "https://configure.zsa.io/moonlander"; + tags = [ + "zsa" + "moonlander" + "keyboard" + "layout" + ]; + keyword = "Moon"; + } + { + name = "Hugging Face"; + url = "https://www.huggingface.co"; + tags = [ + "hugging" + "face" + "ai" + "gguf" + ]; + keyword = "Hug"; + } + { + name = "DeepSeek"; + url = "https://chat.deepseek.com/"; + tags = [ + "deepseek" + "deep" + "seek" + "ai" + ]; + keyword = "Deep"; + } + { + name = "Uncensored AI"; + url = "https://www.aiuncensored.info"; + tags = [ + "uncensored" + "ai" + ]; + keyword = "AI"; + } + { + name = "Canadian Blood Services"; + url = "https://www.blood.ca/en"; + tags = [ + "canadian" + "blood" + "services" + "give" + ]; + keyword = "Give"; + } + { + name = "Chmod Calculator"; + url = "https://chmod-calculator.com"; + tags = [ + "chmod" + "calculator" + ]; + keyword = "Chmod"; + } + { + name = "ChatGPT"; + url = "https://chatgpt.com"; + tags = [ + "chat" + "chatgpt" + "gpt" + ]; + keyword = "Chat"; + } + { + name = "Claude AI"; + url = "https://claude.ai"; + tags = [ + "claude" + "ai" + ]; + keyword = "Claude"; + } + { + name = "Cronometer"; + url = "https://cronometer.com/#diary"; + tags = [ + "cronometer" + "cron" + "nutrition" + ]; + keyword = "Cron"; + } + { + name = "DNS Checker"; + url = "https://dnschecker.org"; + tags = [ + "dns" + "checker" + ]; + keyword = "DNS"; + } + { + name = "EventBrite"; + url = "https://www.eventbrite.ca/d/canada--winnipeg/events--today/winnipeg/?page=1"; + tags = [ + "eventbrite" + "event" + "brite" + ]; + keyword = "Event"; + } + { + name = "Google Maps"; + url = "https://www.google.com/maps"; + tags = [ + "maps" + "google" + ]; + keyword = "Map"; + } + { + name = "ListenBrainz"; + url = "https://listenbrainz.org/user/BRBWaffles"; + tags = [ + "listenbrainz" + "listen" + "brains" + ]; + keyword = "Listen"; + } + { + name = "Memory Express"; + url = "https://www.memoryexpress.com"; + tags = [ + "memoryexpress" + "memory" + "mem" + "express" + ]; + keyword = "Mem"; + } + { + name = "Percentage Calculator"; + url = "https://percentagecalculator.net"; + tags = [ + "percentage" + "percent" + "calculator" + ]; + keyword = "Percent"; + } + { + name = "Portchecker"; + url = "https://portchecker.co"; + tags = [ + "portchecker" + "port" + "checker" + ]; + keyword = "Port"; + } + { + name = "Proof Tree"; + url = "https://www.umsu.de/trees"; + tags = [ + "proof" + "tree" + "logic" + "academic" + ]; + keyword = "Logic"; + } + { + name = "RhymeZone"; + url = "https://www.rhymezone.com"; + tags = [ + "rhymezone" + "rhyme" + "zone" + ]; + keyword = "Rhyme"; + } + { + name = "Sci-Hub"; + url = "https://sci-hub.ee"; + tags = [ + "sci" + "sci-hub" + "scihub" + "science" + "research" + "academic" + "torrent" + ]; + keyword = "Sci"; + } + { + name = "Speedtest"; + url = "https://www.speedtest.net"; + tags = [ + "speedtest" + "speed" + "test" + ]; + keyword = "Speed"; + } + { + name = "Stanford Encyclopedia of Philosophy"; + url = "https://plato.stanford.edu"; + tags = [ + "standford" + "encyclopedia" + "philosophy" + "phil" + ]; + keyword = "Phil"; + } + { + name = "Telus (Billing)"; + url = "https://www.telus.com/my-telus/billing/summary"; + tags = [ + "telus" + "phone" + "bills" + "money" + ]; + keyword = "Telus"; + } + { + name = "TinEye"; + url = "https://tineye.com"; + tags = [ + "tineye" + "tin" + "eye" + ]; + keyword = "Tin"; + } + { + name = "Zotero Bibliography"; + url = "https://zbib.org"; + tags = [ + "votero" + "bibliography" + "bib" + "zbib" + ]; + keyword = "Bib"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tracking.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tracking.nix new file mode 100755 index 0000000..f68ddba --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/tracking.nix @@ -0,0 +1,44 @@ +{ + name = "Tracking"; + toolbar = false; + bookmarks = [ + { + name = "1337"; + url = "https://1337x.to"; + tags = [ + "torrent" + "1337" + ]; + keyword = "1337"; + } + { + name = "Core Radio"; + url = "https://coreradio.online"; + tags = [ + "core" + "radio" + "metal" + ]; + keyword = "Core"; + } + { + name = "Metal Tracker"; + url = "https://en.metal-tracker.com"; + tags = [ + "metaltracker" + "metal" + "tracker" + ]; + keyword = "Metal"; + } + { + name = "Torrent Leech"; + url = "https://www.torrentleech.org"; + tags = [ + "torrent" + "leech" + ]; + keyword = "Leech"; + } + ]; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/default.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/default.nix new file mode 100755 index 0000000..5d338de --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/default.nix @@ -0,0 +1,34 @@ +{ flake, ... }: +let + configPath = ./config; + flakedPath = configPath + /flake; + + filterFiles = name: builtins.match ".*\\.nix$" name != null; + + regularBookmarks = + let + files = builtins.attrNames (builtins.readDir configPath); + in + builtins.foldl' ( + emptyList: bookmarkFile: emptyList ++ (import (configPath + "/${bookmarkFile}")).bookmarks + ) [ ] (builtins.filter filterFiles files); + + flakedBookmarks = + let + files = builtins.attrNames (builtins.readDir flakedPath); + in + builtins.foldl' ( + emptyList: bookmarkFile: + emptyList + ++ (import (flakedPath + "/${bookmarkFile}") { + inherit + flake + ; + }).bookmarks + ) [ ] (builtins.filter filterFiles files); + + aggregatedBookmarks = regularBookmarks ++ flakedBookmarks; +in +{ + bookmarks = aggregatedBookmarks; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/extensions/default.nix b/modules/home/gui/apps/browsers/floorp/config/extensions/default.nix new file mode 100755 index 0000000..0f0cfb6 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/extensions/default.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: +{ + extensions = builtins.attrValues { + inherit (pkgs.nur.repos.rycee.firefox-addons) + bitwarden + enhancer-for-youtube + sponsorblock + ublock-origin + unpaywall + ; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/academic.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/academic.nix new file mode 100755 index 0000000..57889a4 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/academic.nix @@ -0,0 +1,19 @@ +{ + "Sci-Hub" = { + definedAliases = [ + "@sc" + ]; + icon = ./icons/sc.png; + urls = [ + { template = "https://sci-hub.ee/{searchTerms}"; } + ]; + }; + "Wikipedia" = { + definedAliases = [ + "@wi" + ]; + urls = [ + { template = "https://en.wikipedia.org/wiki/{searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/development.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/development.nix new file mode 100755 index 0000000..6e557b2 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/development.nix @@ -0,0 +1,69 @@ +{ + "DNS Checker" = { + definedAliases = [ + "@dn" + ]; + icon = ./icons/dn.png; + urls = [ + { template = "https://dnschecker.org/#A/{searchTerms}"; } + ]; + }; + "Hackage" = { + definedAliases = [ + "@ha" + ]; + icon = ./icons/ha.png; + urls = [ + { template = "https://hackage.haskell.org/packages/search?terms={searchTerms}"; } + ]; + }; + "Hoogle" = { + definedAliases = [ + "@ho" + ]; + icon = ./icons/ho.png; + urls = [ + { template = "https://www.stackage.org/lts-22.33/hoogle?q={searchTerms}"; } + ]; + }; + "Nix Home Manager" = { + definedAliases = [ + "@nh" + ]; + icon = ./icons/nx.png; + urls = [ + { template = "https://searchix.alanpearce.eu/options/home-manager/search?query={searchTerms}"; } + ]; + }; + "Nix Options" = { + definedAliases = [ + "@no" + ]; + icon = ./icons/nx.png; + urls = [ + { + template = "https://search.nixos.org/options?channel=unstable&size=50&sort=relevance&type=packages&query={searchTerms}"; + } + ]; + }; + "Nix Packages" = { + definedAliases = [ + "@np" + ]; + icon = ./icons/nx.png; + urls = [ + { + template = "https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; + } + ]; + }; + "Nix Wiki" = { + definedAliases = [ + "@nw" + ]; + icon = ./icons/nx.png; + urls = [ + { template = "https://nixos.wiki/index.php?search={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/jf.png b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/jf.png new file mode 100755 index 0000000..1709e06 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/jf.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/pt.png b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/pt.png new file mode 100755 index 0000000..98b4b62 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/icons/pt.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix new file mode 100755 index 0000000..f0df93e --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix @@ -0,0 +1,30 @@ +{ flake, ... }: +let + inherit (flake.config.services) + instances + ; +in +{ + "${instances.jellyfin.label}" = { + definedAliases = [ + "@jf" + ]; + icon = ./icons/jf.png; + urls = [ + { + template = "https://${instances.jellyfin.subdomain}.${instances.web.domains.url0}/web/#/search.html?query={searchTerms}"; + } + ]; + }; + "${instances.peertube.label}" = { + definedAliases = [ + "@pt" + ]; + icon = ./icons/pt.png; + urls = [ + { + template = "https://${instances.peertube.subdomain}.${instances.web.domains.url1}/search?search={searchTerms}"; + } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/gaming.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/gaming.nix new file mode 100755 index 0000000..59538e2 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/gaming.nix @@ -0,0 +1,21 @@ +{ + "Proton DB" = { + definedAliases = [ + "@pd" + ]; + icon = ./icons/pd.png; + urls = [ + { template = "https://www.protondb.com/search?q={searchTerms}"; } + ]; + }; + + "Steam DB" = { + definedAliases = [ + "@sd" + ]; + icon = ./icons/sd.png; + urls = [ + { template = "https://steamdb.info/search/?a=all&q={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/hidden.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/hidden.nix new file mode 100755 index 0000000..3a0160c --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/hidden.nix @@ -0,0 +1,7 @@ +{ + "Amazon.ca".metaData.hidden = true; + "Bing".metaData.hidden = true; + "eBay".metaData.hidden = true; + "Google".metaData.hidden = true; + "Wikipedia (en)".metaData.hidden = true; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/13.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/13.png new file mode 100755 index 0000000..8bef493 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/13.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/al.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/al.png new file mode 100755 index 0000000..a8420f6 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/al.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/am.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/am.png new file mode 100755 index 0000000..afd11bb Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/am.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/br.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/br.png new file mode 100755 index 0000000..74a4557 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/br.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/cr.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/cr.png new file mode 100755 index 0000000..4625510 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/cr.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/dn.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/dn.png new file mode 100755 index 0000000..d7347a6 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/dn.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/do.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/do.png new file mode 100755 index 0000000..0b78a5f Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/do.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/fy.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/fy.png new file mode 100755 index 0000000..34341e0 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/fy.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ha.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ha.png new file mode 100755 index 0000000..972d5ad Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ha.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ho.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ho.png new file mode 100755 index 0000000..04e4623 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ho.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ka.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ka.png new file mode 100755 index 0000000..612d510 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ka.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ki.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ki.png new file mode 100755 index 0000000..9d650e3 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ki.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/me.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/me.png new file mode 100755 index 0000000..8f9bb1c Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/me.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ne.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ne.png new file mode 100755 index 0000000..3683220 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ne.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/nx.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/nx.png new file mode 100755 index 0000000..8a00594 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/nx.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pd.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pd.png new file mode 100755 index 0000000..80264ad Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pd.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ph.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ph.png new file mode 100755 index 0000000..b049088 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ph.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pi.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pi.png new file mode 100755 index 0000000..9dbe973 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/pi.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/re.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/re.png new file mode 100755 index 0000000..4365d5b Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/re.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/rz.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/rz.png new file mode 100755 index 0000000..08a642f Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/rz.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sb.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sb.png new file mode 100755 index 0000000..ecb7055 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sb.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sc.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sc.png new file mode 100755 index 0000000..85fb3c3 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sc.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sd.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sd.png new file mode 100755 index 0000000..206935d Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sd.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sk.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sk.png new file mode 100755 index 0000000..1707950 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/sk.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tl.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tl.png new file mode 100755 index 0000000..985ebfb Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tl.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tw.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tw.png new file mode 100755 index 0000000..a34710a Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/tw.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ur.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ur.png new file mode 100755 index 0000000..252ce67 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/ur.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/vs.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/vs.png new file mode 100755 index 0000000..122ae5e Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/vs.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/wi.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/wi.png new file mode 100755 index 0000000..802344a Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/wi.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xh.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xh.png new file mode 100755 index 0000000..df33a22 Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xh.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xv.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xv.png new file mode 100755 index 0000000..2a367fc Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/xv.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/icons/yo.png b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/yo.png new file mode 100755 index 0000000..ce619ae Binary files /dev/null and b/modules/home/gui/apps/browsers/floorp/config/search/config/icons/yo.png differ diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/shopping.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/shopping.nix new file mode 100755 index 0000000..9db95bb --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/shopping.nix @@ -0,0 +1,58 @@ +{ + "Amazon" = { + definedAliases = [ + "@am" + ]; + icon = ./icons/am.png; + urls = [ + { template = "https://www.amazon.ca/s?k={searchTerms}&ref=nav_bb_sb"; } + ]; + }; + "Door Dash" = { + definedAliases = [ + "@do" + ]; + icon = ./icons/do.png; + urls = [ + { template = "https://www.doordash.com/search/store/{searchTerms}"; } + ]; + }; + "FYT Supplies" = { + definedAliases = [ + "@fy" + ]; + icon = ./icons/fy.png; + urls = [ + { + template = "https://fytsupplies.ca/search?type=product%2Carticle%2Cpage%2Ccollection&options[prefix]=last&q={searchTerms}*"; + } + ]; + }; + "Kijiji" = { + definedAliases = [ + "@ki" + ]; + icon = ./icons/ki.png; + urls = [ + { template = "https://www.kijiji.ca/b-winnipeg/{searchTerms}"; } + ]; + }; + "Memory Express" = { + definedAliases = [ + "@me" + ]; + icon = ./icons/me.png; + urls = [ + { template = "https://www.memoryexpress.com/Search/Products?Search={searchTerms}"; } + ]; + }; + "Skip The Dishes" = { + definedAliases = [ + "@sk" + ]; + icon = ./icons/sk.png; + urls = [ + { template = "https://www.skipthedishes.com/winnipeg/items?search={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/socialMedia.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/socialMedia.nix new file mode 100755 index 0000000..37813d1 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/socialMedia.nix @@ -0,0 +1,29 @@ +{ + "Reddit" = { + definedAliases = [ + "@re" + ]; + icon = ./icons/re.png; + urls = [ + { template = "https://www.reddit.com/search/?q={searchTerms}"; } + ]; + }; + "YouTube" = { + definedAliases = [ + "@yo" + ]; + icon = ./icons/yo.png; + urls = [ + { template = "https://www.youtube.com/results?search_query={searchTerms}"; } + ]; + }; + "X" = { + definedAliases = [ + "@tw" + ]; + icon = ./icons/tw.png; + urls = [ + { template = "https://x.com/search?q={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/spank.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/spank.nix new file mode 100755 index 0000000..fedc206 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/spank.nix @@ -0,0 +1,29 @@ +{ + "Spankbang" = { + definedAliases = [ + "@sb" + ]; + icon = ./icons/sb.png; + urls = [ + { template = "https://spankbang.com/s/{searchTerms}/"; } + ]; + }; + "XHampster" = { + definedAliases = [ + "@xh" + ]; + icon = ./icons/xh.png; + urls = [ + { template = "https://xhamster.com/search/{searchTerms}"; } + ]; + }; + "XVideos" = { + definedAliases = [ + "@xv" + ]; + icon = ./icons/xv.png; + urls = [ + { template = "https://www.xvideos.com/?k={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/tools.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/tools.nix new file mode 100755 index 0000000..fc0265d --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/tools.nix @@ -0,0 +1,40 @@ +{ + "AlternativeTo" = { + definedAliases = [ + "@al" + ]; + icon = ./icons/al.png; + urls = [ + { template = "https://alternativeto.net/browse/search/?q={searchTerms}"; } + ]; + }; + "Rhyme Zone" = { + definedAliases = [ + "@rz" + ]; + icon = ./icons/rz.png; + urls = [ + { + template = "https://www.rhymezone.com/r/rhyme.cgi?Word={searchTerms}&typeofrhyme=perfect&org1=syl&org2=l&org3=y"; + } + ]; + }; + "Urban Dictionary" = { + definedAliases = [ + "@ur" + ]; + icon = ./icons/ur.png; + urls = [ + { template = "https://www.urbandictionary.com/define.php?term={searchTerms}"; } + ]; + }; + "Stanford Encyclopedia of Philosophy" = { + definedAliases = [ + "@ph" + ]; + icon = ./icons/ph.png; + urls = [ + { template = "https://plato.stanford.edu/search/searcher.py?query={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/tracking.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/tracking.nix new file mode 100755 index 0000000..ee72fcd --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/tracking.nix @@ -0,0 +1,49 @@ +{ + "1337x" = { + definedAliases = [ + "@13" + ]; + icon = ./icons/13.png; + urls = [ + { template = "https://1337x.to/search/{searchTerms}/1/"; } + ]; + }; + "Core Radio" = { + definedAliases = [ + "@cr" + ]; + icon = ./icons/cr.png; + urls = [ + { template = "https://coreradio.online/?do=search&subaction=search&story={searchTerms}"; } + ]; + }; + "The Pirate Bay" = { + definedAliases = [ + "@pi" + ]; + icon = ./icons/pi.png; + urls = [ + { + template = "https://thepiratebay.org/search.php?q={searchTerms}&all=on&search=Pirate+Search&page=0&orderby="; + } + ]; + }; + "Torrent Leech" = { + definedAliases = [ + "@tl" + ]; + icon = ./icons/tl.png; + urls = [ + { template = "https://www.torrentleech.org/torrents/browse/index/query/{searchTerms}"; } + ]; + }; + "VSTorrent" = { + definedAliases = [ + "@vs" + ]; + icon = ./icons/vs.png; + urls = [ + { template = "https://vstorrent.org/?s={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/web.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/web.nix new file mode 100755 index 0000000..e2946e3 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/web.nix @@ -0,0 +1,20 @@ +{ + "Brave" = { + definedAliases = [ + "@br" + ]; + icon = ./icons/br.png; + urls = [ + { template = "https://search.brave.com/search?q={searchTerms}&source=web"; } + ]; + }; + "Kagi" = { + definedAliases = [ + "@ka" + ]; + icon = ./icons/ka.png; + urls = [ + { template = "https://kagi.com/search?q={searchTerms}"; } + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/search/default.nix b/modules/home/gui/apps/browsers/floorp/config/search/default.nix new file mode 100755 index 0000000..d2f1b33 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/search/default.nix @@ -0,0 +1,54 @@ +{ flake, ... }: +let + configPath = ./config; + flakedPath = configPath + /flake; + + regularSearchEngines = + let + files = builtins.attrNames (builtins.readDir configPath); + in + builtins.foldl' ( + emptySet: searchEngine: emptySet // (import (configPath + "/${searchEngine}")) + ) { } (builtins.filter (name: builtins.match ".*\\.nix$" name != null) files); + + flakedSearchEngines = + let + files = builtins.attrNames (builtins.readDir flakedPath); + in + builtins.foldl' ( + emptySet: searchEngine: + emptySet + // (import (flakedPath + "/${searchEngine}") { + inherit + flake + ; + }) + ) { } (builtins.filter (name: builtins.match ".*\\.nix$" name != null) files); + + aggregatedSearchEngines = regularSearchEngines // flakedSearchEngines; +in +{ + search = { + force = true; + default = "Kagi"; + engines = aggregatedSearchEngines; + order = [ + "AlternativeTo" + "Core Radio" + "Hackage" + "Hoogle" + "Jellyfin" + "Kagi" + "Nix Home Manager" + "Nix Options" + "Nix Packages" + "Nix Wiki" + "PeerTube" + "Sci-Hub" + "Torrent Leech" + "Urban Dictionary" + "Wikipedia" + "YouTube" + ]; + }; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/cosmetics.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/cosmetics.nix new file mode 100755 index 0000000..c8c209f --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/cosmetics.nix @@ -0,0 +1,43 @@ +{ + "ui.systemUsesDarkTheme" = 1; + "browser.aboutConfig.showWarning" = false; + "browser.aboutwelcome.enabled" = false; + "browser.bookmarks.addedImportButton" = false; + "browser.toolbars.bookmarks.visibility" = "never"; + "browser.urlbar.suggest.history" = false; + "browser.urlbar.suggest.bookmark" = true; + "browser.urlbar.suggest.openpage" = false; + "browser.urlbar.suggest.shortcut" = false; + "browser.urlbar.suggest.topsites" = false; + "browser.urlbar.suggest.searches" = false; + "browser.urlbar.suggest.engines" = false; + "browser.urlbar.suggest.recentsearches" = false; + "dom.forms.autocomplete.formautofill" = true; + "extensions.pocket.enabled" = false; + "general.autoScroll" = true; + "media.eme.enabled" = true; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "browser.compactmode.show" = true; + "browser.display.use_document_fonts" = true; + "gfx.downloadable_fonts.enabled" = true; + "services.sync.prefs.sync.floorp.optimized.verticaltab" = true; + "floorp.verticaltab.show.newtab.button" = true; + "floorp.verticaltab.paddingtop.enabled" = false; + "floorp.browser.native.verticaltabs.enabled" = true; + "floorp.browser.tabs.verticaltab" = true; + "browser.tabs.firefox-view" = false; + "browser.tabs.firefox-view-newIcon" = true; + "floorp.Tree-type.verticaltab.optimization" = true; + "floorp.browser.sidebar.enable" = false; + "floorp.browser.tabs.openNewTabPosition" = 1; + "services.sync.prefs.sync.floorp.browser.note.memos" = false; + "floorp.disable.fullscreen.notification" = true; + "floorp.browser.user.interface" = 8; + "browser.newtabpage.activity-stream.floorp.background.type" = 0; + "browser.startup.homepage" = "chrome://browser/content/blanktab.html"; + "browser.newtabpage.enabled" = false; + "browser.newtabpage.activity-stream.floorp.newtab.releasenote.hide" = true; + "browser.urlbar.suggest.clipboard" = false; + "browser.newtabpage.activity-stream.discoverystream.personalization.enabled" = false; + "floorp.browser.workspaces.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/diskAvoidance.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/diskAvoidance.nix new file mode 100755 index 0000000..0217bee --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/diskAvoidance.nix @@ -0,0 +1,9 @@ +{ + # DISK AVOIDANCE + "browser.cache.disk.enable" = false; + "browser.privatebrowsing.forceMediaMemoryCache" = true; + "media.memory_cache_max_size" = 65536; + "browser.sessionstore.privacy_level" = 2; + "toolkit.winRegisterApplicationRestart" = false; + "browser.shell.shortcutFavicons" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/fingerprinting.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/fingerprinting.nix new file mode 100755 index 0000000..606b129 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/fingerprinting.nix @@ -0,0 +1,18 @@ +{ + # FPP (fingerprintingProtection) + "privacy.fingerprintingProtection.pbmode" = true; + "privacy.fingerprintingProtection" = true; + + # RFP (resistFingerprinting) + "privacy.resistFingerprinting" = false; + "privacy.window.maxInnerWidth" = 1600; + "privacy.window.maxInnerHeight" = 900; + "privacy.resistFingerprinting.block_mozAddonManager" = true; + "privacy.resistFingerprinting.letterboxing" = false; + "privacy.spoof_english" = 1; + "browser.display.use_system_colors" = false; + "widget.non-native-theme.enabled" = true; + "browser.link.open_newwindow" = 3; + "browser.link.open_newwindow.restriction" = 0; + "webgl.disabled" = true; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/formFill.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/formFill.nix new file mode 100755 index 0000000..767fd2d --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/formFill.nix @@ -0,0 +1,14 @@ +{ + # LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS + "browser.formfill.enable" = false; + "browser.search.separatePrivateDefault.ui.enabled" = true; + "browser.search.separatePrivateDefault" = true; + "browser.search.suggest.enabled" = false; + "browser.urlbar.maxRichResults" = 16; + "browser.urlbar.speculativeConnect.enabled" = false; + "extensions.formautofill.addresses.enabled" = false; + "extensions.formautofill.addresses.supported" = "on"; + "extensions.formautofill.addresses.usage.hasEntry" = true; + "extensions.formautofill.creditCards.enabled" = false; + "extensions.formautofill.heuristics.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/geolocation.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/geolocation.nix new file mode 100755 index 0000000..cc5924e --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/geolocation.nix @@ -0,0 +1,8 @@ +{ + "geo.provider.network.url" = + "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"; + "geo.provider.ms-windows-location" = false; + "geo.provider.use_corelocation" = false; + "geo.provider.use_gpsd" = false; + "geo.provider.use_geoclue" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/hardening.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/hardening.nix new file mode 100755 index 0000000..14a3ab1 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/hardening.nix @@ -0,0 +1,16 @@ +{ + # OPTIONAL HARDENING + # These settings are commented out in the original template; uncomment if needed + # "mathml.disabled" = true; + # "svg.disabled" = true; + # "gfx.font_rendering.graphite.enabled" = false; + # "javascript.options.asmjs" = false; + # "javascript.options.ion" = false; + # "javascript.options.baselinejit" = false; + # "javascript.options.jit_trustedprincipals" = true; + # "javascript.options.wasm" = false; + # "gfx.font_rendering.opentype_svg.enabled" = false; + # "media.eme.enabled" = false; + # "browser.eme.ui.enabled" = false; + # "network.dns.disableIPv6" = true; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/https.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/https.nix new file mode 100755 index 0000000..85aff20 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/https.nix @@ -0,0 +1,14 @@ +{ + # HTTPS (SSL/TLS / OCSP / CERTS / HPKP) + "security.ssl.require_safe_negotiation" = true; + "security.tls.enable_0rtt_data" = false; + "security.OCSP.enabled" = 1; + "security.OCSP.require" = true; + "security.cert_pinning.enforcement_level" = 2; + "security.remote_settings.crlite_filters.enabled" = true; + "security.pki.crlite_mode" = 2; + "dom.security.https_only_mode" = true; + "dom.security.https_only_mode_send_http_background_request" = false; + "security.ssl.treat_unsafe_negotiation_as_broken" = true; + "browser.xul.error_pages.expert_bad_cert" = true; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/misc.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/misc.nix new file mode 100755 index 0000000..5b60b2f --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/misc.nix @@ -0,0 +1,26 @@ +{ + # CONTAINERS + "privacy.userContext.enabled" = true; + "privacy.userContext.ui.enabled" = true; + # DOM (DOCUMENT OBJECT MODEL) + "dom.disable_window_move_resize" = true; + # MISCELLANEOUS + "browser.safebrowsing.downloads.remote.enabled" = false; + "browser.download.start_downloads_in_tmp_dir" = true; + "browser.helperApps.deleteTempFileOnExit" = true; + "browser.uitour.enabled" = false; + "devtools.debugger.remote-enabled" = false; + "network.IDN_show_punycode" = true; + "pdfjs.disabled" = false; + "pdfjs.enableScripting" = false; + # PLUGINS / MEDIA / WEBRTC + "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; + "media.peerconnection.ice.default_address_only" = true; + # REFERERS + "network.http.referer.XOriginTrimmingPolicy" = 2; + # NON-PROJECT RELATED + # "browser.startup.homepage_override.mstone" = "ignore"; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; + "browser.urlbar.showSearchTerms.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/noTouching.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/noTouching.nix new file mode 100755 index 0000000..5055c4c --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/noTouching.nix @@ -0,0 +1,11 @@ +{ + # DON'T TOUCH + "extensions.blocklist.enabled" = true; + "network.http.referer.spoofSource" = false; + "security.dialog_enable_delay" = 1000; + "privacy.firstparty.isolate" = false; + "extensions.webcompat.enable_shims" = true; + "security.tls.version.enable-deprecated" = false; + "extensions.webcompat-reporter.enabled" = false; + "extensions.quarantinedDomains.enabled" = true; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/opSec.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/opSec.nix new file mode 100755 index 0000000..ce59f5c --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/opSec.nix @@ -0,0 +1,11 @@ +{ + # ETP (ENHANCED TRACKING PROTECTION) + "browser.contentblocking.category" = "strict"; + # OPTIONAL OPSEC + "browser.download.useDownloadDir" = false; + "browser.download.alwaysOpenPanel" = false; + "browser.download.manager.addToRecentDocs" = false; + "browser.download.always_ask_before_handling_new_types" = true; + "extensions.enabledScopes" = 5; + "extensions.postDownloadThirdPartyPrompt" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/outbound.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/outbound.nix new file mode 100755 index 0000000..41af8b5 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/outbound.nix @@ -0,0 +1,9 @@ +{ + # BLOCK IMPLICIT OUTBOUND + "network.prefetch-next" = false; + "network.dns.disablePrefetch" = true; + "network.predictor.enabled" = false; + "network.predictor.enable-prefetch" = false; + "network.http.speculative-parallel-limit" = 0; + "browser.places.speculativeConnect.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/passwords.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/passwords.nix new file mode 100755 index 0000000..f3046a4 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/passwords.nix @@ -0,0 +1,7 @@ +{ + # PASSWORDS + "network.auth.subresource-http-auth-allow" = 1; + "signon.autofillForms" = false; + "signon.formlessCapture.enabled" = false; + "signon.rememberSignons" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/privacy.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/privacy.nix new file mode 100755 index 0000000..baf40f5 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/privacy.nix @@ -0,0 +1,24 @@ +{ + # SHUTDOWN & SANITIZING + "privacy.sanitize.sanitizeOnShutdown" = false; + "privacy.clearOnShutdown.cache" = true; + "privacy.clearOnShutdown.downloads" = true; + "privacy.clearOnShutdown.formdata" = true; + "privacy.clearOnShutdown.history" = true; + "privacy.clearOnShutdown.cookies" = true; + "privacy.clearOnShutdown.offlineApps" = true; + "privacy.clearOnShutdown.sessions" = false; + "privacy.clearSiteData.cache" = true; + "privacy.clearSiteData.historyFormDataAndDownloads" = true; + "privacy.clearHistory.cache" = true; + "privacy.clearHistory.cookiesAndStorage" = false; + "privacy.clearHistory.historyFormDataAndDownloads" = true; + "privacy.cpd.sessions" = true; + # SHUTDOWN & SANITIZING (continued) + "privacy.clearOnShutdown_v2.cache" = true; + "privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true; + "privacy.clearOnShutdown_v2.cookiesAndStorage" = true; + "privacy.donottrackheader.enabled" = true; + "privacy.globalprivacycontrol.enabled" = true; + "places.history.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/proxy.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/proxy.nix new file mode 100755 index 0000000..4ea0f00 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/proxy.nix @@ -0,0 +1,6 @@ +{ + # DNS / DoH / PROXY / SOCKS + "network.proxy.socks_remote_dns" = true; + "network.file.disable_unc_paths" = true; + "network.gio.supported-protocols" = ""; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/startup.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/startup.nix new file mode 100755 index 0000000..acd675b --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/startup.nix @@ -0,0 +1,20 @@ +{ + "browser.newtab.url" = "about:home"; + "browser.newtabpage.activity-stream.default.sites" = ""; + "browser.newtabpage.activity-stream.feeds.system.topstories" = false; + "browser.newtabpage.activity-stream.feeds.topsites" = false; + "browser.newtabpage.activity-stream.showRecentSaves" = false; + "browser.newtabpage.activity-stream.showSearch" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.showWeather" = false; + "browser.newtabpage.enabled" = true; + "browser.startup.homepage" = "about:home"; + "browser.startup.page" = 1; + "browser.tabs.closeWindowWithLastTab" = false; + "browser.tabs.firefox-view-newIcon" = false; + "browser.tabs.firefox-view" = false; + "browser.tabs.inTitlebar" = 1; + "browser.tabs.loadBookmarksInBackground" = true; + "browser.tabs.tabmanager.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/config/telemetry.nix b/modules/home/gui/apps/browsers/floorp/config/settings/config/telemetry.nix new file mode 100755 index 0000000..777909b --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/config/telemetry.nix @@ -0,0 +1,29 @@ +{ + "extensions.getAddons.showPane" = false; + "extensions.htmlaboutaddons.recommendations.enabled" = false; + "browser.discovery.enabled" = false; + "browser.shopping.experience2023.enabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.server" = "data:,"; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.updatePing.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "app.shield.optoutstudies.enabled" = false; + "app.normandy.enabled" = false; + "app.normandy.api_url" = ""; + "breakpad.reportURL" = ""; + "browser.tabs.crashReporting.sendReport" = false; + "network.captive-portal-service.enabled" = false; + "network.connectivity-service.enabled" = false; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/settings/default.nix b/modules/home/gui/apps/browsers/floorp/config/settings/default.nix new file mode 100755 index 0000000..9644f42 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/settings/default.nix @@ -0,0 +1,14 @@ +let + configPath = ./config; + + aggregatedSettings = + let + files = builtins.attrNames (builtins.readDir configPath); + in + builtins.foldl' ( + emptySet: settingsFile: emptySet // (import (configPath + "/${settingsFile}")) + ) { } (builtins.filter (name: builtins.match ".*\\.nix$" name != null) files); +in +{ + settings = aggregatedSettings; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/themes/config/userChrome.css b/modules/home/gui/apps/browsers/floorp/config/themes/config/userChrome.css new file mode 100755 index 0000000..87c894f --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/themes/config/userChrome.css @@ -0,0 +1,91 @@ +* { + font-size: 13px !important; +} + +/* Title bar */ +.titlebar-spacer { + display: none !important; +} + +/* Tab bar */ +#navigator-toolbox { + border: 0px !important; +} +#TabsToolbar { + margin-left: 3px !important; +} +#TabsToolbar > .tabbrowser-arrowscrollbox { + overflow: visible !important; +} + +.titlebar-buttonbox-container { + display: none !important; +} + +/* Remove placeholder text in the URL bar */ +#urlbar-input::placeholder { + color: transparent !important; +} +#urlbar { + padding: 2px !important; +} + +/* Hide URL bar text */ +#urlbar-background { + border: none !important; +} + +#urlbar-border:focus-within { + overflow: visible; + height: auto; +} + +/* Hide tracking protection icon */ +#tracking-protection-icon-container { + display: none !important; +} +#urlbar-container { + width: auto !important; +} +#urlbar { + box-shadow: none !important; +} +#page-action-buttons { + display: none !important; +} + +/* Hide site information button */ +#identity-box { + display: none !important; +} + +/* Hide shield icon */ +#tracking-protection-icon-container { + display: none !important; +} + +/* Hide forward and back buttons when not active */ +#back-button[disabled="true"] { + display: none !important; +} +#forward-button[disabled="true"] { + display: none !important; +} +.personalize-button { + display: none !important; +} + +.tab-close-button { + visibility: hidden !important; + margin-inline-end: 0 !important; + width: 16px !important; + height: 16px !important; + padding: 2px !important; + opacity: 0 !important; + transition: visibility 0.1s, opacity 0.1s ease-in-out !important; +} + +.tabbrowser-tab:hover .tab-close-button { + visibility: visible !important; + opacity: 1 !important; +} diff --git a/modules/home/gui/apps/browsers/floorp/config/themes/default.nix b/modules/home/gui/apps/browsers/floorp/config/themes/default.nix new file mode 100755 index 0000000..0d3f0ac --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/config/themes/default.nix @@ -0,0 +1,3 @@ +{ + userChrome = builtins.readFile ./config/userChrome.css; +} diff --git a/modules/home/gui/apps/browsers/floorp/default.nix b/modules/home/gui/apps/browsers/floorp/default.nix new file mode 100755 index 0000000..aeec0d9 --- /dev/null +++ b/modules/home/gui/apps/browsers/floorp/default.nix @@ -0,0 +1,45 @@ +{ + pkgs, + flake, + ... +}: +let + inherit (flake.config.people) + user0 + ; +in +{ + programs.floorp = + let + configPath = ./config; + bookmarksPath = import (configPath + /bookmarks) { inherit flake; }; + extensionsPath = import (configPath + /extensions) { inherit pkgs; }; + searchPath = import (configPath + /search) { inherit flake; }; + settingsPath = import (configPath + /settings); + themesPath = import (configPath + /themes); + in + + { + enable = true; + profiles = { + ${user0} = + { + isDefault = true; + id = 0; + } + // bookmarksPath + // extensionsPath + // searchPath + // settingsPath + // themesPath; + testing = + { + isDefault = false; + id = 1; + } + // bookmarksPath + // searchPath + // themesPath; + }; + }; +}