diff options
-rw-r--r-- | .config/emacs/init.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--exwm.el | 22 | ||||
-rw-r--r-- | .config/emacs/modules/bd--modeline.el | 8 | ||||
-rw-r--r-- | .config/emacs/modules/bd--tabs.el | 20 | ||||
-rw-r--r-- | .config/eww/assets/raven.png | bin | 0 -> 5178 bytes | |||
-rw-r--r-- | .config/eww/eww.scss | 102 | ||||
-rw-r--r-- | .config/eww/eww.yuck | 18 | ||||
-rw-r--r-- | .config/eww/pollers.yuck | 12 | ||||
-rwxr-xr-x | .config/eww/scripts/getvol | 9 | ||||
-rwxr-xr-x | .config/eww/scripts/update_workspaces | 34 | ||||
-rw-r--r-- | .config/eww/widgets.yuck | 82 | ||||
-rw-r--r-- | .config/guix/modules/services/emacs.scm | 5 | ||||
-rw-r--r-- | .config/guix/modules/services/xorg.scm | 2 |
13 files changed, 278 insertions, 38 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el index c46441a..ed97088 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -113,8 +113,8 @@ (require 'bd--notes) (require 'bd--emms) (require 'bd--modeline) -(require 'bd--themes) (require 'bd--exwm) +(require 'bd--themes) ;;; init.el ends here diff --git a/.config/emacs/modules/bd--exwm.el b/.config/emacs/modules/bd--exwm.el index 6ab7c10..6542241 100644 --- a/.config/emacs/modules/bd--exwm.el +++ b/.config/emacs/modules/bd--exwm.el @@ -9,7 +9,7 @@ (require 'exwm-randr) (setopt exwm-randr-workspace-monitor-plist '(0 "HDMI-1" 1 "eDP-1") - exwm-workspace-number 2) + exwm-workspace-number 10) (add-hook 'exwm-randr-screen-change-hook (lambda () (start-process-shell-command @@ -97,7 +97,9 @@ that buffer." (use-package exwm-outer-gaps :defer 1 :config - (exwm-outer-gaps-mode 1)) + (setopt exwm-outer-gaps-mode 1 + exwm-outer-gaps-width 10) + (exwm-outer-gaps-apply)) (use-package server :defer 1 @@ -108,21 +110,5 @@ that buffer." (setopt tab-bar-select-tab-modifiers '(super)) -(defvar new-mode-line nil) -(defun set-new-mode-line () - (setq new-mode-line - (replace-regexp-in-string - "%" "%%" - (format "[%s] [%s]" - (shell-command-to-string "/home/bdunahu/.local/bin/mail-string 2>/dev/null") - (shell-command-to-string "/home/bdunahu/.local/bin/t1-string 2>/dev/null"))))) - -(defvar-local bd/external-mode-line - '(:eval (when new-mode-line - new-mode-line))) - -(run-with-timer t 30 #'set-new-mode-line) -(add-to-list 'global-mode-string bd/external-mode-line) - (provide 'bd--exwm) ;;; bd--exwm.el ends here diff --git a/.config/emacs/modules/bd--modeline.el b/.config/emacs/modules/bd--modeline.el index 7fc4892..2b38459 100644 --- a/.config/emacs/modules/bd--modeline.el +++ b/.config/emacs/modules/bd--modeline.el @@ -39,6 +39,11 @@ 'help-echo "mouse-1: Project menu" 'local-map project-mode-line-map)))))) +(defvar-local bd/global-mode-string + '(:eval (when (mode-line-window-selected-p) + global-mode-string)) + "Displays the global mode string only on the current window.") + (column-number-mode 1) (setopt mode-line-position-column-line-format '("%l:%c") mode-line-percent-position nil) @@ -63,6 +68,7 @@ (dolist (construct '(bd/buffer-identification-mode-line bd/project-mode-line bd/vc-mode-line + bd/global-mode-string bd/line-position bd/modeline-window-dedicated)) (put construct 'risky-local-variable t)) @@ -84,6 +90,8 @@ mode-line-mule-info mode-line-modified mode-line-front-space + bd/global-mode-string + mode-line-front-space )) diff --git a/.config/emacs/modules/bd--tabs.el b/.config/emacs/modules/bd--tabs.el index 3ab660e..320acae 100644 --- a/.config/emacs/modules/bd--tabs.el +++ b/.config/emacs/modules/bd--tabs.el @@ -3,21 +3,6 @@ ;;; Code: -(use-package time - :demand t - :init - (display-time) - :config - (setopt display-time-format " [%m/%d %H:%M] " - display-time-default-load-average nil)) - -(use-package battery - :demand t - :init - (display-battery-mode) - :config - (setopt battery-update-interval 90)) - (use-package tab-bar :demand t :config @@ -40,15 +25,14 @@ (tab-bar-mode) (tab-bar-history-mode) (setopt tab-bar-tab-name-function #'bd/tab-bar-name-function - tab-bar-show t + tab-bar-show nil tab-bar-select-restore-windows nil ;; remove useless gui elements tab-bar-format '(tab-bar-format-tabs - tab-bar-format-align-right - tab-bar-format-global) + tab-bar-format-align-right) tab-bar-close-button-show nil tab-bar-auto-width-max nil diff --git a/.config/eww/assets/raven.png b/.config/eww/assets/raven.png Binary files differnew file mode 100644 index 0000000..6366d8a --- /dev/null +++ b/.config/eww/assets/raven.png diff --git a/.config/eww/eww.scss b/.config/eww/eww.scss new file mode 100644 index 0000000..57568aa --- /dev/null +++ b/.config/eww/eww.scss @@ -0,0 +1,102 @@ +* +{ + all: unset; +} + +/* separator */ + +.sepbar +{ + color: #D9E0EE; + font-family: Iosevka; + font-size: 12px; + margin-right: 5px; + margin-left: 5px; +} + +/* bar */ +.bar +{ + background-color: rgba(#090011, 0.48); +} + +/* time*/ +.time-cpu-mem +{ + margin-right: 15px; +} +.time-label +{ + color: #91d7e3; + font-family: Iosevka; + font-size: 12px; +} + +/* mem cpu */ +.vol +{ + color: #6434ff; + background-color: rgba(#232323, 1.0); + border-radius: 0px; + margin-right: 6px; +} +.mem +{ + color: #ed8dff; + background-color: rgba(#232323, 1.0); + border-radius: 0px; +} +.cpu +{ + color: #606060; + background-color: rgba(#232323, 1.0); + border-radius: 0px; + margin-right: 6px; +} +.cpu-and-mem +{ + background-color: #181926; + border-radius: 0px; + margin-right: 0px; +} + +/* workspaces */ + +.active +{ + color: #ed8dff; +} + +.workspaces +{ + padding-top: 5px; + font-size: 12px; +} + +.mail +{ + color: #ed8dff; + font-family: Iosevka; + font-size: 12px; +} + +.t1 +{ + color: #c6a0f6; + font-family: Iosevka; + font-size: 12px; +} + +.battery +{ + color: #a0a0a0; + font-family: Iosevka; + font-size: 12px; +} + + +.icon +{ + margin-left: -600px; + color: #7dc4e4; +} diff --git a/.config/eww/eww.yuck b/.config/eww/eww.yuck new file mode 100644 index 0000000..f5011b6 --- /dev/null +++ b/.config/eww/eww.yuck @@ -0,0 +1,18 @@ +(include "pollers.yuck") +(include "widgets.yuck") + +(defwindow bar + :monitor 0 + :windowtype "dock" + :geometry (geometry :x "0%" + :y "0%" + :width "100%" + :height "25px" + :anchor "top center") + :reserve (struts :side "top" :distance "2.4%") + (bar)) + +;; Local Variables: +;; mode: scheme +;; compile-command: "eww daemon --restart; eww open bar" +;; End: diff --git a/.config/eww/pollers.yuck b/.config/eww/pollers.yuck new file mode 100644 index 0000000..bb5d521 --- /dev/null +++ b/.config/eww/pollers.yuck @@ -0,0 +1,12 @@ +(defpoll volume :interval "2s" "scripts/getvol") +(defpoll time :interval "30s" "date '+%H:%M'") +(defpoll date :interval "30s" "date '+%b %d'") +(defpoll ws :interval "0.1s" "scripts/update_workspaces") +(defpoll mail :interval "60s" "$HOME/.local/bin/mail-string") +(defpoll t1 :interval "60s" "$HOME/.local/bin/t1-string") +(defpoll batperc :interval "60s" "echo \"$(cat /sys/class/power_supply/BAT0/capacity)%\"") + +;; Local Variables: +;; mode: scheme +;; compile-command: "eww daemon --restart; eww open bar" +;; End: diff --git a/.config/eww/scripts/getvol b/.config/eww/scripts/getvol new file mode 100755 index 0000000..9fbe60f --- /dev/null +++ b/.config/eww/scripts/getvol @@ -0,0 +1,9 @@ +#!/bin/sh + +RUNNING_SINK=$(pactl list sinks | awk ' + /^Sink #/ {sink=$2} + /State: RUNNING/ {print sink} +' | head -n1) + +pactl list sinks | grep -A 20 "^Sink $RUNNING_SINK" | grep '^[[:space:]]Volume:' | \ + head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' diff --git a/.config/eww/scripts/update_workspaces b/.config/eww/scripts/update_workspaces new file mode 100755 index 0000000..4fb1b1c --- /dev/null +++ b/.config/eww/scripts/update_workspaces @@ -0,0 +1,34 @@ +#!/bin/sh + +gib_workspace_names() { + wmctrl -d \ + | awk '{ print $1 " " $2 " " $9 }' \ + | grep -v NSP +} + +gib_workspace_yuck() { + buffered="" + gib_workspace_names | while read -r id active name; do + name="${name#*_}" + if [ "$active" == '*' ]; then + active_class="active" + else + active_class="inactive" + fi + + if wmctrl -l | grep --regexp '.*\s\+'"$id"'\s\+.*' >/dev/null; then + button_class="occupied" + button_name="●" + else + button_class="empty" + button_name="○" + fi + buffered+="(button :class \"$button_class $active_class\" :onclick \"wmctrl -s $id\" \"$button_name\")" + echo -n "$buffered" + buffered="" + done +} + +box_attrs=':orientation "h" :class "workspaces" :space-evenly false :halign "center" :valign "center" :vexpand false :spacing 8 ' + +echo "(box $box_attrs $(gib_workspace_yuck))" diff --git a/.config/eww/widgets.yuck b/.config/eww/widgets.yuck new file mode 100644 index 0000000..2459550 --- /dev/null +++ b/.config/eww/widgets.yuck @@ -0,0 +1,82 @@ +(defwidget bar [] + (box :class "bar" + :orientation "h" + (iconwidget) + (workspaces) + (power-time-cpu-mem))) + +(defwidget power-time-cpu-mem [] + (box :class "time-cpu-mem" + :halign "end" + :valign "center" + :space-evenly "false" + :orientation "h" + (cpu-and-mem) + (sep) + (mailwidget) + (sep) + (t1widget) + (sep) + (batterywidget) + (sep) + (label :text "${date}, " + :class "time-label" + :halign "end" + :valign "center" + :tooltip "time") + (label :text time + :class "time-label" + :halign "end" + :valign "center" + :tooltip "time"))) + +(defwidget cpu-and-mem [] + (box :class "cpu-and-mem" + :orientation "h" + :halign "end" + :valign "center" + :space-evenly "false" + (circular-progress :class "vol" + :value volume + :thickness 6) + (circular-progress :class "cpu" + :value {EWW_CPU.avg} + :thickness 6) + (circular-progress :class "mem" + :value {EWW_RAM.used_mem_perc} + :thickness 6))) + +(defwidget batterywidget [] + (label + :class "battery" + :text batperc)) + +(defwidget t1widget [] + (label + :class "t1" + :text "${t1}")) + +(defwidget mailwidget [] + (label + :class "mail" + :text "${mail}")) + +(defwidget iconwidget [] + (image + :path "assets/raven.png" + :class "icon" + :image-height 20 + :preserve-aspect-ratio true)) + +(defwidget workspaces [] + (literal :content ws)) + +(defwidget sep [] + (box :orientation "h" + :valign "center" + (label :class "sepbar" :text "|"))) + +;; Local Variables: +;; mode: scheme +;; compile-command: "eww daemon --restart; eww open bar" +;; End: diff --git a/.config/guix/modules/services/emacs.scm b/.config/guix/modules/services/emacs.scm index fa70880..14898a7 100644 --- a/.config/guix/modules/services/emacs.scm +++ b/.config/guix/modules/services/emacs.scm @@ -23,7 +23,8 @@ python-xyz machine-learning mail - lisp) + lisp + xdisorg) (define (bd-emacs-package-list config) (list @@ -55,6 +56,8 @@ aspell aspell-dict-en + wmctrl ;; for exwm + perl-image-exiftool ;; for emms ccls ;; for eglot diff --git a/.config/guix/modules/services/xorg.scm b/.config/guix/modules/services/xorg.scm index 13cf11a..065540b 100644 --- a/.config/guix/modules/services/xorg.scm +++ b/.config/guix/modules/services/xorg.scm @@ -67,6 +67,8 @@ xset s 600 touchpad-defaults xrandr-toggle xkeyboard-auto & +eww daemon +eww open bar exec emacs -mm")) (".config/gtk-2.0/settings.ini" ,(plain-file "settings.ini" " |