13 Commits

Author SHA1 Message Date
Smaug123
e603de3347 Update VSCode extensions 2022-02-20 09:54:34 +00:00
Smaug123
fc0987c71e Merge branch 'main' of github.com:Smaug123/nix-dotfiles 2022-02-20 09:46:44 +00:00
Patrick Stevens
76b0a99899 Update Nixpkgs (#7) 2022-02-20 09:46:28 +00:00
Smaug123
9071035ba2 Format 2022-02-18 20:02:50 +00:00
Patrick Stevens
2463b3275b Use flakes (#6) 2022-02-06 14:40:14 +00:00
Smaug123
278ef5278d Remove ca-derivations again 2022-02-06 13:06:46 +00:00
Smaug123
cf971dbbb9 Lean 4 2022-02-05 10:21:46 +00:00
Smaug123
73539bc753 Fix up some config 2022-02-04 19:58:13 +00:00
Smaug123
4cdf00f879 A few bits and bobs 2022-01-26 20:17:50 +00:00
Smaug123
49b4432235 Upgrade extensions 2022-01-16 22:59:35 +00:00
Smaug123
135a036dd8 Add imagemagick 2022-01-16 22:56:38 +00:00
Smaug123
4e0ed30fbf Upgrade VS Code 2021-12-20 21:35:49 +00:00
Smaug123
40c8093b49 Remove custom GMP setup entirely 2021-12-12 19:10:12 +00:00
15 changed files with 567 additions and 251 deletions

5
.gitignore vendored
View File

@@ -1 +1,4 @@
result/
result
.idea/
bin/
obj/

16
VsCodeExtensions.sln Normal file
View File

@@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VsCodeExtensions", "VsCodeExtensions\VsCodeExtensions.fsproj", "{5BD60C47-954A-42E3-9863-9B6ED29AC112}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5BD60C47-954A-42E3-9863-9B6ED29AC112}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BD60C47-954A-42E3-9863-9B6ED29AC112}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BD60C47-954A-42E3-9863-9B6ED29AC112}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BD60C47-954A-42E3-9863-9B6ED29AC112}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

176
VsCodeExtensions/Program.fs Normal file
View File

