{ config, pkgs, ... }: let username = "leon"; homeDir = "/home/${username}"; in { #imports = #[ # ./hypr.nix #]; # Home Manager needs a bit of information about you and the # paths it should manage. home.username = username; home.homeDirectory = homeDir; xdg.mimeApps = { enable = true; defaultApplications = { "text/html" = "firefox.desktop"; "x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop"; "x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/unknown" = "firefox.desktop"; "application/pdf" = "org.pwmt.zathura-ps.desktop"; "x-scheme-handler/mailto" = "userapp-Thunderbird-3NBJQ2.desktop"; "x-scheme-handler/mid" = "userapp-Thunderbird-3NBJQ2.desktop"; "x-scheme-handler/news" = "userapp-Thunderbird-QJOCQ2.desktop"; "x-scheme-handler/snews" = "userapp-Thunderbird-QJOCQ2.desktop"; "x-scheme-handler/nntp" = "userapp-Thunderbird-QJOCQ2.desktop"; "x-scheme-handler/feed" = "userapp-Thunderbird-EIXEQ2.desktop"; "application/rss+xml" = "userapp-Thunderbird-EIXEQ2.desktop"; "application/x-extension-rss" = "userapp-Thunderbird-EIXEQ2.desktop"; "x-scheme-handler/webcal" = "userapp-Thunderbird-LBFEQ2.desktop"; "x-scheme-handler/webcals" = "userapp-Thunderbird-LBFEQ2.desktop"; "message/rfc822" = "userapp-Thunderbird-3NBJQ2.desktop"; "text/calendar" = "userapp-Thunderbird-LBFEQ2.desktop"; "application/x-extension-ics" = "userapp-Thunderbird-LBFEQ2.desktop"; "application/x-bittorrent;x-scheme-handler/magnet" = "transmission-remote-gtk.desktop"; }; }; # Allow unfree packages (crying FSF noises) nixpkgs.config.allowUnfree = true; nixpkgs.config.packageOverrides = pkgs: { nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; }; # Packages that should be installed to the user profile. home.packages = with pkgs; [ prismlauncher # Minecraft element-desktop # Matrix Desktop Client tidal-hifi # Tidal Web Client helvum # pipewire patchbay bitwarden-cli # password and secret manager ansible # declarative server managment packwiz # Minecraft mod pack managment just # A handy way to save and run project-specific commands ydotool # wayland automation tool lunarvim # IDE layer for Neovim cloudflared # cloudflare things sbctl # For debugging and troubleshooting Secure Boot killall # killall dmenu # (program) picker for Xorg xorg.xauth # Dependency of startx (??) wl-clipboard # Wayland clipboard functionality bottom # htop, but in Rust and better tree # tree fzf # Fuzzy Find pwvucontrol # pipewire volume control brave # Chromium based fallback browser qalculate-gtk # Best calculator ever #home-manager # Nix's Home-Manager catppuccin-cursors.mochaDark # Catppuccin Mouse Cursors wofi # dmenu, but for wlroots wayland kitty # kitty terminal emulator waybar # Status bar for wayland compositors grim # screenshot tool playerctl # Media control slurp # selection tool mako # Notification Daemon nmap # port scanning tool libreoffice-qt # Office Suite hunspell # Spellchecking hunspellDicts.de_DE # German Spellcheck hunspellDicts.en_US # English Spellcheck shellcheck # Shell linter jq # JSON utility texlive.combined.scheme-full # LaTeX zathura # minimal PDF Viewer gimp # gnu image manipulation program p7zip # (7)zip tool zip # standard unix zip tool thunderbird # E-Mail & Calendar signal-desktop # Signal Desktop Client lazygit # Terminal git frontend mpv # Video Playback vlc # media playback imv # minimal image viewer celluloid # mpv frontend mumble # FOSS Steam Speak easyeffects # some audio effects hypridle # idle daemon for hyprland hyprpaper # Hyprpland backgrounds brightnessctl # brightness control cli rustc # rust compiler rust-analyzer # Rust LSP cargo # rust build tool gcc # GNU Compiler Collections clang-tools # LSP Server + formatter nodePackages.vscode-json-languageserver # ZED Json LSP ddcutil # Screen controls wireguard-tools # Wireguard man-pages # dev man pages man-pages-posix # dev man pages #(catppuccin-sddm.override { # flavor = "mocha"; # font = "Fira Sans"; # fontSize = "9"; # backgroundbin = "$XDG_PICTURES_DIR/Wallpapers/current"; # loginBackground = true; #}) steamcmd # steamcmd wget # downloader xclip # Clipboard wine # win translator protontricks # Managment of proton enabled games lutris # Linux Game Manager discord # !delete voip/messenger brasero # Disc-Burner cdrtools # CD tools cdrdao # CD tools dvdplusrwtools # DVD + Blu-ray tools tidal-dl # Tidal ripper vscodium-fhs # VS Code niv # Nix dependency managment bottles # WINE Prefix manager transmission-remote-gtk # Torrent Client qemu # Virtualization/Emulation bash # Compat jetbrains.idea-ultimate # IntelliJ Ultimate jetbrains.idea-community # IntelliJ Community maven # Java Build tool jdk # Java development kit nixfmt-rfc-style # official nix formatter ]; programs = { zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; autocd = true; shellAliases = { git-list-untracked = ''git fetch --prune && git branch -r | awk "{print \$1}" | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk "{print \$1}"''; git-remove-untracked = ''git fetch --prune && git branch -r | awk "{print \$1}" | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk "{print \$1}" | xargs git branch -d''; }; }; bash.enable = true; kitty = { enable = true; themeFile = "Catppuccin-Mocha"; font = { name = "Fira Code"; package = pkgs.fira-code; }; settings = { enable_audio_bell = false; background_opacity = 0.85; }; }; git = { enable = true; userName = "Leon Wilzer"; userEmail = "git@komu.boo"; aliases = { ci = "commit"; co = "checkout"; s = "status"; undo = "reset --soft 'HEAD^'"; a = "add"; p = "push"; cl = "clone"; }; signing = { signByDefault = true; key = "0x645EFCD19E59ED05"; }; extraConfig = { push = { autoSetupRemote = true; }; }; }; gpg = { enable = true; }; ssh = let sshDir = "${homeDir}/.ssh"; startAgent = true; in { enable = true; matchBlocks = { "libre.moe *.libre.moe" = { user = "leon"; identityFile = "${sshDir}/libremoe"; }; "komu.boo *.komu.boo" = { user = "root"; identityFile = "${sshDir}/komuboo"; }; "uni-paderborn.de upb.de *.uni-paderborn.de *.upb.de" = { user = "lwilzer"; identityFile = "${sshDir}/unipaderborn"; }; }; }; neovim = { enable = true; defaultEditor = true; vimAlias = true; viAlias = true; extraConfig = '' " General set number set relativenumber set cc=120 set tabstop=4 set softtabstop=0 noexpandtab set shiftwidth=4 colorscheme catppuccin-mocha " VimTex filetype plugin indent on syntax enable let g:vimtex_view_method = 'zathura' " Vim-LaTeX-live-preview let g:livepreview_previewer = 'zathura' ''; plugins = with pkgs.vimPlugins; [ vimtex vim-latex-live-preview catppuccin-nvim ]; }; hyprlock.enable = true; zed-editor.enable = true; firefox = { enable = true; languagePacks = [ "en-US" "de" ]; # ---- POLICIES ---- # Check about:policies#documentation for options. policies = { BlockAboutAddons = true; BlockAboutConfig = false; BlockAboutProfiles = true; DisableTelemetry = true; DisableFirefoxStudies = true; EnableTrackingProtection = { Value = true; Locked = true; Cryptomining = true; Fingerprinting = true; }; DisablePocket = true; DisableFirefoxAccounts = true; DisableAccounts = true; DisableFirefoxScreenshots = true; OverrideFirstRunPage = ""; OverridePostUpdatePage = ""; AppAutoUpdate = false; DontCheckDefaultBrowser = true; PrimaryPassword = false; OfferToSaveLoginsDefault = false; PasswordmanagerEnabled = false; DisableMasterPasswordCreation = true; AutofillAddressEnabled = false; HttpsOnlyMode = "force_enabled"; AutofillCreditCardEnabled = false; DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab" DisplayMenuBar = "never"; # alternatives: "always", "never" or "default-on" NoDefaultBookmarks = true; SearchEngines = { PreventInstalls = true; Default = "DuckDuckGo"; Remove = [ "Google" "Bing" ]; }; SearchSuggestEnabled = false; FirefoxHome = { Search = true; TopSites = false; SponsoredTopSites = false; Highlights = false; Pocket = false; SponsoredPocket = false; Snippets = false; Locked = false; }; SearchBar = "unified"; # alternative: "separate" DNSOverHTTPS = { Enabled = true; ProviderURL = "https://family.cloudflare-dns.com/dns-query"; Locked = true; Fallback = false; }; }; # ---- PREFERENCES ---- # Check about:config for options. #preferencesStatus = "locked"; # locks all settings profiles.default = { containersForce = true; isDefault = true; settings = { "browser.contentblocking.category" = "strict"; "extensions.pocket.enabled" = false; "extensions.screenshots.disabled" = true; "browser.topsites.contile.enabled" = false; "browser.formfill.enable" = false; "browser.search.suggest.enabled" = false; "browser.search.suggest.enabled.private" = false; "browser.urlbar.suggest.searches" = false; "browser.urlbar.showSearchSuggestionsFirst" = false; "browser.newtabpage.activity-stream.feeds.section.topstories" = false; "browser.newtabpage.activity-stream.feeds.snippets" = false; "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; "browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.system.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "extensions.autoDisableScopes" = 0; "browser.translations.neverTranslateLanguages" = true; "browser.translations.alwaysTranslateLanguages" = false; "browser.warnOnQuit" = false; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; }; search = { force = true; default = "DuckDuckGo"; engines = { "Nix Packages" = { urls = [ { template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; } ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ ":np" ]; }; "NixOS Wiki" = { urls = [ { template = "https://wiki.nixos.org/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://wiki.nixos.org/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ ":nw" ]; }; "ArchWiki" = { urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://wiki.archlinux.org/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ ":aw" ]; }; "Ecosia" = { urls = [ { template = "https://www.ecosia.org/search?q={searchTerms}"; } ]; iconUpdateURL = "https://ecosia.org/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ "@eco" ]; }; "Wikipedia (de)" = { urls = [ { template = "https://de.wikipedia.org/w/index.php?search={searchTerms}"; } ]; iconUpdateURL = "https://wikipedia.org/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ ":wd" ]; }; "IMDb" = { urls = [ { template = "https://www.imdb.com/find/?q={searchTerms}"; } ]; iconUpdateURL = "https://imdb.com/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ ":f" ]; }; "dict.cc (de<->en)" = { urls = [ { template = "https://www.dict.cc/?s={searchTerms}"; } ]; iconUpdateURL = "https://dict.cc/favicon.ico"; updateInterval = 24 * 60 * 60 * 1000; # every day definedAliases = [ ":d" ]; }; "Bing".metaData.hidden = true; "Google".metaData.hidden = true; "DuckDuckGo".metaData.alias = "@ddg"; # builtin engines only support specifying one additional alias "Wikipedia (en)".metaData.alias = ":w"; # builtin engines only support specifying one additional alias }; order = [ "DuckDuckGo" "Nix Packages" "ArchWiki" "Nix Wiki" "Ecosia" ]; }; userChrome = '' /*** Remove items from image context menu ***/ /* Email Image... */ #context-sendimage, /* Set Image as Desktop Background... (and preceding separator) */ #context-sep-setbackground, #context-setDesktopBackground, /* Inspect Accessibility Properties */ #context-inspect-a11y { display: none !important; } /* Disable Firefox View */ #firefox-view-button { display: none !important; } ''; # userChrome = '' # * e.g. playing indicator (the text, not the icon) */ #.tab-secondary-label { display: none !important; } # #/*---+---+---+---+---+---+---+ # | C | O | L | O | U | R | S | # +---+---+---+---+---+---+---*/ # # #@media (prefers-color-scheme: dark) { :root { # # /* These colours are (mainly) used by the # Container Tabs Plugin */ # --uc-identity-colour-blue: #7ED6DF; # --uc-identity-colour-turquoise: #55E6C1; # --uc-identity-colour-green: #B8E994; # --uc-identity-colour-yellow: #F7D794; # --uc-identity-colour-orange: #F19066; # --uc-identity-colour-red: #FC5C65; # --uc-identity-colour-pink: #F78FB3; # --uc-identity-colour-purple: #786FA6; # # /* Cascades main Colour Scheme */ # --uc-base-colour: #1E2021; # --uc-highlight-colour: #191B1C; # --uc-inverted-colour: #FAFAFC; # --uc-muted-colour: #AAAAAC; # --uc-accent-colour: var(--uc-identity-colour-purple); # #}} # # #@media (prefers-color-scheme: light) { :root { # # /* These colours are (mainly) used by the # Container Tabs Plugin */ # --uc-identity-colour-blue: #1D65F5; # --uc-identity-colour-turquoise: #209FB5; # --uc-identity-colour-green: #40A02B; # --uc-identity-colour-yellow: #E49320; # --uc-identity-colour-orange: #FE640B; # --uc-identity-colour-red: #FC5C65; # --uc-identity-colour-pink: #EC83D0; # --uc-identity-colour-purple: #822FEE; # # /* Cascades main Colour Scheme */ # --uc-base-colour: #FAFAFC; # --uc-highlight-colour: #DADADC; # --uc-inverted-colour: #1E2021; # --uc-muted-colour: #191B1C; # --uc-accent-colour: var(--uc-identity-colour-purple); # #}} # # # # # # #/* Down here I'm just reassigning variables based on the colours set above. # Feel free to play around with these but there is no editing necessary below this line. c: # */ # #:root { # # --lwt-frame: var(--uc-base-colour) !important; # --lwt-accent-color: var(--lwt-frame) !important; # --lwt-text-color: var(--uc-inverted-colour) !important; # # --toolbar-field-color: var(--uc-inverted-colour) !important; # # --toolbar-field-focus-color: var(--uc-inverted-colour) !important; # --toolbar-field-focus-background-color: var(--uc-highlight-colour) !important; # --toolbar-field-focus-border-color: transparent !important; # # --toolbar-field-background-color: var(--lwt-frame) !important; # --lwt-toolbar-field-highlight: var(--uc-inverted-colour) !important; # --lwt-toolbar-field-highlight-text: var(--uc-highlight-colour) !important; # --urlbar-popup-url-color: var(--uc-accent-colour) !important; # # --lwt-tab-text: var(--lwt-text-colour) !important; # # --lwt-selected-tab-background-color: var(--uc-highlight-colour) !important; # # --toolbar-bgcolor: var(--lwt-frame) !important; # --toolbar-color: var(--lwt-text-color) !important; # --toolbarseparator-color: var(--uc-accent-colour) !important; # --toolbarbutton-hover-background: var(--uc-highlight-colour) !important; # --toolbarbutton-active-background: var(--toolbarbutton-hover-background) !important; # # --lwt-sidebar-background-color: var(--lwt-frame) !important; # --sidebar-background-color: var(--lwt-sidebar-background-color) !important; # # --urlbar-box-bgcolor: var(--uc-highlight-colour) !important; # --urlbar-box-text-color: var(--uc-muted-colour) !important; # --urlbar-box-hover-bgcolor: var(--uc-highlight-colour) !important; # --urlbar-box-hover-text-color: var(--uc-inverted-colour) !important; # --urlbar-box-focus-bgcolor: var(--uc-highlight-colour) !important; # #} # # # #.identity-color-blue { --identity-tab-color: var(--uc-identity-colour-blue) !important; --identity-icon-color: var(--uc-identity-colour-blue) !important; } #.identity-color-turquoise { --identity-tab-color: var(--uc-identity-colour-turquoise) !important; --identity-icon-color: var(--uc-identity-colour-turquoise) !important; } #.identity-color-green { --identity-tab-color: var(--uc-identity-colour-green) !important; --identity-icon-color: var(--uc-identity-colour-green) !important; } #.identity-color-yellow { --identity-tab-color: var(--uc-identity-colour-yellow) !important; --identity-icon-color: var(--uc-identity-colour-yellow) !important; } #.identity-color-orange { --identity-tab-color: var(--uc-identity-colour-orange) !important; --identity-icon-color: var(--uc-identity-colour-orange) !important; } #.identity-color-red { --identity-tab-color: var(--uc-identity-colour-red) !important; --identity-icon-color: var(--uc-identity-colour-red) !important; } #.identity-color-pink { --identity-tab-color: var(--uc-identity-colour-pink) !important; --identity-icon-color: var(--uc-identity-colour-pink) !important; } #.identity-color-purple { --identity-tab-color: var(--uc-identity-colour-purple) !important; --identity-icon-color: var(--uc-identity-colour-purple) !important; } # #:root { # # --toolbarbutton-border-radius: var(--uc-border-radius) !important; # --tab-border-radius: var(--uc-border-radius) !important; # --arrowpanel-border-radius: var(--uc-border-radius) !important; # #} # # # # # ##main-window, ##toolbar-menubar, ##TabsToolbar, ##navigator-toolbox, ##sidebar-box, ##nav-bar { box-shadow: none !important; } # # ##main-window, ##toolbar-menubar, ##TabsToolbar, ##PersonalToolbar, ##navigator-toolbox, ##sidebar-box, ##nav-bar { border: none !important; } # # #/* remove "padding" left and right from tabs */ #.titlebar-spacer { display: none !important; } # #/* fix Shield Icon padding */ ##urlbar-input-container[pageproxystate="valid"] # > #tracking-protection-icon-container # > #tracking-protection-icon-box # > #tracking-protection-icon { # padding-bottom: 1px; #} # # # # # ##PersonalToolbar { # # padding: 6px !important; # box-shadow: inset 0 0 50vh rgba(0, 0, 0, var(--uc-darken-toolbar)) !important;; # #} # # # # # ##statuspanel #statuspanel-label { # # border: none !important; # border-radius: var(--uc-border-radius) !important; # #} # #@media (min-width: 1000px) { # # # #navigator-toolbox { display: flex; flex-wrap: wrap; flex-direction: row; } # # # #nav-bar { # # order: var(--uc-urlbar-position); # width: var(--uc-urlbar-min-width); # # } # # #nav-bar #urlbar-container { min-width: 0px !important; width: auto !important; } # # # #titlebar { # # order: 2; # width: calc(100vw - var(--uc-urlbar-min-width) - 1px); # # } # # # #PersonalToolbar { # # order: var(--uc-toolbar-position); # width: 100%; # # } # # # #navigator-toolbox:focus-within #nav-bar { width: var(--uc-urlbar-max-width); } # #navigator-toolbox:focus-within #titlebar { width: calc(100vw - var(--uc-urlbar-max-width) - 1px); } # # #} # ##statuspanel #statuspanel-label { margin: 0 0 var(--uc-status-panel-spacing) var(--uc-status-panel-spacing) !important; } # ##navigator-toolbox:not(:-moz-lwtheme) { background: var(--toolbar-field-background-color) !important; } # # # ##nav-bar { # # padding-block-start: 0px !important; # # border: none !important; # box-shadow: none !important; # background: transparent !important; # #} # # ##urlbar, ##urlbar * { # # padding-block-start: var(--uc-urlbar-top-spacing) !important; # # outline: none !important; # box-shadow: none !important; # #} # # ##urlbar-background { border: transparent !important; } # ##urlbar[focused='true'] # > #urlbar-background, ##urlbar:not([open]) # > #urlbar-background { background: var(--toolbar-field-background-color) !important; } # # ##urlbar[open] # > #urlbar-background { background: var(--toolbar-field-background-color) !important; } # # #.urlbarView-row:hover # > .urlbarView-row-inner, #.urlbarView-row[selected] # > .urlbarView-row-inner { background: var(--toolbar-field-focus-background-color) !important; } # # #.urlbar-icon, #urlbar-go-button { margin: auto; } #.urlbar-page-action { padding: 0 inherit !important; } #.urlbar-page-action .urlbar-icon { margin-top: 6px !important; } # #/* remove gap after pinned tabs */ ##tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) # > #tabbrowser-arrowscrollbox # > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-inline-start: 0 !important; } # # #/* Hides the list-all-tabs button*/ ##alltabs-button { display: var(--uc-show-all-tabs-button) !important; } # # #/* remove tab shadow */ #.tabbrowser-tab # >.tab-stack # > .tab-background { box-shadow: none !important; } # # #/* multi tab selection */ ##tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([multiselected]) # > .tab-stack # > .tab-background:-moz-lwtheme { outline-color: var(--toolbarseparator-color) !important; } # # # # # #/* tab close button options */ #.tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; } #.tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important } # # # # # #/* adaptive tab width */ #.tabbrowser-tab[selected][fadein]:not([pinned]) { max-width: var(--uc-active-tab-width) !important; } #.tabbrowser-tab[fadein]:not([selected]):not([pinned]) { max-width: var(--uc-inactive-tab-width) !important; } # # # # # #/* container tabs indicator */ #.tabbrowser-tab[usercontextid] # > .tab-stack # > .tab-background # > .tab-context-line { # # margin: -1px var(--container-tabs-indicator-margin) 0 var(--container-tabs-indicator-margin) !important; # height: 1px !important; # # box-shadow: var(--uc-identity-glow) var(--identity-tab-color) !important; # #} # # # # # #/* show favicon when media is playing but tab is hovered */ #.tab-icon-image:not([pinned]) { opacity: 1 !important; } # # #/* Makes the speaker icon to always appear if the tab is playing (not only on hover) */ #.tab-icon-overlay:not([crashed]), #.tab-icon-overlay[pinned][crashed][selected] { # # top: 5px !important; # z-index: 1 !important; # # padding: 1.5px !important; # inset-inline-end: -8px !important; # width: 16px !important; height: 16px !important; # # border-radius: 10px !important; # #} # # #/* style and position speaker icon */ #.tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { # # stroke: transparent !important; # background: transparent !important; # opacity: 1 !important; fill-opacity: 0.8 !important; # # color: currentColor !important; # # stroke: var(--toolbar-bgcolor) !important; # background-color: var(--toolbar-bgcolor) !important; # #} # # #/* change the colours of the speaker icon on active tab to match tab colours */ #.tabbrowser-tab[selected] .tab-icon-overlay:not([sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { # # stroke: var(--toolbar-bgcolor) !important; # background-color: var(--toolbar-bgcolor) !important; # #} # # #.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted], [activemedia-blocked]) { margin-inline-end: 9.5px !important; } # # #.tabbrowser-tab:not([image]) .tab-icon-overlay:not([pinned], [sharing], [crashed]) { # # top: 0 !important; # # padding: 0 !important; # margin-inline-end: 5.5px !important; # inset-inline-end: 0 !important; # #} # # #.tab-icon-overlay:not([crashed])[soundplaying]:hover, #.tab-icon-overlay:not([crashed])[muted]:hover, #.tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { # # color: currentColor !important; # stroke: var(--toolbar-color) !important; # background-color: var(--toolbar-color) !important; # fill-opacity: 0.95 !important; # #} # # #.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[soundplaying]:hover, #.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[muted]:hover, #.tabbrowser-tab[selected] .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { # # color: currentColor !important; # stroke: var(--toolbar-color) !important; # background-color: var(--toolbar-color) !important; # fill-opacity: 0.95 !important; # #} # # #/* speaker icon colour fix */ ##TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying], ##TabsToolbar .tab-icon-overlay:not([crashed])[muted], ##TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked] { color: var(--toolbar-color) !important; } # # #/* speaker icon colour fix on hover */ ##TabsToolbar .tab-icon-overlay:not([crashed])[soundplaying]:hover, ##TabsToolbar .tab-icon-overlay:not([crashed])[muted]:hover, ##TabsToolbar .tab-icon-overlay:not([crashed])[activemedia-blocked]:hover { color: var(--toolbar-bgcolor) !important; } # #/* selected tab colour fix*/ #.tabbrowser-tab[selected] .tab-content { # background-color: var(--uc-highlight-colour) !important; #} # ''; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin bitwarden darkreader privacy-badger languagetool ]; }; }; }; xdg.portal = { enable = true; configPackages = with pkgs; [ hyprland ]; extraPortals = with pkgs; [ hyprland ]; }; # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage # when a new Home Manager release introduces backwards # incompatible changes. # # You can update Home Manager without changing this value. See # the Home Manager release notes for a list of state version # changes in each release. home.stateVersion = "24.05"; # Let Home Manager install and manage itself. programs.home-manager.enable = true; # X11 xsession.enable = true; xsession.windowManager.command = "dwm"; gtk = { enable = true; theme = { name = "Catppuccin Mocha"; package = pkgs.catppuccin-gtk; }; }; qt = { enable = true; platformTheme.name = "gtk"; style = { name = "Catppuccin Mocha"; package = pkgs.catppuccin; }; }; services = { mako = { enable = true; defaultTimeout = 8000; }; gpg-agent = { enable = true; }; }; dconf.settings = { "org/virt-manager/virt-manager/connections" = { autoconnect = [ "qemu:///system" ]; uris = [ "qemu:///system" ]; }; }; }