From d18e2cfc58735981cd3d2bc45a022c9bc7abd60f Mon Sep 17 00:00:00 2001 From: "Emma (Rory&)" Date: Sun, 15 Oct 2023 01:15:22 +0000 Subject: Add new stuff from WSL --- modules/packages/mtxclient-git.nix | 61 +++++++++++++++ modules/packages/nheko-git.nix | 95 +++++++++++++++++++++++ modules/software-templates/profilers.nix | 10 +++ modules/users/Rory.nix | 124 +++++++++++++++++++++++++++++-- 4 files changed, 282 insertions(+), 8 deletions(-) create mode 100644 modules/packages/mtxclient-git.nix create mode 100644 modules/packages/nheko-git.nix create mode 100644 modules/software-templates/profilers.nix (limited to 'modules') diff --git a/modules/packages/mtxclient-git.nix b/modules/packages/mtxclient-git.nix new file mode 100644 index 0000000..d2a9d6a --- /dev/null +++ b/modules/packages/mtxclient-git.nix @@ -0,0 +1,61 @@ +# This file was copied from NUR: https://github.com/nix-community/nur-combined/blob/master/repos/deeunderscore/pkgs/mtxclient/default.nix +# This file is a modified version of nixpkgs/pkgs/development/libraries/mtxclient/default.nix (copied at 5c4b9be) + +{ lib, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, openssl +, olm +, spdlog +, nlohmann_json +, libevent +, curl +, coeurl +, re2 +, mtxclientSrc +}: +stdenv.mkDerivation { + pname = "mtxclient"; + version = "git+master"; + src = mtxclientSrc; + + cmakeFlags = [ + # Network requiring tests can't be disabled individually: + # https://github.com/Nheko-Reborn/mtxclient/issues/22 + "-DBUILD_LIB_TESTS=OFF" + "-DBUILD_LIB_EXAMPLES=OFF" + ]; + + postPatch = '' + # See https://github.com/gabime/spdlog/issues/1897 + sed -i '1a add_compile_definitions(SPDLOG_FMT_EXTERNAL)' CMakeLists.txt + ''; + + + nativeBuildInputs = [ + cmake + pkg-config + ]; + buildInputs = [ + spdlog + nlohmann_json + openssl + olm + libevent + curl + coeurl + re2 + ]; + + meta = with lib; { + description = "Client API library for Matrix, built on top of Boost.Asio"; + homepage = "https://github.com/Nheko-Reborn/mtxclient"; + license = licenses.mit; + maintainers = with maintainers; [ fpletz pstn ]; + platforms = platforms.all; + # Should be fixable if a higher clang version is used, see: + # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177 + broken = stdenv.targetPlatform.isDarwin; + }; +} diff --git a/modules/packages/nheko-git.nix b/modules/packages/nheko-git.nix new file mode 100644 index 0000000..dac42c9 --- /dev/null +++ b/modules/packages/nheko-git.nix @@ -0,0 +1,95 @@ +# This file was copied from NUR: https://github.com/nix-community/nur-combined/blob/master/repos/deeunderscore/pkgs/nheko/default.nix#L93 +# This file is a modified version of nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix (copied at 2e896fce) + +{ lib +, stdenv +, fetchFromGitHub +, cmake +#, wrapQtAppsHook +, asciidoctor +, qt6 +, qt6Packages +#, qtmultimedia +#, qtimageformats +#, qtkeychain +, cmark +, coeurl +, curl +, libevent +, lmdb +, lmdbxx +#, mtxclient +, nlohmann_json +, olm +, pkg-config +, re2 +, spdlog +, httplib +, voipSupport ? true +, gst_all_1 +, libnice +, pkgs +, nhekoSrc +, mtxclientSrc +}: + +stdenv.mkDerivation { + pname = "nheko"; + version = "git+master"; + src = nhekoSrc; + + nativeBuildInputs = [ + lmdbxx + cmake + pkg-config + asciidoctor + qt6.wrapQtAppsHook + ]; + + buildInputs = [ + qt6.qtbase + qt6.qttools + qt6.qtsvg + qt6.qtmultimedia + qt6.qtimageformats + qt6Packages.qtkeychain + cmark + coeurl + curl + libevent + lmdb + (pkgs.callPackage ./mtxclient-git.nix { inherit mtxclientSrc; }) + nlohmann_json + olm + re2 + spdlog + httplib + ] ++ lib.optionals voipSupport (with gst_all_1; [ + gstreamer + gst-plugins-base + (gst-plugins-good.override { qt5Support = true; }) + gst-plugins-bad + libnice + ]); + + LC_ALL = lib.optionalString (!stdenv.isDarwin) "C.UTF-8"; + + cmakeFlags = [ + "-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389 + "-DCMAKE_BUILD_TYPE=Release" + "-DBUILD_SHARED_LIBS=OFF" + ]; + + + preFixup = lib.optionalString voipSupport '' + # add gstreamer plugins path to the wrapper + qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0") + ''; + + meta = with lib; { + description = "Desktop client for the Matrix protocol"; + homepage = "https://github.com/Nheko-Reborn/nheko"; + platforms = platforms.all; + license = licenses.gpl3Plus; + }; +} diff --git a/modules/software-templates/profilers.nix b/modules/software-templates/profilers.nix new file mode 100644 index 0000000..ce55c4e --- /dev/null +++ b/modules/software-templates/profilers.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, home-manager, ... }: + +{ + environment.systemPackages = with pkgs; [ + kcachegrind + linuxKernel.packages.linux_5_15.perf + hotspot + valgrind + ]; +} \ No newline at end of file diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix index daafb15..25ab725 100755 --- a/modules/users/Rory.nix +++ b/modules/users/Rory.nix @@ -1,4 +1,4 @@ -{ config, pkgs, home-manager, ... }: +{ config, lib, pkgs, home-manager, ... }: { @@ -19,17 +19,125 @@ }; home-manager.users.Rory = { - programs.git = { - enable = true; - userName = "TheArcaneBrony"; - userEmail = "myrainbowdash949@gmail.com"; - extraConfig = { - safe = { - directory = "/"; + #services.gnome-keyring.enable = true; + + programs = { + git = { + enable = true; + userName = "TheArcaneBrony"; + userEmail = "myrainbowdash949@gmail.com"; + extraConfig = { + safe = { + directory = "/"; + }; }; }; + zsh = { + enable = true; + enableAutosuggestions = true; + enableVteIntegration = true; + autocd = true; + + initExtra = '' + alias ls='lsd -lA --color=always --icon=always' + ''; + oh-my-zsh = { + enable = true; + plugins = [ + "git" + "sudo" + "zsh-syntax-highlighting" + "zsh-autosuggetsions" + ]; + }; + #plugins = [ + # "git" + # "zsh-syntax-highlighting" + # "zsh-autosuggestions" + #]; + + plugins = [ + { + name = "powerlevel10k"; + src = pkgs.zsh-powerlevel10k; + file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + } + #{ + # name = "powerlevel10k-config"; + # src = lib.cleanSource ./p10k-config; + # file = "p10k.zsh"; + #} + ]; + + + + localVariables = { + POWERLEVEL9K_LEFT_PROMPT_ELEMENTS = [ + "os_icon" + "dir" + "vcs" + "prompt_char" + ]; + POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS = [ + "status" + "command_execution_time" + "background_jobs" + "direnv" + "virtualenv" + "pyenv" + "nodeenv" + "context" + "nix_shell" + "vi_mode" + "load" + "disk_usage" + "ram" + ]; + POWERLEVEL9K_MODE = "nerdfont-complete"; + POWERLEVEL9K_ICON_PADDING = "none"; + POWERLEVEL9K_PROMPT_ADD_NEWLINE = "false"; + POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR = "\uE0B1"; + POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR = "\uE0B3"; + POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR = "\uE0B0"; + POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR = "\uE0B2"; + POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL = "\uE0B0"; + POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL = "\uE0B2"; + POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE = true; + }; + }; + neovim = { + defaultEditor = true; + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + coc = { + enable = true; + + }; + }; + }; + + # keepassxc, maybe? + systemd.user.services.keepassxc = { + Unit = { + Description = "KeePassXC password manager"; + #After = [ "graphical-session-pre.target" ]; + PartOf = [ "default.target" ]; + }; + + Install = { WantedBy = [ "default.target" ]; }; + + Service = { ExecStart = "${pkgs.keepassxc}/bin/keepassxc ~/.secrets.kdbx"; }; }; + programs.neovim.plugins = with pkgs.vimPlugins; [ + pkgs.vimPlugins.nvim-tree-lua + { + plugin = pkgs.vimPlugins.vim-startify; + config = "let g:startify_change_to_vcs_root = 0"; + } + ]; + home.stateVersion = "22.11"; }; } -- cgit 1.4.1