From 0e85519fc00465567774a47bd11a0b7aa4e05a47 Mon Sep 17 00:00:00 2001 From: SeanOMik Date: Tue, 4 Oct 2022 15:13:47 -0400 Subject: [PATCH] Update dotfiles --- .gitignore | 4 +- common.nix | 9 +- home/seanomik/default.nix | 21 +++- home/vscode.nix | 196 +++++++++++++++++++++++++++++++ home/vscodium.nemo_action | 12 ++ modules/applications/default.nix | 8 +- modules/applications/discord.nix | 4 +- modules/applications/wine.nix | 7 ++ modules/development/default.nix | 8 ++ modules/pkgs/clangd.nix | 44 +++++++ modules/pkgs/lldb-mi.nix | 44 +++++++ vscodium.nemo_action | 12 ++ 12 files changed, 357 insertions(+), 12 deletions(-) create mode 100755 home/vscode.nix create mode 100644 home/vscodium.nemo_action create mode 100755 modules/applications/wine.nix create mode 100755 modules/pkgs/clangd.nix create mode 100755 modules/pkgs/lldb-mi.nix create mode 100644 vscodium.nemo_action diff --git a/.gitignore b/.gitignore index 609fc73..d0613a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -sensitives +sensitives/* +configuration.nix +hardware-configuration.nix diff --git a/common.nix b/common.nix index f68e7d6..07fa50f 100755 --- a/common.nix +++ b/common.nix @@ -1,11 +1,16 @@ { pkgs, home-manager, unstable, ... }: { system.stateVersion = "22.05"; - time.timeZone = "America/New_York"; + + time = { + timeZone = "America/New_York"; + + hardwareClockInLocalTime = true; + }; + i18n.defaultLocale = "en_US.UTF-8"; nix.extraOptions = '' experimental-features = nix-command flakes ''; - } diff --git a/home/seanomik/default.nix b/home/seanomik/default.nix index a195f8c..9ec3715 100755 --- a/home/seanomik/default.nix +++ b/home/seanomik/default.nix @@ -29,36 +29,45 @@ ../programs ../emulators.nix + + ../vscode.nix ]; # Add open-in-vscode button to nemo home = { - file.".local/share/nemo/actions/vscode.nemo_action".source = pkgs.fetchurl { - url = https://raw.githubusercontent.com/mhsattarian/nemo-open-in-vscode/master/vscode.nemo_action; - sha256 = "db3bd14ae08ae5e1a8774141ea16dae72c4ce50339443266702010c429d7fe36"; - }; + file.".local/share/nemo/actions/vscodium.nemo_action".source = ../vscodium.nemo_action; }; +# home.programs.git = { +# enable = true; +# userName = "SeanOMik"; +# userEmail = "seanomik@gmail.com"; +# }; + home.packages = with pkgs; [ (callPackage ../../modules/applications/discord.nix { }) vlc lutris - polymc + unstable.polymc + minecraft zoom-us mullvad-vpn flameshot obs-studio - vscode + #vscode + qbittorrent okular libreoffice-fresh-unwrapped betterdiscordctl gimp + blender slack google-chrome (callPackage ../../modules/pkgs/upwork.nix { inherit runCommandLocal; }) (callPackage ../../modules/pkgs/jellyfin-media-player.nix { inherit runCommandLocal; }) jetbrains.idea-community + renderdoc ]; }; } diff --git a/home/vscode.nix b/home/vscode.nix new file mode 100755 index 0000000..ec62913 --- /dev/null +++ b/home/vscode.nix @@ -0,0 +1,196 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + package = pkgs.vscodium; +# userSettings = { +# "workbench.colorTheme" = "Material Theme Ocean High Contrast"; +# "tabnine.experimentalAutoImports" = "true"; +# }; + extensions = with pkgs.vscode-extensions; [ + llvm-vs-code-extensions.vscode-clangd + ms-dotnettools.csharp + xaver.clang-format + vadimcn.vscode-lldb + streetsidesoftware.code-spell-checker + serayuzgur.crates + bungcip.better-toml + ms-azuretools.vscode-docker + mikestead.dotenv + eamodio.gitlens + golang.go + james-yu.latex-workshop + ms-vsliveshare.vsliveshare + yzhang.markdown-all-in-one + pkief.material-icon-theme + zhuangtongfa.material-theme + bbenoist.nix + arrterian.nix-env-selector + christian-kohler.path-intellisense + ms-python.python + ms-python.vscode-pylance + matklad.rust-analyzer + gruntfuggly.todo-tree + tabnine.tabnine-vscode + github.github-vscode-theme + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "github-vscode-theme"; + publisher = "GitHub"; + version = "6.3.2"; + sha256 = "sha256-CbFZsoRiiwSWL7zJdnBcfrxuhE7E9Au2AlQjqYXW+Nc="; + } + { + name = "vsc-material-theme"; + publisher = "Equinusocio"; + version = "33.5.0"; + sha256 = "sha256-Lls979mJuKE0+oIPAuDyl60dRzJM3WsqlShKeHpFKd8="; + } + { + name = "clang-tidy"; + publisher = "notskm"; + version = "0.5.1"; + sha256 = "sha256-neAvG8bk8yzpbuSzvVVi8Z3lCr29FBncXx3Sv/KChHw="; + } + { + name = "vscode-yaml"; + publisher = "redhat"; + version = "1.10.20220805"; + sha256 = "sha256-BZHU9FrFqsO09fllMF3+vszrGnPrfQmhVgpcNQhPv/w="; + } + { + name = "vscode-xml"; + publisher = "redhat"; + version = "0.21.2022091304"; + sha256 = "sha256-BwfCpxGHmbRCUz5Uj6MX/X+Rh/uRTBsMw93nItcrosw="; + } + { + name = "vscode-thunder-client"; + publisher = "rangav"; + version = "1.18.7"; + sha256 = "sha256-rXYWBdabh0vm5VaE28OEsQWPzHCcS8r9X3eqQ7rHKtU="; + } + { + name = "shader"; + publisher = "slevesque"; + version = "1.1.5"; + sha256 = "sha256-Pf37FeQMNlv74f7LMz9+CKscF6UjTZ7ZpcaZFKtX2ZM="; + } + { + name = "selectline-statusbar"; + publisher = "tomoki1207"; + version = "0.0.2"; + sha256 = "sha256-R+E/OPpGNY55Z+tZ1tJDEvG30O2shT/xFlD3jafRVUk="; + } + { + name = "rust-playground"; + publisher = "ConradLudgate"; + version = "0.2.2"; + sha256 = "sha256-xIM31ORU7FoXsaylm1awkkVTCQPkD9Uegmb9iZ2UHMA="; + } + { + name = "mesonbuild"; + publisher = "mesonbuild"; + version = "1.7.0"; + sha256 = "sha256-pHHPHF+y5tu0IG6hbdM1LJLlDia0cnRLLWDBBP81TnU="; + } + { + name = "makefile-tools"; + publisher = "ms-vscode"; + version = "0.6.0"; + sha256 = "sha256-Sd1bLdRBdLVK8y09wL/CJF+/kThPTH8MHw2mFQt+6h8="; + } + { + name = "vscode-typescript-next"; + publisher = "ms-vscode"; + version = "4.9.20220913"; + sha256 = "sha256-P0YOhldaVSJK1qoblZMTK2cTzvjF7XjwEzlejPMH/5A="; + } + { + name = "java-generate-setters-getters"; + publisher = "sohibe"; + version = "7.4.0"; + sha256 = "sha256-byNcC0wXazHnkQgXMAISjBExsvNblhb9y6abOLPXPt0="; + } + { + name = "vscodeintellicode"; + publisher = "VisualStudioExptTeam"; + version = "1.2.25"; + sha256 = "sha256-MpOZQsenSGBgPpVTlRGvXFgZqfAGwuDzsys8tm7d/FE="; + } + { + name = "vscode-gradle-extension-pack"; + publisher = "richardwillis"; + version = "0.0.4"; + sha256 = "sha256-52diU1bNdddXEMzEUhagbbzxkCosgZkK5Pe3DFVJA40="; + } + { + name = "glean"; + publisher = "wix"; + version = "5.2.2"; + sha256 = "sha256-JkD5q2iSu4zPmRL3Hpv8VdI3snbNL7U0XttreGGrLH4="; + } + { + name = "gdb-debug"; + publisher = "DamianKoper"; + version = "1.0.7"; + sha256 = "sha256-mwSn5OWKjLOU7zljKAlzuub6TuOtPyKWTCl+05ZhUTY="; + } + { + name = "fontsize-shortcuts"; + publisher = "fosshaas"; + version = "1.5.0"; + sha256 = "sha256-E07foou2b1JZPyYB5Lh1Y/EbJh4Xix0rL50FELnKFTw="; + } + { + name = "vscode-java-pack"; + publisher = "vscjava"; + version = "0.25.1"; + sha256 = "sha256-hUE6k7R57TzizYYMhygAfiW+s0jCNu8hdSjHrm1kPV0="; + } + { + name = "doxdocgen"; + publisher = "cschlosser"; + version = "1.4.0"; + sha256 = "sha256-InEfF1X7AgtsV47h8WWq5DZh6k/wxYhl2r/pLZz9JbU="; + } + { + name = "cpptools-extension-pack"; + publisher = "ms-vscode"; + version = "1.3.0"; + sha256 = "sha256-rHST7CYCVins3fqXC+FYiS5Xgcjmi7QW7M4yFrUR04U="; + } + { + name = "better-comments"; + publisher = "aaron-bond"; + version = "3.0.2"; + sha256 = "sha256-hQmA8PWjf2Nd60v5EAuqqD8LIEu7slrNs8luc3ePgZc="; + } + { + name = "cargo"; + publisher = "panicbit"; + version = "0.2.3"; + sha256 = "sha256-B0oLZE8wtygTaUX9/qOBg9lJAjUUg2i7B2rfSWJerEU="; + } + { + name = "cmake"; + publisher = "twxs"; + version = "0.0.17"; + sha256 = "sha256-CFiva1AO/oHpszbpd7lLtDzbv1Yi55yQOQPP/kCTH4Y="; + } + { + name = "cmake-tools"; + publisher = "ms-vscode"; + version = "1.13.4"; + sha256 = "sha256-zLXHre7VVS/yruo1iELTrnQf3A50OWK1gHP7eTc1rPw="; + } + { + name = "dart-code"; + publisher = "dart-code"; + version = "3.48.3"; + sha256 = "sha256-V+5QEl0M7RdeGO9jkBi/li2ggIZDu2hO2732m4YafdI="; + } + ]; + }; + +} diff --git a/home/vscodium.nemo_action b/home/vscodium.nemo_action new file mode 100644 index 0000000..eb0c4a8 --- /dev/null +++ b/home/vscodium.nemo_action @@ -0,0 +1,12 @@ +[Nemo Action] + +Active=true +Name=Open in VSCodium +Comment=Opens current folder in VSCodium +Exec=codium %P +Icon-Name=vscodium +Selection=none +Extensions=any; +Quote=double +Dependencies=codium; + diff --git a/modules/applications/default.nix b/modules/applications/default.nix index 75cbae2..571ea1e 100755 --- a/modules/applications/default.nix +++ b/modules/applications/default.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ pkgs, config, ... }: { imports = [ ./firefox.nix @@ -7,10 +7,16 @@ ./yubikey.nix ./java.nix ./docker.nix + ./wine.nix ]; environment.systemPackages = with pkgs; [ + openssl cacert appimage-run ]; + + environment.sessionVariables = { + SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"; + }; } diff --git a/modules/applications/discord.nix b/modules/applications/discord.nix index 1a27086..8cdfc21 100755 --- a/modules/applications/discord.nix +++ b/modules/applications/discord.nix @@ -1,8 +1,8 @@ { pkgs, ... }: ((pkgs.discord.overrideAttrs (_: { src = builtins.fetchTarball { - url = "https://dl.discordapp.net/apps/linux/0.0.19/discord-0.0.19.tar.gz"; - sha256 = "1kwqn1xr96kvrlbjd14m304g2finc5f5ljvnklg6fs5k4avrvmn4"; + url = "https://dl.discordapp.net/apps/linux/0.0.20/discord-0.0.20.tar.gz"; + sha256 = "sha256:0qaczvp79b4gzzafgc5ynp6h4nd2ppvndmj6pcs1zys3c0hrabpv"; }; })).override { nss = pkgs.nss_latest; diff --git a/modules/applications/wine.nix b/modules/applications/wine.nix new file mode 100755 index 0000000..98be5de --- /dev/null +++ b/modules/applications/wine.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + wineWowPackages.stable + winetricks + ]; +} diff --git a/modules/development/default.nix b/modules/development/default.nix index 78b5c52..15463e6 100755 --- a/modules/development/default.nix +++ b/modules/development/default.nix @@ -1,5 +1,13 @@ {pkgs, ... }: { + environment.systemPackages = with pkgs; [ + gdb + lldb + clang-tools + + (callPackage ../pkgs/lldb-mi.nix { }) + ]; + imports = [ ./c-cpp.nix ./javascript.nix diff --git a/modules/pkgs/clangd.nix b/modules/pkgs/clangd.nix new file mode 100755 index 0000000..5459795 --- /dev/null +++ b/modules/pkgs/clangd.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, lldb +, clang +, llvm +, pkgs +}: + +let + stdenv = pkgs.clangStdenv; +# stdenv = pkgs.llvmPackages_5.stdenv; +in stdenv.mkDerivation rec { + version = "2388bd74133bc21eac59b2e2bf97f2a30770a315"; + pname = "lldb-mi"; + + src = fetchFromGitHub { + owner = "lldb-tools"; + repo = pname; + rev = version; + sha256 = "sha256-qBumOWNYZvoJNgqb1GMlxKZO0KKdq2cH/L7D8tpu56k="; + }; + + nativeBuildInputs = [ cmake pkgs.lldb_9 clang llvm ]; + +# stdenv = pkgs.clangStdenv; + + installPhase = '' + runHook preInstall + + cmake --build . --target install --config Release + + runHook postInstall + ''; + + meta = with lib; { + description = "LLDB's machine interface driver."; + homepage = "https://github.com/lldb-tools/lldb-mi"; + license = licenses.llvm-exception; + platforms = platforms.unix; + maintainers = with maintainers; [ seanomik ]; + }; +} diff --git a/modules/pkgs/lldb-mi.nix b/modules/pkgs/lldb-mi.nix new file mode 100755 index 0000000..5459795 --- /dev/null +++ b/modules/pkgs/lldb-mi.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, lldb +, clang +, llvm +, pkgs +}: + +let + stdenv = pkgs.clangStdenv; +# stdenv = pkgs.llvmPackages_5.stdenv; +in stdenv.mkDerivation rec { + version = "2388bd74133bc21eac59b2e2bf97f2a30770a315"; + pname = "lldb-mi"; + + src = fetchFromGitHub { + owner = "lldb-tools"; + repo = pname; + rev = version; + sha256 = "sha256-qBumOWNYZvoJNgqb1GMlxKZO0KKdq2cH/L7D8tpu56k="; + }; + + nativeBuildInputs = [ cmake pkgs.lldb_9 clang llvm ]; + +# stdenv = pkgs.clangStdenv; + + installPhase = '' + runHook preInstall + + cmake --build . --target install --config Release + + runHook postInstall + ''; + + meta = with lib; { + description = "LLDB's machine interface driver."; + homepage = "https://github.com/lldb-tools/lldb-mi"; + license = licenses.llvm-exception; + platforms = platforms.unix; + maintainers = with maintainers; [ seanomik ]; + }; +} diff --git a/vscodium.nemo_action b/vscodium.nemo_action new file mode 100644 index 0000000..eb0c4a8 --- /dev/null +++ b/vscodium.nemo_action @@ -0,0 +1,12 @@ +[Nemo Action] + +Active=true +Name=Open in VSCodium +Comment=Opens current folder in VSCodium +Exec=codium %P +Icon-Name=vscodium +Selection=none +Extensions=any; +Quote=double +Dependencies=codium; +