51 Commits

Author SHA1 Message Date
Patrick Stevens
f413ff7918 Format 2024-11-29 09:38:23 +00:00
Patrick Stevens
7de8ba96f8 Get sway working 2024-11-29 09:37:28 +00:00
Patrick Stevens
ab4af6d488 Merge branch 'main' into more-earthworm 2024-11-28 22:55:29 +00:00
Patrick Stevens
f9172d159b Stash pop 2024-11-15 00:10:47 +00:00
Patrick Stevens
233771f07d Merge main 2024-11-15 00:10:10 +00:00
Patrick Stevens
d7221c2af1 Resolve borked merge 2024-10-21 23:20:40 +01:00
Patrick Stevens
8969b0c347 Merge main 2024-10-21 23:06:40 +01:00
Patrick Stevens
a40777c034 Add waybar 2024-10-21 23:05:37 +01:00
Patrick Stevens
dbe797cf03 WIP 2024-10-21 22:41:31 +01:00
Patrick Stevens
e60a954838 Fix Earthworm key 2024-10-21 22:41:10 +01:00
Patrick Stevens
0e00b6250f Merge main 2024-10-20 10:33:21 +01:00
Patrick Stevens
8ef0e6ef37 Merge main 2024-10-19 22:30:32 +01:00
Patrick Stevens
def75585dd Fix merge 2024-06-14 22:08:39 +01:00
Patrick Stevens
8c67cd2e0a Merge main 2024-06-14 21:58:47 +01:00
Smaug123
348d913a49 Merge branch 'main' into more-earthworm 2024-03-26 00:04:11 +00:00
Smaug123
e668501cad Merge main 2024-03-26 00:01:04 +00:00
Smaug123
e160ff5704 Merge main 2024-03-25 23:58:23 +00:00
Smaug123
7a1e5eb445 Merge branch 'main' into more-earthworm 2024-03-25 23:54:14 +00:00
Smaug123
47fc4dfd39 Use roslyn-nvim, fix some prefixes 2024-03-25 23:44:29 +00:00
Smaug123
ae0713074f Add C# language server 2024-03-25 21:29:19 +00:00
Smaug123
db633836f1 Attempt at venv creation thing 2024-03-25 09:39:47 +00:00
Smaug123
4554ea1a90 Fix buffer-specific binds 2024-03-24 23:30:52 +00:00
Smaug123
75cebeaa7a Stop for today 2024-03-24 21:08:06 +00:00
Smaug123
b94098e5af Fix 2024-03-24 18:18:02 +00:00
Smaug123
371af97527 Fix misalignment 2024-03-24 17:15:54 +00:00
Smaug123
742a708c0c Tidy up 2024-03-24 17:14:24 +00:00
Smaug123
ddbd6718b5 Upgrade nixpkgs 2024-03-24 16:53:46 +00:00
Smaug123
824e35351d Move entirely to Lua 2024-03-24 11:24:35 +00:00
Smaug123
8336993820 Document more 2024-03-23 19:07:25 +00:00
Smaug123
49f2b9be5c Much better 2024-03-23 18:46:18 +00:00
Smaug123
289e430d52 It works 2024-03-23 17:44:00 +00:00
Smaug123
d54f38cf68 Move more stuff to Lua 2024-03-23 14:12:42 +00:00
Smaug123
14981d3401 More 2024-03-23 11:11:27 +00:00
Smaug123
3e9b26c093 More 2024-03-23 11:07:02 +00:00
Smaug123
47b5993422 Nearly working 2024-03-23 01:06:01 +00:00
Smaug123
93b5fc92e9 Rustaceanvim 2024-03-22 21:24:48 +00:00
Smaug123
e493cdbcdd And F# 2024-03-22 21:17:19 +00:00
Smaug123
78b2d62ce2 Python setup 2024-03-22 21:01:26 +00:00
Smaug123
1e4c4c525f More 2024-03-22 19:38:21 +00:00
Smaug123
21bb1ebd3d Fix autoloads 2024-02-26 18:32:35 +00:00
Smaug123
b111a9509d Fix config 2024-02-25 20:01:12 +00:00
Smaug123
ef64007cc9 Couple of fixes 2024-02-25 17:24:04 +00:00
Smaug123
b9bb4c49fa Merge branch 'main' into more-earthworm 2024-02-23 22:47:53 +00:00
Smaug123
d2718febf8 Rem oh-my-zsh 2024-02-23 22:44:39 +00:00
Smaug123
b3eb9adb9f Format 2024-02-23 14:16:04 +00:00
Smaug123
ada02e558b FiraCode 2024-02-23 14:11:48 +00:00
Smaug123
ae96250101 Delete unused keybinds 2024-02-23 11:15:36 +00:00
Smaug123
5e3f257ce6 Merge branch 'main' into more-earthworm 2024-02-23 11:11:39 +00:00
Smaug123
134b0dc8a7 CHADdeps and coq_nvim 2024-02-23 11:06:57 +00:00
Smaug123
a290279914 Relegate to Linux 2024-02-04 23:39:41 +00:00
Patrick Stevens
bea4ca1220 More earthworm 2024-02-04 20:15:15 +00:00
25 changed files with 292 additions and 294 deletions

