Compare commits

..

28 Commits

Author SHA1 Message Date
144bde0c6d
jetbrains: include small set of generated IDEA plugins 2021-01-25 12:05:48 +11:00
ea98e965cb
jetbrains: move to auto-generated plugins
Some edge cases but appears to work on my machine (TM).

Still TODO is setting up the job to generate and commit updates.
2021-01-25 12:05:41 +11:00
28235c3b29
psst: 20210114.g1fadc78 -> 20210122.gec114ac 2021-01-24 17:08:22 +11:00
7f2b435225
flake: update inputs 2021-01-24 16:57:03 +11:00
a85fe66919
alacritty-ligatures: 0.7.0.20201204 -> 0.7.1.20210107.gada2680 2021-01-24 16:57:03 +11:00
129b9305be
protonmail-bridge: 1.5.4 -> 1.5.6 2021-01-24 16:45:54 +11:00
836cce5196
zsh-z: 20200919.g09209db -> 20210117.g289a4a7 2021-01-24 16:41:32 +11:00
d77a67563a
many: use YYYYMMDD.gHASH for git-commit versions 2021-01-24 16:37:51 +11:00
a298d95bd6
psst: 20210103.002c2bb -> 20210114.1fadc78 2021-01-23 14:17:17 +11:00
aceffb4e50
cardboard: init at 20210120 2021-01-23 14:14:56 +11:00
906c5ee15c
protonmail-bridge: 1.5.2 -> 1.5.4 2021-01-04 13:13:18 +11:00
c0fb93b48b
samrewritten: 2.0 -> 2.1 2021-01-04 12:23:50 +11:00
b46e60ddec
samrewritten: add missing platforms 2021-01-04 12:14:05 +11:00
738de5e474
zsh-z: add missing platforms 2021-01-04 12:10:34 +11:00
5008a658a7
libhl: add missing platforms 2021-01-04 12:10:27 +11:00
0a29cfdf1e
core: add apps 2021-01-04 12:05:15 +11:00
95e5685f53
psst: init at 20210103.002c2bb 2021-01-04 12:05:15 +11:00
a15ba6ca0a
core: remove envrc 2021-01-04 10:49:36 +11:00
2ffc8b3fcd
core: migrate to flakes 2020-12-10 21:18:04 +11:00
8b2f440b36
go-qt: manually remove references
Fixes an issue where part of the tests fail due to over-quoting of
`GOFLAGS` and treating `-trimpath` as part of `-mod`.
2020-12-10 10:47:22 +11:00
8548791f31
Revert "jetbrains: update IDEA for generated plugins"
This reverts commit d851231ee9.

The change went ahead too early and the actual plugin generation system
is not complete.
2020-12-09 10:36:42 +11:00
80f909abb1
go-qt: 20200701 -> 20200904 (broken) 2020-12-09 10:29:27 +11:00
ddb0d5147b
zsh-z: 2020.06.30.ae71aab -> 2020.09.19.09209db 2020-12-09 10:29:27 +11:00
ed42dab0a5
protonmail-bridge: 1.4.5 -> 1.5.2 2020-12-09 10:29:27 +11:00
5d595e8aba
alacritty-ligatures: 0.6.0.20201022 -> 0.7.0.20201204 2020-12-09 10:29:19 +11:00
dependabot[bot]
0baf2e1e02
build(deps): bump cachix/cachix-action from v6 to v8 (#4)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from v6 to v8.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v6...6e4751ed42b22f60165d3f266cfa4cce66ae406d)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-09 09:00:54 +11:00
dependabot[bot]
9a31ad18c9
build(deps): bump cachix/install-nix-action from v11 to v12
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from v11 to v12.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v11...07da2520eebede906fbeefa9dd0a2b635323909d)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-09 09:00:48 +11:00
dependabot[bot]
62bcbbb29a
build(deps): bump actions/checkout from v2.3.3 to v2.3.4
Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.3 to v2.3.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.3...5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-09 06:30:46 +00:00
27 changed files with 738 additions and 378 deletions

1
.envrc
View File

@ -1 +0,0 @@
eval "$(lorri direnv)"

View File

@ -36,15 +36,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2.3.3
uses: actions/checkout@v2.3.4
- name: Install nix
uses: cachix/install-nix-action@v11
uses: cachix/install-nix-action@v12
with:
nix_path: "${{ matrix.nixPath }}"
- name: Show nixpkgs version
run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
- name: Setup cachix
uses: cachix/cachix-action@v6
uses: cachix/cachix-action@v8
if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }}
with:
name: ${{ matrix.cachixName }}

View File

@ -1,24 +0,0 @@
name: "Update Jetbrains plugins"
on:
schedule:
- cron: '00 2 * * *'
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2.3.3
- name: Install nix
uses: cachix/install-nix-action@v11
with:
nix_path: "${{ matrix.nixPath }}"
- name: Show nixpkgs version
run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
- name: Generate package list
# TODO switch to default nixpkgs channel once nix-build-uncached 1.0.0 is in stable
run: nix run -I 'nixpkgs=channel:nixos-unstable' nixpkgs.nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs
- name: Trigger NUR update
if: ${{ matrix.nurRepo != '<YOUR_REPO_NAME>' }}
run: curl -XPOST "https://nur-update.herokuapp.com/update?repo=${{ matrix.nurRepo }}"

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
result
result-*
.direnv
.envrc

View File

