diff --git a/config/nix/common/firefox.nix b/config/nix/common/firefox.nix index 09799a74..80529b1b 100644 --- a/config/nix/common/firefox.nix +++ b/config/nix/common/firefox.nix @@ -1 +1,19 @@ -{ device, ... }: { programs.firefox = { enable = device.isLinux; }; } +{ device, pkgs, ... }: { + programs.firefox = { + enable = device.isLinux; + profiles.default = { + userChrome = let + csshacks = pkgs.fetchFromGitHub { + owner = "MrOtherGuy"; + repo = "firefox-csshacks"; + rev = "master"; + sha256 = "sha256-r5CKOOcRWZQzYA9M6j7m2CAulOQItCuWsTSNGOYN87w="; + }; + in '' + @import url(${csshacks}/chrome/tabs_on_bottom.css); + @import url(${csshacks}/chrome/toolbars_below_content.css); + ''; + }; + nativeMessagingHosts = [ pkgs.tridactyl-native ]; + }; +} diff --git a/config/nix/common/home.nix b/config/nix/common/home.nix index fdcb25bb..2df201e9 100644 --- a/config/nix/common/home.nix +++ b/config/nix/common/home.nix @@ -2,15 +2,14 @@ let start-tmux = (import ../scripts/start-tmux.nix) pkgs; # https://mipmip.github.io/home-manager-option-search/ - lazy = false; -in -{ + lazy = true; +in { imports = [ # Include the results of the hardware scan. ./tmux.nix ./wezterm.nix ] ++ (if device.isLinux then [ ../linux ] else [ ]) - ++ (if !lazy then [ ./nvim ] else [ ]); + ++ (if !lazy then [ ./nvim ] else [ ]); home.packages = with pkgs; [ @@ -123,19 +122,17 @@ in enable = true; enableFishIntegration = true; enableNushellIntegration = true; - settings = - let flavour = "mocha"; # Replace with your preferred palette - in { - # Other config here - format = "$all"; # Remove this line to disable the default prompt format - palette = "catppuccin_${flavour}"; - } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "starship"; - rev = "main"; # Replace with the latest commit hash - sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0"; - } + /palettes/${flavour}.toml)); + settings = let flavour = "mocha"; # Replace with your preferred palette + in { + # Other config here + format = "$all"; # Remove this line to disable the default prompt format + palette = "catppuccin_${flavour}"; + } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "main"; # Replace with the latest commit hash + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0"; + } + /palettes/${flavour}.toml)); }; eza = { enable = true; @@ -163,17 +160,16 @@ in enable = true; config = { theme = "catppuccin"; }; themes = { - catppuccin = - let flavor = "mocha"; - in { - src = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "bat"; - rev = "main"; - sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw"; - }; - file = "Catppuccin-${flavor}.tmTheme"; + catppuccin = let flavor = "mocha"; + in { + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "bat"; + rev = "main"; + sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw"; }; + file = "Catppuccin-${flavor}.tmTheme"; + }; }; }; @@ -186,11 +182,10 @@ in # Home Manager needs a bit of information about you and the paths it should # manage. username = device.user; - homeDirectory = - if device.isMac then - lib.mkForce "/Users/${device.user}" - else - lib.mkForce "/home/${device.user}"; + homeDirectory = if device.isMac then + lib.mkForce "/Users/${device.user}" + else + lib.mkForce "/home/${device.user}"; stateVersion = "23.11"; @@ -206,7 +201,8 @@ in } // (if lazy then { ".config/nvim/lua".source = ../../nvim/lua; ".config/nvim/init.lua".source = ../../nvim/init.lua; - } else { }); + } else + { }); sessionVariables = { EDITOR = "nvim"; diff --git a/config/nix/common/nvim/default.nix b/config/nix/common/nvim/default.nix index e46008f4..2e6427e4 100644 --- a/config/nix/common/nvim/default.nix +++ b/config/nix/common/nvim/default.nix @@ -21,9 +21,7 @@ undofile = true; }; - globals = { - mapleader = " "; - }; + globals = { mapleader = " "; }; plugins = { lspconfig = { enable = true; diff --git a/config/nix/common/wezterm.nix b/config/nix/common/wezterm.nix index 219855a5..9e2ab6c2 100644 --- a/config/nix/common/wezterm.nix +++ b/config/nix/common/wezterm.nix @@ -2,63 +2,63 @@ programs.wezterm = { enable = true; extraConfig = '' - local wezterm = require 'wezterm'; - return { - -- -- font = wezterm.font("Hasklug Nerd Font Mono", { weight = "Regular", stretch = "Normal", style = "Normal" }), - -- font = wezterm.font_with_fallback({ - -- "Hasklig", - -- "Symbols Nerd Font Mono" - -- }), + local wezterm = require 'wezterm'; + return { + -- -- font = wezterm.font("Hasklug Nerd Font Mono", { weight = "Regular", stretch = "Normal", style = "Normal" }), + -- font = wezterm.font_with_fallback({ + -- "Hasklig", + -- "Symbols Nerd Font Mono" + -- }), - color_scheme = "Catppuccin Mocha", - font_size = 16, --- colors = { --- -- The default text color --- foreground = "#f8f8f2", --- -- The default background color --- -- background = "#282a36", --- -- Overrides the cell background color when the current cell is occupied by the --- -- cursor and the cursor style is set to Block --- cursor_bg = "#f8f8f2", --- -- Overrides the text color when the current cell is occupied by the cursor --- cursor_fg = "#000", --- -- Specifies the border color of the cursor when the cursor style is set to Block, --- -- or the color of the vertical or horizontal bar when the cursor style is set to --- -- Bar or Underline. --- cursor_border = "#52ad70", --- -- the foreground color of selected text --- selection_fg = "#ffffff", --- -- the background color of selected text --- selection_bg = "#ffffff", --- -- The color of the scrollbar "thumb"; the portion that represents the current viewport --- scrollbar_thumb = "#222222", --- -- The color of the split lines between panes --- split = "#444444", --- ansi = { "#21222c", "#ff5555", "#50fa7b", "#f1fa8c", "#bd93f9", "#ff79c6", "#8be9fd", "#f8f8f2" }, --- brights = { "#6272a4", "#ff6e6e", "#69ff94", "#ffffa5", "#d6acff", "#ff92df", "#a4ffff", "#ffffff" }, --- -- Arbitrary colors of the palette in the range from 16 to 255 --- indexed = { [136] = "#af8700" }, --- -- Since: nightly builds only --- -- When the IME, a dead key or a leader key are being processed and are effectively --- -- holding input pending the result of input composition, change the cursor --- -- to this color to give a visual cue about the compose state. --- compose_cursor = "orange", --- }, - initial_cols = 120, - hide_tab_bar_if_only_one_tab = true, - window_background_opacity = 0.8, - cursor_blink_rate = 8, - default_cursor_style = "BlinkingBlock", - default_prog = { "${pkgs.fish.outPath}/bin/fish", "-l" }, - window_padding = { - left = 2, - right = 0, - top = 2, - bottom = 0, - }, - window_decorations = "RESIZE", - use_ime = false, - } + color_scheme = "Catppuccin Mocha", + font_size = 16, + -- colors = { + -- -- The default text color + -- foreground = "#f8f8f2", + -- -- The default background color + -- -- background = "#282a36", + -- -- Overrides the cell background color when the current cell is occupied by the + -- -- cursor and the cursor style is set to Block + -- cursor_bg = "#f8f8f2", + -- -- Overrides the text color when the current cell is occupied by the cursor + -- cursor_fg = "#000", + -- -- Specifies the border color of the cursor when the cursor style is set to Block, + -- -- or the color of the vertical or horizontal bar when the cursor style is set to + -- -- Bar or Underline. + -- cursor_border = "#52ad70", + -- -- the foreground color of selected text + -- selection_fg = "#ffffff", + -- -- the background color of selected text + -- selection_bg = "#ffffff", + -- -- The color of the scrollbar "thumb"; the portion that represents the current viewport + -- scrollbar_thumb = "#222222", + -- -- The color of the split lines between panes + -- split = "#444444", + -- ansi = { "#21222c", "#ff5555", "#50fa7b", "#f1fa8c", "#bd93f9", "#ff79c6", "#8be9fd", "#f8f8f2" }, + -- brights = { "#6272a4", "#ff6e6e", "#69ff94", "#ffffa5", "#d6acff", "#ff92df", "#a4ffff", "#ffffff" }, + -- -- Arbitrary colors of the palette in the range from 16 to 255 + -- indexed = { [136] = "#af8700" }, + -- -- Since: nightly builds only + -- -- When the IME, a dead key or a leader key are being processed and are effectively + -- -- holding input pending the result of input composition, change the cursor + -- -- to this color to give a visual cue about the compose state. + -- compose_cursor = "orange", + -- }, + initial_cols = 120, + hide_tab_bar_if_only_one_tab = true, + window_background_opacity = 0.8, + cursor_blink_rate = 8, + default_cursor_style = "BlinkingBlock", + default_prog = { "${pkgs.fish.outPath}/bin/fish", "-l" }, + window_padding = { + left = 2, + right = 0, + top = 2, + bottom = 0, + }, + window_decorations = "RESIZE", + use_ime = false, + } ''; }; } diff --git a/config/nix/flake.lock b/config/nix/flake.lock index 4f6e7465..68e8a810 100644 --- a/config/nix/flake.lock +++ b/config/nix/flake.lock @@ -311,11 +311,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", "type": "github" }, "original": { @@ -382,11 +382,11 @@ "systems": "systems_7" }, "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", "owner": "numtide", "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", "type": "github" }, "original": { @@ -483,11 +483,11 @@ ] }, "locked": { - "lastModified": 1708988456, - "narHash": "sha256-RCz7Xe64tN2zgWk+MVHkzg224znwqknJ1RnB7rVqUWw=", + "lastModified": 1709204054, + "narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", "owner": "nix-community", "repo": "home-manager", - "rev": "1d085ea4444d26aa52297758b333b449b2aa6fca", + "rev": "2f3367769a93b226c467551315e9e270c3f78b15", "type": "github" }, "original": { @@ -504,11 +504,11 @@ ] }, "locked": { - "lastModified": 1708806879, - "narHash": "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=", + "lastModified": 1709204054, + "narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", "owner": "nix-community", "repo": "home-manager", - "rev": "4ee704cb13a5a7645436f400b9acc89a67b9c08a", + "rev": "2f3367769a93b226c467551315e9e270c3f78b15", "type": "github" }, "original": { @@ -527,11 +527,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1708987072, - "narHash": "sha256-FVoalv8tlPldD6+6yyGFtiuao+YdEH1KbUPUmsEgUVc=", + "lastModified": 1709065223, + "narHash": "sha256-7zuh1ait7C6OAVfhl5fVloxrAc0WJBxEOu1XqPhlwI0=", "owner": "JakeStanger", "repo": "ironbar", - "rev": "d29d4fde8c09c25141ff0cebe994d3ce771b658e", + "rev": "149b57a73701af9d430ddf97252c6cc72074b2d2", "type": "github" }, "original": { @@ -640,11 +640,11 @@ ] }, "locked": { - "lastModified": 1709001452, - "narHash": "sha256-FnZ54wkil54hKvr1irdKic1TE27lHQI9dKQmOJRrtlU=", + "lastModified": 1709112925, + "narHash": "sha256-5y8Dhw1HYdc+BWv+qQjJUIwc+ByoudtoGaHEcrXYlXw=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "6c06334f0843c7300d1678726bb607ce526f6b36", + "rev": "283d59778e6b8c41cac4bdeac5b2512d6de51150", "type": "github" }, "original": { @@ -727,11 +727,11 @@ "nmt": "nmt" }, "locked": { - "lastModified": 1708966912, - "narHash": "sha256-Ee92D/hOgJX2mGHxYEB50zu6OoqVFN4chTxxpAYj57c=", + "lastModified": 1709216523, + "narHash": "sha256-8BaqUeMgwDBsXVpyE+AYVW7QBjR0DnsGnY0qZHdi9Ew=", "owner": "nixneovim", "repo": "nixneovim", - "rev": "81f257a375aa66d0ae8cd2ac1c3215b42b20786e", + "rev": "eebce182253d8c665a8a19e0b056f6cfaf97872c", "type": "github" }, "original": { @@ -753,11 +753,11 @@ "poetry2nix": "poetry2nix" }, "locked": { - "lastModified": 1708870615, - "narHash": "sha256-9GeZzoT8kxJY3OkpeOo/eJ4bqwaQTGggv3fR/5UdIkY=", + "lastModified": 1709216468, + "narHash": "sha256-3b3RFHQzea2L7lMUiS87r2A/RC+TJbBo/g7IY+5DYfk=", "owner": "nixneovim", "repo": "nixneovimplugins", - "rev": "eb98507f0309ddb74d81367838e742d47e9e456f", + "rev": "03cd562d0e4700216dcf8c3e14a4eebf0b2e5681", "type": "github" }, "original": { @@ -775,11 +775,11 @@ "poetry2nix": "poetry2nix_2" }, "locked": { - "lastModified": 1708870615, - "narHash": "sha256-9GeZzoT8kxJY3OkpeOo/eJ4bqwaQTGggv3fR/5UdIkY=", + "lastModified": 1709216547, + "narHash": "sha256-BZcxoobO6CaJ4Y2CdEiiY1381G/LdUr82mjKXEftGow=", "owner": "NixNeovim", "repo": "NixNeovimPlugins", - "rev": "eb98507f0309ddb74d81367838e742d47e9e456f", + "rev": "acad18539f283314a9c5cd4dee8eb70dd782c663", "type": "github" }, "original": { @@ -885,11 +885,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1708807242, - "narHash": "sha256-sRTRkhMD4delO/hPxxi+XwLqPn8BuUq6nnj4JqLwOu0=", + "lastModified": 1709150264, + "narHash": "sha256-HofykKuisObPUfj0E9CJVfaMhawXkYx3G8UIFR/XQ38=", "owner": "nixos", "repo": "nixpkgs", - "rev": "73de017ef2d18a04ac4bfd0c02650007ccb31c2a", + "rev": "9099616b93301d5cf84274b184a3a5ec69e94e08", "type": "github" }, "original": { diff --git a/config/nix/flake.nix b/config/nix/flake.nix index dfbf8ed7..a361fe7d 100644 --- a/config/nix/flake.nix +++ b/config/nix/flake.nix @@ -57,8 +57,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # { pkgs, inputs, system, ... }: + nur = { + url = "github:nix-community/nur"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # { pkgs, inputs, system, ... }: # { # nixpkgs.overlays = [ # (final: prev: { @@ -77,16 +81,8 @@ }; - outputs = - { nixpkgs - , # nixos, - home-manager - , nix-darwin - , flake-utils - , anyrun - , neovim-nightly-overlay - , ... - }@inputs: + outputs = { nixpkgs, home-manager, nix-darwin, flake-utils, anyrun + , neovim-nightly-overlay, ... }@inputs: let config_devices = [ { @@ -158,24 +154,20 @@ inputs.nixneovim.overlays.default inputs.nixneovimplugins.overlays.default ]; - in - { - nixosConfigurations = - let devices = nixos_devices; - in import ./nixos/device.nix { - inherit devices inputs nixpkgs home-manager overlays; - }; + in { + nixosConfigurations = let devices = nixos_devices; + in import ./nixos/device.nix { + inherit devices inputs nixpkgs home-manager overlays; + }; - darwinConfigurations = - let devices = darwin_devices; - in import ./darwin/device.nix { - inherit devices inputs nixpkgs home-manager overlays nix-darwin; - }; + darwinConfigurations = let devices = darwin_devices; + in import ./darwin/device.nix { + inherit devices inputs nixpkgs home-manager overlays nix-darwin; + }; - homeConfigurations = - let devices = linux_devices; - in import ./linux/device.nix { - inherit devices inputs nixpkgs home-manager overlays; - }; + homeConfigurations = let devices = linux_devices; + in import ./linux/device.nix { + inherit devices inputs nixpkgs home-manager overlays; + }; }; } diff --git a/config/nix/linux/anyrun.nix b/config/nix/linux/anyrun.nix index 55468d56..8bafefdb 100644 --- a/config/nix/linux/anyrun.nix +++ b/config/nix/linux/anyrun.nix @@ -1,11 +1,5 @@ -{ - inputs, - pkgs, - device, - osConfig, - ... -}: { - imports = [inputs.anyrun.nixosModules.home-manager]; +{ inputs, pkgs, device, osConfig, ... }: { + imports = [ inputs.anyrun.nixosModules.home-manager ]; programs.anyrun = { enable = true; config = { @@ -21,10 +15,10 @@ symbols kidex ]; - x = {fraction = 0.5;}; - y = {fraction = 0.3;}; - height = {absolute = 0;}; - width = {absolute = 1000;}; + x = { fraction = 0.5; }; + y = { fraction = 0.3; }; + height = { absolute = 0; }; + width = { absolute = 1000; }; showResultsImmediately = true; maxEntries = 10; layer = "overlay"; @@ -32,12 +26,10 @@ extraConfigFiles = { "nixos-options.ron".text = let - nixos-options = - pkgs.lib.optionalString device.isNix + nixos-options = pkgs.lib.optionalString device.isNix osConfig.system.build.manual.optionsJSON + "/share/doc/nixos/options.json"; - hm-options = - inputs.home-manager.packages.${pkgs.system}.docs-json + hm-options = inputs.home-manager.packages.${pkgs.system}.docs-json + "/share/doc/home-manager/options.json"; # or alternatively if you wish to read any other documentation options, such as home-manager # get the docs-json package from the home-manager flake @@ -49,15 +41,8 @@ # ":nall" = [nixos-options hm-options some-other-option]; # }; options = builtins.toJSON ({ - ":hm" = [hm-options]; - } - // ( - if device.isNix - then { - ":nix" = [nixos-options]; - } - else {} - )); + ":hm" = [ hm-options ]; + } // (if device.isNix then { ":nix" = [ nixos-options ]; } else { })); in '' Config( options: ${options}, @@ -98,12 +83,12 @@ "rink.ron".text = '' Config( currency: Some("${ - builtins.toFile "currency.units" '' - !category currencies "Currencies" - usd USD - inr INR - '' - }"), + builtins.toFile "currency.units" '' + !category currencies "Currencies" + usd USD + inr INR + '' + }"), ) ''; }; diff --git a/config/nix/linux/device.nix b/config/nix/linux/device.nix index bc30dfba..da445554 100644 --- a/config/nix/linux/device.nix +++ b/config/nix/linux/device.nix @@ -1,30 +1,17 @@ -{ - devices, - inputs, - overlays, - home-manager, - ... -}: +{ devices, inputs, overlays, home-manager, ... }: builtins.listToAttrs (builtins.map (device: { - name = device.user; - value = let - pkgs = import inputs.nixpkgs { - inherit overlays; - system = device.system; - }; - in - home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - inherit device; - }; - modules = [ - { - nixpkgs.config.allowUnfree = true; - } - ../common/home.nix - ]; - }; - }) - devices) + name = device.user; + value = let + pkgs = import inputs.nixpkgs { + inherit overlays; + system = device.system; + }; + in home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + modules = [ { nixpkgs.config.allowUnfree = true; } ../common/home.nix ]; + }; +}) devices) diff --git a/config/nix/linux/ironbar/default.nix b/config/nix/linux/ironbar/default.nix index 5c0fa1c4..04e935a4 100644 --- a/config/nix/linux/ironbar/default.nix +++ b/config/nix/linux/ironbar/default.nix @@ -67,20 +67,18 @@ }]; }; }; - style = - let - # mocha = fetchurl { - # url = "https://github.com/catppuccin/waybar/releases/download/v1.0/mocha.css"; - # sha256 = pkgs.lib.fakeSha256; - # }; - catppuccin = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "waybar"; - rev = "v1.0"; - sha256 = "sha256-vfwfBE3iqIN1cGoItSssR7h0z6tuJAhNarkziGFlNBw"; - }; - mocha = builtins.readFile "${catppuccin}/mocha.css"; - in - mocha + builtins.readFile ./ironbar.css; + style = let + # mocha = fetchurl { + # url = "https://github.com/catppuccin/waybar/releases/download/v1.0/mocha.css"; + # sha256 = pkgs.lib.fakeSha256; + # }; + catppuccin = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "waybar"; + rev = "v1.0"; + sha256 = "sha256-vfwfBE3iqIN1cGoItSssR7h0z6tuJAhNarkziGFlNBw"; + }; + mocha = builtins.readFile "${catppuccin}/mocha.css"; + in mocha + builtins.readFile ./ironbar.css; }; } diff --git a/config/nix/nixos/configuration.nix b/config/nix/nixos/configuration.nix index 00520042..1947040c 100644 --- a/config/nix/nixos/configuration.nix +++ b/config/nix/nixos/configuration.nix @@ -12,16 +12,18 @@ pkiBundle = "/etc/secureboot"; }; - environment.etc = { - "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' - bluez_monitor.properties = { - ["bluez5.enable-sbc-xq"] = true, - ["bluez5.enable-msbc"] = true, - ["bluez5.enable-hw-volume"] = true, - ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" - } - ''; - }; + # services.wireplumber.configPackages = with pkgs; [ bluez ]; + + # environment.etc = { + # "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' + # bluez_monitor.properties = { + # ["bluez5.enable-sbc-xq"] = true, + # ["bluez5.enable-msbc"] = true, + # ["bluez5.enable-hw-volume"] = true, + # ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" + # } + # ''; + # }; hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; @@ -96,8 +98,7 @@ fish nushellFull (pkgs.wrapFirefox - (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) - { }) + (pkgs.firefox-unwrapped.override { pipewireSupport = true; }) { }) gnumake python3 (nerdfonts.override { fonts = [ "FiraCode" "Hasklig" ]; })