Compare commits
40
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a2c0153c7 | ||
|
|
93c1ef048d | ||
|
|
ae8f793265 | ||
|
|
c62cd37298 | ||
|
|
0757d0ac9d | ||
|
|
ac8ff55089 | ||
|
|
42be3086e2 | ||
|
|
8de971278a | ||
|
|
5ecf4b09e7 | ||
|
|
bc4a34cbce | ||
|
|
ea757b4185 | ||
|
|
9a79b23a52 | ||
|
|
935d6d999b | ||
|
|
855732f3c1 | ||
|
|
a2148c1e19 | ||
|
|
679af71d41 | ||
|
|
7bc3ec6d98 | ||
|
|
4ca12fd342 | ||
|
|
b24521fd4f | ||
|
|
b561e7e2f3 | ||
|
|
b473dbbe74 | ||
|
|
e1700384a8 | ||
|
|
ebc6245ea2 | ||
|
|
5cd3ac24a1 | ||
|
|
7cef694420 | ||
|
|
ccebfdcdd5 | ||
|
|
6e50e217c3 | ||
|
|
f0835c1a06 | ||
|
|
98cf182406 | ||
|
|
16321c0c4f | ||
|
|
9d7b1f5850 | ||
|
|
3c5fbbf581 | ||
|
|
a38b5d1e15 | ||
|
|
f223178f39 | ||
|
|
33f22e6471 | ||
|
|
b21b6d2462 | ||
|
|
795f2aad5b | ||
|
|
cf156ca80b | ||
|
|
a282e01692 | ||
|
|
88f9e2e408 |
@@ -0,0 +1,2 @@
|
|||||||
|
[General]
|
||||||
|
theme=KvArcDark
|
||||||
@@ -4,8 +4,15 @@
|
|||||||
<icon>utilities-terminal</icon>
|
<icon>utilities-terminal</icon>
|
||||||
<name>Open Terminal Here</name>
|
<name>Open Terminal Here</name>
|
||||||
<unique-id>1594675818593070-1</unique-id>
|
<unique-id>1594675818593070-1</unique-id>
|
||||||
<command>urxvt -cd %f</command>
|
|
||||||
<description>Open Terminal in the Current Directory</description>
|
<description>Open Terminal in the Current Directory</description>
|
||||||
|
|
||||||
|
<!-- >>> session=xorg -->
|
||||||
|
<command>urxvt -cd %f</command>
|
||||||
|
<!-- <<< -->
|
||||||
|
<!-- >>> session=wayland -->
|
||||||
|
<!-- <command>ghostty -e "sh -c 'cd %f && exec $SHELL'"</command> -->
|
||||||
|
<!-- <<< -->
|
||||||
|
|
||||||
<patterns>*</patterns>
|
<patterns>*</patterns>
|
||||||
<startup-notify/>
|
<startup-notify/>
|
||||||
<directories/>
|
<directories/>
|
||||||
|
|||||||
@@ -169,7 +169,7 @@
|
|||||||
;; -----------------------------------------
|
;; -----------------------------------------
|
||||||
;; Recentf
|
;; Recentf
|
||||||
|
|
||||||
(elpaca nil (setup recentf ; built-in
|
(elpaca-nil (setup recentf ; built-in
|
||||||
(:require recentf)
|
(:require recentf)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq recentf-auto-cleanup 'never)
|
(setq recentf-auto-cleanup 'never)
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
(super-save-mode)))
|
(super-save-mode)))
|
||||||
|
|
||||||
(elpaca nil (setup desktop ; built-in
|
(elpaca-nil (setup desktop ; built-in
|
||||||
(:require desktop)
|
(:require desktop)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq desktop-base-file-name "state")
|
(setq desktop-base-file-name "state")
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
;; Adding to project.el project directory detection
|
;; Adding to project.el project directory detection
|
||||||
;; https://michael.stapelberg.ch/posts/2021-04-02-emacs-project-override/
|
;; https://michael.stapelberg.ch/posts/2021-04-02-emacs-project-override/
|
||||||
|
|
||||||
(elpaca nil (setup project ; built-in
|
(elpaca-nil (setup project ; built-in
|
||||||
(setq project-list-file (expand-file-name "projects" dot-cache-dir))
|
(setq project-list-file (expand-file-name "projects" dot-cache-dir))
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
|
|
||||||
@@ -144,7 +144,11 @@
|
|||||||
"Return project name."
|
"Return project name."
|
||||||
(let ((project (project-current)))
|
(let ((project (project-current)))
|
||||||
(if project
|
(if project
|
||||||
(file-name-nondirectory (directory-file-name (project-root project)))
|
(let* ((project (file-truename (directory-file-name (project-root (project-current)))))
|
||||||
|
(parent-dir-full (file-name-directory (directory-file-name project)))
|
||||||
|
(parent-dir (file-name-nondirectory (substring parent-dir-full 0 -1)))
|
||||||
|
(filename (file-name-nondirectory project)))
|
||||||
|
(concat filename "/" parent-dir))
|
||||||
"-")))
|
"-")))
|
||||||
|
|
||||||
(defun dot/project-save-project-buffers ()
|
(defun dot/project-save-project-buffers ()
|
||||||
@@ -159,12 +163,12 @@
|
|||||||
|
|
||||||
;; Enable color escape codes.
|
;; Enable color escape codes.
|
||||||
|
|
||||||
(elpaca nil (setup ansi-color ; built-in
|
(elpaca-nil (setup ansi-color ; built-in
|
||||||
(:with-mode compilation-filter (:hook ansi-color-compilation-filter))
|
(:with-mode compilation-filter (:hook ansi-color-compilation-filter))
|
||||||
;; :hook (compilation-filter . ansi-color-compilation-filter)
|
;; :hook (compilation-filter . ansi-color-compilation-filter)
|
||||||
(:when-loaded (setq ansi-color-bold-is-bright t))))
|
(:when-loaded (setq ansi-color-bold-is-bright t))))
|
||||||
|
|
||||||
(elpaca nil (setup compile ; built-in
|
(elpaca-nil (setup compile ; built-in
|
||||||
(defun dot/compile-disable-underline () ""
|
(defun dot/compile-disable-underline () ""
|
||||||
(face-remap-add-relative 'underline :underline nil))
|
(face-remap-add-relative 'underline :underline nil))
|
||||||
(:with-mode comint-mode (:hook dot/compile-disable-underline))
|
(:with-mode comint-mode (:hook dot/compile-disable-underline))
|
||||||
@@ -192,9 +196,11 @@
|
|||||||
c++-mode ; clangd
|
c++-mode ; clangd
|
||||||
php-mode ; nodejs-intelephense
|
php-mode ; nodejs-intelephense
|
||||||
csharp-mode ; omnisharp-roslyn-bin
|
csharp-mode ; omnisharp-roslyn-bin
|
||||||
|
go-mode ; gopls
|
||||||
|
kotlin-mode ; kotlin-language-server
|
||||||
lua-mode ; lua-language-server
|
lua-mode ; lua-language-server
|
||||||
latex-mode ; texlab
|
latex-mode ; texlab
|
||||||
kotlin-mode ; kotlin-language-server
|
swift-mode ; swift-bin
|
||||||
web-mode)
|
web-mode)
|
||||||
(:hook lsp-deferred))
|
(:hook lsp-deferred))
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
@@ -307,7 +313,7 @@
|
|||||||
|
|
||||||
;;; C/C++
|
;;; C/C++
|
||||||
|
|
||||||
(elpaca nil (setup c-mode ; built-in
|
(elpaca-nil (setup c-mode ; built-in
|
||||||
;; C++ // line comment style in c-mode
|
;; C++ // line comment style in c-mode
|
||||||
(defun dot/c-mode-comment-style () ""
|
(defun dot/c-mode-comment-style () ""
|
||||||
(c-toggle-comment-style -1))
|
(c-toggle-comment-style -1))
|
||||||
@@ -323,7 +329,7 @@
|
|||||||
;; - omnisharp-roslyn-bin
|
;; - omnisharp-roslyn-bin
|
||||||
;; - netcoredbg (edit PKGBUILD to detect dotnet -6.0 dependencies)
|
;; - netcoredbg (edit PKGBUILD to detect dotnet -6.0 dependencies)
|
||||||
|
|
||||||
(elpaca nil (setup csharp-mode)) ; built-in
|
(elpaca-nil (setup csharp-mode)) ; built-in
|
||||||
|
|
||||||
;;; CMake
|
;;; CMake
|
||||||
|
|
||||||
@@ -333,7 +339,7 @@
|
|||||||
|
|
||||||
;;; Emacs Lisp
|
;;; Emacs Lisp
|
||||||
|
|
||||||
(elpaca nil (setup emacs-lisp ; built-in
|
(elpaca-nil (setup emacs-lisp ; built-in
|
||||||
(defun dot/elisp-init () ""
|
(defun dot/elisp-init () ""
|
||||||
(setq-local indent-tabs-mode nil))
|
(setq-local indent-tabs-mode nil))
|
||||||
(:hook dot/elisp-init)))
|
(:hook dot/elisp-init)))
|
||||||
@@ -342,9 +348,15 @@
|
|||||||
|
|
||||||
(elpaca-setup glsl-mode)
|
(elpaca-setup glsl-mode)
|
||||||
|
|
||||||
|
;;; Golang
|
||||||
|
|
||||||
|
(elpaca-setup go-mode)
|
||||||
|
|
||||||
;;; HTML
|
;;; HTML
|
||||||
|
|
||||||
(elpaca-setup web-mode)
|
(elpaca-setup web-mode
|
||||||
|
(:file-match "\\.ts")
|
||||||
|
(:file-match "\\.vue"))
|
||||||
|
|
||||||
;;; Kotlin
|
;;; Kotlin
|
||||||
|
|
||||||
@@ -363,16 +375,26 @@
|
|||||||
(:hook dot/php-mode-init))
|
(:hook dot/php-mode-init))
|
||||||
|
|
||||||
(elpaca-setup restclient)
|
(elpaca-setup restclient)
|
||||||
|
(elpaca-setup restclient-jq
|
||||||
|
(:load-after restclient))
|
||||||
|
|
||||||
;;; Python
|
;;; Python
|
||||||
|
|
||||||
(elpaca nil (setup python-mode ; built-in
|
(elpaca-nil (setup python-mode ; built-in
|
||||||
(defun dot/python-mode-init () ""
|
(defun dot/python-mode-init () ""
|
||||||
(setq-local indent-tabs-mode t)
|
(setq-local indent-tabs-mode t)
|
||||||
(setq-local tab-width (default-value 'tab-width))
|
(setq-local tab-width (default-value 'tab-width))
|
||||||
(setq python-indent-offset (default-value 'tab-width)))
|
(setq python-indent-offset (default-value 'tab-width)))
|
||||||
(:hook dot/python-mode-init)))
|
(:hook dot/python-mode-init)))
|
||||||
|
|
||||||
|
;;; Swift
|
||||||
|
|
||||||
|
(elpaca-setup swift-mode)
|
||||||
|
(elpaca-setup lsp-sourcekit
|
||||||
|
(:load-after lsp-mode)
|
||||||
|
(:when-loaded
|
||||||
|
(setq lsp-sourcekit-executable "/usr/bin/sourcekit-lsp")))
|
||||||
|
|
||||||
;;; YAML
|
;;; YAML
|
||||||
|
|
||||||
(elpaca-setup yaml-mode)
|
(elpaca-setup yaml-mode)
|
||||||
@@ -424,7 +446,7 @@
|
|||||||
|
|
||||||
;;; Flyspell
|
;;; Flyspell
|
||||||
|
|
||||||
(elpaca nil (setup ispell ; built-in
|
(elpaca-nil (setup ispell ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq ispell-program-name "/usr/bin/hunspell")
|
(setq ispell-program-name "/usr/bin/hunspell")
|
||||||
(ispell-set-spellchecker-params)
|
(ispell-set-spellchecker-params)
|
||||||
|
|||||||
@@ -9,12 +9,12 @@
|
|||||||
;; -----------------------------------------
|
;; -----------------------------------------
|
||||||
|
|
||||||
;; Elpaca bootstrap
|
;; Elpaca bootstrap
|
||||||
(defvar elpaca-installer-version 0.6)
|
(defvar elpaca-installer-version 0.9)
|
||||||
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
|
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
|
||||||
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
|
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
|
||||||
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
|
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
|
||||||
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
|
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
|
||||||
:ref nil
|
:ref nil :depth 1 :inherit ignore
|
||||||
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
|
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
|
||||||
:build (:not elpaca--activate-package)))
|
:build (:not elpaca--activate-package)))
|
||||||
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
|
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
|
||||||
@@ -26,16 +26,18 @@
|
|||||||
(make-directory repo t)
|
(make-directory repo t)
|
||||||
(when (< emacs-major-version 28) (require 'subr-x))
|
(when (< emacs-major-version 28) (require 'subr-x))
|
||||||
(condition-case-unless-debug err
|
(condition-case-unless-debug err
|
||||||
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
|
(if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
|
||||||
((zerop (call-process "git" nil buffer t "clone"
|
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
|
||||||
(plist-get order :repo) repo)))
|
,@(when-let* ((depth (plist-get order :depth)))
|
||||||
((zerop (call-process "git" nil buffer t "checkout"
|
(list (format "--depth=%d" depth) "--no-single-branch"))
|
||||||
(or (plist-get order :ref) "--"))))
|
,(plist-get order :repo) ,repo))))
|
||||||
(emacs (concat invocation-directory invocation-name))
|
((zerop (call-process "git" nil buffer t "checkout"
|
||||||
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
|
(or (plist-get order :ref) "--"))))
|
||||||
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
|
(emacs (concat invocation-directory invocation-name))
|
||||||
((require 'elpaca))
|
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
|
||||||
((elpaca-generate-autoloads "elpaca" repo)))
|
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
|
||||||
|
((require 'elpaca))
|
||||||
|
((elpaca-generate-autoloads "elpaca" repo)))
|
||||||
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
|
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
|
||||||
(error "%s" (with-current-buffer buffer (buffer-string))))
|
(error "%s" (with-current-buffer buffer (buffer-string))))
|
||||||
((error) (warn "%s" err) (delete-directory repo 'recursive))))
|
((error) (warn "%s" err) (delete-directory repo 'recursive))))
|
||||||
@@ -46,8 +48,14 @@
|
|||||||
(add-hook 'after-init-hook #'elpaca-process-queues)
|
(add-hook 'after-init-hook #'elpaca-process-queues)
|
||||||
(elpaca `(,@elpaca-order))
|
(elpaca `(,@elpaca-order))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defmacro elpaca-nil (body)
|
||||||
|
"Defer execution until all Elpaca queues have been processed."
|
||||||
|
(declare (indent 1))
|
||||||
|
`(add-hook 'elpaca-after-init-hook (lambda () (,@body)) 1))
|
||||||
|
|
||||||
;; Stop coping with startup time, its done loading when its done loading
|
;; Stop coping with startup time, its done loading when its done loading
|
||||||
(add-hook 'elpaca-after-init-hook (lambda () (setq after-init-time (current-time))))
|
(elpaca-nil (setq after-init-time (current-time)))
|
||||||
|
|
||||||
(provide 'dot-elpaca)
|
(provide 'dot-elpaca)
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ Vim equivalence: >gv"
|
|||||||
|
|
||||||
;; Evil command aliases.
|
;; Evil command aliases.
|
||||||
|
|
||||||
(elpaca nil (setup evil-ex ; evil-ex.el is part of evil
|
(elpaca-nil (setup evil-ex ; evil-ex.el is part of evil
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(evil-ex-define-cmd "W" "w")
|
(evil-ex-define-cmd "W" "w")
|
||||||
(evil-ex-define-cmd "Q" "q")
|
(evil-ex-define-cmd "Q" "q")
|
||||||
|
|||||||
@@ -35,26 +35,27 @@
|
|||||||
|
|
||||||
;; Disable keybinds of native modes that clash with other custom keybinds.
|
;; Disable keybinds of native modes that clash with other custom keybinds.
|
||||||
|
|
||||||
(elpaca nil (setup emacs
|
(elpaca-nil (setup emacs
|
||||||
(:global
|
(:global
|
||||||
"M-h" nil
|
"M-h" nil
|
||||||
"M-j" nil
|
"M-j" nil
|
||||||
"M-k" nil
|
"M-k" nil
|
||||||
"M-l" nil
|
"M-l" nil
|
||||||
|
"<pinch>" nil ; Do not scale text when pinching touchpad
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup org
|
(elpaca-nil (setup org
|
||||||
(:bind "M-h" nil
|
(:bind "M-h" nil
|
||||||
"C-M-h" nil
|
"C-M-h" nil
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup cc-mode
|
(elpaca-nil (setup cc-mode
|
||||||
(:bind-into c-mode-base-map
|
(:bind-into c-mode-base-map
|
||||||
"M-j" nil
|
"M-j" nil
|
||||||
"C-M-h" nil
|
"C-M-h" nil
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup nxml-mode
|
(elpaca-nil (setup nxml-mode
|
||||||
(:bind "M-h" nil
|
(:bind "M-h" nil
|
||||||
)))
|
)))
|
||||||
|
|
||||||
@@ -63,16 +64,16 @@
|
|||||||
|
|
||||||
;; Disable keybinds of installed packages that clash with other custom keybinds.
|
;; Disable keybinds of installed packages that clash with other custom keybinds.
|
||||||
|
|
||||||
(elpaca nil (setup evil-states
|
(elpaca-nil (setup evil-states
|
||||||
(:bind-into evil-motion-state-map dot/leader-key nil
|
(:bind-into evil-motion-state-map dot/leader-key nil
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup magit
|
(elpaca-nil (setup magit
|
||||||
(:evil-bind normal
|
(:evil-bind normal
|
||||||
;; Do not close magit when pressing escape
|
;; Do not close magit when pressing escape
|
||||||
"<escape>" nil)))
|
"<escape>" nil)))
|
||||||
|
|
||||||
(elpaca nil (setup php-mode
|
(elpaca-nil (setup php-mode
|
||||||
(:bind "M-j" nil
|
(:bind "M-j" nil
|
||||||
"C-M-h" nil
|
"C-M-h" nil
|
||||||
)))
|
)))
|
||||||
@@ -84,7 +85,7 @@
|
|||||||
|
|
||||||
;;; Set Native Global Keybinds
|
;;; Set Native Global Keybinds
|
||||||
|
|
||||||
(elpaca nil (setup emacs
|
(elpaca-nil (setup emacs
|
||||||
(:global
|
(:global
|
||||||
;; Buffers
|
;; Buffers
|
||||||
"C-x C-b" ibuffer
|
"C-x C-b" ibuffer
|
||||||
@@ -111,21 +112,21 @@
|
|||||||
;;; Set Native Mode Keybinds
|
;;; Set Native Mode Keybinds
|
||||||
|
|
||||||
;; Dired
|
;; Dired
|
||||||
(elpaca nil (setup dired
|
(elpaca-nil (setup dired
|
||||||
(:bind
|
(:bind
|
||||||
[remap dired-find-file] dot/dired-find-file
|
[remap dired-find-file] dot/dired-find-file
|
||||||
[remap dired-up-directory] dot/dired-up-directory
|
[remap dired-up-directory] dot/dired-up-directory
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Org
|
;; Org
|
||||||
(elpaca nil (setup org
|
(elpaca-nil (setup org
|
||||||
(:bind "M-c" org-edit-special
|
(:bind "M-c" org-edit-special
|
||||||
)))
|
)))
|
||||||
(elpaca nil (setup org-src
|
(elpaca-nil (setup org-src
|
||||||
(:bind "M-c" org-edit-src-exit
|
(:bind "M-c" org-edit-src-exit
|
||||||
"M-k" org-edit-src-abort
|
"M-k" org-edit-src-abort
|
||||||
)))
|
)))
|
||||||
(elpaca nil (setup org-capture
|
(elpaca-nil (setup org-capture
|
||||||
(:bind "M-c" org-capture-finalize
|
(:bind "M-c" org-capture-finalize
|
||||||
"M-w" org-capture-refile
|
"M-w" org-capture-refile
|
||||||
"M-k" org-capture-kill
|
"M-k" org-capture-kill
|
||||||
@@ -136,7 +137,7 @@
|
|||||||
|
|
||||||
;; Set keybinds to functionality of installed packages.
|
;; Set keybinds to functionality of installed packages.
|
||||||
|
|
||||||
(elpaca nil (setup emacs
|
(elpaca-nil (setup emacs
|
||||||
(:global
|
(:global
|
||||||
;; Buffers
|
;; Buffers
|
||||||
"M-h" centaur-tabs-backward-tab
|
"M-h" centaur-tabs-backward-tab
|
||||||
@@ -151,7 +152,7 @@
|
|||||||
"M-x" dot/M-x
|
"M-x" dot/M-x
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup company
|
(elpaca-nil (setup company
|
||||||
(:bind-into company-active-map
|
(:bind-into company-active-map
|
||||||
;; Company completion selection
|
;; Company completion selection
|
||||||
"M-n" nil
|
"M-n" nil
|
||||||
@@ -163,7 +164,7 @@
|
|||||||
"<escape>" company-abort
|
"<escape>" company-abort
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup evil-ex
|
(elpaca-nil (setup evil-ex
|
||||||
(:bind-into evil-ex-completion-map
|
(:bind-into evil-ex-completion-map
|
||||||
;; Evil command history selection
|
;; Evil command history selection
|
||||||
"M-h" abort-recursive-edit
|
"M-h" abort-recursive-edit
|
||||||
@@ -172,7 +173,7 @@
|
|||||||
"M-l" exit-minibuffer
|
"M-l" exit-minibuffer
|
||||||
)))
|
)))
|
||||||
|
|
||||||
(elpaca nil (setup emacs
|
(elpaca-nil (setup emacs
|
||||||
(:global
|
(:global
|
||||||
;; flyspell-correct
|
;; flyspell-correct
|
||||||
[remap ispell-word] flyspell-correct-at-point ; z=
|
[remap ispell-word] flyspell-correct-at-point ; z=
|
||||||
@@ -189,26 +190,26 @@
|
|||||||
(which-key-add-key-based-replacements "C-h o" "describe-symbol-at-point")))))
|
(which-key-add-key-based-replacements "C-h o" "describe-symbol-at-point")))))
|
||||||
|
|
||||||
;; LSP
|
;; LSP
|
||||||
(elpaca nil (setup lsp-mode
|
(elpaca-nil (setup lsp-mode
|
||||||
(:bind-into lsp-signature-mode-map
|
(:bind-into lsp-signature-mode-map
|
||||||
"M-j" lsp-signature-next
|
"M-j" lsp-signature-next
|
||||||
"M-k" lsp-signature-previous
|
"M-k" lsp-signature-previous
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Magit
|
;; Magit
|
||||||
(elpaca nil (setup magit
|
(elpaca-nil (setup magit
|
||||||
(:bind-into magit-log-select-mode-map
|
(:bind-into magit-log-select-mode-map
|
||||||
"M-c" magit-log-select-pick
|
"M-c" magit-log-select-pick
|
||||||
"M-k" magit-log-select-quit
|
"M-k" magit-log-select-quit
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Org-roam
|
;; Org-roam
|
||||||
(elpaca nil (setup org-roam
|
(elpaca-nil (setup org-roam
|
||||||
(:bind [down-mouse-1] org-roam-visit-thing
|
(:bind [down-mouse-1] org-roam-visit-thing
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Minibuffer completion selection
|
;; Minibuffer completion selection
|
||||||
(elpaca nil (setup minibuffer
|
(elpaca-nil (setup minibuffer
|
||||||
(:bind-into minibuffer-local-map
|
(:bind-into minibuffer-local-map
|
||||||
"M-J" next-history-element
|
"M-J" next-history-element
|
||||||
"M-K" previous-history-element
|
"M-K" previous-history-element
|
||||||
@@ -223,7 +224,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; with-editor
|
;; with-editor
|
||||||
(elpaca nil (setup with-editor
|
(elpaca-nil (setup with-editor
|
||||||
(:bind
|
(:bind
|
||||||
"M-c" with-editor-finish
|
"M-c" with-editor-finish
|
||||||
"M-k" with-editor-cancel
|
"M-k" with-editor-cancel
|
||||||
@@ -231,7 +232,7 @@
|
|||||||
|
|
||||||
;;; Global evil keymap
|
;;; Global evil keymap
|
||||||
|
|
||||||
(elpaca nil (setup evil
|
(elpaca-nil (setup evil
|
||||||
(:bind-into evil-normal-state-map
|
(:bind-into evil-normal-state-map
|
||||||
"C-n" neotree-toggle-in-project-root
|
"C-n" neotree-toggle-in-project-root
|
||||||
"C-S-p" evil-paste-pop-next
|
"C-S-p" evil-paste-pop-next
|
||||||
@@ -256,13 +257,13 @@
|
|||||||
;;; Other evil state-related keybinds
|
;;; Other evil state-related keybinds
|
||||||
|
|
||||||
;; Custom (M-x customize)
|
;; Custom (M-x customize)
|
||||||
(elpaca nil (setup cus-edit
|
(elpaca-nil (setup cus-edit
|
||||||
(:evil-bind-into normal custom-mode-map
|
(:evil-bind-into normal custom-mode-map
|
||||||
[down-mouse-1] widget-button-click
|
[down-mouse-1] widget-button-click
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Dashboard
|
;; Dashboard
|
||||||
(elpaca nil (setup dashboard
|
(elpaca-nil (setup dashboard
|
||||||
(:evil-bind normal
|
(:evil-bind normal
|
||||||
[down-mouse-1] widget-button-click
|
[down-mouse-1] widget-button-click
|
||||||
"g" dashboard-refresh-buffer
|
"g" dashboard-refresh-buffer
|
||||||
@@ -272,13 +273,13 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Dap
|
;; Dap
|
||||||
(elpaca nil (setup dap-ui
|
(elpaca-nil (setup dap-ui
|
||||||
(:evil-bind-into normal dap-ui-session-mode-map
|
(:evil-bind-into normal dap-ui-session-mode-map
|
||||||
"D" dap-ui-delete-session
|
"D" dap-ui-delete-session
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Deft
|
;; Deft
|
||||||
(elpaca nil (setup deft
|
(elpaca-nil (setup deft
|
||||||
(:evil-bind normal
|
(:evil-bind normal
|
||||||
[down-mouse-1] widget-button-click
|
[down-mouse-1] widget-button-click
|
||||||
"+" deft-new-file-named
|
"+" deft-new-file-named
|
||||||
@@ -296,7 +297,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Elfeed
|
;; Elfeed
|
||||||
(elpaca nil (setup elfeed
|
(elpaca-nil (setup elfeed
|
||||||
(:evil-bind-into normal elfeed-search-mode-map
|
(:evil-bind-into normal elfeed-search-mode-map
|
||||||
"b" elfeed-search-browse-url
|
"b" elfeed-search-browse-url
|
||||||
"c" elfeed-search-clear-filter
|
"c" elfeed-search-clear-filter
|
||||||
@@ -316,14 +317,14 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Magit
|
;; Magit
|
||||||
(elpaca nil (setup magit
|
(elpaca-nil (setup magit
|
||||||
(:evil-bind (normal visual)
|
(:evil-bind (normal visual)
|
||||||
"{" magit-section-backward-sibling
|
"{" magit-section-backward-sibling
|
||||||
"}" magit-section-forward-sibling
|
"}" magit-section-forward-sibling
|
||||||
)))
|
)))
|
||||||
|
|
||||||
;; Minibuffer
|
;; Minibuffer
|
||||||
(elpaca nil (setup minibuffer
|
(elpaca-nil (setup minibuffer
|
||||||
(:evil-bind-into normal minibuffer-local-map
|
(:evil-bind-into normal minibuffer-local-map
|
||||||
"TAB" vertico-insert
|
"TAB" vertico-insert
|
||||||
"j" vertico-next
|
"j" vertico-next
|
||||||
@@ -336,7 +337,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Mu4e
|
;; Mu4e
|
||||||
(elpaca nil (setup mu4e
|
(elpaca-nil (setup mu4e
|
||||||
(:evil-bind-into normal mu4e-compose-mode-map
|
(:evil-bind-into normal mu4e-compose-mode-map
|
||||||
"q" mu4e-message-kill-buffer
|
"q" mu4e-message-kill-buffer
|
||||||
"M-c" message-send-and-exit
|
"M-c" message-send-and-exit
|
||||||
@@ -344,7 +345,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Neotree
|
;; Neotree
|
||||||
(elpaca nil (setup neotree
|
(elpaca-nil (setup neotree
|
||||||
(:evil-bind normal
|
(:evil-bind normal
|
||||||
"RET" neotree-enter
|
"RET" neotree-enter
|
||||||
"<backtab>" neotree-collapse-all ; <S-tab>
|
"<backtab>" neotree-collapse-all ; <S-tab>
|
||||||
@@ -362,7 +363,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Org
|
;; Org
|
||||||
(elpaca nil (setup org
|
(elpaca-nil (setup org
|
||||||
(:evil-bind normal
|
(:evil-bind normal
|
||||||
"RET" dot/org-ret-at-point
|
"RET" dot/org-ret-at-point
|
||||||
)
|
)
|
||||||
@@ -374,7 +375,7 @@
|
|||||||
)))
|
)))
|
||||||
|
|
||||||
;; Wdired
|
;; Wdired
|
||||||
(elpaca nil (setup wdired
|
(elpaca-nil (setup wdired
|
||||||
(:evil-bind (normal insert)
|
(:evil-bind (normal insert)
|
||||||
"M-c" wdired-finish-edit
|
"M-c" wdired-finish-edit
|
||||||
"M-k" wdired-abort-changes
|
"M-k" wdired-abort-changes
|
||||||
@@ -387,7 +388,7 @@
|
|||||||
|
|
||||||
;;; Global Leader
|
;;; Global Leader
|
||||||
|
|
||||||
(elpaca nil (setup general
|
(elpaca-nil (setup general
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(general-create-definer space-leader
|
(general-create-definer space-leader
|
||||||
:prefix dot/leader-key
|
:prefix dot/leader-key
|
||||||
@@ -485,6 +486,12 @@
|
|||||||
"n r r" '(org-roam-buffer-toggle :which-key "Toggle buffer")
|
"n r r" '(org-roam-buffer-toggle :which-key "Toggle buffer")
|
||||||
"n r s" '(org-roam-ui-mode :which-key "Toggle server")
|
"n r s" '(org-roam-ui-mode :which-key "Toggle server")
|
||||||
|
|
||||||
|
;; Org
|
||||||
|
"o" '(:ignore t :which-key "org")
|
||||||
|
"o i" '(dot/org-clock-in :which-key "Clock in")
|
||||||
|
"o o" '(dot/org-clock-out :which-key "Clock out")
|
||||||
|
"o s" '(dot/org-switch-task :which-key "Switch task")
|
||||||
|
|
||||||
;; Project
|
;; Project
|
||||||
"p" '(:keymap project-prefix-map :which-key "project")
|
"p" '(:keymap project-prefix-map :which-key "project")
|
||||||
"p b" '(consult-project-buffer :which-key "project-switch-buffer")
|
"p b" '(consult-project-buffer :which-key "project-switch-buffer")
|
||||||
@@ -593,7 +600,7 @@
|
|||||||
|
|
||||||
;;; Local Leader
|
;;; Local Leader
|
||||||
|
|
||||||
(elpaca nil (setup general
|
(elpaca-nil (setup general
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(general-create-definer local-leader
|
(general-create-definer local-leader
|
||||||
:prefix dot/localleader-key
|
:prefix dot/localleader-key
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
;; Key bindings
|
;; Key bindings
|
||||||
;; [https://www.djcbsoftware.nl/code/mu/mu4e/MSGV-Keybindings.html#MSGV-Keybindings]
|
;; [https://www.djcbsoftware.nl/code/mu/mu4e/MSGV-Keybindings.html#MSGV-Keybindings]
|
||||||
|
|
||||||
(elpaca nil (setup mu4e ; loaded from AUR package
|
(elpaca-nil (setup mu4e ; loaded from AUR package
|
||||||
(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
|
(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
|
||||||
(:autoload mu4e mu4e-update-index)
|
(:autoload mu4e mu4e-update-index)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
|
|
||||||
;; Sending mail.
|
;; Sending mail.
|
||||||
|
|
||||||
(elpaca nil (setup smtpmail ; built-in
|
(elpaca-nil (setup smtpmail ; built-in
|
||||||
(setq smtpmail-default-smtp-server "mail.riyyi.com")
|
(setq smtpmail-default-smtp-server "mail.riyyi.com")
|
||||||
(:load-after mu4e)
|
(:load-after mu4e)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
@@ -124,11 +124,11 @@
|
|||||||
(setq smtpmail-stream-type 'starttls)
|
(setq smtpmail-stream-type 'starttls)
|
||||||
(setq smtpmail-queue-mail nil))))
|
(setq smtpmail-queue-mail nil))))
|
||||||
|
|
||||||
(elpaca nil (setup sendmail ; built-in
|
(elpaca-nil (setup sendmail ; built-in
|
||||||
(:load-after mu4e)
|
(:load-after mu4e)
|
||||||
(:when-loaded (setq send-mail-function 'smtpmail-send-it))))
|
(:when-loaded (setq send-mail-function 'smtpmail-send-it))))
|
||||||
|
|
||||||
(elpaca nil (setup message ; built-in
|
(elpaca-nil (setup message ; built-in
|
||||||
(:load-after mu4e)
|
(:load-after mu4e)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq message-kill-buffer-on-exit t)
|
(setq message-kill-buffer-on-exit t)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
;; -----------------------------------------
|
;; -----------------------------------------
|
||||||
;; LaTeX Configuration
|
;; LaTeX Configuration
|
||||||
|
|
||||||
(elpaca nil (setup tex-mode ; built-in
|
(elpaca-nil (setup tex-mode ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(defun dot/tex-mode-init () ""
|
(defun dot/tex-mode-init () ""
|
||||||
(setq indent-tabs-mode t)
|
(setq indent-tabs-mode t)
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
;; Base Org.
|
;; Base Org.
|
||||||
|
|
||||||
(elpaca nil (setup org ; built-in
|
(elpaca-nil (setup org ; built-in
|
||||||
(setq org-directory (expand-file-name "documents/org" (getenv "HOME")))
|
(setq org-directory (expand-file-name "documents/org" (getenv "HOME")))
|
||||||
(setq org-default-notes-file (expand-file-name "notes.org" org-directory))
|
(setq org-default-notes-file (expand-file-name "notes.org" org-directory))
|
||||||
(:with-mode before-save
|
(:with-mode before-save
|
||||||
@@ -46,6 +46,51 @@
|
|||||||
(add-to-list 'org-structure-template-alist
|
(add-to-list 'org-structure-template-alist
|
||||||
'("el" . "src emacs-lisp"))
|
'("el" . "src emacs-lisp"))
|
||||||
|
|
||||||
|
(defun dot/org-find-or-create-heading (heading level)
|
||||||
|
"Find or create heading"
|
||||||
|
(if (re-search-forward (format org-complex-heading-regexp-format
|
||||||
|
(regexp-quote heading))
|
||||||
|
nil t)
|
||||||
|
(beginning-of-line)
|
||||||
|
(goto-char (point-max))
|
||||||
|
(unless (bolp) (insert "\n"))
|
||||||
|
(insert (concat (make-string level ?*) " ") heading "\n")
|
||||||
|
(beginning-of-line 0)))
|
||||||
|
|
||||||
|
(defun dot/org-find-month-week-day ()
|
||||||
|
"Find or create the journal tree for the current week under current month"
|
||||||
|
(unless (derived-mode-p 'org-mode)
|
||||||
|
(error "Target buffer \"%s\" for dot/find-org-week should be in Org mode"
|
||||||
|
(current-buffer)))
|
||||||
|
(org-capture-put-target-region-and-position)
|
||||||
|
(widen)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(dot/org-find-or-create-heading "Worklog" 1)
|
||||||
|
(org-narrow-to-subtree)
|
||||||
|
(dot/org-find-or-create-heading (format-time-string "%B") 2) ;; month
|
||||||
|
(org-narrow-to-subtree)
|
||||||
|
(dot/org-find-or-create-heading (format-time-string "Week %W") 3)
|
||||||
|
(org-narrow-to-subtree)
|
||||||
|
(dot/org-find-or-create-heading (format-time-string "%A") 4) ;; day
|
||||||
|
(org-end-of-subtree))
|
||||||
|
|
||||||
|
;; Capture templates
|
||||||
|
(setq org-capture-templates
|
||||||
|
`(("i" "Clock in" plain (file+function ,(expand-file-name "worklog.org" org-directory) dot/org-find-month-week-day)
|
||||||
|
"| %<%Y-%m-%d> | IN | %<%H:%M> | %^{Location|Office|Home|Office|Visit} |\n===================================%?"
|
||||||
|
:immediate-finish t)
|
||||||
|
("o" "Clock out" plain (file+function ,(expand-file-name "worklog.org" org-directory) dot/org-find-month-week-day)
|
||||||
|
"===================================\n| %<%Y-%m-%d> | OUT | %<%H:%M> |%?"
|
||||||
|
:immediate-finish t)
|
||||||
|
("s" "Switch task" plain (file+function ,(expand-file-name "worklog.org" org-directory) dot/org-find-month-week-day)
|
||||||
|
"| %<%Y-%m-%d> | %<%H:%M> | %^{Item ID} | X | %^{Description|-} |%?"
|
||||||
|
:immediate-finish t)))
|
||||||
|
|
||||||
|
;; Keybind functions
|
||||||
|
(defun dot/org-clock-in () (interactive) (org-capture nil "i"))
|
||||||
|
(defun dot/org-clock-out () (interactive) (org-capture nil "o"))
|
||||||
|
(defun dot/org-switch-task () (interactive) (org-capture nil "s"))
|
||||||
|
|
||||||
(with-eval-after-load 'evil-commands
|
(with-eval-after-load 'evil-commands
|
||||||
(defun dot/org-ret-at-point ()
|
(defun dot/org-ret-at-point ()
|
||||||
"Org return key at point.
|
"Org return key at point.
|
||||||
@@ -97,7 +142,7 @@ When ANYWHERE is non-nil, search beyond the preamble."
|
|||||||
|
|
||||||
;; Org agenda.
|
;; Org agenda.
|
||||||
|
|
||||||
(elpaca nil (setup org-agenda ; built-in
|
(elpaca-nil (setup org-agenda ; built-in
|
||||||
(:load-after evil org)
|
(:load-after evil org)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq org-agenda-files `(,org-directory ,user-emacs-directory))
|
(setq org-agenda-files `(,org-directory ,user-emacs-directory))
|
||||||
@@ -107,26 +152,26 @@ When ANYWHERE is non-nil, search beyond the preamble."
|
|||||||
|
|
||||||
;; Org capture.
|
;; Org capture.
|
||||||
|
|
||||||
(elpaca nil (setup org-capture ; built-in
|
(elpaca-nil (setup org-capture ; built-in
|
||||||
;; Org-capture in new tab, rather than split window
|
;; Org-capture in new tab, rather than split window
|
||||||
(:hook delete-other-windows)))
|
(:hook delete-other-windows)))
|
||||||
|
|
||||||
;; Org keys.
|
;; Org keys.
|
||||||
|
|
||||||
(elpaca nil (setup org-keys ; built-in
|
(elpaca-nil (setup org-keys ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq org-return-follows-link t))))
|
(setq org-return-follows-link t))))
|
||||||
|
|
||||||
;; Org links.
|
;; Org links.
|
||||||
|
|
||||||
(elpaca nil (setup ol ; built-in
|
(elpaca-nil (setup ol ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
;; Do not open links to .org files in a split window
|
;; Do not open links to .org files in a split window
|
||||||
(add-to-list 'org-link-frame-setup '(file . find-file)))))
|
(add-to-list 'org-link-frame-setup '(file . find-file)))))
|
||||||
|
|
||||||
;; Org source code blocks.
|
;; Org source code blocks.
|
||||||
|
|
||||||
(elpaca nil (setup org-src ; built-in
|
(elpaca-nil (setup org-src ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq org-edit-src-content-indentation 0)
|
(setq org-edit-src-content-indentation 0)
|
||||||
(setq org-src-fontify-natively t)
|
(setq org-src-fontify-natively t)
|
||||||
@@ -136,15 +181,16 @@ When ANYWHERE is non-nil, search beyond the preamble."
|
|||||||
|
|
||||||
;; Org exporter.
|
;; Org exporter.
|
||||||
|
|
||||||
(elpaca nil (setup ox ; built-in
|
(elpaca-nil (setup ox ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
(setq org-export-coding-system 'utf-8-unix))))
|
(setq org-export-coding-system 'utf-8-unix))))
|
||||||
|
|
||||||
;; Org latex exporter.
|
;; Org latex exporter.
|
||||||
|
|
||||||
(elpaca nil (setup ox-latex ; built-in
|
(elpaca-nil (setup ox-latex ; built-in
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
;; Define how minted (highlighted src code) is added to src code blocks
|
;; Define how minted (highlighted src code) is added to src code blocks
|
||||||
|
;; Requires packages: texlive-bin, texlive-latexextra and python-pygments
|
||||||
(setq org-latex-listings 'minted)
|
(setq org-latex-listings 'minted)
|
||||||
(setq org-latex-minted-options '(("frame" "lines") ("linenos=true")))
|
(setq org-latex-minted-options '(("frame" "lines") ("linenos=true")))
|
||||||
;; Set 'Table of Contents' layout
|
;; Set 'Table of Contents' layout
|
||||||
@@ -176,7 +222,8 @@ When ANYWHERE is non-nil, search beyond the preamble."
|
|||||||
|
|
||||||
;;; Org Roam
|
;;; Org Roam
|
||||||
|
|
||||||
(elpaca-setup emacsql-sqlite-builtin)
|
(elpaca-setup emacsql
|
||||||
|
(:also-load emacsql-sqlite-builtin))
|
||||||
|
|
||||||
(elpaca-setup org-roam
|
(elpaca-setup org-roam
|
||||||
(:autoload org-roam-node-find) ;; TODO, is this enough?
|
(:autoload org-roam-node-find) ;; TODO, is this enough?
|
||||||
@@ -233,7 +280,7 @@ When ANYWHERE is non-nil, search beyond the preamble."
|
|||||||
|
|
||||||
;; Enable https://www.orgroam.com/manual.html#org_002droam_002dprotocol, needed to process org-protocol:// links
|
;; Enable https://www.orgroam.com/manual.html#org_002droam_002dprotocol, needed to process org-protocol:// links
|
||||||
|
|
||||||
(elpaca nil (setup org-roam-protocol ; org-roam-protocol.el is part of org-roam
|
(elpaca-nil (setup org-roam-protocol ; org-roam-protocol.el is part of org-roam
|
||||||
(:load-after org-roam)
|
(:load-after org-roam)
|
||||||
(:when-loaded
|
(:when-loaded
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
(setq vertico-previous-directory nil)))
|
(setq vertico-previous-directory nil)))
|
||||||
(advice-add 'vertico--update-candidates :after #'dot/vertico-dired-goto-last-visited))
|
(advice-add 'vertico--update-candidates :after #'dot/vertico-dired-goto-last-visited))
|
||||||
|
|
||||||
(elpaca nil (setup vertico-mouse ; vertico-mouse.el is part of vertico
|
(elpaca-nil (setup vertico-mouse ; vertico-mouse.el is part of vertico
|
||||||
(:load-after vertico)
|
(:load-after vertico)
|
||||||
(:when-loaded (vertico-mouse-mode))))
|
(:when-loaded (vertico-mouse-mode))))
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[redshift]
|
[general]
|
||||||
temp-day=5700
|
temp-day=5700
|
||||||
|
|
||||||
; >>> hostname=arch-desktop
|
; >>> hostname=arch-desktop
|
||||||
@@ -14,7 +14,13 @@ brightness-day=1.0
|
|||||||
brightness-night=0.9
|
brightness-night=0.9
|
||||||
|
|
||||||
location-provider=manual
|
location-provider=manual
|
||||||
|
|
||||||
|
; >>> session=xorg
|
||||||
adjustment-method=randr
|
adjustment-method=randr
|
||||||
|
; <<<
|
||||||
|
; >>> session=wayland
|
||||||
|
; adjustment-method=wayland
|
||||||
|
; <<<
|
||||||
|
|
||||||
[manual]
|
[manual]
|
||||||
lat=51.81
|
lat=51.81
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
app-notifications = no-clipboard-copy
|
||||||
|
confirm-close-surface = false
|
||||||
|
copy-on-select = clipboard
|
||||||
|
cursor-style-blink = false
|
||||||
|
font-family = DejaVuSansM Nerd Font Mono
|
||||||
|
font-size = 10
|
||||||
|
link-url = true
|
||||||
|
selection-invert-fg-bg = true
|
||||||
|
term = xterm-256color
|
||||||
|
theme = terminal-sexy
|
||||||
|
window-decoration = false
|
||||||
|
window-inherit-working-directory = true
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
palette = 0=#282a2e
|
||||||
|
palette = 1=#a54242
|
||||||
|
palette = 2=#8c9440
|
||||||
|
palette = 3=#de935f
|
||||||
|
palette = 4=#5f819d
|
||||||
|
palette = 5=#85678f
|
||||||
|
palette = 6=#5e8d87
|
||||||
|
palette = 7=#707880
|
||||||
|
palette = 8=#373b41
|
||||||
|
palette = 9=#cc6666
|
||||||
|
palette = 10=#b5bd68
|
||||||
|
palette = 11=#f0c674
|
||||||
|
palette = 12=#81a2be
|
||||||
|
palette = 13=#b294bb
|
||||||
|
palette = 14=#8abeb7
|
||||||
|
palette = 15=#c5c8c6
|
||||||
|
background = #1c1c1c
|
||||||
|
foreground = #c5c8c6
|
||||||
|
cursor-color = #c5c8c6
|
||||||
|
selection-background = #373b41
|
||||||
|
selection-foreground = #c5c8c6
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
pinentry-program /usr/bin/pinentry
|
pinentry-program /usr/bin/pinentry-gtk
|
||||||
|
|
||||||
default-cache-ttl 900
|
default-cache-ttl 900
|
||||||
max-cache-ttl 7200
|
max-cache-ttl 7200
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
# DO NOT EDIT! This file will be overwritten by nwg-look.
|
||||||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
|
include "/home/rick/.gtkrc-2.0.mine"
|
||||||
gtk-theme-name="Arc-Dark"
|
gtk-theme-name="Arc-Dark"
|
||||||
gtk-icon-theme-name="Arc"
|
gtk-icon-theme-name="Arc"
|
||||||
gtk-font-name="DejaVu Sans 10"
|
gtk-font-name="DejaVu Sans 10"
|
||||||
|
|||||||
@@ -14,3 +14,4 @@ gtk-xft-antialias=1
|
|||||||
gtk-xft-hinting=1
|
gtk-xft-hinting=1
|
||||||
gtk-xft-hintstyle=hintslight
|
gtk-xft-hintstyle=hintslight
|
||||||
gtk-xft-rgba=rgb
|
gtk-xft-rgba=rgb
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
general {
|
||||||
|
lock_cmd = pidof hyprlock || hyprlock
|
||||||
|
before_sleep_cmd = loginctl lock-session
|
||||||
|
after_sleep_cmd = hyprctl dispatch dpms on # avoid having to press a key twice to turn on display
|
||||||
|
}
|
||||||
|
|
||||||
|
# Turn the screen off after 30 seconds on the lock-screen
|
||||||
|
listener {
|
||||||
|
timeout = 30
|
||||||
|
on-timeout = pidof hyprlock && hyprctl dispatch dpms off
|
||||||
|
on-resume = hyprctl dispatch dpms on
|
||||||
|
}
|
||||||
@@ -0,0 +1,422 @@
|
|||||||
|
################
|
||||||
|
### MONITORS ###
|
||||||
|
################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
|
||||||
|
monitor = desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, preferred, 0x0, auto
|
||||||
|
monitor = desc:Iiyama North America PL2492H 11511037C7430, preferred, 2560x0, auto
|
||||||
|
monitor = , preferred, auto, auto # fallback
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### MY PROGRAMS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
|
||||||
|
# Set programs that you use
|
||||||
|
$terminal = ghostty
|
||||||
|
$fileManager = thunar
|
||||||
|
$menu = rofi -show drun
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
### AUTOSTART ###
|
||||||
|
#################
|
||||||
|
|
||||||
|
# System level
|
||||||
|
exec-once = gammastep
|
||||||
|
exec-once = systemctl --user start hyprpolkitagent
|
||||||
|
exec-once = hyprctl setcursor capitaine-cursors-light 24
|
||||||
|
exec-once = hypridle
|
||||||
|
exec-once = ydotoold
|
||||||
|
|
||||||
|
# Scripts
|
||||||
|
exec-once = ${HOME}/.local/bin/wm/wallpaper.sh
|
||||||
|
exec-once = ${HOME}/.local/bin/panel/waybar.sh
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
exec-once = [workspace 1] firefox
|
||||||
|
exec-once = [workspace 2] $terminal
|
||||||
|
exec-once = [workspace 3] thunar --daemon
|
||||||
|
exec-once = [workspace 3] thunar
|
||||||
|
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### ENVIRONMENT VARIABLES ###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||||
|
|
||||||
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = XDG_SESSION_DESKTOP,Hyprland
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = HYPRCURSOR_SIZE,24
|
||||||
|
|
||||||
|
|
||||||
|
#####################
|
||||||
|
### LOOK AND FEEL ###
|
||||||
|
#####################
|
||||||
|
|
||||||
|
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 10
|
||||||
|
|
||||||
|
border_size = 2
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
|
col.active_border = rgb(404552)
|
||||||
|
col.inactive_border = rgb(2b2e39)
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = false
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
rounding = 0
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 1.0
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||||
|
animations {
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = easeOutQuint,0.23,1,0.32,1
|
||||||
|
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||||
|
bezier = linear,0,0,1,1
|
||||||
|
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||||
|
bezier = quick,0.15,0,0.1,1
|
||||||
|
|
||||||
|
animation = global, 1, 10, default
|
||||||
|
animation = border, 1, 5.39, easeOutQuint
|
||||||
|
animation = windows, 1, 4.79, easeOutQuint
|
||||||
|
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||||
|
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||||
|
animation = fadeIn, 1, 1.73, almostLinear
|
||||||
|
animation = fadeOut, 1, 1.46, almostLinear
|
||||||
|
animation = fade, 1, 3.03, quick
|
||||||
|
animation = layers, 1, 3.81, easeOutQuint
|
||||||
|
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||||
|
animation = layersOut, 1, 1.5, linear, fade
|
||||||
|
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||||
|
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||||
|
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||||
|
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||||
|
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||||
|
# "Smart gaps" / "No gaps when only"
|
||||||
|
workspace = w[tv1], gapsout:0, gapsin:0
|
||||||
|
workspace = f[1], gapsout:0, gapsin:0
|
||||||
|
windowrule = border_size 0, match:float 0, match:workspace w[tv1]
|
||||||
|
windowrule = rounding 0, match:float 0, match:workspace w[tv1]
|
||||||
|
windowrule = border_size 0, match:float 0, match:workspace f[1]
|
||||||
|
windowrule = rounding 0, match:float 0, match:workspace f[1]
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle {
|
||||||
|
force_split = 2 # split to the bottom right
|
||||||
|
preserve_split = true
|
||||||
|
pseudotile = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master {
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||||
|
misc {
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
vfr = true # lower amount of sent frames when nothing is happening on-screen
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
### INPUT ###
|
||||||
|
#############
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options = caps:swapescape
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
gestures {
|
||||||
|
workspace_swipe_touch = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example per-device config
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||||
|
device { # hyprctl devices
|
||||||
|
name = logitech-wireless-mouse-pid:4038
|
||||||
|
sensitivity = -0.5
|
||||||
|
accel_profile = flat
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### KEYBINDINGS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
|
# Bind docs https://wiki.hyprland.org/Configuring/Binds/
|
||||||
|
|
||||||
|
#--- Control ---#
|
||||||
|
|
||||||
|
# Reload hyprland
|
||||||
|
bind = $mainMod Control_L, r, forcerendererreload
|
||||||
|
|
||||||
|
# Close hyprland
|
||||||
|
bind = $mainMod SHIFT, M, exit,
|
||||||
|
|
||||||
|
#--- Window ---#
|
||||||
|
|
||||||
|
# Close window
|
||||||
|
bind = $mainMod, q, killactive,
|
||||||
|
|
||||||
|
#-- State/flags --#
|
||||||
|
|
||||||
|
# Toggle fullscreen mode
|
||||||
|
bind = $mainMod, f, fullscreen
|
||||||
|
|
||||||
|
# Toggle tiled/floating
|
||||||
|
bind = $mainMod, Space, togglefloating,
|
||||||
|
|
||||||
|
#-- Focus --#
|
||||||
|
|
||||||
|
# Focus window in direction
|
||||||
|
bind = $mainMod, h, movefocus, l
|
||||||
|
bind = $mainMod, j, movefocus, d
|
||||||
|
bind = $mainMod, k, movefocus, u
|
||||||
|
bind = $mainMod, l, movefocus, r
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Focus previous/next window
|
||||||
|
bind = $mainMod, Tab, cyclenext
|
||||||
|
bind = $mainMod SHIFT, Tab, cyclenext, prev
|
||||||
|
|
||||||
|
# Focus workspace
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Focus previous/next workspace
|
||||||
|
bind = $mainMod, equal, workspace, e+1
|
||||||
|
bind = $mainMod, minus, workspace, e-1
|
||||||
|
|
||||||
|
# Focus last workspace
|
||||||
|
bind = $mainMod, GRAVE, focuscurrentorlast
|
||||||
|
|
||||||
|
# Focus previous/next monitor
|
||||||
|
# TODO
|
||||||
|
|
||||||
|
# Special workspace (scratchpad)
|
||||||
|
bind = $mainMod, T, togglespecialworkspace, magic
|
||||||
|
|
||||||
|
#-- Move --#
|
||||||
|
|
||||||
|
# Send window to workspace
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||||
|
|
||||||
|
# Move window to previous/next workspace
|
||||||
|
bind = $mainMod SHIFT, equal, movetoworkspace, e+1
|
||||||
|
bind = $mainMod SHIFT, minus, movetoworkspace, e-1
|
||||||
|
|
||||||
|
# Move window to previous/next monitor
|
||||||
|
# TODO
|
||||||
|
|
||||||
|
# Move floating window
|
||||||
|
bind = Control_L Alt_L, h, moveactive, -30 0
|
||||||
|
bind = Control_L Alt_L, j, moveactive, 0 30
|
||||||
|
bind = Control_L Alt_L, k, moveactive, 0 -30
|
||||||
|
bind = Control_L Alt_L, l, moveactive, 30 0
|
||||||
|
bind = Control_L Alt_L, left, moveactive, -30 0
|
||||||
|
bind = Control_L Alt_L, right, moveactive, 30 0
|
||||||
|
bind = Control_L Alt_L, up, moveactive, 0 -30
|
||||||
|
bind = Control_L Alt_L, down, moveactive, 0 30
|
||||||
|
|
||||||
|
# Flip the tree from the current windows parent
|
||||||
|
bind = $mainMod Alt_L, 5, swapsplit, # dwindle
|
||||||
|
bind = $mainMod Alt_L, 6, togglesplit, # dwindle
|
||||||
|
|
||||||
|
# Special workspace (scratchpad)
|
||||||
|
bind = $mainMod SHIFT, T, movetoworkspace, special:magic
|
||||||
|
|
||||||
|
#-- Resize --#
|
||||||
|
|
||||||
|
# Resize windows
|
||||||
|
bind = $mainMod Alt_L, h, resizeactive, -10 0
|
||||||
|
bind = $mainMod Alt_L, j, resizeactive, 0 10
|
||||||
|
bind = $mainMod Alt_L, k, resizeactive, 0 -10
|
||||||
|
bind = $mainMod Alt_L, l, resizeactive, 10 0
|
||||||
|
bind = $mainMod Alt_L, left, resizeactive, -10 0
|
||||||
|
bind = $mainMod Alt_L, right, resizeactive, 10 0
|
||||||
|
bind = $mainMod Alt_L, up, resizeactive, 0 -10
|
||||||
|
bind = $mainMod Alt_L, down, resizeactive, 0 10
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
#-- Preselect node --#
|
||||||
|
|
||||||
|
bind = SUPER Control_L, h, layoutmsg, preselect left
|
||||||
|
bind = SUPER Control_L, j, layoutmsg, preselect down
|
||||||
|
bind = SUPER Control_L, k, layoutmsg, preselect up
|
||||||
|
bind = SUPER Control_L, l, layoutmsg, preselect right
|
||||||
|
bind = SUPER Control_L, left, layoutmsg, preselect left
|
||||||
|
bind = SUPER Control_L, right, layoutmsg, preselect right
|
||||||
|
bind = SUPER Control_L, up, layoutmsg, preselect up
|
||||||
|
bind = SUPER Control_L, down, layoutmsg, preselect down
|
||||||
|
|
||||||
|
#--- General ---#
|
||||||
|
|
||||||
|
# Start terminal
|
||||||
|
bind = $mainMod, Return, exec, $terminal
|
||||||
|
|
||||||
|
# Start rofi (program launcher)
|
||||||
|
bind = $mainMod, d, exec, $menu
|
||||||
|
|
||||||
|
# mpv
|
||||||
|
bind = $mainMod, m, exec, play
|
||||||
|
bind = $mainMod SHIFT, m, exec, play queue
|
||||||
|
|
||||||
|
#--- Control, compositor agnostic ---#
|
||||||
|
|
||||||
|
# Reload
|
||||||
|
bind = $mainMod Control_L, r, exec, ${HOME}/.local/bin/panel/waybar.sh
|
||||||
|
|
||||||
|
# System
|
||||||
|
bind = $mainMod SHIFT, s, exec, system
|
||||||
|
|
||||||
|
# Screen brightness
|
||||||
|
bind = $mainMod, F2, exec, brictl dec 10
|
||||||
|
bind = $mainMod, F3, exec, brictl inc 10
|
||||||
|
|
||||||
|
# Screen capture
|
||||||
|
bind = , Print, exec, printscreen
|
||||||
|
bind = Control_L, Print, exec, aliases screencast
|
||||||
|
|
||||||
|
# Laptop multimedia keys
|
||||||
|
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindel = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindel = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
bindel = , XF86MonBrightnessUp, exec, brictl inc 10
|
||||||
|
bindel = , XF86MonBrightnessDown, exec, brictl dec 10
|
||||||
|
|
||||||
|
bindl = , XF86AudioNext, exec, playerctl next
|
||||||
|
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
|
bindl = , XF86HomePage, exec, inputctl -d toggle # toggle touchpad
|
||||||
|
bindl = , XF86Search, exec, inputctl -s toggle # toggle touchscreen
|
||||||
|
|
||||||
|
#--- Notification ---#
|
||||||
|
|
||||||
|
# Notifiation
|
||||||
|
bind = Control_L, space, exec, dunstctl close
|
||||||
|
bind = Control_L SHIFT, space, exec, dunstctl close-all
|
||||||
|
bind = Control_L, grave, exec, dunstctl history-pop
|
||||||
|
bind = Control_L SHIFT, period, exec, dunstctl context
|
||||||
|
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### WINDOWS AND WORKSPACES ###
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
windowrule = suppress_event maximize, match:class .*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
windowrule = no_focus true, match:class ^$, match:title ^$, match:xwayland true, match:float true, match:fullscreen false, match:pin false
|
||||||
|
|
||||||
|
# Set to floating
|
||||||
|
windowrule = float true, match:class feh # window rule v1 can only do either class or title, not both
|
||||||
|
windowrule = float true, match:class mpv
|
||||||
|
windowrule = float true, match:class org.pulseaudio.pavucontrol
|
||||||
|
windowrule = float true, match:class pinentry-gtk
|
||||||
|
windowrule = float true, match:class xarchiver
|
||||||
|
windowrule = float true, match:class firefox, match:title Library
|
||||||
|
windowrule = float true, match:class firefox, match:title ^About.*
|
||||||
|
windowrule = float true, match:class thunar, match:title File Operation Progress
|
||||||
|
|
||||||
|
# Resize floating windows
|
||||||
|
windowrule = size >50% >70%, match:class org.pulseaudio.pavucontrol
|
||||||
|
|
||||||
|
# Put workspaces on specific monitors
|
||||||
|
workspace = 1, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true, default:true
|
||||||
|
workspace = 2, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 3, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 4, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 5, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 6, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 7, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 8, monitor:desc:Ancor Communications Inc ASUS PB298 D7LMTF059917, persistent:true
|
||||||
|
workspace = 9, monitor:desc:Iiyama North America PL2492H 11511037C7430, persistent:true, default:true
|
||||||
|
workspace = 10, monitor:desc:Iiyama North America PL2492H 11511037C7430, persistent:true
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
$font_size = 48
|
||||||
|
$font_size_small = 16
|
||||||
|
$image_size = 175
|
||||||
|
|
||||||
|
general {
|
||||||
|
hide_cursor = true
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = screenshot
|
||||||
|
blur_passes = 2
|
||||||
|
blur_size = 2
|
||||||
|
noise = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font_family = DejaVu Sans Serif
|
||||||
|
font_size = $font_size
|
||||||
|
|
||||||
|
text = $TIME12
|
||||||
|
text_align = center
|
||||||
|
|
||||||
|
position = 0, 275
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font_family = DejaVu Sans Serif
|
||||||
|
font_size = $font_size_small
|
||||||
|
|
||||||
|
text = cmd[] date "+%A, %B %d"
|
||||||
|
|
||||||
|
position = 0, 200
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
monitor =
|
||||||
|
path = ~/.local/bin/wm/lock.png
|
||||||
|
size = $image_size
|
||||||
|
rounding = -1
|
||||||
|
border_size = 0
|
||||||
|
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = $image_size, $image_size
|
||||||
|
|
||||||
|
outline_thickness = 10
|
||||||
|
outer_color = rgba(255, 255, 255, 0.0)
|
||||||
|
inner_color = rgba(0, 0, 0, 0.0)
|
||||||
|
check_color = rgba(255, 255, 255, 1.0)
|
||||||
|
fail_color = rgba(255, 0, 0, 1.0)
|
||||||
|
|
||||||
|
font_family = DejaVu Sans Serif
|
||||||
|
font_color = rgba(255, 255, 255, 0.9)
|
||||||
|
placeholder_text =
|
||||||
|
fail_text =
|
||||||
|
|
||||||
|
hide_input = true
|
||||||
|
rounding = -1
|
||||||
|
fade_on_empty = false
|
||||||
|
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
splash = false
|
||||||
@@ -1,13 +1,22 @@
|
|||||||
[dmenu]
|
[dmenu]
|
||||||
dmenu_command = /usr/bin/rofi -dmenu -i
|
dmenu_command = /usr/bin/rofi -dmenu -i
|
||||||
pinentry = /usr/bin/pinentry
|
pinentry = /usr/bin/pinentry-gtk
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
database_1 = ~/documents/password.kdbx
|
database_1 = ~/documents/password.kdbx
|
||||||
|
keyfile_1 =
|
||||||
pw_cache_period_min = 60
|
pw_cache_period_min = 60
|
||||||
|
autotype_default = {USERNAME}{TAB}{PASSWORD}{ENTER}
|
||||||
|
|
||||||
gui_editor = emacsclient
|
gui_editor = emacsclient
|
||||||
editor = vim
|
editor = vim
|
||||||
terminal = urxvt
|
terminal = urxvt
|
||||||
|
|
||||||
|
# >>> session=xorg
|
||||||
type_library = xdotool
|
type_library = xdotool
|
||||||
|
# <<<
|
||||||
|
# >>> session=wayland
|
||||||
|
# type_library = ydotool
|
||||||
|
# <<<
|
||||||
|
|
||||||
hide_groups = Recycle Bin
|
hide_groups = Recycle Bin
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ sub-auto=fuzzy
|
|||||||
sub-file-paths=ass:srt:sub:subs:subtitles:Subtitles
|
sub-file-paths=ass:srt:sub:subs:subtitles:Subtitles
|
||||||
|
|
||||||
# [SUBTITLES LOOK] (for srt)
|
# [SUBTITLES LOOK] (for srt)
|
||||||
sub-font="Segoe UI Semibold"
|
sub-font="DejaVu Sans"
|
||||||
sub-font-size=48
|
sub-font-size=48
|
||||||
sub-margin-y=36
|
sub-margin-y=36
|
||||||
sub-color="#FFFFFFFF"
|
sub-color="#FFFFFFFF"
|
||||||
|
|||||||
@@ -6,4 +6,5 @@ require("packages").setup({
|
|||||||
require("development"),
|
require("development"),
|
||||||
require("git"),
|
require("git"),
|
||||||
})
|
})
|
||||||
|
require("terminal").setup()
|
||||||
require("keybinds").setup()
|
require("keybinds").setup()
|
||||||
|
|||||||
+40
-36
@@ -1,39 +1,43 @@
|
|||||||
{
|
{
|
||||||
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "f3b3d3446bcbfa62d638b1903ff00a78b2b730a1" },
|
"LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" },
|
||||||
"auto-save.nvim": { "branch": "main", "commit": "e98cafef75271ec83dc84c933f124ab1bb675ef8" },
|
"auto-save.nvim": { "branch": "main", "commit": "37c82fd548e3f5ffc2d9d020a65dac1044584f44" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
"dashboard-nvim": { "branch": "master", "commit": "413442b12d85315fc626c44a0ce4929b213ef604" },
|
"dashboard-nvim": { "branch": "master", "commit": "0775e567b6c0be96d01a61795f7b64c1758262f6" },
|
||||||
"diffview.nvim": { "branch": "main", "commit": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f" },
|
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "dbd45e9ba76d535e4cba88afa1b7aa43bb765336" },
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae" },
|
"gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
|
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "7d131a8d3ba5016229e8a1d08bf8782acea98852" },
|
"lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" },
|
||||||
"neodev.nvim": { "branch": "main", "commit": "f7f249b361e9fb245eea24cbcd9f5502e796c6ea" },
|
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||||
"neogit": { "branch": "master", "commit": "0d0879b0045fb213c328126969a3317c0963d34a" },
|
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
"nvim-base16": { "branch": "master", "commit": "b3e9ec6a82c05b562cd71f40fe8964438a9ba64a" },
|
"neogit": { "branch": "master", "commit": "d8bf9102692250193b855acd9025a826f1af2729" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
|
"nvim-base16": { "branch": "master", "commit": "e05bcb99951d8ae4ecbf4ae053922fd2be6263a5" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "d5b6d4366dfd7a1071b930defd365e6d0be258de" },
|
"nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "adf72368f6af026b4cd19851d34a313a54159857" },
|
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "7f00d94543f1fd37cab2afa2e9a6cd54e1c6b9ef" },
|
"nvim-lspconfig": { "branch": "master", "commit": "d696e36d5792daf828f8c8e8d4b9aa90c1a10c2a" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "14ac5887110b06b89a96881d534230dac3ed134d" },
|
"nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||||
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "4be2e8689067494ed7e5a4f1221adc31d1a07783" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
"nvim-web-devicons": { "branch": "master", "commit": "6788013bb9cb784e606ada44206b0e755e4323d7" },
|
||||||
|
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "a47388e5417e7f1cfa6962cc441a23c4c5fb2151" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
||||||
"rainbow-delimiters.nvim": { "branch": "master", "commit": "161eb67a82ee269d1037df64c6d5a05bd5860d32" },
|
"rainbow-delimiters.nvim": { "branch": "master", "commit": "8aafe2cbd89cd4090f573a98cab6b20366576fde" },
|
||||||
"sqlite.lua": { "branch": "master", "commit": "40701b6151f8883980c1548647116de39b763540" },
|
"sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" },
|
||||||
"telescope-all-recent.nvim": { "branch": "main", "commit": "c1a83b96de07ed4c27af5a46cf8b10c8ee802973" },
|
"telescope-all-recent.nvim": { "branch": "main", "commit": "e437f60ea468268e49ffdc0c9ed7c5ba384e63cf" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
|
"telescope-file-browser.nvim": { "branch": "master", "commit": "3610dc7dc91f06aa98b11dca5cc30dfa98626b7e" },
|
||||||
"telescope-recent-files": { "branch": "main", "commit": "6893cda11625254cc7dc2ea76e0a100c7deeb028" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6fea601bd2b694c6f2ae08a6c6fab14930c60e2c" },
|
||||||
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
"telescope-recent-files": { "branch": "main", "commit": "eb190c0baded1cbfa9d8767c817b054377683163" },
|
||||||
"todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" },
|
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
"trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" },
|
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||||
"ultimate-autopair.nvim": { "branch": "development", "commit": "6ecf7461d44513af89f8257f057fcc99e9297612" },
|
"toggleterm.nvim": { "branch": "main", "commit": "9a88eae817ef395952e08650b3283726786fb5fb" },
|
||||||
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
|
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
"ultimate-autopair.nvim": { "branch": "development", "commit": "5835876b57901d81ebbeb3cd6ad71aaed66f82d7" },
|
||||||
|
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
require("core.leader-key")
|
require("core.leader-key")
|
||||||
require("core.config")
|
require("core.config")
|
||||||
|
require("core.buffers")
|
||||||
require("core.autocommands")
|
require("core.autocommands")
|
||||||
require("core.globals")
|
require("core.globals")
|
||||||
|
require("core.filetypes")
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
local F = require("core.functions")
|
||||||
|
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
--- Commands ---
|
--- Commands ---
|
||||||
|
|
||||||
@@ -13,10 +15,9 @@ vim.cmd [[
|
|||||||
--- Autocommands ---
|
--- Autocommands ---
|
||||||
|
|
||||||
-- Cut off trailing whitespace and trailing blank lines
|
-- Cut off trailing whitespace and trailing blank lines
|
||||||
local core = require("core.functions")
|
|
||||||
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
|
||||||
pattern = "*",
|
pattern = "*",
|
||||||
callback = core.trim_buffer,
|
callback = F.trim_buffer,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Highlight on yank
|
-- Highlight on yank
|
||||||
@@ -27,3 +28,32 @@ vim.api.nvim_create_autocmd("TextYankPost", {
|
|||||||
group = highlight_group,
|
group = highlight_group,
|
||||||
callback = function() vim.highlight.on_yank() end,
|
callback = function() vim.highlight.on_yank() end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Show message when autosaving
|
||||||
|
local autosave_group = vim.api.nvim_create_augroup("autosave", {})
|
||||||
|
vim.api.nvim_create_autocmd("User", {
|
||||||
|
pattern = "AutoSaveWritePost",
|
||||||
|
group = autosave_group,
|
||||||
|
callback = function(opts)
|
||||||
|
if opts.data.saved_buffer ~= nil then
|
||||||
|
local filename = vim.api.nvim_buf_get_name(opts.data.saved_buffer)
|
||||||
|
vim.notify("Wrote " .. filename, vim.log.levels.INFO)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("BufWinEnter", {
|
||||||
|
callback = function()
|
||||||
|
-- Buffer tracking
|
||||||
|
require("core.buffers").add_buffer()
|
||||||
|
end,
|
||||||
|
desc = "Track all full window buffers visited",
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufDelete", "BufWipeout" }, {
|
||||||
|
callback = function(opts)
|
||||||
|
-- Buffer tracking
|
||||||
|
require("core.buffers").remove_buffer(opts.match)
|
||||||
|
end,
|
||||||
|
desc = "Track all full window buffers killed",
|
||||||
|
})
|
||||||
|
|||||||
@@ -0,0 +1,347 @@
|
|||||||
|
local F = require("core.functions")
|
||||||
|
|
||||||
|
-- Module for managing buffers, these are used for navigation
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
-- Buffers, categorized into groups
|
||||||
|
-- {
|
||||||
|
-- { group = "Project", buffers = { "buffer1", "buffer2" }, active_index = 1 },
|
||||||
|
-- { group = "Other", buffers = { "buffer3", "buffer4" }, active_index = 1 },
|
||||||
|
-- }
|
||||||
|
M.buffers = {}
|
||||||
|
|
||||||
|
M.buffer_default_group = "Other"
|
||||||
|
|
||||||
|
M.buffer_matcher = {
|
||||||
|
-- match = truthy, function() -> thruthy, or string matching buffer filename
|
||||||
|
-- group = string, function() -> string
|
||||||
|
{ match = F.find_project_root, group = F.find_project_root },
|
||||||
|
{ match = true, group = "Other" }, -- default
|
||||||
|
}
|
||||||
|
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
local get_buffer_name = function()
|
||||||
|
local buf = vim.api.nvim_get_current_buf()
|
||||||
|
local buffer_name = vim.api.nvim_buf_get_name(buf)
|
||||||
|
if not buffer_name or buffer_name == "" then return nil end
|
||||||
|
return buffer_name
|
||||||
|
end
|
||||||
|
|
||||||
|
M.add_buffer = function()
|
||||||
|
local buffer_name = get_buffer_name()
|
||||||
|
if not buffer_name then return end
|
||||||
|
|
||||||
|
-- Evaluate group
|
||||||
|
local eval_group = function(config_group)
|
||||||
|
if not config_group then return M.buffer_default_group end
|
||||||
|
if type(config_group) == "function" then return config_group() end
|
||||||
|
return config_group
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Add if buffer does not exist yet
|
||||||
|
local add = function(config_group)
|
||||||
|
local group = eval_group(config_group)
|
||||||
|
|
||||||
|
local index
|
||||||
|
for i, buffer_group in ipairs(M.buffers) do
|
||||||
|
if buffer_group.group == group then index = i end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Group is new entirely, so we only have 1 buffer
|
||||||
|
if not index then
|
||||||
|
table.insert(M.buffers, { group = group, buffers = { buffer_name }, active_index = 1 })
|
||||||
|
return #M.buffers, 1 -- group index, buffer index
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Buffer previously added, set active
|
||||||
|
for i, buffer in ipairs(M.buffers[index].buffers) do
|
||||||
|
if buffer == buffer_name then
|
||||||
|
M.buffers[index].active_index = i
|
||||||
|
return index, i -- group index, buffer index
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Buffer is new, add it to the list
|
||||||
|
table.insert(M.buffers[index].buffers, buffer_name)
|
||||||
|
local count = #M.buffers[index].buffers
|
||||||
|
M.buffers[index].active_index = count
|
||||||
|
|
||||||
|
return index, count -- group index, buffer index
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Walk matcher configuration
|
||||||
|
local matcher = M.buffer_matcher or {}
|
||||||
|
if matcher and type(matcher) == "function" then
|
||||||
|
matcher = matcher()
|
||||||
|
end
|
||||||
|
if #matcher == 0 then add(M.buffer_default_group) end
|
||||||
|
for _, config in ipairs(M.buffer_matcher) do
|
||||||
|
if type(config.match) == "function" and config.match() then
|
||||||
|
return add(config.group)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Match path's filename
|
||||||
|
if type(config.match) == "string" and config.match == buffer_name:match("([^/]+)$") then
|
||||||
|
return add(config.group)
|
||||||
|
end
|
||||||
|
|
||||||
|
if type(config.match) == "boolean" and config.match then
|
||||||
|
return add(config.group)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return add(M.buffer_default_group)
|
||||||
|
end
|
||||||
|
|
||||||
|
local get_group_from_buffer = function(buffer_name)
|
||||||
|
for i, buffer_group in ipairs(M.buffers) do
|
||||||
|
for j, buffer in ipairs(buffer_group.buffers) do
|
||||||
|
if buffer == buffer_name then
|
||||||
|
return i, j -- group index, buffer index
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local focus_buffer = function(new_buffer_name)
|
||||||
|
for _, buffer in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
|
if vim.api.nvim_buf_get_name(buffer) == new_buffer_name then
|
||||||
|
vim.api.nvim_set_current_buf(buffer)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
M.remove_buffer = function(buffer_name)
|
||||||
|
if not buffer_name or buffer_name == "" then return end
|
||||||
|
|
||||||
|
local group_index, buffer_index = get_group_from_buffer(buffer_name)
|
||||||
|
if not group_index or not buffer_index then return end
|
||||||
|
|
||||||
|
local buffer_group = M.buffers[group_index]
|
||||||
|
|
||||||
|
-- Remove the buffer and decrease active index
|
||||||
|
table.remove(buffer_group.buffers, buffer_index)
|
||||||
|
buffer_group.active_index = math.max(buffer_group.active_index - 1, 1)
|
||||||
|
local new_buffer_name = buffer_group.buffers[buffer_group.active_index]
|
||||||
|
|
||||||
|
-- If there are now no buffers in the group, delete the group
|
||||||
|
if #buffer_group.buffers == 0 then
|
||||||
|
table.remove(M.buffers, group_index)
|
||||||
|
if #M.buffers == 0 then return end
|
||||||
|
if #M.buffers < group_index then group_index = group_index - 1 end
|
||||||
|
new_buffer_name = M.buffers[group_index].buffers[M.buffers[group_index].active_index]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Make the new index the active buffer
|
||||||
|
focus_buffer(new_buffer_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
local buffer_action_in_active_group = function(action, direction)
|
||||||
|
local buffer_name = get_buffer_name()
|
||||||
|
if not buffer_name then return end
|
||||||
|
|
||||||
|
-- Get active group from the current buffer
|
||||||
|
local group_index, buffer_index = get_group_from_buffer(buffer_name)
|
||||||
|
if not group_index then group_index, buffer_index = M.add_buffer() end
|
||||||
|
|
||||||
|
-- Get buffer set
|
||||||
|
local buffers = M.buffers[group_index].buffers
|
||||||
|
if #buffers < 2 then return end
|
||||||
|
|
||||||
|
-- Determine the other index
|
||||||
|
local other_index = buffer_index + direction
|
||||||
|
if buffer_index == 1 and direction == -1 then
|
||||||
|
other_index = #buffers
|
||||||
|
elseif buffer_index == #buffers and direction == 1 then
|
||||||
|
other_index = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if action == "move" then
|
||||||
|
for _, buffer in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
|
-- TODO: Probably not needed if the other autocommands are implemented
|
||||||
|
-- Remove inactive buffers
|
||||||
|
if not vim.api.nvim_buf_is_loaded(buffer) then
|
||||||
|
for i, group_buffer in ipairs(buffers) do
|
||||||
|
if buffer == group_buffer then
|
||||||
|
table.remove(buffers, i)
|
||||||
|
if i > 1 and i <= other_index then
|
||||||
|
other_index = other_index - 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
goto continue
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Make buffer active
|
||||||
|
if vim.api.nvim_buf_get_name(buffer) == buffers[other_index] then
|
||||||
|
vim.api.nvim_set_current_buf(buffer)
|
||||||
|
M.buffers[group_index].active_index = other_index
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
::continue::
|
||||||
|
end
|
||||||
|
elseif action == "swap" then
|
||||||
|
local tmp = buffers[other_index]
|
||||||
|
buffers[other_index] = buffers[buffer_index]
|
||||||
|
buffers[buffer_index] = tmp
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffers[group_index].buffers = buffers
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_move_left = function()
|
||||||
|
buffer_action_in_active_group("move", -1)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_move_right = function()
|
||||||
|
buffer_action_in_active_group("move", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_swap_left = function()
|
||||||
|
buffer_action_in_active_group("swap", -1)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_swap_right = function()
|
||||||
|
buffer_action_in_active_group("swap", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------
|
||||||
|
-- Group move
|
||||||
|
|
||||||
|
local buffer_group_move = function(direction)
|
||||||
|
local buffer_name = get_buffer_name()
|
||||||
|
if not buffer_name then return end
|
||||||
|
|
||||||
|
-- Get active group from the current buffer
|
||||||
|
local group_index, _ = get_group_from_buffer(buffer_name)
|
||||||
|
if not group_index then group_index, _ = M.add_buffer() end
|
||||||
|
|
||||||
|
-- Check groups bounds
|
||||||
|
if #M.buffers < 2 then return end
|
||||||
|
|
||||||
|
-- Determine the other index
|
||||||
|
local other_index = group_index + direction
|
||||||
|
if group_index == 1 and direction == -1 then
|
||||||
|
other_index = #M.buffers
|
||||||
|
elseif group_index == #M.buffers and direction == 1 then
|
||||||
|
other_index = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Get active index from other group
|
||||||
|
local other_active_index = M.buffers[other_index].active_index
|
||||||
|
|
||||||
|
-- Make buffer active
|
||||||
|
-- TODO: What do if this buffer no longer exists?
|
||||||
|
local other_buffer = M.buffers[other_index].buffers[other_active_index]
|
||||||
|
focus_buffer(other_buffer)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_group_move_up = function()
|
||||||
|
buffer_group_move(-1)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_group_move_down = function()
|
||||||
|
buffer_group_move(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
--------------------------------------------
|
||||||
|
-- Telescope functionss
|
||||||
|
|
||||||
|
local pick = function(title, items, entry_maker, action)
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
local action_state = require("telescope.actions.state")
|
||||||
|
local conf = require("telescope.config").values
|
||||||
|
local finders = require("telescope.finders")
|
||||||
|
local pickers = require("telescope.pickers")
|
||||||
|
|
||||||
|
pickers.new({}, {
|
||||||
|
prompt_title = title,
|
||||||
|
finder = finders.new_table {
|
||||||
|
results = items,
|
||||||
|
entry_maker = entry_maker,
|
||||||
|
},
|
||||||
|
previewer = false,
|
||||||
|
sorter = conf.generic_sorter({}),
|
||||||
|
attach_mappings = function(prompt_bufnr)
|
||||||
|
actions.select_default:replace(function()
|
||||||
|
actions.close(prompt_bufnr)
|
||||||
|
|
||||||
|
local selection = action_state.get_selected_entry()
|
||||||
|
action(selection)
|
||||||
|
end)
|
||||||
|
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
}):find()
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_pick_buffer = function()
|
||||||
|
local buffer_name = get_buffer_name()
|
||||||
|
if not buffer_name then return end
|
||||||
|
|
||||||
|
-- Get active group from the current buffer
|
||||||
|
local group_index, _ = get_group_from_buffer(buffer_name)
|
||||||
|
if not group_index then group_index, _ = M.add_buffer() end
|
||||||
|
|
||||||
|
-- Get all buffers from the active group
|
||||||
|
local buffers = {}
|
||||||
|
for i, buffer in ipairs(M.buffers[group_index].buffers) do
|
||||||
|
table.insert(buffers, { key = buffer, value = tostring(i) })
|
||||||
|
end
|
||||||
|
|
||||||
|
pick("Group buffers",
|
||||||
|
buffers,
|
||||||
|
function(buffer)
|
||||||
|
-- Only show last part of the path
|
||||||
|
local display = buffer.key:match("^.+/(.+)$") or buffer.key
|
||||||
|
return {
|
||||||
|
display = display, -- shown in the picker
|
||||||
|
ordinal = buffer.value, -- used for sorting/filtering
|
||||||
|
value = buffer.value, -- actual value
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
function(selection)
|
||||||
|
local new_buffer_name = M.buffers[group_index].buffers[tonumber(selection.value)]
|
||||||
|
|
||||||
|
-- Make new buffer active
|
||||||
|
focus_buffer(new_buffer_name)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.buffer_pick_group = function()
|
||||||
|
-- Get all groups
|
||||||
|
local groups = {}
|
||||||
|
for i, buffer_group in ipairs(M.buffers) do
|
||||||
|
table.insert(groups, { key = buffer_group.group, value = tostring(i) })
|
||||||
|
end
|
||||||
|
|
||||||
|
pick("Groups",
|
||||||
|
groups,
|
||||||
|
function(group)
|
||||||
|
-- Only show last part of the path
|
||||||
|
local display = group.key:match("^.+/(.+)$") or group.key
|
||||||
|
return {
|
||||||
|
display = display, -- shown in the picker
|
||||||
|
ordinal = group.value, -- used for sorting/filtering
|
||||||
|
value = group.value, -- actual value
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
function(selection)
|
||||||
|
local buffer_group = M.buffers[tonumber(selection.value)]
|
||||||
|
local new_buffer_name = buffer_group.buffers[buffer_group.active_index]
|
||||||
|
|
||||||
|
-- Make new buffer active
|
||||||
|
focus_buffer(new_buffer_name)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -44,5 +44,7 @@ vim.opt.shadafile = vim.fn.stdpath("cache") .. "/netrwhist"
|
|||||||
vim.opt.colorcolumn = "81"
|
vim.opt.colorcolumn = "81"
|
||||||
vim.opt.completeopt = "menuone,noselect"
|
vim.opt.completeopt = "menuone,noselect"
|
||||||
vim.opt.cursorline = true
|
vim.opt.cursorline = true
|
||||||
|
vim.opt.fillchars = vim.opt.fillchars + "diff:╱"
|
||||||
|
vim.opt.showtabline = 0
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
vim.opt.title = true
|
vim.opt.title = true
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
flw = "lua",
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -6,13 +6,18 @@ M.is_buffer_a_file = function()
|
|||||||
return buffer_name ~= "" and vim.fn.filereadable(buffer_name) == 1
|
return buffer_name ~= "" and vim.fn.filereadable(buffer_name) == 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
M.normalize_path = function(path)
|
||||||
|
if not path then return nil end
|
||||||
|
return IS_WINDOWS() and path:gsub("\\", "/") or path
|
||||||
|
end
|
||||||
|
|
||||||
M.get_file_path = function()
|
M.get_file_path = function()
|
||||||
if not M.is_buffer_a_file() then
|
if not M.is_buffer_a_file() then
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
local file_path = vim.fn.expand("%:p")
|
local file_path = vim.fn.expand("%:p")
|
||||||
|
|
||||||
return vim.fn.fnamemodify(file_path, ":h") .. "/"
|
return M.normalize_path(vim.fn.fnamemodify(file_path, ":h")) .. "/"
|
||||||
end
|
end
|
||||||
|
|
||||||
M.get_netrw_path = function() -- b:netrw_curdir
|
M.get_netrw_path = function() -- b:netrw_curdir
|
||||||
@@ -20,26 +25,30 @@ M.get_netrw_path = function() -- b:netrw_curdir
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
return vim.fn.fnamemodify(vim.fn.bufname(), ":p")
|
return M.normalize_path(vim.fn.fnamemodify(vim.fn.bufname(), ":p"))
|
||||||
end
|
end
|
||||||
|
|
||||||
M.get_current_directory = function()
|
M.get_current_directory = function()
|
||||||
return M.get_file_path() or M.get_netrw_path() or vim.fn.getcwd()
|
return M.get_file_path() or M.get_netrw_path() or M.normalize_path(vim.fn.getcwd())
|
||||||
end
|
end
|
||||||
|
|
||||||
M.find_project_root = function()
|
M.find_project_root = function()
|
||||||
local current_directory = M.get_current_directory()
|
local current_directory = M.get_current_directory()
|
||||||
|
if current_directory:match("^term://") then return nil, current_directory end
|
||||||
|
|
||||||
local directory = current_directory
|
local directory = current_directory
|
||||||
while directory ~= "/" do
|
while directory ~= "/" and not directory:match("^%a:[/\\]?$") do
|
||||||
local git_directory = directory .. "/.git"
|
local git_path = vim.loop.fs_stat(directory .. "/.git")
|
||||||
local project_file = directory .. "/.project"
|
if git_path then
|
||||||
|
return M.normalize_path(directory:gsub("/$", "")) -- remove trailing slash
|
||||||
if vim.fn.isdirectory(git_directory) == 1 or vim.fn.filereadable(project_file) == 1 then
|
|
||||||
return directory
|
|
||||||
end
|
end
|
||||||
|
|
||||||
directory = vim.fn.fnamemodify(directory, ":h")
|
local project_file = vim.loop.fs_stat(directory .. "/.project")
|
||||||
|
if project_file and project_file.type == "file" then
|
||||||
|
return M.normalize_path(directory:gsub("/$", "")) -- remove trailing slash
|
||||||
|
end
|
||||||
|
|
||||||
|
directory = M.normalize_path(vim.fn.fnamemodify(directory, ":h"))
|
||||||
end
|
end
|
||||||
|
|
||||||
return nil, current_directory
|
return nil, current_directory
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
IS_WINDOWS = function()
|
||||||
|
return string.find(vim.loop.os_uname().sysname, "NT")
|
||||||
|
end
|
||||||
|
|
||||||
-- Usage:
|
-- Usage:
|
||||||
-- :lua P("Hello World!")
|
-- :lua P("Hello World!")
|
||||||
P = function(v)
|
P = function(v)
|
||||||
@@ -15,5 +19,5 @@ R = function(name)
|
|||||||
end
|
end
|
||||||
|
|
||||||
LOG = function(v)
|
LOG = function(v)
|
||||||
vim.fn.writefile({ vim.inspect(v) }, "/tmp/nvim-log", "a")
|
vim.fn.writefile({ vim.inspect(v) }, vim.fn.stdpath("cache") .. "/log", "a")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ return {
|
|||||||
{ -- https://github.com/neovim/nvim-lspconfig
|
{ -- https://github.com/neovim/nvim-lspconfig
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
|
-- Improve the built-in LSP UI
|
||||||
|
"nvimdev/lspsaga.nvim",
|
||||||
-- Additional lua configuration, makes Nvim stuff amazing!
|
-- Additional lua configuration, makes Nvim stuff amazing!
|
||||||
"folke/neodev.nvim",
|
"folke/neodev.nvim",
|
||||||
-- C# "Goto Definition" with decompilation support
|
-- C# "Goto Definition" with decompilation support
|
||||||
@@ -73,6 +75,7 @@ return {
|
|||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
-- Setup neovim Lua configuration
|
-- Setup neovim Lua configuration
|
||||||
|
require("lspsaga").setup() -- ?? does this do anything with doc hover
|
||||||
require("neodev").setup()
|
require("neodev").setup()
|
||||||
|
|
||||||
-- Vim process
|
-- Vim process
|
||||||
@@ -103,6 +106,40 @@ return {
|
|||||||
["textDocument/definition"] = require('omnisharp_extended').handler,
|
["textDocument/definition"] = require('omnisharp_extended').handler,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
ts_ls = {
|
||||||
|
init_options = {
|
||||||
|
plugins = {
|
||||||
|
{
|
||||||
|
name = '@vue/typescript-plugin',
|
||||||
|
location = '/home/rick/.cache/.bun/install/global/node_modules/@vue/language-server',
|
||||||
|
languages = { 'vue' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filetypes = { 'javascript', 'javascriptreact', 'javascript.jsx', 'typescript', 'typescriptreact', 'typescript.tsx', 'vue', },
|
||||||
|
-- filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue' },
|
||||||
|
-- requires: bun install -g typescript-language-server
|
||||||
|
-- TODO: Update which-key config, maybe other packages
|
||||||
|
-- Sources:
|
||||||
|
-- https://github.com/vuejs/language-tools?tab=readme-ov-file#hybrid-mode-configuration-requires-vuelanguage-server-version-200
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig/configs/ts_ls.lua#L4
|
||||||
|
},
|
||||||
|
-- volar = {
|
||||||
|
-- -- init_options = {
|
||||||
|
-- -- vue = {
|
||||||
|
-- -- hybridMode = false,
|
||||||
|
-- -- },
|
||||||
|
-- -- },
|
||||||
|
-- },
|
||||||
|
-- volar = {
|
||||||
|
-- -- init_options = {
|
||||||
|
-- -- typescript = {
|
||||||
|
-- -- serverPath = '/home/rick/.cache/.bun/install/global/node_modules/typescript/lib//tsserverlibrary.js'
|
||||||
|
-- -- }
|
||||||
|
-- -- },
|
||||||
|
-- -- filetypes = {'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json'}
|
||||||
|
-- },
|
||||||
|
vue_ls = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
||||||
@@ -114,7 +151,14 @@ return {
|
|||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
on_attach = require("keybinds").lspconfig_on_attach,
|
on_attach = require("keybinds").lspconfig_on_attach,
|
||||||
})
|
})
|
||||||
require("lspconfig")[server].setup(opts)
|
-- P(server)
|
||||||
|
-- P(opts)
|
||||||
|
if vim.lsp.config then
|
||||||
|
vim.lsp.config(server, opts)
|
||||||
|
vim.lsp.enable(server)
|
||||||
|
else
|
||||||
|
require("lspconfig")[server].setup(opts)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -43,12 +43,6 @@ return {
|
|||||||
cmd = "ASToggle", -- defer, until run command
|
cmd = "ASToggle", -- defer, until run command
|
||||||
event = { "InsertLeave", "TextChanged" }, -- defer, until event trigger
|
event = { "InsertLeave", "TextChanged" }, -- defer, until event trigger
|
||||||
opts = {
|
opts = {
|
||||||
execution_message = {
|
|
||||||
enabled = true,
|
|
||||||
message = function()
|
|
||||||
return [["]] .. vim.fn.bufname() .. [[" written]]
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
debounce_delay = 5000, -- delay for `defer_save`, in ms
|
debounce_delay = 5000, -- delay for `defer_save`, in ms
|
||||||
condition = function(buf)
|
condition = function(buf)
|
||||||
-- Dont save special-buffers
|
-- Dont save special-buffers
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ return {
|
|||||||
"nvim-telescope/telescope.nvim",
|
"nvim-telescope/telescope.nvim",
|
||||||
|
|
||||||
"sindrets/diffview.nvim", -- diff integration
|
"sindrets/diffview.nvim", -- diff integration
|
||||||
|
-- { "sindrets/diffview.nvim", opts = { enhanced_diff_hl = true } }, -- diff integration
|
||||||
},
|
},
|
||||||
opts = {},
|
opts = {},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ end
|
|||||||
|
|
||||||
-- Set which-key key section description
|
-- Set which-key key section description
|
||||||
M.wk = function(keybind, description, bufnr)
|
M.wk = function(keybind, description, bufnr)
|
||||||
require("which-key").register({
|
require("which-key").add({
|
||||||
[keybind] = { name = description, _ = "which_key_ignore" },
|
{ keybind, group = description, mode = { "n", "v" }, buffer = bufnr },
|
||||||
}, { mode = { "n", "v" }, buffer = bufnr }) -- bufnr = nil means global
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
M.buffer_close = function()
|
M.buffer_close = function()
|
||||||
@@ -33,7 +33,7 @@ end
|
|||||||
M.file_config = function()
|
M.file_config = function()
|
||||||
builtin.find_files({
|
builtin.find_files({
|
||||||
prompt_title = "Nvim Config",
|
prompt_title = "Nvim Config",
|
||||||
cwd = "~/.config/nvim",
|
cwd = vim.fn.stdpath("config"),
|
||||||
hidden = true,
|
hidden = true,
|
||||||
no_ignore = true,
|
no_ignore = true,
|
||||||
-- path_display = { "shorten" },
|
-- path_display = { "shorten" },
|
||||||
@@ -41,7 +41,7 @@ M.file_config = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
M.file_find = function()
|
M.file_find = function()
|
||||||
builtin.find_files({
|
telescope.extensions.file_browser.file_browser({
|
||||||
cwd = F.get_current_directory(),
|
cwd = F.get_current_directory(),
|
||||||
hidden = true,
|
hidden = true,
|
||||||
no_ignore = true,
|
no_ignore = true,
|
||||||
@@ -49,18 +49,13 @@ M.file_find = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
M.file_find_home = function()
|
M.file_find_home = function()
|
||||||
builtin.find_files({
|
telescope.extensions.file_browser.file_browser({
|
||||||
cwd = "~",
|
cwd = "~",
|
||||||
hidden = true,
|
hidden = true,
|
||||||
no_ignore = true,
|
no_ignore = true,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
M.file_find_root = function()
|
|
||||||
local cwd = F.get_current_directory():gsub("^/", "")
|
|
||||||
builtin.find_files({ default_text = cwd, cwd = "/" })
|
|
||||||
end
|
|
||||||
|
|
||||||
M.file_find_recent = function()
|
M.file_find_recent = function()
|
||||||
telescope.extensions.recent_files.pick()
|
telescope.extensions.recent_files.pick()
|
||||||
end
|
end
|
||||||
@@ -228,6 +223,10 @@ M.search_buffer = function()
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
M.toggle_term = function()
|
||||||
|
vim.api.nvim_command("ToggleTerm")
|
||||||
|
end
|
||||||
|
|
||||||
-- TODO: Temporary copy/pasted until project_nvim exposes this function
|
-- TODO: Temporary copy/pasted until project_nvim exposes this function
|
||||||
-- https://github.com/ahmedkhalf/project.nvim/issues/145
|
-- https://github.com/ahmedkhalf/project.nvim/issues/145
|
||||||
-- TODO: Create a Telescope extension out of this, for telescope-all-recent
|
-- TODO: Create a Telescope extension out of this, for telescope-all-recent
|
||||||
@@ -302,8 +301,13 @@ M.vc_select_repo = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
M.vc_status = function()
|
M.vc_status = function()
|
||||||
-- Open the repository of the current file
|
if F.find_project_root() then
|
||||||
require("neogit").open({ cwd = "%:p:h" })
|
-- Open the repository of the current file
|
||||||
|
require("neogit").open({ cwd = "%:p:h" })
|
||||||
|
else
|
||||||
|
-- Pick a project to open
|
||||||
|
M.vc_select_repo()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
local K = vim.keymap.set
|
local K = vim.keymap.set
|
||||||
|
|
||||||
local builtin
|
local builtin
|
||||||
|
local bs = require("core.buffers")
|
||||||
local wk = require("which-key")
|
local wk = require("which-key")
|
||||||
|
|
||||||
local F = require("keybind-functions")
|
local F = require("keybind-functions")
|
||||||
@@ -57,6 +58,18 @@ M.setup = function()
|
|||||||
K("i", "<BS>", F.hungry_delete_backspace())
|
K("i", "<BS>", F.hungry_delete_backspace())
|
||||||
K("i", "<Del>", F.hungry_delete())
|
K("i", "<Del>", F.hungry_delete())
|
||||||
|
|
||||||
|
-- Navigation
|
||||||
|
K("n", "<M-h>", bs.buffer_move_left)
|
||||||
|
K("n", "<M-j>", bs.buffer_group_move_down)
|
||||||
|
K("n", "<M-k>", bs.buffer_group_move_up)
|
||||||
|
K("n", "<M-l>", bs.buffer_move_right)
|
||||||
|
K("n", "<M-H>", bs.buffer_swap_left)
|
||||||
|
K("n", "<M-L>", bs.buffer_swap_right)
|
||||||
|
|
||||||
|
-- Terminal
|
||||||
|
K("n", "<C-\\>", F.toggle_term)
|
||||||
|
K("t", "<C-\\>", F.toggle_term)
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
--- Leader keys ---
|
--- Leader keys ---
|
||||||
|
|
||||||
@@ -64,8 +77,9 @@ M.setup = function()
|
|||||||
K("n", "<leader><space>", builtin.commands, { desc = "Execute command" })
|
K("n", "<leader><space>", builtin.commands, { desc = "Execute command" })
|
||||||
|
|
||||||
|
|
||||||
-- F.wk("<leader>b", "buffer/bookmark")
|
F.wk("<leader>b", "buffer/bookmark")
|
||||||
K("n", "<leader>bb", builtin.buffers, { desc = "Switch buffer" })
|
K("n", "<leader>bb", builtin.buffers, { desc = "Switch buffer" })
|
||||||
|
K("n", "<leader>bB", bs.buffer_pick_buffer, { desc = "Switch tab group buffer" })
|
||||||
K("n", "<leader>bd", F.buffer_dashboard, { desc = "Dashboard" })
|
K("n", "<leader>bd", F.buffer_dashboard, { desc = "Dashboard" })
|
||||||
|
|
||||||
|
|
||||||
@@ -85,7 +99,6 @@ M.setup = function()
|
|||||||
K("n", "<leader>fc", F.file_config, { desc = "Config file" })
|
K("n", "<leader>fc", F.file_config, { desc = "Config file" })
|
||||||
K("n", "<leader>ff", F.file_find, { desc = "Find file" })
|
K("n", "<leader>ff", F.file_find, { desc = "Find file" })
|
||||||
K("n", "<leader>fh", F.file_find_home, { desc = "Find file in ~" })
|
K("n", "<leader>fh", F.file_find_home, { desc = "Find file in ~" })
|
||||||
K("n", "<leader>f/", F.file_find_root, { desc = "Find file in root" })
|
|
||||||
K("n", "<leader>fr", F.file_find_recent, { desc = "Find recent file" })
|
K("n", "<leader>fr", F.file_find_recent, { desc = "Find recent file" })
|
||||||
K("n", "<leader>fs", F.file_save, { desc = "Save file" })
|
K("n", "<leader>fs", F.file_save, { desc = "Save file" })
|
||||||
|
|
||||||
@@ -113,35 +126,40 @@ M.setup = function()
|
|||||||
K("n", "<leader>sq", ":nohlsearch<CR>", { desc = "Stop search", silent = true })
|
K("n", "<leader>sq", ":nohlsearch<CR>", { desc = "Stop search", silent = true })
|
||||||
|
|
||||||
|
|
||||||
|
F.wk("<leader>t", "tabs/toggle")
|
||||||
|
K("n", "<leader>tg", bs.buffer_pick_group, { desc = "Switch tab group" })
|
||||||
|
|
||||||
|
|
||||||
F.wk("<leader>v", "git") -- version control
|
F.wk("<leader>v", "git") -- version control
|
||||||
K("n", "<leader>vr", F.vc_select_repo, { desc = "Select repo" })
|
K("n", "<leader>vr", F.vc_select_repo, { desc = "Select repo" })
|
||||||
K("n", "<leader>vv", F.vc_status, { desc = "Neogit status" })
|
K("n", "<leader>vv", F.vc_status, { desc = "Neogit status" })
|
||||||
|
|
||||||
|
|
||||||
K({ "n", "v" }, "<leader>w", "<C-W>", { remap = true }) -- keymap and which-key should *both* be triggered
|
K({ "n", "v" }, "<leader>w", "<C-W>", { remap = true }) -- keymap and which-key should *both* be triggered
|
||||||
wk.register({
|
wk.add({
|
||||||
w = {
|
{
|
||||||
name = "window",
|
mode = { "n", "v" },
|
||||||
s = "Split window",
|
{ "<leader>w", group = "window" },
|
||||||
v = "Split window vertically",
|
{ "<leader>w+", desc = "Increase height" },
|
||||||
w = "Switch windows",
|
{ "<leader>w-", desc = "Decrease height" },
|
||||||
q = "Quit a window",
|
{ "<leader>w<", desc = "Decrease width" },
|
||||||
o = "Close all other windows",
|
{ "<leader>w=", desc = "Equally high and wide" },
|
||||||
T = "Break out into a new tab",
|
{ "<leader>w>", desc = "Increase width" },
|
||||||
x = "Swap current with next",
|
{ "<leader>wT", desc = "Break out into a new tab" },
|
||||||
["-"] = "Decrease height",
|
{ "<leader>w_", desc = "Max out the height" },
|
||||||
["+"] = "Increase height",
|
{ "<leader>wh", desc = "Go to the left window" },
|
||||||
["<lt>"] = "Decrease width",
|
{ "<leader>wj", desc = "Go to the down window" },
|
||||||
[">"] = "Increase width",
|
{ "<leader>wk", desc = "Go to the up window" },
|
||||||
["|"] = "Max out the width",
|
{ "<leader>wl", desc = "Go to the right window" },
|
||||||
["_"] = "Max out the height",
|
{ "<leader>wo", desc = "Close all other windows" },
|
||||||
["="] = "Equally high and wide",
|
{ "<leader>wq", desc = "Quit a window" },
|
||||||
h = "Go to the left window",
|
{ "<leader>ws", desc = "Split window" },
|
||||||
l = "Go to the right window",
|
{ "<leader>wv", desc = "Split window vertically" },
|
||||||
k = "Go to the up window",
|
{ "<leader>ww", desc = "Switch windows" },
|
||||||
j = "Go to the down window",
|
{ "<leader>wx", desc = "Swap current with next" },
|
||||||
|
{ "<leader>w|", desc = "Max out the width" },
|
||||||
},
|
},
|
||||||
}, { mode = { "n", "v" }, prefix = "<leader>", preset = true })
|
})
|
||||||
-- https://github.com/folke/which-key.nvim/issues/270
|
-- https://github.com/folke/which-key.nvim/issues/270
|
||||||
-- https://github.com/folke/which-key.nvim/blob/main/lua/which-key/plugins/presets/misc.lua
|
-- https://github.com/folke/which-key.nvim/blob/main/lua/which-key/plugins/presets/misc.lua
|
||||||
end
|
end
|
||||||
@@ -160,6 +178,9 @@ M.lspconfig_on_attach = function(_, bufnr)
|
|||||||
nnoremap("<leader>lf", F.lsp_format_buffer, "Format buffer")
|
nnoremap("<leader>lf", F.lsp_format_buffer, "Format buffer")
|
||||||
nnoremap("<leader>lr", vim.lsp.buf.rename, "Rename")
|
nnoremap("<leader>lr", vim.lsp.buf.rename, "Rename")
|
||||||
|
|
||||||
|
nnoremap("<leader>ld", "<cmd>Lspsaga hover_doc<CR>", "Show documentation")
|
||||||
|
-- vim.keymap.set("n", "<leader>ld", "<cmd>Lspsaga hover_doc<CR>", { desc = "Show documentation" })
|
||||||
|
|
||||||
F.wk("<leader>lg", "goto", bufnr)
|
F.wk("<leader>lg", "goto", bufnr)
|
||||||
nnoremap("<leader>lga", builtin.lsp_dynamic_workspace_symbols, "Workspace symbols")
|
nnoremap("<leader>lga", builtin.lsp_dynamic_workspace_symbols, "Workspace symbols")
|
||||||
nnoremap("<leader>lgd", vim.lsp.buf.declaration, "Declaration")
|
nnoremap("<leader>lgd", vim.lsp.buf.declaration, "Declaration")
|
||||||
@@ -219,13 +240,34 @@ end
|
|||||||
M.telescope_default_mappings = function()
|
M.telescope_default_mappings = function()
|
||||||
local actions = require("telescope.actions")
|
local actions = require("telescope.actions")
|
||||||
return {
|
return {
|
||||||
|
n = {
|
||||||
|
["<M-h>"] = actions.close,
|
||||||
|
["<M-j>"] = actions.move_selection_next,
|
||||||
|
["<M-k>"] = actions.move_selection_previous,
|
||||||
|
["<M-l>"] = actions.select_default,
|
||||||
|
},
|
||||||
i = {
|
i = {
|
||||||
["<M-h>"] = actions.close,
|
["<M-h>"] = actions.close,
|
||||||
["<M-j>"] = actions.move_selection_next,
|
["<M-j>"] = actions.move_selection_next,
|
||||||
["<M-k>"] = actions.move_selection_previous,
|
["<M-k>"] = actions.move_selection_previous,
|
||||||
["<M-l>"] = actions.select_default,
|
["<M-l>"] = actions.select_default,
|
||||||
|
|
||||||
|
["<Tab>"] = actions.select_default,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Keybindings for toggleterm.nvim
|
||||||
|
M.toggleterm_nvim = function()
|
||||||
|
local keymaps = function()
|
||||||
|
local opts = { buffer = 0 }
|
||||||
|
K("t", "<Esc>", [[<C-\><C-n>]], opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("TermOpen", {
|
||||||
|
pattern = "term://*toggleterm#*",
|
||||||
|
callback = keymaps,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
@@ -9,12 +9,13 @@ return {
|
|||||||
-- Fuzzy Finder Algorithm which requires local dependencies to be built.
|
-- Fuzzy Finder Algorithm which requires local dependencies to be built.
|
||||||
{
|
{
|
||||||
"nvim-telescope/telescope-fzf-native.nvim",
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
build = "make",
|
build = IS_WINDOWS() and "mingw32-make" or "make",
|
||||||
cond = function()
|
cond = function()
|
||||||
return vim.fn.executable "make" == 1
|
return vim.fn.executable(IS_WINDOWS() and "mingw32-make" or "make") == 1
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
-- Extensions
|
-- Extensions
|
||||||
|
"nvim-telescope/telescope-file-browser.nvim",
|
||||||
"smartpde/telescope-recent-files",
|
"smartpde/telescope-recent-files",
|
||||||
},
|
},
|
||||||
extensions = {
|
extensions = {
|
||||||
@@ -38,10 +39,17 @@ return {
|
|||||||
path = vim.fn.stdpath("cache") .. "/telescope_history",
|
path = vim.fn.stdpath("cache") .. "/telescope_history",
|
||||||
},
|
},
|
||||||
|
|
||||||
mappings = require("keybinds").telescope_default_mappings()
|
mappings = require("keybinds").telescope_default_mappings(),
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
file_browser = {
|
||||||
|
hide_parent_dir = true, -- hide "../"
|
||||||
|
prompt_path = true, -- set path as prompt prefix
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
require("telescope").load_extension("fzf")
|
require("telescope").load_extension("fzf")
|
||||||
|
require("telescope").load_extension "file_browser"
|
||||||
require("telescope").load_extension("recent_files")
|
require("telescope").load_extension("recent_files")
|
||||||
|
|
||||||
--- ┌──────────────────────────────────────────────────┐
|
--- ┌──────────────────────────────────────────────────┐
|
||||||
@@ -85,7 +93,7 @@ return {
|
|||||||
-- Width
|
-- Width
|
||||||
prompt.width = max_columns - (bs ~= 0 and search_condensed == 0 and bs or 0)
|
prompt.width = max_columns - (bs ~= 0 and search_condensed == 0 and bs or 0)
|
||||||
results.width = max_columns - (bs ~= 0 and search_condensed == 0 and bs or 0)
|
results.width = max_columns - (bs ~= 0 and search_condensed == 0 and bs or 0)
|
||||||
preview.width = math.floor(max_columns * 0.5)
|
preview.width = math.floor(max_columns * 0.75)
|
||||||
|
|
||||||
-- Line (position), coordinates start at top-left
|
-- Line (position), coordinates start at top-left
|
||||||
prompt.line = max_lines - results.height + search_condensed - bs -- take overlapping border into account
|
prompt.line = max_lines - results.height + search_condensed - bs -- take overlapping border into account
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
-- Module for managing popup terminal
|
||||||
|
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.persistent_term = nil
|
||||||
|
|
||||||
|
local create_command = function(name, command)
|
||||||
|
if not name or type(name) ~= "string" then return end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command(name, function()
|
||||||
|
local cmd = type(command) == "function" and command() or command
|
||||||
|
M.send_cmd_to_term(cmd)
|
||||||
|
end, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
M.setup = function()
|
||||||
|
-- Setup keybinds
|
||||||
|
require("keybinds").toggleterm_nvim()
|
||||||
|
|
||||||
|
create_command("RunScript", "sleep 2 && ls /")
|
||||||
|
create_command("ScanScript", function()
|
||||||
|
local file_path = vim.fn.expand("%:p")
|
||||||
|
LOG(file_path)
|
||||||
|
|
||||||
|
return "ls"
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.send_cmd_to_term = function(cmd)
|
||||||
|
local term = require("toggleterm.terminal").Terminal
|
||||||
|
local default = term:new({ id = 1 })
|
||||||
|
if not default:is_open() then default:open() end
|
||||||
|
default:send(cmd)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
+74
-22
@@ -13,25 +13,41 @@ return {
|
|||||||
vim.cmd.colorscheme "base16-tomorrow-night"
|
vim.cmd.colorscheme "base16-tomorrow-night"
|
||||||
|
|
||||||
local colors = require("base16-colorscheme").colors
|
local colors = require("base16-colorscheme").colors
|
||||||
local blue = colors.base0D -- #81a2be
|
-- local blue_m1 = "#9cc4e6"
|
||||||
|
local blue = colors.base0D -- #81a2be
|
||||||
|
-- local blue_p1 = "#5f819d"
|
||||||
|
local blue_p2 = "#445666"
|
||||||
|
local blue_p3 = "#2a3640"
|
||||||
local cyan = colors.base0C -- #8abeb7
|
local cyan = colors.base0C -- #8abeb7
|
||||||
local fg = colors.base05 -- #c5c8c6
|
local fg = colors.base05 -- #c5c8c6
|
||||||
local green_dark = "#8c9440"
|
local fg_dark = "#515151"
|
||||||
|
-- local green = colors.base0B -- #b5bd68
|
||||||
|
local green_p1 = "#8c9440"
|
||||||
|
-- local green_p2 = "#5f875f"
|
||||||
|
local green_bg = "#404324"
|
||||||
|
-- local orange = colors.base09 -- #de935f
|
||||||
|
-- local magenta = colors.base0E -- #b294bb
|
||||||
local red = colors.base08 -- #cc6666
|
local red = colors.base08 -- #cc6666
|
||||||
|
local red_bg = "#4e2626"
|
||||||
local yellow = colors.base0A -- #f0c674
|
local yellow = colors.base0A -- #f0c674
|
||||||
|
|
||||||
-- Cursor
|
-- Cursor
|
||||||
vim.api.nvim_command("highlight CursorLineNr guifg=" .. yellow .. " gui=bold")
|
vim.api.nvim_command("highlight CursorLineNr guifg=" .. yellow .. " gui=bold")
|
||||||
|
-- Diffview
|
||||||
|
vim.api.nvim_command("highlight DiffviewDiffAdd guibg=" .. green_bg)
|
||||||
|
vim.api.nvim_command("highlight DiffviewDiffChange guibg=" .. blue_p3) -- Unchanged part on a change line
|
||||||
|
vim.api.nvim_command("highlight DiffviewDiffDelete guibg=" .. red_bg .. " guifg=" .. fg_dark)
|
||||||
|
vim.api.nvim_command("highlight DiffviewDiffText guibg=" .. blue_p2) -- Changed part on a change line
|
||||||
-- Git gutter
|
-- Git gutter
|
||||||
vim.api.nvim_command("highlight GitSignsAdd guifg=" .. green_dark)
|
vim.api.nvim_command("highlight GitSignsAdd guifg=" .. green_p1)
|
||||||
vim.api.nvim_command("highlight GitSignsChange guifg=" .. yellow)
|
vim.api.nvim_command("highlight GitSignsChange guifg=" .. yellow)
|
||||||
-- Rainbow delimiters
|
-- Rainbow delimiters
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterBlue guifg=" .. blue)
|
vim.api.nvim_command("highlight RainbowDelimiterBlue guifg=" .. blue)
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterCyan guifg=" .. cyan)
|
vim.api.nvim_command("highlight RainbowDelimiterCyan guifg=" .. cyan)
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterGreen guifg=" .. green_dark)
|
vim.api.nvim_command("highlight RainbowDelimiterGreen guifg=" .. green_p1)
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterOrange guifg=" .. fg)
|
vim.api.nvim_command("highlight RainbowDelimiterOrange guifg=" .. fg)
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterRed guifg=" .. red)
|
vim.api.nvim_command("highlight RainbowDelimiterRed guifg=" .. red)
|
||||||
vim.api.nvim_command("highlight RainbowDelimiterYellow guifg=" .. yellow)
|
vim.api.nvim_command("highlight RainbowDelimiterYellow guifg=" .. yellow)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -48,8 +64,21 @@ return {
|
|||||||
globalstatus = true,
|
globalstatus = true,
|
||||||
},
|
},
|
||||||
sections = {
|
sections = {
|
||||||
lualine_b = { "branch" },
|
lualine_a = { "mode" },
|
||||||
lualine_x = { "diagnostics", "encoding", "fileformat", "filetype" },
|
lualine_b = { "encoding", "filename" },
|
||||||
|
lualine_c = {
|
||||||
|
{
|
||||||
|
-- TODO: nvim alternate file stuff and closing files is busted
|
||||||
|
"project",
|
||||||
|
fmt = function()
|
||||||
|
local path = require("core.functions").find_project_root() or ""
|
||||||
|
return path:match("([^/]+)$")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
lualine_x = { "diagnostics", "fileformat" },
|
||||||
|
lualine_y = { "filetype" },
|
||||||
|
lualine_z = { "progress", "location" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -64,14 +93,6 @@ return {
|
|||||||
opts = {
|
opts = {
|
||||||
config = {
|
config = {
|
||||||
header = {
|
header = {
|
||||||
-- " ",
|
|
||||||
-- " ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ",
|
|
||||||
-- " ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ",
|
|
||||||
-- " ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ",
|
|
||||||
-- " ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ",
|
|
||||||
-- " ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ",
|
|
||||||
-- " ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ",
|
|
||||||
-- "____________________________________________________",
|
|
||||||
" . . ",
|
" . . ",
|
||||||
" ';;,. ::' ",
|
" ';;,. ::' ",
|
||||||
" ,:::;,, :ccc, ",
|
" ,:::;,, :ccc, ",
|
||||||
@@ -85,7 +106,9 @@ return {
|
|||||||
" .;ooo: ;cclooo:. ",
|
" .;ooo: ;cclooo:. ",
|
||||||
" .;oc 'coo;. ",
|
" .;oc 'coo;. ",
|
||||||
" .' .,. ",
|
" .' .,. ",
|
||||||
"____________________________________________________",
|
"",
|
||||||
|
" _______________________________________________________",
|
||||||
|
"",
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
shortcut = {
|
shortcut = {
|
||||||
@@ -154,4 +177,33 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Rainbow-mode
|
||||||
|
{ -- https://github.com/norcalli/nvim-colorizer.lua
|
||||||
|
"norcalli/nvim-colorizer.lua",
|
||||||
|
opts = {},
|
||||||
|
}, -- :ColorizerToggle
|
||||||
|
|
||||||
|
-- Popup terminal
|
||||||
|
{
|
||||||
|
"akinsho/toggleterm.nvim",
|
||||||
|
config = function()
|
||||||
|
vim.cmd [[let &shellcmdflag = '-s']] -- required for Windows
|
||||||
|
require("toggleterm").setup({
|
||||||
|
auto_scroll = true,
|
||||||
|
direction = "float",
|
||||||
|
float_opts = {
|
||||||
|
border = "curved",
|
||||||
|
row = function() return vim.o.lines - 4 end,
|
||||||
|
width = function() return vim.o.columns - 6 end,
|
||||||
|
height = 20,
|
||||||
|
winblend = 0,
|
||||||
|
},
|
||||||
|
hide_numbers = true,
|
||||||
|
open_mapping = nil,
|
||||||
|
persist_mode = true,
|
||||||
|
size = 20,
|
||||||
|
start_in_insert = true,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"export-settings-ini": true,
|
||||||
|
"export-gtkrc-20": true,
|
||||||
|
"export-index-theme": true,
|
||||||
|
"export-xsettingsd": true,
|
||||||
|
"export-gtk4-symlinks": true
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ color_scheme_path=/usr/share/qt5ct/colors/darker.conf
|
|||||||
custom_palette=false
|
custom_palette=false
|
||||||
icon_theme=Arc
|
icon_theme=Arc
|
||||||
standard_dialogs=default
|
standard_dialogs=default
|
||||||
style=qt5gtk2
|
style=kvantum
|
||||||
|
|
||||||
[Fonts]
|
[Fonts]
|
||||||
fixed=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
fixed=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ color_scheme_path=/usr/share/qt6ct/colors/darker.conf
|
|||||||
custom_palette=false
|
custom_palette=false
|
||||||
icon_theme=Arc
|
icon_theme=Arc
|
||||||
standard_dialogs=default
|
standard_dialogs=default
|
||||||
style=qt6gtk2
|
style=kvantum
|
||||||
|
|
||||||
[Fonts]
|
[Fonts]
|
||||||
fixed=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
fixed="DejaVu Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||||
general=@Variant(\0\0\0@\0\0\0\x16\0\x44\0\x65\0j\0\x61\0V\0u\0 \0S\0\x61\0n\0s@$\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
|
general="DejaVu Sans,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||||
|
|
||||||
[Interface]
|
[Interface]
|
||||||
activate_item_on_single_click=1
|
activate_item_on_single_click=1
|
||||||
|
|||||||
@@ -0,0 +1,146 @@
|
|||||||
|
// -*- mode: jsonc -*-
|
||||||
|
{
|
||||||
|
// "layer": "top", // Waybar at top layer
|
||||||
|
"position": "top",
|
||||||
|
"height": 22, // Waybar height (to be removed for auto height)
|
||||||
|
"spacing": 0, // Gaps between modules (4px)
|
||||||
|
// Choose the order of the modules
|
||||||
|
"modules-left": [
|
||||||
|
"hyprland/workspaces",
|
||||||
|
],
|
||||||
|
"modules-center": [
|
||||||
|
"hyprland/window"
|
||||||
|
],
|
||||||
|
"modules-right": [
|
||||||
|
"custom/btc",
|
||||||
|
"pulseaudio",
|
||||||
|
"backlight",
|
||||||
|
"network",
|
||||||
|
"battery",
|
||||||
|
"custom/battery-low",
|
||||||
|
"clock",
|
||||||
|
"tray",
|
||||||
|
"custom/power"
|
||||||
|
],
|
||||||
|
// Modules configuration
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"disable-scroll": false,
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"all-outputs": false,
|
||||||
|
"warp-on-scroll": false,
|
||||||
|
"format": "{icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"1": "一",
|
||||||
|
"2": "二",
|
||||||
|
"3": "三",
|
||||||
|
"4": "四",
|
||||||
|
"5": "五",
|
||||||
|
"6": "六",
|
||||||
|
"7": "七",
|
||||||
|
"8": "八",
|
||||||
|
"9": "九",
|
||||||
|
"10": "十",
|
||||||
|
"urgent": "",
|
||||||
|
"focused": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"custom/btc": {
|
||||||
|
"escape": false,
|
||||||
|
"exec": "$HOME/.local/bin/panel/btc.sh",
|
||||||
|
"interval": 300,
|
||||||
|
"format": " {}",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
"scroll-step": 2, // %, can be a float
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-bluetooth": "{icon} {volume}%",
|
||||||
|
"format-bluetooth-muted": " {icon}",
|
||||||
|
"format-muted": " {volume}%",
|
||||||
|
"format-source": "{volume}%",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
"device": "intel_backlight",
|
||||||
|
"format": "{percent}% {icon}",
|
||||||
|
"format-icons": ["", "", "", "", "", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
"format-wifi": " {signalStrength}%",
|
||||||
|
"format-ethernet": "",
|
||||||
|
"tooltip-format": "{ifname}: {ipaddr}/{cidr}\n via {gwaddr}",
|
||||||
|
"tooltip-format-wifi": "{ifname}: {ipaddr}/{cidr}\n via {gwaddr}\n ssid {essid}",
|
||||||
|
"tooltip-format-disconnected": "Disconnected",
|
||||||
|
"format-linked": " (No IP)",
|
||||||
|
"format-disconnected": "<span color='#676e7d'></span>",
|
||||||
|
"on-click": "$HOME/.local/bin/panel/iface.sh"
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"bat": "BAT0",
|
||||||
|
"interval": 30,
|
||||||
|
"full-at": 98,
|
||||||
|
"states": {
|
||||||
|
"good": 95,
|
||||||
|
"critical": 20
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}% ({time})",
|
||||||
|
"format-time": "{H}:{m}",
|
||||||
|
"format-full": "{icon} {capacity}%",
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
"format-plugged": " {capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"custom/battery-low": {
|
||||||
|
"exec": "$HOME/.local/bin/panel/battery.sh",
|
||||||
|
"interval": 30,
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
// "timezone": "America/New_York",
|
||||||
|
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||||
|
"calendar": {
|
||||||
|
"mode" : "month",
|
||||||
|
"mode-mon-col" : 3,
|
||||||
|
"weeks-pos" : "right",
|
||||||
|
"format": {
|
||||||
|
"months": "<span color='#b294bb'><b>{}</b></span>",
|
||||||
|
"days": "<span color='#fff'><b>{}</b></span>",
|
||||||
|
"weeks": "<span color='#81a2be'><b>W{}</b></span>",
|
||||||
|
"weekdays": "<span color='#8abeb7'><b>{}</b></span>",
|
||||||
|
"today": "<span color='#f0c674'><b><u>{}</u></b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"format": " {:%I:%M %p}",
|
||||||
|
"on-click": "$HOME/.local/bin/panel/date.sh"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
// "icon-size": 21,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format": "⏻",
|
||||||
|
"tooltip": false,
|
||||||
|
"menu": "on-click",
|
||||||
|
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||||
|
"menu-actions": {
|
||||||
|
"lock": "hyprlock",
|
||||||
|
"shutdown": "shutdown",
|
||||||
|
"reboot": "reboot",
|
||||||
|
"suspend": "systemctl suspend",
|
||||||
|
"hibernate": "systemctl hibernate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
<object class="GtkMenu" id="menu">
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="lock">
|
||||||
|
<property name="label">Lock</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="suspend">
|
||||||
|
<property name="label">Suspend</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="hibernate">
|
||||||
|
<property name="label">Hibernate</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="shutdown">
|
||||||
|
<property name="label">Shutdown</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuItem" id="reboot">
|
||||||
|
<property name="label">Reboot</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,236 @@
|
|||||||
|
@define-color black #000;
|
||||||
|
@define-color red #a54242; /* 1 */
|
||||||
|
@define-color orange #de935f; /* 3 */
|
||||||
|
@define-color blue #5f819d; /* 4 */
|
||||||
|
@define-color green #b5bd68; /* 10 */
|
||||||
|
|
||||||
|
@define-color bgcolor #404552;
|
||||||
|
@define-color bgcolor-inactive #2b2e39;
|
||||||
|
@define-color bgcolor-urgent #dc7a43;
|
||||||
|
@define-color fgcolor #fff;
|
||||||
|
@define-color fgcolor-inactive #676e7d;
|
||||||
|
|
||||||
|
* {
|
||||||
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
font-family: FontAwesome, DejaVu Sans Serif;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: @bgcolor-inactive;
|
||||||
|
color: @fgcolor;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
box-shadow: inset 0 -3px @fgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-btc,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#battery,
|
||||||
|
#clock,
|
||||||
|
#tray,
|
||||||
|
#custom-power {
|
||||||
|
padding: 0 6px;
|
||||||
|
color: @fgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window,
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: @fgcolor;
|
||||||
|
color: @black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: @black;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Workspaces module */
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: @fgcolor-inactive;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover,
|
||||||
|
#workspaces button.empty:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
color: @fgcolor-inactive;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active,
|
||||||
|
#workspaces button.active.empty {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
box-shadow: inset 0 -3px @blue;
|
||||||
|
color: @fgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: @bgcolor-urgent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
|
.modules-left > widget:first-child > #workspaces {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* BTC module */
|
||||||
|
|
||||||
|
#custom-btc:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Media modules */
|
||||||
|
|
||||||
|
#pulseaudio, #wireplumber {
|
||||||
|
color: @fgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio:hover, #wireplumber:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted, #wireplumber.muted {
|
||||||
|
color: @fgcolor-inactive
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
color: @green;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
color: @orange;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Backlight module */
|
||||||
|
|
||||||
|
#backlight:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Network module */
|
||||||
|
|
||||||
|
#network:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: @bgcolor-inactive;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Battery module */
|
||||||
|
|
||||||
|
#battery:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.good {
|
||||||
|
color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: @bgcolor-urgent;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 2s;
|
||||||
|
animation-timing-function: steps(3);
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Clock module */
|
||||||
|
|
||||||
|
#clock:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Tray module */
|
||||||
|
|
||||||
|
#tray:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: @bgcolor-urgent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------- */
|
||||||
|
/* Power module */
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power:hover {
|
||||||
|
background-color: @bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If power module is the leftmost module, set left margin */
|
||||||
|
.modules-left > widget:first-child > #custom-power {
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If power module is the rightmost module, set right margin */
|
||||||
|
.modules-right > widget:last-child > #custom-power {
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.1" encoding="UTF-8"?>
|
||||||
|
|
||||||
<channel name="thunar" version="1.0">
|
<channel name="thunar" version="1.0">
|
||||||
<property name="last-view" type="string" value="ThunarDetailsView"/>
|
<property name="last-view" type="string" value="ThunarDetailsView"/>
|
||||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_LARGEST"/>
|
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_LARGEST"/>
|
||||||
<property name="last-window-width" type="int" value="3000"/>
|
<property name="last-window-width" type="int" value="3000"/>
|
||||||
<property name="last-window-height" type="int" value="1962"/>
|
<property name="last-window-height" type="int" value="1962"/>
|
||||||
<property name="last-window-maximized" type="bool" value="false"/>
|
<property name="last-window-maximized" type="bool" value="true"/>
|
||||||
<property name="last-separator-position" type="int" value="400"/>
|
<property name="last-separator-position" type="int" value="209"/>
|
||||||
<property name="misc-single-click" type="bool" value="false"/>
|
<property name="misc-single-click" type="bool" value="false"/>
|
||||||
<property name="misc-volume-management" type="bool" value="true"/>
|
<property name="misc-volume-management" type="bool" value="true"/>
|
||||||
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_SMALLEST"/>
|
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_SMALLEST"/>
|
||||||
<property name="last-details-view-column-widths" type="string" value="50,241,50,50,1757,50,50,160,440"/>
|
<property name="last-details-view-column-widths" type="string" value="50,241,136,50,85,352,50,160,744,50,50,63,50,108"/>
|
||||||
<property name="last-show-hidden" type="bool" value="true"/>
|
<property name="last-show-hidden" type="bool" value="true"/>
|
||||||
<property name="last-sort-column" type="string" value="THUNAR_COLUMN_NAME"/>
|
<property name="last-sort-column" type="string" value="THUNAR_COLUMN_NAME"/>
|
||||||
<property name="last-sort-order" type="string" value="GTK_SORT_ASCENDING"/>
|
<property name="last-sort-order" type="string" value="GTK_SORT_ASCENDING"/>
|
||||||
<property name="last-side-pane" type="string" value="ThunarShortcutsPane"/>
|
<property name="last-side-pane" type="string" value="THUNAR_SIDEPANE_TYPE_SHORTCUTS"/>
|
||||||
<property name="last-location-bar" type="string" value="ThunarLocationEntry"/>
|
<property name="last-location-bar" type="string" value="ThunarLocationEntry"/>
|
||||||
<property name="hidden-bookmarks" type="array">
|
<property name="hidden-bookmarks" type="array">
|
||||||
<value type="string" value="network:///"/>
|
<value type="string" value="network:///"/>
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
Net/ThemeName "Arc-Dark"
|
||||||
|
Net/IconThemeName "Arc"
|
||||||
|
Gtk/CursorThemeName "capitaine-cursors-light"
|
||||||
|
Net/EnableEventSounds 1
|
||||||
|
EnableInputFeedbackSounds 1
|
||||||
|
Xft/Antialias 1
|
||||||
|
Xft/Hinting 1
|
||||||
|
Xft/HintStyle "hintslight"
|
||||||
|
Xft/RGBA "rgb"
|
||||||
+5
-1
@@ -1,3 +1,7 @@
|
|||||||
XORG_USER='rick'
|
XORG_USER='rick'
|
||||||
|
|
||||||
[ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec xinit -- vt1 > /dev/null 2>&1
|
if [ "$WAYLAND" = true ]; then
|
||||||
|
[ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec start-hyprland > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
[ "$USER" = "$XORG_USER" ] && [ "$(tty)" = "/dev/tty1" ] && exec xinit -- vt1 > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|||||||
+16
-2
@@ -24,6 +24,11 @@ export R_ENVIRON_USER="$XDG_CONFIG_HOME/R/Renviron"
|
|||||||
# export HIDPI=true
|
# export HIDPI=true
|
||||||
# <<<
|
# <<<
|
||||||
|
|
||||||
|
# Wayland
|
||||||
|
# >>> system=wayland
|
||||||
|
# export WAYLAND=true
|
||||||
|
# <<<
|
||||||
|
|
||||||
#--- Program Specific ---#
|
#--- Program Specific ---#
|
||||||
|
|
||||||
# Android
|
# Android
|
||||||
@@ -79,7 +84,12 @@ if [ "$HIDPI" = true ]; then
|
|||||||
export QT_AUTO_SCREEN_SCALE_FACTOR=0
|
export QT_AUTO_SCREEN_SCALE_FACTOR=0
|
||||||
export QT_SCREEN_SCALE_FACTORS=2
|
export QT_SCREEN_SCALE_FACTORS=2
|
||||||
fi
|
fi
|
||||||
export QT_QPA_PLATFORMTHEME="qt5gtk2"
|
if [ "$WAYLAND" = true ]; then
|
||||||
|
export QT_QPA_PLATFORM="wayland"
|
||||||
|
fi
|
||||||
|
export QT_QPA_PLATFORMTHEME="qt5ct"
|
||||||
|
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
|
||||||
|
export QT_STYLE_OVERRIDE="kvantum"
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||||
@@ -104,7 +114,11 @@ export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
|
|||||||
export WINEPREFIX="$XDG_DATA_HOME/wine"
|
export WINEPREFIX="$XDG_DATA_HOME/wine"
|
||||||
|
|
||||||
# WM
|
# WM
|
||||||
export WM="bspwm"
|
if [ "$WAYLAND" = true ]; then
|
||||||
|
export WM="hyprland"
|
||||||
|
else
|
||||||
|
export WM="bspwm"
|
||||||
|
fi
|
||||||
|
|
||||||
# Xorg
|
# Xorg
|
||||||
export XINITRC="$XDG_CONFIG_HOME/xorg/xinitrc"
|
export XINITRC="$XDG_CONFIG_HOME/xorg/xinitrc"
|
||||||
|
|||||||
+11
-3
@@ -73,12 +73,20 @@ zle -N history-beginning-search-backward-end history-search-end
|
|||||||
zle -N history-beginning-search-forward-end history-search-end
|
zle -N history-beginning-search-forward-end history-search-end
|
||||||
|
|
||||||
bindkey '\eOc' forward-word # ctrl-right
|
bindkey '\eOc' forward-word # ctrl-right
|
||||||
|
bindkey '\e[1;5C' forward-word # ctrl-right
|
||||||
bindkey '\eOd' backward-word # ctrl-left
|
bindkey '\eOd' backward-word # ctrl-left
|
||||||
|
bindkey '\e[1;5D' backward-word # ctrl-left
|
||||||
bindkey '\e[3~' delete-char # del
|
bindkey '\e[3~' delete-char # del
|
||||||
bindkey '\e[7~' beginning-of-line # home
|
bindkey '\e[7~' beginning-of-line # home
|
||||||
|
bindkey '\e[H' beginning-of-line # home
|
||||||
|
bindkey '\eOH' beginning-of-line # home
|
||||||
bindkey '\e[8~' end-of-line # end
|
bindkey '\e[8~' end-of-line # end
|
||||||
|
bindkey '\e[F' end-of-line # end
|
||||||
|
bindkey '\eOF' end-of-line # end
|
||||||
bindkey '\e[A' history-beginning-search-backward-end # up
|
bindkey '\e[A' history-beginning-search-backward-end # up
|
||||||
|
bindkey '\eOA' history-beginning-search-backward-end # up
|
||||||
bindkey '\e[B' history-beginning-search-forward-end # down
|
bindkey '\e[B' history-beginning-search-forward-end # down
|
||||||
|
bindkey '\eOB' history-beginning-search-forward-end # down
|
||||||
bindkey '\e[Z' reverse-menu-complete # shift-tab
|
bindkey '\e[Z' reverse-menu-complete # shift-tab
|
||||||
bindkey '\eh' kill-whole-line # meta-h
|
bindkey '\eh' kill-whole-line # meta-h
|
||||||
bindkey '\ej' history-beginning-search-forward-end # meta-j
|
bindkey '\ej' history-beginning-search-forward-end # meta-j
|
||||||
@@ -169,8 +177,8 @@ alias gd="git diff"
|
|||||||
alias gdc="git diff --cached"
|
alias gdc="git diff --cached"
|
||||||
alias gds="git diff --staged"
|
alias gds="git diff --staged"
|
||||||
alias gf="git fetch"
|
alias gf="git fetch"
|
||||||
alias gl="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d %C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
|
alias gl="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d %C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an <%cn>%C(reset)' --all"
|
||||||
alias gle="git log --graph --stat --format=format:'%C(bold blue)commit %H%C(reset)%C(bold yellow)%d %C(reset)%nAuthor: %C(dim white)%an <%ae>%C(reset)%nDate: %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%n%n%w(64,4,4)%B'"
|
alias gle="git log --graph --stat --format=format:'%C(bold blue)commit %H%C(reset)%C(bold yellow)%d %C(reset)%nAuthor: %C(dim white)%an <%ae>%C(reset)%nCommitter: %C(dim white)%cn <%ce>%C(reset)%nDate: %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%n%n%w(64,4,4)%B'"
|
||||||
alias gm="git merge"
|
alias gm="git merge"
|
||||||
alias gp="git pull"
|
alias gp="git pull"
|
||||||
alias gps='git push || git push origin $(git branch --show-current)'
|
alias gps='git push || git push origin $(git branch --show-current)'
|
||||||
@@ -178,7 +186,7 @@ alias gpsa='git remote | xargs -I remotes git push remotes $(git branch --show-c
|
|||||||
alias gpsaf='git remote | xargs -I remotes git push --force remotes $(git branch --show-current)'
|
alias gpsaf='git remote | xargs -I remotes git push --force remotes $(git branch --show-current)'
|
||||||
alias gr="git reset"
|
alias gr="git reset"
|
||||||
alias gs="git status"
|
alias gs="git status"
|
||||||
alias gsh="git show --format=format:'%C(bold blue)commit %H%C(reset) %C(bold yellow)%d %C(reset)%nAuthor: %C(dim white)%an <%ae>%C(reset)%nDate: %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%n%n%w(64,4,4)%B'"
|
alias gsh="git show --format=format:'%C(bold blue)commit %H%C(reset) %C(bold yellow)%d %C(reset)%nAuthor: %C(dim white)%an <%ae>%C(reset)%nCommitter: %C(dim white)%cn <%ce>%C(reset)%nDate: %C(bold cyan)%ai%C(reset) %C(bold green)(%ar)%C(reset)%n%n%w(64,4,4)%B'"
|
||||||
alias gt='git ls-tree -r --name-only $(git branch --show-current) .'
|
alias gt='git ls-tree -r --name-only $(git branch --show-current) .'
|
||||||
|
|
||||||
# Scripts
|
# Scripts
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# This file is written by nwg-look. Do not edit.
|
||||||
|
[Icon Theme]
|
||||||
|
Name=Default
|
||||||
|
Comment=Default Cursor Theme
|
||||||
|
Inherits=capitaine-cursors-light
|
||||||
+20
-15
@@ -74,24 +74,29 @@ done
|
|||||||
|
|
||||||
embedAudioThumbnail()
|
embedAudioThumbnail()
|
||||||
{
|
{
|
||||||
# Get file name
|
# Get file names
|
||||||
fileName="$(youtube-dl --get-filename "$1")"
|
youtube-dl --get-filename "$1" |
|
||||||
fileName="${fileName%.*}"
|
while IFS= read -r fileName; do
|
||||||
|
fileName="${fileName%.*}"
|
||||||
|
|
||||||
# Convert thumbnail to actually be a jpg
|
# Skip if no thumbnail
|
||||||
yes y | ffmpeg -i "${fileName}.webp" "${fileName}_converted.jpg" > /dev/null 2>&1
|
[ ! -f "${fileName}.webp" ] && [ ! -f "${fileName}.jpg" ] && continue
|
||||||
yes y | ffmpeg -i "${fileName}.jpg" "${fileName}_converted.jpg" > /dev/null 2>&1
|
|
||||||
|
|
||||||
# Embed thumbnail into mp3
|
# Convert thumbnail to actually be a jpg
|
||||||
yes y | ffmpeg -i "${fileName}.mp3" -i "${fileName}_converted.jpg" \
|
yes y | ffmpeg -i "${fileName}.webp" "${fileName}_converted.jpg" > /dev/null 2>&1
|
||||||
-map 0:0 -map 1:0 -c copy -id3v2_version 3 \
|
yes y | ffmpeg -i "${fileName}.jpg" "${fileName}_converted.jpg" > /dev/null 2>&1
|
||||||
-metadata:s:v title="Album cover" \
|
|
||||||
-metadata:s:v comment="Cover (front)" \
|
|
||||||
"${fileName}_embed.mp3" > /dev/null 2>&1
|
|
||||||
|
|
||||||
# Remove left over files
|
# Embed thumbnail into mp3
|
||||||
rm -f "./${fileName}_converted.jpg" "./${fileName}.jpg" "./${fileName}.mp3"
|
yes y | ffmpeg -i "${fileName}.mp3" -i "${fileName}_converted.jpg" \
|
||||||
mv "${fileName}_embed.mp3" "${fileName}.mp3"
|
-map 0:0 -map 1:0 -c copy -id3v2_version 3 \
|
||||||
|
-metadata:s:v title="Album cover" \
|
||||||
|
-metadata:s:v comment="Cover (front)" \
|
||||||
|
"${fileName}_embed.mp3" > /dev/null 2>&1
|
||||||
|
|
||||||
|
# Remove left over files
|
||||||
|
rm -f "./${fileName}_converted.jpg" "./${fileName}.jpg" "./${fileName}.webp"
|
||||||
|
mv -f "${fileName}_embed.mp3" "${fileName}.mp3"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadAudio()
|
downloadAudio()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
file="/tmp/polybar-btc-module"
|
file="/tmp/panel-btc-module"
|
||||||
|
|
||||||
# Enable mathematics in POSIX shell
|
# Enable mathematics in POSIX shell
|
||||||
calc() { awk "BEGIN { printf(\"%.2f\", $*) }"; }
|
calc() { awk "BEGIN { printf(\"%.2f\", $*) }"; }
|
||||||
@@ -27,7 +27,12 @@ output() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Result
|
# Result
|
||||||
|
# >>> session=xorg
|
||||||
echo "%{F$color}$symbol $difference%%{F$COLOR15}"
|
echo "%{F$color}$symbol $difference%%{F$COLOR15}"
|
||||||
|
# <<<
|
||||||
|
# >>> session=wayland
|
||||||
|
# echo "<span color='$color'>$symbol $difference%</span>"
|
||||||
|
# <<<
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ ! -f "$file" ]; then
|
if [ ! -f "$file" ]; then
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Kill existing panel
|
||||||
|
pkill --exact --signal 9 waybar
|
||||||
|
|
||||||
|
# Start panel
|
||||||
|
setsid -f waybar
|
||||||
@@ -237,7 +237,12 @@ if [ $qualityOption -eq 1 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Set url to clipboard if none provided
|
# Set url to clipboard if none provided
|
||||||
|
# >>> session=xorg
|
||||||
clip="$(xclip -selection clipboard -out)"
|
clip="$(xclip -selection clipboard -out)"
|
||||||
|
# <<<
|
||||||
|
# >>> session=wayland
|
||||||
|
# clip="$(wl-paste)"
|
||||||
|
# <<<
|
||||||
if [ "$#" -eq 0 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
eval set -- "$clip"
|
eval set -- "$clip"
|
||||||
fi
|
fi
|
||||||
@@ -257,7 +262,12 @@ elif [ $queueOption -eq 1 ]; then
|
|||||||
queue "$*"
|
queue "$*"
|
||||||
else
|
else
|
||||||
if [ "$*" = "" ]; then
|
if [ "$*" = "" ]; then
|
||||||
|
# >>> session=xorg
|
||||||
play "$(xclip -o)"
|
play "$(xclip -o)"
|
||||||
|
# <<<
|
||||||
|
# >>> session=wayland
|
||||||
|
# play "$(wl-paste)"
|
||||||
|
# <<<
|
||||||
else
|
else
|
||||||
for url in "$@"; do
|
for url in "$@"; do
|
||||||
play "$url"
|
play "$url"
|
||||||
|
|||||||
+13
-2
@@ -1,12 +1,17 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Take a screenshot with the configured program
|
# Take a screenshot with the configured program
|
||||||
# Depends: scrot / maim, xdotool / magick, xdotool
|
# Depends: rofi and scrot / maim, xdotool / magick, xdotool / grim, slurp, jq
|
||||||
|
|
||||||
# User-config---------------------------
|
# User-config---------------------------
|
||||||
|
|
||||||
# scrot / maim / magick import
|
# scrot / maim / magick import / grim
|
||||||
|
# >>> session=xorg
|
||||||
screenshotter="maim"
|
screenshotter="maim"
|
||||||
|
# <<<
|
||||||
|
# >>> session=wayland
|
||||||
|
# screenshotter="grim"
|
||||||
|
# <<<
|
||||||
|
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
@@ -25,6 +30,12 @@ elif [ "$screenshotter" = "magick import" ] || [ "$screenshotter" = "import" ];
|
|||||||
selection=""
|
selection=""
|
||||||
activeWindow="-window \$(xdotool getactivewindow)"
|
activeWindow="-window \$(xdotool getactivewindow)"
|
||||||
filename="$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_import.png"
|
filename="$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_import.png"
|
||||||
|
elif [ "$screenshotter" = "grim" ]; then
|
||||||
|
screenshotter="" # start of command needs to be overwritten
|
||||||
|
fullscreen="grim"
|
||||||
|
selection="slurp | grim -g -"
|
||||||
|
activeWindow="hyprctl -j activewindow | jq -r '\"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])\"' | grim -g -"
|
||||||
|
filename="$CAPTURE/$(date '+%Y-%m-%d-%H%M%S')_grim.png"
|
||||||
else
|
else
|
||||||
echo "Printscreen configuration is invalid"
|
echo "Printscreen configuration is invalid"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ if [ "$WM" = "bspwm" ]; then
|
|||||||
logout="bspc quit"
|
logout="bspc quit"
|
||||||
elif [ "$WM" = "i3" ]; then
|
elif [ "$WM" = "i3" ]; then
|
||||||
logout="i3-msg exit"
|
logout="i3-msg exit"
|
||||||
|
elif [ "$WM" = "hyprland" ]; then
|
||||||
|
logout="hyprctl dispatch exit"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
commands="\
|
commands="\
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
LOCK="$XDG_CACHE_HOME/lock.png"
|
LOCK="$XDG_CACHE_HOME/lock.png"
|
||||||
|
|
||||||
|
if [ "$WM" = "hyprland" ]; then
|
||||||
|
hyprlock
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
# Cache the lock image
|
# Cache the lock image
|
||||||
if [ ! -f "$LOCK" ]; then
|
if [ ! -f "$LOCK" ]; then
|
||||||
touch "$LOCK"
|
touch "$LOCK"
|
||||||
|
|||||||
@@ -1,7 +1,23 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
WALLPAPER="$HOME/pictures/wallpaper.jpg"
|
||||||
|
|
||||||
# Overwrite wallpaper with new image if provided
|
# Overwrite wallpaper with new image if provided
|
||||||
[ -n "$1" ] && cp "$1" "$HOME/pictures/wallpaper.jpg"
|
[ -n "$1" ] && cp "$1" "$WALLPAPER"
|
||||||
|
|
||||||
# Set wallpaper
|
# Set wallpaper
|
||||||
feh --no-fehbg --bg-fill "$HOME/pictures/wallpaper.jpg"
|
if [ "$WAYLAND" = true ]; then
|
||||||
|
pkill hyprpaper
|
||||||
|
setsid -f hyprpaper
|
||||||
|
|
||||||
|
# Wait until hyprpaper is available
|
||||||
|
while [ -z "$(find "$XDG_RUNTIME_DIR/hypr" -name ".hyprpaper.sock")" ]; do
|
||||||
|
sleep 0.1
|
||||||
|
done
|
||||||
|
sleep 0.1
|
||||||
|
|
||||||
|
hyprctl hyprpaper preload "$WALLPAPER"
|
||||||
|
hyprctl hyprpaper wallpaper ",$WALLPAPER"
|
||||||
|
else
|
||||||
|
feh --no-fehbg --bg-fill "$WALLPAPER"
|
||||||
|
fi
|
||||||
|
|||||||
+27
-27
@@ -26,39 +26,39 @@ Manual interventions needed to setup Firefox.
|
|||||||
Tree Style Tab style rules.
|
Tree Style Tab style rules.
|
||||||
|
|
||||||
#+BEGIN_SRC css
|
#+BEGIN_SRC css
|
||||||
#tabbar {
|
#tabbar {
|
||||||
background: #2b2e39;
|
background: #2b2e39;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab {
|
.tab {
|
||||||
height: 23px;
|
height: 25px;
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
background: #404552;
|
background: #404552;
|
||||||
border: 0px;
|
border: 0px;
|
||||||
color: #c5c8c6;
|
color: #c5c8c6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab .label {
|
.tab .label {
|
||||||
line-height: 1.15;
|
line-height: 1.75;
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
margin-left: 0.25em;
|
margin-left: 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab .closebox {
|
.tab .closebox {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab.active {
|
.tab.active {
|
||||||
background: #2b2e39 !important;
|
background: #2b2e39 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab:hover {
|
.tab:hover {
|
||||||
background: #2b2e39;
|
background: #2b2e39;
|
||||||
}
|
}
|
||||||
|
|
||||||
.newtab-button-box {
|
.newtab-button-box {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Ublock Origin Filters
|
* Ublock Origin Filters
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
@-moz-document url(chrome://browser/content/browser.xhtml) {
|
@-moz-document url(chrome://browser/content/browser.xhtml) {
|
||||||
/* Hide Firefox top tab bar */
|
/* Hide Firefox top tab bar */
|
||||||
#TabsToolbar {
|
#TabsToolbar {
|
||||||
visibility: hidden !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove titlebar */
|
/* Remove titlebar */
|
||||||
@@ -42,8 +42,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Url bar color */
|
/* Url bar color */
|
||||||
#urlbar {
|
#urlbar-background {
|
||||||
background: #404552 !important;
|
background: #404552 !important;
|
||||||
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide ... button in URL bar */
|
/* Hide ... button in URL bar */
|
||||||
@@ -55,13 +56,6 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unzoom URL bar */
|
|
||||||
#urlbar[breakout-extend] {
|
|
||||||
top: calc((var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2) !important;
|
|
||||||
left: calc((var(--urlbar-toolbar-width) - var(--urlbar-width)) / 2) !important;
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#urlbar[breakout-extend] #urlbar-input-container {
|
#urlbar[breakout-extend] #urlbar-input-container {
|
||||||
height: calc(var(--tab-min-height) - 3px) !important;
|
height: calc(var(--tab-min-height) - 3px) !important;
|
||||||
padding: 0px !important;
|
padding: 0px !important;
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
|
// This option has a memory leak
|
||||||
|
user_pref("accessibility.force_disabled", 1);
|
||||||
|
|
||||||
// Download directory
|
// Download directory
|
||||||
user_pref("browser.download.dir", "~/downloads");
|
user_pref("browser.download.dir", "~/downloads");
|
||||||
|
|
||||||
|
// Disable LLM
|
||||||
|
user_pref("browser.ml.chat.enabled", false);
|
||||||
|
|
||||||
// Display a blank new tab
|
// Display a blank new tab
|
||||||
user_pref("browser.newtabpage.enabled", false);
|
user_pref("browser.newtabpage.enabled", false);
|
||||||
user_pref("browser.newtab.url", "about:blank");
|
user_pref("browser.newtab.url", "about:blank");
|
||||||
@@ -8,18 +14,27 @@ user_pref("browser.newtab.url", "about:blank");
|
|||||||
// Disable Ctrl+q browser close shortcut
|
// Disable Ctrl+q browser close shortcut
|
||||||
user_pref("browser.quitShortcut.disabled", true);
|
user_pref("browser.quitShortcut.disabled", true);
|
||||||
|
|
||||||
|
// Resume session at the next application start, but not again
|
||||||
|
user_pref("browser.sessionstore.resume_session_once", true);
|
||||||
|
|
||||||
// Old style URL bar
|
// Old style URL bar
|
||||||
user_pref("browser.urlbar.openViewOnFocus", false);
|
user_pref("browser.urlbar.openViewOnFocus", false);
|
||||||
user_pref("browser.urlbar.update1", false);
|
user_pref("browser.urlbar.update1", false);
|
||||||
user_pref("browser.urlbar.update1.interventions", false);
|
user_pref("browser.urlbar.update1.interventions", false);
|
||||||
user_pref("browser.urlbar.update1.searchTips", false);
|
user_pref("browser.urlbar.update1.searchTips", false);
|
||||||
|
|
||||||
|
// VPN ad
|
||||||
|
user_pref("browser.vpn_promo.enabled", false);
|
||||||
|
|
||||||
// Disable extension recommendations
|
// Disable extension recommendations
|
||||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||||
|
|
||||||
// No full screen warning
|
// No full screen warning
|
||||||
user_pref("full-screen-api.warning.timeout", 0);
|
user_pref("full-screen-api.warning.timeout", 0);
|
||||||
|
|
||||||
|
// Enable middle-click scrolling
|
||||||
|
user_pref("general.autoScroll", true);
|
||||||
|
|
||||||
// Disable video autoplay
|
// Disable video autoplay
|
||||||
user_pref("media.autoplay.blocking_policy", 2);
|
user_pref("media.autoplay.blocking_policy", 2);
|
||||||
user_pref("media.autoplay.default", 5);
|
user_pref("media.autoplay.default", 5);
|
||||||
@@ -44,7 +59,7 @@ user_pref("ui.key.menuAccessKeyFocuses", false);
|
|||||||
user_pref("ui.prefersReducedMotion", true);
|
user_pref("ui.prefersReducedMotion", true);
|
||||||
|
|
||||||
// Fix dark GTK themes
|
// Fix dark GTK themes
|
||||||
user_pref("widget.content.gtk-theme-override", "Arc");
|
user_pref("widget.content.gtk-theme-override", "Arc-Dark");
|
||||||
|
|
||||||
// Disable tracking
|
// Disable tracking
|
||||||
user_pref("privacy.resistFingerprinting", true);
|
user_pref("privacy.resistFingerprinting", true);
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
#+TITLE: Dotfiles
|
#+TITLE: Dotfiles
|
||||||
#+OPTIONS: toc:nil
|
#+OPTIONS: toc:nil
|
||||||
|
|
||||||
This is a collection of dotfiles and scripts for my i3/bspwm setup, previewed below:
|
This is a collection of dotfiles and scripts for my i3/bspwm/hyprland setup, previewed below:
|
||||||
|
|
||||||
[[screenshot.png]]
|
[[screenshot.png]]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Resolver configuration file.
|
||||||
|
# See resolv.conf(5) for details.
|
||||||
|
nameserver 192.168.0.1
|
||||||
@@ -6,16 +6,18 @@
|
|||||||
# any later version.
|
# any later version.
|
||||||
#
|
#
|
||||||
# Entries in this file show the compile time defaults. Local configuration
|
# Entries in this file show the compile time defaults. Local configuration
|
||||||
# should be created by either modifying this file, or by creating "drop-ins" in
|
# should be created by either modifying this file (or a copy of it placed in
|
||||||
# the journald.conf.d/ subdirectory. The latter is generally recommended.
|
# /etc/ if the original file is shipped in /usr/), or by creating "drop-ins" in
|
||||||
# Defaults can be restored by simply deleting this file and all drop-ins.
|
# the /etc/systemd/journald.conf.d/ directory. The latter is generally
|
||||||
|
# recommended. Defaults can be restored by simply deleting the main
|
||||||
|
# configuration file and all drop-ins located in /etc/.
|
||||||
#
|
#
|
||||||
# Use 'systemd-analyze cat-config systemd/journald.conf' to display the full config.
|
# Use 'systemd-analyze cat-config systemd/journald.conf' to display the full config.
|
||||||
#
|
#
|
||||||
# See journald.conf(5) for details.
|
# See journald.conf(5) for details.
|
||||||
|
|
||||||
[Journal]
|
[Journal]
|
||||||
#Storage=auto
|
#Storage=persistent
|
||||||
#Compress=yes
|
#Compress=yes
|
||||||
#Seal=yes
|
#Seal=yes
|
||||||
#SplitMode=uid
|
#SplitMode=uid
|
||||||
@@ -30,7 +32,7 @@ SystemMaxUse=256M
|
|||||||
#RuntimeKeepFree=
|
#RuntimeKeepFree=
|
||||||
#RuntimeMaxFileSize=
|
#RuntimeMaxFileSize=
|
||||||
#RuntimeMaxFiles=100
|
#RuntimeMaxFiles=100
|
||||||
#MaxRetentionSec=
|
#MaxRetentionSec=0
|
||||||
MaxFileSec=2week
|
MaxFileSec=2week
|
||||||
#ForwardToSyslog=no
|
#ForwardToSyslog=no
|
||||||
#ForwardToKMsg=no
|
#ForwardToKMsg=no
|
||||||
@@ -42,6 +44,7 @@ MaxFileSec=2week
|
|||||||
#MaxLevelKMsg=notice
|
#MaxLevelKMsg=notice
|
||||||
#MaxLevelConsole=info
|
#MaxLevelConsole=info
|
||||||
#MaxLevelWall=emerg
|
#MaxLevelWall=emerg
|
||||||
|
#MaxLevelSocket=debug
|
||||||
#LineMax=48K
|
#LineMax=48K
|
||||||
#ReadKMsg=yes
|
#ReadKMsg=yes
|
||||||
#Audit=yes
|
#Audit=yes
|
||||||
|
|||||||
+16
-6
@@ -6,9 +6,11 @@
|
|||||||
# any later version.
|
# any later version.
|
||||||
#
|
#
|
||||||
# Entries in this file show the compile time defaults. Local configuration
|
# Entries in this file show the compile time defaults. Local configuration
|
||||||
# should be created by either modifying this file, or by creating "drop-ins" in
|
# should be created by either modifying this file (or a copy of it placed in
|
||||||
# the logind.conf.d/ subdirectory. The latter is generally recommended.
|
# /etc/ if the original file is shipped in /usr/), or by creating "drop-ins" in
|
||||||
# Defaults can be restored by simply deleting this file and all drop-ins.
|
# the /etc/systemd/logind.conf.d/ directory. The latter is generally
|
||||||
|
# recommended. Defaults can be restored by simply deleting the main
|
||||||
|
# configuration file and all drop-ins located in /etc/.
|
||||||
#
|
#
|
||||||
# Use 'systemd-analyze cat-config systemd/logind.conf' to display the full config.
|
# Use 'systemd-analyze cat-config systemd/logind.conf' to display the full config.
|
||||||
#
|
#
|
||||||
@@ -22,14 +24,19 @@
|
|||||||
#KillExcludeUsers=root
|
#KillExcludeUsers=root
|
||||||
#InhibitDelayMaxSec=5
|
#InhibitDelayMaxSec=5
|
||||||
#UserStopDelaySec=10
|
#UserStopDelaySec=10
|
||||||
|
#SleepOperation=suspend-then-hibernate suspend
|
||||||
HandlePowerKey=ignore
|
HandlePowerKey=ignore
|
||||||
|
#HandlePowerKeyLongPress=ignore
|
||||||
|
#HandleRebootKey=reboot
|
||||||
|
#HandleRebootKeyLongPress=poweroff
|
||||||
#HandleSuspendKey=suspend
|
#HandleSuspendKey=suspend
|
||||||
|
#HandleSuspendKeyLongPress=hibernate
|
||||||
#HandleHibernateKey=hibernate
|
#HandleHibernateKey=hibernate
|
||||||
|
#HandleHibernateKeyLongPress=ignore
|
||||||
#HandleLidSwitch=suspend
|
#HandleLidSwitch=suspend
|
||||||
#HandleLidSwitchExternalPower=suspend
|
#HandleLidSwitchExternalPower=suspend
|
||||||
#HandleLidSwitchDocked=ignore
|
#HandleLidSwitchDocked=ignore
|
||||||
#HandleRebootKey=reboot
|
#HandleSecureAttentionKey=secure-attention-key
|
||||||
#HandleRebootKeyLongPress=poweroff
|
|
||||||
#PowerKeyIgnoreInhibited=no
|
#PowerKeyIgnoreInhibited=no
|
||||||
#SuspendKeyIgnoreInhibited=no
|
#SuspendKeyIgnoreInhibited=no
|
||||||
#HibernateKeyIgnoreInhibited=no
|
#HibernateKeyIgnoreInhibited=no
|
||||||
@@ -39,7 +46,10 @@ HandlePowerKey=ignore
|
|||||||
#IdleAction=ignore
|
#IdleAction=ignore
|
||||||
#IdleActionSec=30min
|
#IdleActionSec=30min
|
||||||
#RuntimeDirectorySize=10%
|
#RuntimeDirectorySize=10%
|
||||||
#RuntimeDirectoryInodesMax=400k
|
#RuntimeDirectoryInodesMax=
|
||||||
#RemoveIPC=yes
|
#RemoveIPC=yes
|
||||||
#InhibitorsMax=8192
|
#InhibitorsMax=8192
|
||||||
#SessionsMax=8192
|
#SessionsMax=8192
|
||||||
|
#StopIdleSessionSec=infinity
|
||||||
|
#DesignatedMaintenanceTime=
|
||||||
|
#WallMessages=yes
|
||||||
|
|||||||
+637
@@ -0,0 +1,637 @@
|
|||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# /etc/tlp.conf - TLP user configuration (version 1.9.0)
|
||||||
|
# See full explanation: https://linrunner.de/tlp/settings
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 Thomas Koch <linrunner at gmx.net> and others.
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
#
|
||||||
|
# Settings are read in the following order:
|
||||||
|
#
|
||||||
|
# 1. Intrinsic defaults
|
||||||
|
# 2. /etc/tlp.d/*.conf - Drop-in customization snippets
|
||||||
|
# 3. /etc/tlp.conf - User configuration (this file)
|
||||||
|
#
|
||||||
|
# Power Profiles: a part of TLP's parameters is divided into two or three
|
||||||
|
# groups:
|
||||||
|
# - performance: parameters ending in _AC are used when AC power is
|
||||||
|
# connected or when the command 'tlp performance' is run.
|
||||||
|
# - balanced: parameters ending in _BAT are used when operating
|
||||||
|
# on battery power or when the command 'tlp balanced' is run.
|
||||||
|
# - power-saver: parameters ending in _SAV are used when the command
|
||||||
|
# 'tlp power-saver' is run. If there is no _SAV parameter available
|
||||||
|
# for a feature, the _BAT parameter will be used instead.
|
||||||
|
# - Any remaining parameters not divided apply to all power profiles.
|
||||||
|
#
|
||||||
|
# Please note:
|
||||||
|
# - If parameters are specified more than once, the last occurrence takes
|
||||||
|
# precedence. This also means that any parameters defined here will take
|
||||||
|
# precedence over any drop-ins.
|
||||||
|
# - You can however, append values to a parameter already defined as intrinsic
|
||||||
|
# default or in a previously read file: use PARAMETER+="add values".
|
||||||
|
# - Important: all parameters are disabled here. Remove the leading '#' if you
|
||||||
|
# want to enable a feature without a default or if you want to set a value
|
||||||
|
# other than the default.
|
||||||
|
# - Parameters must always be specified for all power profiles, i.e. in the
|
||||||
|
# AC, BAT and SAV category (where applicable). If you omit one of them,
|
||||||
|
# the missing profile will receive its value from another profile, since
|
||||||
|
# a change will only occur if different values are defined.
|
||||||
|
# - To completely disable a parameter, use PARAMETER="".
|
||||||
|
# Legend for defaults:
|
||||||
|
# - Default *: intrinsic default that is effective when the parameter is
|
||||||
|
# missing or the line has a leading #'.
|
||||||
|
# - Default <none>: do nothing or use kernel/hardware defaults.
|
||||||
|
#
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# tlp - Parameters for power saving
|
||||||
|
|
||||||
|
# Set to 0 to disable, 1 to enable TLP.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
#TLP_ENABLE=1
|
||||||
|
|
||||||
|
# Set to 1 to deactivate all intrinsic defaults of TLP. This means that
|
||||||
|
# TLP only applies settings that have been explicitly activated i.e.
|
||||||
|
# parameters without a leading '#'.
|
||||||
|
# Notes:
|
||||||
|
# - Helpful if one wants to use only selected features of TLP
|
||||||
|
# - After activation, use tlp-stat -c to display your effective configuration
|
||||||
|
|
||||||
|
#TLP_DISABLE_DEFAULTS=1
|
||||||
|
|
||||||
|
# Control how warnings about invalid settings are issued:
|
||||||
|
# 0=disabled
|
||||||
|
# 1=background tasks (boot, resume, change of power source) report to syslog
|
||||||
|
# 2=shell commands report to the terminal (stderr)
|
||||||
|
# 3=combination of 1 and 2
|
||||||
|
# Default: 3
|
||||||
|
|
||||||
|
#TLP_WARN_LEVEL=3
|
||||||
|
|
||||||
|
# Colorize error, warning, notice and success messages. Colors are specified
|
||||||
|
# with ANSI codes:
|
||||||
|
# 1=bold black, 90=grey, 91=red, 92=green, 93=yellow, 94=blue, 95=magenta,
|
||||||
|
# 96=cyan, 97=white.
|
||||||
|
# Other colors are possible, refer to:
|
||||||
|
# https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit
|
||||||
|
# Colors must be specified in the order
|
||||||
|
# "<error> <warning> <notice> <success>".
|
||||||
|
# By default, errors are shown in red, warnings in yellow, notices in bold
|
||||||
|
# and success in green.
|
||||||
|
# Default: "91 93 1 92"
|
||||||
|
|
||||||
|
#TLP_MSG_COLORS="91 93 1 92"
|
||||||
|
|
||||||
|
# Control automatic switching of the power profile when connecting or removing
|
||||||
|
# the charger, when booting the system or when executing 'tlp start':
|
||||||
|
# 0=disabled - never switch, use TLP_DEFAULT_MODE if configured
|
||||||
|
# 1=auto - always switch, select performance on AC and
|
||||||
|
# balanced on battery power.
|
||||||
|
# 2=smart - do not switch if the following profiles were active previously:
|
||||||
|
# power-saver or balanced on AC resp.
|
||||||
|
# power-saver or performance on battery power.
|
||||||
|
# Note: the same applies if the charger was connected/removed during suspend.
|
||||||
|
# Default: 2
|
||||||
|
|
||||||
|
#TLP_AUTO_SWITCH=2
|
||||||
|
|
||||||
|
# Power profile to use when automatic switching is disabled
|
||||||
|
# (TLP_AUTO_SWITCH=0), profile is locked (TLP_PERSISTENT_DEFAULT=1)
|
||||||
|
# or no power supply is detected:
|
||||||
|
# PRF=performance, BAL=balanced, SAV=power-saver.
|
||||||
|
# Note: legacy values AC and BAT continue to work. They are mapped to
|
||||||
|
# PRF and BAL, respectively.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#TLP_DEFAULT_MODE=BAL
|
||||||
|
|
||||||
|
# Lock power profile:
|
||||||
|
# 0=profile depends on automatic switching,
|
||||||
|
# 1=profile is locked to TLP_DEFAULT_MODE (TLP_AUTO_SWITCH is ignored).
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#TLP_PERSISTENT_DEFAULT=0
|
||||||
|
|
||||||
|
# Power supply classes to ignore when determining power profile:
|
||||||
|
# AC, USB, BAT.
|
||||||
|
# Separate multiple classes with spaces.
|
||||||
|
# Note: try on laptops where operation mode AC/BAT is incorrectly detected.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#TLP_PS_IGNORE="BAT"
|
||||||
|
|
||||||
|
# Seconds laptop mode has to wait after the disk goes idle before doing a
|
||||||
|
# sync. Non-zero value enables, zero disables laptop mode.
|
||||||
|
# Default: 0 (AC), 2 (BAT)
|
||||||
|
|
||||||
|
#DISK_IDLE_SECS_ON_AC=0
|
||||||
|
#DISK_IDLE_SECS_ON_BAT=2
|
||||||
|
|
||||||
|
# Dirty page values (timeouts in secs).
|
||||||
|
# Default: 15 (AC), 60 (BAT)
|
||||||
|
|
||||||
|
#MAX_LOST_WORK_SECS_ON_AC=15
|
||||||
|
#MAX_LOST_WORK_SECS_ON_BAT=60
|
||||||
|
|
||||||
|
# Select a CPU scaling driver operation mode.
|
||||||
|
# Intel CPU with intel_pstate driver:
|
||||||
|
# active, passive.
|
||||||
|
# AMD Zen 2 or newer CPU with amd-pstate driver as of kernel 6.3/6.4(*):
|
||||||
|
# active, passive, guided(*).
|
||||||
|
# Default: <none>
|
||||||
|
#CPU_DRIVER_OPMODE_ON_AC=active
|
||||||
|
#CPU_DRIVER_OPMODE_ON_BAT=active
|
||||||
|
#CPU_DRIVER_OPMODE_ON_SAV=active
|
||||||
|
|
||||||
|
# Select a CPU frequency scaling governor.
|
||||||
|
# Intel CPU with intel_pstate driver or
|
||||||
|
# AMD CPU with amd-pstate driver in active mode ('amd-pstate-epp'):
|
||||||
|
# performance, powersave(*).
|
||||||
|
# Intel CPU with intel_pstate driver in passive mode ('intel_cpufreq') or
|
||||||
|
# AMD CPU with amd-pstate driver in passive or guided mode ('amd-pstate') or
|
||||||
|
# Intel, AMD and other CPU brands with acpi-cpufreq driver:
|
||||||
|
# conservative, ondemand(*), userspace, powersave, performance, schedutil(*)
|
||||||
|
# Use tlp-stat -p to show the active driver and available governors.
|
||||||
|
# Important:
|
||||||
|
# Governors marked (*) above are power efficient for *almost all* workloads
|
||||||
|
# and therefore kernel and most distributions have chosen them as defaults.
|
||||||
|
# You should have done your research about advantages/disadvantages *before*
|
||||||
|
# changing the governor.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#CPU_SCALING_GOVERNOR_ON_AC=performance
|
||||||
|
#CPU_SCALING_GOVERNOR_ON_BAT=powersave
|
||||||
|
#CPU_SCALING_GOVERNOR_ON_SAV=powersave
|
||||||
|
|
||||||
|
# Set the min/max frequency available for the scaling governor.
|
||||||
|
# Possible values depend on your CPU. For available frequencies see
|
||||||
|
# the output of tlp-stat -p.
|
||||||
|
# Notes:
|
||||||
|
# - Min/max frequencies must always be specified for both AC *and* BAT
|
||||||
|
# - Not recommended for use with the intel_pstate driver, use
|
||||||
|
# CPU_MIN/MAX_PERF_ON_AC/BAT below instead
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#CPU_SCALING_MIN_FREQ_ON_AC=0
|
||||||
|
#CPU_SCALING_MAX_FREQ_ON_AC=0
|
||||||
|
#CPU_SCALING_MIN_FREQ_ON_BAT=0
|
||||||
|
#CPU_SCALING_MAX_FREQ_ON_BAT=0
|
||||||
|
#CPU_SCALING_MIN_FREQ_ON_SAV=0
|
||||||
|
#CPU_SCALING_MAX_FREQ_ON_SAV=0
|
||||||
|
|
||||||
|
# Set CPU energy/performance policies EPP and EPB:
|
||||||
|
# performance, balance_performance, default, balance_power, power.
|
||||||
|
# Values are given in order of increasing power saving.
|
||||||
|
# Requires:
|
||||||
|
# * Intel CPU
|
||||||
|
# EPP: Intel Core i 6th gen. or newer CPU with intel_pstate driver
|
||||||
|
# EPB: Intel Core i 2nd gen. or newer CPU with intel_pstate driver
|
||||||
|
# EPP and EPB are mutually exclusive: when EPP is available, Intel CPUs
|
||||||
|
# will not honor EPB. Only the matching feature will be applied by TLP.
|
||||||
|
# * AMD Zen 2 or newer CPU
|
||||||
|
# EPP: amd-pstate driver in active mode ('amd-pstate-epp') as of kernel 6.3
|
||||||
|
# Default: balance_performance (AC), balance_power (BAT), power (SAV)
|
||||||
|
|
||||||
|
#CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
|
||||||
|
#CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power
|
||||||
|
#CPU_ENERGY_PERF_POLICY_ON_SAV=power
|
||||||
|
|
||||||
|
# Set Intel CPU P-state performance: 0..100 (%).
|
||||||
|
# Limit the max/min P-state to control the power dissipation of the CPU.
|
||||||
|
# Values are stated as a percentage of the available performance.
|
||||||
|
# Requires Intel Core i 2nd gen. or newer CPU with intel_pstate driver.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#CPU_MIN_PERF_ON_AC=0
|
||||||
|
#CPU_MAX_PERF_ON_AC=100
|
||||||
|
#CPU_MIN_PERF_ON_BAT=0
|
||||||
|
#CPU_MAX_PERF_ON_BAT=80
|
||||||
|
#CPU_MIN_PERF_ON_SAV=0
|
||||||
|
#CPU_MAX_PERF_ON_SAV=60
|
||||||
|
|
||||||
|
# Set the CPU "turbo boost" (Intel) or "core performance boost" (AMD) feature:
|
||||||
|
# 0=disable, 1=allow.
|
||||||
|
# Allows to raise the maximum frequency/P-state of some cores if the
|
||||||
|
# CPU chip is not fully utilized and below it's intended thermal budget.
|
||||||
|
# Note: a value of 1 does *not* activate boosting, it just allows it.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#CPU_BOOST_ON_AC=1
|
||||||
|
#CPU_BOOST_ON_BAT=1
|
||||||
|
#CPU_BOOST_ON_SAV=0
|
||||||
|
|
||||||
|
# Set CPU dynamic boost feature:
|
||||||
|
# 0=disable, 1=enable.
|
||||||
|
# Improve performance by increasing minimum P-state limit dynamically
|
||||||
|
# whenever a task previously waiting on I/O is selected to run.
|
||||||
|
# Requires Intel Core i 6th gen. or newer CPU with intel_pstate driver
|
||||||
|
# in active mode.
|
||||||
|
# Note: AMD CPUs currently have no tunable for this.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#CPU_HWP_DYN_BOOST_ON_AC=1
|
||||||
|
#CPU_HWP_DYN_BOOST_ON_BAT=1
|
||||||
|
#CPU_HWP_DYN_BOOST_ON_SAV=0
|
||||||
|
|
||||||
|
# Kernel NMI Watchdog:
|
||||||
|
# 0=disable (default, saves power), 1=enable (for kernel debugging only).
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#NMI_WATCHDOG=0
|
||||||
|
|
||||||
|
# Select platform profile:
|
||||||
|
# performance, balanced, low-power.
|
||||||
|
# Controls system operating characteristics around power/performance levels,
|
||||||
|
# thermal and fan speed. Values are given in order of increasing power saving.
|
||||||
|
# Note: check the output of tlp-stat -p to determine availability on your
|
||||||
|
# hardware and additional profiles such as: balanced-performance, quiet, cool.
|
||||||
|
# Default: performance (AC), balanced (BAT), low-power (SAV)
|
||||||
|
|
||||||
|
#PLATFORM_PROFILE_ON_AC=performance
|
||||||
|
#PLATFORM_PROFILE_ON_BAT=balanced
|
||||||
|
#PLATFORM_PROFILE_ON_SAV=low-power
|
||||||
|
|
||||||
|
# System suspend mode:
|
||||||
|
# s2idle: Idle standby - a pure software, light-weight, system sleep state,
|
||||||
|
# deep: Suspend to RAM - the whole system is put into a low-power state,
|
||||||
|
# except for memory, usually resulting in higher savings than s2idle.
|
||||||
|
# CAUTION: changing suspend mode may lead to system instability and even
|
||||||
|
# data loss. As for the availability of different modes on your system,
|
||||||
|
# check the output of tlp-stat -s. If unsure, stick with the system default
|
||||||
|
# by not enabling this.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#MEM_SLEEP_ON_AC=s2idle
|
||||||
|
#MEM_SLEEP_ON_BAT=deep
|
||||||
|
|
||||||
|
# Define disk devices on which the following DISK/AHCI_RUNTIME parameters act.
|
||||||
|
# Separate multiple devices with spaces.
|
||||||
|
# Devices can be specified by disk ID also (lookup with: tlp diskid).
|
||||||
|
# Default: "nvme0n1 sda"
|
||||||
|
|
||||||
|
#DISK_DEVICES="nvme0n1 sda"
|
||||||
|
|
||||||
|
# Disk advanced power management level: 1..254, 255 (max saving, min, off).
|
||||||
|
# Levels 1..127 may spin down the disk; 255 allowable on most drives.
|
||||||
|
# Separate values for multiple disks with spaces. Use the special value 'keep'
|
||||||
|
# to keep the hardware default for the particular disk.
|
||||||
|
# Default: 254 (AC), 128 (BAT)
|
||||||
|
|
||||||
|
#DISK_APM_LEVEL_ON_AC="254 254"
|
||||||
|
#DISK_APM_LEVEL_ON_BAT="128 128"
|
||||||
|
|
||||||
|
# Exclude disk classes from advanced power management (APM):
|
||||||
|
# sata, ata, usb, ieee1394.
|
||||||
|
# Separate multiple classes with spaces.
|
||||||
|
# CAUTION: USB and IEEE1394 disks may fail to mount or data may get corrupted
|
||||||
|
# with APM enabled. Be careful and make sure you have backups of all affected
|
||||||
|
# media before removing 'usb' or 'ieee1394' from the denylist!
|
||||||
|
# Default: "usb ieee1394"
|
||||||
|
|
||||||
|
#DISK_APM_CLASS_DENYLIST="usb ieee1394"
|
||||||
|
|
||||||
|
# Hard disk spin down timeout:
|
||||||
|
# 0: spin down disabled
|
||||||
|
# 1..240: timeouts from 5s to 20min (in units of 5s)
|
||||||
|
# 241..251: timeouts from 30min to 5.5 hours (in units of 30min)
|
||||||
|
# See 'man hdparm' for details.
|
||||||
|
# Separate values for multiple disks with spaces. Use the special value 'keep'
|
||||||
|
# to keep the hardware default for the particular disk.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
|
||||||
|
#DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"
|
||||||
|
|
||||||
|
# Select I/O scheduler for the disk devices.
|
||||||
|
# Multi queue (blk-mq) schedulers:
|
||||||
|
# mq-deadline(*), none, kyber, bfq
|
||||||
|
# Single queue schedulers:
|
||||||
|
# deadline(*), cfq, bfq, noop
|
||||||
|
# (*) recommended.
|
||||||
|
# Separate values for multiple disks with spaces. Use the special value 'keep'
|
||||||
|
# to keep the kernel default scheduler for the particular disk.
|
||||||
|
# Notes:
|
||||||
|
# - Multi queue (blk-mq) may need kernel boot option 'scsi_mod.use_blk_mq=1'
|
||||||
|
# and 'modprobe mq-deadline-iosched|kyber|bfq' on kernels < 5.0
|
||||||
|
# - Single queue schedulers are legacy now and were removed together with
|
||||||
|
# the old block layer in kernel 5.0
|
||||||
|
# Default: keep
|
||||||
|
|
||||||
|
#DISK_IOSCHED="mq-deadline mq-deadline"
|
||||||
|
|
||||||
|
# AHCI link power management (ALPM) for SATA disks:
|
||||||
|
# min_power, med_power_with_dipm(*), medium_power, max_performance.
|
||||||
|
# (*) recommended.
|
||||||
|
# Multiple values separated with spaces are tried sequentially until success.
|
||||||
|
# Default: med_power_with_dipm (AC & BAT)
|
||||||
|
|
||||||
|
#SATA_LINKPWR_ON_AC="med_power_with_dipm"
|
||||||
|
#SATA_LINKPWR_ON_BAT="med_power_with_dipm"
|
||||||
|
|
||||||
|
# Exclude SATA links from AHCI link power management (ALPM).
|
||||||
|
# SATA links are specified by their host. Refer to the output of
|
||||||
|
# tlp-stat -d to determine the host; the format is "hostX".
|
||||||
|
# Separate multiple hosts with spaces.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#SATA_LINKPWR_DENYLIST="host1"
|
||||||
|
|
||||||
|
# Runtime Power Management for NVMe, SATA, ATA and USB disks
|
||||||
|
# as well as SATA ports:
|
||||||
|
# on=disable, auto=enable.
|
||||||
|
# Note: SATA controllers are PCIe bus devices and handled by RUNTIME_PM
|
||||||
|
# further down.
|
||||||
|
|
||||||
|
# Default: on (AC), auto (BAT)
|
||||||
|
|
||||||
|
#AHCI_RUNTIME_PM_ON_AC=on
|
||||||
|
#AHCI_RUNTIME_PM_ON_BAT=auto
|
||||||
|
|
||||||
|
# Seconds of inactivity before disk is suspended.
|
||||||
|
# Note: effective only when AHCI_RUNTIME_PM_ON_AC/BAT is activated.
|
||||||
|
# Default: 15
|
||||||
|
|
||||||
|
#AHCI_RUNTIME_PM_TIMEOUT=15
|
||||||
|
|
||||||
|
# Power off optical drive in UltraBay/MediaBay: 0=disable, 1=enable.
|
||||||
|
# Drive can be powered on again by releasing (and reinserting) the eject lever
|
||||||
|
# or by pressing the disc eject button on newer models.
|
||||||
|
# Note: an UltraBay/MediaBay hard disk is never powered off.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#BAY_POWEROFF_ON_AC=0
|
||||||
|
#BAY_POWEROFF_ON_BAT=0
|
||||||
|
|
||||||
|
# Optical drive device to power off
|
||||||
|
# Default: sr0
|
||||||
|
|
||||||
|
#BAY_DEVICE="sr0"
|
||||||
|
|
||||||
|
# Set the min/max/turbo frequency for the Intel GPU.
|
||||||
|
# Possible values depend on your hardware. For available frequencies see
|
||||||
|
# the output of tlp-stat -g.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#INTEL_GPU_MIN_FREQ_ON_AC=0
|
||||||
|
#INTEL_GPU_MIN_FREQ_ON_BAT=0
|
||||||
|
#INTEL_GPU_MAX_FREQ_ON_AC=0
|
||||||
|
#INTEL_GPU_MAX_FREQ_ON_BAT=0
|
||||||
|
#INTEL_GPU_BOOST_FREQ_ON_AC=0
|
||||||
|
#INTEL_GPU_BOOST_FREQ_ON_BAT=0
|
||||||
|
|
||||||
|
# AMD GPU power management.
|
||||||
|
# Performance level (DPM): auto, low, high; auto is recommended.
|
||||||
|
# Note: requires amdgpu or radeon driver.
|
||||||
|
# Default: auto
|
||||||
|
|
||||||
|
#RADEON_DPM_PERF_LEVEL_ON_AC=auto
|
||||||
|
#RADEON_DPM_PERF_LEVEL_ON_BAT=auto
|
||||||
|
|
||||||
|
# Dynamic power management method (DPM): balanced, battery, performance.
|
||||||
|
# Note: radeon driver only.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#RADEON_DPM_STATE_ON_AC=performance
|
||||||
|
#RADEON_DPM_STATE_ON_BAT=battery
|
||||||
|
|
||||||
|
# Display panel adaptive backlight modulation (ABM) level: 0(off), 1..4.
|
||||||
|
# Values 1..4 control the maximum brightness reduction allowed by the ABM
|
||||||
|
# algorithm, where 1 represents the least and 4 the most power saving.
|
||||||
|
# Notes:
|
||||||
|
# - Requires AMD Vega or newer GPU with amdgpu driver as of kernel 6.9
|
||||||
|
# - Savings are made at the expense of color balance
|
||||||
|
# Default: 0 (AC), 1 (BAT), 3 (SAV)
|
||||||
|
|
||||||
|
#AMDGPU_ABM_LEVEL_ON_AC=0
|
||||||
|
#AMDGPU_ABM_LEVEL_ON_BAT=1
|
||||||
|
#AMDGPU_ABM_LEVEL_ON_SAV=3
|
||||||
|
|
||||||
|
# Wi-Fi power saving mode: on=enable, off=disable.
|
||||||
|
# Default: off (AC), on (BAT)
|
||||||
|
|
||||||
|
#WIFI_PWR_ON_AC=off
|
||||||
|
#WIFI_PWR_ON_BAT=on
|
||||||
|
|
||||||
|
# Disable Wake-on-LAN: Y/N.
|
||||||
|
# Default: Y
|
||||||
|
|
||||||
|
#WOL_DISABLE=Y
|
||||||
|
|
||||||
|
# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
|
||||||
|
# A value of 0 disables, >= 1 enables power saving.
|
||||||
|
# Note: 1 is recommended for Linux desktop environments with PulseAudio,
|
||||||
|
# systems without PulseAudio may require 10.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
# >>> hostname=arch-desktop
|
||||||
|
SOUND_POWER_SAVE_ON_AC=1
|
||||||
|
SOUND_POWER_SAVE_ON_BAT=1
|
||||||
|
# <<<
|
||||||
|
# >>> hostname=arch-laptop
|
||||||
|
# SOUND_POWER_SAVE_ON_AC=0
|
||||||
|
# SOUND_POWER_SAVE_ON_BAT=0
|
||||||
|
# <<<
|
||||||
|
|
||||||
|
# Disable controller too (HDA only): Y/N.
|
||||||
|
# Note: effective only when SOUND_POWER_SAVE_ON_AC/BAT is activated.
|
||||||
|
# Default: Y
|
||||||
|
|
||||||
|
#SOUND_POWER_SAVE_CONTROLLER=Y
|
||||||
|
|
||||||
|
# PCIe Active State Power Management (ASPM):
|
||||||
|
# default(*), performance, powersave, powersupersave.
|
||||||
|
# (*) keeps BIOS ASPM defaults (recommended)
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#PCIE_ASPM_ON_AC=default
|
||||||
|
#PCIE_ASPM_ON_BAT=default
|
||||||
|
|
||||||
|
# Runtime Power Management for PCIe bus devices: on=disable, auto=enable.
|
||||||
|
# Default: on (AC), auto (BAT)
|
||||||
|
|
||||||
|
#RUNTIME_PM_ON_AC=on
|
||||||
|
#RUNTIME_PM_ON_BAT=auto
|
||||||
|
|
||||||
|
# Exclude listed PCIe device adresses from Runtime PM.
|
||||||
|
# Note: this preserves the kernel driver default, to force a certain state
|
||||||
|
# use RUNTIME_PM_ENABLE/DISABLE instead.
|
||||||
|
# Separate multiple addresses with spaces.
|
||||||
|
# Use lspci to get the adresses (1st column).
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#RUNTIME_PM_DENYLIST="11:22.3 44:55.6"
|
||||||
|
|
||||||
|
# Exclude PCIe devices assigned to the listed drivers from Runtime PM.
|
||||||
|
# Note: this preserves the kernel driver default, to force a certain state
|
||||||
|
# use RUNTIME_PM_ENABLE/DISABLE instead.
|
||||||
|
# Separate multiple drivers with spaces.
|
||||||
|
# Default: "mei_me nouveau radeon xhci_hcd", use "" to disable completely.
|
||||||
|
|
||||||
|
#RUNTIME_PM_DRIVER_DENYLIST="mei_me nouveau radeon xhci_hcd"
|
||||||
|
|
||||||
|
# Permanently enable/disable Runtime PM for listed PCIe device addresses
|
||||||
|
# (independent of the power source). This has priority over all preceding
|
||||||
|
# Runtime PM settings. Separate multiple addresses with spaces.
|
||||||
|
# Use lspci to get the adresses (1st column).
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#RUNTIME_PM_ENABLE="11:22.3"
|
||||||
|
#RUNTIME_PM_DISABLE="44:55.6"
|
||||||
|
|
||||||
|
# Set to 0 to disable, 1 to enable USB autosuspend feature.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
#USB_AUTOSUSPEND=1
|
||||||
|
|
||||||
|
# Exclude listed devices from USB autosuspend (separate with spaces).
|
||||||
|
# Use lsusb to get the ids.
|
||||||
|
# Note: input devices (usbhid) and libsane-supported scanners are excluded
|
||||||
|
# automatically.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#USB_DENYLIST="1111:2222 3333:4444"
|
||||||
|
|
||||||
|
# Exclude audio devices from USB autosuspend:
|
||||||
|
# 0=do not exclude, 1=exclude.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
#USB_EXCLUDE_AUDIO=1
|
||||||
|
|
||||||
|
# Exclude bluetooth devices from USB autosuspend:
|
||||||
|
# 0=do not exclude, 1=exclude.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#USB_EXCLUDE_BTUSB=0
|
||||||
|
|
||||||
|
# Exclude phone devices from USB autosuspend:
|
||||||
|
# 0=do not exclude, 1=exclude (enable charging).
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#USB_EXCLUDE_PHONE=0
|
||||||
|
|
||||||
|
# Exclude printers from USB autosuspend:
|
||||||
|
# 0=do not exclude, 1=exclude.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
#USB_EXCLUDE_PRINTER=1
|
||||||
|
|
||||||
|
# Exclude WWAN devices from USB autosuspend:
|
||||||
|
# 0=do not exclude, 1=exclude.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#USB_EXCLUDE_WWAN=0
|
||||||
|
|
||||||
|
# Allow USB autosuspend for listed devices even if already denylisted or
|
||||||
|
# excluded above (separate with spaces). Use lsusb to get the ids.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#USB_ALLOWLIST="1111:2222 3333:4444"
|
||||||
|
|
||||||
|
# Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
|
||||||
|
# on system startup: 0=disable, 1=enable.
|
||||||
|
# Note: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
|
||||||
|
# are ignored when this is enabled.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#RESTORE_DEVICE_STATE_ON_STARTUP=0
|
||||||
|
|
||||||
|
# Radio devices to disable on startup: bluetooth, nfc, wifi, wwan.
|
||||||
|
# Separate multiple devices with spaces.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wifi wwan"
|
||||||
|
|
||||||
|
# Radio devices to enable on startup: bluetooth, nfc, wifi, wwan.
|
||||||
|
# Separate multiple devices with spaces.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"
|
||||||
|
|
||||||
|
# Radio devices to enable on AC: bluetooth, nfc, wifi, wwan.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DEVICES_TO_ENABLE_ON_AC="bluetooth nfc wifi wwan"
|
||||||
|
|
||||||
|
# Radio devices to disable on battery: bluetooth, nfc, wifi, wwan.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DEVICES_TO_DISABLE_ON_BAT="bluetooth nfc wifi wwan"
|
||||||
|
|
||||||
|
# Radio devices to disable on battery when not in use (not connected):
|
||||||
|
# bluetooth, nfc, wifi, wwan.
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth nfc wifi wwan"
|
||||||
|
|
||||||
|
# Battery Care -- Charge thresholds
|
||||||
|
# Charging starts when the charger is connected and the charge level
|
||||||
|
# is below the start threshold. Charging stops when the charge level
|
||||||
|
# is above the stop threshold.
|
||||||
|
# Required hardware: Lenovo ThinkPads and other laptop brands are driven
|
||||||
|
# via specific plugins:
|
||||||
|
# - Use the tlp-stat -b command to see if a plugin for your hardware is
|
||||||
|
# active and to look up vendor-specific threshold values. Some
|
||||||
|
# laptops support only 1 (on)/0 (off) instead of a percentage level.
|
||||||
|
# - If your hardware supports a start *and* a stop threshold, you must
|
||||||
|
# specify both, otherwise TLP will refuse to apply the single threshold.
|
||||||
|
# - If your hardware supports only a stop threshold, set the start
|
||||||
|
# value to 0.
|
||||||
|
# - The names of the batteries shown by tlp-stat -b don't have to match
|
||||||
|
# the _BAT0 or _BAT1 parameter qualifiers. Please refer to [2]
|
||||||
|
# to see which qualifier applies to which battery.
|
||||||
|
# For further explanation and all vendor specific details refer to
|
||||||
|
# [1] https://linrunner.de/tlp/settings/battery.html
|
||||||
|
# [2] https://linrunner.de/tlp/settings/bc-vendors.html
|
||||||
|
|
||||||
|
# BAT0: Main battery
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
# Battery charge level below which charging will begin.
|
||||||
|
#START_CHARGE_THRESH_BAT0=75
|
||||||
|
# Battery charge level above which charging will stop.
|
||||||
|
#STOP_CHARGE_THRESH_BAT0=80
|
||||||
|
|
||||||
|
# BAT1: Secondary battery (primary on some laptops)
|
||||||
|
# Default: <none>
|
||||||
|
|
||||||
|
# Battery charge level below which charging will begin.
|
||||||
|
#START_CHARGE_THRESH_BAT1=75
|
||||||
|
# Battery charge level above which charging will stop.
|
||||||
|
#STOP_CHARGE_THRESH_BAT1=80
|
||||||
|
|
||||||
|
# Restore charge thresholds when AC is unplugged: 0=disable, 1=enable.
|
||||||
|
# Default: 0
|
||||||
|
|
||||||
|
#RESTORE_THRESHOLDS_ON_BAT=1
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# tlp-rdw - Radio Device Wizard
|
||||||
|
# Note: requires installation of the optional package tlp-rdw.
|
||||||
|
|
||||||
|
# Possible devices: bluetooth, wifi, wwan.
|
||||||
|
# Separate multiple radio devices with spaces.
|
||||||
|
# Default: <none> (for all parameters below)
|
||||||
|
|
||||||
|
# Radio devices to disable on connect.
|
||||||
|
|
||||||
|
#DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
|
||||||
|
#DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
|
||||||
|
#DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"
|
||||||
|
|
||||||
|
# Radio devices to enable on disconnect.
|
||||||
|
|
||||||
|
#DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
|
||||||
|
#DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT=""
|
||||||
|
#DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT=""
|
||||||
|
|
||||||
|
# Radio devices to enable/disable when docked.
|
||||||
|
# Note: not all docks can be recognized, especially USB-C docks. If a LAN
|
||||||
|
# cable is connected to the dock, use DEVICES_TO_DISABLE_ON_LAN_CONNECT
|
||||||
|
# and DEVICES_TO_ENABLE_ON_LAN_DISCONNECT instead.
|
||||||
|
|
||||||
|
#DEVICES_TO_ENABLE_ON_DOCK=""
|
||||||
|
#DEVICES_TO_DISABLE_ON_DOCK=""
|
||||||
|
|
||||||
|
# Radio devices to enable/disable when undocked.
|
||||||
|
|
||||||
|
#DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
|
||||||
|
#DEVICES_TO_DISABLE_ON_UNDOCK=""
|
||||||
@@ -1,18 +1,14 @@
|
|||||||
acpi
|
acpi
|
||||||
adobe-source-han-sans-jp-fonts
|
adobe-source-han-sans-jp-fonts
|
||||||
alsa-utils
|
|
||||||
android-studio
|
|
||||||
android-tools
|
|
||||||
arandr
|
|
||||||
arc-gtk-theme
|
arc-gtk-theme
|
||||||
|
archlinux-keyring
|
||||||
arc-icon-theme
|
arc-icon-theme
|
||||||
aria2
|
aria2
|
||||||
aspell-en
|
aspell-en
|
||||||
aspell-nl
|
aspell-nl
|
||||||
autorandr
|
|
||||||
base
|
base
|
||||||
|
base-devel
|
||||||
brightnessctl
|
brightnessctl
|
||||||
bspwm
|
|
||||||
capitaine-cursors
|
capitaine-cursors
|
||||||
checkbashisms
|
checkbashisms
|
||||||
chromium
|
chromium
|
||||||
@@ -21,32 +17,23 @@ cmake
|
|||||||
dhcpcd
|
dhcpcd
|
||||||
dialog
|
dialog
|
||||||
dnsmasq
|
dnsmasq
|
||||||
domoticz-git
|
|
||||||
dos2unix
|
dos2unix
|
||||||
downgrade
|
downgrade
|
||||||
doxygen
|
|
||||||
duf
|
duf
|
||||||
dunst
|
dunst
|
||||||
ebtables
|
|
||||||
edk2-ovmf
|
|
||||||
efibootmgr
|
efibootmgr
|
||||||
emacs-nativecomp
|
|
||||||
evtest
|
evtest
|
||||||
exfat-utils
|
exfat-utils
|
||||||
feh
|
feh
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
firefox
|
firefox
|
||||||
frei0r-plugins
|
|
||||||
fritzing
|
|
||||||
gdb
|
gdb
|
||||||
gedit
|
gedit
|
||||||
ghc
|
|
||||||
git
|
git
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
gnome-keyring
|
gnome-keyring
|
||||||
gnome-themes-extra
|
gnome-themes-extra
|
||||||
gparted
|
gparted
|
||||||
graphviz
|
|
||||||
gst-plugins-good
|
gst-plugins-good
|
||||||
gucharmap
|
gucharmap
|
||||||
gvfs
|
gvfs
|
||||||
@@ -54,32 +41,22 @@ gvfs-gphoto2
|
|||||||
gvfs-mtp
|
gvfs-mtp
|
||||||
gvim
|
gvim
|
||||||
htop
|
htop
|
||||||
i3lock-color-git
|
hunspell
|
||||||
|
hunspell-en_us
|
||||||
|
hunspell-nl
|
||||||
imagemagick
|
imagemagick
|
||||||
inetutils
|
inetutils
|
||||||
inkscape
|
inkscape
|
||||||
intel-media-driver
|
|
||||||
intel-media-sdk
|
|
||||||
intel-ucode
|
|
||||||
isync
|
isync
|
||||||
iw
|
iw
|
||||||
jdk11-openjdk
|
|
||||||
jdownloader2
|
|
||||||
jq
|
jq
|
||||||
kcachegrind
|
kcachegrind
|
||||||
kdenlive
|
kdenlive
|
||||||
keepmenu-git
|
keepmenu-git
|
||||||
kolourpaint
|
kolourpaint
|
||||||
kotlin-language-server-git
|
|
||||||
krita
|
krita
|
||||||
lib32-alsa-lib
|
|
||||||
lib32-alsa-plugins
|
|
||||||
lib32-glibc
|
lib32-glibc
|
||||||
lib32-libpulse
|
|
||||||
lib32-openal
|
lib32-openal
|
||||||
lib32-vulkan-intel
|
|
||||||
libmtp
|
|
||||||
libnotify-id
|
|
||||||
libvirt
|
libvirt
|
||||||
linux
|
linux
|
||||||
linux-firmware
|
linux-firmware
|
||||||
@@ -87,17 +64,11 @@ linux-headers
|
|||||||
linux-lts
|
linux-lts
|
||||||
linux-lts-headers
|
linux-lts-headers
|
||||||
llvm
|
llvm
|
||||||
lua-language-server-git
|
|
||||||
lvm2
|
|
||||||
lxappearance
|
|
||||||
maim
|
|
||||||
manafiles-git
|
manafiles-git
|
||||||
man-db
|
man-db
|
||||||
man-pages
|
man-pages
|
||||||
mariadb
|
mariadb
|
||||||
mdadm
|
|
||||||
mesa-demos
|
mesa-demos
|
||||||
minted
|
|
||||||
mkvtoolnix-cli
|
mkvtoolnix-cli
|
||||||
moka-icon-theme-git
|
moka-icon-theme-git
|
||||||
mpv
|
mpv
|
||||||
@@ -106,10 +77,9 @@ mysql-workbench
|
|||||||
namcap
|
namcap
|
||||||
ncdu
|
ncdu
|
||||||
neofetch
|
neofetch
|
||||||
nerd-fonts-dejavu-complete
|
neovim
|
||||||
netctl
|
netctl
|
||||||
nlohmann-json
|
nlohmann-json
|
||||||
nodejs-intelephense
|
|
||||||
ntfs-3g
|
ntfs-3g
|
||||||
openssh
|
openssh
|
||||||
otf-font-awesome
|
otf-font-awesome
|
||||||
@@ -118,12 +88,7 @@ pacman-contrib
|
|||||||
pamixer
|
pamixer
|
||||||
pavucontrol
|
pavucontrol
|
||||||
pdfjs
|
pdfjs
|
||||||
platformio
|
|
||||||
polkit-kde-agent
|
|
||||||
polybar
|
|
||||||
poppler-glib
|
poppler-glib
|
||||||
pulseaudio
|
|
||||||
pulseaudio-alsa
|
|
||||||
python-adblock
|
python-adblock
|
||||||
python-beautifulsoup4
|
python-beautifulsoup4
|
||||||
python-certifi
|
python-certifi
|
||||||
@@ -131,46 +96,33 @@ python-filelock
|
|||||||
python-flask
|
python-flask
|
||||||
python-google-api-python-client
|
python-google-api-python-client
|
||||||
python-google-auth-oauthlib
|
python-google-auth-oauthlib
|
||||||
python-image
|
|
||||||
python-matplotlib
|
python-matplotlib
|
||||||
python-opengl
|
python-opengl
|
||||||
python-pycurl
|
python-pycurl
|
||||||
python-pyqt5
|
python-pyqt5
|
||||||
python-pyusb
|
python-pyusb
|
||||||
python-tqdm
|
|
||||||
python-watchdog
|
python-watchdog
|
||||||
python-zstandard
|
python-zstandard
|
||||||
qbittorrent
|
qbittorrent
|
||||||
qemu
|
qt5ct
|
||||||
qemu-arch-extra
|
|
||||||
qt5-serialport
|
qt5-serialport
|
||||||
qt5-tools
|
qt5-tools
|
||||||
qt5ct
|
|
||||||
qt5gtk2
|
|
||||||
qt6ct
|
qt6ct
|
||||||
qt6gtk2
|
|
||||||
r
|
r
|
||||||
redshift
|
|
||||||
reflector
|
reflector
|
||||||
renderdoc-bin
|
renderdoc-bin
|
||||||
rofi
|
|
||||||
rsync
|
rsync
|
||||||
rtmpdump
|
rtmpdump
|
||||||
rxvt-unicode
|
|
||||||
signal-desktop
|
signal-desktop
|
||||||
smartmontools
|
smartmontools
|
||||||
socat
|
socat
|
||||||
sqlitebrowser
|
sqlitebrowser
|
||||||
sshfs
|
sshfs
|
||||||
stalonetray
|
|
||||||
streamlink
|
streamlink
|
||||||
sxhkd
|
|
||||||
syncthing
|
syncthing
|
||||||
synergy2-bin
|
|
||||||
sysfsutils
|
sysfsutils
|
||||||
texlab
|
texlab
|
||||||
texlive-bibtexextra
|
texlive-bibtexextra
|
||||||
texlive-core
|
|
||||||
texlive-fontsextra
|
texlive-fontsextra
|
||||||
texlive-formatsextra
|
texlive-formatsextra
|
||||||
texlive-games
|
texlive-games
|
||||||
@@ -190,8 +142,8 @@ tokei
|
|||||||
tree
|
tree
|
||||||
trizen
|
trizen
|
||||||
ttf-dejavu
|
ttf-dejavu
|
||||||
|
ttf-dejavu-nerd
|
||||||
ttf-joypixels
|
ttf-joypixels
|
||||||
ttf-ms-win10
|
|
||||||
tumbler
|
tumbler
|
||||||
tumbler-extra-thumbnailers
|
tumbler-extra-thumbnailers
|
||||||
unrar
|
unrar
|
||||||
@@ -199,27 +151,14 @@ unzip
|
|||||||
usbutils
|
usbutils
|
||||||
valgrind
|
valgrind
|
||||||
ventoy-bin
|
ventoy-bin
|
||||||
|
vim-spell-en
|
||||||
vim-spell-nl
|
vim-spell-nl
|
||||||
virt-manager
|
|
||||||
vulkan-intel
|
|
||||||
wget
|
wget
|
||||||
wine-staging
|
wine-staging
|
||||||
wpa_supplicant
|
wpa_supplicant
|
||||||
x264
|
|
||||||
x86_energy_perf_policy
|
x86_energy_perf_policy
|
||||||
xarchiver
|
|
||||||
xclip
|
|
||||||
xdo
|
|
||||||
xdotool
|
|
||||||
xf86-input-wacom
|
xf86-input-wacom
|
||||||
xfsprogs
|
xfsprogs
|
||||||
xorg-server
|
|
||||||
xorg-xev
|
|
||||||
xorg-xinit
|
|
||||||
xorg-xinput
|
|
||||||
xorg-xprop
|
|
||||||
xorg-xrandr
|
|
||||||
xorg-xsetroot
|
|
||||||
yt-dlp
|
yt-dlp
|
||||||
yt-dlp-drop-in
|
yt-dlp-drop-in
|
||||||
zathura
|
zathura
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
arandr
|
||||||
|
autorandr
|
||||||
|
bspwm
|
||||||
|
doxygen
|
||||||
|
ebtables
|
||||||
|
emacs-nativecomp
|
||||||
|
frei0r-plugins
|
||||||
|
fritzing
|
||||||
|
ghc
|
||||||
|
graphviz
|
||||||
|
i3lock-color-git
|
||||||
|
intel-media-driver
|
||||||
|
intel-media-sdk
|
||||||
|
intel-ucode
|
||||||
|
lib32-vulkan-intel
|
||||||
|
libmtp
|
||||||
|
libnotify-id
|
||||||
|
lxappearance
|
||||||
|
maim
|
||||||
|
mdadm
|
||||||
|
minted
|
||||||
|
platformio
|
||||||
|
polkit-kde-agent
|
||||||
|
polybar
|
||||||
|
python-image
|
||||||
|
python-tqdm
|
||||||
|
qemu
|
||||||
|
qemu-arch-extra
|
||||||
|
qt5gtk2
|
||||||
|
qt6gtk2
|
||||||
|
redshift
|
||||||
|
rofi
|
||||||
|
rxvt-unicode
|
||||||
|
stalonetray
|
||||||
|
sxhkd
|
||||||
|
synergy2-bin
|
||||||
|
texlive-core
|
||||||
|
ttf-ms-win10
|
||||||
|
vulkan-intel
|
||||||
|
x264
|
||||||
|
xarchiver
|
||||||
|
xclip
|
||||||
|
xdo
|
||||||
|
xdotool
|
||||||
|
xorg-server
|
||||||
|
xorg-xev
|
||||||
|
xorg-xinit
|
||||||
|
xorg-xinput
|
||||||
|
xorg-xprop
|
||||||
|
xorg-xrandr
|
||||||
|
xorg-xsetroot
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
amd-ucode
|
||||||
|
ark
|
||||||
|
dxvk-bin
|
||||||
|
emacs-wayland
|
||||||
|
gamescope
|
||||||
|
gammastep
|
||||||
|
ghostty
|
||||||
|
grim
|
||||||
|
hypridle
|
||||||
|
hyprland
|
||||||
|
hyprlock
|
||||||
|
hyprpaper
|
||||||
|
hyprpolkitagent
|
||||||
|
kvantum
|
||||||
|
kvantum-qt5
|
||||||
|
lib32-mesa
|
||||||
|
lib32-vkd3d-proton-git
|
||||||
|
lib32-vulkan-radeon
|
||||||
|
nwg-look
|
||||||
|
pipewire-alsa
|
||||||
|
pipewire-pulse
|
||||||
|
rofi-wayland
|
||||||
|
rtkit
|
||||||
|
slurp
|
||||||
|
steam
|
||||||
|
sunshine-bin
|
||||||
|
vkd3d-proton-bin
|
||||||
|
vulkan-radeon
|
||||||
|
waybar
|
||||||
|
wl-clipboard
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
ydotool
|
||||||
Reference in New Issue
Block a user