@ -8,173 +8,10 @@
{ pkgs ? import <nixpkgs> { } }:
rec {
import ./pkgs/top-level/all-packages.nix { inherit pkgs; }
// {
# The `lib`, `modules`, and `overlay` names are special
lib = import ./lib { inherit pkgs; }; # functions
modules = import ./modules; # NixOS modules
overlays = import ./overlays; # nixpkgs overlays
# Alacritty with the unmerged ligature patches applied.
alacritty-ligatures = (pkgs.alacritty.override {
inherit (pkgs.rustPackages_1_45) rustPlatform;
}).overrideAttrs (oldAttrs: rec {
pname = "${oldAttrs.pname}-ligatures";
version = "0.6.0.20201022";
src = pkgs.fetchFromGitHub {
owner = "zenixls2";
repo = "alacritty";
fetchSubmodules = true;
rev = "525fe0ea174354db7ba28de65328a0db18fd7f70";
sha256 = "1j8mrslii7bw721bkgaqxm9ldrm5f01cil55dfjn7ziwz3xjvqvx";
};
cargoDeps = oldAttrs.cargoDeps.overrideAttrs (pkgs.lib.const {
name = "${pname}-${version}-vendor.tar.gz";
inherit src;
outputHash = "11kj2hr9wkq1zq13ml561i0i0h40d34iwqy0b8apn9ij8pdp0b37";
});
ligatureInputs = [
pkgs.fontconfig
pkgs.freetype
pkgs.libglvnd
pkgs.stdenv.cc.cc.lib
pkgs.xlibs.libxcb
];
buildInputs = (oldAttrs.buildInputs or []) ++ ligatureInputs;
# HACK: One of the ligature libraries required the C++ stdlib at runtime,
# and I can't work out a better way to push it to the RPATH.
postInstall = pkgs.lib.optional (!pkgs.stdenv.isDarwin) ''
patchelf \
--set-rpath ${pkgs.lib.makeLibraryPath ligatureInputs}:"$(patchelf --show-rpath $out/bin/alacritty)" \
$out/bin/alacritty
'';
});
amdgpu-fan = pkgs.callPackage ./pkgs/tools/misc/amdgpu-fan { };
goModules = pkgs.recurseIntoAttrs rec {
qt = pkgs.libsForQt512.callPackage ./pkgs/development/go-modules/qt { };
};
# A functional Jetbrains IDE-with-plugins package set.
jetbrains = pkgs.dontRecurseIntoAttrs rec {
jetbrainsPluginsFor = variant: import ./pkgs/top-level/jetbrains-plugins.nix {
inherit (pkgs) lib newScope stdenv fetchzip;
inherit variant;
};
pluginBuild = jetbrainsPlatforms: pkgs.callPackage ./pkgs/build-support/jetbrains/plugin.nix {
inherit jetbrains jetbrainsPlatforms;
};
clionPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.clion);
ideaCommunityPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-community);
ideaUltimatePlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-ultimate);
clionWithPlugins = clionPlugins.jetbrainsWithPlugins;
ideaCommunityWithPlugins = ideaCommunityPlugins.jetbrainsWithPlugins;
ideaUltimateWithPlugins = ideaUltimatePlugins.jetbrainsWithPlugins;
test = ideaUltimateWithPlugins (jpkgs: [
jpkgs._360-fireline-plugin # zip
jpkgs._3dsmaxpy-support # jar
]);
};
libhl = pkgs.callPackage ./pkgs/development/libraries/libhl { };
mopidy-subidy = pkgs.callPackage ./pkgs/applications/audio/mopidy/subidy.nix {
python3Packages = pkgs.python3Packages // python3Packages;
};
pam_gnupg = pkgs.callPackage ./pkgs/os-specific/linux/pam_gnupg { };
picom-animations = pkgs.picom.overrideAttrs (oldAttrs: {
pname = "picom-animations";
src = pkgs.fetchFromGitHub {
owner = "jonaburg";
repo = "picom";
rev = "d718c94";
sha256 = "165mc53ryyxn2ybkhikmk51ay3k18mvlsym3am3mgr8cpivmf2rm";
};
});
polybar = pkgs.polybar.overrideAttrs (oldAttrs: {
# Enables an extra button in formatting, indirectly allowing the use of
# the mouse forward and backward buttons.
patches = (oldAttrs.patches or [ ]) ++ [ ./pkgs/applications/misc/polybar/9button.patch ];
});
python2Packages =
let
fixVersion =
{ package
, version
, sha256
, extra ? (oldAttrs: { })
}: package.overrideAttrs (oldAttrs: rec {
inherit version;
src = pkgs.python2Packages.fetchPypi {
inherit (oldAttrs) pname;
inherit version sha256;
};
} // extra oldAttrs);
in
pkgs.recurseIntoAttrs rec {
colorama_0_3_3 = fixVersion {
package = pkgs.python2Packages.colorama;
version = "0.3.3";
sha256 = "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb";
};
mutagen_1_30 = fixVersion {
package = pkgs.python2Packages.mutagen;
version = "1.30";
sha256 = "0kv2gjnzbj1w0bswmxm7wi05x6ypi7jk52s0lb8gw8s459j41gyd";
extra = oldAttrs: {
patches = [ ];
};
};
pyspotify_2_0_5 = fixVersion {
package = pkgs.python2Packages.pyspotify;
version = "2.0.5";
sha256 = "0y16c024rrvbvfdqj1n0k4b25b1nbza3i7kspg5b0ci2src1rm7v";
};
overlay = {
colorama = colorama_0_3_3;
mutagen = mutagen_1_30;
pyspotify = pyspotify_2_0_5;
};
};
python3Packages = pkgs.recurseIntoAttrs {
py-sonic = pkgs.python3.pkgs.callPackage ./pkgs/development/python-modules/py-sonic { };
};
# The one in Nixpkgs still extracts the pre-built Debian package instead
# of building from source.
protonmailBridgePackages = pkgs.libsForQt512.callPackage ./pkgs/applications/networking/protonmail-bridge {
inherit goModules;
};
protonmail-bridge = protonmailBridgePackages.protonmail-bridge;
protonmail-bridge-headless = protonmailBridgePackages.protonmail-bridge-headless;
radeon-profile-daemon = pkgs.libsForQt5.callPackage ./pkgs/tools/misc/radeon-profile-daemon { };
samrewritten = pkgs.callPackage ./pkgs/tools/misc/samrewritten { };
spotify-ripper = pkgs.callPackage ./pkgs/tools/misc/spotify-ripper {
# NOTE: Not available in 20.03. Specifying it this way lets me cheat the
# build auto-failing on 20.03 because of the attribute not existing.
inherit (pkgs) fdk-aac-encoder;
python2Packages = pkgs.python2Packages // python2Packages.overlay;
};
zsh-z = pkgs.callPackage ./pkgs/shells/zsh/zsh-z { };
}