@@ -0,0 +1,176 @@
open System.IO
open System.Net.Http
open System.Text.Json
type Extension =
{
Name : string
Publisher : string
Version : string
Sha256 : string
}
override this.ToString () =
[
"{"
$" name = \"{this.Name}\";"
$" publisher = \"{this.Publisher}\";"
$" version = \"{this.Version}\";"
$" sha256 = \"{this.Sha256}\";"
"}"
]
|> String.concat "\n"
static member Parse (s : string list) : Extension =
let collection =
s
|> List.fold (fun fields s ->
match s.Split "=" |> List.ofArray with
| field :: rest when not <| rest.IsEmpty ->
Map.add (field.Trim ()) ((String.concat "=" rest).Split('"').[1].TrimEnd(';')) fields
| _ -> fields
) Map.empty
{
Name = collection.["name"]
Publisher = collection.["publisher"]
Version = collection.["version"]
Sha256 = collection.["sha256"]
}
type Skipped =
{
NixpkgsRef : string
Reason : string
}
override this.ToString () =
[
$"# {this.Reason}"
$"# {this.NixpkgsRef}"
]
|> String.concat "\n"
let bimap f g (x, y) = (f x, g y)
let partition<'a, 'b> (l : List<Choice<'a, 'b>>) : 'a list * 'b list =
l
|> List.fold (fun (aEntries, bEntries) next ->
match next with
| Choice1Of2 a -> (a :: aEntries, bEntries)
| Choice2Of2 b -> (aEntries, b :: bEntries)
) ([], [])
|> bimap List.rev List.rev
type NixFile =
{
NixpkgsRefs : string list
Skipped : Skipped list
SpecificVersions : Extension list
}
override this.ToString () =
[
yield "{ pkgs }:"
yield ""
yield "with pkgs.vscode-extensions; ["
yield! this.NixpkgsRefs |> List.map (sprintf " %s")
yield! this.Skipped |> List.map (sprintf "%O")
yield "] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace ["
yield! this.SpecificVersions |> List.map (sprintf "%O")
yield "]"
]
|> String.concat "\n"
static member Parse (s : string) : NixFile =
let pre, post =
s.Split "\n] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [\n"
|> function
| [| pre ; post |] -> pre, post
| _ -> failwith "Unexpected number of '++'"
let verbatim, skipped =
match pre.Split "\n" |> List.ofArray with
| "{ pkgs }:" :: "" :: "with pkgs.vscode-extensions; [" :: rest ->
rest
|> List.map (fun s ->
if s.StartsWith '#' then Choice2Of2 (s.[2..].Trim()) else Choice1Of2 (s.Trim())
)
|> partition
| _ -> failwith $"Unexpected pre:\n{pre}"
let pairs (l : 'a list) : ('a * 'a) list =
let rec go acc l =
match l with
| [] -> acc
| [singleton] -> failwith $"Expected pair, got {singleton}"
| x :: y :: rest -> go ((x, y) :: acc) rest
go [] l
|> List.rev
let skipped =
skipped
|> pairs
|> List.map (fun (comment, link) -> { NixpkgsRef = link ; Reason = comment })
let specificVersions =
post.TrimEnd([| '\n' ; ']'|]).Split "}"
|> Array.choose (fun contents ->
match contents.Trim([|'\n' ; ' '|]).Split "\n" |> List.ofArray with
| "{" :: rest ->
Some (Extension.Parse rest)
| [] ->
failwith $"Expected extension, got:\n{contents}"
| [""] -> None
| fst :: rest ->
failwith $"Expected bracket, got '{fst}'\n {rest}"
)
|> Array.toList
{
Skipped = skipped
NixpkgsRefs = verbatim
SpecificVersions = specificVersions
}
type Version =
{
Version : string
TargetPlatform : string
}
let upgradeExtension (client : HttpClient) (e : Extension) : Extension Async =
let uri = System.Uri $"https://marketplace.visualstudio.com/items?itemName={e.Publisher}.{e.Name}"
async {
let! response = client.GetAsync uri |> Async.AwaitTask
let! content = response.Content.ReadAsStringAsync () |> Async.AwaitTask
let options = JsonSerializerOptions ()
options.PropertyNameCaseInsensitive <- true
let latestVersion =
content.Split("\"Versions\":[").[1].Split("]").[0]
|> sprintf "[%s]"
|> fun s -> JsonSerializer.Deserialize<Version array> (s, options)
|> Seq.head
return { e with Version = latestVersion.Version }
}
let upgrade (nixFile : NixFile) : NixFile =
use client = new HttpClient ()
{ nixFile with
SpecificVersions =
nixFile.SpecificVersions
|> List.map (upgradeExtension client)
|> Async.Parallel
|> Async.RunSynchronously
|> List.ofArray
}
module Program =
[<EntryPoint>]
let main args =
let sourceFile =
if args.Length = 0 then "vscode-extensions.nix" else args.[0]
File.ReadAllText sourceFile
|> NixFile.Parse
|> upgrade
|> sprintf "%O"
|> fun s -> File.WriteAllText (sourceFile, s)
0

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs"/>
</ItemGroup>
</Project>

View File

@@ -1,16 +1,10 @@
{ config, lib, pkgs, ... }:
{ pkgs, ... }:
let python = import ./python.nix { inherit pkgs; }; in
{
nix.useDaemon = true;
imports = [ <home-manager/nix-darwin> ];
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.Patrick = import ./home.nix;
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
@@ -31,25 +25,22 @@ let python = import ./python.nix { inherit pkgs; }; in
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
environment.darwinConfig = "$HOME/.nixpkgs/darwin-configuration.nix";
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/emacs-overlay/archive/25dd5297f613fd13971e4847e82d1097077eeb53.tar.gz;
}))
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"vscode"
];
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nixFlakes;
nix.gc.automatic = true;
nix.useSandbox = true;
# Sandbox causes failure: https://github.com/NixOS/nix/issues/4119
nix.useSandbox = false;
nix.extraOptions = ''
auto-optimise-store = true
experimental-features = nix-command flakes
max-jobs = auto # Allow building multiple derivations in parallel
keep-outputs = true # Do not garbage-collect build time-only dependencies (e.g. clang)
# Allow fetching build results from the Lean Cachix cache
trusted-substituters = https://lean4.cachix.org/
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= lean4.cachix.org-1:mawtxSxcaiWE24xCXXgh3qnvlTkyU7evRRnGeAhD4Wk=
'';
# Used for backwards compatibility, please read the changelog before changing.

