497 lines
18 KiB
Nix
497 lines
18 KiB
Nix
# SPDX-FileCopyrightText: 2025 Ethan Reece <contact@ethanreece.com>
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
{
|
|
config,
|
|
inputs,
|
|
pkgs,
|
|
username,
|
|
homeDirectory,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
{ nixpkgs.overlays = [ inputs.nur.overlays.default ]; }
|
|
../base-linux.nix
|
|
../discord.nix
|
|
];
|
|
sops.age.keyFile = "${homeDirectory}/.config/sops/age/keys.txt";
|
|
# https://nix.catppuccin.com/search/rolling/
|
|
catppuccin = {
|
|
floorp.profiles.default.force = true;
|
|
};
|
|
# https://nix-community.github.io/stylix/options/modules/alacritty.html
|
|
stylix.targets = {
|
|
floorp = {
|
|
profileNames = [ "default" ];
|
|
};
|
|
};
|
|
nixGL = {
|
|
packages = import inputs.nixgl {
|
|
inherit pkgs;
|
|
enable32bits = false;
|
|
enableIntelX86Extensions = false;
|
|
};
|
|
defaultWrapper = "mesa";
|
|
installScripts = [ "mesa" ];
|
|
vulkan.enable = true;
|
|
};
|
|
home = {
|
|
inherit username homeDirectory;
|
|
packages = [
|
|
pkgs.bitwarden-desktop # TODO: switch to `rbw`
|
|
# pkgs.cacert - TODO: should be used on NixOS
|
|
(config.lib.nixGL.wrap pkgs.cheese)
|
|
# pkgs.cups - TODO: should be used on NixOS
|
|
pkgs.dino
|
|
pkgs.element-desktop # TODO: switch to programs.element-desktop
|
|
# pkgs.firefox
|
|
# pkgs.firefoxpwa - requires system access
|
|
# pkgs.high-tide - doesn't work
|
|
(config.lib.nixGL.wrap pkgs.kdePackages.audiotube)
|
|
pkgs.kdePackages.dolphin
|
|
pkgs.kdePackages.falkon
|
|
# pkgs.ladybird
|
|
pkgs.libreoffice-fresh
|
|
pkgs.librewolf # TODO: switch to programs.librewolf
|
|
pkgs.logseq # TODO: switch to `joplin-desktop`
|
|
pkgs.mupdf
|
|
pkgs.signal-desktop
|
|
# pkgs.simplex-chat-desktop - not available on aarch64
|
|
# pkgs.slacky - doesn't work, requires update
|
|
pkgs.teams-for-linux # TODO: Move to flake in UTD folder
|
|
pkgs.telegram-desktop
|
|
# pkgs.tidal-hifi - aarch64 build broken
|
|
# pkgs.widevine-cdm - doesn't work
|
|
];
|
|
};
|
|
programs = {
|
|
nushell.shellAliases = {
|
|
armcfi = "cd `~/Documents/2025 Summer/syssec/proj/armcfi`";
|
|
};
|
|
chromium = {
|
|
enable = true;
|
|
};
|
|
freetube = {
|
|
enable = true;
|
|
package = (config.lib.nixGL.wrap pkgs.freetube);
|
|
settings = {
|
|
rememberHistory = false;
|
|
rememberSearchHistory = false;
|
|
saveWatchedProgress = false;
|
|
checkForUpdates = false;
|
|
autoplayVideos = false;
|
|
useSponsorBlock = true;
|
|
useDeArrowTitles = true;
|
|
useDeArrowThumbnails = true;
|
|
};
|
|
};
|
|
mpv = {
|
|
enable = true;
|
|
package = (
|
|
config.lib.nixGL.wrap (
|
|
pkgs.mpv.override {
|
|
# extraUmpvWrapperArgs = [
|
|
# "--add-flags"
|
|
# "--gpu-api=opengl"
|
|
# ];
|
|
scripts = [
|
|
pkgs.mpvScripts.mpv-cheatsheet
|
|
pkgs.mpvScripts.mpv-discord
|
|
pkgs.mpvScripts.quality-menu
|
|
pkgs.mpvScripts.sponsorblock
|
|
pkgs.mpvScripts.visualizer
|
|
pkgs.mpvScripts.webtorrent-mpv-hook
|
|
];
|
|
}
|
|
)
|
|
);
|
|
config = {
|
|
gpu-api = "opengl";
|
|
};
|
|
};
|
|
feh = {
|
|
enable = true;
|
|
};
|
|
# TODO: Disable Guix integration
|
|
# zathura = {
|
|
# enable = true;
|
|
# };
|
|
wezterm = {
|
|
enable = true;
|
|
package = (config.lib.nixGL.wrap pkgs.wezterm);
|
|
};
|
|
yt-dlp = {
|
|
enable = true;
|
|
};
|
|
kitty = {
|
|
enable = true;
|
|
package = (config.lib.nixGL.wrap pkgs.kitty);
|
|
enableGitIntegration = true;
|
|
settings = {
|
|
clipboard_control = "write-primary write-clipboard no-append";
|
|
};
|
|
};
|
|
# TODO: Add https://www.reddit.com/r/lumetrium_definer/comments/1buwmoa/tuja_vortaro_esperanto_dictionary_at/?context=3
|
|
#
|
|
floorp = {
|
|
enable = true;
|
|
package = (config.lib.nixGL.wrap pkgs.floorp);
|
|
languagePacks = [
|
|
"eo"
|
|
"en-US"
|
|
];
|
|
policies = {
|
|
ExtensionSettings =
|
|
let
|
|
# mozilla.github.io/policy-templates
|
|
mkMozillaAddonUrl = id: "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
|
|
in
|
|
{
|
|
# "*".installation_mode = "blocked";
|
|
"*".installation_mode = "allowed";
|
|
# PopUpOFF
|
|
"{154cddeb-4c8b-4627-a478-c7e5b427ffdf}" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "{154cddeb-4c8b-4627-a478-c7e5b427ffdf}";
|
|
};
|
|
# The wall
|
|
"{4df1496d-becb-4eb8-9f3e-08a52cf3dd6a}" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "{4df1496d-becb-4eb8-9f3e-08a52cf3dd6a}";
|
|
};
|
|
# MWMBL Web Crawler
|
|
"{53f57a68-a73e-4b31-ba0c-97cf722602ae}" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "{53f57a68-a73e-4b31-ba0c-97cf722602ae}";
|
|
};
|
|
# Video Speed Controller
|
|
"{7be2ba16-0f1e-4d93-9ebc-5164397477a9}" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "{7be2ba16-0f1e-4d93-9ebc-5164397477a9}";
|
|
};
|
|
# Boycat
|
|
"boycat@extension.io" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "boycat@extension.io";
|
|
};
|
|
# Go European
|
|
"goeuropean@example.com" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "goeuropean@example.com";
|
|
};
|
|
# Bypass Paywalls Clean
|
|
"magnolia@12.34.xpi" = {
|
|
installation_mode = "force_installed";
|
|
install_url = "https://gitflic.ru/project/magnolia1234/bpc_uploads/blob/?file=bypass_paywalls_clean-latest.xpi&branch=main";
|
|
};
|
|
# Sky Follower Bridge
|
|
"sky-follower-bridge@ryo.kawamata" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "sky-follower-bridge@ryo.kawamata";
|
|
};
|
|
# Support Canadian
|
|
"supportcanadian@example.com" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "supportcanadian@example.com";
|
|
};
|
|
# Syrup
|
|
"syrup@extension" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "syrup@extension";
|
|
};
|
|
# TrackMeNot
|
|
"trackmenot@mrl.nyu.edu" = {
|
|
installation_mode = "force_installed";
|
|
install_url = mkMozillaAddonUrl "trackmenot@mrl.nyu.edu";
|
|
};
|
|
};
|
|
SanitizeOnShutdown = true;
|
|
HttpsOnlyMode = "force_enabled";
|
|
PromptForDownloadLocation = true;
|
|
DisplayBookmarksToolbar = "newtab";
|
|
RequestedLocales = "eo,en-US";
|
|
};
|
|
profiles.default = {
|
|
extensions = {
|
|
force = true;
|
|
packages = with pkgs; [
|
|
# https://nur.nix-community.org/repos/rycee/
|
|
nur.repos.rycee.firefox-addons.adnauseam
|
|
nur.repos.rycee.firefox-addons.amp2html
|
|
nur.repos.rycee.firefox-addons.aria2-integration
|
|
nur.repos.rycee.firefox-addons.bitwarden
|
|
nur.repos.rycee.firefox-addons.blocktube
|
|
nur.repos.rycee.firefox-addons.clearurls
|
|
nur.repos.rycee.firefox-addons.cliget
|
|
nur.repos.rycee.firefox-addons.control-panel-for-twitter
|
|
nur.repos.rycee.firefox-addons.dearrow
|
|
nur.repos.rycee.firefox-addons.don-t-fuck-with-paste
|
|
nur.repos.rycee.firefox-addons.fediact
|
|
nur.repos.rycee.firefox-addons.firefox-color
|
|
nur.repos.rycee.firefox-addons.foxyproxy-standard
|
|
nur.repos.rycee.firefox-addons.geminize
|
|
nur.repos.rycee.firefox-addons.gesturefy
|
|
nur.repos.rycee.firefox-addons.github-file-icons
|
|
nur.repos.rycee.firefox-addons.github-issue-link-status
|
|
nur.repos.rycee.firefox-addons.ipfs-companion
|
|
nur.repos.rycee.firefox-addons.istilldontcareaboutcookies
|
|
nur.repos.rycee.firefox-addons.kagi-search
|
|
nur.repos.rycee.firefox-addons.leechblock-ng
|
|
nur.repos.rycee.firefox-addons.localcdn
|
|
nur.repos.rycee.firefox-addons.lovely-forks
|
|
nur.repos.rycee.firefox-addons.notifier-for-github
|
|
nur.repos.rycee.firefox-addons.octotree
|
|
nur.repos.rycee.firefox-addons.old-reddit-redirect
|
|
nur.repos.rycee.firefox-addons.peertubeify
|
|
nur.repos.rycee.firefox-addons.private-grammar-checker-harper
|
|
nur.repos.rycee.firefox-addons.protoots
|
|
nur.repos.rycee.firefox-addons.reddit-enhancement-suite
|
|
nur.repos.rycee.firefox-addons.shinigami-eyes
|
|
nur.repos.rycee.firefox-addons.simple-translate
|
|
nur.repos.rycee.firefox-addons.snowflake
|
|
nur.repos.rycee.firefox-addons.sponsorblock
|
|
nur.repos.rycee.firefox-addons.streetpass-for-mastodon
|
|
nur.repos.rycee.firefox-addons.terms-of-service-didnt-read
|
|
nur.repos.rycee.firefox-addons.translate-web-pages
|
|
nur.repos.rycee.firefox-addons.tree-style-tab
|
|
nur.repos.rycee.firefox-addons.twiter-x-video-downloader
|
|
nur.repos.rycee.firefox-addons.ublacklist
|
|
nur.repos.rycee.firefox-addons.user-agent-string-switcher
|
|
nur.repos.rycee.firefox-addons.web-archives
|
|
nur.repos.rycee.firefox-addons.web-scrobbler
|
|
nur.repos.rycee.firefox-addons.youtube-high-definition
|
|
nur.repos.rycee.firefox-addons.youtube-no-translation
|
|
nur.repos.rycee.firefox-addons.youtube-shorts-block
|
|
];
|
|
};
|
|
isDefault = true;
|
|
name = "Main";
|
|
settings = {
|
|
"dom.securecontext.allowlist_onions" = true;
|
|
"extensions.autoDisableScopes" = 0;
|
|
"extensions.checkCompatibility.128.0" = false;
|
|
"extensions.checkCompatibility.128.1" = false;
|
|
"extensions.checkCompatibility.128.10" = false;
|
|
"extensions.checkCompatibility.128.11" = false;
|
|
"extensions.checkCompatibility.128.12" = false;
|
|
"extensions.checkCompatibility.128.13" = false;
|
|
"extensions.checkCompatibility.128.14" = false;
|
|
"extensions.checkCompatibility.128.15" = false;
|
|
"extensions.checkCompatibility.128.2" = false;
|
|
"extensions.checkCompatibility.128.3" = false;
|
|
"extensions.checkCompatibility.128.4" = false;
|
|
"extensions.checkCompatibility.128.5" = false;
|
|
"extensions.checkCompatibility.128.6" = false;
|
|
"extensions.checkCompatibility.128.7" = false;
|
|
"extensions.checkCompatibility.128.8" = false;
|
|
"extensions.checkCompatibility.128.9" = false;
|
|
"extensions.checkCompatibility.nightly" = false;
|
|
"floorp.browser.sidebar.enable" = false;
|
|
"floorp.browser.sidebar.is.displayed" = false;
|
|
"floorp.browser.ssb.enabled" = true;
|
|
"floorp.browser.tabs.verticaltab" = true;
|
|
"floorp.tabsleep.enabled" = true;
|
|
"floorp.titlebar.favicon.color" = true;
|
|
"floorp.verticaltab.hover.enabled" = true;
|
|
"network.dns.blockDotOnion" = false;
|
|
};
|
|
bookmarks = {
|
|
force = true;
|
|
settings = [
|
|
{
|
|
name = "DFW";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "DART Trip Planner";
|
|
url = "https://www.dart.org/trip/trip-planner/trip-planner-map";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "Dokumentado";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "Catppuccin Options";
|
|
url = "https://nix.catppuccin.com/search/rolling/";
|
|
}
|
|
{
|
|
name = "Firefox Policy Templates";
|
|
url = "mozilla.github.io/policy-templates";
|
|
}
|
|
{
|
|
name = "flake-parts treefmt-nix Documentation";
|
|
url = "flake.parts/options/treefmt-nix.html";
|
|
}
|
|
{
|
|
name = "flake-parts git-hook-nix Documentation";
|
|
url = "https://flake.parts/options/git-hooks-nix.html";
|
|
}
|
|
{
|
|
name = "GitHub - Helix";
|
|
url = "https://github.com/helix-editor/helix";
|
|
}
|
|
{
|
|
name = "GitHub - home-manager";
|
|
url = "https://github.com/nix-community/home-manager";
|
|
}
|
|
{
|
|
name = "GitHub - nixpkgs";
|
|
url = "https://github.com/NixOS/nixpkgs";
|
|
}
|
|
{
|
|
name = "Guix Packages";
|
|
url = "https://toys.whereis.social/";
|
|
}
|
|
{
|
|
name = "Harper Supported Languages";
|
|
url = "https://writewithharper.com/docs/integrations/language-server#Supported-Languages";
|
|
}
|
|
{
|
|
name = "Helix Commands";
|
|
url = "https://docs.helix-editor.com/commands.html";
|
|
}
|
|
{
|
|
name = "Helix Language Support";
|
|
url = "https://docs.helix-editor.com/lang-support.html";
|
|
}
|
|
{
|
|
name = "Helix Formatter Support";
|
|
url = "https://helix-editor.vercel.app/reference/formatters";
|
|
}
|
|
{
|
|
name = "Helix Keymap";
|
|
url = "https://docs.helix-editor.com/keymap.html";
|
|
}
|
|
{
|
|
name = "Helix languages.toml";
|
|
url = "https://github.com/helix-editor/helix/blob/master/languages.toml";
|
|
}
|
|
{
|
|
name = "Home Manager Configuration Options";
|
|
url = "https://nix-community.github.io/home-manager/options.xhtml";
|
|
}
|
|
{
|
|
name = "ltex-plus Supported Languages";
|
|
url = "https://ltex-plus.github.io/ltex-plus/supported-languages.html";
|
|
}
|
|
{
|
|
name = "Nerd Fonts Cheatsheet";
|
|
url = "https://www.nerdfonts.com/cheat-sheet";
|
|
}
|
|
{
|
|
name = "Nix Firefox Addons Search";
|
|
url = "https://nur.nix-community.org/repos/rycee/";
|
|
}
|
|
{
|
|
name = "NixOS Configuration Options";
|
|
url = "https://nixos.org/manual/nixos/unstable/options";
|
|
}
|
|
{
|
|
name = "NixOS Package Search";
|
|
url = "https://search.nixos.org/packages";
|
|
}
|
|
{
|
|
name = "Stylix Options";
|
|
url = "https://nix-community.github.io/stylix/options/modules/alacritty.html";
|
|
}
|
|
{
|
|
name = "Vale Supported Languages";
|
|
url = "https://vale.sh/docs/formats/code";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "Linvgo";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "Vikipedio";
|
|
url = "https://eo.wikipedia.org";
|
|
}
|
|
{
|
|
name = "Tuja Vortaro";
|
|
url = "https://www.tujavortaro.net/?lingvo=en";
|
|
}
|
|
{
|
|
name = "Wiktionary";
|
|
url = "https://en.wiktionary.org";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "Lokaj retejoj";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "CUPS";
|
|
url = "http://localhost:631/";
|
|
}
|
|
{
|
|
name = "Syncthing";
|
|
url = "http://localhost:8384/";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "Memgastigado";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "ArchiveTeam Warrior";
|
|
url = "http://docker:8001/";
|
|
}
|
|
{
|
|
name = "OpenRouter Chat";
|
|
url = "https://openrouter.ai/chat";
|
|
}
|
|
{
|
|
name = "Proxmox";
|
|
url = "https://gamingserver:8006";
|
|
}
|
|
{
|
|
name = "Portainer";
|
|
url = "http://docker:9000";
|
|
}
|
|
{
|
|
name = "Syncthing";
|
|
url = "http://docker:8384/";
|
|
}
|
|
{
|
|
name = "The Indie Beat";
|
|
url = "https://theindiebeat.fm/";
|
|
}
|
|
{
|
|
name = "TrueNAS";
|
|
url = "https://10.10.10.5:444/";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
name = "UT Dallas";
|
|
toolbar = true;
|
|
bookmarks = [
|
|
{
|
|
name = "Comet Calendar";
|
|
url = "https://calendar.utdallas.edu/";
|
|
}
|
|
{
|
|
name = "eLearning";
|
|
url = "https://elearning.utdallas.edu/";
|
|
}
|
|
{
|
|
name = "UT Dallas Map";
|
|
url = "https://map.utdallas.edu/";
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
targets.genericLinux.enable = true;
|
|
}
|