43
flake.lock generated Normal file
View File

@ -0,0 +1,43 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1605370193,
"narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5021eac20303a61fafe17224c087f5519baed54d",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1611414562,
"narHash": "sha256-u002KfYA7Uk3vffnnmLz88BmxOzixYFdh+8II6ZT+Kg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9d6fd2ba135c5b5c85c3332604d39b43e93b8298",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

47
flake.nix Normal file
View File

@ -0,0 +1,47 @@
{
description = "xeals's flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
let
inherit (flake-utils.lib) eachDefaultSystem flattenTree;
inherit (nixpkgs.lib.attrsets) filterAttrs mapAttrs;
in
{
nixosModules = mapAttrs (_: path: import path) (import ./modules);
overlays = import ./overlays // {
pkgs = final: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; };
};
overlay = final: prev: {
xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs;
};
} // eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
xPkgs = import ./pkgs/top-level/all-packages.nix { inherit pkgs; };
mkApp = opts: { type = "app"; } // opts;
in
rec {
packages = filterAttrs
(attr: drv: builtins.elem system (drv.meta.platforms or [ ]))
(flattenTree xPkgs);
apps = flattenTree {
alacritty = mkApp { program = "${packages.alacritty-ligatures}/bin/alacritty"; };
protonmail-bridge = mkApp { program = "${packages.protonmail-bridge}/bin/protonmail-bridge"; };
protonmail-bridge-headless = mkApp { program = "${packages.protonmail-bridge}/bin/protonmail-bridge"; };
psst = {
cli = mkApp { program = "${packages.psst}/bin/psst-cli"; };
gui = mkApp { program = "${packages.psst}/bin/psst-gui"; };
};
samrewritten = mkApp { program = "${packages.samrewritten}/bin/samrewritten"; };
spotify-ripper = mkApp { program = "${packages.spotify-ripper}/bin/spotify-ripper"; };
};
});
}

View File

@ -0,0 +1,71 @@
{ stdenv
, fetchFromGitHub
, rustPlatform
, cmake
, pkg-config
, openssl
# GUI
, withGui ? true
, copyDesktopItems
, makeDesktopItem
, gtk3
}:
let
inherit (stdenv.lib) optional optionals;
in
assert withGui -> gtk3.meta.available;
rustPlatform.buildRustPackage rec {
pname = "psst";
version = "20210122.gec114ac";
src = fetchFromGitHub {
owner = "jpochyla";
repo = "psst";
rev = "ec114ac8299179c8dd51bc026d6060dc75658b83";
sha256 = "02mh6hjnlimadc3w899hccss31p1r4sxgb5880zwn7yiycbq3yyj";
fetchSubmodules = true;
};
cargoSha256 = "1m01rycnpy9asspih1x9l5ppfbjnqcfdycmzgkrmdwzah3x8s8xc";
nativeBuildInputs = [ pkg-config ]
++ optional withGui copyDesktopItems;
buildInputs = [ openssl ]
++ optional withGui gtk3;
cargoBuildFlags = optionals (!withGui) [
"--workspace"
"--exclude"
"psst-gui"
];
# Unable to exclude targets from the check phase as it doesn't respect
# `cargoBuildFlags`; to save from attempting to build the GUI without meaning
# to, don't bother checking for CLI-only builds.
# https://github.com/NixOS/nixpkgs/blob/77d190f10931c1d06d87bf6d772bf65346c71777/pkgs/build-support/rust/default.nix#L241
doCheck = withGui;
desktopItems = optionals withGui [
(makeDesktopItem {
name = pname;
desktopName = "psst";
genericName = "Spotify Player";
categories = "AudioVideo;Audio;Network;Player;";
comment = "Spotify client with native GUI";
exec = "psst-gui";
extraEntries = "Keywords=spotify;music;";
icon = "spotify";
type = "Application";
})
];
meta = with stdenv.lib; {
description = "Fast and multi-platform Spotify client with native GUI ";
homepage = "https://github.com/jpochyla/psst";
license = licenses.mit;
};
}

View File

