diff options
author | Preston Pan <preston@nullring.xyz> | 2024-03-06 20:27:03 -0800 |
---|---|---|
committer | Preston Pan <preston@nullring.xyz> | 2024-03-06 20:27:03 -0800 |
commit | 9572f04e52b1417880c00d52143cb3d5f7c6888c (patch) | |
tree | d05c9437cae920f097f33ad7bfaa4da2b1f1180f |
first commit
-rw-r--r-- | README.org | 11 | ||||
-rw-r--r-- | configuration.nix | 101 | ||||
-rw-r--r-- | flake.lock | 65 | ||||
-rw-r--r-- | flake.nix | 44 | ||||
-rw-r--r-- | home.nix | 1137 |
5 files changed, 1358 insertions, 0 deletions
diff --git a/README.org b/README.org new file mode 100644 index 0000000..c0b281f --- /dev/null +++ b/README.org @@ -0,0 +1,11 @@ +* Introduction +HyprNixMacs is a configuration that centers around the usage of NixOS and Emacs. +Note that at the time of writing, I use hyprland as my window manager, but that +might change, and therefore hyprnixmacs may not be as accurate of a name. + +** Why Not EXWM? +Because emacs is blocking, and I want to use wayland because it's much better and there's +much less cruft. + +* Installation +Simply clone this repository to ~/etc/nixos/~ and run ~sudo nixos-rebuild switch~. diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..524b94e --- /dev/null +++ b/configuration.nix @@ -0,0 +1,101 @@ +{ config, pkgs, ... }: + +{ + imports = + [ + ./hardware-configuration.nix + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "continuity"; + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + networking.networkmanager.enable = true; + + time.timeZone = "America/Vancouver"; + + i18n.defaultLocale = "en_CA.UTF-8"; + + services.xserver.enable = true; + services.xserver.displayManager.startx.enable = true; + + services.xserver = { + layout = "us"; + xkbVariant = ""; + xkbOptions = "caps:escape"; + }; + + services.printing.enable = true; + + sound.enable = true; + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + programs.zsh.enable = true; + + users.users.preston = { + isNormalUser = true; + description = "Preston Pan"; + extraGroups = [ "networkmanager" "wheel" ]; + shell = pkgs.zsh; + packages = with pkgs; [ + # thunderbird + ]; + }; + + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + nixpkgs-fmt + rnix-lsp + light + ]; + + xdg.portal = { + enable = true; + wlr.enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + config.common.default = "*"; + }; + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.11"; # Did you read the comment? +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..34b8a7f --- /dev/null +++ b/flake.lock @@ -0,0 +1,65 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1706981411, + "narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "652fda4ca6dafeb090943422c34ae9145787af37", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-23.11", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1709569716, + "narHash": "sha256-iOR44RU4jQ+YPGrn+uQeYAp7Xo7Z/+gT+wXJoGxxLTY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "617579a787259b9a6419492eaac670a5f7663917", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1709773518, + "narHash": "sha256-dTPofI3z2DBIYyjFU7YQA2eoqDlJslgeql9676GrCWs=", + "owner": "nix-community", + "repo": "NUR", + "rev": "14f8dbec7f6d16c520c632f377c6ab0da706312b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nur": "nur" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7812474 --- /dev/null +++ b/flake.nix @@ -0,0 +1,44 @@ +{ + description = "A comprehensive NixOS+Emacs+HyprLand Configuration"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; + home-manager = { + url = "github:nix-community/home-manager/release-23.11"; + # Here, `inputs.nixpkgs` of home-manager is kept consistent with + # the `inputs.nixpkgs` of the current flake, + # to avoid problems caused by different versions of nixpkgs. + inputs.nixpkgs.follows = "nixpkgs"; + }; + nur.url = "github:nix-community/NUR"; + }; + + outputs = inputs@{ nixpkgs, home-manager, nur, ... }: { + nixosConfigurations = { + continuity = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + { nixpkgs.overlays = [ nur.overlay ]; } + ({ pkgs, ... }: + let + nur-no-pkgs = import nur { + inherit pkgs; + nurpkgs = import nixpkgs { system = "x86_64-linux"; }; + }; + in { + imports = [ ]; + }) + ./configuration.nix + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + + home-manager.users.preston = import ./home.nix; + } + ]; + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..9d9330f --- /dev/null +++ b/home.nix @@ -0,0 +1,1137 @@ +{ config, pkgs, ... }: +{ + home.username = "preston"; + home.homeDirectory = "/home/preston"; + home.packages = [ + pkgs.vim + pkgs.git + pkgs.curl + pkgs.wget + pkgs.neofetch + pkgs.cowsay + pkgs.kitty + pkgs.ffmpeg + pkgs.hyprland + pkgs.grim + pkgs.acpilight + pkgs.light + pkgs.gnupg + pkgs.pass + pkgs.fira-code + pkgs.croc + pkgs.nixpkgs-fmt + pkgs.mu + pkgs.rust-analyzer + pkgs.rustc + pkgs.cargo + pkgs.rnix-lsp + pkgs.clang + pkgs.bear + pkgs.gnumake + pkgs.clang-tools + pkgs.gammastep + pkgs.pinentry + pkgs.texliveFull + pkgs.helvum + pkgs.xdg-utils + pkgs.ncmpcpp + pkgs.noto-fonts + pkgs.noto-fonts-cjk + pkgs.autobuild + pkgs.rsync + pkgs.pavucontrol + pkgs.swww + pkgs.fswebcam + pkgs.nmap + pkgs.mpc-cli + pkgs.yt-dlp + pkgs.mpv + pkgs.python3 + (pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; }) + (pkgs.discord.override { + withOpenASAR = true; + withVencord = true; + }) + pkgs.ungoogled-chromium + ]; + + fonts.fontconfig.enable = true; + xsession.enable = true; + home.stateVersion = "23.11"; + + services.gpg-agent = { + enable = true; + pinentryFlavor = "emacs"; + extraConfig = '' + allow-emacs-pinentry + allow-loopback-pinentry + ''; + }; + + services.mpd = { + enable = true; + dbFile = "/home/preston/.config/mpd/db"; + dataDir = "/home/preston/.config/mpd/"; + network.port = 6600; + musicDirectory = "/home/preston/music"; + playlistDirectory = "/home/preston/.config/mpd/playlists"; + extraConfig = '' + audio_output { + type "pipewire" + name "pipewire output" + } + ''; + }; + + programs.wofi = { + enable = true; + settings = { + location = "bottom-right"; + allow_markup = true; + show = "drun"; + width = 750; + height = 400; + always_parse_args = true; + show_all = false; + term = "kitty"; + hide_scroll = true; + print_command = true; + insensitive = true; + prompt = ""; + columns = 2; + }; + + style = '' + @define-color rosewater #f5e0dc; + @define-color rosewater-rgb rgb(245, 224, 220); + @define-color flamingo #f2cdcd; + @define-color flamingo-rgb rgb(242, 205, 205); + @define-color pink #f5c2e7; + @define-color pink-rgb rgb(245, 194, 231); + @define-color mauve #cba6f7; + @define-color mauve-rgb rgb(203, 166, 247); + @define-color red #f38ba8; + @define-color red-rgb rgb(243, 139, 168); + @define-color maroon #eba0ac; + @define-color maroon-rgb rgb(235, 160, 172); + @define-color peach #fab387; + @define-color peach-rgb rgb(250, 179, 135); + @define-color yellow #f9e2af; + @define-color yellow-rgb rgb(249, 226, 175); + @define-color green #a6e3a1; + @define-color green-rgb rgb(166, 227, 161); + @define-color teal #94e2d5; + @define-color teal-rgb rgb(148, 226, 213); + @define-color sky #89dceb; + @define-color sky-rgb rgb(137, 220, 235); + @define-color sapphire #74c7ec; + @define-color sapphire-rgb rgb(116, 199, 236); + @define-color blue #89b4fa; + @define-color blue-rgb rgb(137, 180, 250); + @define-color lavender #b4befe; + @define-color lavender-rgb rgb(180, 190, 254); + @define-color text #cdd6f4; + @define-color text-rgb rgb(205, 214, 244); + @define-color subtext1 #bac2de; + @define-color subtext1-rgb rgb(186, 194, 222); + @define-color subtext0 #a6adc8; + @define-color subtext0-rgb rgb(166, 173, 200); + @define-color overlay2 #9399b2; + @define-color overlay2-rgb rgb(147, 153, 178); + @define-color overlay1 #7f849c; + @define-color overlay1-rgb rgb(127, 132, 156); + @define-color overlay0 #6c7086; + @define-color overlay0-rgb rgb(108, 112, 134); + @define-color surface2 #585b70; + @define-color surface2-rgb rgb(88, 91, 112); + @define-color surface1 #45475a; + @define-color surface1-rgb rgb(69, 71, 90); + @define-color surface0 #313244; + @define-color surface0-rgb rgb(49, 50, 68); + @define-color base #1e1e2e; + @define-color base-rgb rgb(30, 30, 46); + @define-color mantle #181825; + @define-color mantle-rgb rgb(24, 24, 37); + @define-color crust #11111b; + @define-color crust-rgb rgb(17, 17, 27); + + * { + font-family: 'Iosevka Nerd Font', monospace; + font-size: 14px; + } + + /* Window */ + window { + margin: 0px; + padding: 10px; + border: 0.16em solid @lavender; + border-radius: 0.1em; + background-color: @base; + animation: slideIn 0.5s ease-in-out both; + } + + /* Slide In */ + @keyframes slideIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + /* Inner Box */ + #inner-box { + margin: 5px; + padding: 10px; + border: none; + background-color: @base; + animation: fadeIn 0.5s ease-in-out both; + } + + /* Fade In */ + @keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + /* Outer Box */ + #outer-box { + margin: 5px; + padding: 10px; + border: none; + background-color: @base; + } + + /* Scroll */ + #scroll { + margin: 0px; + padding: 10px; + border: none; + background-color: @base; + } + + /* Input */ + #input { + margin: 5px 20px; + padding: 10px; + border: none; + border-radius: 0.1em; + color: @text; + background-color: @base; + animation: fadeIn 0.5s ease-in-out both; + } + + #input image { + border: none; + color: @red; + } + + #input * { + outline: 4px solid @red!important; + } + + /* Text */ + #text { + margin: 5px; + border: none; + color: @text; + animation: fadeIn 0.5s ease-in-out both; + } + + #entry { + background-color: @base; + } + + #entry arrow { + border: none; + color: @lavender; + } + + /* Selected Entry */ + #entry:selected { + border: 0.11em solid @lavender; + } + + #entry:selected #text { + color: @mauve; + } + + #entry:drop(active) { + background-color: @lavender!important; + } + ''; + }; + + programs.kitty = { + enable = true; + settings = { + enable_audio_bell = false; + font_family = "Fira Code"; + font_size = 12; + confirm_os_window_close = -1; + background_opacity = "0.9"; + }; + extraConfig = '' + # The basic colors + foreground #CDD6F4 + background #1E1E2E + selection_foreground #1E1E2E + selection_background #F5E0DC + + # Cursor colors + cursor #F5E0DC + cursor_text_color #1E1E2E + + # URL underline color when hovering with mouse + url_color #F5E0DC + + # Kitty window border colors + active_border_color #B4BEFE + inactive_border_color #6C7086 + bell_border_color #F9E2AF + + # OS Window titlebar colors + wayland_titlebar_color #1E1E2E + macos_titlebar_color #1E1E2E + + # Tab bar colors + active_tab_foreground #11111B + active_tab_background #CBA6F7 + inactive_tab_foreground #CDD6F4 + inactive_tab_background #181825 + tab_bar_background #11111B + + # Colors for marks (marked text in the terminal) + mark1_foreground #1E1E2E + mark1_background #B4BEFE + mark2_foreground #1E1E2E + mark2_background #CBA6F7 + mark3_foreground #1E1E2E + mark3_background #74C7EC + + # The 16 terminal colors + + # black + color0 #45475A + color8 #585B70 + + # red + color1 #F38BA8 + color9 #F38BA8 + + # green + color2 #A6E3A1 + color10 #A6E3A1 + + # yellow + color3 #F9E2AF + color11 #F9E2AF + + # blue + color4 #89B4FA + color12 #89B4FA + + # magenta + color5 #F5C2E7 + color13 #F5C2E7 + + # cyan + color6 #94E2D5 + color14 #94E2D5 + + # white + color7 #BAC2DE + color15 #A6ADC8 + ''; + }; + programs.firefox = { + policies = { + EnableTrackingProtection = true; + OfferToSaveLogins = false; + }; + enable = true; + profiles = { + default = { + id = 0; + name = "default"; + isDefault = true; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + tree-style-tab + firefox-color + vimium + ]; + extraConfig = '' + // + /* You may copy+paste this file and use it as it is. + * + * If you make changes to your about:config while the program is running, the + * changes will be overwritten by the user.js when the application restarts. + * + * To make lasting changes to preferences, you will have to edit the user.js. + */ + + /**************************************************************************** + * Betterfox * + * "Ad meliora" * + * version: 122 * + * url: https://github.com/yokoffing/Betterfox * + ****************************************************************************/ + + /**************************************************************************** + * SECTION: FASTFOX * + ****************************************************************************/ + /** GENERAL ***/ + user_pref("content.notify.interval", 100000); + + /** GFX ***/ + user_pref("gfx.canvas.accelerated.cache-items", 4096); + user_pref("gfx.canvas.accelerated.cache-size", 512); + user_pref("gfx.content.skia-font-cache-size", 20); + + /** DISK CACHE ***/ + user_pref("browser.cache.jsbc_compression_level", 3); + + /** MEDIA CACHE ***/ + user_pref("media.memory_cache_max_size", 65536); + user_pref("media.cache_readahead_limit", 7200); + user_pref("media.cache_resume_threshold", 3600); + + /** IMAGE CACHE ***/ + user_pref("image.mem.decode_bytes_at_a_time", 32768); + + /** NETWORK ***/ + user_pref("network.buffer.cache.size", 262144); + user_pref("network.buffer.cache.count", 128); + user_pref("network.http.max-connections", 1800); + user_pref("network.http.max-persistent-connections-per-server", 10); + user_pref("network.http.max-urgent-start-excessive-connections-per-host", 5); + user_pref("network.http.pacing.requests.enabled", false); + user_pref("network.dnsCacheExpiration", 3600); + user_pref("network.dns.max_high_priority_threads", 8); + user_pref("network.ssl_tokens_cache_capacity", 10240); + + /** SPECULATIVE LOADING ***/ + user_pref("network.dns.disablePrefetch", true); + user_pref("network.prefetch-next", false); + user_pref("network.predictor.enabled", false); + + /** EXPERIMENTAL ***/ + user_pref("layout.css.grid-template-masonry-value.enabled", true); + user_pref("dom.enable_web_task_scheduling", true); + user_pref("layout.css.has-selector.enabled", true); + user_pref("dom.security.sanitizer.enabled", true); + + /**************************************************************************** + * SECTION: SECUREFOX * + ****************************************************************************/ + /** TRACKING PROTECTION ***/ + user_pref("browser.contentblocking.category", "strict"); + user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com"); + user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com"); + user_pref("network.cookie.sameSite.noneRequiresSecure", true); + user_pref("browser.download.start_downloads_in_tmp_dir", true); + user_pref("browser.helperApps.deleteTempFileOnExit", true); + user_pref("browser.uitour.enabled", false); + user_pref("privacy.globalprivacycontrol.enabled", true); + + /** OCSP & CERTS / HPKP ***/ + user_pref("security.OCSP.enabled", 0); + user_pref("security.remote_settings.crlite_filters.enabled", true); + user_pref("security.pki.crlite_mode", 2); + + /** SSL / TLS ***/ + user_pref("security.ssl.treat_unsafe_negotiation_as_broken", true); + user_pref("browser.xul.error_pages.expert_bad_cert", true); + user_pref("security.tls.enable_0rtt_data", false); + + /** DISK AVOIDANCE ***/ + user_pref("browser.privatebrowsing.forceMediaMemoryCache", true); + user_pref("browser.sessionstore.interval", 60000); + + /** SHUTDOWN & SANITIZING ***/ + /** L **/ + user_pref("privacy.history.custom", true); + + /** SEARCH / URL BAR ***/ + user_pref("browser.search.separatePrivateDefault.ui.enabled", true); + user_pref("browser.urlbar.update2.engineAliasRefresh", true); + user_pref("browser.search.suggest.enabled", false); + user_pref("browser.urlbar.suggest.quicksuggest.sponsored", false); + user_pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false); + user_pref("browser.formfill.enable", false); + user_pref("security.insecure_connection_text.enabled", true); + user_pref("security.insecure_connection_text.pbmode.enabled", true); + user_pref("network.IDN_show_punycode", true); + + /** HTTPS-FIRST POLICY ***/ + user_pref("dom.security.https_first", true); + user_pref("dom.security.https_first_schemeless", true); + + /** PASSWORDS ***/ + user_pref("signon.formlessCapture.enabled", false); + user_pref("signon.privateBrowsingCapture.enabled", false); + user_pref("network.auth.subresource-http-auth-allow", 1); + user_pref("editor.truncate_user_pastes", false); + + /** MIXED CONTENT + CROSS-SITE ***/ + user_pref("security.mixed_content.block_display_content", true); + user_pref("security.mixed_content.upgrade_display_content", true); + user_pref("security.mixed_content.upgrade_display_content.image", true); + user_pref("pdfjs.enableScripting", false); + user_pref("extensions.postDownloadThirdPartyPrompt", false); + + /** HEADERS / REFERERS ***/ + user_pref("network.http.referer.XOriginTrimmingPolicy", 2); + + /** CONTAINERS ***/ + user_pref("privacy.userContext.ui.enabled", true); + + /** WEBRTC ***/ + user_pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true); + user_pref("media.peerconnection.ice.default_address_only", true); + + /** SAFE BROWSING ***/ + user_pref("browser.safebrowsing.downloads.remote.enabled", false); + + /** MOZILLA ***/ + user_pref("permissions.default.desktop-notification", 2); + user_pref("permissions.default.geo", 2); + user_pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); + user_pref("permissions.manager.defaultsUrl", ""); + user_pref("webchannel.allowObject.urlWhitelist", ""); + + /** TELEMETRY ***/ + user_pref("datareporting.policy.dataSubmissionEnabled", false); + user_pref("datareporting.healthreport.uploadEnabled", false); + user_pref("toolkit.telemetry.unified", false); + user_pref("toolkit.telemetry.enabled", false); + user_pref("toolkit.telemetry.server", "data:,"); + user_pref("toolkit.telemetry.archive.enabled", false); + user_pref("toolkit.telemetry.newProfilePing.enabled", false); + user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); + user_pref("toolkit.telemetry.updatePing.enabled", false); + user_pref("toolkit.telemetry.bhrPing.enabled", false); + user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); + user_pref("toolkit.telemetry.coverage.opt-out", true); + user_pref("toolkit.coverage.opt-out", true); + user_pref("toolkit.coverage.endpoint.base", ""); + user_pref("browser.ping-centre.telemetry", false); + user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); + user_pref("browser.newtabpage.activity-stream.telemetry", false); + + /** EXPERIMENTS ***/ + user_pref("app.shield.optoutstudies.enabled", false); + user_pref("app.normandy.enabled", false); + user_pref("app.normandy.api_url", ""); + + /** CRASH REPORTS ***/ + user_pref("breakpad.reportURL", ""); + user_pref("browser.tabs.crashReporting.sendReport", false); + user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); + + /** DETECTION ***/ + user_pref("captivedetect.canonicalURL", ""); + user_pref("network.captive-portal-service.enabled", false); + user_pref("network.connectivity-service.enabled", false); + + /**************************************************************************** + * SECTION: PESKYFOX * + ****************************************************************************/ + /** MOZILLA UI ***/ + /** format on save please? **/ + user_pref("browser.privatebrowsing.vpnpromourl", ""); + user_pref("extensions.getAddons.showPane", false); + user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); + user_pref("browser.discovery.enabled", false); + user_pref("browser.shell.checkDefaultBrowser", false); + user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); + user_pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); + user_pref("browser.preferences.moreFromMozilla", false); + user_pref("browser.tabs.tabmanager.enabled", false); + user_pref("browser.aboutConfig.showWarning", false); + user_pref("browser.aboutwelcome.enabled", false); + + /** THEME ADJUSTMENTS ***/ + user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); + user_pref("browser.compactmode.show", true); + user_pref("browser.display.focus_ring_on_anything", true); + user_pref("browser.display.focus_ring_style", 0); + user_pref("browser.display.focus_ring_width", 0); + user_pref("layout.css.prefers-color-scheme.content-override", 2); + user_pref("browser.privateWindowSeparation.enabled", false); // WINDOWS + + /** COOKIE BANNER HANDLING ***/ + user_pref("cookiebanners.service.mode", 1); + user_pref("cookiebanners.service.mode.privateBrowsing", 1); + + /** FULLSCREEN NOTICE ***/ + user_pref("full-screen-api.transition-duration.enter", "0 0"); + user_pref("full-screen-api.transition-duration.leave", "0 0"); + user_pref("full-screen-api.warning.delay", -1); + user_pref("full-screen-api.warning.timeout", 0); + + /** URL BAR ***/ + user_pref("browser.urlbar.suggest.calculator", true); + user_pref("browser.urlbar.unitConversion.enabled", true); + user_pref("browser.urlbar.trending.featureGate", false); + + /** NEW TAB PAGE ***/ + user_pref("browser.newtabpage.activity-stream.feeds.topsites", false); + user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); + + /** POCKET ***/ + user_pref("extensions.pocket.enabled", false); + + /** DOWNLOADS ***/ + user_pref("browser.download.always_ask_before_handling_new_types", true); + user_pref("browser.download.manager.addToRecentDocs", false); + + /** PDF ***/ + user_pref("browser.download.open_pdf_attachments_inline", true); + + /** TAB BEHAVIOR ***/ + user_pref("browser.bookmarks.openInTabClosesMenu", false); + user_pref("browser.menu.showViewImageInfo", true); + user_pref("findbar.highlightAll", true); + user_pref("layout.word_select.eat_space_to_next_word", false); + ''; + }; + }; + }; + programs.waybar = { + enable = true; + style = '' + * { + border: none; + border-radius: 0px; + /*font-family: Fira Code, Iosevka Nerd Font, Noto Sans CJK;*/ + font-family: Iosevka, FontAwesome, Noto Sans CJK; + font-size: 14px; + font-style: normal; + min-height: 0; + } + + window#waybar { + background: rgba(30, 30, 46, 0.5); + border-bottom: 1px solid #45475a; + color: #cdd6f4; + } + + #workspaces { + background: #45475a; + margin: 5px 5px 5px 5px; + padding: 0px 5px 0px 5px; + border-radius: 16px; + border: solid 0px #f4d9e1; + font-weight: normal; + font-style: normal; + } + #workspaces button { + padding: 0px 5px; + border-radius: 16px; + color: #a6adc8; + } + + #workspaces button.active { + color: #f4d9e1; + background-color: transparent; + border-radius: 16px; + } + + #workspaces button:hover { + background-color: #cdd6f4; + color: black; + border-radius: 16px; + } + + #custom-date, #clock, #battery, #pulseaudio, #network, #custom-randwall, #custom-launcher { + background: transparent; + padding: 5px 5px 5px 5px; + margin: 5px 5px 5px 5px; + border-radius: 8px; + border: solid 0px #f4d9e1; + } + + #custom-date { + color: #D3869B; + } + + #custom-power { + color: #24283b; + background-color: #db4b4b; + border-radius: 5px; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; + margin-left: 0px; + padding: 5px 10px; + } + + #tray { + background: #45475a; + margin: 5px 5px 5px 5px; + border-radius: 16px; + padding: 0px 5px; + /*border-right: solid 1px #282738;*/ + } + + #clock { + color: #cdd6f4; + background-color: #45475a; + border-radius: 0px 0px 0px 24px; + padding-left: 13px; + padding-right: 15px; + margin-right: 0px; + margin-left: 10px; + margin-top: 0px; + margin-bottom: 0px; + font-weight: bold; + /*border-left: solid 1px #282738;*/ + } + + #battery { + color: #89b4fa; + } + + #battery.charging { + color: #a6e3a1; + } + + #battery.warning:not(.charging) { + background-color: #f7768e; + color: #f38ba8; + border-radius: 5px 5px 5px 5px; + } + + #backlight { + background-color: #24283b; + color: #db4b4b; + border-radius: 0px 0px 0px 0px; + margin: 5px; + margin-left: 0px; + margin-right: 0px; + padding: 0px 0px; + } + + #network { + color: #f4d9e1; + border-radius: 8px; + margin-right: 5px; + } + + #pulseaudio { + color: #f4d9e1; + border-radius: 8px; + margin-left: 0px; + } + + #pulseaudio.muted { + background: transparent; + color: #928374; + border-radius: 8px; + margin-left: 0px; + } + + #custom-randwall { + color: #f4d9e1; + border-radius: 8px; + margin-right: 0px; + } + + #custom-launcher { + color: #e5809e; + background-color: #45475a; + border-radius: 0px 24px 0px 0px; + margin: 0px 0px 0px 0px; + padding: 0 20px 0 13px; + /*border-right: solid 1px #282738;*/ + font-size: 20px; + } + + #custom-launcher button:hover { + background-color: #FB4934; + color: transparent; + border-radius: 8px; + margin-right: -5px; + margin-left: 10px; + } + + #custom-playerctl { + background: #45475a; + padding-left: 15px; + padding-right: 14px; + border-radius: 16px; + /*border-left: solid 1px #282738;*/ + /*border-right: solid 1px #282738;*/ + margin-top: 5px; + margin-bottom: 5px; + margin-left: 0px; + font-weight: normal; + font-style: normal; + font-size: 16px; + } + + #custom-playerlabel { + background: transparent; + padding-left: 10px; + padding-right: 15px; + border-radius: 16px; + /*border-left: solid 1px #282738;*/ + /*border-right: solid 1px #282738;*/ + margin-top: 5px; + margin-bottom: 5px; + font-weight: normal; + font-style: normal; + } + + #window { + background: #45475a; + padding-left: 15px; + padding-right: 15px; + border-radius: 16px; + /*border-left: solid 1px #282738;*/ + /*border-right: solid 1px #282738;*/ + margin-top: 5px; + margin-bottom: 5px; + font-weight: normal; + font-style: normal; + } + + #custom-wf-recorder { + padding: 0 20px; + color: #e5809e; + background-color: #1E1E2E; + } + + #cpu { + background-color: #45475a; + /*color: #FABD2D;*/ + border-radius: 16px; + margin: 5px; + margin-left: 5px; + margin-right: 5px; + padding: 0px 10px 0px 10px; + font-weight: bold; + } + + #memory { + background-color: #45475a; + /*color: #83A598;*/ + border-radius: 16px; + margin: 5px; + margin-left: 5px; + margin-right: 5px; + padding: 0px 10px 0px 10px; + font-weight: bold; + } + + #disk { + background-color: #45475a; + /*color: #8EC07C;*/ + border-radius: 16px; + margin: 5px; + margin-left: 5px; + margin-right: 5px; + padding: 0px 10px 0px 10px; + font-weight: bold; + } |