diff options
Diffstat (limited to 'home-manager/homeModules')
36 files changed, 0 insertions, 2884 deletions
diff --git a/home-manager/homeModules/alacritty.nix b/home-manager/homeModules/alacritty.nix deleted file mode 100644 index 0f9d5ba..0000000 --- a/home-manager/homeModules/alacritty.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - alacritty.enable = lib.mkEnableOption "enable alacritty"; - }; - - config = lib.mkIf config.alacritty.enable { - programs.alacritty = { - enable = true; - settings = { - cursor = { - style = "Beam"; - thickness = 0.25; - }; - window = { - padding = { - x = 10; - }; - }; - }; - }; - }; -} - - - diff --git a/home-manager/homeModules/attachments/basecat.aseprite b/home-manager/homeModules/attachments/basecat.aseprite Binary files differdeleted file mode 100644 index 16caffd..0000000 --- a/home-manager/homeModules/attachments/basecat.aseprite +++ /dev/null diff --git a/home-manager/homeModules/attachments/basecat.png b/home-manager/homeModules/attachments/basecat.png Binary files differdeleted file mode 100644 index d202c64..0000000 --- a/home-manager/homeModules/attachments/basecat.png +++ /dev/null diff --git a/home-manager/homeModules/attachments/cat.png b/home-manager/homeModules/attachments/cat.png Binary files differdeleted file mode 100644 index 5657a78..0000000 --- a/home-manager/homeModules/attachments/cat.png +++ /dev/null diff --git a/home-manager/homeModules/attachments/hypr-scripts/bitwarden-float.sh b/home-manager/homeModules/attachments/hypr-scripts/bitwarden-float.sh deleted file mode 100755 index 7edd5f2..0000000 --- a/home-manager/homeModules/attachments/hypr-scripts/bitwarden-float.sh +++ /dev/null @@ -1,21 +0,0 @@ -windowtitlev2() { - IFS=',' read -r -a args <<< "$1" - args[0]="${args[0]#*>>}" - - if [[ ${args[1]} =~ "Extension: (Bitwarden Password Manager)" ]]; then - hyprctl --batch "\ - dispatch setfloating address:0x${args[0]}; \ - dispatch resizewindowpixel exact 20% 50%, address:0x${args[0]}; \ - dispatch centerwindow; \ - " - fi -} - -handle() { - case $1 in - windowtitlev2\>*) windowtitlev2 "$1" ;; - esac -} - -socat -U - UNIX-CONNECT:"/$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" \ - | while read -r line; do handle "$line"; done diff --git a/home-manager/homeModules/attachments/hypr-scripts/hshot.sh b/home-manager/homeModules/attachments/hypr-scripts/hshot.sh deleted file mode 100755 index 0d02b9c..0000000 --- a/home-manager/homeModules/attachments/hypr-scripts/hshot.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -declare -a cmd - -usage() { - echo -e "-m | monitor\n-s | slurp\n-w | active window\n-c | add copy" -} - -monitor() { - cmd=("grim -o \"\$(hyprctl -j monitors | jq -r '.[] | select(.focused) | .name')\"") -} - -slurp() { - cmd=("grim -g \"\$(slurp)\"") -} - -window() { - cmd=("grim -g \"\$(hyprctl activewindow -j | jq -j '\"\(.at | .[0]),\(.at | .[1]) \(.size | .[0])x\(.size | .[1])\"')\"") -} - -copy() { - if [[ -n ${cmd[0]} ]]; then - cmd+=("- | wl-copy") - else - usage - fi -} - -while getopts ":mswc" opt; do - case ${opt} in - m) monitor;; - s) slurp;; - w) window;; - c) copy;; - *) usage - exit 1;; - esac -done - -if [[ -z $1 ]]; then - usage - exit 1 -fi - -bash -c "${cmd[*]}" diff --git a/home-manager/homeModules/attachments/hypr-scripts/switch-sink.py b/home-manager/homeModules/attachments/hypr-scripts/switch-sink.py deleted file mode 100755 index aa7eec1..0000000 --- a/home-manager/homeModules/attachments/hypr-scripts/switch-sink.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python3 - -import subprocess - -status = subprocess.run(["wpctl", "status"], stdout=subprocess.PIPE).stdout.decode('utf-8') -status_lines = status.split('\n') -sink_line = 0 -sinks = [] -sink_names = [] - -# Get sink line -for i in range(len(status_lines) - 1): - if 'Sinks:' in status_lines[i]: - sink_line = i + 1 - break - -# Find unused sinks -for line in status_lines[sink_line:]: - if line == ' │ ': - break - line = line.split('.') - nums = line[0] - name = line[1] - end_name = line[1].index('[') - sink = nums[2:].strip() - if nums[4] == '*': - continue - - sinks.append(sink) - sink_names.append(name[:end_name].strip()) - -if (len(sinks) == 0): - subprocess.run(["notify-send", "Pipewire sink", "No sinks to switch to"]) - exit(0) - -selected_sink = subprocess.run(["rofi", "-dmenu"], input="\n".join(sink_names), capture_output=True, text=True).stdout[:-1] - -if len(selected_sink) == 0: - exit(0) - -try: - next_sink = sink_names.index(selected_sink) -except Exception: - subprocess.run(["notify-send", "Pipewire sink", "Sink not found"]) - exit(1) - -subprocess.run(["wpctl", "set-default", sinks[next_sink]]) - -subprocess.run(["notify-send", "Pipewire sink", "Selected " + selected_sink]) diff --git a/home-manager/homeModules/attachments/hypr-scripts/toggle-tg.sh b/home-manager/homeModules/attachments/hypr-scripts/toggle-tg.sh deleted file mode 100755 index 44ed52d..0000000 --- a/home-manager/homeModules/attachments/hypr-scripts/toggle-tg.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -TG_CLASS=org.telegram.desktop - -tg_workspace=$(hyprctl clients -j | jq -e ".[] | select((.class | contains(\"${TG_CLASS}\"))) | .workspace.id") -if [[ -z $tg_workspace ]]; then - telegram-desktop -elif [[ $tg_workspace -eq $(hyprctl activeworkspace -j | jq -e '.id') ]]; then - hyprctl dispatch pin class:$TG_CLASS - hyprctl dispatch movetoworkspacesilent special:magic,class:$TG_CLASS -else - hyprctl dispatch movetoworkspacesilent +0,class:$TG_CLASS - hyprctl dispatch pin class:$TG_CLASS - hyprctl dispatch focuswindow -fi diff --git a/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh b/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh deleted file mode 100755 index 8775f39..0000000 --- a/home-manager/homeModules/attachments/hypr-scripts/toggle-vpn.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh - -ROFI_CMD="rofi -dmenu -theme-str listview{enabled:false;} -p" -LOCAL_STORAGE=~/.local/share/toggle -TMP_PATH=/tmp/vpn-status -V2RAYA_URL="http://localhost:2017" - -DBUS_INTERFACE="com.vpn_status" -DBUS_MEMBER="StatusChanged" - -set_token() { - login=$(echo "" | $ROFI_CMD "Enter login > ") - password=$(echo "" | $ROFI_CMD "Enter password > " -theme-str 'entry {enabled: false;}') - response=$(curl -s -X POST \ - "${V2RAYA_URL}/api/login" \ - -d "{\"username\": \"${login}\", \"password\": \"${password}\"}") - - code=$(echo $response | jq -r ".code") - echo "${response}" | jq ".data.token" -r > "${LOCAL_STORAGE}/token" -} - -get_status() { - token=$1 - response=$(curl -s -X GET \ - "${V2RAYA_URL}/api/touch" \ - -H "Authorization: ${token}") - echo $response | jq ".data.running" -r -} - -toggle() { - token=$1 - method=$2 - response=$(curl -s -X ${method} \ - "${V2RAYA_URL}/api/v2ray" \ - -H "Authorization: ${token}") - code=$(echo $response | jq ".code" -r) - echo $response | jq ".data.running" -r -} - -check_status() { - case $(cat $TMP_PATH) in - true) - output='{"text": ""}' - ;; - *) - output='{"text": ""}' - ;; - esac - echo $output | jq --unbuffered --compact-output -} - - -if [[ ! -d "${LOCAL_STORAGE}" ]]; then - mkdir "${LOCAL_STORAGE}" -fi - -if [[ ! -e "${LOCAL_STORAGE}/token" ]]; then - touch "${LOCAL_STORAGE}/token" -fi - -TOKEN=$(cat "${LOCAL_STORAGE}/token") -if [[ -z "${TOKEN}" ]]; then - set_token - TOKEN=$(cat "${LOCAL_STORAGE}/token") -fi - -STATUS=$(get_status $TOKEN) - -if [[ $1 == "waybar" ]]; then - echo $STATUS > $TMP_PATH - check_status - - dbus-monitor --profile "interface='${DBUS_INTERFACE}',member='${DBUS_MEMBER}'" | - while read -r line; do - check_status - done -else - if [[ $STATUS == "true" ]]; then - NEW_STATUS=$(toggle $TOKEN DELETE) - else - NEW_STATUS=$(toggle $TOKEN POST) - fi - - if [[ $NEW_STATUS == "null" ]]; then - set_token - exit 0 - fi - - echo $NEW_STATUS > $TMP_PATH - dbus-send --type=signal / "${DBUS_INTERFACE}.${DBUS_MEMBER}" - - notify-send v2rayA "running: ${NEW_STATUS}" -fi diff --git a/home-manager/homeModules/attachments/rofi-theme.rasi b/home-manager/homeModules/attachments/rofi-theme.rasi deleted file mode 100644 index bba4f6c..0000000 --- a/home-manager/homeModules/attachments/rofi-theme.rasi +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * SNITCHED FROM: - * User : LR-Tech - * Theme Repo : https://github.com/lr-tech/rofi-themes-collection - *******************************************************************************/ - -window { - location: center; - width: 480; - y-offset: -160; - border-radius: 7px; - - background-color: @bg0; -} - -inputbar { - spacing: 8px; - padding: 8px; - - background-color: @bg1; -} - -prompt, entry, element-icon, element-text { - vertical-align: 0.5; -} - -prompt { - text-color: @accent-color; -} - -textbox { - padding: 8px; - background-color: @bg1; -} - -listview { - padding: 4px 0; - lines: 8; - columns: 1; - - fixed-height: false; -} - -element { - padding: 8px; - spacing: 8px; -} - -element normal normal { - text-color: @fg0; -} - -element normal urgent { - text-color: @urgent-color; -} - -element normal active { - text-color: @accent-color; -} - -element selected { - text-color: @bg0; -} - -element selected normal, element selected active { - background-color: @accent-color; -} - -element selected urgent { - background-color: @urgent-color; -} - -element-icon { - size: 0.8em; -} - -element-text { - text-color: inherit; -} diff --git a/home-manager/homeModules/attachments/waybar-style.css b/home-manager/homeModules/attachments/waybar-style.css deleted file mode 100644 index 214c779..0000000 --- a/home-manager/homeModules/attachments/waybar-style.css +++ /dev/null @@ -1,30 +0,0 @@ -* { - font-family: Material Design Icons, Rubik Medium; - font-size: 14px; - color: @base05; -} - -window#waybar { - background: @base01; - border-bottom: 3px solid @base02; -} - -#battery { - margin-right: 6px; -} - -#workspaces button label { - font-size: 15px; - color: @base05; - transition: all 100ms ease-out; -} - -#workspaces button.active label { - font-weight: bolder; - color: @base0A; - transition: all 100ms ease-out; -} - -#battery { - color: @base0A; -} diff --git a/home-manager/homeModules/bspwm.nix b/home-manager/homeModules/bspwm.nix deleted file mode 100644 index 712a95c..0000000 --- a/home-manager/homeModules/bspwm.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - imports = [ - ./picom.nix - ./dunst.nix - ./sxhkd.nix - ]; - - options = { - bspwm.enable = lib.mkEnableOption "enable bspwm"; - }; - - config = lib.mkIf config.bspwm.enable { - picom.enable = true; - dunst.enable = true; - sxhkd.enable = true; - - rofi = { - enable = true; - package = pkgs.rofi; - }; - - xsession.windowManager.bspwm = { - enable = true; - - monitors = - let - workspaces = [ - "α" - "β" - "γ" - "δ" - "ε" - ]; - in { - "^1" = workspaces; - # "^2" = workspaces; - }; - - settings = { - # focused_border_color = "#908caa"; - # normal_border_color = "#363a4f"; - # presel_feedback_color = "#752f20"; - border_width = 3; - window_gap = 12; - focus_follows_pointer = true; - split_ratio = 0.5; - }; - - startupPrograms = [ - "sxhkd" - "picom -b" - "emacs --daemon" - "feh --bg-fill ${config.wallpaper}" - ]; - }; - home.packages = with pkgs; [ - feh - betterlockscreen - xfce.xfce4-screenshooter - ]; - }; -} diff --git a/home-manager/homeModules/default.nix b/home-manager/homeModules/default.nix deleted file mode 100644 index 20a7c6f..0000000 --- a/home-manager/homeModules/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - imports = [ - ./emacs - ./firefox.nix - ./mako.nix - ./rofi.nix - ./nvim.nix - ./bspwm.nix - ./hyprland.nix - ./picom.nix - ./alacritty.nix - ./fish.nix - ./waybar.nix - ./fuzzel.nix - ./stylix.nix - ./exwm.nix - ./zen-browser.nix - ./tmux.nix - ]; -} diff --git a/home-manager/homeModules/dunst.nix b/home-manager/homeModules/dunst.nix deleted file mode 100644 index 1a5fd31..0000000 --- a/home-manager/homeModules/dunst.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - dunst.enable = lib.mkEnableOption "enable dunst"; - }; - config = lib.mkIf config.dunst.enable { - home.packages = [ pkgs.libnotify ]; - services.dunst = { - enable = true; - settings = { - global = { - origin = "bottom-right"; - notification_limit = 5; - progress_bar = true; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/emacs/aliases b/home-manager/homeModules/emacs/aliases deleted file mode 100644 index 87e9ae2..0000000 --- a/home-manager/homeModules/emacs/aliases +++ /dev/null @@ -1,4 +0,0 @@ -alias ntemplate nix flake init --template github:the-nix-way/dev-templates#$1 -alias ff find-file $1 -alias hr home-manager switch --flake /home/jerpo/nixfiles -alias nr sudo nixos-rebuild switch --flake /home/jerpo/nixfiles#ltrr-mini diff --git a/home-manager/homeModules/emacs/default.nix b/home-manager/homeModules/emacs/default.nix deleted file mode 100644 index 7a8b66f..0000000 --- a/home-manager/homeModules/emacs/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: - -let - mkMutableSymlink = config.lib.meta.mkMutableSymlink; -in -{ - options = { - emacs.enable = lib.mkEnableOption "enable emacs"; - emacs.package = lib.mkPackageOption pkgs "emacs package" { default = [ "emacs30-pgtk" ]; }; - }; - config = lib.mkIf config.emacs.enable { - home.sessionVariables.EDITOR = "emacsclient -a emacs"; - home.packages = - with pkgs; - with python311Packages; - [ - # required dependencies - ripgrep - fd - tree-sitter - emacs-all-the-icons-fonts - libappindicator - poppler_utils - nixd - alejandra - sqlite - ]; - - programs.emacs = { - enable = true; - package = config.emacs.package; - extraPackages = - epkgs: with epkgs; [ - treesit-grammars.with-all-grammars - mu4e - ]; - }; - - xdg.configFile = { - "emacs/early-init.el".source = mkMutableSymlink ./early-init.el; - "emacs/init.el".source = mkMutableSymlink ./init.el; - "emacs/elpaca.el".source = mkMutableSymlink ./elpaca.el; - "emacs/etc/tempel/templates.eld".source = mkMutableSymlink ./templates.eld; - "emacs/etc/eshell/aliases".source = mkMutableSymlink ./aliases; - }; - }; -} diff --git a/home-manager/homeModules/emacs/early-init.el b/home-manager/homeModules/emacs/early-init.el deleted file mode 100644 index c6334f5..0000000 --- a/home-manager/homeModules/emacs/early-init.el +++ /dev/null @@ -1,171 +0,0 @@ -;;;; Optimisations from https://github.com/jamescherti/minimal-emacs.d - -;;; Garbage collection -(setq gc-cons-threshold most-positive-fixnum) - -(add-hook 'emacs-startup-hook - (lambda () - (setq gc-cons-threshold (* 16 1024 1024)))) - -;;; Performance - -;; Prefer loading newer compiled files -(setq load-prefer-newer t) - -;; Increase how much is read from processes in a single chunk (default is 4kb). -(setq read-process-output-max (* 1024 1024)) ; 512kb - -;; Disable warnings from the legacy advice API. They aren't useful. -(setq ad-redefinition-action 'accept) - -(setq warning-suppress-types '((lexical-binding))) - -;; Don't ping things that look like domain names. -(setq ffap-machine-p-known 'reject) - -;; By default, Emacs "updates" its ui more often than it needs to -(setq idle-update-delay 1.0) - -;; Font compacting can be very resource-intensive, especially when rendering -;; icon fonts on Windows. This will increase memory usage. -(setq inhibit-compacting-font-caches t) - -(unless (daemonp) - (unless noninteractive - (progn - ;; Disable mode-line-format during init - (defun minimal-emacs--reset-inhibited-vars-h () - (setq-default inhibit-redisplay nil - ;; Inhibiting `message' only prevents redraws and - inhibit-message nil) - (redraw-frame)) - - (defvar minimal-emacs--default-mode-line-format mode-line-format - "Default value of `mode-line-format'.") - (setq-default mode-line-format nil) - - (defun minimal-emacs--startup-load-user-init-file (fn &rest args) - "Advice for startup--load-user-init-file to reset mode-line-format." - (let (init) - (unwind-protect - (progn - (apply fn args) ; Start up as normal - (setq init t)) - (unless init - ;; If we don't undo inhibit-{message, redisplay} and there's an - ;; error, we'll see nothing but a blank Emacs frame. - (minimal-emacs--reset-inhibited-vars-h)) - (unless (default-toplevel-value 'mode-line-format) - (setq-default mode-line-format - minimal-emacs--default-mode-line-format))))) - - (advice-add 'startup--load-user-init-file :around - #'minimal-emacs--startup-load-user-init-file)) - - ;; Without this, Emacs will try to resize itself to a specific column size - (setq frame-inhibit-implied-resize t) - - ;; A second, case-insensitive pass over `auto-mode-alist' is time wasted. - ;; No second pass of case-insensitive search over auto-mode-alist. - (setq auto-mode-case-fold nil) - - ;; Reduce *Message* noise at startup. An empty scratch buffer (or the - ;; dashboard) is more than enough, and faster to display. - (setq inhibit-startup-screen t - inhibit-startup-echo-area-message user-login-name) - (setq initial-buffer-choice nil - inhibit-startup-buffer-menu t - inhibit-x-resources t) - - ;; Disable bidirectional text scanning for a modest performance boost. - (setq-default bidi-display-reordering 'left-to-right - bidi-paragraph-direction 'left-to-right) - - ;; Give up some bidirectional functionality for slightly faster re-display. - (setq bidi-inhibit-bpa t) - - ;; Remove "For information about GNU Emacs..." message at startup - (advice-add #'display-startup-echo-area-message :override #'ignore) - - ;; Suppress the vanilla startup screen completely. We've disabled it with - ;; `inhibit-startup-screen', but it would still initialize anyway. - (advice-add #'display-startup-screen :override #'ignore) - - ;; Shave seconds off startup time by starting the scratch buffer in - ;; `fundamental-mode' - (setq initial-major-mode 'fundamental-mode - initial-scratch-message nil))) - -;;; Native compilation and Byte compilation - -(if (and (featurep 'native-compile) - (fboundp 'native-comp-available-p) - (native-comp-available-p)) - ;; Activate `native-compile' - (setq native-comp-jit-compilation t - package-native-compile t) - ;; Deactivate the `native-compile' feature if it is not available - (setq features (delq 'native-compile features))) - -;; Suppress compiler warnings and don't inundate users with their popups. -(setq native-comp-async-report-warnings-errors 'silent) - -;;; UI elements - -;; Disable startup screens and messages -(setq inhibit-splash-screen t) - - -(push '(menu-bar-lines . 0) default-frame-alist) -(unless (memq window-system '(mac ns)) - (setq menu-bar-mode nil)) - -(unless (daemonp) - (unless noninteractive - (when (fboundp 'tool-bar-setup) - ;; Temporarily override the tool-bar-setup function to prevent it from - ;; running during the initial stages of startup - (advice-add #'tool-bar-setup :override #'ignore) - (define-advice startup--load-user-init-file - (:before (&rest _) minimal-emacs-setup-toolbar) - (advice-remove #'tool-bar-setup #'ignore) - (tool-bar-setup))))) - -(push '(tool-bar-lines . 0) default-frame-alist) -(setq tool-bar-mode nil) - -(push '(vertical-scroll-bars) default-frame-alist) -(push '(horizontal-scroll-bars) default-frame-alist) -(setq scroll-bar-mode nil) -(when (fboundp 'horizontal-scroll-bar-mode) - (horizontal-scroll-bar-mode -1)) - -(when (bound-and-true-p tooltip-mode) - (tooltip-mode -1)) - -;; Disable GUIs because they are inconsistent across systems, desktop -;; environments, and themes, and they don't match the look of Emacs. -(setq use-file-dialog nil) -(setq use-dialog-box nil) - -;; Allow for shorter responses: "y" for yes and "n" for no. -(if (boundp 'use-short-answers) - (setq use-short-answers t) - (advice-add #'yes-or-no-p :override #'y-or-n-p)) -(defalias #'view-hello-file #'ignore) ; Never show the hello file - -;;; And that's mine - -(setq package-enable-at-startup nil) -(setq-default pgtk-wait-for-event-timeout 0) - -(let ((mono-spaced-font "FiraCode Nerd Font") - (proportionately-spaced-font "Inconsonata")) - (set-face-attribute 'default nil :family mono-spaced-font :height 110 :weight 'medium) - (set-face-attribute 'fixed-pitch nil :family mono-spaced-font :height 1.0) - (set-face-attribute 'variable-pitch nil :family proportionately-spaced-font :height 1.0) - (set-face-attribute 'italic nil :underline nil)) - - -(provide 'early-init) -;;; early-init.el ends here diff --git a/home-manager/homeModules/emacs/elpaca.el b/home-manager/homeModules/emacs/elpaca.el deleted file mode 100644 index 4e1230f..0000000 --- a/home-manager/homeModules/emacs/elpaca.el +++ /dev/null @@ -1,46 +0,0 @@ -(defvar elpaca-installer-version 0.11) -(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) -(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) -(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) -(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" - :ref nil :depth 1 :inherit ignore - :files (:defaults "elpaca-test.el" (:exclude "extensions")) - :build (:not elpaca--activate-package))) -(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) - (build (expand-file-name "elpaca/" elpaca-builds-directory)) - (order (cdr elpaca-order)) - (default-directory repo)) - (add-to-list 'load-path (if (file-exists-p build) build repo)) - (unless (file-exists-p repo) - (make-directory repo t) - (when (<= emacs-major-version 28) (require 'subr-x)) - (condition-case-unless-debug err - (if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) - ((zerop (apply #'call-process `("git" nil ,buffer t "clone" - ,@(when-let* ((depth (plist-get order :depth))) - (list (format "--depth=%d" depth) "--no-single-branch")) - ,(plist-get order :repo) ,repo)))) - ((zerop (call-process "git" nil buffer t "checkout" - (or (plist-get order :ref) "--")))) - (emacs (concat invocation-directory invocation-name)) - ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" - "--eval" "(byte-recompile-directory \".\" 0 'force)"))) - ((require 'elpaca)) - ((elpaca-generate-autoloads "elpaca" repo))) - (progn (message "%s" (buffer-string)) (kill-buffer buffer)) - (error "%s" (with-current-buffer buffer (buffer-string)))) - ((error) (warn "%s" err) (delete-directory repo 'recursive)))) - (unless (require 'elpaca-autoloads nil t) - (require 'elpaca) - (elpaca-generate-autoloads "elpaca" repo) - (let ((load-source-file-function nil)) (load "./elpaca-autoloads")))) -(add-hook 'after-init-hook #'elpaca-process-queues) -(elpaca `(,@elpaca-order)) - -(elpaca elpaca-use-package - ;; Enable :elpaca use-package keyword. - (elpaca-use-package-mode) - (setq use-package-always-ensure t)) - -(provide 'elpaca) -;;; elpaca.el ends here diff --git a/home-manager/homeModules/emacs/init.el b/home-manager/homeModules/emacs/init.el deleted file mode 100644 index 9a3053c..0000000 --- a/home-manager/homeModules/emacs/init.el +++ /dev/null @@ -1,848 +0,0 @@ -(setopt custom-file (locate-user-emacs-file "custom.el")) -(load custom-file :no-error-if-file-is-missing) - - -(load (expand-file-name "elpaca.el" user-emacs-directory)) - - -;;; Basic behaviour - - -(setopt uniquify-buffer-name-style 'forward) - - -(setopt enable-recursive-minibuffers t) - - -;; Auto save -(setopt auto-save-default t) -(setopt auto-save-include-big-deletions t) -(setopt kill-buffer-delete-auto-save-files t) - - -;; Auto revert -(setopt revert-without-query (list ".") ; Do not prompt - auto-revert-stop-on-user-input nil - auto-revert-verbose t) - - -;; Revert other buffers (e.g, Dired) -(setopt global-auto-revert-non-file-buffers t) -(add-hook 'elpaca-after-init-hook #'global-auto-revert-mode) - - -;; Save place in buffer -(setopt save-place-limit 600) -(add-hook 'elpaca-after-init-hook #'save-place-mode) - - -(defun prot/keyboard-quit-dwim () - "Do-What-I-Mean behaviour for a general `keyboard-quit'. - -The generic `keyboard-quit' does not do the expected thing when -the minibuffer is open. Whereas we want it to close the -minibuffer, even without explicitly focusing it. - -The DWIM behaviour of this command is as follows: - -- When the region is active, disable it. -- When a minibuffer is open, but not focused, close the minibuffer. -- When the Completions buffer is selected, close it. -- In every other case use the regular `keyboard-quit'." - (interactive) - (cond - ((region-active-p) - (keyboard-quit)) - ((derived-mode-p 'completion-list-mode) - (delete-completion-window)) - ((> (minibuffer-depth) 0) - (abort-recursive-edit)) - (t - (keyboard-quit)))) - -(keymap-global-set "C-g" #'prot/keyboard-quit-dwim) - - -(use-package no-littering - :config - (no-littering-theme-backups)) - - -(use-package which-key - :ensure nil - :init - (which-key-mode)) - - -(use-package vundo - :commands (vundo) - :hook (vundo-mode . (lambda () (visual-line-mode -1) (setopt truncate-lines t)))) - - -(use-package winner - :ensure nil - :bind ("C-0" . winner-undo) - :custom - (winner-dont-bind-my-keys t) - :hook (elpaca-after-init . winner-mode)) - - -(use-package repeat - :ensure nil - :hook (elpaca-after-init . repeat-mode)) - - -(use-package avy - :bind (("M-j" . avy-goto-char-timer) - ("C-c j" . avy-goto-line))) - - -(use-package helpful - :bind (("C-h f" . helpful-callable) - ("C-h v" . helpful-variable) - ("C-h k" . helpful-key) - ("C-h x" . helpful-command) - ("C-c C-d" . helpful-at-point) - ("C-h F" . helpful-function))) - - -(setopt ediff-window-setup-function #'ediff-setup-windows-plain - ediff-split-window-function #'split-window-horizontally) - - -(electric-pair-mode t) - - -(global-set-key [remap list-buffers] 'ibuffer) - -;;; Tweak the looks of Emacs -(setq-default tab-width 4) - -(global-word-wrap-whitespace-mode t) -(global-visual-line-mode t) -(global-visual-wrap-prefix-mode t) - -;; Mode Line -(defun mood-line-segment-input-method () - "Return the selected input method if it differs from the default one" - (if current-input-method - (propertize (format-mode-line - (format "[%s]" current-input-method-title)) - 'face 'mood-line-unimportant))) - -(use-package mood-line - :config - (mood-line-mode) - :custom - (mood-line-segment-modal-meow-state-alist - '((normal "N" . mood-line-meow-normal) - (insert "I" . mood-line-meow-insert) - (keypad "K" . mood-line-meow-keypad) - (beacon "B" . mood-line-meow-beacon) - (motion "M" . mood-line-meow-motion))) - (mood-line-glyph-alist mood-line-glyphs-fira-code) - - (mood-line-format '((" " (mood-line-segment-modal) " " - (or (mood-line-segment-buffer-status) " ") " " - (mood-line-segment-buffer-name) " " (mood-line-segment-anzu) " " - (mood-line-segment-multiple-cursors) " " - (mood-line-segment-cursor-position) " " (mood-line-segment-scroll) - "") - ((mood-line-segment-vc) " " - (mood-line-segment-major-mode) " " - (mood-line-segment-input-method) " " - (mood-line-segment-misc-info) " " (mood-line-segment-checker) " " - (mood-line-segment-process) " " " "))) - :custom-face - (mood-line-meow-beacon ((t (:inherit 'font-lock-function-name-face :weight bold)))) - (mood-line-meow-insert ((t (:inherit 'font-lock-string-face :weight bold)))) - (mood-line-meow-keypad ((t (:inherit 'font-lock-keyword-face :weight bold)))) - (mood-line-meow-motion ((t (:inherit 'font-lock-constant-face :weight bold)))) - (mood-line-meow-normal ((t (:inherit 'font-lock-variable-use-face :weight bold))))) - - -(defvar after-load-theme-hook nil - "Hook run after a color theme is loaded using `load-theme'.") - -(defun spl3g/after-load-theme-advice (&rest r) - "Run `after-load-theme-hook' and ignore R." - (run-hooks 'after-load-theme-hook)) -(advice-add 'load-theme :after #'spl3g/after-load-theme-advice) - -(defun widen-mode-line () - "Widen the mode-line." - (interactive) - (set-face-attribute 'mode-line nil - :inherit 'mode-line - :box '(:line-width 8 :style flat-button)) - (set-face-attribute 'mode-line-inactive nil - :inherit 'mode-line-inactive - :box '(:line-width 8 :style flat-button))) - -(add-hook 'after-load-theme-hook 'widen-mode-line) - - -(use-package rainbow-delimiters - :hook (prog-mode . rainbow-delimiters-mode)) - - -;; Scrolling -(setopt scroll-conservatively 101) -(setopt scroll-margin 5) -(setopt mouse-wheel-progressive-speed nil) -(setopt fast-but-imprecise-scrolling t) -(setopt scroll-error-top-bottom t) -(setopt scroll-preserve-screen-position t) - - -;; Annoyances -(blink-cursor-mode -1) -(setopt visible-bell nil) -(setopt ring-bell-function #'ignore) -(setopt delete-pair-blink-delay 0.03) -(setopt blink-matching-paren nil) - -(add-hook 'prog-mode-hook 'display-line-numbers-mode) -(setopt display-line-numbers-width 3) - -(kill-ring-deindent-mode) - -;; Overwrite the default function with a patched one -(defun kill-ring-deindent-buffer-substring-function (beg end delete) - "Save the text within BEG and END to kill-ring, decreasing indentation. -Delete the saved text if DELETE is non-nil. - -In the saved copy of the text, remove some of the indentation, such -that the buffer position at BEG will be at column zero when the text -is yanked." - (let ((a beg) - (b end)) - (setq beg (min a b) - end (max a b))) - (let ((indentation (save-excursion (goto-char beg) - (current-column))) - (i-t-m indent-tabs-mode) - (text (if delete - (delete-and-extract-region beg end) - (buffer-substring beg end)))) - (with-temp-buffer - ;; Indent/deindent the same as the major mode in the original - ;; buffer. - (setq indent-tabs-mode i-t-m) - (insert text) - (indent-rigidly (point-min) (point-max) - (- indentation)) - (buffer-string)))) - - -;;; TRAMP -(setq remote-file-name-inhibit-locks t - tramp-use-scp-direct-remote-copying t - remote-file-name-inhibit-auto-save-visited t) - -(setq tramp-copy-size-limit (* 1024 1024) ;; 1MB - tramp-verbose 2) - - -;;; Configure the minibuffer and completions -(use-package vertico - :ensure t - :hook (elpaca-after-init . vertico-mode) - :bind (:map vertico-map - ("RET" . vertico-directory-enter) - ("DEL" . vertico-directory-delete-char) - ("M-DEL" . vertico-directory-delete-word))) - - -(use-package marginalia - :ensure t - :hook (elpaca-after-init . marginalia-mode)) - - -(use-package orderless - :custom - (completion-styles '(orderless basic)) - (completion-category-overrides '((file (styles basic partial-completion))))) - - -(use-package savehist - :ensure nil ; it is built-in - :hook (elpaca-after-init . savehist-mode) - :custom - (savehist-file "~/.config/emacs/var/savehist.el") - (history-length 1000) - (history-delete-duplicates t) - (savehist-additional-variables '(kill-ring search-ring))) - - -(defun cape--dabbrev-project () - (let* ((project (project-current)) - (buffers (when project - (project-buffers project)))) - (if project - (butlast buffers (- (length buffers) 4)) - (cape--buffers-major-mode)))) - -(use-package cape - :after corfu - :custom - (dabbrev-ignored-buffer-modes '(archive-mode image-mode eshell-mode)) - (cape-dabbrev-check-other-buffers #'cape--dabbrev-project) - :config - (add-hook 'completion-at-point-functions #'cape-dabbrev) - (add-hook 'completion-at-point-functions #'cape-file) - (add-hook 'completion-at-point-functions #'cape-elisp-block)) - - -(use-package corfu - :hook (elpaca-after-init . global-corfu-mode) - :bind (:map corfu-map - ("M-j" . corfu-next) - ("M-k" . corfu-previous) - ([remap previous-line] . nil) - ([remap next-line] . nil)) - :custom - (corfu-preselect 'prompt) - (corfu-auto nil) - (corfu-popupinfo-delay '(1.25 . 0.5)) - (corfu-auto-delay 0) - (corfu-auto-prefix 2) - (corfu-count 16) - (corfu-max-width 120) - (corfu-min-width 20) - (corfu-scroll-margin 4) - (corfu-on-exact-match nil) - (tab-always-indent 'complete) - (corfu-cycle t) - :config - (corfu-popupinfo-mode 1) - (corfu-history-mode 1)) - - -(use-package completion-preview - :ensure nil - :hook (elpaca-after-init . global-completion-preview-mode) - :bind (:map completion-preview-active-mode-map - ("TAB" . (lambda () - (interactive) - (completion-preview-complete) - (completion-at-point))) - - ("M-i" . (lambda () - (interactive) - (completion-preview-insert))) - ("M-n" . completion-preview-next-candidate) - ("M-p" . completion-preview-prev-candidate)) - :custom - (completion-preview-minimum-symbol-length 2)) - - - -;;; Movement - - -(use-package embark - :ensure t - - :bind - (("C-." . embark-act) - ("C-;" . embark-dwim) - ("C-h B" . embark-bindings)) - :config - (defun embark-which-key-indicator () - "An embark indicator that displays keymaps using which-key. -The which-key help message will show the type and value of the -current target followed by an ellipsis if there are further -targets." - (lambda (&optional keymap targets prefix) - (if (null keymap) - (which-key--hide-popup-ignore-command) - (which-key--show-keymap - (if (eq (plist-get (car targets) :type) 'embark-become) - "Become" - (format "Act on %s '%s'%s" - (plist-get (car targets) :type) - (embark--truncate-target (plist-get (car targets) :target)) - (if (cdr targets) "…" ""))) - (if prefix - (pcase (lookup-key keymap prefix 'accept-default) - ((and (pred keymapp) km) km) - (_ (key-binding prefix 'accept-default))) - keymap) - nil nil t (lambda (binding) - (not (string-suffix-p "-argument" (cdr binding)))))))) - - (setq embark-indicators - '(embark-which-key-indicator - embark-highlight-indicator - embark-isearch-highlight-indicator)) - - (defun embark-hide-which-key-indicator (fn &rest args) - "Hide the which-key indicator immediately when using the completing-read prompter." - (which-key--hide-popup-ignore-command) - (let ((embark-indicators - (remq #'embark-which-key-indicator embark-indicators))) - (apply fn args))) - - (advice-add #'embark-completing-read-prompter - :around #'embark-hide-which-key-indicator)) - - -(use-package multiple-cursors - :config - (global-set-key (kbd "C->") 'mc/mark-next-like-this) - (global-set-key (kbd "C-<") 'mc/mark-previous-like-this) - (global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)) - - - -;;; The file manager (Dired) - - -(use-package dired - :ensure nil - :commands (dired) - :hook - ((dired-mode . dired-hide-details-mode) - (dired-mode . hl-line-mode)) - :custom - (dired-recursive-copies 'always) - (dired-recursive-deletes 'always) - (delete-by-moving-to-trash t) - (dired-dwim-target t) - (dired-listing-switches "-hal --group-directories-first")) - - -(use-package dired-subtree - :ensure t - :after dired - :bind - ( :map dired-mode-map - ("<tab>" . dired-subtree-toggle) - ("TAB" . dired-subtree-toggle) - ("<backtab>" . dired-subtree-remove) - ("S-TAB" . dired-subtree-remove)) - :custom - (dired-subtree-use-backgrounds nil)) - - -(use-package trashed - :ensure t - :commands (trashed) - :custom - (trashed-action-confirmer 'y-or-n-p) - (trashed-use-header-line t) - (trashed-sort-key '("Date deleted" . t)) - (trashed-date-format "%Y-%m-%d %H:%M:%S")) - - - -;;; Eshell - - -(use-package eshell - :ensure nil - :hook - (eshell-exec . (lambda (p) (buffer-disable-undo))) - (eshell-kill . (lambda (p s) (buffer-enable-undo))) - (eshell-pre-command . eshell-append-history) - - :bind (("C-c o t" . spl3g/eshell-dwim) - ("C-c o s" . spl3g/select-eshell) - ("C-c o r" . spl3g/rename-current-eshell)) - - :custom - (eshell-history-size 500) - (eshell-history-append t) - (eshell-save-history-on-exit nil) - - :config - ;; (add-to-list 'eshell-modules-list 'eshell-tramp) - - ;; Save history on every command - (defun eshell-append-history () - "Call `eshell-write-history' with the `append' parameter set to `t'." - (when eshell-history-ring - (let ((newest-cmd-ring (make-ring 1))) - (ring-insert newest-cmd-ring (car (ring-elements eshell-history-ring))) - (let ((eshell-history-ring newest-cmd-ring)) - (eshell-write-history eshell-history-file-name t))))) - - - (defun spl3g/eshell-dwim () - (interactive) - (defvar current-prefix-arg) - (let* ((project (project-current)) - (eshell-func (if project - 'project-eshell - 'eshell)) - (buffer-name (if project - (format "*%s-eshell*" (project-name project)) - "*eshell*")) - (current-prefix-arg t)) - (if (not (get-buffer buffer-name)) - (let ((buf (funcall eshell-func))) - (switch-to-buffer (other-buffer buf)) - (switch-to-buffer-other-window buf)) - (switch-to-buffer-other-window buffer-name)))) - - (defun spl3g/select-eshell () - (interactive) - (let* ((eshell-buffers (seq-filter (lambda (buffer) - (eq (with-current-buffer buffer major-mode) - 'eshell-mode)) - (buffer-list))) - - (eshell-windows (remove nil (mapcar (lambda (buffer) - (let* ((window (get-buffer-window buffer)) - (name (buffer-name buffer))) - (when window - (cons name window)))) - eshell-buffers))) - - (eshell-names (seq-filter (lambda (buffer) (not (eq buffer (buffer-name (current-buffer))))) - (mapcar (lambda (buffer) (buffer-name buffer)) eshell-buffers))) - - (selected-buffer (if (length> eshell-buffers 1) - (completing-read "Select eshell buffer: " eshell-names) - (car eshell-buffers))) - (selected-window (if (length> eshell-windows 1) - (cdr (assoc (completing-read "Select window to place the buffer in: " eshell-windows) eshell-windows)) - (cdar eshell-windows)))) - (if selected-window - (progn - (select-window selected-window) - (switch-to-buffer selected-buffer)) - (switch-to-buffer-other-window selected-buffer)))) - - (defun spl3g/rename-current-eshell () - "Add NAME in <> to the current project eshell buffer" - (interactive) - (let* ((eshell-buffers (seq-filter (lambda (buffer) - (eq (with-current-buffer buffer major-mode) - 'eshell-mode)) - (buffer-list))) - (eshell-names (mapcar (lambda (buffer) (buffer-name buffer)) eshell-buffers)) - (eshell-windows (remove nil (mapcar (lambda (buffer) - (let* ((window (get-buffer-window buffer)) - (name (buffer-name buffer))) - (when window - (cons name window)))) - eshell-buffers))) - (selected-window (if (and (sequencep eshell-windows) (length> eshell-windows 1)) - (assoc (completing-read "Select window to place the buffer in: " eshell-windows) eshell-windows) - (car eshell-windows))) - (additional-name (when selected-window - (read-string "Additional name: "))) - (buffer-name (when selected-window - (car (split-string (car selected-window) "<")))) - (formatted-name (if (length> additional-name 0) - (format "%s<%s>" buffer-name additional-name) - buffer-name)) - ) - (if selected-window - (with-current-buffer (car selected-window) - (rename-buffer formatted-name)) - (message "No eshell buffers"))))) - - -(use-package eat - :hook - (eshell-load . eat-eshell-mode) - (eshell-load . eat-eshell-visual-command-mode) - :custom - (eat-enable-auto-line-mode t) - :custom-face - (ansi-color-bright-blue ((t (:inherit 'ansi-color-blue)))) - (ansi-color-bright-red ((t (:inherit 'ansi-color-red)))) - (ansi-color-bright-red ((t (:inherit 'ansi-color-red)))) - (ansi-color-bright-cyan ((t (:inherit 'ansi-color-cyan)))) - (ansi-color-bright-black ((t (:inherit 'ansi-color-black)))) - (ansi-color-bright-green ((t (:inherit 'ansi-color-green)))) - (ansi-color-bright-white ((t (:inherit 'ansi-color-white)))) - (ansi-color-bright-yellow ((t (:inherit 'ansi-color-yellow)))) - (ansi-color-bright-magenta ((t (:inherit 'ansi-color-magenta))))) - - -(use-package eshell-syntax-highlighting - :hook (eshell-mode . eshell-syntax-highlighting-mode)) - - - -;;; Programming things - - -(use-package tempel - :ensure t - ;; By default, tempel looks at the file "templates" in - ;; user-emacs-directory, but you can customize that with the - ;; tempel-path variable: - ;; :custom - ;; (tempel-path (concat user-emacs-directory "custom_template_file")) - :bind (("M-*" . tempel-insert) - ("M-+" . tempel-complete) - :map tempel-map - ("C-c RET" . tempel-done) - ("C-<down>" . tempel-next) - ("C-<up>" . tempel-previous) - ("M-<down>" . tempel-next) - ("M-<up>" . tempel-previous)) - :custom - (tempel-trigger-prefix "<") - :init - ;; Make a function that adds the tempel expansion function to the - ;; list of completion-at-point-functions (capf). - (defun tempel-setup-capf () - (add-hook 'completion-at-point-functions #'tempel-expand -1 'local)) - ;; Put tempel-expand on the list whenever you start programming or - ;; writing prose. - (add-hook 'prog-mode-hook 'tempel-setup-capf) - (add-hook 'text-mode-hook 'tempel-setup-capf)) - -(use-package tempel-collection - :ensure t - :after tempel) - -(use-package lsp-snippet-tempel - :ensure (:host github :repo "tpeacock19/lsp-snippet") - :config - (lsp-snippet-tempel-eglot-init)) - - -(use-package apheleia - :hook (prog-mode-hook . apheleia-mode) - :config - (push '(alejandra . ("alejandra")) apheleia-formatters) - (setf (alist-get 'nix-mode apheleia-mode-alist) '(alejandra))) - - -(use-package envrc - :mode ("\\.envrc\\.?[[:alpha:]]*\\'" . envrc-file-mode) - :hook (elpaca-after-init . envrc-global-mode) - :bind-keymap - ("C-c e" . envrc-command-map)) - - -(use-package scratch - :commands scratch) - - -(use-package transient) - -(use-package magit - :after transient - :bind (("C-c o g" . magit))) - - -(use-package treesit-auto - :hook (elpaca-after-init . global-treesit-auto-mode) - :custom - (treesit-auto-install 'prompt) - :config - (treesit-auto-add-to-auto-mode-alist 'all) - (delete 'html treesit-auto-langs)) - - -(keymap-global-set "C-c c c" 'compile) -(keymap-global-set "C-c c r" 'recompile) - - -(defun colorize-compilation-buffer () - (ansi-color-apply-on-region compilation-filter-start (point))) -(add-hook 'compilation-filter-hook 'colorize-compilation-buffer) - - - -;; LSP shit -(use-package eglot - :ensure nil - :bind (:map eglot-mode-map - ("C-c s a" . eglot-code-actions) - ("C-c s r" . eglot-rename) - ("C-c s h" . eldoc) - ("C-c s f" . eglot-format) - ("C-c s F" . eglot-format-buffer) - ("C-c s d" . xref-find-definitions-at-mouse) - ("C-c s R" . eglot-reconnect)) - :custom - (completion-category-overrides '((eglot (styles prescient)) - (eglot-capf (styles prescient)))) - :config - (advice-add 'eglot-completion-at-point :around #'cape-wrap-buster) - - (setq-default - eglot-workspace-configuration - `(:nixd ( :nixpkgs (:expr "import <nixpkgs> { }") - :formatting (:command ["nixpkgs-fmt"]) - :options ( :nixos (:expr "(builtins.getFlake \"/home/jerpo/nixfiles\").nixosConfigurations.ltrr-mini.options") - :home-manager (:expr "(builtins.getFlake \"/home/jerpo/nixfiles\").homeConfigurations.\"jerpo@ltrr-mini\".options")))))) - - -(use-package dumb-jump - :commands (dumb-jump-xref-activate) - :custom - (dumb-jump-force-searcher 'rg) - :init - (add-hook 'xref-backend-functions #'dumb-jump-xref-activate)) - - -(use-package dape) - - - -;;; Languages -(use-package web-mode - :mode - ("\\.html\\'" - "\\.phtml\\'" - "\\.tpl\\.php\\'" - "\\.[agj]sp\\'" - "\\.as[cp]x\\'" - "\\.erb\\'" - "\\.mustache\\'" - "\\.djhtml\\'") - :hook - (eb-mode . (lambda () (electric-pair-local-mode -1))) - :custom - (web-mode-markup-indent-offset tab-width) - (web-mode-css-indent-offset tab-width) - (web-mode-code-indent-offset tab-width) - (web-mode-script-padding tab-width) - (web-mode-style-padding tab-width) - :init - - (define-derived-mode vue-mode web-mode "Vue") - (add-to-list 'auto-mode-alist '("\\.vue\\'" . vue-mode)) - (add-hook 'vue-mode-hook - (lambda () - (with-eval-after-load 'eglot - (defun vue-eglot-init-options () - "Set SDK path and default options." - (let ((tsdk-path (expand-file-name - "lib/node_modules/typescript/lib/" - (inheritenv (shell-command-to-string - (string-join '("nix-store --query --references $(which vue-language-server)" - "xargs -n1 nix-store -q --referrers" - "grep typescript" - "head -n1" - "tr -d '\n'") - " | ")))))) - `( :typescript (:tsdk ,tsdk-path) - :hybridMode :json-false))) - (setf (alist-get 'vue-mode eglot-server-programs) ;; nix-env -iA nixpkgs.nodePackages.volar - `("vue-language-server" "--stdio" :initializationOptions ,(vue-eglot-init-options)))))) - - (define-derived-mode svelte-mode web-mode "Svelte") - (add-to-list 'auto-mode-alist '("\\.svelte\\'" . svelte-mode)) - (with-eval-after-load 'eglot - (add-to-list 'eglot-server-programs `(svelte-mode "svelteserver" "--stdio")))) - -(use-package emmet-mode - :hook (web-mode . emmet-mode)) - - -(use-package nix-mode - :mode ("\\.nix\\'" "\\.nix.in\\'")) - - -(use-package typescript-ts-mode - :ensure nil - :mode ("\\.ts\\'") - :hook (typescript-ts-mode . (lambda () (setq-local forward-sexp-function nil))) - :custom - (typescript-ts-mode-indent-offset tab-width)) - - -(use-package go-ts-mode - :ensure nil - :custom - (go-ts-mode-indent-offset tab-width)) - -(use-package c-ts-mode - :ensure nil - :hook (c-ts-mode . (lambda () (apheleia-mode -1)))) - -(use-package c-mode - :ensure nil - :hook (c-mode . (lambda () (apheleia-mode -1))) - :mode ("\\.c\\'")) - - -(use-package markdown-mode - :mode ("\\.md\\'")) - - -(use-package conf-unix-mode - :ensure nil - :mode ("\\.env\\.?[[:alpha:]]*\\'")) - - -(use-package sql-indent - :hook (sql-mode . sqlind-minor-mode)) - -(setopt sql-connection-alist - '(("postgres-sirius" - (sql-product 'postgres) - (sql-user "college") - (sql-server "127.0.0.1") - (sql-database "coll") - (sql-port 5432)))) - -(setopt sql-sqlite-program "sqlite3") - - -(use-package elm-mode - :mode "\\.elm\\'") - - -(use-package zig-ts-mode - :mode "\\.zig\\'") - - -(use-package verb - :after org - :config (define-key org-mode-map (kbd "C-c C-r") verb-command-map)) - - - -;; Notetaking - - -(use-package org-mode - :ensure nil - :hook (org-mode . variable-pitch-mode) - :custom - (org-startup-indented t) - :mode "\\.org\\'" - :config - (set-face-attribute 'org-table nil :inherit 'fixed-pitch)) - - -(use-package writeroom-mode - :custom - (writeroom-global-effects nil) - (writeroom-maximize-window nil)) - - -(use-package denote - :commands (denote denote-create-note denote-journal-extras-new-entry)) - - - -;; Other - - -(use-package kubel - :commands (kubel) - :hook (kubel-mode . hl-line-mode) - :bind ((:map kubel-mode-map - ("N" . kubel-set-namespace) - ("P" . kubel-port-forward-pod) - ("n" . #'next-line) - ("p" . #'previous-line))) - :custom-face - (kubel-status-completed ((t (:inherit 'font-lock-keyword-face :weight bold)))) - (kubel-status-terminating ((t (:inherit 'font-lock-variable-use-face :weight bold))))) - -(provide 'init) -;;; init.el ends here. diff --git a/home-manager/homeModules/emacs/templates.eld b/home-manager/homeModules/emacs/templates.eld deleted file mode 100644 index 138888f..0000000 --- a/home-manager/homeModules/emacs/templates.eld +++ /dev/null @@ -1,18 +0,0 @@ -nix-mode - -(opt "{ pkgs, config, lib, ... }:" - n - n "{" - n> "options = {" - n> (p "option name" name) ".enable = lib.mkEnableOption \"enable " (s name) "\";" - n " };" - n> "config = lib.mkIf config." (s name) ".enable {" - n> q - n " };" - n "}") - -python-ts-mode - -(view "class " (s name) "ViewSet(viewsets.ModelViewSet):" - n> "queryset = " (s name) ".objects.all()" - n> "serializer_class = " (s name) "Serializer") diff --git a/home-manager/homeModules/exwm.nix b/home-manager/homeModules/exwm.nix deleted file mode 100644 index bc5d79c..0000000 --- a/home-manager/homeModules/exwm.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, pkgs, config, ... }: -{ - imports = [ - ./picom.nix - ./dunst.nix - ]; - - options = { - exwm.enable = lib.mkEnableOption " enable exwm"; - }; - - config = lib.mkIf config.exwm.enable { - picom.enable = true; - dunst.enable = true; - - programs.emacs = { - extraPackages = epkgs: with epkgs; [ exwm ]; - extraConfig = '' - (setq exwm--my-scripts "${./attachments/hypr-scripts}") - ''; - }; - services = { - # Screenshotting. - flameshot.enable = true; - - # Screen locking. - screen-locker = { - enable = true; - lockCmd = "${pkgs.i3lock-fancy}/bin/i3lock-fancy -p -t ''"; - inactiveInterval = 20; - }; - }; - home.file.xinitrc = { - text = '' - # Disable access control for the current user. - xhost +SI:localuser:$USER - - # Make Java applications aware this is a non-reparenting window manager. - export _JAVA_AWT_WM_NONREPARENTING=1 - - # Set default cursor. - xsetroot -cursor_name left_ptr - - picom -b - - # Finally start Emacs - ${pkgs.dbus.dbus-launch} --exit-with-session emacs -mm --fullscreen --internal-border=0 --border-width=0 - ''; - target = ".xinitrc"; - }; - home.packages = with pkgs; [ - boomer - arandr - feh - gtk3 - i3lock-fancy - xclip - xorg.xev - ]; - }; -} diff --git a/home-manager/homeModules/firefox.nix b/home-manager/homeModules/firefox.nix deleted file mode 100644 index 743895a..0000000 --- a/home-manager/homeModules/firefox.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ pkgs, config, lib, inputs, ... }: - -{ - options = { - firefox.enable = lib.mkEnableOption "enable firefox"; - }; - config = lib.mkIf config.firefox.enable { - programs.firefox = { - enable = true; - package = pkgs.firefox; - profiles.ShyFox = { - isDefault = true; - extensions = { - packages = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - ublock-origin - sponsorblock - return-youtube-dislikes - firefox-color - tampermonkey - duckduckgo-privacy-essentials - mal-sync - sidebery - ]; - - force = true; - # settings = { - # "{3c078156-979c-498b-8990-85f7987dd929}".settings = - # builtins.fromJSON (builtins.readFile "${inputs.shimmer.outPath}/sidebery.json"); - # }; - }; - - preConfig = builtins.readFile "${inputs.betterfox.outPath}/user.js"; - userChrome = builtins.readFile "${inputs.shimmer.outPath}/userChrome.css"; - userContent = builtins.readFile "${inputs.shimmer.outPath}/userContent.css"; - - settings = { - "shimmer.remove-winctr-buttons" = true; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "svg.context-properties.content.enabled" = true; - "browser.search.suggest.enabled" = true; - "captivedetect.canonicalURL" = "http://detectportal.firefox.com/canonical.html"; - "network.captive-portal-service.enabled" = true; - "network.connectivity-service.enabled" = true; - "extensions.autoDisableScopes" = 0; - }; - search = { - force = true; - engines = { - "Brave" = { - urls = [ - { template = "https://search.brave.com/search?q={searchTerms}"; } - { - type = "application/x-suggestions+json"; - template = "https://search.brave.com/api/suggest?q={searchTerms}"; - } - ]; - - icon = "https://cdn.search.brave.com/serp/v2/_app/immutable/assets/safari-pinned-tab.539899c7.svg"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!br" ]; - }; - "NixOS Packages" = { - urls = [{ template = "https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!ns" ]; - }; - "NixOS Options" = { - urls = [{ template = "https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!no" ]; - }; - "HomeManager" = { - urls = [{ template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master"; }]; - icon = "https://github.com/mipmip/home-manager-option-search/blob/main/images/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!hs" ]; - }; - "NixWiki" = { - urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!nw" ]; - }; - "Kinopoisk" = { - urls = [{ template = "https://www.kinopoisk.ru/index.php?kp_query={searchTerms}"; }]; - icon = "https://www.kinopoisk.ru/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!ks" ]; - }; - "MDN Docs" = { - urls = [{ template = "https://developer.mozilla.org/en-US/search?q={searchTerms}"; }]; - icon = "https://developer.mozilla.org/favicon-48x48.bc390275e955dacb2e65.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!md" ]; - }; - }; - default = "Brave"; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/fish.nix b/home-manager/homeModules/fish.nix deleted file mode 100644 index b539e84..0000000 --- a/home-manager/homeModules/fish.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: { - options = { - fish.enable = lib.mkEnableOption "enable fish"; - }; - config = lib.mkIf config.fish.enable { - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - - programs.nix-index.enableFishIntegration = true; - - programs.fish = { - enable = true; - plugins = [ - { - name = "pure"; - src = pkgs.fishPlugins.pure.src; - } - { - name = "autopair"; - src = pkgs.fishPlugins.autopair.src; - } - ]; - interactiveShellInit = '' - set fish_greeting - pokemon-colorscripts -r --no-title - ''; - - shellAliases = { - ls = "ls --hyperlink=auto --color=auto"; - }; - }; - }; -} diff --git a/home-manager/homeModules/fuzzel.nix b/home-manager/homeModules/fuzzel.nix deleted file mode 100644 index 7fc8703..0000000 --- a/home-manager/homeModules/fuzzel.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - fuzzel.enable = lib.mkEnableOption "enable fuzzel"; - }; - - config = lib.mkIf config.fuzzel.enable { - programs.fuzzel = { - enable = true; - settings = { - colors = { - background = "1f1d2eff"; - text = "6e6a86ff"; - selection = "908caaff"; - selection-text = "1f1d2eff"; - }; - main = { - lines = 9; - terminal = "alacritty -e"; - vertical-pad = 0; - horizontal-pad = 0; - }; - border.width = 0; - }; - }; - }; -} diff --git a/home-manager/homeModules/hyprland.nix b/home-manager/homeModules/hyprland.nix deleted file mode 100644 index e99eb4f..0000000 --- a/home-manager/homeModules/hyprland.nix +++ /dev/null @@ -1,231 +0,0 @@ -{ - pkgs, - lib, - config, - inputs, - ... -}: { - imports = [ - ./waybar.nix - ./rofi.nix - ./mako.nix - ]; - - options = { - hyprland.enable = lib.mkEnableOption "enable hyprland"; - }; - - config = lib.mkIf config.hyprland.enable { - waybar.enable = true; - rofi.enable = true; - mako.enable = true; - - home.packages = with pkgs; [ - swww - brightnessctl - grimblast - cliphist - polkit_gnome - kdePackages.xwaylandvideobridge - wl-clipboard - libnotify - socat - ]; - - home.sessionVariables.XDG_CURRENT_DESKTOP = "Hyprland"; - - wayland.windowManager.hyprland = { - enable = true; - settings = { - "$scripts" = "${./attachments/hypr-scripts}"; - "$mainMod" = "SUPER"; - "$terminal" = "alacritty"; - - exec-once = [ - "emacs --daemon" - "swww-daemon" - "swww img ${config.wallpaper}" - "$scripts/bitwarden-float.sh" - ]; - - monitor = [ - "eDP-1,preferred,auto,1.6" - ",preferred,auto,1,mirror,eDP-1" - ]; - - input = { - kb_layout = "us,ru"; - kb_options = "grp:win_space_toggle"; - touchpad = { - natural_scroll = "yes"; - disable_while_typing = "no"; - }; - sensitivity = 0.1; - }; - - general = { - gaps_in = 5; - gaps_out = 15; - border_size = 3; - layout = "dwindle"; - allow_tearing = false; - }; - - misc = { - vfr = true; - }; - - decoration = { - rounding = 7; - blur = { - enabled = true; - size = 3; - passes = 1; - }; - }; - - xwayland.force_zero_scaling = true; - env = [ - "GDK_SCALE,2" - "XCURSOR_SIZE,32" - ]; - - animations = { - enabled = 1; - # bezier = "overshot,0.13,0.99,0.29,1.1,"; - animation = [ - "fade,1,4,default" - "workspaces,1,4,default,fade" - "windows,1,4,default,popin 95%" - "windowsMove,0" - ]; - }; - - dwindle = { - pseudotile = "yes"; - preserve_split = "yes"; - }; - - gesture = [ - "3, horizontal, workspace" - ]; - misc.force_default_wallpaper = 1; - - windowrule = [ - "bordersize 0, floating:0, onworkspace:w[tv1]" - "rounding 0, floating:0, onworkspace:w[tv1]" - "bordersize 0, floating:0, onworkspace:f[1]" - "rounding 0, floating:0, onworkspace:f[1]" - ]; - - workspace = [ - "w[tv1], gapsout:0, gapsin:0" - "f[1], gapsout:0, gapsin:0" - ]; - - windowrulev2 = [ - "float, class:^(org.telegram.desktop)$" - "pin, class:^(org.telegram.desktop)$" - "size 30% 845, class:^(org.telegram.desktop)$" - "move 100%-w-25 73, class:^(org.telegram.desktop)$" - # firefox - "float, title:(Sharing Indicator)" - "noborder, title:(Sharing Indicator)" - "rounding 0, title:(Sharing Indicator)" - "float, title:(Picture-in-Picture)" - "pin, title:(Picture-in-Picture)" - "move 100%-w-21 100%-w-21, title:^(Picture-in-Picture)$" - "noinitialfocus, title:^(Picture-in-Picture)$" - "float, title:^(Save File)$" - "pin, title:^(Save File)$" - # dragon-drop - "pin, class:^(dragon-drop)$" - # torrent - "float, title:^(Torrent Options)$" - "pin, title:^(Torrent Options)$" - # xwaylandvideobridge - "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" - "noanim,class:^(xwaylandvideobridge)$" - "noinitialfocus,class:^(xwaylandvideobridge)$" - "maxsize 1 1,class:^(xwaylandvideobridge)$" - "noblur,class:^(xwaylandvideobridge)$" - ]; - - bind = - [ - "$mainMod, V, togglefloating, " - "$mainMod, P, pseudo," - "$mainMod, I, togglesplit," - "$mainMod, F, fullscreen, 0" - "$mainMod, M, fullscreen, 1" - "$mainMod SHIFT, Q, killactive, " - "$mainMod SHIFT, E, exit," - - # Apps - "$mainMod, D, exec, pkill rofi || rofi -show-icons -show drun" - "$mainMod, Q, exec, $terminal" - "$mainMod, B, exec, zen-beta" - "$mainMod, T, exec, Telegram" - "$mainMod, E, exec, emacsclient -c -a emacs" - "$mainMod CONTROL, E, exec, emacs" - "$mainMod, T, exec, $scripts/toggle-tg.sh" - "$mainMod SHIFT, Esc, exec, swww img ${config.wallpaper}" - ",XF86Favorites, exec, bash $scripts/toggle-vpn.sh" - - # Screenshooting - ", Print, exec, grimblast save screen" - "ALT, Print, exec, grimblast save active" - "SHIFT, Print, exec, grimblast save area" - "CONTROL, Print, exec, grimblast copy screen" - "ALT_CONTROL, Print, exec, grimblast copy active" - "CONTROL_SHIFT, Print, exec, grimblast copy area " - - # Windows - "$mainMod, J, movefocus, d" - "$mainMod, K, movefocus, u" - "$mainMod, H, movefocus, l" - "$mainMod, L, movefocus, r" - "SUPER_SHIFT,J,movewindow,d" - "SUPER_SHIFT,K,movewindow,u" - "SUPER_SHIFT,H,movewindow,l" - "SUPER_SHIFT,L,movewindow,r" - "$mainMod, mouse_down, workspace, e+1" - "$mainMod, mouse_up, workspace, e-1" - ] - ++ ( - # workspaces - # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} - builtins.concatLists (builtins.genList ( - x: let - ws = let - c = (x + 1) / 10; - in - builtins.toString (x + 1 - (c * 10)); - in [ - "$mainMod, ${ws}, workspace, ${toString (x + 1)}" - "$mainMod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}" - ] - ) - 10) - ); - binde = [ - # Volume - ",0x1008FF11,exec,wpctl set-volume @DEFAULT_SINK@ 5%-" - ",0x1008FF13,exec,wpctl set-volume @DEFAULT_SINK@ 5%+" - ",0x1008FF12,exec,wpctl set-mute @DEFAULT_SINK@ toggle" - ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" - ",XF86TouchpadToggle, exec, python3 $scripts/switch-sink.py" - - # Brightness - ",XF86MonBrightnessUp,exec,brightnessctl s +5%" - ",XF86MonBrightnessDown,exec,brightnessctl s 5%-" - ]; - - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - }; - }; - }; -} diff --git a/home-manager/homeModules/kanata.nix b/home-manager/homeModules/kanata.nix deleted file mode 100644 index e69de29..0000000 --- a/home-manager/homeModules/kanata.nix +++ /dev/null diff --git a/home-manager/homeModules/mako.nix b/home-manager/homeModules/mako.nix deleted file mode 100644 index 057cd95..0000000 --- a/home-manager/homeModules/mako.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: { - options = { - mako.enable = lib.mkEnableOption "enable mako"; - }; - - config = lib.mkIf config.mako.enable { - services.mako = { - enable = true; - settings = { - anchor = "bottom-right"; - default-timeout = 5000; - border-size = 3; - border-radius = 7; - }; - }; - }; -} diff --git a/home-manager/homeModules/niri.nix b/home-manager/homeModules/niri.nix deleted file mode 100644 index 6ee04cc..0000000 --- a/home-manager/homeModules/niri.nix +++ /dev/null @@ -1,258 +0,0 @@ -{ - pkgs, - config, - lib, - inputs, - ... -}: -with lib; let - cfg = config.niri; -in { - imports = [ - ./waybar.nix - ./rofi.nix - ./mako.nix - inputs.niri.homeModules.niri - inputs.niri.homeModules.stylix - ]; - - options = { - niri = { - enable = mkEnableOption "enable niri config"; - }; - }; - - config = mkIf cfg.enable { - waybar = { - enable = true; - windowManager = "niri"; - workspaceIcons = { - # "1" = "α"; - # "2" = "β"; - # "3" = "γ"; - # "4" = "δ"; - # "5" = "ε"; - # urgent = "λ"; - # default = "ω"; - "internet" = ""; - "discord" = ""; - "chat" = "<b></b>"; - - "active" = ""; - "default" = ""; - }; - }; - rofi.enable = true; - mako.enable = true; - - home.packages = with pkgs; [ - pkgs.xwayland-satellite - swww - brightnessctl - grimblast - polkit_gnome - kdePackages.xwaylandvideobridge - wl-clipboard - libnotify - wl-mirror - ]; - - stylix.targets.niri.enable = true; - programs.niri = { - enable = true; - - settings = { - input = { - keyboard.xkb = { - layout = "us,ru"; - options = "grp:win_space_toggle,compose:ralt,ctrl:nocaps"; - }; - touchpad = { - tap = true; - dwt = false; - dwtp = true; - natural-scroll = true; - }; - warp-mouse-to-focus.enable = true; - focus-follows-mouse = { - enable = true; - max-scroll-amount = "25%"; - }; - }; - - cursor = { - theme = "Bibata-Modern-Ice"; - size = 24; - }; - - layout = { - gaps = 16; - center-focused-column = "never"; - preset-column-widths = [ - {proportion = 0.33333;} - {proportion = 0.5;} - {proportion = 0.66667;} - ]; - border = { - enable = true; - }; - focus-ring.enable = false; - }; - - animations = { - workspace-switch.enable = false; - }; - - # workspaces = { - # internet = {}; - # code = {}; - # }; - - window-rules = [ - { - matches = [ - { - app-id = "steam"; - title = ''r#"^notificationtoasts_\d+_desktop$"#''; - } - ]; - default-floating-position = { - x = 20; - y = 10; - relative-to = "bottom-right"; - }; - } - ]; - - spawn-at-startup = [ - {argv = ["swww-daemon"];} - {argv = ["mako"];} - ]; - - prefer-no-csd = true; - - binds = with config.lib.niri.actions; let - scripts = "${./attachments/hypr-scripts}"; - in { - "Mod+Q".action.spawn = "alacritty"; - "Mod+D".action.spawn = ["sh" "-c" "pkill rofi || rofi -show-icons -show drun"]; - "Mod+B".action.spawn = "zen-beta"; - "Mod+E".action.spawn = ["emacsclient" "-c" "-a" "emacs"]; - "Mod+T".action.spawn = "Telegram"; - - "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"]; - "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"]; - "XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"]; - "XF86AudioMicMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"]; - - "XF86MonBrightnessUp".action.spawn = ["brightnessctl" "s" "+5%"]; - "XF86MonBrightnessDown".action.spawn = ["brightnessctl" "s" "5%-"]; - - "XF86Favorites".action.spawn = "${scripts}/toggle-vpn.sh"; - "XF86TouchpadToggle".action.spawn = "${scripts}/switch-sink.py"; - - "Mod+Shift+Slash".action = show-hotkey-overlay; - - "Super+Alt+L".action.spawn = "swaylock"; - "Mod+Shift+E".action = quit; - "Mod+Shift+P".action = power-off-monitors; - "Mod+Shift+Q".action = close-window; - - "Mod+H".action = focus-column-left; - "Mod+J".action = focus-window-down; - "Mod+K".action = focus-window-up; - "Mod+L".action = focus-column-right; - - "Mod+Shift+H".action = move-column-left; - "Mod+Shift+J".action = move-window-down; - "Mod+Shift+K".action = move-window-up; - "Mod+Shift+L".action = move-column-right; - - "Mod+Home".action = focus-column-first; - "Mod+End".action = focus-column-last; - - "Mod+Ctrl+Home".action = move-column-to-first; - "Mod+Ctrl+End".action = move-column-to-last; - - "Mod+Ctrl+H".action = focus-monitor-left; - "Mod+Ctrl+J".action = focus-monitor-down; - "Mod+Ctrl+K".action = focus-monitor-up; - "Mod+Ctrl+L".action = focus-monitor-right; - - "Mod+Shift+Ctrl+H".action = move-column-to-monitor-left; - "Mod+Shift+Ctrl+J".action = move-column-to-monitor-down; - "Mod+Shift+Ctrl+K".action = move-column-to-monitor-up; - "Mod+Shift+Ctrl+L".action = move-column-to-monitor-right; - "Mod+P" = { - repeat = false; - action.spawn-sh = "wl-mirror $(niri msg --json focused-output | jq -r .name)"; - }; - - "Mod+U".action = focus-workspace-down; - "Mod+I".action = focus-workspace-up; - - "Mod+Ctrl+U".action = move-column-to-workspace-down; - "Mod+Ctrl+I".action = move-column-to-workspace-up; - - "Mod+Shift+U".action = move-workspace-down; - "Mod+Shift+I".action = move-workspace-down; - - "Mod+WheelScrollRight".action = focus-column-right; - "Mod+WheelScrollLeft".action = focus-column-left; - - "Mod+Ctrl+WheelScrollRight".action = move-column-right; - "Mod+Ctrl+WheelScrollLeft".action = move-column-left; - - "Mod+Shift+WheelScrollDown".action = focus-column-right; - "Mod+Shift+WheelScrollUp".action = focus-column-left; - - "Mod+Ctrl+Shift+WheelScrollDown".action = move-column-right; - "Mod+Ctrl+Shift+WheelScrollUp".action = move-column-left; - - "Mod+1".action.focus-workspace = 1; - "Mod+2".action.focus-workspace = 2; - "Mod+3".action.focus-workspace = 3; - "Mod+4".action.focus-workspace = 4; - "Mod+5".action.focus-workspace = 5; - "Mod+6".action.focus-workspace = 6; - "Mod+7".action.focus-workspace = 7; - "Mod+8".action.focus-workspace = 8; - "Mod+9".action.focus-workspace = 9; - - "Mod+Shift+1".action.move-column-to-workspace = 1; - "Mod+Shift+2".action.move-column-to-workspace = 2; - "Mod+Shift+3".action.move-column-to-workspace = 3; - "Mod+Shift+4".action.move-column-to-workspace = 4; - "Mod+Shift+5".action.move-column-to-workspace = 5; - "Mod+Shift+6".action.move-column-to-workspace = 6; - "Mod+Shift+7".action.move-column-to-workspace = 7; - "Mod+Shift+8".action.move-column-to-workspace = 8; - "Mod+Shift+9".action.move-column-to-workspace = 9; - - "Mod+Comma".action = consume-window-into-column; - "Mod+Period".action = expel-window-from-column; - "Mod+BracketLeft".action = consume-or-expel-window-left; - "Mod+BracketRight".action = consume-or-expel-window-right; - - "Mod+M".action = maximize-column; - "Mod+F".action = fullscreen-window; - "Mod+C".action = center-column; - - "Mod+R".action = switch-preset-column-width; - "Mod+Minus".action.set-column-width = "-10%"; - "Mod+Equal".action.set-column-width = "+10%"; - "Mod+Shift+Minus".action.set-window-height = "-10%"; - "Mod+Shift+Equal".action.set-window-height = "+10%"; - - "Mod+V".action = toggle-window-floating; - - "Print".action.screenshot.show-pointer = true; - "Shift+Print".action.screenshot-screen.write-to-disk = true; - "Ctrl+Shift+Print".action.screenshot-screen.write-to-disk = false; - "Alt+Print".action.screenshot-window.write-to-disk = true; - "Ctrl+Alt+Print".action.screenshot-window.write-to-disk = false; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/nvim.nix b/home-manager/homeModules/nvim.nix deleted file mode 100644 index be17e3a..0000000 --- a/home-manager/homeModules/nvim.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - nvim.enable = lib.mkEnableOption "enable nvim"; - }; -} - diff --git a/home-manager/homeModules/picom.nix b/home-manager/homeModules/picom.nix deleted file mode 100644 index af57002..0000000 --- a/home-manager/homeModules/picom.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - picom.enable = lib.mkEnableOption "enable picom"; - }; - - config = lib.mkIf config.picom.enable { - services.picom = { - enable = true; - settings = { - fading = true; - fade-delta=3; - blur-background = false; - corner-radius = 8; - # blur = { - # method = "dual_kawase"; - # size = 12; - # deviation = false; - # strength = 2; - # kern = "3x3box"; - # }; - backend = "glx"; - vsync = true; - mark = { - wmwin-focused = true; - overdir-focused = true; - }; - detect = { - rounded-corners = true; - client-opacity = true; - transient = true; - }; - use-ewmh-active-win = true; - glx-no-stencil = true; - use-damage = true; - }; - wintypes = { - tooltip = { - fade = true; - shadow = true; - full-shadow = false; - blur = false; - focus = true; - }; - dock = { - shadow = false; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/rofi.nix b/home-manager/homeModules/rofi.nix deleted file mode 100644 index 48434ec..0000000 --- a/home-manager/homeModules/rofi.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: { - options = { - rofi.enable = lib.mkEnableOption "enable rofi"; - rofi.package = lib.mkPackageOption pkgs "rofi package" {default = ["rofi"];}; - }; - - config = lib.mkIf config.rofi.enable { - programs.rofi = { - enable = true; - package = config.rofi.package; - theme = with config.lib.stylix.colors.withHashtag; - builtins.toFile "theme.rasi" '' - * { - font: "FiraCode Nerd Font Medium 12"; - - bg0: ${base01}; - bg1: ${base02}; - fg0: ${base04}; - - accent-color: ${base03}; - urgent-color: #ffffff; - - background-color: transparent; - text-color: @fg0; - - margin: 0; - padding: 0; - spacing: 0; - } - - ${builtins.readFile ./attachments/rofi-theme.rasi}''; - cycle = true; - plugins = with pkgs; [ - rofi-emoji - rofi-calc - ]; - extraConfig = { - kb-row-up = "Up,Ctrl+p"; - kb-row-down = "Down,Ctrl+n"; - }; - }; - }; -} diff --git a/home-manager/homeModules/stylix.nix b/home-manager/homeModules/stylix.nix deleted file mode 100644 index 604307d..0000000 --- a/home-manager/homeModules/stylix.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ pkgs, config, lib, inputs, ... }: - -{ - imports = [ - inputs.stylix.homeModules.stylix - ]; - - options = { - stylixConfig = { - enable = lib.mkEnableOption "enable stylix"; - theme = lib.mkOption { type = lib.types.str; }; - }; - wallpaper = lib.mkOption { type = with lib.types; oneOf [str path package]; }; - }; - config = lib.mkIf config.stylixConfig.enable { - wallpaper = with config.lib.stylix.colors.withHashtag; - pkgs.runCommand "cat.png" {} '' - pastel=${pkgs.pastel}/bin/pastel - SHADOWS=$($pastel darken 0.1 '${base05}' | $pastel format hex) - TAIL=$($pastel lighten 0.1 '${base02}' | $pastel format hex) - HIGHLIGHTS=$($pastel lighten 0.1 '${base05}' | $pastel format hex) - - ${pkgs.imagemagick}/bin/convert ${./attachments/basecat.png} \ - -fill '${base00}' -opaque black \ - -fill '${base05}' -opaque white \ - -fill '${base08}' -opaque blue \ - -fill $SHADOWS -opaque gray \ - -fill '${base02}' -opaque orange \ - -fill $TAIL -opaque green \ - -fill $HIGHLIGHTS -opaque brown \ - $out''; - stylix = { - enable = true; - targets = { - rofi.enable = false; - waybar.enable = false; - firefox.profileNames = [ "ShyFox" ]; - }; - - polarity = "dark"; - - base16Scheme = "${pkgs.base16-schemes}/share/themes/${config.stylixConfig.theme}.yaml"; - image = config.wallpaper; - cursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Ice"; - size = 24; - }; - - fonts = { - sizes.terminal = 11; - serif = { - package = pkgs.noto-fonts; - name = "Noto Serif"; - }; - - sansSerif = { - package = pkgs.rubik; - name = "Rubik"; - }; - - monospace = { - package = pkgs.nerd-fonts.fira-code; - name = "FiraCode Nerd Font"; - }; - - emoji = { - package = pkgs.noto-fonts-emoji; - name = "Noto Color Emoji"; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/sxhkd.nix b/home-manager/homeModules/sxhkd.nix deleted file mode 100644 index ed20d89..0000000 --- a/home-manager/homeModules/sxhkd.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ pkgs, config, lib, ... }: - -{ - options = { - sxhkd.enable = lib.mkEnableOption "enable sxhkd"; - }; - - config = lib.mkIf config.sxhkd.enable { - services.sxhkd = { - enable = true; - keybindings = { - "{_,shift} + Print" = "xfce4-screenshooter -{r,f}"; - "{_,shift} + control + Print" = "xfce4-screenshooter -{r,f} --save /dev/stdout | xclip -i -selection clipboard -t image/png"; - "super + apostrophe" = "betterlockscreen -l"; # Lockscreen - "super + grave" = "polybar -r"; # Restart polybar - "super + q" = "alacritty"; # Open terminal - "super + d" = "rofi -show-icons -show drun"; # Open app chooser - "super + shift + d" = "CM_LAUNCHER=rofi clipmenu"; - "super + b" = "zen-beta"; # Open browser - "super + e" = "emacsclient -c -a 'emacs'"; # Open emacs - "super + Escape" = "pkill -USR1 -x sxhkd"; # Restart sxhkd - "super + shift + {e,r}" = "bspc {quit,wm -r}"; # Quit/restart bspwm - "super + {control,shift} + q" = "bspc node -{k,c}"; # Close/kill window - "super + m" = "bspc desktop -l next"; # Maximise window - "super + {t,shift + t,v,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}"; # Set window state - "super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}"; # Focus window in the given direction - "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; # Move a floating window - "super + s : {h,j,k,l}" = ''STEP=20; SELECTION={1,2,3,4};\ - bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) ||\ - bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION)''; # Better window resize - "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local"; # Focus next/previos desktop - "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} $(bspc query -D -m focused | awk 'NR=={1-9,0}')"; # Focus/send window to the given desktop on the focused monitor - "super + o" = "bspc node -m last -f"; # Send window to the last used monitor - "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}"; # Preselect the window ratio - "super + ctrl + space" = "bspc node -p cancel"; # Cansel the preselected ratio - "super + n" = "fish ~/.nixfiles/home-manager/home/services/polybar/hide.fish"; - }; - }; - }; -} diff --git a/home-manager/homeModules/tmux.nix b/home-manager/homeModules/tmux.nix deleted file mode 100644 index 7d74479..0000000 --- a/home-manager/homeModules/tmux.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs, lib, config, ... }: - -{ - options = { - tmux.enable = lib.mkEnableOption "enable tmux config"; - }; - - config = lib.mkIf config.tmux.enable { - stylix.targets.tmux.enable = true; - home.packages = with pkgs; [ - fzf - ]; - programs.tmux = { - enable = true; - prefix = "C-x"; - baseIndex = 1; - historyLimit = 10000; - extraConfig = '' - set -g mode-keys vi - set -g default-terminal "''${TERM}" - set -sg terminal-overrides ",*:RGB" - - set -g pane-border-lines simple - - set -g escape-time 0 - set -g renumber-windows on - - set -g status-style bg=default,fg=black,bright - set -g status-left "" - set -g window-status-format " #W " - set -g window-status-current-format " #W " - - set -g window-status-bell-style "bg=red,nobold" - set -g window-status-current-style \ - "#{?window_zoomed_flag,bg=yellow,bg=green,nobold}" - - bind j next-window - bind k previous-window - ''; - plugins = with pkgs.tmuxPlugins; [ - tmux-fzf - ]; - }; - }; -} diff --git a/home-manager/homeModules/waybar.nix b/home-manager/homeModules/waybar.nix deleted file mode 100644 index eb9cd41..0000000 --- a/home-manager/homeModules/waybar.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -with lib; let - cfg = config.waybar; -in { - options = { - waybar = { - enable = mkEnableOption "enable waybar"; - windowManager = mkOption { - description = "WM string to use with /workspaces and /language"; - default = "hyprland"; - type = types.str; - }; - workspaceIcons = mkOption { - default = { - "1" = "α"; - "2" = "β"; - "3" = "γ"; - "4" = "δ"; - "5" = "ε"; - urgent = "λ"; - default = "ω"; - }; - }; - }; - }; - - config = mkIf cfg.enable { - programs.waybar = { - enable = true; - systemd.enable = true; - style = with config.lib.stylix.colors.withHashtag; - '' - @define-color base00 ${base00}; @define-color base01 ${base01}; @define-color base02 ${base02}; @define-color base03 ${base03}; - @define-color base04 ${base04}; @define-color base05 ${base05}; @define-color base06 ${base06}; @define-color base07 ${base07}; - - @define-color base08 ${base08}; @define-color base09 ${base09}; @define-color base0A ${base0A}; @define-color base0B ${base0B}; - @define-color base0C ${base0C}; @define-color base0D ${base0D}; @define-color base0E ${base0E}; @define-color base0F ${base0F}; - '' - + builtins.readFile ./attachments/waybar-style.css; - settings = { - bar = { - layer = "top"; - height = 30; - spacing = 8; - margin-down = 5; - modules-left = ["${cfg.windowManager}/workspaces"]; - modules-center = ["clock"]; - modules-right = ["network" "custom/vpn" "memory" "temperature" "backlight" "pulseaudio" "${cfg.windowManager}/language" "tray" "battery"]; - "${cfg.windowManager}/workspaces" = { - format = "{icon}"; - "format-icons" = cfg.workspaceIcons; - }; - "${cfg.windowManager}/language" = { - format = "{} <span font-family='Material Design Icons' rise='-1000' size='medium'></span>"; - format-ru = "ru"; - format-en = "en"; - }; - "tray" = { - spacing = 10; - }; - "clock" = { - format = "{:%H:%M }"; - tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; - format-alt = "{:%d %h %Y }"; - }; - "memory" = { - format = "{}% "; - }; - "temperature" = { - format = "{temperatureC}°C"; - }; - "backlight" = { - format = "{percent}% {icon}"; - format-icons = ["" "" ""]; - }; - "battery" = { - "states" = { - good = 95; - warning = 30; - critical = 15; - }; - format = "{capacity}% {icon}"; - format-charging = "{capacity}% "; - format-plugged = "{capacity}% "; - format-alt = "{icon}"; - format-icons = ["" "" "" "" "" "" "" "" "" ""]; - }; - "network" = { - interface = "wlp*"; - format-wifi = "{essid} ({signalStrength}%) "; - format-ethernet = "{ipaddr}/{cidr} "; - tooltip-format = "{ifname} via {gwaddr} "; - format-linked = "{ifname} (No IP) "; - format-disconnected = ""; - }; - "custom/vpn" = { - format = "{text}"; - exec = "${./attachments/hypr-scripts/toggle-vpn.sh} waybar"; - return-type = "json"; - }; - "pulseaudio" = { - format = "{volume}% {icon} {format_source}"; - format-bluetooth = "{volume}% <span font-family='Material Design Icons' rise='-2000' font-size='x-large'></span> {format_source}"; - format-bluetooth-muted = " {format_source}"; - format-muted = " {format_source}"; - format-source = "{volume}%"; - format-source-muted = ""; - - "format-icons" = { - headphone = ""; - hands-free = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - muted-icon = ""; - default = ["" "" ""]; - }; - }; - }; - }; - }; - }; -} diff --git a/home-manager/homeModules/zen-browser.nix b/home-manager/homeModules/zen-browser.nix deleted file mode 100644 index 5de071f..0000000 --- a/home-manager/homeModules/zen-browser.nix +++ /dev/null @@ -1,142 +0,0 @@ -{ pkgs, config, lib, inputs, ... }: - -{ - imports = [ - inputs.zen-browser.homeModules.beta - ]; - - options = { - zen-browser.enable = lib.mkEnableOption "enable zen-browser"; - }; - - config = lib.mkIf config.zen-browser.enable { - stylix.targets.zen-browser.profileNames = [ "ZZZ" ]; - xdg.mimeApps = { - enable = true; - associations.added = { - "x-scheme-handler/http" = "zen-beta.desktop"; - "x-scheme-handler/https" = "zen-beta.desktop"; - "x-scheme-handler/chrome" = "zen-beta.desktop"; - "text/html" = "zen-beta.desktop"; - "application/x-extension-htm" = "zen-beta.desktop"; - "application/x-extension-html" = "zen-beta.desktop"; - "application/x-extension-shtml" = "zen-beta.desktop"; - "application/xhtml+xml" = "zen-beta.desktop"; - "application/x-extension-xhtml" = "zen-beta.desktop"; - "application/x-extension-xht" = "zen-beta.desktop"; - }; - - defaultApplications = { - "x-scheme-handler/http" = "zen-beta.desktop"; - "x-scheme-handler/https" = "zen-beta.desktop"; - "x-scheme-handler/chrome" = "zen-beta.desktop"; - "text/html" = "zen-beta.desktop"; - "application/x-extension-htm" = "zen-beta.desktop"; - "application/x-extension-html" = "zen-beta.desktop"; - "application/x-extension-shtml" = "zen-beta.desktop"; - "application/xhtml+xml" = "zen-beta.desktop"; - "application/x-extension-xhtml" = "zen-beta.desktop"; - "application/x-extension-xht" = "zen-beta.desktop"; - "application/pdf" = "zen-beta.desktop"; - }; - }; - - programs.zen-browser = { - enable = true; - policies = { - AutofillAddressEnabled = false; - AutofillCreditCardEnabled = false; - DisableAppUpdate = true; - DisableFeedbackCommands = true; - DisableFirefoxStudies = true; - DisableTelemetry = true; - DontCheckDefaultBrowser = true; - NoDefaultBookmarks = true; - OfferToSaveLogins = false; - }; - - profiles.ZZZ = { - isDefault = true; - extensions = { - packages = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - ublock-origin - sponsorblock - return-youtube-dislikes - firefox-color - tampermonkey - duckduckgo-privacy-essentials - mal-sync - sidebery - ]; - - force = true; - }; - - settings = { - "svg.context-properties.content.enabled" = true; - "browser.search.suggest.enabled" = true; - "extensions.autoDisableScopes" = 0; - "zen.view.grey-out-inactive-windows" = false; - "zen.view.experimental-no-window-controls" = true; - }; - - search = { - force = true; - engines = { - "Brave" = { - urls = [ - { template = "https://search.brave.com/search?q={searchTerms}"; } - { - type = "application/x-suggestions+json"; - template = "https://search.brave.com/api/suggest?q={searchTerms}"; - } - ]; - - icon = "https://cdn.search.brave.com/serp/v2/_app/immutable/assets/safari-pinned-tab.539899c7.svg"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!br" ]; - }; - "NixOS Packages" = { - urls = [{ template = "https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!ns" ]; - }; - "NixOS Options" = { - urls = [{ template = "https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!no" ]; - }; - "HomeManager" = { - urls = [{ template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master"; }]; - icon = "https://github.com/mipmip/home-manager-option-search/blob/main/images/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!hs" ]; - }; - "NixWiki" = { - urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }]; - icon = "https://nixos.org/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!nw" ]; - }; - "Kinopoisk" = { - urls = [{ template = "https://www.kinopoisk.ru/index.php?kp_query={searchTerms}"; }]; - icon = "https://www.kinopoisk.ru/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!ks" ]; - }; - "MDN Docs" = { - urls = [{ template = "https://developer.mozilla.org/en-US/search?q={searchTerms}"; }]; - icon = "https://developer.mozilla.org/favicon-48x48.bc390275e955dacb2e65.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "!md" ]; - }; - }; - default = "Brave"; - }; - }; - }; - }; -} |