@ -4,7 +4,7 @@ self:
let
commonBuild = import ../../../build-support/jetbrains/plugin-old.nix {
commonBuild = import ../../../build-support/jetbrains/plugin.nix {
inherit lib stdenv fetchzip;
jetbrainsPlatforms = [
"clion"

View File

@ -6151,4 +6151,184 @@ https://github.com/jonstaff/AndroidAccessors
'';
};
}) {};
ideatweet = callPackage ({ fetchurl, lib, ideaBuild, unzip }: ideaBuild {
pname = "IdeaTweet";
plugname = "IdeaTweet";
plugid = "com.github.hotchemi.IdeaTweet";
version = "1.0";
src = fetchurl {
url = "https://plugins.jetbrains.com/files/7152/12444/IdeaTweet.zip";
sha256 = "1vgvkarhw5z4fg8l3ywf1wcslpjr8cszrgag29whyg8g66p1vihf";
name = "IdeaTweet-1.0.zip";
};
buildInputs = [ unzip ];
packageRequires = [ ];
meta = {
homepage = "https://github.com/hotchemi/IdeaTweet";
license = {
shortName = "allrightsreserved";
fullName = "All Rights Reserved";
url = "https://github.com/hotchemi/IdeaTweet";
free = false;
};
description = ''
Simple tweet plugin.
'';
};
}) {};
ideavim = callPackage ({ fetchurl, lib, ideaBuild, unzip }: ideaBuild {
pname = "IdeaVim";
plugname = "IdeaVim";
plugid = "IdeaVIM";
version = "0.64";
src = fetchurl {
url = "https://plugins.jetbrains.com/files/164/106200/IdeaVim-0.64.zip";
sha256 = "0kyylz512sn7n5ahxw761ddnf5yrzygfnp3l4h4g7wn7aq718zll";
name = "IdeaVim-0.64.zip";
};
buildInputs = [ unzip ];
packageRequires = [ ];
meta = {
homepage = "https://plugins.jetbrains.com/plugin/164";
license = {
shortName = "allrightsreserved";
fullName = "All Rights Reserved";
url = "gpl-2.0";
free = false;
};
description = ''
Vim emulation plugin for IntelliJ Platform-based IDEs.
IdeaVim supports many Vim features including normal/insert/visual modes, motion keys, deletion/changing,
marks, registers, some Ex commands, Vim regexps, configuration via ~/.ideavimrc, macros, Vim plugins, etc.
See also:
GitHub repository: documentation and contributing
Issue tracker: feature requests and bug reports
'';
};
}) {};
ideavim-easymotion = callPackage ({ fetchurl, lib, ideaBuild, unzip }: ideaBuild {
pname = "IdeaVim-EasyMotion";
plugname = "IdeaVim-EasyMotion";
plugid = "org.jetbrains.IdeaVim-EasyMotion";
version = "1.4";
src = fetchurl {
url = "https://plugins.jetbrains.com/files/13360/108050/IdeaVim-EasyMotion-1.4.zip";
sha256 = "0k69dr5xvkv5gh707f0j2nwk247xpycq44kbvfngq92zx1yimrk3";
name = "IdeaVim-EasyMotion-1.4.zip";
};
buildInputs = [ unzip ];
packageRequires = [ ];
meta = {
homepage = "https://github.com/AlexPl292/IdeaVim-EasyMotion";
license = lib.licenses.gpl3Only;
description = ''
EasyMotion plugin emulation for IdeaVim.
See GitHub for the list of supported commands.
'';
};
}) {};
ideavim-sneak = callPackage ({ fetchurl, lib, ideaBuild, unzip }: ideaBuild {
pname = "IdeaVim-Sneak";
plugname = "IdeaVim-Sneak";
plugid = "io.github.mishkun.ideavimsneak";
version = "1.1.1";
src = fetchurl {
url = "https://plugins.jetbrains.com/files/15348/102800/ideavim-sneak-1.1.1.zip";
sha256 = "16rwfzxhml99his6cllfcg74w1j7i2ynyrrmmlp4wjw8353327r0";
name = "IdeaVim-Sneak-1.1.1.zip";
};
buildInputs = [ unzip ];
packageRequires = [ ];
meta = {
homepage = "https://github.com/Mishkun/ideavim-sneak";
license = lib.licenses.gpl3Only;
description = ''
Port of vim-sneak vim's missing motion to ideavim.
It helps you navigate in line effortlessly.
In short, it is like `f` and `F`, but accepting two characters instead of one. It makes your movement at least 1000%
more precise and accurate.
Use `s` plus two characters to search forward in document
Use `S` plus two characters to search backward in document
Use `;` and `,` just as with `f` and `F` commands to repeat searches
Add `set sneak` to your ./ideavimrc file for activation
'';
};
}) {};
ideavimextension = callPackage ({ fetchurl, lib, ideaBuild, unzip }: ideaBuild {
pname = "IdeaVimExtension";
plugname = "IdeaVimExtension";
plugid = "IdeaVimExtension";
version = "1.4.8";
src = fetchurl {
url = "https://plugins.jetbrains.com/files/9615/102429/ideavim_extension.zip";
sha256 = "15l0hwq7xlwx4w5qdlhysgf1zppl18iqj2svg7pxi0naw4dsfpds";
name = "IdeaVimExtension-1.4.8.zip";
};
buildInputs = [ unzip ];
packageRequires = [ ];
meta = {
homepage = "https://github.com/hadix-lin/ideavim_extension";
license = lib.licenses.asl20;
description = ''
The plugin is an extension of 'IdeaVim' , can switch to English input method in normal mode and restore input method in insert mode.
How To Enable:
auto-switch feature is disabled by default
enable the feature with the commands below, input in normal mode:
:set keep-english-in-normal enable auto-switch feature
:set keep-english-in-normal-and-restore-in-insert restore input method when return insert mode
:set nokeep-english-in-normal-and-restore-in-insert keep auto-switch feature, but doesn't restore input method when return insert mode
:set nokeep-english-in-normal disable auto-switch feature
You can also add `set keep-english-in-normal[-and-restore-in-insert]` to the `~/.ideavimrc` file and restart IDE to enable the feature.
Notice:
The plugin support MacOS and Windows and Linux(with fcitx)
MacOS need enable en_US OR ABC keyboard
Windows need enable en_US keyboard
Linux need fcitx-remote
GitHub RepositorySource and Feedback
IdeaVim
normal
:set keep-english-in-normal
:set keep-english-in-normal-and-restore-in-insert insert
:set nokeep-english-in-normal-and-restore-in-insert insert
:set nokeep-english-in-normal
`set keep-english-in-normal[-and-restore-in-insert]``~/.ideavimrc`IDE
:MacOSWindows, fcitx-remoteLinux
MacOSABC
Windows
Linux使fcitxfcitx-remote
GitHub Repository:
'';
};
}) {};
}

View File

