diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..87110f9 --- /dev/null +++ b/Justfile @@ -0,0 +1,6 @@ +default: + home-manager switch --flake .#sudoer777 +update: + nix flake update +backup: + home-manager switch --flake .#sudoer777 -b backup diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f5256cd --- /dev/null +++ b/flake.lock @@ -0,0 +1,165 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749821119, + "narHash": "sha256-X3WAS322EsebI4ohJcXhKpiyG1v+7wE4VOiXy1pxM/c=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "79dfd9aa295e53773aad45480b44c131da29f35b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "master", + "repo": "home-manager", + "type": "github" + } + }, + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713543440, + "narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=", + "owner": "nix-community", + "repo": "nixGL", + "rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixGL", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1749776303, + "narHash": "sha256-OHibOvVwKqO1qvRg0r3agtd1EagW4THBcoWT7QGgcNo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6e7721e37bf00fa7ea44ac3cfc9d2411284ec3ef", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1749874339, + "narHash": "sha256-QKj0+WJm9LiZulDdQI8duXAckKVmj6952C9gww/flB0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "c70ec5f29a4642d6f412186a9f4d68f536089814", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixgl": "nixgl", + "nixpkgs": "nixpkgs", + "nur": "nur" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..f633889 --- /dev/null +++ b/flake.nix @@ -0,0 +1,42 @@ +{ + description = "My Home Manager configuration"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + home-manager = { + url = "github:nix-community/home-manager/master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nur.url = "github:nix-community/NUR"; + nixgl = { + url = "github:nix-community/nixGL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { nixpkgs, home-manager, nur, nixgl, ... }: + let + system = "aarch64-linux"; + pkgs = import nixpkgs { + inherit system; + overlays = [ + nur.overlays.default + nixgl.overlays.default + ]; + }; + in { + homeConfigurations = { + sudoer777 = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit nixgl; + }; + modules = [ + ./home.nix + ({ ... }: { + nixpkgs.overlays = [ nur.overlays.default ]; + }) + ]; + }; + }; + }; +} diff --git a/home.nix b/home.nix index 0ea3c6b..c292766 100644 --- a/home.nix +++ b/home.nix @@ -1,210 +1,182 @@ -{ config, pkgs, inputs, ... }: +{ pkgs, nixgl, config, ... }: # let - # ghidra_pkg = pkgs.ghidra.withExtensions ( - # exts: - # builtins.attrValues { - # # inherit (exts) ; - # } - # ); - # ghidra_dir = ".config/ghidra/${pkgs.ghidra.distroPrefix}"; +# nixglPkg = nixgl.lib.${pkgs.system}.makeNixGL { +# inherit pkgs; +# enable32bits = false; +# }; # in { - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "sudoer777"; - home.homeDirectory = "/home/sudoer777"; - - # 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 should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "24.11"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - # ghidra_pkg - pkgs.nixd - pkgs.nil - pkgs.teams-for-linux - pkgs.vesktop # switch to programs.vesktop - pkgs.arrpc - # pkgs.simplex-chat-desktop - not available on aarch64 - pkgs.freetube # switch to programs.freetube - pkgs.signal-desktop - pkgs.bitwarden-desktop - pkgs.element-desktop # switch to programs.element-desktop - pkgs.logseq - pkgs.kdePackages.audiotube - pkgs.librewolf # switch to programs.librewolf - pkgs.floorp # switch to programs.floorp - # pkgs.firefoxpwa - requires system access - # pkgs.widevine-cdm - doesn't work - # pkgs.firefox - pkgs.aider-chat-full - pkgs.codex # switch to programs.codex - pkgs.lsp-ai - pkgs.zed-editor-fhs # switch to programs.zed-editor - pkgs.ladybird - pkgs.firefox-devedition - # pkgs.slacky - doesn't work, requires update - # pkgs.high-tide - doesn't work - # pkgs.tidal-hifi - aarch64 build broken - ]; - - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - #"${ghidra_dir}/preferences".text = '' - # GhidraShowWhatsNew=false - # SHOW.HELP.NAVIGATION.AID=true - # SHOW_TIPS=false - # TIP_INDEX=0 - # G_FILE_CHOOSER.ShowDotFiles=true - # USER_AGREEMENT=ACCEPT - # LastExtensionImportDirectory=${config.home.homeDirectory}/.config/ghidra/scripts/ - # LastNewProjectDirectory=${config.home.homeDirectory}/.config/ghidra/repos/ - # ViewedProjects= - # RecentProjects= - # ''; - # ".config/FreeTube/settings.db".text = '' - # {"_id":"quickBookmarkTargetPlaylistId","value":"favorites"} - # {"_id":"saveWatchedProgress","value":false} - # {"_id":"rememberHistory","value":false} - # {"_id":"useSponsorBlock","value":true} - # ''; + nixGL = { + packages = import nixgl { + inherit pkgs; + enable32bits = false; + enableIntelX86Extensions = false; + }; + defaultWrapper = "mesa"; + installScripts = [ "mesa" ]; + vulkan.enable = true; }; - - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/sudoer777/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - # EDITOR = "emacs"; + home = { + # 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 should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + stateVersion = "24.11"; + username = "sudoer777"; + homeDirectory = "/home/sudoer777"; + packages = [ + pkgs.nixd + pkgs.nil + pkgs.teams-for-linux + # pkgs.simplex-chat-desktop - not available on aarch64 + pkgs.signal-desktop + pkgs.bitwarden-desktop + pkgs.element-desktop # switch to programs.element-desktop + pkgs.logseq + (config.lib.nixGL.wrap pkgs.kdePackages.audiotube) + pkgs.librewolf # switch to programs.librewolf + # pkgs.firefoxpwa - requires system access + # pkgs.widevine-cdm - doesn't work + # pkgs.firefox + pkgs.aider-chat-full + pkgs.codex # switch to programs.codex + pkgs.lsp-ai + pkgs.zed-editor-fhs # switch to programs.zed-editor + pkgs.ladybird + (config.lib.nixGL.wrap pkgs.firefox-devedition) + # pkgs.slacky - doesn't work, requires update + # pkgs.high-tide - doesn't work + # pkgs.tidal-hifi - aarch64 build broken + ]; + file = {}; + sessionVariables = {}; }; - - # Let Home Manager install and manage itself. programs = { home-manager.enable = true; chromium.enable = true; - }; - - services.arrpc = { - enable = true; - package = pkgs.arrpc; - }; - - xdg.desktopEntries = { - # ghidra = { - # name = "Ghidra"; - # exec = "env _JAVA_OPTIONS=-Dsun.java2d.uiScale=2 ghidra"; - # icon = "ghidra"; - # type = "Application"; - # comment = "Ghidra Software Reverse Engineering Suite"; - # categories = [ "Development" ]; - # }; - high-tide = { - name = "High Tide"; - exec = "nixGLMesa HighTide"; - icon = "io.github.nokse22.HighTide"; - type = "Application"; - categories = [ "GNOME" "GTK" "Music" "Audio" "AudioVideo" ]; - }; freetube = { - name = "FreeTube"; - exec = "nixGLMesa freetube %U"; - icon = "freetube"; - type = "Application"; - comment = "Open Source YouTube app for privacy"; - categories = [ "Network" ]; - mimeType = [ "x-scheme-handler/freetube" ]; - terminal = false; - }; - audiotube = { - name = "AudioTube"; - exec = "nixGLMesa audiotube"; - icon = "org.kde.audiotube"; - type = "Application"; - comment = "YouTube Music Client"; - categories = [ "Qt" "KDE" "AudioVideo" "Player" ]; + 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; + }; }; vesktop = { - name = "Vesktop"; - exec = "nixGLMesa vesktop %U"; - icon = "vesktop"; - type = "Application"; - genericName = "Internet Messenger"; - # keywords = [ "discord" "vencord" "electron" "chat" ]; - categories = [ "Network" "InstantMessaging" "Chat" ]; + enable = true; + package = (config.lib.nixGL.wrap pkgs.vesktop); + settings = { + discordBranch = "canary"; + minimizeToTray = true; + arRPC = true; + splashColor = "color(srgb 0.862745 0.862745 0.870588)"; + splashBackground = "rgb(11, 12, 13)"; + splashTheming = false; + openLinksWithElectron = false; + spellCheckLanguages = [ "en-US" "en" ]; + vencord = { + settings = { autoUpdate = true; autoUpdateNotification = true; cloud = { authenticated = true; settingsSync = true; settingsSyncVersion = 1748815333669; url = "https://api.vencord.dev/"; }; disableMinSize = false; eagerPatches = false; enableReactDevtools = false; enabledThemes = [ ]; frameless = false; macosTranslucency = false; notifications = { logLimit = 50; position = "bottom-right"; timeout = 5000; useNative = "not-focused"; }; notifyAboutUpdates = true; plugins = { AccountPanelServerProfile = { enabled = true; }; AlwaysAnimate = { enabled = false; }; AlwaysExpandRoles = { enabled = true; }; AlwaysTrust = { domain = true; enabled = true; file = true; }; AnonymiseFileNames = { anonymiseByDefault = true; enabled = true; method = 0; randomisedLength = 7; }; AppleMusicRichPresence = { enabled = false; }; AutomodContext = { enabled = true; }; BANger = { enabled = true; }; BadgeAPI = { enabled = true; }; BetterFolders = { closeAllFolders = false; closeAllHomeButton = false; enabled = true; forceOpen = false; keepIcons = false; showFolderIcon = 1; sidebar = true; sidebarAnim = true; }; BetterGifAltText = { enabled = true; }; BetterGifPicker = { enabled = true; }; BetterNotesBox = { enabled = true; hide = false; noSpellCheck = false; }; BetterRoleContext = { enabled = true; }; BetterRoleDot = { bothStyles = false; copyRoleColorInProfilePopout = false; enabled = true; }; BetterSessions = { backgroundCheck = false; enabled = true; }; BetterSettings = { disableFade = true; eagerLoad = true; enabled = true; }; BetterUploadButton = { enabled = true; }; BiggerStreamPreview = { enabled = true; }; BlurNSFW = { enabled = false; }; CallTimer = { enabled = true; }; ChatInputButtonAPI = { enabled = true; }; ClearURLs = { enabled = true; }; ClientTheme = { color = "313338"; enabled = true; }; ColorSighted = { enabled = true; }; CommandsAPI = { enabled = true; }; ConsoleJanitor = { enabled = false; }; ConsoleShortcuts = { enabled = true; }; ContextMenuAPI = { enabled = true; }; CopyEmojiMarkdown = { enabled = true; }; CopyFileContents = { enabled = true; }; CopyUserURLs = { enabled = true; }; CrashHandler = { attemptToNavigateToHome = false; attemptToPreventCrashes = true; enabled = true; }; CtrlEnterSend = { enabled = true; sendMessageInTheMiddleOfACodeBlock = true; submitRule = "ctrl+enter"; }; CustomIdle = { enabled = true; idleTimeout = 10; remainInIdle = true; }; CustomRPC = { enabled = true; type = 0; }; Dearrow = { dearrowByDefault = true; enabled = true; hideButton = false; replaceElements = 0; }; Decor = { enabled = true; }; DisableCallIdle = { enabled = false; }; DontRoundMyTimestamps = { enabled = true; }; DynamicImageModalAPI = { enabled = true; }; Experiments = { enableIsStaff = false; enabled = true; toolbarDevMenu = false; }; ExpressionCloner = { enabled = true; }; F8Break = { enabled = true; }; FakeNitro = { enableEmojiBypass = true; enableStickerBypass = true; enableStreamQualityBypass = true; enabled = true; transformCompoundSentence = false; transformEmojis = true; transformStickers = true; }; FakeProfileThemes = { enabled = true; nitroFirst = true; }; FavoriteEmojiFirst = { enabled = true; }; FavoriteGifSearch = { enabled = true; }; FixCodeblockGap = { enabled = true; }; FixImagesQuality = { enabled = true; }; FixSpotifyEmbeds = { enabled = true; }; FixYoutubeEmbeds = { enabled = true; }; ForceOwnerCrown = { enabled = true; }; FriendInvites = { enabled = true; }; FriendsSince = { enabled = true; }; FullSearchContext = { enabled = true; }; FullUserInChatbox = { enabled = true; }; GameActivityToggle = { enabled = true; oldIcon = false; }; GifPaste = { enabled = true; }; GreetStickerPicker = { enabled = true; }; HideMedia = { enabled = true; }; IgnoreActivities = { enabled = true; ignoredActivities = [ ]; }; ImageLink = { enabled = true; }; ImageZoom = { enabled = true; nearestNeighbour = false; saveZoomValues = true; size = 100; square = false; zoom = 2; }; ImplicitRelationships = { enabled = true; sortByAffinity = true; }; InvisibleChat = { enabled = true; }; IrcColors = { applyColorOnlyInDms = false; applyColorOnlyToUsersWithoutColor = false; enabled = true; lightness = 70; memberListColors = true; }; KeepCurrentChannel = { enabled = true; }; LastFMRichPresence = { enabled = true; hideWithActivity = false; hideWithSpotify = true; }; LoadingQuotes = { additionalQuotes = ""; additionalQuotesDelimiter = "|"; enableDiscordPresetQuotes = false; enablePluginPresetQuotes = true; enabled = true; replaceEvents = true; }; MaskedLinkPaste = { enabled = true; }; MemberCount = { enabled = true; memberList = true; toolTip = true; }; MemberListDecoratorsAPI = { enabled = true; }; MentionAvatars = { enabled = true; showAtSymbol = true; }; MessageAccessoriesAPI = { enabled = true; }; MessageClickActions = { enableDoubleClickToEdit = true; enableDoubleClickToReply = true; enabled = true; requireModifier = false; }; MessageDecorationsAPI = { enabled = true; }; MessageEventsAPI = { enabled = true; }; MessageLatency = { detectDiscordKotlin = true; enabled = true; latency = 2; showMillis = false; }; MessageLinkEmbeds = { automodEmbeds = "never"; enabled = true; idList = ""; listMode = "blacklist"; }; MessageLogger = { collapseDeleted = false; deleteStyle = "text"; enabled = true; ignoreBots = false; ignoreChannels = ""; ignoreGuilds = ""; ignoreSelf = false; ignoreUsers = ""; inlineEdits = true; logDeletes = true; logEdits = true; }; MessagePopoverAPI = { enabled = true; }; MessageTags = { enabled = true; tagsList = { }; }; MessageUpdaterAPI = { enabled = true; }; MoreCommands = { enabled = true; }; MoreKaomoji = { enabled = true; }; MoreUserTags = { enabled = true; tagSettings = { ADMINISTRATOR = { showInChat = true; showInNotChat = true; text = "Admin"; }; CHAT_MODERATOR = { showInChat = true; showInNotChat = true; text = "Chat Mod"; }; MODERATOR = { showInChat = true; showInNotChat = true; text = "Mod"; }; MODERATOR_STAFF = { showInChat = true; showInNotChat = true; text = "Staff"; }; OWNER = { showInChat = true; showInNotChat = true; text = "Owner"; }; VOICE_MODERATOR = { showInChat = true; showInNotChat = true; text = "VC Mod"; }; WEBHOOK = { showInChat = true; showInNotChat = true; text = "Webhook"; }; }; }; Moyai = { enabled = true; ignoreBlocked = true; ignoreBots = true; }; MutualGroupDMs = { enabled = true; }; NSFWGateBypass = { enabled = true; }; NewGuildSettings = { enabled = true; }; NoBlockedMessages = { enabled = false; }; NoDefaultHangStatus = { enabled = false; }; NoDevtoolsWarning = { enabled = true; }; NoF1 = { enabled = true; }; NoMaskedUrlPaste = { enabled = false; }; NoMosaic = { enabled = true; inlineVideo = true; mediaLayoutType = "STATIC"; }; NoOnboardingDelay = { enabled = true; }; NoPendingCount = { enabled = true; hideFriendRequestsCount = true; hideMessageRequestsCount = true; hidePremiumOffersCount = true; }; NoProfileThemes = { enabled = false; }; NoReplyMention = { enabled = true; inverseShiftReply = false; shouldPingListed = true; userList = "1234567890123445,1234567890123445"; }; NoScreensharePreview = { enabled = false; }; NoServerEmojis = { enabled = false; }; NoTrack = { disableAnalytics = true; enabled = true; }; NoTypingAnimation = { enabled = false; }; NoUnblockToJump = { enabled = true; }; NormalizeMessageLinks = { enabled = true; }; NoticesAPI = { enabled = true; }; NotificationVolume = { enabled = true; notificationVolume = 100; }; OnePingPerDM = { allowEveryone = false; allowMentions = false; channelToAffect = "both_dms"; enabled = true; }; OpenInApp = { enabled = true; epic = true; itunes = true; spotify = true; steam = true; tidal = true; }; OverrideForumDefaults = { defaultLayout = 1; defaultSortOrder = 0; enabled = true; }; PartyMode = { enabled = true; superIntensePartyMode = 0; }; PauseInvitesForever = { enabled = true; }; PermissionFreeWill = { enabled = true; lockout = true; onboarding = true; }; PermissionsViewer = { enabled = true; }; PictureInPicture = { enabled = true; }; PinDMs = { canCollapseDmSection = false; dmSectionCollapsed = false; enabled = true; pinOrder = 0; userBasedCategoryList = { "523873759086772230" = [ ]; }; }; PlainFolderIcon = { enabled = true; }; PlatformIndicators = { badges = true; colorMobileIndicator = true; enabled = true; list = true; messages = true; }; PreviewMessage = { enabled = true; }; QuickMention = { enabled = true; }; QuickReply = { enabled = true; }; ReactErrorDecoder = { enabled = true; }; ReadAllNotificationsButton = { enabled = true; }; RelationshipNotifier = { enabled = true; friendRequestCancels = true; friends = true; groups = true; offlineRemovals = true; servers = true; }; ReplaceGoogleSearch = { enabled = true; }; ReplyTimestamp = { enabled = true; }; ResurrectHome = { enabled = true; forceServerHome = false; }; RevealAllSpoilers = { enabled = true; }; ReverseImageSearch = { enabled = true; }; ReviewDB = { enabled = true; notifyReviews = true; }; RoleColorEverywhere = { chatMentions = true; colorChatMessages = false; enabled = true; memberList = true; pollResults = true; reactorsList = true; voiceUsers = true; }; SecretRingToneEnabler = { enabled = true; onlySnow = false; }; SendTimestamps = { enabled = true; replaceMessageContents = true; }; ServerInfo = { enabled = true; }; ServerListAPI = { enabled = true; }; ServerListIndicators = { enabled = true; mode = 2; }; Settings = { enabled = true; settingsLocation = "aboveActivity"; }; SettingsStoreAPI = { enabled = true; }; ShikiCodeblocks = { enabled = true; theme = "https://raw.githubusercontent.com/shikijs/textmate-grammars-themes/2d87559c7601a928b9f7e0f0dda243d2fb6d4499/packages/tm-themes/themes/dark-plus.json"; useDevIcon = "GREYSCALE"; }; ShowAllMessageButtons = { enabled = true; }; ShowConnections = { enabled = true; iconSize = 32; iconSpacing = 1; }; ShowHiddenChannels = { defaultAllowedUsersAndRolesDropdownState = true; enabled = true; hideUnreads = true; showMode = 0; }; ShowHiddenThings = { disableDisallowedDiscoveryFilters = true; disableDiscoveryFilters = true; enabled = true; showInvitesPaused = true; showModView = true; showTimeouts = true; }; ShowMeYourName = { displayNames = false; enabled = true; inReplies = false; mode = "user-nick"; }; ShowTimeoutDuration = { enabled = true; }; SilentMessageToggle = { enabled = true; }; SilentTyping = { enabled = false; }; SortFriendRequests = { enabled = true; showDates = false; }; SpotifyControls = { enabled = true; hoverControls = false; }; SpotifyCrack = { enabled = true; keepSpotifyActivityOnIdle = false; noSpotifyAutoPause = true; }; SpotifyShareCommands = { enabled = true; }; StartupTimings = { enabled = true; }; StickerPaste = { enabled = true; }; StreamerModeOnStream = { enabled = true; }; Summaries = { enabled = true; summaryExpiryThresholdDays = 3; }; SuperReactionTweaks = { enabled = true; superReactionPlayingLimit = 20; unlimitedSuperReactionPlaying = false; }; SupportHelper = { enabled = true; }; TextReplace = { enabled = true; regexRules = [ { find = ""; onlyIfIncludes = ""; replace = ""; } ]; stringRules = [ { find = ""; onlyIfIncludes = ""; replace = ""; } ]; }; ThemeAttributes = { enabled = true; }; TimeBarAllActivities = { enabled = true; }; Translate = { autoTranslate = false; enabled = true; showChatBarButton = true; }; TypingIndicator = { enabled = true; includeCurrentChannel = true; includeMutedChannels = false; indicatorMode = 3; }; TypingTweaks = { alternativeFormatting = true; enabled = true; showAvatars = true; showRoleColors = true; }; USRBG = { enabled = true; voiceBackground = true; }; Unindent = { enabled = true; }; UnlockedAvatarZoom = { enabled = true; }; UnsuppressEmbeds = { enabled = true; }; UrbanDictionary = { enabled = true; }; UserMessagesPronouns = { enabled = true; pronounSource = 0; pronounsFormat = "LOWERCASE"; showInMessages = true; showInProfile = true; showSelf = true; }; UserSettingsAPI = { enabled = true; }; UserVoiceShow = { enabled = true; showInMemberList = true; showInMessages = true; showInUserProfileModal = true; }; ValidReply = { enabled = true; }; ValidUser = { enabled = true; }; VcNarrator = { enabled = true; joinMessage = "{{USER}} joined"; latinOnly = false; rate = 1; sayOwnName = false; volume = 1; }; VencordToolbox = { enabled = true; }; ViewIcons = { enabled = true; }; ViewRaw = { clickMethod = "Left"; enabled = true; }; VoiceChatDoubleClick = { enabled = true; }; VoiceDownload = { enabled = true; }; VoiceMessages = { enabled = true; }; VolumeBooster = { enabled = true; }; WebContextMenus = { addBack = false; enabled = true; }; WebKeybinds = { enabled = true; }; "WebRichPresence (arRPC)" = { enabled = true; }; WebScreenShareFixes = { enabled = true; }; WhoReacted = { enabled = true; }; Wikisearch = { enabled = true; }; XSOverlay = { enabled = false; }; YoutubeAdblock = { enabled = true; }; iLoveSpam = { enabled = false; }; oneko = { enabled = true; }; petpet = { enabled = true; }; }; themeLinks = [ "https://clearvision.github.io/ClearVision-v7/main.css" ]; transparent = true; useQuickCss = true; winCtrlQ = false; winNativeTitleBar = false; }; + useSystem = true; + }; + }; }; - firefox-developer = { - categories = [ "Network" "WebBrowser" ]; - exec = "nixGLMesa firefox-devedition --name firefox-devedition %U"; - genericName = "Web Browser"; - icon = "firefox-devedition"; - mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; - name = "Firefox Developer Edition"; - startupNotify = true; - #startupWMClass = "firefox-devedition"; - terminal = false; - type = "Application"; - #version = "1.4"; - actions = { - new-private-window = { - name = "New Private Window"; - exec = "nixGLMesa firefox-devedition --private-window %U"; + floorp = { + enable = true; + package = (config.lib.nixGL.wrap pkgs.floorp); + languagePacks = [ + "eo" + "en" + ]; + profiles.main = { + # extensions = { + # packages = with pkgs.nur.repos.rycee.firefox-addons; [ + # ublock-origin + # ]; + # }; + isDefault = true; + name = "Main"; + settings = { + autoDisableScopes = 0; }; - new-window = { - name = "New Window"; - exec = "nixGLMesa firefox-devedition --new-window %U"; - }; - profile-manager = { - name = "Profile Manager"; - exec = "nixGLMesa firefox-devedition --ProfileManager"; + bookmarks = { + force = true; + settings = [ + { + name = "Comet Calendar"; + url = "https://calendar.utdallas.edu/"; + } + { + name = "UT Dallas Map"; + url = "https://map.utdallas.edu/"; + } + { + name = "eLearning"; + url = "https://elearning.utdallas.edu/"; + } + { + name = "DART Trip Planner"; + url = "https://www.dart.org/trip/trip-planner/trip-planner-map"; + } + { + name = "Guix Packages"; + url = "https://toys.whereis.social/"; + } + { + name = "Syncthing Docker"; + url = "http://docker:8384/"; + } + { + name = "Syncthing Local"; + url = "http://localhost:8384/"; + } + { + name = "NixOS Package Search"; + url = "https://search.nixos.org/packages"; + } + { + name = "TrueNAS"; + url = "https://10.10.10.5:444/"; + } + { + name = "Proxmox"; + url = "https://gamingserver:8006"; + } + { + name = "Portainer"; + url = "http://docker:9000"; + } + { + name = "ArchiveTeam Warrior"; + url = "http://docker:8001/"; + } + { + name = "The Indie Beat"; + url = "https://theindiebeat.fm/"; + } + { + name = "OpenRouter Chat"; + url = "https://openrouter.ai/chat"; + } + { + name = "Home Manager Configuration Options"; + url = "https://nix-community.github.io/home-manager/options.xhtml"; + } + ]; }; }; }; }; + services = { + arrpc.enable = true; + }; }