86
flake.lock generated Normal file
View File

@@ -0,0 +1,86 @@
{
"nodes": {
"darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1645007752,
"narHash": "sha256-FQZMiVP/1vgR7x+TWonMf0NZczrZ4ZjhSTj3rM+kglY=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "c944b5ee82a829ddf7fa6bd9300bc2fe3d005fa1",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"emacs": {
"locked": {
"lastModified": 1644143491,
"narHash": "sha256-ld5MzYesjOE8Ml5uvjFUFaxAozJEl48svwWQ3i7oggc=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "4c7e0980a5f23684ca3ea772d4f62b0da4f55e3c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1645140957,
"narHash": "sha256-WTJzLSCDLBI537o2L/3kRyqEV5YRT7+1QSGryeKReHE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4f4165a8b9108818ab0193bbd1a252106870b2a2",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1644972330,
"narHash": "sha256-hEDWZcTDopnz4jRDhCmnH9VztdKSfR6mrudSM8+Jfco",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1a5ff5ea0297dc8ec5a33b87dfb4fc78687068e6",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"darwin": "darwin",
"emacs": "emacs",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

46
flake.nix Normal file
View File

@@ -0,0 +1,46 @@
{
description = "Patrick's Darwin Nix setup";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
darwin = {
url = "github:lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, darwin, emacs, nixpkgs, home-manager, ... }@inputs:
let system = "aarch64-darwin"; in
let config = {
allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
"vscode"
];
}; in
let overlays = [ emacs.overlay ] ++ import ./overlays.nix; in
let pkgs = (import nixpkgs { inherit system config overlays; }); in
{
darwinConfigurations = {
nixpkgs = pkgs;
patrick = darwin.lib.darwinSystem {
system = system;
modules = [
./darwin-configuration.nix
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.Patrick = import ./home.nix { nixpkgs = pkgs; };
}
];
};
};
};
}

View File

@@ -1,36 +0,0 @@
{ pkgs, config, lib, ... }:
let link = ./link.sh; in
let gmp-symlink =
pkgs.stdenv.mkDerivation {
name = "gmp-symlink";
src = ./link.sh;
phases = [ "unpackPhase" ];
unpackPhase = ''
mkdir -p "$out"
cp ${link} "$out/link.sh"
chmod u+x "$out/link.sh"
sed -i 's_NIX-GMP_${config.gmp-symlink.gmp}_' "$out/link.sh"
'';
installPhase = ''
'';
};
in
{
options = {
gmp-symlink.enable = lib.mkOption { default = false; };
gmp-symlink.gmp = lib.mkOption { default = pkgs.gmp; };
};
config = lib.mkIf config.gmp-symlink.enable {
home.activation.gmp-symlink = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
${gmp-symlink}/link.sh
'';
};
}

View File

@@ -1,15 +0,0 @@
#!/bin/bash
dest="/usr/local/opt/gmp/lib/libgmp.10.dylib"
sudo mkdir -p "$(dirname "$dest")"
existing=$(readlink "$dest")
if [ $? -eq 1 ]; then
sudo ln -s "NIX-GMP/lib/libgmp.10.dylib" "$dest"
else
if [[ "$existing" == /nix/store/* ]]; then
sudo ln -fs "NIX-GMP/lib/libgmp.10.dylib" "$dest"
else
echo "Existing symlink is $existing, refusing to overwrite"
exit 1
fi
fi

166
home.nix
View File

@@ -1,13 +1,19 @@
{ config, pkgs, ... }:
let username = "Patrick"; in
let dotnet = pkgs.dotnet-sdk_6; in
{
imports = [ ./rider ./gmp ];
nixpkgs,
...
}:
let
username = "Patrick";
in let
dotnet = nixpkgs.dotnet-sdk_6;
in {
imports = [./rider];
rider = { enable = true; username = username; dotnet = dotnet; };
gmp-symlink = { enable = true; };
rider = {
enable = true;
username = username;
dotnet = dotnet;
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
@@ -24,60 +30,64 @@ let dotnet = pkgs.dotnet-sdk_6; in
# 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 = "21.11";
home.stateVersion = "22.05";
home.packages =
[
pkgs.rust-analyzer
pkgs.tmux
pkgs.wget
pkgs.youtube-dl
pkgs.cmake
pkgs.gnumake
pkgs.gcc
pkgs.gdb
pkgs.hledger
pkgs.hledger-web
nixpkgs.rust-analyzer
nixpkgs.tmux
nixpkgs.wget
nixpkgs.youtube-dl
nixpkgs.cmake
nixpkgs.gnumake
nixpkgs.gcc
nixpkgs.gdb
nixpkgs.hledger
nixpkgs.hledger-web
dotnet
pkgs.docker
pkgs.jitsi-meet
#pkgs.handbrake
pkgs.ripgrep
pkgs.elan
pkgs.coreutils-prefixed
pkgs.shellcheck
pkgs.html-tidy
pkgs.hugo
#pkgs.agda
pkgs.pijul
pkgs.universal-ctags
pkgs.asciinema
pkgs.git-lfs
nixpkgs.docker
nixpkgs.jitsi-meet
#nixpkgs.handbrake
nixpkgs.ripgrep
nixpkgs.elan
nixpkgs.coreutils-prefixed
nixpkgs.shellcheck
nixpkgs.html-tidy
nixpkgs.hugo
#nixpkgs.agda
nixpkgs.pijul
nixpkgs.universal-ctags
nixpkgs.asciinema
nixpkgs.git-lfs
nixpkgs.imagemagick
nixpkgs.nixpkgs-fmt
nixpkgs.rnix-lsp
];
programs.vscode = {
enable = true;
package = pkgs.vscode;
extensions = import ./vscode-extensions.nix { inherit pkgs; };
userSettings = {
workbench.colorTheme = "Default High Contrast";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
};
"git.path" = "${pkgs.git}/bin/git";
"update.mode" = "none";
"docker.dockerPath" = "${pkgs.docker}/bin/docker";
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
"lean.memoryLimit" = 8092;
enable = true;
package = nixpkgs.vscode;
extensions = import ./vscode-extensions.nix { pkgs = nixpkgs; };
userSettings = {
workbench.colorTheme = "Default High Contrast";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
"**/result" = true;
};
"git.path" = "${nixpkgs.git}/bin/git";
"update.mode" = "none";
"docker.dockerPath" = "${nixpkgs.docker}/bin/docker";
#"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/lean4/bin/lean";
"lean.memoryLimit" = 8092;
};
};
programs.tmux = {
shell = "\${pkgs.zsh}/bin/zsh";
shell = "\${nixpkgs.zsh}/bin/zsh";
};
programs.zsh = {
@@ -90,22 +100,22 @@ let dotnet = pkgs.dotnet-sdk_6; in
};
oh-my-zsh = {
enable = true;
plugins = [ "git" "macos" "dircycle" "timer" ];
plugins = ["git" "macos" "dircycle" "timer"];
theme = "robbyrussell";
};
sessionVariables = {
EDITOR = "vim";
LC_ALL = "en_US.UTF-8";
LC_CTYPE = "en_US.UTF-8";
RUSTFLAGS = "-L ${pkgs.libiconv}/lib";
RUSTFLAGS = "-L ${nixpkgs.libiconv}/lib";
RUST_BACKTRACE = "full";
};
shellAliases = {
vim = "nvim";
view = "vim -R";
nix-upgrade = "sudo -i sh -c 'nix-channel --update && nix-env -iA nixpkgs.nix && launchctl remove org.nixos.nix-daemon && launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist'";
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${pkgs.gnumake}/bin/make -DCMAKE_AR=${pkgs.darwin.cctools}/bin/ar -DCMAKE_RANLIB=${pkgs.darwin.cctools}/bin/ranlib -DGMP_INCLUDE_DIR=${pkgs.gmp.dev}/include/ -DGMP_LIBRARIES=${pkgs.gmp}/lib/libgmp.10.dylib";
ar = "${pkgs.darwin.cctools}/bin/ar";
cmake = "cmake -DCMAKE_MAKE_PROGRAM=${nixpkgs.gnumake}/bin/make -DCMAKE_AR=${nixpkgs.darwin.cctools}/bin/ar -DCMAKE_RANLIB=${nixpkgs.darwin.cctools}/bin/ranlib -DGMP_INCLUDE_DIR=${nixpkgs.gmp.dev}/include/ -DGMP_LIBRARIES=${nixpkgs.gmp}/lib/libgmp.10.dylib";
ar = "${nixpkgs.darwin.cctools}/bin/ar";
};
};
@@ -115,7 +125,7 @@ let dotnet = pkgs.dotnet-sdk_6; in
};
programs.git = {
package = pkgs.gitAndTools.gitFull;
package = nixpkgs.gitAndTools.gitFull;
enable = true;
userName = "Smaug123";
userEmail = "patrick+github@patrickstevens.co.uk";
@@ -140,26 +150,37 @@ let dotnet = pkgs.dotnet-sdk_6; in
addIgnoredFile = false;
};
"filter \"lfs\"" = {
clean = "${pkgs.git-lfs} clean -- %f";
smudge = "${pkgs.git-lfs}/bin/git-lfs smudge --skip -- %f";
process = "${pkgs.git-lfs}/bin/git-lfs filter-process";
required = true;
clean = "${nixpkgs.git-lfs} clean -- %f";
smudge = "${nixpkgs.git-lfs}/bin/git-lfs smudge --skip -- %f";
process = "${nixpkgs.git-lfs}/bin/git-lfs filter-process";
required = true;
};
pull = {
twohead = "ort";
};
};
};
programs.neovim.enable = true;
programs.neovim.plugins = with pkgs.vimPlugins; [
programs.neovim.plugins = with nixpkgs.vimPlugins; [
molokai
tagbar
{ plugin = rust-vim;
config = "let g:rustfmt_autosave = 1"; }
{ plugin = syntastic;
config = ''let g:syntastic_rust_checkers = ['cargo']
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0''; }
{
plugin = rust-vim;
config = "let g:rustfmt_autosave = 1";
}
{
plugin = LanguageClient-neovim;
config = "let g:LanguageClient_serverCommands = { 'nix': ['rnix-lsp'] }";
}
{
plugin = syntastic;
config = '' let g:syntastic_rust_checkers = ['cargo']
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0'';
}
YouCompleteMe
tagbar
@@ -176,14 +197,13 @@ let g:syntastic_check_on_wq = 0''; }
home.file.".ideavimrc".source = ./ideavimrc;
home.file.".config/youtube-dl/config".source = ./youtube-dl.conf;
programs.emacs = {
enable = true;
package = pkgs.emacsGcc;
package = nixpkgs.emacsGcc;
extraPackages = (epkgs: []);
extraConfig = ''
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
'';
};
}

