summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/packages/mtxclient-git.nix61
-rw-r--r--modules/packages/nheko-git.nix95
-rw-r--r--modules/software-templates/profilers.nix10
-rwxr-xr-xmodules/users/Rory.nix124
4 files changed, 282 insertions, 8 deletions
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";
   };
 }