aboutsummaryrefslogtreecommitdiff
path: root/gui/conf
diff options
context:
space:
mode:
Diffstat (limited to 'gui/conf')
-rw-r--r--gui/conf/email.el6
-rw-r--r--gui/conf/init.el57
-rw-r--r--gui/conf/xmonad.hs124
3 files changed, 70 insertions, 117 deletions
diff --git a/gui/conf/email.el b/gui/conf/email.el
index f0fd448..2af5977 100644
--- a/gui/conf/email.el
+++ b/gui/conf/email.el
@@ -20,14 +20,12 @@
(:from . 22)
(:subject)))
(mu4e-hide-index-messages t)
- (mu4e-completing-read-function 'helm-comp-read)
+ (mu4e-completing-read-function 'completing-read)
(shr-color-visible-luminance-min 80)
(doom-modeline-mu4e t)
(doom-modeline-gnus nil)
:config
- (require 'org-mu4e)
- (evil-collection-init 'mu4e)
(add-hook 'mu4e-compose-mode-hook #'(lambda () (auto-save-mode -1))))
(use-package mu4e-alert
@@ -61,8 +59,8 @@
(mu4e-compose-signature-auto-include . nil)
(mu4e-compose-signature . (concat "\n"
"Karlsruhe Institute of Technology (KIT)\n"
- "Institute for Mechanical Process Engineering and Mechanics (MVM)\n"
"Institute for Applied and Numerical Mathematics (IANM)\n"
+ "Institute for Mechanical Process Engineering and Mechanics (MVM)\n"
"Lattice Boltzmann Research Group (LBRG)\n\n"
"M.Sc. Adrian Kummerländer\n"
"Research Associate\n\n"
diff --git a/gui/conf/init.el b/gui/conf/init.el
index c94b4f0..628cfae 100644
--- a/gui/conf/init.el
+++ b/gui/conf/init.el
@@ -1,9 +1,6 @@
(setq inhibit-startup-message t)
(setq initial-scratch-message nil)
-(setq load-path (seq-filter (lambda (x) (not (string-match-p "org-202109" x)))
- load-path))
-
(require 'package)
(package-initialize)
@@ -120,7 +117,7 @@
:after evil
:ensure t
:config
- (setq evil-collection-mode-list '(dired eshell eww pdf magit ediff pdf))
+ (setq evil-collection-mode-list '(dired eshell eww pdf magit ediff pdf mu4e))
(evil-collection-init))
(use-package which-key
@@ -354,25 +351,6 @@
:config
(evil-leader/set-key "s" 'helm-swoop-without-pre-input))
-(use-package org-ref
- :ensure t
- :custom
- (reftex-default-bibliography '("~/university/bib/lit.bib"))
- (org-ref-bibliography-notes "~/org/literature.org")
- (org-ref-default-bibliography '("~/university/bib/lit.bib"))
- (org-ref-get-pdf-filename-function 'org-ref-get-pdf-filename-helm-bibtex))
-
-(use-package helm-bibtex
- :ensure t
- :config
- (setq bibtex-completion-bibliography '("~/university/bib/lit.bib"))
- (setq bibtex-completion-pdf-field "file"))
-
-(use-package zotxt
- :ensure t
- :config
- (add-hook 'org-mode-hook 'org-zotxt-mode))
-
(evil-define-key 'normal 'global
"J" 'evil-forward-paragraph
"K" 'evil-backward-paragraph)
@@ -567,39 +545,6 @@
ad-do-it
(message "org-tangle took %f sec" (float-time (time-subtract (current-time) time)))))
-(use-package gptel
- :ensure t
- :config
- (defvar gptel--atlas
- (gptel-make-openai "atlas"
- :stream t
- :protocol "http"
- :host "10.100.0.3:8081")
- "GPTel remote backend on atlas")
- (setq-default gptel-backend gptel--atlas)
- (setq-default gptel-max-tokens 4096)
- (defvar gptel-quick--history nil)
- (defun gptel-quick (&optional prompt)
- (interactive)
- (unless prompt
- (if (use-region-p)
- (setq prompt (buffer-substring-no-properties (region-beginning) (region-end)))
- (setq prompt (read-string "AI: "))))
- (when (string= prompt "") (user-error "Text selection or prompt is required."))
- (gptel-request
- prompt
- :callback
- (lambda (response info)
- (if (not response)
- (message "gptel-quick failed with message: %s" (plist-get info :status))
- (with-current-buffer (get-buffer-create "*gptel-quick*")
- (let ((inhibit-read-only t))
- (erase-buffer)
- (insert response))
- (special-mode)
- (switch-to-buffer "*gptel-quick*"))))))
- (evil-leader/set-key "g" 'gptel-quick))
-
(let ((mu4e-config "~/.emacs.d/email.el"))
(when (file-exists-p mu4e-config)
(load-file mu4e-config)))
diff --git a/gui/conf/xmonad.hs b/gui/conf/xmonad.hs
index fa1b2d7..4f7e524 100644
--- a/gui/conf/xmonad.hs
+++ b/gui/conf/xmonad.hs
@@ -17,8 +17,6 @@ import XMonad.Layout.Grid
import XMonad.Layout.Groups.Examples
import XMonad.Layout.Groups.Helpers
-import XMonad.Actions.PhysicalScreens
-
import XMonad.Layout.NoBorders
import XMonad.Layout.Reflect
import XMonad.Layout.MultiToggle
@@ -34,21 +32,27 @@ import XMonad.Util.Themes
import XMonad.Util.NamedScratchpad
import XMonad.Util.Dmenu (menuMapArgs)
+import XMonad.Actions.PhysicalScreens
import XMonad.Actions.SpawnOn
import XMonad.Actions.CycleWS
import XMonad.Actions.WindowBringer
import XMonad.Actions.GroupNavigation
import XMonad.Actions.FloatKeys
import XMonad.Actions.UpdatePointer
+import XMonad.Actions.DynamicWorkspaces
+
+import XMonad.Prompt
import Data.Maybe
import Control.Monad (when)
import Data.Map (Map, fromList, member)
-import Data.List (unionBy)
+import Data.List (unionBy, isInfixOf)
import System.Exit
import System.Posix.Unistd
+import Graphics.X11.ExtraTypes
+
workspaces :: [WorkspaceId]
workspaces = map show [1 .. 9 :: Int]
@@ -62,9 +66,9 @@ customTabTheme host = (theme xmonadTheme)
, activeBorderColor = "#909636"
, inactiveBorderColor = "#161616" }
-customLayoutHook host = id
+customLayoutHook hud host = id
. smartBorders
- . ModifiedLayout (hudMonitor host)
+ . ModifiedLayout hud
. mkToggle (single NBFULL)
$ tiles ||| two ||| tabs ||| frame ||| bsp ||| grid ||| groups
where
@@ -109,12 +113,8 @@ sideBarRight = floatRectRight $ 1/3
scratchpads host =
[ NS "terminal" "kitty --class=scratchterm" (className =? "scratchterm")
(customFloating $ hideScreenBorder host dropDown)
- , NS "browser" "env MOZ_USE_XINPUT2=1 firefox --no-remote -P scratchpad --class scratchfire" (className =? "scratchfire")
- (customFloating $ hideScreenBorder host dropDownLarge)
, NS "thesaurus" "artha" (className =? "Artha")
(customFloating $ hideScreenBorder host sideBarLeft)
- , NS "literature" "zotero" (className =? "Zotero")
- (customFloating $ hideScreenBorder host dropDownLarge)
, NS "calculator" "qalculate-gtk" (title =? "Qalculate!")
(customFloating $ hideScreenBorder host sideBarLeft)
, NS "messaging" "telegram-desktop" ((className =? "TelegramDesktop") <&&> (title /=? "Media viewer"))
@@ -127,18 +127,13 @@ hudMonitor host = monitor
{ prop = Title "hud"
, XMonad.Layout.Monitor.name = "hud"
, rect = Rectangle ((screenWidthOn host) - 530) ((screenHeightOn host) - 350) 480 300
- , opacity = 0.8
+ , opacity = 0.6
, persistent = True }
windowBringerDmenuConfig = def { menuCommand = "rofi"
, menuArgs = [ "-p", "win", "-dmenu", "-i" ] }
hostSpecificKeybindings host = case host of
- "asterix" -> [ ("M-i b" , showNotification "Battery"
- "`acpi | cut -c 10-`")
- , ("M-i c" , showNotification "`acpi --thermal | awk '{print $4}'`°C"
- "`cat /proc/acpi/ibm/fan | awk '/speed/{print $2}'` RPM")
- , ("M-c n" , spawn "networkmanager_dmenu") ]
"athena" -> [ ("M-i b" , showNotification "Battery"
"`acpi | cut -c 10-`")
, ("M-i c" , showNotification "`acpi --thermal | awk '{print $4}'`°C"
@@ -148,11 +143,7 @@ hostSpecificKeybindings host = case host of
, ("<XF86MonBrightnessDown>" , spawn "brightnessctl s 5%-")
, ("<XF86AudioRaiseVolume>" , spawn "amixer sset Master 10%+")
, ("<XF86AudioLowerVolume>" , spawn "amixer sset Master 10%-")
- , ("<XF86AudioMute>" , spawn "amixer sset Master toggle")
- , ("<Print>" , namedScratchpadAction (scratchpads host) "terminal")
- , ("M-c p" , spawn "flameshot gui") ]
- "obelix" -> [ ("M-i g" , showNotification "GPU"
- "`nvidia-smi --query-gpu=name,temperature.gpu,utilization.gpu,utilization.memory --format=csv,noheader | awk -F',' '{print $1 \" running at\" $2 \"°C due to\" $3 \" load and\" $4 \" memory usage\"}'`") ]
+ , ("<XF86AudioMute>" , spawn "amixer sset Master toggle") ]
"hephaestus" -> [ ("M-i g" , showNotification "GPU"
"`nvidia-smi --query-gpu=name,temperature.gpu,utilization.gpu,utilization.memory --format=csv,noheader | awk -F',' '{print $1 \" running at\" $2 \"°C due to\" $3 \" load and\" $4 \" memory usage\"}'`") ]
_ -> [ ]
@@ -167,6 +158,8 @@ commonKeybindings host =
, ("M-<Space>" , spawn "rofi -show combi")
, ("M-<Return>" , spawn "kitty")
, ("M-S-<Return>" , spawn "emacsclient --create-frame")
+
+ , ("M-c p" , spawn "flameshot gui")
, ("<Print>" , spawn "flameshot gui")
-- password management
@@ -183,6 +176,31 @@ commonKeybindings host =
, ("M-S-j" , swapDown)
, ("M-S-k" , swapUp)
+-- workspace selection
+ ] ++ [ (p ++ [k] , windows $ f i) | (i, k) <- zip Main.workspaces ['1' .. '9']
+ , (p, f) <- [ ("M-" , S.view)
+ , ("M-S-" , S.shift) ] ] ++
+ [ ("C-<Backspace>" , toggleWS' ["NSP"])
+
+-- workspace movement
+ , ("M-s j" , moveTo Next nonEmptyWS)
+ , ("M-s k" , moveTo Prev nonEmptyWS)
+ , ("M-S-s j" , shiftTo Next nonEmptyWS >> moveTo Next nonEmptyWS)
+ , ("M-S-s k" , shiftTo Prev nonEmptyWS >> moveTo Prev nonEmptyWS)
+
+-- physical screen change
+ , ("M-<Tab>" , nextScreen)
+
+-- workspace layout management
+ , ("M-v" , layoutMenu)
+ , ("M-s l" , sendMessage NextLayout)
+ , ("M-s +" , sendMessage $ IncMasterN 1)
+ , ("M-s -" , sendMessage $ IncMasterN (-1))
+ , ("M-s y" , sendMessage $ Toggle REFLECTY)
+ , ("M-s x" , sendMessage $ Toggle REFLECTX)
+ , ("M-s f" , sendMessage $ Toggle NBFULL)
+
+
-- group control
, ("M-h" , bindOnLayout [ ("groups", focusGroupUp)
, ("", sendMessage Shrink) ] )
@@ -202,36 +220,15 @@ commonKeybindings host =
, ("M-S-a" , bringMenuConfig windowBringerDmenuConfig)
-- scratchpads
- , ("M-b" , namedScratchpadAction (scratchpads host) "browser")
, ("M-t" , namedScratchpadAction (scratchpads host) "thesaurus")
, ("M-z" , namedScratchpadAction (scratchpads host) "literature")
, ("M-r" , namedScratchpadAction (scratchpads host) "calculator")
, ("M-m" , namedScratchpadAction (scratchpads host) "messaging")
- , ("M-n" , namedScratchpadAction (scratchpads host) "notes") ] ++
+ , ("M-n" , namedScratchpadAction (scratchpads host) "notes")
--- workspace selection
- [ (p ++ [k] , windows $ f i) | (i, k) <- zip Main.workspaces ['1' .. '9']
- , (p, f) <- [ ("M-" , S.view)
- , ("M-S-" , S.shift) ] ] ++
- [ ("C-<Backspace>" , toggleWS' ["NSP"])
-
--- workspace movement
- , ("M-s j" , moveTo Next nonEmptyWS)
- , ("M-s k" , moveTo Prev nonEmptyWS)
- , ("M-S-s j" , shiftTo Next nonEmptyWS >> moveTo Next nonEmptyWS)
- , ("M-S-s k" , shiftTo Prev nonEmptyWS >> moveTo Prev nonEmptyWS)
-
--- physical screen change
- , ("M-<Tab>" , nextScreen)
-
--- workspace layout management
- , ("M-v" , layoutMenu)
- , ("M-s l" , sendMessage NextLayout)
- , ("M-s +" , sendMessage $ IncMasterN 1)
- , ("M-s -" , sendMessage $ IncMasterN (-1))
- , ("M-s y" , sendMessage $ Toggle REFLECTY)
- , ("M-s x" , sendMessage $ Toggle REFLECTX)
- , ("M-s f" , sendMessage $ Toggle NBFULL)
+-- allow selection of window to HUDify
+ , ("M-S-f" , spawn "xdotool selectwindow set_window --name hud")
+ , ("M-S-g" , broadcastMessage ToggleMonitor >> refresh)
-- floating placement
, ("M-w t" , withFocused $ windows . S.sink)
@@ -265,7 +262,7 @@ customEventHook = do
handleEventHook def
fullscreenEventHook
-customManageHook host = manageMonitor (hudMonitor host) <+> composeOne
+customManageHook host = composeOne
[ hasRole "GtkFileChooserDialog" -?> doRectFloat $ hideScreenBorder host dropDown
, isTeamsGarbage -?> doHideIgnore
, isParaviewDialog -?> doRectFloat $ hideScreenBorder host dropDown
@@ -290,8 +287,22 @@ customStartupHook host = do
checkKeymap def (customKeybindings host)
setWMName "LG3D"
+promptConfig = def
+ { position = Bottom
+ , promptBorderWidth = 0
+ , defaultText = ""
+ , alwaysHighlight = True
+ , height = 32
+ , font = "xft:Iosevka Medium-12"
+ , fgColor = "#909636"
+ , bgColor = "#161616"
+ , bgHLight = "#909636"
+ , fgHLight = "#161616"
+ , searchPredicate = isInfixOf }
+
main = do
host <- fmap nodeName getSystemID
+ let hud = hudMonitor host
xmonad $ ewmh
$ docks
$ def
@@ -303,11 +314,18 @@ main = do
, mouseBindings = customMousebindings
, startupHook = customStartupHook host
, handleEventHook = customEventHook
- , manageHook = customManageHook host
+ , manageHook = (customManageHook host) <> manageMonitor hud
, logHook = customLogHook
- , layoutHook = customLayoutHook host }
+ , layoutHook = customLayoutHook hud host }
+
`additionalKeys`
- [ ((noModMask, xK_Menu) , namedScratchpadAction (scratchpads host) "terminal") ]
+ [ ((noModMask, xK_Menu) , namedScratchpadAction (scratchpads host) "terminal")
+
+ -- dynamic workspace management
+ , ((mod4Mask, xK_dead_circumflex) , selectWorkspace promptConfig)
+ , ((mod4Mask .|. shiftMask, xK_dead_circumflex) , renameWorkspace promptConfig)
+ , ((mod4Mask, xK_dead_acute) , removeWorkspace)
+ ]
nonEmptyWS = WSIs $ return (\w -> nonNSP w && nonEmpty w)
where nonNSP (S.Workspace tag _ _) = tag /= "NSP"
@@ -372,26 +390,18 @@ hideScreenBorder host (S.RationalRect x0 y0 w h) = S.RationalRect (x0-(bw/sw)) (
screenWidthOn host = case host of
"hephaestus" -> 1920
"atlas" -> 1920
- "obelix" -> 1280
- "asterix" -> 1366
"athena" -> 1920
screenHeightOn host = case host of
"hephaestus" -> 1200
"atlas" -> 1080
- "obelix" -> 1024
- "asterix" -> 768
"athena" -> 1080
borderWidthOn host = case host of
"hephaestus" -> 3
"atlas" -> 3
- "obelix" -> 3
- "asterix" -> 3
"athena" -> 3
decoHeightOn host = case host of
"hephaestus" -> 20
"atlas" -> 20
- "obelix" -> 20
- "asterix" -> 20
"athena" -> 20
-------------------------------------------------------------------------------