mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-05-19 02:46:06 -07:00
many improvements to exwm including "finished" bar and enabled redos
This commit is contained in:
parent
7b0bf943b3
commit
4781dbeea7
@ -22,6 +22,7 @@
|
|||||||
- [[#ido][IDO]]
|
- [[#ido][IDO]]
|
||||||
- [[#general-configuration][General Configuration]]
|
- [[#general-configuration][General Configuration]]
|
||||||
- [[#completions][Completions]]
|
- [[#completions][Completions]]
|
||||||
|
- [[#undo][Undo]]
|
||||||
- [[#ui][UI]]
|
- [[#ui][UI]]
|
||||||
- [[#ui-elements][UI Elements]]
|
- [[#ui-elements][UI Elements]]
|
||||||
- [[#scrolling][Scrolling]]
|
- [[#scrolling][Scrolling]]
|
||||||
@ -105,6 +106,9 @@
|
|||||||
- [[#dired][Dired]]
|
- [[#dired][Dired]]
|
||||||
- [[#exwm][EXWM]]
|
- [[#exwm][EXWM]]
|
||||||
- [[#desktop][Desktop]]
|
- [[#desktop][Desktop]]
|
||||||
|
- [[#exwm-and-system-informationals][EXWM and System Informationals]]
|
||||||
|
- [[#exwm-modeline][EXWM Modeline]]
|
||||||
|
- [[#exwm-echo-area-bar][EXWM Echo Area Bar]]
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
* Custom Bits
|
* Custom Bits
|
||||||
@ -400,8 +404,8 @@ Setup package management. Some lines can be uncommented for fresh installs.
|
|||||||
(require 'use-package)
|
(require 'use-package)
|
||||||
(require 'use-package-ensure)
|
(require 'use-package-ensure)
|
||||||
|
|
||||||
; Uncomment for fresh install
|
; Ensure packages by default
|
||||||
;(setq use-package-always-ensure t)
|
(setq use-package-always-ensure t)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -586,6 +590,16 @@ Stolen from https://github.com/MatthewZMD
|
|||||||
(ivy--cd "~/")))
|
(ivy--cd "~/")))
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** Undo
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp :tangle (if (member this-system system-category-1) "~/.emacs.d/init.el" "no")
|
||||||
|
|
||||||
|
(use-package undo-tree
|
||||||
|
:init
|
||||||
|
(global-undo-tree-mode 1))
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** UI
|
** UI
|
||||||
*** UI Elements
|
*** UI Elements
|
||||||
|
|
||||||
@ -2863,7 +2877,10 @@ Define SPC lead bindings for EXWM.
|
|||||||
|
|
||||||
(dw/leader-key-def
|
(dw/leader-key-def
|
||||||
"e" '(:ignore t :which-key "exwm")
|
"e" '(:ignore t :which-key "exwm")
|
||||||
"es" '(exwm-workspace-switch :which-key "switch workspaces"))
|
"es" '(exwm-workspace-switch :which-key "switch workspaces")
|
||||||
|
"eg" '(:ignore t :which-key "gamemode")
|
||||||
|
"egs" '(ts/start-gamemode :which-key "start gamemode")
|
||||||
|
"egk" '(ts/kill-gamemode :which-key "kill gamemode"))
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -2877,7 +2894,7 @@ Define SPC lead bindings for EXWM.
|
|||||||
|
|
||||||
(defun ts/update-screen-layout ()
|
(defun ts/update-screen-layout ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((layout-script "~/.doom.d/scripts/update-screens"))
|
(let ((layout-script "~/.config/scratch/scripts/update-screens"))
|
||||||
(message "Running screen layout script: %s" layout-script)
|
(message "Running screen layout script: %s" layout-script)
|
||||||
(start-process-shell-command "xrandr" nil layout-script)))
|
(start-process-shell-command "xrandr" nil layout-script)))
|
||||||
|
|
||||||
@ -2896,6 +2913,16 @@ Define SPC lead bindings for EXWM.
|
|||||||
(start-process-shell-command
|
(start-process-shell-command
|
||||||
"imwheel" nil "imwheel -b 45"))
|
"imwheel" nil "imwheel -b 45"))
|
||||||
|
|
||||||
|
(defun ts/start-gamemode ()
|
||||||
|
(interactive)
|
||||||
|
(start-process-shell-command
|
||||||
|
"gamemoded" nil "gamemoded -r"))
|
||||||
|
|
||||||
|
(defun ts/kill-gamemode ()
|
||||||
|
(interactive)
|
||||||
|
(start-process-shell-command
|
||||||
|
"killall" nil "killall gamemoded"))
|
||||||
|
|
||||||
(defun ts/configure-desktop ()
|
(defun ts/configure-desktop ()
|
||||||
(interactive)
|
(interactive)
|
||||||
;;(dw/run-xmodmap)
|
;;(dw/run-xmodmap)
|
||||||
@ -2976,6 +3003,11 @@ Define SPC lead bindings for EXWM.
|
|||||||
([?\s-k] . windmove-up)
|
([?\s-k] . windmove-up)
|
||||||
([?\s-j] . windmove-down)
|
([?\s-j] . windmove-down)
|
||||||
|
|
||||||
|
([?\s-H] . shrink-window-horizontally)
|
||||||
|
([?\s-L] . enlarge-window-horizontally)
|
||||||
|
([?\s-K] . enlarge-window)
|
||||||
|
([?\s-J] . shrink-window)
|
||||||
|
|
||||||
;; Launch applications via shell command
|
;; Launch applications via shell command
|
||||||
([?\s-w] . counsel-linux-app)
|
([?\s-w] . counsel-linux-app)
|
||||||
|
|
||||||
@ -2994,12 +3026,43 @@ Define SPC lead bindings for EXWM.
|
|||||||
|
|
||||||
(setq exwm-randr-workspace-monitor-plist '(1 "HDMI-0"))
|
(setq exwm-randr-workspace-monitor-plist '(1 "HDMI-0"))
|
||||||
|
|
||||||
|
(use-package exwm-mff
|
||||||
|
:straight (:host github :repo "starr-dusT/exwm-mff")
|
||||||
|
:config
|
||||||
|
(exwm-mff-mode +1))
|
||||||
|
|
||||||
|
;;; Set location for external packages.
|
||||||
|
(add-to-list 'load-path "~/.emacs.d")
|
||||||
|
(require 'framemove)
|
||||||
|
(setq framemove-hook-into-windmove t)
|
||||||
|
|
||||||
|
;(exwm-enable)
|
||||||
|
|
||||||
|
(tab-bar-mode)
|
||||||
|
;(add-hook 'after-make-frame-functions (lambda (frame) (set-frame-parameter frame 'tab-bar-lines 0)))
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** EXWM and System Informationals
|
||||||
|
|
||||||
|
Implement information relating to the underlying linux system and EXWM. This is done primarily through the echo area "bar" created using minibuffer-line and some helper functions and some minor things in the modeline.
|
||||||
|
|
||||||
|
*** EXWM Modeline
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp :tangle (if (member this-system system-category-1) "~/.emacs.d/init.el" "no")
|
||||||
|
|
||||||
(use-package exwm-modeline
|
(use-package exwm-modeline
|
||||||
:straight (:host github :repo "SqrtMinusOne/exwm-modeline")
|
:straight (:host github :repo "SqrtMinusOne/exwm-modeline")
|
||||||
:after (exwm))
|
:after (exwm))
|
||||||
|
|
||||||
(add-hook 'exwm-init-hook #'exwm-modeline-mode)
|
(add-hook 'exwm-init-hook #'exwm-modeline-mode)
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** EXWM Echo Area Bar
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp :tangle (if (member this-system system-category-1) "~/.emacs.d/init.el" "no")
|
||||||
|
|
||||||
(defun ts/gamemode-status (char)
|
(defun ts/gamemode-status (char)
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((status (shell-command-to-string "gamemoded -s")))
|
(let ((status (shell-command-to-string "gamemoded -s")))
|
||||||
@ -3026,10 +3089,35 @@ Define SPC lead bindings for EXWM.
|
|||||||
(propertize perc-str 'face '(:foreground "green"))
|
(propertize perc-str 'face '(:foreground "green"))
|
||||||
(propertize perc-str 'face '(:foreground "red")))))
|
(propertize perc-str 'face '(:foreground "red")))))
|
||||||
|
|
||||||
|
(defun ts/volume-percent (thresh)
|
||||||
|
(interactive)
|
||||||
|
(let* ((vol-cmd (shell-command-to-string "pactl list sinks | grep -A 7 'Name: alsa_output.usb-AudioQuest_inc._AudioQuest_DragonFly-00.analog-stereo' | tail -n 1"))
|
||||||
|
(mute-cmd (shell-command-to-string "pactl list sinks | grep -A 6 'Name: alsa_output.usb-AudioQuest_inc._AudioQuest_DragonFly-00.analog-stereo' | tail -n 1"))
|
||||||
|
(vol-str (concat (nth 4 (split-string vol-cmd)) "%"))
|
||||||
|
(mute-str (nth 1 (split-string mute-cmd))))
|
||||||
|
(if (string= mute-str "no")
|
||||||
|
(propertize vol-str 'face '(:foreground "green"))
|
||||||
|
(propertize vol-str 'face '(:foreground "red")))))
|
||||||
|
|
||||||
|
(defun ts/mouse-charging-status (char)
|
||||||
|
(interactive)
|
||||||
|
(let ((status (shell-command-to-string "cat /sys/class/power_supply/hidpp_battery_*/uevent | grep POWER_SUPPLY_STATUS | tail -n1")))
|
||||||
|
(if (string-match "Discharging" status)
|
||||||
|
(propertize char 'face '(:foreground "red"))
|
||||||
|
(propertize char 'face '(:foreground "green")))))
|
||||||
|
|
||||||
|
(defun ts/mouse-voltage (thresh)
|
||||||
|
(interactive)
|
||||||
|
(let* ((volt-cmd (shell-command-to-string "cat /sys/class/power_supply/hidpp_battery_*/uevent | grep POWER_SUPPLY_VOLTAGE"))
|
||||||
|
(volt-str (format "%smV" (substring (nth 1 (split-string volt-cmd "=")) 0 4)))
|
||||||
|
(volt-num (string-to-number volt-str)))
|
||||||
|
(if (> volt-num thresh)
|
||||||
|
(propertize volt-str 'face '(:foreground "green"))
|
||||||
|
(propertize volt-str 'face '(:foreground "red")))))
|
||||||
|
|
||||||
(defun ts/white (str)
|
(defun ts/white (str)
|
||||||
(interactive)
|
(interactive)
|
||||||
(propertize str 'face '(:foreground "white")))
|
(propertize str 'face '(:foreground "white")))
|
||||||
|
|
||||||
(use-package minibuffer-line
|
(use-package minibuffer-line
|
||||||
:straight (:host github :repo "starr-dusT/minibuffer-line")
|
:straight (:host github :repo "starr-dusT/minibuffer-line")
|
||||||
:config
|
:config
|
||||||
@ -3037,26 +3125,10 @@ Define SPC lead bindings for EXWM.
|
|||||||
(setq minibuffer-line-format
|
(setq minibuffer-line-format
|
||||||
'((:eval (ts/white "閭 ")) (:eval (ts/cpu-percent 60)) (:eval (ts/white " | "))
|
'((:eval (ts/white "閭 ")) (:eval (ts/cpu-percent 60)) (:eval (ts/white " | "))
|
||||||
(:eval (ts/white " ")) (:eval (ts/mem-percent 60)) (:eval (ts/white " | "))
|
(:eval (ts/white " ")) (:eval (ts/mem-percent 60)) (:eval (ts/white " | "))
|
||||||
(:eval (ts/gamemode-status "G")) (:eval (ts/white " | "))
|
(:eval (ts/white " ")) (:eval (ts/volume-percent 70)) (:eval (ts/white " | "))
|
||||||
|
(:eval (ts/mouse-charging-status " ")) (:eval (ts/mouse-voltage 3700)) (:eval (ts/white " | "))
|
||||||
|
(:eval (ts/gamemode-status "")) (:eval (ts/white " | "))
|
||||||
(:eval (propertize (format-time-string " %a %d/%m/%y %H:%M:%S") 'face '(:foreground "white")))))
|
(:eval (propertize (format-time-string " %a %d/%m/%y %H:%M:%S") 'face '(:foreground "white")))))
|
||||||
(minibuffer-line-mode))
|
(minibuffer-line-mode))
|
||||||
|
|
||||||
|
|
||||||
(use-package exwm-mff
|
|
||||||
:straight (:host github :repo "starr-dusT/exwm-mff")
|
|
||||||
:config
|
|
||||||
(exwm-mff-mode +1))
|
|
||||||
|
|
||||||
;;; Set location for external packages.
|
|
||||||
(add-to-list 'load-path "~/.emacs.d")
|
|
||||||
(require 'framemove)
|
|
||||||
(setq framemove-hook-into-windmove t)
|
|
||||||
|
|
||||||
(exwm-enable)
|
|
||||||
|
|
||||||
(tab-bar-mode)
|
|
||||||
(add-hook 'after-make-frame-functions (lambda (frame) (set-frame-parameter frame 'tab-bar-lines 0)))
|
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
echo "$(date)"
|
|
27
.config/scratch/scripts/update-screens
Executable file
27
.config/scratch/scripts/update-screens
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Get current IP address
|
||||||
|
addr=$(ip -4 addr show $1 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||||
|
# The the relevant number (X) 192.168.X.YYY
|
||||||
|
num=($(echo "$addr" | tr '.' '\n'))
|
||||||
|
# Based on number set xrandr
|
||||||
|
case ${num[2]} in
|
||||||
|
2)
|
||||||
|
# Primary monitor on left
|
||||||
|
xrandr --output DP-4 --primary \
|
||||||
|
--mode 2560x1440 --rate 144 \
|
||||||
|
--pos 0x0 --rotate normal \
|
||||||
|
--output HDMI-0 \
|
||||||
|
--mode 2560x1440 --rate 144 \
|
||||||
|
--pos 2660x0 --rotate normal
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
# Primary monitor on right
|
||||||
|
xrandr --output HDMI-0 \
|
||||||
|
--mode 2560x1440 --rate 144 \
|
||||||
|
--pos 0x0 --rotate normal \
|
||||||
|
--output DP-4 --primary \
|
||||||
|
--mode 2560x1440 --rate 144 \
|
||||||
|
--pos 2660x0 --rotate normal
|
||||||
|
;;
|
||||||
|
esac
|
3
.xinitrc
3
.xinitrc
@ -1,5 +1,6 @@
|
|||||||
#exec dbus-launch xmonad
|
#exec dbus-launch xmonad
|
||||||
#exec qtile start
|
#exec qtile start
|
||||||
#picom &
|
#picom &
|
||||||
exec dbus-launch --exit-with-session emacs -mm --debug-init
|
exec dbus-launch --exit-with-session emacs -mm --eval "(exwm-enable)"
|
||||||
|
#--debug-init
|
||||||
#exec stumpwm start
|
#exec stumpwm start
|
||||||
|
Loading…
x
Reference in New Issue
Block a user