1
.envrc
View File

@@ -1 +0,0 @@
use flake .

View File

@@ -11,9 +11,9 @@ jobs:
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v5"
uses: "actions/checkout@v4"
- name: "Install Nix"
uses: "cachix/install-nix-action@v31"
uses: "cachix/install-nix-action@v30"
with: { "extra_nix_config": "access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}" }
- name: "Check flake"
run: "nix flake check --all-systems"

1
.gitignore vendored
View File

@@ -3,4 +3,3 @@ result
bin/
obj/
.DS_Store
.direnv/

View File

@@ -1,10 +1,16 @@
{pkgs, ...}: let
mbsync = import ./mbsync.nix {inherit pkgs;};
in {
nix.useDaemon = true;
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [
pkgs.alacritty
pkgs.rustup
pkgs.libiconv
pkgs.clang
pkgs.python3
];
@@ -105,6 +111,7 @@ in {
};
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nixVersions.stable;
nix.gc.automatic = true;
@@ -127,6 +134,4 @@ in {
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
system.primaryUser = "patrick";
}

133
flake.lock generated
View File

@@ -4,14 +4,14 @@
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"treefmt-nix": "treefmt-nix"
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1756110286,
"narHash": "sha256-NE0HwcQCQTgM+HuYqmiemPf/5e+3fjwowceAyJj+ikU=",
"lastModified": 1731473366,
"narHash": "sha256-sE2WfD3YyNrCROfRZKqMDR77g3KV4FXUaJ7NWe+A7ro=",
"owner": "tpwrules",
"repo": "nixos-apple-silicon",
"rev": "b99bf9bf7445416fe55da09034fc4a6cd733805c",
"rev": "3eee753e4b074790342fadb1c4e7183d037ddac4",
"type": "github"
},
"original": {
@@ -27,11 +27,11 @@
]
},
"locked": {
"lastModified": 1757015938,
"narHash": "sha256-1qBXNK/QxEjCqIoA2DxWn5gqM8rVxt+OxKodXu1GLTY=",
"lastModified": 1731454423,
"narHash": "sha256-TtwvgFxUa0wyptLhQbKaixgNW1UXf3+TDqfX3Kp63oM=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "eaacfa1101b84225491d2ceae9549366d74dc214",
"rev": "6c71c49e2448e51ad830ed211024e6d0edc50116",
"type": "github"
},
"original": {
@@ -41,13 +41,34 @@
"type": "github"
}
},
"emacs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1731604406,
"narHash": "sha256-CUkO4CXaDcGyUqQ+/ArvekL3hlfgass7LjrnG6m2+g8=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "f6c94b95f529cfbd29848c12816111a2471a5293",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1746162366,
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
"lastModified": 1688025799,
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
"type": "github"
},
"original": {
@@ -61,11 +82,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
@@ -81,11 +102,11 @@
]
},
"locked": {
"lastModified": 1757075491,
"narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=",
"lastModified": 1731604581,
"narHash": "sha256-Qq2YZZaDTB3FZLWU/Hgh1uuWlUBl3cMLGB99bm7rFUM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf",
"rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github"
},
"original": {
@@ -108,11 +129,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
"lastModified": 1731139594,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2",
"type": "github"
},
"original": {
@@ -122,13 +143,29 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs-stable": {
"locked": {
"lastModified": 1756911493,
"narHash": "sha256-6n/n1GZQ/vi+LhFXMSyoseKdNfc2QQaSBXJdgamrbkE=",
"lastModified": 1731386116,
"narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c6a788f552b7b7af703b1a29802a7233c0067908",
"rev": "689fed12a013f56d4c4d3f612489634267d86529",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1731531548,
"narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "24f0d4acd634792badd6470134c387a3b039dace",
"type": "github"
},
"original": {
@@ -140,11 +177,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1734254970,
"narHash": "sha256-yZzYWWWeOqSFvIirHzY1SJiuSBPmXIYJFhyt+1zkv8A=",
"lastModified": 1695033101,
"narHash": "sha256-RQ4m+ycjdLdass7Hr4+Lzwnjw7wGhcUkKqWiJS3YxPM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d388ee0ec8c623389ab3a7caead258a94cec14de",
"rev": "d941d9491804e0ca01e03468dbf6f8d3a7919a16",
"type": "github"
},
"original": {
@@ -157,11 +194,28 @@
"inputs": {
"apple-silicon": "apple-silicon",
"darwin": "darwin",
"emacs": "emacs",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_2",
"whisper": "whisper"
}
},
"rust-overlay": {
"flake": false,
"locked": {
"lastModified": 1686795910,
"narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -177,27 +231,6 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"apple-silicon",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754847726,
"narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"whisper": {
"inputs": {
"flake-utils": "flake-utils",
@@ -205,11 +238,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1743962136,
"narHash": "sha256-YsKxkEGqGE+c0L+k8Vczq9UHpzSktR9/tm3zrF7abzo=",
"lastModified": 1704121968,
"narHash": "sha256-N8FJb+ohJ4Qt/m5RoAbwm3RP4VRjl+hA6PUCfjPhZo8=",
"owner": "Smaug123",
"repo": "whisper.cpp",
"rev": "e1faa8b19ead213f507dbabda45ac54b8765a6eb",
"rev": "04f8e0cdc73abe7c593b2c9405f0f590c51de95a",
"type": "github"
},
"original": {

View File

@@ -14,6 +14,10 @@
# url = "github:Smaug123/nix-darwin/extract";
inputs.nixpkgs.follows = "nixpkgs";
};
emacs = {
url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon";
};
@@ -24,6 +28,7 @@
outputs = {
darwin,
emacs,
nixpkgs,
home-manager,
apple-silicon,
@@ -36,6 +41,7 @@
};
systems = ["aarch64-darwin" "aarch64-linux" "x86_64-linux"];
in let
overlays = [emacs.overlay];
recursiveMerge = attrList: let
f = attrPath:
builtins.zipAttrsWith (n: values:
@@ -53,7 +59,7 @@
capybara = let
system = "x86_64-linux";
in let
pkgs = import nixpkgs {inherit system config;};
pkgs = import nixpkgs {inherit system config overlays;};
in
nixpkgs.lib.nixosSystem {
inherit system;
@@ -83,7 +89,7 @@
earthworm = let
system = "aarch64-linux";
in let
pkgs = import nixpkgs {inherit system config;};
pkgs = import nixpkgs {inherit system config overlays;};
in
nixpkgs.lib.nixosSystem {
inherit system;
@@ -111,7 +117,7 @@
darwinConfigurations = let
system = "aarch64-darwin";
in let
pkgs = import nixpkgs {inherit system config;};
pkgs = import nixpkgs {inherit system config overlays;};
in {
nixpkgs = pkgs;
patrick = darwin.lib.darwinSystem {

View File

@@ -4,6 +4,7 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: {
@@ -22,7 +23,7 @@
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/5BCD-7078";
device = "/dev/disk/by-uuid/9248-31C6";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};

View File

@@ -13,8 +13,6 @@
enable32Bit = true;
};
hardware.bluetooth.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;

View File

@@ -23,15 +23,12 @@
];
programs.vscode = {
profiles.default = {
userSettings = {
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
"lean.memoryLimit" = 16384;
"latex-workshop.view.pdf.viewer" = "tab";
"lean4.toolchainPath" = "/Users/${username}/.elan/toolchains/leanprover--lean4---nightly-2022-12-16";
"git.openRepositoryInParentFolders" = "always";
};
userSettings = {
"lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg";
"lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean";
"lean.memoryLimit" = 16384;
"latex-workshop.view.pdf.viewer" = "tab";
"lean4.toolchainPath" = "/Users/${username}/.elan/toolchains/leanprover--lean4---nightly-2022-12-16";
};
};

View File

@@ -1,28 +0,0 @@
# Configure Rider to use the correct .NET paths from an ambient .NET
use_rider_dotnet() {
# Get paths
DOTNET_PATH=$(readlink "$(which dotnet)")
SETTINGS_FILE=$(find . -maxdepth 1 -type f -name '*.sln.DotSettings.user')
MSBUILD=$(realpath "$(find "$(dirname "$DOTNET_PATH")/../share/dotnet/sdk" -maxdepth 2 -type f -name MSBuild.dll)")
# Update Rider settings if they exist
if [ -f "$SETTINGS_FILE" ] ; then
xmlstarlet ed --inplace \
-N wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" \
-N x="http://schemas.microsoft.com/winfx/2006/xaml" \
-N s="clr-namespace:System;assembly=mscorlib" \
-N ss="urn:shemas-jetbrains-com:settings-storage-xaml" \
--update "//s:String[@x:Key='/Default/Environment/Hierarchy/Build/BuildTool/DotNetCliExePath/@EntryValue']" \
--value "$(realpath "$(dirname "$DOTNET_PATH")/../share/dotnet/dotnet")" \
"$SETTINGS_FILE"
xmlstarlet ed --inplace \
-N wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" \
-N x="http://schemas.microsoft.com/winfx/2006/xaml" \
-N s="clr-namespace:System;assembly=mscorlib" \
-N ss="urn:shemas-jetbrains-com:settings-storage-xaml" \
--update "//s:String[@x:Key='/Default/Environment/Hierarchy/Build/BuildTool/CustomBuildToolPath/@EntryValue']" \
--value "$MSBUILD" \
"$SETTINGS_FILE"
fi
}

View File

@@ -5,10 +5,12 @@
hardware.asahi.peripheralFirmwareDirectory = ./../firmware;
hardware.asahi = {
useExperimentalGPUDriver = true;
experimentalGPUInstallMode = "overlay";
setupAsahiSound = true;
withRust = true;
};
hardware.graphics.enable = true;
hardware.bluetooth.enable = true;
programs.light.enable = true;
services.actkbd = {
@@ -24,21 +26,6 @@
events = ["key"];
command = "${pkgs.light}/bin/light -U 10";
}
{
keys = [113];
events = ["key"];
command = "${pkgs.alsa-utils}/bin/amixer -q set Master toggle";
}
{
keys = [114];
events = ["key"];
command = "${pkgs.alsa-utils}/bin/amixer -q set Master 10- unmute";
}
{
keys = [115];
events = ["key"];
command = "${pkgs.alsa-utils}/bin/amixer -q set Master 10+ unmute";
}
];
};
@@ -72,6 +59,7 @@
environment.systemPackages = [
pkgs.vim
pkgs.wget
pkgs.mesa-asahi-edge
];
environment.loginShellInit = ''

View File

@@ -29,13 +29,12 @@
imports = [
# ./modules/agda.nix
# ./modules/emacs.nix
./modules/ghostty.nix
./modules/direnv.nix
./modules/tmux.nix
./modules/zsh.nix
./modules/ripgrep.nix
./modules/alacritty.nix
./modules/rust.nix
./modules/posix-sh.nix
(import ./modules/mail.nix
{
inherit mbsync secretsPath;
@@ -62,7 +61,7 @@
gpg.program = "${nixpkgs.gnupg}/bin/gpg";
user.signingkey =
if machinename == "darwin"
then "6D71064924BE1245"
then "7C97D679CF3BC4F9"
else if machinename == "earthworm"
then "6E8B1BA1148AD7C9"
else if machinename == "capybara"
@@ -77,14 +76,6 @@
push = {
default = "current";
autoSetupRemote = true;
followTags = true;
};
fetch = {
prune = true;
all = true;
};
help = {
autocorrect = "prompt";
};
pull = {
rebase = false;
@@ -92,15 +83,6 @@
init = {
defaultBranch = "main";
};
branch = {
sort = "-committerdate";
};
column = {
ui = "auto";
};
tag = {
sort = "version:refname";
};
advice = {
addIgnoredFile = false;
};
@@ -118,38 +100,31 @@
};
diff = {
colorMoved = "default";
algorithm = "histogram";
renames = true;
};
"protocol.file" = {
allow = "always";
};
url."git@github.com:" = {
insteadOf = "https://github.com/";
};
};
};
programs.vscode = {
enable = true;
enableExtensionUpdateCheck = true;
enableUpdateCheck = true;
package = nixpkgs.vscode;
profiles.default = {
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
enableExtensionUpdateCheck = true;
enableUpdateCheck = true;
userSettings = {
workbench.colorTheme = "Default";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
"**/result" = true;
};
"git.path" = "${nixpkgs.git}/bin/git";
"update.mode" = "none";
"explorer.confirmDelete" = false;
extensions = import ./vscode-extensions.nix {pkgs = nixpkgs;};
userSettings = {
workbench.colorTheme = "Default";
"files.Exclude" = {
"**/.git" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/*.olean" = true;
"**/result" = true;
};
"git.path" = "${nixpkgs.git}/bin/git";
"update.mode" = "none";
"explorer.confirmDelete" = false;
};
};
@@ -209,6 +184,21 @@
config = builtins.readFile ./nvim/roslyn-nvim.lua;
type = "lua";
}
{
plugin = let
name = "coq.artifacts";
rev = "9c5067a471322c6bb866545e88e5b28c82511865";
in
nixpkgs.vimUtils.buildVimPlugin {
name = name;
src = nixpkgs.fetchFromGitHub {
owner = "ms-jpq";
repo = name;
rev = rev;
hash = "sha256-BHm7U3pINtYamY7m26I4lQee7ccJ6AcHmYx7j1MRFDA=";
};
};
}
{
plugin = let
name = "venv-selector.nvim";
@@ -237,16 +227,15 @@
type = "lua";
}
{
plugin = nixpkgs.vimPlugins.nvim-cmp;
config = builtins.readFile ./nvim/nvim-cmp.lua;
type = "lua";
}
{
plugin = nixpkgs.vimPlugins.cmp-nvim-lsp;
plugin = nixpkgs.vimPlugins.coq_nvim;
config = ''let g:coq_settings = { 'auto_start': 'shut-up', 'xdg': v:true }'';
}
{
plugin = nixpkgs.vimPlugins.rustaceanvim;
}
{
plugin = nixpkgs.vimPlugins.LanguageClient-neovim;
}
{
plugin = nixpkgs.vimPlugins.nvim-dap;
config = builtins.readFile ./nvim/nvim-dap.lua;
@@ -280,28 +269,39 @@
nixpkgs.difftastic
nixpkgs.syncthing
nixpkgs.nodePackages_latest.dockerfile-language-server-nodejs
nixpkgs.nodePackages_latest.bash-language-server
nixpkgs.nodePackages_latest.vscode-json-languageserver
nixpkgs.nodePackages_latest.vscode-langservers-extracted
nixpkgs.hadolint
nixpkgs.yaml-language-server
nixpkgs.csharp-ls
nixpkgs.netcoredbg
nixpkgs.nil
nixpkgs.fsautocomplete
nixpkgs.wget
nixpkgs.yt-dlp
nixpkgs.cmake
nixpkgs.gnumake
nixpkgs.gcc
nixpkgs.lldb
nixpkgs.hledger
nixpkgs.hledger-web
dotnet
nixpkgs.elan
nixpkgs.coreutils-prefixed
nixpkgs.shellcheck
nixpkgs.universal-ctags
nixpkgs.asciinema
nixpkgs.git-lfs
nixpkgs.imagemagick
nixpkgs.nixpkgs-fmt
nixpkgs.lnav
nixpkgs.age
nixpkgs.nodejs
nixpkgs.pyright
nixpkgs.woodpecker-agent
nixpkgs.lynx
nixpkgs.alejandra
nixpkgs.ffmpeg
nixpkgs.bat
nixpkgs.pandoc
@@ -315,13 +315,10 @@
nixpkgs.font-awesome
nixpkgs.gopls
nixpkgs.go
nixpkgs.libiconv
nixpkgs.claude-code
]
++ (
if nixpkgs.stdenv.isLinux
then [
nixpkgs.kdePackages.xwaylandvideobridge
nixpkgs.protonmail-bridge
nixpkgs.pinentry
nixpkgs.signal-desktop
@@ -333,7 +330,7 @@
if machinename == "capybara"
then [
nixpkgs.steam-run
nixpkgs.discord-canary
nixpkgs.discord
nixpkgs.anki-bin
]
else []
@@ -341,4 +338,88 @@
home.file.".ideavimrc".source = ./ideavimrc;
home.file.".config/yt-dlp/config".source = ./youtube-dl.conf;
programs.firefox = {
enable = true;
package = nixpkgs.firefox-wayland;
profiles = {
patrick = {
isDefault = true;
name = "patrick";
search = {
default = "Google";
force = true;
};
settings = {
# see https://github.com/TLATER/dotfiles/blob/b39af91fbd13d338559a05d69f56c5a97f8c905d/home-config/config/graphical-applications/firefox.nix
# see https://www.ghacks.net/2015/08/18/a-comprehensive-list-of-firefox-privacy-and-security-settings/
"browser.search.isUS" = false;
"browser.search.region" = "GB";
"gfx.webrender.all" = true; # enable GPU acceleration
"media.ffmpeg.vaapi.enabled" = true;
"widget.dmabuf.force-enabled" = true;
"privacy.webrtc.legacyGlobalIndicator" = false;
"app.shield.optoutstudies.enabled" = false;
"app.update.enabled" = false;
"app.update.auto" = false;
"app.update.silent" = false;
"app.update.service.enabled" = false;
"app.update.staging.enabled" = false;
"browser.discovery.enabled" = false;
"browser.laterrun.enabled" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.rights.3.shown" = true;
"browser.search.update" = false;
"extensions.update.enabled" = false;
"extensions.update.autoUpdateDefault" = false;
"extensions.getAddons.cache.enabled" = false;
"dom.ipc.plugins.reportCrashURL" = false;
"extensions.webservice.discoverURL" = "http://127.0.0.1";
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.unifiedIsOptIn" = true;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "";
"toolkit.telemetry.archive.enabled" = false;
"lightweightThemes.update.enabled" = false;
"startup.homepage_welcome_url" = "";
"startup.homepage_welcome_url.additional" = "";
"startup.homepage_override_url" = "";
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.healthreport.documentServerURI" = "";
"datareporting.healthreport.service.enabled" = false;
"datareporting.healthreport.about.reportUrl" = "data:text/plain,";
"toolkit.telemetry.cachedClientID" = "";
"browser.selfsupport.url" = "";
"browser.selfsupport.enabled" = false;
"experiments.enabled" = false;
"experiments.supported" = false;
"experiments.activeExperiment" = false;
"experiments.manifest.uri" = "";
"network.allow-experiments" = false;
"breakpad.reportURL" = "";
"browser.tabs.crashReporting.sendReport" = false;
"browser.newtab.preload" = false;
"browser.newtabpage.directory.ping" = "data:text/plain,";
"browser.newtabpage.directory.source" = "data:text/plain,";
"browser.newtabpage.enabled" = false;
"browser.newtabpage.enhanced" = false;
"browser.newtabpage.introShown" = true;
"browser.aboutHomeSnippets.updateUrl" = "https://127.0.0.1";
"extensions.pocket.enabled" = false;
"extensions.pocket.api" = "";
"extensions.pocket.site" = "";
"extensions.pocket.oAuthConsumerKey" = "";
"social.whitelist" = "";
"social.toast-notifications.enabled" = false;
"social.shareDirectory" = "";
"social.remote-install.enabled" = false;
"social.directories" = "";
"social.share.activationPanelEnabled" = false;
"social.enabled" = false;
"dom.flyweb.enabled" = false;
"services.sync.enabled" = false;
};
};
};
};
}

View File

@@ -1,6 +1,13 @@
{nixpkgs, ...}: {
home.packages = [nixpkgs.firefox-wayland nixpkgs.jetbrains.rider];
nixpkgs.config.firefox.speechSynthesisSupport = true;
{
nixpkgs,
username,
dotnet,
...
}: {
home.packages = [nixpkgs.wl-clipboard nixpkgs.jetbrains.rider];
nixpkgs.config.firefox = {
speechSynthesisSupport = true;
};
wayland.windowManager.sway = {
enable = true;
@@ -13,7 +20,7 @@
{command = "${nixpkgs.waybar}/bin/waybar";}
];
};
extraConfig = builtins.replaceStrings ["@@WL-COPY@@" "@@GRIM@@" "@@SLURP@@"] ["${nixpkgs.wl-clipboard}/bin/wl-copy" "${nixpkgs.grim}/bin/grim" "${nixpkgs.slurp}/bin/slurp"] (builtins.readFile ./sway.conf);
extraConfig = builtins.readFile ./sway.conf;
};
programs.waybar = {
@@ -178,7 +185,7 @@
"menu" = "on-click";
"menu-file" = ./modules/waybar/power_menu.xml;
"menu-actions" = {
"shutdown" = "shutdown now";
"shutdown" = "shutdown";
"reboot" = "reboot";
"suspend" = "systemctl suspend";
"hibernate" = "systemctl hibernate";
@@ -197,7 +204,7 @@
services.gpg-agent = {
enable = nixpkgs.stdenv.isLinux;
pinentry.package = nixpkgs.pinentry-curses;
pinentryPackage = nixpkgs.pinentry-curses;
};
services.swayidle = {enable = true;};

View File

@@ -0,0 +1,18 @@
{pkgs, ...}: {
programs.alacritty = {
enable = true;
settings = {
font = {
normal = {
family = "FiraCode Nerd Font Mono";
};
};
terminal = {shell = "${pkgs.zsh}/bin/zsh";};
};
};
home.packages = [
pkgs.alacritty
(pkgs.nerdfonts.override {fonts = ["FiraCode" "DroidSansMono"];})
];
}

View File

@@ -6,6 +6,5 @@
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
# stdlib = builtins.readFile ../direnv/envrc;
};
}

View File

@@ -1,18 +0,0 @@
{pkgs, ...}: {
programs.ghostty = {
enable = pkgs.stdenv.isLinux;
enableZshIntegration = true;
settings = {
keybind = [
"shift+enter=text:\\n"
];
};
};
home.packages =
if pkgs.stdenv.isLinux
then [
pkgs.ghostty
]
else [];
}

View File

@@ -49,7 +49,7 @@ in {
accounts.email.accounts."Gmail" = let
address = (deobfuscate "AFTN0cWdh12c") + "gmail.com";
in {
notmuch.enable = false;
notmuch.enable = true;
neomutt = {
enable = true;
};
@@ -82,7 +82,7 @@ in {
accounts.email.accounts."BTInternet" = let
address = (deobfuscate "z5WZ2VGdz5yajlmc0FGc") + "@btinternet.com";
in {
notmuch.enable = false;
notmuch.enable = true;
neomutt = {
enable = true;
};
@@ -116,7 +116,7 @@ in {
accounts.email.accounts."Proton" = let
address = deobfuscate "gAya15ybj5ycuVmdlR3crNWayRXYwB0ajlmc0FGc";
in {
# notmuch.enable = true;
notmuch.enable = true;
neomutt = {
enable = true;
};
@@ -164,7 +164,6 @@ in {
};
programs.neomutt = {
enable = true;
package = pkgs.neomutt.override {withNotmuch = false;};
extraConfig = ''
set use_threads=threads sort=last-date sort_aux=date
'';
@@ -172,12 +171,12 @@ in {
vimKeys = true;
};
programs.notmuch.enable = false;
programs.notmuch.enable = true;
home.file.".mailcap".source = ./mail/mailcap;
home.packages = [
# pkgs.notmuch
pkgs.notmuch
pkgs.lynx
];
}

View File

@@ -1,6 +0,0 @@
{pkgs, ...}: {
home.packages = [
pkgs.shellcheck
pkgs.nodePackages_latest.bash-language-server
];
}

View File

@@ -14,26 +14,6 @@
extraConfig = ''
set-option -sa terminal-features ',xterm-256color:RGB'
set -g default-command "exec ${pkgs.zsh}/bin/zsh"
# Vi mode
set-window-option -g mode-keys vi
# Use v to begin selection in copy mode
bind-key -T copy-mode-vi v send-keys -X begin-selection
# Use Shift+V to select line
bind-key -T copy-mode-vi V send-keys -X select-line
# Use y to yank to clipboard
${
if pkgs.stdenv.isDarwin
then ''
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
''
else ''
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "${pkgs.wl-clipboard}/bin/wl-copy"
''
}
'';
};
}

View File

@@ -16,7 +16,7 @@
vim = "nvim";
view = "vim -R";
};
initContent = builtins.readFile ./zsh/zshrc;
initExtra = builtins.readFile ./zsh/zshrc;
};
programs.fzf.enableZshIntegration = true;

View File

@@ -24,16 +24,13 @@ precmd_functions+=(prompt_custom)
export WORDCHARS=''
export OPENAI_API_KEY=$(cat ~/.secrets/openai.txt)
export ANTHROPIC_API_KEY=$(cat ~/.secrets/anthropic.txt)
autoload edit-command-line
zle -N edit-command-line
bindkey -e
bindkey '^X^E' edit-command-line
bindkey -e
PATH="$PATH:$HOME/.cargo/bin"
if [[ -z "$TMUX" ]]; then
tmux new-session -A -s default
fi
ttyctl -f

View File

@@ -1,4 +1,4 @@
local nvim_cmp = require("cmp")
local coq = require("coq")
-- Using rustaceanvim means we shouldn't set up the LSP for Rust manually.
-- Similarly csharp_ls is unnecessary given roslyn.nvim
@@ -34,12 +34,10 @@ require("lspconfig")["yamlls"].setup({
})
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
capabilities.textDocument.completion.completionItem.snippetSupport = true
require("lspconfig")["jsonls"].setup({
capabilities = capabilities,
cmd = { "vscode-json-language-server", "--stdio" },
cmd = { "vscode-json-languageserver", "--stdio" },
settings = {
json = {
validate = { enable = true },
@@ -89,8 +87,7 @@ require("lspconfig")["lua_ls"].setup({
},
})
require("lspconfig").pyright.setup({
capabilities = capabilities,
require("lspconfig").pyright.setup(coq.lsp_ensure_capabilities({
handlers = {
["textDocument/publishDiagnostics"] = function(...)
vim.lsp.diagnostic.on_publish_diagnostics(...)
@@ -100,10 +97,9 @@ require("lspconfig").pyright.setup({
vim.api.nvim_set_current_win(window)
end,
},
})
}))
require("lspconfig").nil_ls.setup({
capabilities = capabilities,
require("lspconfig").nil_ls.setup(coq.lsp_ensure_capabilities({
settings = {
nix = {
flake = {
@@ -111,7 +107,7 @@ require("lspconfig").nil_ls.setup({
},
},
},
})
}))
function ToggleLocList()
local winid = vim.fn.getloclist(0, { winid = 0 }).winid

View File

@@ -1,45 +0,0 @@
local cmp = require("cmp")
cmp.setup({
snippet = {
-- REQUIRED - you must specify a snippet engine
expand = function(args)
vim.snippet.expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}, {
{ name = "buffer" },
}),
})
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ "/", "?" }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = "buffer" },
},
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
matching = { disallow_symbol_nonprefix_matching = false },
})

View File

@@ -2,12 +2,3 @@ output Unknown-1 scale 2
input * {
xkb_layout "gb"
}
# capture all screens to clipboard
bindsym Shift+Print exec @@GRIM@@ - | @@WL-COPY@@
# capture the specified screen area to clipboard
bindsym Shift+Alt+Print exec @@GRIM@@ -g "$(@@SLURP@@)" - | @@WL-COPY@@
# capture the focused monitor to clipboard
bindsym Shift+Control+Print exec @@GRIM@@ -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | @@WL-COPY@@

View File

@@ -12,6 +12,7 @@ with pkgs.vscode-extensions;
rust-lang.rust-analyzer
github.vscode-pull-request-github
shardulm94.trailing-spaces
nvarner.typst-lsp
arrterian.nix-env-selector
# Doesn't build on arm64
# vadimcn.vscode-lldb