@ -1,19 +1,19 @@
{ lib, stdenv, variant }:
{ lib, stdenv, fetchzip }:
self:
let
ideaBuild = import ../../../build-support/jetbrains/plugin.nix {
inherit lib stdenv variant;
inherit lib stdenv fetchzip;
jetbrainsPlatforms = [ "idea-community" "idea-ultimate" ];
};
generateIdea = lib.makeOverridable ({
generated ? ./idea-generated.nix
idea ? ./idea-generated.nix
}: let
imported = import generated {
imported = import idea {
inherit (self) callPackage;
};
@ -26,3 +26,4 @@ let
in ideaPlugins // { inherit ideaBuild; });
in generateIdea { }

View File

@ -1,33 +0,0 @@
{ callPackage }:
{
ideavim = callPackage
({ commonBuild }: commonBuild {
pname = "IdeaVim";
version = "0.57";
pluginId = 164;
versionId = 85009;
sha256 = "1rwfwj0b0nwi7jxhzxk1r0xc190nf4i3b59i0zknpmgb4yc5clzw";
})
{ };
checkstyle-idea = callPackage
({ commonBuild }: commonBuild {
pname = "CheckStyle-IDEA";
version = "5.42.0";
pluginId = 1065;
versionId = 95757;
sha256 = "0sji3649n5zz84dlidqaklipq6vaiafxsvg0gzy3j59mvkz6dk14";
})
{ };
google-java-format = callPackage
({ commonBuild }: commonBuild rec {
pname = "google-java-format";
version = "1.7.0.4";
pluginId = 8527;
versionId = 83164;
sha256 = "1pmnn1ksiv44kdga53gi3psrm2sva4bqrxizagbr0if2n0rrvgii";
filename = "${pname}.zip";
})
{ };
}

View File

@ -1,12 +0,0 @@
{ callPackage }:
{
spring-assistant = callPackage
({ ideaBuild }: ideaBuild {
pname = "intellij-spring-assistant";
version = "0.12.0";
pluginId = 10229;
versionId = 44968;
sha256 = "13cglywzhb4j0qj0bs2jwaz2k8pxrxalv35wgkmgkxr635bxmwsj";
})
{ };
}

View File

@ -1,5 +1,4 @@
{ lib
}: self:
{ lib, makeWrapper, runCommand }: self:
with lib;
@ -20,14 +19,31 @@ in
assert assertMsg (length badPlugins == 0) errorMsg;
appendToName "with-plugins" (package.overrideAttrs (oldAttrs: {
inherit plugins;
# TODO: Remove version from directory name
installPhase = oldAttrs.installPhase + ''
for plugin in $plugins; do
local dirname=$(basename "$plugin")
dirname=''${dirname:33}
ln -s "$plugin" "$out/$name/plugins/$dirname"
done
'';
}))
runCommand
(appendToName "with-plugins" package).name
{
nativeBuildInputs = [ package makeWrapper ];
inherit package plugins;
packageName = package.name;
preferLocalBuild = true;
allowSubstitutes = false;
} ''
mkdir -p $out/$packageName/plugins
for dir in $package/*; do
cp -r $dir $out/
done
# Install plugins
for plugin in $plugins; do
local pluginName=$(basename $plugin)
pluginName=''${pluginName#*-}
pluginName=''${pluginName%-([0-9].)*}
ln -s $plugin $out/$packageName/plugins/$pluginName
done
# Fix up wrapper
substituteInPlace $out/bin/* \
--replace "$package" "$out"
''

View File

@ -20,16 +20,16 @@ let
buildGoModule (stdenv.lib.recursiveUpdate args rec {
inherit pname;
version = "1.4.5";
version = "1.5.6";
src = fetchFromGitHub {
owner = "ProtonMail";
repo = "proton-bridge";
rev = "br-${version}";
sha256 = "1339h3sa7xhqx7mbq2zzvv3mln0zsxh4aa437hs4r3gbq8jvbf97";
sha256 = "1na8min9cmn82lpad58abw6837k303fr09l6cvzswaxs73f231ig";
};
vendorSha256 = "0kdjm30xchng09k09fr7mfs9abgl0xncc25v9hzqfli6ii1qr1l2";
vendorSha256 = "1219xa1347877bfhnid15y6w9s4hf1czbrmll2iha4gpsmg066bb";
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [
pkg-config

View File

@ -0,0 +1,62 @@
diff --git a/cardboard/meson.build b/cardboard/meson.build
index b236f71..a90f230 100644
--- a/cardboard/meson.build
+++ b/cardboard/meson.build
@@ -4,24 +4,15 @@ xkbcommon = dependency('xkbcommon')
xcb = dependency('xcb', required: get_option('xwayland'))
wlroots_version = '>=0.10.0'
-wlroots_proj = subproject(
+wlroots = dependency(
'wlroots',
- default_options: ['examples=false'],
required: true,
version: wlroots_version,
)
-wlroots = wlroots_proj.get_variable('wlroots')
-wlroots_conf = wlroots_proj.get_variable('conf_data')
-wlroots_has_xwayland = wlroots_conf.get('WLR_HAS_XWAYLAND') == 1
+have_xwayland = xcb.found()
-if get_option('xwayland').enabled() and not wlroots_has_xwayland
- error('Cannot enable Xwayland support in cardboard: wlroots has been built without Xwayland support')
-endif
-have_xwayland = xcb.found() and wlroots_has_xwayland
-
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
conf_data = configuration_data()
conf_data.set10('HAVE_XWAYLAND', have_xwayland)
diff --git a/cutter/meson.build b/cutter/meson.build
index f1260a4..1485f37 100644
--- a/cutter/meson.build
+++ b/cutter/meson.build
@@ -1,6 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-only
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
executable(
'cutter',
diff --git a/libcardboard/meson.build b/libcardboard/meson.build
index 89698fe..3ac8115 100644
--- a/libcardboard/meson.build
+++ b/libcardboard/meson.build
@@ -1,11 +1,9 @@
# SPDX-License-Identifier: GPL-3.0-only
libcardboard_inc = include_directories('include')
-expected_proj = subproject('expected', required: true)
-expected = expected_proj.get_variable('expected_dep')
+expected = dependency('tl-expected', required: true, method: 'cmake', modules: ['tl::expected'])
-cereal_proj = subproject('cereal', required: true)
-cereal = cereal_proj.get_variable('cereal_dep')
+cereal = dependency('cereal', required: true, method: 'cmake')
sources = files(
'src/command_protocol.cpp',

View File

@ -0,0 +1,71 @@
{ stdenv
, fetchFromGitLab
, fetchzip
, cereal
, cmake
, git
, libGL
, libX11
, libinput
, libxkbcommon
, mesa
, meson
, ninja
, pixman
, pkg-config
, tl-expected
, wayland
, wayland-protocols
, wlroots
, xwayland
}:
stdenv.mkDerivation rec {
pname = "cardboard";
version = "20210120.g7b15613";
src = fetchFromGitLab {
owner = "cardboardwm";
repo = "cardboard";
rev = "7b15613e6e1222a6a83d69a2e5da2810dfb45522";
sha256 = "044sb0lv1gcywpdncvlv7npxvbsqcc1mwpk0f6i73dinchdz7gmq";
};
patches = [
./0001-use-system-dependencies.patch
];
# CMake likes to own the configurePhase, but we only need it for dependency
# discovery. Remove it.
configurePhase = "mesonConfigurePhase";
nativeBuildInputs = [
cmake
meson
ninja
pkg-config
];
buildInputs = [
cereal
libGL
libX11
libinput
libxkbcommon
pixman
tl-expected
wayland
wayland-protocols
wlroots
];
passthru.providedSessions = [ "cardboard" ];
meta = {
description = "Scrollable tiling Wayland compositor designed with laptops in mind";
homepage = "https://gitlab.com/cardboardwm/cardboard";
license = stdenv.lib.licenses.gpl3;
platforms = wlroots.meta.platforms;
};
}

View File

@ -1,33 +0,0 @@
{ lib
, stdenv
, fetchzip
, jetbrainsPlatforms
}:
{ pluginId
, pname
, version
, versionId
, sha256
, filename ? "${pname}-${version}.zip"
}:
stdenv.mkDerivation {
inherit pname version;
src = fetchzip {
inherit sha256;
url = "https://plugins.jetbrains.com/files/${toString pluginId}/${toString versionId}/${filename}";
};
passthru = { inherit jetbrainsPlatforms; };
installPhase = ''
mkdir $out
cp -r * $out/
'';
meta = {
homepage = "https://plugins.jetbrains.com/plugin/${pluginId}-${lib.toLower pname}";
};
}

View File

@ -1,21 +1,12 @@
{ lib
, stdenv
, variant
, fetchzip
, jetbrainsPlatforms
}:
with lib;
{ pname
{ plugid
, pname
, version
, plugname
, plugid
, buildInputs ? []
, packageRequires ? []
, meta ? {}
, ...
}@args:
@ -23,51 +14,28 @@ let
defaultMeta = {
broken = false;
platforms = variant.meta.platforms;
} // optionalAttrs ((args.src.meta.homepage or "") != "") {
} // lib.optionalAttrs ((args.src.meta.homepage or "") != "") {
homepage = args.src.meta.homepage;
} // optionalAttrs ((args.src.meta.description or "") != "") {
} // lib.optionalAttrs ((args.src.meta.description or "") != "") {
description = args.src.meta.description;
} // optionalAttrs ((args.src.meta.license or {}) != {}) {
} // lib.optionalAttrs ((args.src.meta.license or {}) != {}) {
license = args.src.meta.license;
};
in
stdenv.mkDerivation ({
inherit pname version;
stdenv.mkDerivation (args // {
passthru = { inherit jetbrainsPlatforms; };
unpackCmd = ''
case "$curSrc" in
*.jar)
# don't unpack; keep original source filename without the hash
local filename=$(basename "$curSrc")
filename="''${filename:33}"
cp $curSrc $filename
chmod +w $filename
sourceRoot="."
;;
*)
_defaultUnpack "$curSrc"
;;
esac
'';
dontUnpack = lib.any (lib.hasSuffix ".jar") args.src.urls;
# FIXME: Entirely possible this isn't correct for niche plugins;
# at the very least there are some plugins that come with JS
installPhase = ''
mkdir -p "$out/lib"
find -iname '*.jar' -exec cp {} "$out/lib/" \;
mkdir $out
cp -r * $out/
'';
buildInputs = [ ] ++ packageRequires ++ buildInputs;
propagatedBuildInputs = packageRequires;
passthru = { inherit jetbrainsPlatforms plugid plugname; };
doCheck = false;
meta = defaultMeta // meta;
}
// removeAttrs args [ "buildInputs" "packageRequires" "meta" ])
meta = {
inherit (args.meta) license description;
homepage = if (args.meta.homepage == "") then null else args.meta.homepage;
};
})

View File

@ -3,21 +3,29 @@
, buildGoModule
, makeWrapper
, go
, pkg-config
, qmake
, removeReferencesTo
}:
buildGoModule rec {
pname = "go-qt";
version = "20200701";
version = "20200904.gc0c124a";
src = fetchFromGitHub {
owner = "therecipe";
repo = "qt";
rev = "7f61353ee73e225efd0b08dacf0ef32f41285c71";
sha256 = "1qwyi3rr6x49w2cbxhsyg3sbyxib7l08g6j6z1mb5w22bdgmcy7c";
rev = "c0c124a5770d357908f16fa57e0aa0ec6ccd3f91";
sha256 = "197wdh2v0g5g2dpb1gcd5gp0g4wqzip34cawisvy6z7mygmsc8rd";
};
# fails with `GOFLAGS=-vendor=mod -trimpath`
allowGoReference = true;
preFixup = ''
find $out -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${go} '{}' +
'';
vendorSha256 = "00wghn93xz240ddj47b8mkbx3cg7c0486igp6vv0x9r6ylhywsm6";
subPackages = [ "cmd/..." ];

View File

@ -26,9 +26,10 @@ stdenv.mkDerivation rec {
mkdir -p $out/include $out/lib
'';
meta = {
meta = with stdenv.lib; {
homepage = "https://github.com/xant/libhl";
description = "Simple and fast C library implementing a thread-safe API to manage hash-tables, linked lists, lock-free ring buffers and queues ";
license = stdenv.lib.licenses.lgpl3;
license = licenses.lgpl3;
platforms = platforms.all;
};
}

View File

@ -7,13 +7,13 @@
stdenv.mkDerivation {
pname = "zsh-z";
version = "2020.06.30.ae71aab";
version = "20210117.g289a4a7";
src = fetchFromGitHub {
owner = "agkozak";
repo = "zsh-z";
rev = "ae71aabec5472095b01d25b4c341adb349c277f4";
sha256 = "1b3ad39l90jqzvfym6xl7lxsmab0anmjs7viiz8ldxddad9106b0";
rev = "289a4a7208db9b1778cba71c58fed46dbcea3bc7";
sha256 = "016prpavxdzjg372y2700rczdgzjb53bqz5mxjgmvrvjxwj69cf0";
};
nativeBuildInputs = [ installShellFiles ];
@ -21,8 +21,7 @@ stdenv.mkDerivation {
propogatedBuildInputs = [ zsh ];
installPhase = ''
install -D zsh-z.plugin.zsh \
$out/share/zsh-z/zsh-z.zsh
install -D zsh-z.plugin.zsh $out/share/zsh-z/zsh-z.zsh
installShellCompletion --zsh _zshz
'';
@ -30,5 +29,6 @@ stdenv.mkDerivation {
description = ''Jump quickly to directories that you have visited "frecently." A native ZSH port of z.sh.'';
homepage = "https://github.com/agkozak/zsh-z";
license = stdenv.lib.licenses.mit;
platforms = zsh.meta.platforms;
};
}

View File

@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "radeon-profile-daemon";
version = "20190603";
version = "20190603.g06qxq2h";
nativeBuildInputs = [ qmake ];
buildInputs = [ qtbase ];

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "SamRewritten";
version = "2.0";
version = "2.1";
src = fetchFromGitHub {
owner = "PaulCombal";
repo = pname;
rev = "202005";
sha256 = "0zcb6cmzk4fvbf0rkyyfvlnh9mhi0wz89parprkz6vxrj65ph1f6";
rev = "202008";
sha256 = "ab7903b997675b0d4d7eede15430fc5ca2736e6c25c7f95a7c97e1ce25582a1c";
};
nativeBuildInputs = [ gnumake pkg-config ];
@ -33,21 +33,10 @@ stdenv.mkDerivation rec {
NIX_CFLAGS_LINK = "-pthread";
# FIXME: Use `make install` after the next release
# FIXME: Get `substituteInPlace` working
installPhase = ''
mkdir -p $out/lib/SamRewritten/{bin,glade,assets}
mkdir -p $out/share/icons/hicolor/{64x64,256x256}/apps
mkdir -p $out/share/applications
mkdir -p $out/bin
cp bin/launch.sh bin/samrewritten bin/libsteam_api.so $out/lib/SamRewritten/bin/
ln -s $out/lib/SamRewritten/bin/launch.sh $out/bin/samrewritten
cp glade/main_window.glade $out/lib/SamRewritten/glade/main_window.glade
cp assets/icon_64.png $out/share/icons/hicolor/64x64/apps/samrewritten.png
cp assets/icon_256.png $out/share/icons/hicolor/256x256/apps/samrewritten.png
cp assets/icon_256.png $out/lib/SamRewritten/assets/
makeFlags = [ "PREFIX=$(out)" ];
substitute package/samrewritten.desktop $out/share/applications/samrewritten.desktop \
postFixup = ''
substituteInPlace $out/share/applications/samrewritten.desktop \
--replace /usr/bin/samrewritten $out/bin/samrewritten
'';
@ -55,5 +44,6 @@ stdenv.mkDerivation rec {
description = "Steam Achievement Manager For Linux";
homepage = "https://github.com/PaulCombal/SamRewritten";
license = licenses.gpl3;
platforms = platforms.linux;
};
}

View File

@ -20,7 +20,7 @@ assert opusSupport -> opusTools.meta.available;
python2Packages.buildPythonApplication rec {
pname = "spotify-ripper";
version = "2016.12.31";
version = "20161231.gd046419";
src = fetchFromGitHub {
owner = "hbashton";

View File

@ -0,0 +1,169 @@
{ pkgs }:
rec {
# Alacritty with the unmerged ligature patches applied.
alacritty-ligatures = pkgs.alacritty.overrideAttrs (oldAttrs: rec {
pname = "${oldAttrs.pname}-ligatures";
version = "0.7.1.20210107.gada2680";
src = pkgs.fetchFromGitHub {
owner = "zenixls2";
repo = "alacritty";
fetchSubmodules = true;
rev = "ada2680e79a8f53cd350263c8cc91d2e2a264d81";
sha256 = "0c0k1ib1dl35731zyjb32apyn28xc63mhbwsig5mz3hnkyk5nisr";
};
cargoDeps = oldAttrs.cargoDeps.overrideAttrs (pkgs.lib.const {
name = "${pname}-${version}-vendor.tar.gz";
inherit src;
outputHash = "1d1yz4xmal0f3c0pcn59lxfh5a3532nv7dv7s95svvi8qsvnk9gv";
});
ligatureInputs = [
pkgs.fontconfig
pkgs.freetype
pkgs.libglvnd
pkgs.stdenv.cc.cc.lib
pkgs.xlibs.libxcb
];
buildInputs = (oldAttrs.buildInputs or []) ++ ligatureInputs;
# HACK: One of the ligature libraries required the C++ stdlib at runtime,
# and I can't work out a better way to push it to the RPATH.
postInstall = pkgs.lib.optional (!pkgs.stdenv.isDarwin) ''
patchelf \
--set-rpath ${pkgs.lib.makeLibraryPath ligatureInputs}:"$(patchelf --show-rpath $out/bin/alacritty)" \
$out/bin/alacritty
'';
meta = oldAttrs.meta // {
description = "Alacritty with ligature patch applied";
homepage = "https://github.com/zenixls2/alacritty/tree/ligature";
};
});
amdgpu-fan = pkgs.callPackage ../tools/misc/amdgpu-fan { };
cardboard = pkgs.callPackage ../applications/window-managers/cardboard { };
goModules = pkgs.recurseIntoAttrs rec {
qt = pkgs.libsForQt512.callPackage ../development/go-modules/qt { };
};
# A functional Jetbrains IDE-with-plugins package set.
jetbrains = pkgs.dontRecurseIntoAttrs rec {
jetbrainsPluginsFor = variant: import ../top-level/jetbrains-plugins.nix {
inherit (pkgs) lib newScope stdenv fetchzip makeWrapper runCommand;
inherit variant;
};
pluginBuild = jetbrainsPlatforms: pkgs.callPackage ../build-support/jetbrains/plugin.nix {
inherit jetbrains jetbrainsPlatforms;
};
clionPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.clion);
ideaCommunityPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-community);
ideaUltimatePlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-ultimate);
clionWithPlugins = clionPlugins.jetbrainsWithPlugins;
ideaCommunityWithPlugins = ideaCommunityPlugins.jetbrainsWithPlugins;
ideaUltimateWithPlugins = ideaUltimatePlugins.jetbrainsWithPlugins;
};
libhl = pkgs.callPackage ../development/libraries/libhl { };
mopidy-subidy = pkgs.callPackage ../applications/audio/mopidy/subidy.nix {
python3Packages = pkgs.python3Packages // python3Packages;
};
pam_gnupg = pkgs.callPackage ../os-specific/linux/pam_gnupg { };
picom-animations = pkgs.picom.overrideAttrs (oldAttrs: {
pname = "picom-animations";
src = pkgs.fetchFromGitHub {
owner = "jonaburg";
repo = "picom";
rev = "d718c94";
sha256 = "165mc53ryyxn2ybkhikmk51ay3k18mvlsym3am3mgr8cpivmf2rm";
};
});
polybar = pkgs.polybar.overrideAttrs (oldAttrs: {
# Enables an extra button in formatting, indirectly allowing the use of
# the mouse forward and backward buttons.
patches = (oldAttrs.patches or [ ]) ++ [ ../applications/misc/polybar/9button.patch ];
});
psst = pkgs.callPackage ../applications/audio/psst { };
python2Packages =
let
fixVersion =
{ package
, version
, sha256
, extra ? (oldAttrs: { })
}: package.overrideAttrs (oldAttrs: rec {
inherit version;
src = pkgs.python2Packages.fetchPypi {
inherit (oldAttrs) pname;
inherit version sha256;
};
} // extra oldAttrs);
in
pkgs.recurseIntoAttrs rec {
colorama_0_3_3 = fixVersion {
package = pkgs.python2Packages.colorama;
version = "0.3.3";
sha256 = "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb";
};
mutagen_1_30 = fixVersion {
package = pkgs.python2Packages.mutagen;
version = "1.30";
sha256 = "0kv2gjnzbj1w0bswmxm7wi05x6ypi7jk52s0lb8gw8s459j41gyd";
extra = oldAttrs: {
patches = [ ];
};
};
pyspotify_2_0_5 = fixVersion {
package = pkgs.python2Packages.pyspotify;
version = "2.0.5";
sha256 = "0y16c024rrvbvfdqj1n0k4b25b1nbza3i7kspg5b0ci2src1rm7v";
};
overlay = {
colorama = colorama_0_3_3;
mutagen = mutagen_1_30;
pyspotify = pyspotify_2_0_5;
};
};
python3Packages = pkgs.recurseIntoAttrs {
py-sonic = pkgs.python3.pkgs.callPackage ../development/python-modules/py-sonic { };
};
# The one in Nixpkgs still extracts the pre-built Debian package instead
# of building from source.
protonmailBridgePackages = pkgs.libsForQt512.callPackage ../applications/networking/protonmail-bridge {
inherit goModules;
};
protonmail-bridge = protonmailBridgePackages.protonmail-bridge;
protonmail-bridge-headless = protonmailBridgePackages.protonmail-bridge-headless;
radeon-profile-daemon = pkgs.libsForQt5.callPackage ../tools/misc/radeon-profile-daemon { };
samrewritten = pkgs.callPackage ../tools/misc/samrewritten { };
spotify-ripper = pkgs.callPackage ../tools/misc/spotify-ripper {
# NOTE: Not available in 20.03. Specifying it this way lets me cheat the
# build auto-failing on 20.03 because of the attribute not existing.
inherit (pkgs) fdk-aac-encoder;
python2Packages = pkgs.python2Packages // python2Packages.overlay;
};
zsh-z = pkgs.callPackage ../shells/zsh/zsh-z { };
}

View File

@ -2,29 +2,25 @@
, newScope
, stdenv
, fetchzip
, makeWrapper
, runCommand
, variant
}:
let
mkJetbrainsPlugins = import ../applications/editors/jetbrains/common-plugins.nix {
mkIdeaPlugins = import ../applications/editors/jetbrains/idea-plugins.nix {
inherit lib stdenv fetchzip;
};
mkIdeaPlugins = import ../applications/editors/jetbrains/idea-plugins.nix {
inherit lib stdenv variant;
};
jetbrainsWithPlugins = import ../applications/editors/jetbrains/wrapper.nix {
inherit lib;
inherit lib makeWrapper runCommand;
};
in lib.makeScope newScope (self: lib.makeOverridable ({
jetbrainsPlugins ? mkJetbrainsPlugins self
, ideaPlugins ? mkIdeaPlugins self
ideaPlugins ? mkIdeaPlugins self
}: ({ }
// jetbrainsPlugins // { inherit jetbrainsPlugins; }
// ideaPlugins // { inherit ideaPlugins; }
// {
inherit variant;