Compare commits
40 Commits
f0afe4c45a
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 622b723ae8 | |||
| 30d2facbbc | |||
| a8dd455576 | |||
| 37d4dd8a0b | |||
| 67525324f0 | |||
| c714c0d946 | |||
| d26642e949 | |||
| 499a0153c3 | |||
| 8db99f83de | |||
| e2c94ea82e | |||
| 8e1b0376c5 | |||
| f6e4a4e209 | |||
| 1cb71e6356 | |||
| ea135fa66c | |||
| da94e1d7fb | |||
| 53d9cbc5bd | |||
| d46b62c623 | |||
| 93850623dd | |||
| b04cbd578f | |||
| 5b5320f04f | |||
| 9c678e33a0 | |||
| e8d127bb68 | |||
| c3711f7428 | |||
| c32d03310d | |||
| 59d5824e04 | |||
| 87b4714dbb | |||
| 6b3ed10862 | |||
| 6ad750b3bf | |||
| 41cb8a1b9d | |||
| 1e6c05b893 | |||
| 6323954dd1 | |||
| 5e857055e4 | |||
| b39d96f4a0 | |||
| 59c0a91b14 | |||
| d4f0467df9 | |||
| 1f8882950c | |||
| d27ac95464 | |||
| 685d35f825 | |||
| 2671dfefd2 | |||
| 2e6802f327 |
@@ -5,15 +5,15 @@ TERM = "xterm-256color"
|
||||
size = 16
|
||||
|
||||
[font.normal]
|
||||
family = "Monospace"
|
||||
style = "Regular"
|
||||
family = "VictorMono Nerd Font"
|
||||
style = "Medium"
|
||||
|
||||
[font.offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[window]
|
||||
opacity = 0.9
|
||||
opacity = 0.95
|
||||
|
||||
[general]
|
||||
import = ["/home/opal/.config/alacritty/theme.toml"]
|
||||
import = ["/home/opal/.config/alacritty/gruvbox-material-hard-dark.toml"]
|
||||
|
||||
31
.config/alacritty/dank-theme.toml
Normal file
31
.config/alacritty/dank-theme.toml
Normal file
@@ -0,0 +1,31 @@
|
||||
[colors.primary]
|
||||
background = '#10140f'
|
||||
foreground = '#e0e4db'
|
||||
|
||||
[colors.selection]
|
||||
text = '#e0e4db'
|
||||
background = '#1b5e20'
|
||||
|
||||
[colors.cursor]
|
||||
text = '#10140f'
|
||||
cursor = '#4caf50'
|
||||
|
||||
[colors.normal]
|
||||
black = '#10140f'
|
||||
red = '#c96a4c'
|
||||
green = '#4daf4c'
|
||||
yellow = '#dacb52'
|
||||
blue = '#35a639'
|
||||
magenta = '#005103'
|
||||
cyan = '#4caf50'
|
||||
white = '#abb7ab'
|
||||
|
||||
[colors.bright]
|
||||
black = '#717b71'
|
||||
red = '#eca088'
|
||||
green = '#80d27e'
|
||||
yellow = '#fff39a'
|
||||
blue = '#63c067'
|
||||
magenta = '#89e38d'
|
||||
cyan = '#b6f4b9'
|
||||
white = '#f6fdf6'
|
||||
@@ -1,28 +1,27 @@
|
||||
# Colors (Gruvbox Material Hard Dark)
|
||||
|
||||
# Colors (Custom Light Theme)
|
||||
# Default colors
|
||||
[colors.primary]
|
||||
background = '#1d2021'
|
||||
foreground = '#d4be98'
|
||||
background = '#e5dfd3'
|
||||
foreground = '#4a5353'
|
||||
|
||||
# Normal colors
|
||||
[colors.normal]
|
||||
black = '#32302f'
|
||||
red = '#ea6962'
|
||||
green = '#a9b665'
|
||||
yellow = '#d8a657'
|
||||
blue = '#7daea3'
|
||||
magenta = '#d3869b'
|
||||
cyan = '#89b482'
|
||||
white = '#d4be98'
|
||||
black = '#4a5353'
|
||||
red = '#896d6d'
|
||||
green = '#6d896d'
|
||||
yellow = '#89896d'
|
||||
blue = '#6d6d89'
|
||||
magenta = '#896d89'
|
||||
cyan = '#6d8989'
|
||||
white = '#8a8175'
|
||||
|
||||
# Bright colors (same as normal colors)
|
||||
# Bright colors
|
||||
[colors.bright]
|
||||
black = '#32302f'
|
||||
red = '#ea6962'
|
||||
green = '#a9b665'
|
||||
yellow = '#d8a657'
|
||||
blue = '#7daea3'
|
||||
magenta = '#d3869b'
|
||||
cyan = '#89b482'
|
||||
white = '#d4be98'
|
||||
black = '#4a5353'
|
||||
red = '#a38989'
|
||||
green = '#89a389'
|
||||
yellow = '#a3a389'
|
||||
blue = '#8989a3'
|
||||
magenta = '#a389a3'
|
||||
cyan = '#89a3a3'
|
||||
white = '#6a6155'
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
directory: /mnt/media/music/slsk/to-sort
|
||||
directory: /mnt/storage/music/slsk/to-sort
|
||||
library: ~/.config/beets/beets-library.db
|
||||
|
||||
plugins: musicbrainz
|
||||
|
||||
import:
|
||||
move: yes
|
||||
|
||||
|
||||
@@ -16,6 +16,19 @@
|
||||
(exec-path-from-shell-initialize)
|
||||
(exec-path-from-shell-copy-envs '("SSH_AUTH_SOCK" "SSH_AGENT_PID")))
|
||||
|
||||
(setq vc-ignore-dir-regexp
|
||||
(format "\\(%s\\)\\|\\(%s\\)"
|
||||
vc-ignore-dir-regexp
|
||||
tramp-file-name-regexp))
|
||||
|
||||
;; Disable projectile with remote files
|
||||
(defun opal/maybe-disable-projectile ()
|
||||
"Disable projectile-mode for remote files."
|
||||
(when (file-remote-p default-directory)
|
||||
(projectile-mode -1)))
|
||||
|
||||
(add-hook 'find-file-hook #'opal/maybe-disable-projectile)
|
||||
|
||||
;; Set name & e-mail
|
||||
(setq user-full-name "opal"
|
||||
user-mail-address "ry.orlando@proton.me")
|
||||
@@ -31,15 +44,13 @@
|
||||
|
||||
;; Remove line numbers from specific modes
|
||||
(dolist (mode '(org-mode-hook
|
||||
term-mode-hook
|
||||
shell-mode-hook
|
||||
eshell-mode-hook))
|
||||
(add-hook mode (lambda () (display-line-numbers-mode 0))))
|
||||
|
||||
;; Font configuration
|
||||
(set-face-attribute 'default nil :font "Monospace" :height 170)
|
||||
(set-face-attribute 'fixed-pitch nil :font "Monospace" :height 1.0)
|
||||
(set-face-attribute 'variable-pitch nil :font "ETBembo" :height 1.0)
|
||||
;; Font Config
|
||||
(setq doom-font (font-spec :family "VictorMono Nerd Font" :size 22 :weight 'medium)
|
||||
doom-variable-pitch-font (font-spec :family "VictorMono Nerd Font" :size 22 :weight 'medium :slant 'italic))
|
||||
|
||||
(defun opal/org-font-setup ()
|
||||
;; Replace list hyphen with dot
|
||||
@@ -47,8 +58,7 @@
|
||||
'(("^ *\\([-]\\) "
|
||||
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1)
|
||||
"•"))))))
|
||||
|
||||
;; Set faces for heading levels
|
||||
;; Set heading sizes only
|
||||
(dolist (face '((org-level-1 . 1.2)
|
||||
(org-level-2 . 1.1)
|
||||
(org-level-3 . 1.05)
|
||||
@@ -57,36 +67,27 @@
|
||||
(org-level-6 . 1.1)
|
||||
(org-level-7 . 1.1)
|
||||
(org-level-8 . 1.1)))
|
||||
(set-face-attribute (car face) nil :font "ETBembo" :weight 'regular :height (cdr face)))
|
||||
(set-face-attribute (car face) nil :height (cdr face)))
|
||||
|
||||
;; Set properties and scheduling faces to inherit variable-pitch and be smaller
|
||||
;; Comment out these lines because mixed-pitch-mode will handle these.
|
||||
(set-face-attribute 'org-property-value nil :inherit 'variable-pitch :height 150)
|
||||
(set-face-attribute 'org-special-keyword nil :inherit 'variable-pitch :height 150)
|
||||
(set-face-attribute 'org-scheduled-today nil :inherit 'variable-pitch :height 150)
|
||||
(set-face-attribute 'org-drawer nil :inherit 'variable-pitch :height 150)
|
||||
(set-face-attribute 'org-date nil :inherit 'variable-pitch :height 150)
|
||||
|
||||
;; Ensure that all agenda items use fixed-pitch font
|
||||
;; Ensure that all agenda items inherit default
|
||||
(custom-set-faces
|
||||
'(org-agenda-date-today ((t (:inherit fixed-pitch :weight bold))))
|
||||
'(org-agenda-date ((t (:inherit fixed-pitch))))
|
||||
'(org-agenda-date-weekend ((t (:inherit fixed-pitch :weight bold))))
|
||||
'(org-agenda-done ((t (:inherit fixed-pitch :strike-through t))))
|
||||
'(org-agenda-dimmed-todo-face ((t (:inherit fixed-pitch))))
|
||||
'(org-agenda-structure ((t (:inherit fixed-pitch))))
|
||||
'(org-scheduled ((t (:inherit fixed-pitch))))
|
||||
'(org-scheduled-today ((t (:inherit fixed-pitch))))
|
||||
'(org-scheduled-previously ((t (:inherit fixed-pitch))))
|
||||
'(org-upcoming-deadline ((t (:inherit fixed-pitch))))
|
||||
'(org-deadline-announce ((t (:inherit fixed-pitch))))
|
||||
'(org-time-grid ((t (:inherit fixed-pitch)))))
|
||||
)
|
||||
'(org-agenda-date-today ((t (:inherit default :weight bold))))
|
||||
'(org-agenda-date ((t (:inherit default))))
|
||||
'(org-agenda-date-weekend ((t (:inherit default :weight bold))))
|
||||
'(org-agenda-done ((t (:inherit default :strike-through t))))
|
||||
'(org-agenda-dimmed-todo-face ((t (:inherit default))))
|
||||
'(org-agenda-structure ((t (:inherit default))))
|
||||
'(org-scheduled ((t (:inherit default))))
|
||||
'(org-scheduled-today ((t (:inherit default))))
|
||||
'(org-scheduled-previously ((t (:inherit default))))
|
||||
'(org-upcoming-deadline ((t (:inherit default))))
|
||||
'(org-deadline-announce ((t (:inherit default))))
|
||||
'(org-time-grid ((t (:inherit default))))))
|
||||
|
||||
(defun opal/org-mode-setup ()
|
||||
(org-indent-mode)
|
||||
(visual-line-mode 1)
|
||||
(mixed-pitch-mode 1))
|
||||
(variable-pitch-mode 1))
|
||||
|
||||
(use-package org
|
||||
:commands (org-capture org-agenda)
|
||||
@@ -96,10 +97,10 @@
|
||||
(setq org-agenda-start-with-log-mode t)
|
||||
(setq org-log-done 'time)
|
||||
(setq org-log-into-drawer t)
|
||||
(setq org-startup-folded t)
|
||||
;;(setq org-startup-folded t)
|
||||
(setq org-indent-indentation-per-level 2)
|
||||
(setq org-hide-emphasis-markers t)
|
||||
(setq org-agenda-files (directory-files-recursively "~/sync/org/agenda/" "\\.org$"))
|
||||
(setq org-agenda-files (directory-files-recursively "~/Sync/org/agenda/" "\\.org$"))
|
||||
(setq org-agenda-todo-ignore-scheduled 'future)
|
||||
|
||||
(require 'org-habit)
|
||||
@@ -119,8 +120,6 @@
|
||||
("EASY" . (:foreground "MediumSeaGreen" :weight bold))
|
||||
("DONE" . (:foreground "ForestGreen" :weight bold))))
|
||||
|
||||
(add-hook 'org-mode-hook #'org-make-toc-mode)
|
||||
|
||||
(setq org-agenda-custom-commands
|
||||
'(("d" "GTD Dashboard"
|
||||
;; Begin list of blocks:
|
||||
@@ -167,18 +166,18 @@
|
||||
;; Create capture templates
|
||||
(setq org-capture-templates
|
||||
`(("t" "Tasks")
|
||||
("tw" "Work Task" entry (file+headline "~/sync/org/agenda/work.org" "Inbox")
|
||||
("tw" "Work Task" entry (file+headline "~/Sync/org/agenda/work.org" "Inbox")
|
||||
"* TODO %?\n %U\n %i" :empty-lines 1)
|
||||
("tp" "Personal Task" entry (file+headline "~/sync/org/agenda/personal.org" "Inbox")
|
||||
("tp" "Personal Task" entry (file+headline "~/Sync/org/agenda/personal.org" "Inbox")
|
||||
"* TODO %?\n %U\n %i" :empty-lines 1)))
|
||||
|
||||
;; Tell Org to stop indenting inside of org source blocks.
|
||||
(setq org-edit-src-content-indentation 0)
|
||||
|
||||
;; Set org agenda dir
|
||||
(setq org-directory "~/sync/org/agenda")
|
||||
(setq org-directory "~/Sync/org/agenda")
|
||||
(setq org-agenda-include-diary t)
|
||||
(setq diary-file "~/sync/org/diary")
|
||||
(setq diary-file "~/Sync/org/diary")
|
||||
|
||||
(require 'org-tempo)
|
||||
(dolist (template '(("sh" . "src shell")
|
||||
@@ -238,12 +237,12 @@
|
||||
(eww-browse-url link)
|
||||
(message "No link to open."))))
|
||||
|
||||
(defun opal/elfeed-open-in-librewolf ()
|
||||
"Open the current Elfeed entry link in LibreWolf."
|
||||
(defun opal/elfeed-open-in-firefox()
|
||||
"Open the current Elfeed entry link in firefox."
|
||||
(interactive)
|
||||
(let ((link (elfeed-entry-link (elfeed-search-selected :single))))
|
||||
(if link
|
||||
(let ((browse-url-generic-program "librewolf"))
|
||||
(let ((browse-url-generic-program "firefox"))
|
||||
(browse-url-generic link))
|
||||
(message "No link to open."))))
|
||||
|
||||
@@ -284,7 +283,7 @@
|
||||
(use-package elfeed-org
|
||||
:ensure t
|
||||
:config
|
||||
(setq rmh-elfeed-org-files '("~/sync/org/elfeed/feeds.org")))
|
||||
(setq rmh-elfeed-org-files '("~/Sync/org/elfeed/feeds.org")))
|
||||
|
||||
(after! osm
|
||||
(set-popup-rule! "^\\*osm\\*" :ignore t))
|
||||
@@ -370,6 +369,11 @@
|
||||
(setq browse-url-generic-program "librewolf")
|
||||
(setq browse-url-browser-function 'browse-url-generic)
|
||||
|
||||
;; Attempt to fix slow Tramp issues
|
||||
(remove-hook 'evil-insert-state-exit-hook #'doom-modeline-update-buffer-file-name)
|
||||
(remove-hook 'find-file-hook #'doom-modeline-update-buffer-file-name)
|
||||
(remove-hook 'find-file-hook 'forge-bug-reference-setup)
|
||||
|
||||
(use-package! tramp
|
||||
:init
|
||||
;; TRAMP optimizations
|
||||
|
||||
@@ -7,14 +7,28 @@
|
||||
["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"])
|
||||
'(auth-source-save-behavior nil)
|
||||
'(custom-safe-themes
|
||||
'("d9a947788a4c5f7051c4ad3a3e0e9d76218209899683d3e9ed1e2aa6cd10d462" "b00cb300c114f3b971370c9ef9b6b8a347fa02b1af2aa4c02dab47eaa0ad930b" "d6d4e0512dcaae663f7bd304557d6bc8b78c576be5af9c0b62b8447fb79b5fde" "13096a9a6e75c7330c1bc500f30a8f4407bd618431c94aeab55c9855731a95e1" "48042425e84cd92184837e01d0b4fe9f912d875c43021c3bcb7eeb51f1be5710" "c5878086e65614424a84ad5c758b07e9edcf4c513e08a1c5b1533f313d1b17f1" "10e5d4cc0f67ed5cafac0f4252093d2119ee8b8cb449e7053273453c1a1eb7cc" "ffafb0e9f63935183713b204c11d22225008559fa62133a69848835f4f4a758c" "7964b513f8a2bb14803e717e0ac0123f100fb92160dcf4a467f530868ebaae3e" "f053f92735d6d238461da8512b9c071a5ce3b9d972501f7a5e6682a90bf29725" "944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948" "dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358" "a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98" "a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8" "1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4" "b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
|
||||
'("02d422e5b99f54bd4516d4157060b874d14552fe613ea7047c4a5cfa1288cf4f"
|
||||
"58440185e94d5c28dbcc2b5720c88a5c1f4420bf87936a62f8a47d8cf20730e9"
|
||||
"d9a947788a4c5f7051c4ad3a3e0e9d76218209899683d3e9ed1e2aa6cd10d462"
|
||||
"b00cb300c114f3b971370c9ef9b6b8a347fa02b1af2aa4c02dab47eaa0ad930b"
|
||||
"d6d4e0512dcaae663f7bd304557d6bc8b78c576be5af9c0b62b8447fb79b5fde"
|
||||
"13096a9a6e75c7330c1bc500f30a8f4407bd618431c94aeab55c9855731a95e1"
|
||||
"48042425e84cd92184837e01d0b4fe9f912d875c43021c3bcb7eeb51f1be5710"
|
||||
"c5878086e65614424a84ad5c758b07e9edcf4c513e08a1c5b1533f313d1b17f1"
|
||||
"10e5d4cc0f67ed5cafac0f4252093d2119ee8b8cb449e7053273453c1a1eb7cc"
|
||||
"ffafb0e9f63935183713b204c11d22225008559fa62133a69848835f4f4a758c"
|
||||
"7964b513f8a2bb14803e717e0ac0123f100fb92160dcf4a467f530868ebaae3e"
|
||||
"f053f92735d6d238461da8512b9c071a5ce3b9d972501f7a5e6682a90bf29725"
|
||||
"944d52450c57b7cbba08f9b3d08095eb7a5541b0ecfb3a0a9ecd4a18f3c28948"
|
||||
"dad40020beea412623b04507a4c185079bff4dcea20a93d8f8451acb6afc8358"
|
||||
"a0415d8fc6aeec455376f0cbcc1bee5f8c408295d1c2b9a1336db6947b89dd98"
|
||||
"a9a67b318b7417adbedaab02f05fa679973e9718d9d26075c6235b1f0db703c8"
|
||||
"1704976a1797342a1b4ea7a75bdbb3be1569f4619134341bd5a4c1cfb16abad4"
|
||||
"b5803dfb0e4b6b71f309606587dd88651efe0972a5be16ece6a958b197caeed8" default))
|
||||
'(exwm-floating-border-color "#191b20")
|
||||
'(fci-rule-color "#5B6268")
|
||||
'(highlight-tail-colors
|
||||
((("#333a38" "#99bb66" "green")
|
||||
. 0)
|
||||
(("#2b3d48" "#46D9FF" "brightcyan")
|
||||
. 20)))
|
||||
((("#333a38" "#99bb66" "green") . 0) (("#2b3d48" "#46D9FF" "brightcyan") . 20)))
|
||||
'(jdee-db-active-breakpoint-face-colors (cons "#1B2229" "#51afef"))
|
||||
'(jdee-db-requested-breakpoint-face-colors (cons "#1B2229" "#98be65"))
|
||||
'(jdee-db-spec-breakpoint-face-colors (cons "#1B2229" "#3f444a"))
|
||||
@@ -25,25 +39,12 @@
|
||||
["#282c34" "#ff6c6b" "#98be65" "#ECBE7B" "#51afef" "#c678dd" "#46D9FF" "#bbc2cf"])
|
||||
'(vc-annotate-background "#282c34")
|
||||
'(vc-annotate-color-map
|
||||
(list
|
||||
(cons 20 "#98be65")
|
||||
(cons 40 "#b4be6c")
|
||||
(cons 60 "#d0be73")
|
||||
(cons 80 "#ECBE7B")
|
||||
(cons 100 "#e6ab6a")
|
||||
(cons 120 "#e09859")
|
||||
(cons 140 "#da8548")
|
||||
(cons 160 "#d38079")
|
||||
(cons 180 "#cc7cab")
|
||||
(cons 200 "#c678dd")
|
||||
(cons 220 "#d974b7")
|
||||
(cons 240 "#ec7091")
|
||||
(cons 260 "#ff6c6b")
|
||||
(cons 280 "#cf6162")
|
||||
(cons 300 "#9f585a")
|
||||
(cons 320 "#6f4e52")
|
||||
(cons 340 "#5B6268")
|
||||
(cons 360 "#5B6268")))
|
||||
(list (cons 20 "#98be65") (cons 40 "#b4be6c") (cons 60 "#d0be73")
|
||||
(cons 80 "#ECBE7B") (cons 100 "#e6ab6a") (cons 120 "#e09859")
|
||||
(cons 140 "#da8548") (cons 160 "#d38079") (cons 180 "#cc7cab")
|
||||
(cons 200 "#c678dd") (cons 220 "#d974b7") (cons 240 "#ec7091")
|
||||
(cons 260 "#ff6c6b") (cons 280 "#cf6162") (cons 300 "#9f585a")
|
||||
(cons 320 "#6f4e52") (cons 340 "#5B6268") (cons 360 "#5B6268")))
|
||||
'(vc-annotate-very-old-color nil))
|
||||
(custom-set-faces
|
||||
;; custom-set-faces was added by Custom.
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
company ; the ultimate code completion backend
|
||||
;;company ; the ultimate code completion backend
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
;;ivy ; a search engine for love and life
|
||||
@@ -35,8 +35,8 @@
|
||||
tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;vc-gutter ; vcs diff in the fringe
|
||||
;;vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
;;window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
;;zen ; distraction-free coding or writing
|
||||
@@ -45,7 +45,7 @@
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
(format +onsave) ; automated prettiness
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
;;multiple-cursors ; editing in many places at once
|
||||
@@ -60,10 +60,10 @@
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
;;ibuffer ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
;;vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
vterm ; the best terminal emulation in Emacs
|
||||
@@ -74,7 +74,7 @@
|
||||
;;grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
ansible
|
||||
;;ansible
|
||||
;;biblio ; Writes a PhD for you (citation needed)
|
||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||
;;direnv
|
||||
@@ -125,7 +125,7 @@
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
;;(go +lsp) ; the hipster dialect
|
||||
(go +lsp) ; the hipster dialect
|
||||
;;(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ; a language you can depend on
|
||||
@@ -155,7 +155,7 @@
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
(scheme +guile) ; a fully conniving family of lisps
|
||||
;;(scheme +guile) ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
|
||||
@@ -2,15 +2,12 @@
|
||||
(package! exec-path-from-shell)
|
||||
(package! org-bullets)
|
||||
(package! visual-fill-column)
|
||||
(package! org-make-toc)
|
||||
(package! ef-themes)
|
||||
(package! org-drill)
|
||||
(package! pomm)
|
||||
(package! mixed-pitch)
|
||||
(package! guess-language)
|
||||
(package! nov)
|
||||
(package! google-translate)
|
||||
(package! org-roam)
|
||||
|
||||
;; Remove
|
||||
(package! dirvish :disable t)
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
[Added Associations]
|
||||
video/mp4=org.videolan.VLC.deskop;mpv.desktop;
|
||||
video/quicktime=org.videolan.VLC.deskop;mpv.desktop;
|
||||
video/x-matroska=mpv.desktop;org.videolan.VLC.desktop;
|
||||
application/vnd.rar=xarchiver.desktop;userapp-p7zipForFilemanager-FIKDV2.desktop;
|
||||
image/jpeg=userapp-lximage-qt-KLEC62.desktop;
|
||||
application/x-7z-compressed=xarchiver.desktop;userapp-p7zipForFilemanager-D7VDC3.desktop;
|
||||
video/webm=mpv.desktop;
|
||||
video/mpeg=mpv.desktop;
|
||||
image/png=userapp-lximage-qt-KLEC62.desktop;
|
||||
application/zip=xarchiver.desktop;
|
||||
application/x-zerosize=userapp-lximage-qt-KLEC62.desktop;
|
||||
image/webp=org.gnome.gThumb.desktop;
|
||||
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
|
||||
|
||||
[Default Applications]
|
||||
video/mp4=mpv.desktop
|
||||
video/quicktime=mpv.desktop
|
||||
text/html=librewolf.desktop
|
||||
application/xhtml+xml=librewolf.desktop
|
||||
application/xml=librewolf.desktop
|
||||
text/xml=librewolf.desktop
|
||||
text/xsl=librewolf.desktop
|
||||
application/rss+xml=librewolf.desktop
|
||||
application/atom+xml=librewolf.desktop
|
||||
x-scheme-handler/http=librewolf.desktop
|
||||
x-scheme-handler/https=librewolf.desktop
|
||||
x-scheme-handler/ftp=librewolf.desktop
|
||||
x-scheme-handler/chrome=librewolf.desktop
|
||||
x-scheme-handler/about=librewolf.desktop
|
||||
x-scheme-handler/mailto=librewolf.desktop
|
||||
image/jpeg=userapp-lximage-qt-KLEC62.desktop
|
||||
application/x-zerosize=userapp-lximage-qt-KLEC62.desktop
|
||||
application/pdf=org.pwmt.zathura-pdf-poppler.desktop
|
||||
624
.config/niri/config.kdl
Normal file
624
.config/niri/config.kdl
Normal file
@@ -0,0 +1,624 @@
|
||||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Input
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
// You can set rules, model, layout, variant and options.
|
||||
// For more information, see xkeyboard-config(7).
|
||||
|
||||
// For example:
|
||||
layout "us(altgr-intl)"
|
||||
options "caps:escape"
|
||||
|
||||
// If this section is empty, niri will fetch xkb settings
|
||||
// from org.freedesktop.locale1. You can control these using
|
||||
// localectl set-x11-keymap.
|
||||
}
|
||||
repeat-rate 45
|
||||
repeat-delay 250
|
||||
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
}
|
||||
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
// tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "on-button-down"
|
||||
// scroll-button 273
|
||||
// scroll-button-lock
|
||||
// middle-emulation
|
||||
}
|
||||
|
||||
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||
// warp-mouse-to-focus
|
||||
|
||||
// Focus windows and outputs automatically when moving the mouse into them.
|
||||
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||
focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
output "DP-4" {
|
||||
mode "2560x1440@179.959"
|
||||
position x=0 y=0
|
||||
}
|
||||
|
||||
|
||||
output "DP-5" {
|
||||
mode "2560x2880@59"
|
||||
position x=2560 y=0
|
||||
}
|
||||
|
||||
output "eDP-1" {
|
||||
// Uncomment this line to disable this output.
|
||||
// off
|
||||
|
||||
// Resolution and, optionally, refresh rate of the output.
|
||||
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||
// for the resolution.
|
||||
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||
mode "1920x1200@60"
|
||||
|
||||
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||
scale 1
|
||||
|
||||
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||
transform "normal"
|
||||
|
||||
// Position of the output in the global coordinate space.
|
||||
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||
// The cursor can only move between directly adjacent outputs.
|
||||
// Output scale and rotation has to be taken into account for positioning:
|
||||
// outputs are sized in logical, or scaled, pixels.
|
||||
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||
// If the position is unset or results in an overlap, the output is instead placed
|
||||
// automatically.
|
||||
// position x=1280 y=0
|
||||
}
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
gaps 16
|
||||
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
center-focused-column "never"
|
||||
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.5; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
// Uncomment this line to disable the focus ring.
|
||||
// off
|
||||
|
||||
// How many logical pixels the ring extends out from the windows.
|
||||
width 4
|
||||
|
||||
// Colors can be set in a variety of ways:
|
||||
// - CSS named colors: "red"
|
||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||
|
||||
// Color of the ring on the active monitor.
|
||||
active-color "#7fc8ff"
|
||||
|
||||
// Color of the ring on inactive monitors.
|
||||
//
|
||||
// The focus ring only draws around the active window, so the only place
|
||||
// where you can see its inactive-color is on other monitors.
|
||||
inactive-color "#505050"
|
||||
|
||||
// You can also use gradients. They take precedence over solid colors.
|
||||
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||
// The angle is the same as in linear-gradient, and is optional,
|
||||
// defaulting to 180 (top-to-bottom gradient).
|
||||
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||
// Changing the color space is also supported, check the wiki for more info.
|
||||
//
|
||||
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||
|
||||
// You can also color the gradient relative to the entire view
|
||||
// of the workspace, rather than relative to just the window itself.
|
||||
// To do that, set relative-to="workspace-view".
|
||||
//
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||
border {
|
||||
// The settings are the same as for the focus ring.
|
||||
// If you enable the border, you probably want to disable the focus ring.
|
||||
off
|
||||
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
|
||||
// Color of the border around windows that request your attention.
|
||||
urgent-color "#9b0000"
|
||||
|
||||
// Gradients can use a few different interpolation color spaces.
|
||||
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||
//
|
||||
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can enable drop shadows for windows.
|
||||
shadow {
|
||||
// Uncomment the next line to enable shadows.
|
||||
// on
|
||||
|
||||
// By default, the shadow draws only around its window, and not behind it.
|
||||
// Uncomment this setting to make the shadow draw behind its window.
|
||||
//
|
||||
// Note that niri has no way of knowing about the CSD window corner
|
||||
// radius. It has to assume that windows have square corners, leading to
|
||||
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||
// those artifacts.
|
||||
//
|
||||
// However, instead you may want to set prefer-no-csd and/or
|
||||
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||
// draw the shadow correctly, without having to draw it behind the
|
||||
// window. These will also remove client-side shadows if the window
|
||||
// draws any.
|
||||
//
|
||||
// draw-behind-window true
|
||||
|
||||
// You can change how shadows look. The values below are in logical
|
||||
// pixels and match the CSS box-shadow properties.
|
||||
|
||||
// Softness controls the shadow blur radius.
|
||||
softness 30
|
||||
|
||||
// Spread expands the shadow.
|
||||
spread 5
|
||||
|
||||
// Offset moves the shadow relative to the window.
|
||||
offset x=0 y=5
|
||||
|
||||
// You can also change the shadow color and opacity.
|
||||
color "#0007"
|
||||
}
|
||||
|
||||
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||
// Left and right struts will cause the next window to the side to always be visible.
|
||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||
// layer-shell panels and regular gaps.
|
||||
struts {
|
||||
// left 64
|
||||
// right 64
|
||||
// top 64
|
||||
// bottom 64
|
||||
}
|
||||
}
|
||||
|
||||
// Add lines like this to spawn processes at startup.
|
||||
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||
// which may be more convenient to use.
|
||||
// See the binds section below for more spawn examples.
|
||||
|
||||
spawn-at-startup "bash" "~/.local/bin/start-keyring.sh"
|
||||
|
||||
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||
// spawn-at-startup "waybar"
|
||||
|
||||
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||
|
||||
hotkey-overlay {
|
||||
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||
// skip-at-startup
|
||||
}
|
||||
|
||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||
// If the client will specifically ask for CSD, the request will be honored.
|
||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||
prefer-no-csd
|
||||
|
||||
// You can change the path where screenshots are saved.
|
||||
// A ~ at the front will be expanded to the home directory.
|
||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
// You can also set this to null to disable saving screenshots to disk.
|
||||
// screenshot-path null
|
||||
|
||||
// Animation settings.
|
||||
// The wiki explains how to configure individual animations:
|
||||
// https://yalter.github.io/niri/Configuration:-Animations
|
||||
animations {
|
||||
// Uncomment to turn off all animations.
|
||||
// off
|
||||
|
||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||
// slowdown 3.0
|
||||
}
|
||||
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://yalter.github.io/niri/Configuration:-Window-Rules
|
||||
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
// Open the Firefox picture-in-picture player as floating by default.
|
||||
window-rule {
|
||||
// This app-id regular expression will work for both:
|
||||
// - host Firefox (app-id is "firefox")
|
||||
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
// Example: block out two password managers from screen capture.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
|
||||
block-out-from "screen-capture"
|
||||
|
||||
// Use this instead if you want them visible on third-party screenshot tools.
|
||||
// block-out-from "screencast"
|
||||
}
|
||||
|
||||
// Example: enable rounded corners for all windows.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
// like wev.
|
||||
//
|
||||
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
// when running as a winit window.
|
||||
//
|
||||
// Most actions that you can bind here can also be invoked programmatically with
|
||||
// `niri msg action do-something`.
|
||||
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application: rofi" { spawn "~/.config/rofi/launchers/type-7/launcher.sh"; }
|
||||
Ctrl+Shift+L hotkey-overlay-title="Lock the Screen" { spawn "dms" "ipc" "call" "lock" "lock"; }
|
||||
|
||||
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||
// Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
Mod+Shift+E allow-when-locked=false hotkey-overlay-title=null { spawn-sh "~/.local/bin/emoji_insert.sh"; }
|
||||
// Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
|
||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||
// "-l 1.0" limits the volume to 100%.
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
|
||||
// Example media keys mapping using playerctl.
|
||||
// This will work with any MPRIS-enabled media player.
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
|
||||
// Example brightness key mappings for brightnessctl.
|
||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||
// but you need to manually put each argument in separate "" quotes.
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
|
||||
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||
// You can also move the mouse into the top-left hot corner,
|
||||
// or do a four-finger swipe up on a touchpad.
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
|
||||
Mod+Shift+Q repeat=false { close-window; }
|
||||
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
|
||||
Mod+Shift+H { move-column-left; }
|
||||
Mod+Shift+J { move-window-down; }
|
||||
Mod+Shift+K { move-window-up; }
|
||||
Mod+Shift+L { move-column-right; }
|
||||
|
||||
// Alternative commands that move across workspaces when reaching
|
||||
// the first or last window in a column.
|
||||
// Mod+J { focus-window-or-workspace-down; }
|
||||
// Mod+K { focus-window-or-workspace-up; }
|
||||
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Ctrl+H { focus-monitor-left; }
|
||||
Mod+Ctrl+J { focus-monitor-down; }
|
||||
Mod+Ctrl+K { focus-monitor-up; }
|
||||
Mod+Ctrl+L { focus-monitor-right; }
|
||||
|
||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
// And you can also move a whole workspace to another monitor:
|
||||
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
// ...
|
||||
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
|
||||
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||
// These binds will change direction based on the natural-scroll setting.
|
||||
//
|
||||
// To avoid scrolling through workspaces really fast, you can use
|
||||
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
|
||||
// Usually scrolling up and down with Shift in applications results in
|
||||
// horizontal scrolling; these binds replicate that.
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
// Similarly, you can bind touchpad scroll "ticks".
|
||||
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||
// discrete intervals.
|
||||
// These binds are also affected by touchpad's natural-scroll, so these
|
||||
// example binds are "inverted", since we have natural-scroll enabled for
|
||||
// touchpads by default.
|
||||
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||
|
||||
// You can refer to workspaces by index. However, keep in mind that
|
||||
// niri is a dynamic workspace system, so these commands are kind of
|
||||
// "best effort". Trying to refer to a workspace index bigger than
|
||||
// the current workspace count will instead refer to the bottommost
|
||||
// (empty) workspace.
|
||||
//
|
||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
// will all refer to the 3rd workspace.
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Shift+1 { move-column-to-workspace 1; }
|
||||
Mod+Shift+2 { move-column-to-workspace 2; }
|
||||
Mod+Shift+3 { move-column-to-workspace 3; }
|
||||
Mod+Shift+4 { move-column-to-workspace 4; }
|
||||
Mod+Shift+5 { move-column-to-workspace 5; }
|
||||
Mod+Shift+6 { move-column-to-workspace 6; }
|
||||
Mod+Shift+7 { move-column-to-workspace 7; }
|
||||
Mod+Shift+8 { move-column-to-workspace 8; }
|
||||
Mod+Shift+9 { move-column-to-workspace 9; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
// The following binds move the focused window in and out of a column.
|
||||
// If the window is alone, they will consume it into the nearby column to the side.
|
||||
// If the window is already in a column, they will expel it out.
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
// Consume one window from the right to the bottom of the focused column.
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
// Expel the bottom window from the focused column to the right.
|
||||
Mod+Period { expel-window-from-column; }
|
||||
|
||||
Mod+R { switch-preset-column-width; }
|
||||
// Cycling through the presets in reverse order is also possible.
|
||||
// Mod+R { switch-preset-column-width-back; }
|
||||
Mod+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
|
||||
// Expand the focused column to space not taken up by other fully visible columns.
|
||||
// Makes the column "fill the rest of the space".
|
||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||
|
||||
Mod+C { center-column; }
|
||||
|
||||
// Center all fully visible columns on screen.
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
|
||||
// Finer width adjustments.
|
||||
// This command can also:
|
||||
// * set width in pixels: "1000"
|
||||
// * adjust width in pixels: "-5" or "+5"
|
||||
// * set width as a percentage of screen width: "25%"
|
||||
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
|
||||
// Finer height adjustments when in column with other windows.
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
|
||||
// Move the focused window between the floating and the tiling layout.
|
||||
Mod+V { toggle-window-floating; }
|
||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
// Toggle tabbed column display mode.
|
||||
// Windows in this column will appear as vertical tabs,
|
||||
// rather than stacked on top of each other.
|
||||
Mod+W { toggle-column-tabbed-display; }
|
||||
|
||||
// Actions to switch layouts.
|
||||
// Note: if you uncomment these, make sure you do NOT have
|
||||
// a matching layout switch hotkey configured in xkb options above.
|
||||
// Having both at once on the same hotkey will break the switching,
|
||||
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
// Mod+Space { switch-layout "next"; }
|
||||
// Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Alt+P { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
// Applications such as remote-desktop clients and software KVM switches may
|
||||
// request that niri stops processing the keyboard shortcuts defined here
|
||||
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||
// so a buggy application can't hold your session hostage.
|
||||
//
|
||||
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||
// which ensures niri always processes them, even when an inhibitor is active.
|
||||
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
|
||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
// Mod+Shift+E { quit; }
|
||||
// Ctrl+Alt+Delete { quit; }
|
||||
|
||||
// Powers off the monitors. To turn them back on, do any input like
|
||||
// moving the mouse or pressing any other key.
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
|
||||
include "dms/outputs.kdl"
|
||||
@@ -2,6 +2,9 @@
|
||||
vim.o.number = true
|
||||
vim.o.relativenumber = true
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
vim.cmd('colorscheme default')
|
||||
vim.cmd('syntax on')
|
||||
vim.o.background = 'dark'
|
||||
|
||||
vim.cmd [[highlight Normal guibg=NONE ctermbg=NONE]]
|
||||
vim.cmd [[highlight NormalNC guibg=NONE ctermbg=NONE]]
|
||||
|
||||
91
.config/nvim/lua/plugins/dankcolors.lua
Normal file
91
.config/nvim/lua/plugins/dankcolors.lua
Normal file
@@ -0,0 +1,91 @@
|
||||
return {
|
||||
{
|
||||
"RRethy/base16-nvim",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require('base16-colorscheme').setup({
|
||||
base00 = '#10140f',
|
||||
base01 = '#10140f',
|
||||
base02 = '#717b71',
|
||||
base03 = '#717b71',
|
||||
base04 = '#abb7ab',
|
||||
base05 = '#f6fdf6',
|
||||
base06 = '#f6fdf6',
|
||||
base07 = '#f6fdf6',
|
||||
base08 = '#eca088',
|
||||
base09 = '#eca088',
|
||||
base0A = '#63c067',
|
||||
base0B = '#80d27e',
|
||||
base0C = '#b6f4b9',
|
||||
base0D = '#63c067',
|
||||
base0E = '#89e38d',
|
||||
base0F = '#89e38d',
|
||||
})
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Visual', {
|
||||
bg = '#717b71',
|
||||
fg = '#f6fdf6',
|
||||
bold = true
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'Statusline', {
|
||||
bg = '#63c067',
|
||||
fg = '#10140f',
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'LineNr', { fg = '#717b71' })
|
||||
vim.api.nvim_set_hl(0, 'CursorLineNr', { fg = '#b6f4b9', bold = true })
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Statement', {
|
||||
fg = '#89e38d',
|
||||
bold = true
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'Keyword', { link = 'Statement' })
|
||||
vim.api.nvim_set_hl(0, 'Repeat', { link = 'Statement' })
|
||||
vim.api.nvim_set_hl(0, 'Conditional', { link = 'Statement' })
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Function', {
|
||||
fg = '#63c067',
|
||||
bold = true
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'Macro', {
|
||||
fg = '#63c067',
|
||||
italic = true
|
||||
})
|
||||
vim.api.nvim_set_hl(0, '@function.macro', { link = 'Macro' })
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Type', {
|
||||
fg = '#b6f4b9',
|
||||
bold = true,
|
||||
italic = true
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'Structure', { link = 'Type' })
|
||||
|
||||
vim.api.nvim_set_hl(0, 'String', {
|
||||
fg = '#80d27e',
|
||||
italic = true
|
||||
})
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Operator', { fg = '#abb7ab' })
|
||||
vim.api.nvim_set_hl(0, 'Delimiter', { fg = '#abb7ab' })
|
||||
vim.api.nvim_set_hl(0, '@punctuation.bracket', { link = 'Delimiter' })
|
||||
vim.api.nvim_set_hl(0, '@punctuation.delimiter', { link = 'Delimiter' })
|
||||
|
||||
vim.api.nvim_set_hl(0, 'Comment', {
|
||||
fg = '#717b71',
|
||||
italic = true
|
||||
})
|
||||
|
||||
local current_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua"
|
||||
if not _G._matugen_theme_watcher then
|
||||
local uv = vim.uv or vim.loop
|
||||
_G._matugen_theme_watcher = uv.new_fs_event()
|
||||
_G._matugen_theme_watcher:start(current_file_path, {}, vim.schedule_wrap(function()
|
||||
local new_spec = dofile(current_file_path)
|
||||
if new_spec and new_spec[1] and new_spec[1].config then
|
||||
new_spec[1].config()
|
||||
print("Theme reload")
|
||||
end
|
||||
end))
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
1
.config/systemd/user/niri.service.wants/dms.service
Symbolic link
1
.config/systemd/user/niri.service.wants/dms.service
Symbolic link
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/user/dms.service
|
||||
7
.config/systemd/user/webwatcher.service
Normal file
7
.config/systemd/user/webwatcher.service
Normal file
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=WebWatcher - scan a site and notify on new regex matches
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/home/opal/.local/bin/webwatcher.py --url https://shop.nwnprod.com --pattern "beherit" --flags i
|
||||
10
.config/systemd/user/webwatcher.timer
Normal file
10
.config/systemd/user/webwatcher.timer
Normal file
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Run WebWatcher periodically
|
||||
|
||||
[Timer]
|
||||
OnBootSec=2m
|
||||
OnUnitActiveSec=5m
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -1,16 +0,0 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/desktop"
|
||||
XDG_DESKTOP_DIR="$HOME/"
|
||||
XDG_DOWNLOAD_DIR="$HOME/dls"
|
||||
XDG_TEMPLATES_DIR="$HOME/"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/"
|
||||
XDG_DOCUMENTS_DIR="$HOME/docs"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/pics"
|
||||
XDG_VIDEOS_DIR="$HOME/"
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "swaylock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "swaylock -f && systemctl suspend",
|
||||
"action" : "hyprlock & disown && systemctl suspend",
|
||||
"text" : "Suspend",
|
||||
"keybind" : "u"
|
||||
}
|
||||
|
||||
@@ -14,6 +14,14 @@ compinit
|
||||
|
||||
export EDITOR="nvim"
|
||||
|
||||
HISTFILE=$ZDOTDIR/.zsh_history
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
|
||||
# Options to make history nicer
|
||||
setopt HIST_IGNORE_DUPS HIST_IGNORE_SPACE
|
||||
|
||||
|
||||
#######################################################
|
||||
# PROMPT
|
||||
#######################################################
|
||||
@@ -108,10 +116,18 @@ alias tbr='trans :pt-BR'
|
||||
# ncmpcpp
|
||||
alias ncmpcpp='ncmpcpp -b ~/.config/ncmpcpp/bindings'
|
||||
|
||||
# Aliases
|
||||
# ls
|
||||
alias ll='ls -l --color=auto'
|
||||
alias la='ls -la --color=auto'
|
||||
|
||||
# git
|
||||
alias gs='git status'
|
||||
alias ga='git add'
|
||||
alias gpull='git pull'
|
||||
alias gcom='git commit -m'
|
||||
|
||||
alias h='history 1'
|
||||
|
||||
#######################################################
|
||||
# FUNCTIONS
|
||||
#######################################################
|
||||
@@ -152,3 +168,27 @@ keys()
|
||||
}
|
||||
|
||||
keys
|
||||
|
||||
|
||||
apply() {
|
||||
(cd ~/Code/arch-ansible && ansible-playbook -i inventory/hosts.yml site.yml -K "$@")
|
||||
}
|
||||
|
||||
apply-aur() {
|
||||
(cd ~/Code/arch-ansible/scripts && bash aur-pkg-install.sh)
|
||||
}
|
||||
|
||||
shred-dir() {
|
||||
local dir="${1:?Usage: shred-dir <directory>}"
|
||||
local passes="${2:-7}"
|
||||
|
||||
[[ ! -d "$dir" ]] && { echo "Not a directory: '$dir'"; return 1; }
|
||||
|
||||
echo "Shred '$dir' with $passes passes? [y/N]"
|
||||
read -r confirm
|
||||
[[ "$confirm" != [yY] ]] && { echo "Aborted."; return 1; }
|
||||
|
||||
find "$dir" -type f -exec shred -uz -n "$passes" {} \;
|
||||
rm -rf "$dir"
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -14,3 +14,4 @@ lazy-lock.json
|
||||
flycheck-packages.el
|
||||
*.log
|
||||
.config/zsh/.zcompdump
|
||||
.local/bin/claude
|
||||
|
||||
4
.local/bin/start-keyring.sh
Normal file
4
.local/bin/start-keyring.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
# ~/.local/bin/start-keyring.sh
|
||||
eval $(gnome-keyring-daemon --start --components=secrets)
|
||||
export GNOME_KEYRING_CONTROL
|
||||
40
.local/bin/webwatcher.py
Executable file
40
.local/bin/webwatcher.py
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
import os, re, json, subprocess
|
||||
from urllib.request import urlopen, Request
|
||||
|
||||
URL = "https://shop.nwnprod.com" # page to watch
|
||||
STATE = os.path.expanduser("~/.local/state/webwatch_beherit.json")
|
||||
|
||||
USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) " "Gecko/20100101 Firefox/128.0"
|
||||
|
||||
# --- fetch html ---
|
||||
req = Request(URL, headers={"User-Agent": USER_AGENT})
|
||||
html = urlopen(req, timeout=15).read().decode("utf-8", "ignore")
|
||||
|
||||
# --- find product IDs and titles that contain 'Beherit' ---
|
||||
pattern = re.compile(
|
||||
r"product_id=(\d+)[^>]*>([^<]*Beherit[^<]*)</a>", re.IGNORECASE | re.DOTALL
|
||||
)
|
||||
products = {
|
||||
pid: re.sub(r"\s+", " ", title).strip() for pid, title in pattern.findall(html)
|
||||
}
|
||||
|
||||
# --- load previous seen IDs ---
|
||||
seen = set()
|
||||
if os.path.exists(STATE):
|
||||
with open(STATE) as f:
|
||||
seen = set(json.load(f))
|
||||
|
||||
# --- notify for new Beherit items ---
|
||||
new = [(pid, title) for pid, title in products.items() if pid not in seen]
|
||||
for pid, title in new:
|
||||
subprocess.run(
|
||||
["notify-send", "-u", "critical", "-t", "0", "Beherit Alert", title],
|
||||
check=False,
|
||||
)
|
||||
print(f"New Beherit item: {title}")
|
||||
|
||||
# --- update state file ---
|
||||
if new:
|
||||
with open(STATE, "w") as f:
|
||||
json.dump(sorted(products.keys()), f)
|
||||
13
.local/share/applications/signal-desktop.desktop
Normal file
13
.local/share/applications/signal-desktop.desktop
Normal file
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Signal
|
||||
Comment=Signal - Private Messenger
|
||||
Comment[de]=Signal - Sicherer Messenger
|
||||
Icon=signal-desktop
|
||||
Exec=/usr/bin/signal-desktop --password-store=kwallet6 -- %u
|
||||
Terminal=false
|
||||
Categories=Network;InstantMessaging;
|
||||
StartupWMClass=signal
|
||||
MimeType=x-scheme-handler/sgnl;x-scheme-handler/signalcaptcha;
|
||||
Keywords=sgnl;chat;im;messaging;messenger;security;privat;
|
||||
X-GNOME-UsesNotifications=true
|
||||
7
.zshenv
7
.zshenv
@@ -1,8 +1 @@
|
||||
export ZDOTDIR="$HOME/.config/zsh"
|
||||
|
||||
HISTFILE=$ZDOTDIR/.zsh_history
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
|
||||
# Options to make history nicer
|
||||
setopt HIST_IGNORE_DUPS HIST_IGNORE_SPACE
|
||||
|
||||
23
archive/hypr/hypridle.conf
Normal file
23
archive/hypr/hypridle.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
# ~/.config/hypr/hypridle.conf
|
||||
|
||||
general {
|
||||
before_sleep_cmd = hyprlock
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10 minutes
|
||||
on-timeout = hyprlock
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 900 # 15 minutes
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 7200 # 2 hours
|
||||
on-timeout = hyprlock & disown && systemctl suspend
|
||||
}
|
||||
@@ -2,8 +2,9 @@
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
monitor=HDMI-A-1,3840x2160,0x0,1.5
|
||||
monitor=DP-2,2560x2880,2560x0,1.6
|
||||
monitor=DP-2,3840x2160,0x0,1.5
|
||||
monitor=DP-1,2560x2880,2560x0,1.6
|
||||
monitor=DP-3,2560x2880,2560x0,1.6
|
||||
#monitor=DP-1,2560x2880,0x0,2.0
|
||||
monitor=eDP-1,1920x1200,6400x0,1.0
|
||||
|
||||
@@ -12,10 +13,9 @@ monitor=eDP-1,1920x1200,6400x0,1.0
|
||||
###################
|
||||
|
||||
$terminal = alacritty
|
||||
$fileManager = dolphin
|
||||
$fileManager = pcmanfm
|
||||
$menu = ~/.config/rofi/launchers/type-7/launcher.sh
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
@@ -25,9 +25,11 @@ $menu = ~/.config/rofi/launchers/type-7/launcher.sh
|
||||
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
exec-once = waybar &
|
||||
exec = hyprpaper
|
||||
exec-once = wlsunset -l 47.6 -L -122.3 -t 3500 -T 6000
|
||||
exec-once = keepassxc
|
||||
exec-once = waybar &
|
||||
exec-once = hypridle &
|
||||
exec-once = hyprsunset
|
||||
exec-once = /usr/bin/udiskie &
|
||||
exec-once = /usr/bin/nm-applet &
|
||||
exec-once = /usr/bin/blueman-applet &
|
||||
@@ -118,7 +120,11 @@ animations {
|
||||
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
windowrulev2 = size 50% 50%, floating:1
|
||||
# Apply to ALL floating windows except Steam
|
||||
#windowrule = center, class:negative:^(?i)steam$, floating:1
|
||||
windowrule = maxsize 80% 80%, class:negative:^(?i)steam$, floating:1
|
||||
#windowrule = minsize 360 240, class:negative:^(?i)steam$, floating:1
|
||||
|
||||
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
@@ -148,6 +154,7 @@ input {
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
tap-to-click = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,6 +163,20 @@ device {
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
# Set trackpoint sensitivity on laptop
|
||||
device {
|
||||
name = TPPS/2 Elan TrackPoint
|
||||
sensitivity = 1.0
|
||||
accel_profile = flat
|
||||
}
|
||||
|
||||
# Set trackpoint sensitivity on Tex Shinobi USB
|
||||
device {
|
||||
name = USB-HID Keyboard Mouse
|
||||
sensitivity = 0.3
|
||||
accel_profile = flat
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
@@ -223,6 +244,9 @@ bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||
bind = $mainMod, Space, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, Space, movetoworkspacesilent, special:magic
|
||||
|
||||
# Lock
|
||||
bind = $mainMod, ESCAPE, exec, hyprlock
|
||||
|
||||
# Control windows
|
||||
bind = $mainMod, equal, splitratio, 0.05 # make focused split wider
|
||||
bind = $mainMod, minus, splitratio, -0.05 # make focused split narrower
|
||||
@@ -292,6 +316,10 @@ windowrulev2 = suppressevent maximize, class:.*
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
# For KeePassXC
|
||||
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
|
||||
windowrulev2 = center, class:^(org.keepassxc.KeePassXC)$
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
use_nearest_neighbor = true
|
||||
25
archive/hypr/hyprlock.conf
Normal file
25
archive/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
brightness = 0.8
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 50
|
||||
outline_thickness = 2
|
||||
position = 0, -100
|
||||
rounding = 5
|
||||
inner_color = rgba(0, 0, 0, 0.5)
|
||||
outer_color = rgba(255, 255, 255, 0.2)
|
||||
font_color = rgba(255,255,255,1)
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = Welcome back, $USER
|
||||
position = 0, 150
|
||||
font_size = 22
|
||||
color = rgba(255,255,255,0.8)
|
||||
}
|
||||
11
archive/hypr/hyprsunset.conf
Normal file
11
archive/hypr/hyprsunset.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
max-gamma = 200
|
||||
|
||||
profile {
|
||||
time = 7:00
|
||||
identity = true
|
||||
}
|
||||
|
||||
profile {
|
||||
time = 18:00
|
||||
temperature = 3000
|
||||
}
|
||||
Reference in New Issue
Block a user