From b343f6bb014513e30afcaeaa3c832cb5a5811406 Mon Sep 17 00:00:00 2001 From: Patrick Stevens Date: Mon, 28 Aug 2023 19:52:17 +0100 Subject: [PATCH] Add config for Earthworm (#19) --- daily-home.nix | 115 ------------------ flake.lock | 114 +++++++++++++---- flake.nix | 66 ++++++---- hardware/earthworm.nix | 41 +++++++ .../cargo-config.toml | 0 home-manager/darwin.nix | 40 ++++++ home-manager/earthworm-config.nix | 56 +++++++++ home-manager/earthworm.nix | 29 +++++ home.nix => home-manager/home.nix | 100 +++++++++++++-- ideavimrc => home-manager/ideavimrc | 0 init.vim => home-manager/init.vim | 0 .../rider}/GlobalSettingsStorage.DotSettings | 0 {rider => home-manager/rider}/default.nix | 0 {rider => home-manager/rider}/link.sh | 0 ripgrep.conf => home-manager/ripgrep.conf | 0 ssh.config => home-manager/ssh.config | 0 .../vscode-extensions.nix | 0 .../youtube-dl.conf | 0 18 files changed, 387 insertions(+), 174 deletions(-) delete mode 100644 daily-home.nix create mode 100644 hardware/earthworm.nix rename cargo-config.toml => home-manager/cargo-config.toml (100%) create mode 100644 home-manager/darwin.nix create mode 100644 home-manager/earthworm-config.nix create mode 100644 home-manager/earthworm.nix rename home.nix => home-manager/home.nix (60%) rename ideavimrc => home-manager/ideavimrc (100%) rename init.vim => home-manager/init.vim (100%) rename {rider => home-manager/rider}/GlobalSettingsStorage.DotSettings (100%) rename {rider => home-manager/rider}/default.nix (100%) rename {rider => home-manager/rider}/link.sh (100%) rename ripgrep.conf => home-manager/ripgrep.conf (100%) rename ssh.config => home-manager/ssh.config (100%) rename vscode-extensions.nix => home-manager/vscode-extensions.nix (100%) rename youtube-dl.conf => home-manager/youtube-dl.conf (100%) diff --git a/daily-home.nix b/daily-home.nix deleted file mode 100644 index 1086345..0000000 --- a/daily-home.nix +++ /dev/null @@ -1,115 +0,0 @@ -{ - nixpkgs, - username, - dotnet, - ... -}: { - imports = [./rider]; - - rider = { - enable = true; - username = username; - dotnet = dotnet; - }; - - home.packages = [ - nixpkgs.keepassxc - # "Damaged and can't be opened" - #nixpkgs.bcompare - nixpkgs.rust-analyzer - nixpkgs.tmux - nixpkgs.wget - nixpkgs.youtube-dl - nixpkgs.yt-dlp - nixpkgs.cmake - nixpkgs.gnumake - nixpkgs.gcc - #nixpkgs.gdb - nixpkgs.lldb - nixpkgs.hledger - nixpkgs.hledger-web - dotnet - 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 - nixpkgs.grpc-tools - nixpkgs.element-desktop - nixpkgs.ihp-new - nixpkgs.direnv - nixpkgs.lnav - nixpkgs.age - nixpkgs.nodejs - nixpkgs.sqlitebrowser - nixpkgs.typst - nixpkgs.poetry - nixpkgs.woodpecker-agent - ]; - - programs.vscode = { - enable = true; - package = nixpkgs.vscode; - 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"; - "docker.dockerPath" = "${nixpkgs.docker}/bin/docker"; - "lean.leanpkgPath" = "/Users/${username}/.elan/toolchains/stable/bin/leanpkg"; - "lean.executablePath" = "/Users/${username}/.elan/toolchains/stable/bin/lean"; - "explorer.confirmDelete" = false; - "lean.memoryLimit" = 16384; - "latex-workshop.view.pdf.viewer" = "tab"; - "lean4.toolchainPath" = "/Users/${username}/.elan/toolchains/leanprover--lean4---nightly-2022-12-16"; - }; - }; - - programs.zsh = { - shellAliases = { - 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"; - grep = "${nixpkgs.ripgrep}/bin/rg"; - }; - sessionVariables = { - RIPGREP_CONFIG_PATH = "/Users/${username}/.config/ripgrep/config"; - }; - }; - - home.file.".ssh/config".source = ./ssh.config; - home.file.".cargo/config.toml".source = ./cargo-config.toml; - - home.file.".ideavimrc".source = ./ideavimrc; - - home.file.".config/youtube-dl/config".source = ./youtube-dl.conf; - home.file.".config/yt-dlp/config".source = ./youtube-dl.conf; - home.file.".config/ripgrep/config".source = ./ripgrep.conf; - programs.emacs = { - enable = true; - package = nixpkgs.emacs; - extraPackages = epkgs: []; - extraConfig = '' - (load-file (let ((coding-system-for-read 'utf-8)) - (shell-command-to-string "agda-mode locate"))) - ''; - }; -} diff --git a/flake.lock b/flake.lock index 334e68c..b052958 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "apple-silicon": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1693064156, + "narHash": "sha256-EnZntHnlPqWZIoa593zDV4GSkfbLLAL6VAreMvM6JN4=", + "owner": "tpwrules", + "repo": "nixos-apple-silicon", + "rev": "bef25f9cdfd8513a42c175b88a1cb619e3ef5951", + "type": "github" + }, + "original": { + "owner": "tpwrules", + "repo": "nixos-apple-silicon", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -30,11 +50,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1692762523, - "narHash": "sha256-O+PXo3f2fwQSkip7Sup0BUi6v292/zMScs8Ebq/euJw=", + "lastModified": 1693193430, + "narHash": "sha256-6qsW+c7CTlrOkY3PuZksNgNVrRSqUhlA/Uzq7Kb/3IY=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "c82b1bb82f4935d7b6d85d5ed8fe7cbade780c72", + "rev": "78ec4983ba820b37fc2e7c998ead39be6bec7f6d", "type": "github" }, "original": { @@ -43,16 +63,31 @@ "type": "github" } }, + "flake-compat": { + "locked": { + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" }, "locked": { - "lastModified": 1689068808, - "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", + "lastModified": 1692799911, + "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", "owner": "numtide", "repo": "flake-utils", - "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", + "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", "type": "github" }, "original": { @@ -68,11 +103,11 @@ ] }, "locked": { - "lastModified": 1692720545, - "narHash": "sha256-DQDremUH7lRxiZEIVh6C6kQusuPe1vUKtiVl29nmP0E=", + "lastModified": 1693187908, + "narHash": "sha256-cTcNpsqi1llmUFl9bmCdD0mTyfjhBrNFPhu2W12WXzA=", "owner": "nix-community", "repo": "home-manager", - "rev": "8eb8c212e50e2fd95af5849585a2eb819add0a1e", + "rev": "8bde7a651b94ba30bd0baaa9c4a08aae88cc2e92", "type": "github" }, "original": { @@ -83,27 +118,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1692684269, - "narHash": "sha256-zJk2pyF4Cuhtor0khtPlf+hfJIh22rzAUC+KU3Ob31Q=", + "lastModified": 1692913444, + "narHash": "sha256-1SvMQm2DwofNxXVtNWWtIcTh7GctEVrS/Xel/mdc6iY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9d757ec498666cc1dcc6f2be26db4fd3e1e9ab37", + "rev": "18324978d632ffc55ef1d928e81630c620f4f447", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", "repo": "nixpkgs", + "rev": "18324978d632ffc55ef1d928e81630c620f4f447", "type": "github" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1692698134, - "narHash": "sha256-YtMmZWR/dlTypOcwiZfZTMPr3tj9fwr05QTStfSyDSg=", + "lastModified": 1693087214, + "narHash": "sha256-Kn1SSqRfPpqcI1MDy82JXrPT1WI8c03TA2F0xu6kS+4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a16f7eb56e88c8985fcc6eb81dabd6cade4e425a", + "rev": "f155f0cf4ea43c4e3c8918d2d327d44777b6cad4", "type": "github" }, "original": { @@ -115,11 +150,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1692492726, - "narHash": "sha256-rld5qm2B4oRkDwcPD+yOSyTrZQdfCR6mzJGGkecjvTs=", + "lastModified": 1693097136, + "narHash": "sha256-fBZSMdBaoZ0INFbyZ5s0DOF7zDNcLsLxgkwdDh3l9Pc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5e63e8bbc46bc4fc22254da1edaf42fc7549c18a", + "rev": "9117c4e9dc117a6cd0319cca40f2349ed333669d", "type": "github" }, "original": { @@ -129,15 +164,48 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1693145325, + "narHash": "sha256-Gat9xskErH1zOcLjYMhSDBo0JTBZKfGS0xJlIRnj6Rc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "cddebdb60de376c1bdb7a4e6ee3d98355453fe56", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { + "apple-silicon": "apple-silicon", "darwin": "darwin", "emacs": "emacs", "home-manager": "home-manager", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "sops-nix": "sops-nix" } }, + "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" + } + }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -146,11 +214,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1692728678, - "narHash": "sha256-02MjG7Sb9k7eOi86CcC4GNWVOjT6gjmXFSqkRjZ8Xyk=", + "lastModified": 1693105804, + "narHash": "sha256-nlqNjW7dfucUJQqRGuG08MKPOSME8fLOCx/bd9hiEPs=", "owner": "Mic92", "repo": "sops-nix", - "rev": "1b7b3a32d65dbcd69c217d7735fdf0a6b2184f45", + "rev": "0618c8f0ed5255ad74ee08d1618841ff5af85c86", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 001bf32..a63c5f5 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,9 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + apple-silicon = { + url = "github:tpwrules/nixos-apple-silicon"; + }; }; outputs = { @@ -29,6 +32,7 @@ nixpkgs, home-manager, sops-nix, + apple-silicon, ... } @ inputs: let config = { @@ -37,30 +41,44 @@ }; in let overlays = [emacs.overlay] ++ import ./overlays.nix; + recursiveMerge = attrList: let + f = attrPath: + builtins.zipAttrsWith (n: values: + if builtins.tail values == [] + then builtins.head values + else if builtins.all builtins.isList values + then nixpkgs.lib.unique (builtins.concatLists values) + else if builtins.all builtins.isAttrs values + then f (attrPath ++ [n]) values + else builtins.last values); + in + f [] attrList; in { - homeConfigurations = let - system = "x86_64-linux"; - in let - pkgs = import nixpkgs {inherit system config overlays;}; - in let - args = { - nixpkgs = pkgs; - username = "patrick"; - dotnet = pkgs.dotnet-sdk_7; - }; - in { - patrick = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - - modules = [ - (import ./home.nix args) - # home-manager.nixosModules.home-manager { - # home-manager.useGlobalPkgs = true; - # home-manager.useUserPackages = true; - # home-manager.users.patrick = pkgs.lib.mkMerge [(import ./server-home.nix args) (import ./home.nix args)]; - # } - ]; - }; + nixosConfigurations = { + earthworm = let + system = "aarch64-linux"; + in let + pkgs = import nixpkgs {inherit system config overlays;}; + in + nixpkgs.lib.nixosSystem { + inherit system; + modules = let + args = { + nixpkgs = pkgs; + username = "patrick"; + dotnet = pkgs.dotnet-sdk_7; + }; + in [ + ./home-manager/earthworm-config.nix + apple-silicon.nixosModules.default + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.patrick = recursiveMerge [(import ./home-manager/earthworm.nix args) (import ./home-manager/home.nix args)]; + } + ]; + }; }; darwinConfigurations = let system = "aarch64-darwin"; @@ -83,7 +101,7 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.users.patrick = pkgs.lib.mkMerge [(import ./daily-home.nix args) (import ./home.nix args)]; + home-manager.users.patrick = recursiveMerge [(import ./home-manager/darwin.nix args) (import ./home-manager/home.nix args)]; } ]; }; diff --git a/hardware/earthworm.nix b/hardware/earthworm.nix new file mode 100644 index 0000000..bb62c50 --- /dev/null +++ b/hardware/earthworm.nix @@ -0,0 +1,41 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = ["usb_storage" "sdhci_pci"]; + boot.initrd.kernelModules = []; + boot.kernelModules = []; + boot.extraModulePackages = []; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/49068d2d-13e6-43b5-a740-f23db6fbd6b2"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/43ED-0FE7"; + fsType = "vfat"; + }; + + swapDevices = []; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; +} diff --git a/cargo-config.toml b/home-manager/cargo-config.toml similarity index 100% rename from cargo-config.toml rename to home-manager/cargo-config.toml diff --git a/home-manager/darwin.nix b/home-manager/darwin.nix new file mode 100644 index 0000000..36e6032 --- /dev/null +++ b/home-manager/darwin.nix @@ -0,0 +1,40 @@ +{ + nixpkgs, + username, + dotnet, + ... +}: { + imports = [./rider]; + + rider = { + enable = true; + username = username; + dotnet = dotnet; + }; + + home.packages = [ + # "Damaged and can't be opened" + #nixpkgs.bcompare + #nixpkgs.gdb + #nixpkgs.handbrake + ]; + + programs.vscode = { + 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"; + }; + }; + + programs.zsh = { + shellAliases = { + 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"; + }; + }; + + home.file.".ssh/config".source = ./ssh.config; +} diff --git a/home-manager/earthworm-config.nix b/home-manager/earthworm-config.nix new file mode 100644 index 0000000..7bda66d --- /dev/null +++ b/home-manager/earthworm-config.nix @@ -0,0 +1,56 @@ +{ + config, + pkgs, + ... +}: { + imports = [ + ../hardware/earthworm.nix + ]; + + hardware.asahi.peripheralFirmwareDirectory = ../firmware; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = false; + boot.extraModprobeConfig = '' + options hid_apple iso_layout=0 + ''; + + networking = { + hostName = "earthworm"; + networkmanager.enable = true; + }; + + time.timeZone = "Europe/London"; + + programs.sway.enable = true; + programs.zsh.enable = true; + + # TODO: work out secrets management for password, then set mutableUsers to false + users.mutableUsers = true; + users.users.patrick = { + isNormalUser = true; + extraGroups = ["wheel" "networkManager"]; + }; + + environment.systemPackages = [ + pkgs.vim + pkgs.wget + ]; + + environment.loginShellInit = '' + [[ "$(tty)" == /dev/tty1 ]] && sway + ''; + + services.openssh.enable = true; + + system.stateVersion = "23.11"; + nix.settings.experimental-features = ["nix-command" "flakes" "ca-derivations"]; + + nix.gc.automatic = true; + nix.extraOptions = '' + auto-optimise-store = true + max-jobs = auto + keep-outputs = true + keep-derivations = true + ''; +} diff --git a/home-manager/earthworm.nix b/home-manager/earthworm.nix new file mode 100644 index 0000000..058f941 --- /dev/null +++ b/home-manager/earthworm.nix @@ -0,0 +1,29 @@ +{ + nixpkgs, + username, + dotnet, + ... +}: { + home.packages = [nixpkgs.firefox-wayland]; + nixpkgs.config.firefox.speechSynthesisSupport = true; + + wayland.windowManager.sway = { + enable = true; + config = { + focus = {followMouse = false;}; + modifier = "Mod4"; + terminal = "alacritty"; + window = {border = 5;}; + }; + extraConfig = '' + output Unknown-1 scale 2 + ''; + }; + + services.swayidle = {enable = true;}; + services.cbatticon = { + lowLevelPercent = 20; + iconType = "standard"; + enable = true; + }; +} diff --git a/home.nix b/home-manager/home.nix similarity index 60% rename from home.nix rename to home-manager/home.nix index 35cee64..978fa1f 100644 --- a/home.nix +++ b/home-manager/home.nix @@ -3,17 +3,7 @@ username, dotnet, ... -}: let - username = "patrick"; -in { - imports = [./rider]; - - rider = { - enable = true; - username = username; - dotnet = dotnet; - }; - +}: { # Let Home Manager install and manage itself. programs.home-manager.enable = true; @@ -33,6 +23,9 @@ in { programs.tmux = { shell = "\${nixpkgs.zsh}/bin/zsh"; + escapeTime = 50; + mouse = false; + prefix = "C-b"; }; programs.zsh = { @@ -58,7 +51,10 @@ in { 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'"; + grep = "${nixpkgs.ripgrep}/bin/rg"; + }; + sessionVariables = { + RIPGREP_CONFIG_PATH = "/Users/${username}/.config/ripgrep/config"; }; }; @@ -111,6 +107,28 @@ in { }; }; + programs.vscode = { + enable = true; + enableExtensionUpdateCheck = true; + enableUpdateCheck = true; + package = nixpkgs.vscode; + 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"; + "docker.dockerPath" = "${nixpkgs.docker}/bin/docker"; + "explorer.confirmDelete" = false; + }; + }; + programs.neovim.enable = true; programs.neovim.plugins = with nixpkgs.vimPlugins; [ molokai @@ -141,4 +159,62 @@ in { programs.neovim.withPython3 = true; programs.neovim.extraConfig = builtins.readFile ./init.vim; + + home.packages = [ + nixpkgs.keepassxc + nixpkgs.rust-analyzer + nixpkgs.tmux + nixpkgs.wget + nixpkgs.yt-dlp + nixpkgs.cmake + nixpkgs.gnumake + nixpkgs.gcc + nixpkgs.lldb + nixpkgs.hledger + nixpkgs.hledger-web + dotnet + nixpkgs.docker + nixpkgs.jitsi-meet + 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 + nixpkgs.grpc-tools + nixpkgs.element-desktop + nixpkgs.ihp-new + nixpkgs.direnv + nixpkgs.lnav + nixpkgs.age + nixpkgs.nodejs + nixpkgs.sqlitebrowser + nixpkgs.typst + nixpkgs.poetry + nixpkgs.woodpecker-agent + nixpkgs.alacritty + ]; + + home.file.".ideavimrc".source = ./ideavimrc; + home.file.".config/yt-dlp/config".source = ./youtube-dl.conf; + home.file.".config/ripgrep/config".source = ./ripgrep.conf; + programs.emacs = { + enable = true; + package = nixpkgs.emacs; + extraPackages = epkgs: []; + extraConfig = '' + (load-file (let ((coding-system-for-read 'utf-8)) + (shell-command-to-string "agda-mode locate"))) + ''; + }; + + home.file.".cargo/config.toml".source = ./cargo-config.toml; } diff --git a/ideavimrc b/home-manager/ideavimrc similarity index 100% rename from ideavimrc rename to home-manager/ideavimrc diff --git a/init.vim b/home-manager/init.vim similarity index 100% rename from init.vim rename to home-manager/init.vim diff --git a/rider/GlobalSettingsStorage.DotSettings b/home-manager/rider/GlobalSettingsStorage.DotSettings similarity index 100% rename from rider/GlobalSettingsStorage.DotSettings rename to home-manager/rider/GlobalSettingsStorage.DotSettings diff --git a/rider/default.nix b/home-manager/rider/default.nix similarity index 100% rename from rider/default.nix rename to home-manager/rider/default.nix diff --git a/rider/link.sh b/home-manager/rider/link.sh similarity index 100% rename from rider/link.sh rename to home-manager/rider/link.sh diff --git a/ripgrep.conf b/home-manager/ripgrep.conf similarity index 100% rename from ripgrep.conf rename to home-manager/ripgrep.conf diff --git a/ssh.config b/home-manager/ssh.config similarity index 100% rename from ssh.config rename to home-manager/ssh.config diff --git a/vscode-extensions.nix b/home-manager/vscode-extensions.nix similarity index 100% rename from vscode-extensions.nix rename to home-manager/vscode-extensions.nix diff --git a/youtube-dl.conf b/home-manager/youtube-dl.conf similarity index 100% rename from youtube-dl.conf rename to home-manager/youtube-dl.conf