View File

@@ -1 +1,3 @@
set ideajoin
set ideajoin
set visualbell
set noerrorbells

10
overlays.nix Normal file
View File

@@ -0,0 +1,10 @@
[
(self: super: {
# https://github.com/NixOS/nixpkgs/issues/153304
alacritty = super.alacritty.overrideAttrs (
o: rec {
doCheck = false;
}
);
})
]

View File

@@ -9,7 +9,7 @@ in
let packageOverrides = self: super: {
# Test failures on darwin ("windows-1252"); just skip pytest
# (required for elan)
beautifulsoup4 = super.beautifulsoup4.overridePythonAttrs(old: { pytestCheckPhase="true"; });
beautifulsoup4 = super.beautifulsoup4.overridePythonAttrs (old: { pytestCheckPhase = "true"; });
};
in

View File

@@ -36,7 +36,7 @@ in
dest="/Users/${config.rider.username}/Library/Application Support/JetBrains"
if [ -e "$dest" ]; then
find "$dest" -type d -maxdepth 1 -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
find "$dest" -maxdepth 1 -type d -name 'Rider*' -exec sh -c '${riderconfig}/link.sh "$0"' {} \;
fi
'';
};

View File

@@ -1,110 +1,115 @@
{ pkgs }:
with pkgs.vscode-extensions; [
{pkgs}:
with pkgs.vscode-extensions;
[
bbenoist.nix
haskell.haskell
yzhang.markdown-all-in-one
james-yu.latex-workshop
vscodevim.vim
# Doesn't work with vscodium, and unfree
# ms-vscode-remote.remote-ssh
# Not supported on Darwin, apparently
# ms-dotnettools.csharp
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "vscode-docker";
publisher = "ms-azuretools";
version = "1.14.0";
sha256 = "0wc0k3hf9yfjcx7cw9vm528v5f4bk968bgc98h8fwmlx14vhapzp";
}
{
name = "code-gnu-global";
publisher = "austin";
version = "0.2.2";
sha256 = "1fz89m6ja25aif6wszg9h2fh5vajk6bj3lp1mh0l2b04nw2mzhd5";
}
{
name = "rust-analyzer";
publisher = "matklad";
version = "0.2.792";
sha256 = "1m4g6nf5yhfjrjja0x8pfp79v04lxp5lfm6z91y0iilmqbb9kx1q";
}
{
name = "vscode-lldb";
publisher = "vadimcn";
version = "1.6.8";
sha256 = "1c81hs2lbcxshw3fnpajc9hzkpykc76a6hgs7wl5xji57782bckl";
}
{
name = "toml";
publisher = "be5invis";
version = "0.5.1";
sha256 = "1r1y6krqw5rrdhia9xbs3bx9gibd1ky4bm709231m9zvbqqwwq2j";
}
{
name = "Ionide-Paket";
publisher = "Ionide";
version = "2.0.0";
sha256 = "1455zx5p0d30b1agdi1zw22hj0d3zqqglw98ga8lj1l1d757gv6v";
}
{
name = "lean";
publisher = "jroesch";
version = "0.16.39";
sha256 = "0v1w0rmx2z7q6lfrl430fl6aq6n70y14s2fqsp734igdkdhdnvmk";
}
{
name = "language-haskell";
publisher = "justusadam";
version = "3.4.0";
sha256 = "0ab7m5jzxakjxaiwmg0jcck53vnn183589bbxh3iiylkpicrv67y";
}
{
name = "vscode-clang";
publisher = "mitaki28";
version = "0.2.4";
sha256 = "0sys2h4jvnannlk2q02lprc2ss9nkgh0f0kwa188i7viaprpnx23";
}
{
name = "dotnet-interactive-vscode";
publisher = "ms-dotnettools";
version = "1.0.2309031";
sha256 = "0vqlspq3696yyfsv17rpcbsaqs7nm7yvggv700sl1bia817cak10";
}
{
name = "python";
publisher = "ms-python";
version = "2021.5.926500501";
sha256 = "0hpb1z10ykg1sz0840qnas5ddbys9inqnjf749lvakj9spk1syk3";
}
{
name = "remote-containers";
publisher = "ms-vscode-remote";
version = "0.183.0";
sha256 = "12v7037rn46svv6ff2g824hdkk7l95g4gbzrp5zdddwxs0a62jlg";
}
{
name = "mono-debug";
publisher = "ms-vscode";
version = "0.16.2";
sha256 = "10hixqkw5r3cg52xkbky395lv72sb9d9wrngdvmrwx62hkbk5465";
}
{
name = "Theme-MarkdownKit";
publisher = "ms-vscode";
version = "0.1.4";
sha256 = "1im78k2gaj6cri2jcvy727qdy25667v0f7vv3p3hv13apzxgzl0l";
}
{
name = "trailing-spaces";
publisher = "shardulm94";
version = "0.3.1";
sha256 = "0h30zmg5rq7cv7kjdr5yzqkkc1bs20d72yz9rjqag32gwf46s8b8";
}
{
name = "debug";
publisher = "webfreak";
version = "0.25.1";
sha256 = "1l01sv6kwh8dlv3kygkkd0z9m37hahflzd5bx1wwij5p61jg7np9";
}
]
# Not supported on Darwin, apparently
# ms-dotnettools.csharp
]
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "remote-containers";
publisher = "ms-vscode-remote";
version = "0.222.0";
sha256 = "4Li0sYfHOsJMn5FJtvDTGKoGPcRmoosD9tZ7q9H9DfQ=";
}
{
name = "remote-ssh";
publisher = "ms-vscode-remote";
version = "0.75.2022021903";
sha256 = "hTRfoUHKrIOSV8eZ/62ewaII5291huXjOZ++dRUmKoI=";
}
{
name = "vscode-docker";
publisher = "ms-azuretools";
version = "1.19.0";
sha256 = "UPUfTOc5xJhI5ACm2oyWqtZ4zNxZjy16D6Mf30eHFEI=";
}
{
name = "code-gnu-global";
publisher = "austin";
version = "0.2.2";
sha256 = "1fz89m6ja25aif6wszg9h2fh5vajk6bj3lp1mh0l2b04nw2mzhd5";
}
{
name = "rust-analyzer";
publisher = "matklad";
version = "0.3.939";
sha256 = "t5CCUdFCiSYrMsBHG5eOfg3sXMacFWiR0hmVa7S1i8Y=";
}
{
name = "vscode-lldb";
publisher = "vadimcn";
version = "1.6.10";
sha256 = "CGVVs//jIZM8uX7Wc9gM4aQGwECi88eIpfPqU2hKbeA=";
}
{
name = "toml";
publisher = "be5invis";
version = "0.6.0";
sha256 = "yk7buEyQIw6aiUizAm+sgalWxUibIuP9crhyBaOjC2E=";
}
{
name = "Ionide-Paket";
publisher = "Ionide";
version = "2.0.0";
sha256 = "1455zx5p0d30b1agdi1zw22hj0d3zqqglw98ga8lj1l1d757gv6v";
}
{
name = "lean";
publisher = "jroesch";
version = "0.16.46";
sha256 = "hjflz5JHVr1YWq6QI9DpdNPY1uL7lAuQTMAdwCtLEfY=";
}
{
name = "language-haskell";
publisher = "justusadam";
version = "3.4.0";
sha256 = "0ab7m5jzxakjxaiwmg0jcck53vnn183589bbxh3iiylkpicrv67y";
}
{
name = "vscode-clang";
publisher = "mitaki28";
version = "0.2.4";
sha256 = "0sys2h4jvnannlk2q02lprc2ss9nkgh0f0kwa188i7viaprpnx23";
}
{
name = "dotnet-interactive-vscode";
publisher = "ms-dotnettools";
version = "1.0.3103011";
sha256 = "a3u9NKsqHZKhZkKqJqo+LgJFTL2yhehBepTOFOXE+jY=";
}
{
name = "python";
publisher = "ms-python";
version = "2022.0.1814523869";
sha256 = "hXTVZ7gbu234zyAg0ZrZPUo6oULB98apxe79U2yQHD4=";
}
{
name = "mono-debug";
publisher = "ms-vscode";
version = "0.16.2";
sha256 = "10hixqkw5r3cg52xkbky395lv72sb9d9wrngdvmrwx62hkbk5465";
}
{
name = "Theme-MarkdownKit";
publisher = "ms-vscode";
version = "0.1.4";
sha256 = "1im78k2gaj6cri2jcvy727qdy25667v0f7vv3p3hv13apzxgzl0l";
}
{
name = "trailing-spaces";
publisher = "shardulm94";
version = "0.3.1";
sha256 = "0h30zmg5rq7cv7kjdr5yzqkkc1bs20d72yz9rjqag32gwf46s8b8";
}
{
name = "debug";
publisher = "webfreak";
version = "0.25.1";
sha256 = "1l01sv6kwh8dlv3kygkkd0z9m37hahflzd5bx1wwij5p61jg7np9";
}
]