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";
};
}
|