From f73ad6951c2288203d7ed789dd5445884fa10b68 Mon Sep 17 00:00:00 2001 From: Ezri Brimhall Date: Tue, 23 Apr 2024 11:16:33 -0600 Subject: [PATCH] Further updates for new tycho station display arrangement --- .config/eww/eww.yuck##hostname.tycho | 18 ++++++------- .config/eww/windows.yuck | 18 ++++++++----- .../display-arrangement.conf##hostname.tycho | 12 ++++----- .../swayidle##class.desktop,hostname.tycho | 10 +++++++ .config/sway/workspaces.json##hostname.tycho | 16 ++++++------ .emacs.d/init.el | 7 ++++- .emacs.d/settings.org | 26 ++++++++++++++----- .local/bin/sway-find-workspace | 17 +++++++++--- 8 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 .config/sway/swayidle##class.desktop,hostname.tycho diff --git a/.config/eww/eww.yuck##hostname.tycho b/.config/eww/eww.yuck##hostname.tycho index bbbf7a7..39506e4 100644 --- a/.config/eww/eww.yuck##hostname.tycho +++ b/.config/eww/eww.yuck##hostname.tycho @@ -11,11 +11,11 @@ (include "./windows.yuck") (defwindow leftbar - :monitor 0 + :monitor 1 :geometry (geometry :width "100%" :height "36px" - :anchor "top center"):exclusive - true + :anchor "top center") + :exclusive true :focusable false :stacking "fg" (centerbox :orientation "h" @@ -25,11 +25,11 @@ (tycho-leftbar--right))) (defwindow centerbar - :monitor 1 + :monitor 0 :geometry (geometry :width "100%" :height "26px" - :anchor "top center"):exclusive - true + :anchor "top center") + :exclusive true :focusable false :stacking "fg" (centerbox :orientation "h" @@ -54,12 +54,12 @@ (defwindow network-status - :monitor 0 + :monitor 2 :geometry (geometry :width "200px" :height "0px" - :x "80px" + :x "407px" :y "0px" - :anchor "top left") + :anchor "top right") :exclusive false :focusable false :stacking "overlay" diff --git a/.config/eww/windows.yuck b/.config/eww/windows.yuck index 962055b..a376712 100644 --- a/.config/eww/windows.yuck +++ b/.config/eww/windows.yuck @@ -96,7 +96,8 @@ :space-evenly false :spacing 20 :class "leftbox" - (system-name))) + (clock) + )) (defwidget tycho-leftbar--center [] (box :orientation "h" @@ -104,6 +105,7 @@ :space-evenly false :spacing 20 :class "centerbox" + (system-name) )) (defwidget tycho-leftbar--right [] @@ -121,10 +123,7 @@ :space-evenly false :spacing 20 :class "leftbox" - (clock) - (network) - (vpn-network) - (aggietime-shift) + (sway-workspaces :group "center") (sway-workspace :group "center"))) (defwidget tycho-centerbar--center [] @@ -133,7 +132,7 @@ :space-evenly false :spacing 20 :class "centerbox" - (sway-workspaces :group "center") + (system-name) )) (defwidget tycho-centerbar--right [] @@ -142,6 +141,9 @@ :space-evenly false :spacing 20 :class "rightbox" + (aggietime-shift) + (vpn-network) + (network) (mpris2) (system-memory) (system-cpu-avg) @@ -162,6 +164,7 @@ :space-evenly false :spacing 20 :class "centerbox" + (system-name) )) (defwidget tycho-rightbar--right [] @@ -170,6 +173,7 @@ :space-evenly false :spacing 20 :class "rightbox" - (system-name))) + (clock) + )) diff --git a/.config/sway/display-arrangement.conf##hostname.tycho b/.config/sway/display-arrangement.conf##hostname.tycho index 7ada302..c3c910d 100644 --- a/.config/sway/display-arrangement.conf##hostname.tycho +++ b/.config/sway/display-arrangement.conf##hostname.tycho @@ -2,12 +2,12 @@ # Tycho Station Display Config # ### ### -set $leftdisplay DP-1 -set $centerdisplay DP-2 -set $rightdisplay DP-3 +set $leftdisplay "HP Inc. HP Z27n G2 6CM0151FHY" +set $centerdisplay "HP Inc. HP Z27n G2 6CM0151FLX" +set $rightdisplay "HP Inc. HP Z27n G2 6CM0151FD4" output { - $leftdisplay pos 0 0 mode 1920x1080 transform 270 - $centerdisplay pos 1080 384 mode 2560x1440 scale 1.25 - $rightdisplay pos 3128 0 mode 2560x1440 scale 1.25 transform 270 + $leftdisplay pos 0 0 mode 2560x1440 transform 270 + $centerdisplay pos 1440 510 mode 2560x1440 transform 0 + $rightdisplay pos 4000 30 mode 2560x1440 transform 90 } \ No newline at end of file diff --git a/.config/sway/swayidle##class.desktop,hostname.tycho b/.config/sway/swayidle##class.desktop,hostname.tycho new file mode 100644 index 0000000..1d5fadc --- /dev/null +++ b/.config/sway/swayidle##class.desktop,hostname.tycho @@ -0,0 +1,10 @@ +# -*-conf-*- + +#timeout 10 'pgrep swaylock &> /dev/null && swaymsg "output * power off"' resume 'pgrep swaylock &> /dev/null && swaymsg "output * power on" && gpg-connect-agent UPDATESTARTUPTTY /bye' +#timeout 15 'pgrep swaylock &> /dev/null && pkill -u 1000 -SIGSTOP electron' resume 'pgrep swaylock &> /dev/null && pkill -u 1000 -SIGCONT electron' +timeout 120 'pgrep swaylock &> /dev/null && systemctl suspend' +lock ~/.local/bin/screenlock +before-sleep 'loginctl lock-session' +unlock 'pkill -SIGUSR1 swaylock' +idlehint 600 + diff --git a/.config/sway/workspaces.json##hostname.tycho b/.config/sway/workspaces.json##hostname.tycho index 063df29..729b3eb 100644 --- a/.config/sway/workspaces.json##hostname.tycho +++ b/.config/sway/workspaces.json##hostname.tycho @@ -2,9 +2,9 @@ "default_context": "work", "display_ordering": ["left", "center", "right"], "display_layout": { - "left": "DP-1", - "right": "DP-3", - "center": "DP-2" + "left": "DP-5", + "right": "DP-7", + "center": "DP-4" }, "contexts": { "work": { @@ -18,14 +18,14 @@ { "index": 4, "name": "project", - "exec": "firefox-beta", + "exec": "firefox", "args": ["--new-window"], "program_name": "firefox" }, { "index": 3, "name": "documentation", - "exec": "firefox-beta", + "exec": "firefox", "args": ["--new-window"], "environ": {}, "program_name": "firefox" @@ -61,14 +61,14 @@ { "index": 8, "name": "internet", - "exec": "firefox-beta", + "exec": "firefox", "args": ["--new-window"], "program_name": "firefox" }, { "index": 9, "name": "project", - "exec": "firefox-beta", + "exec": "firefox", "args": ["--new-window"], "program_name": "firefox" }, @@ -133,7 +133,7 @@ { "index": 19, "name": "project", - "exec": "firefox-beta", + "exec": "firefox", "args": ["--new-window"], "program_name": "firefox" }, diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 459fab7..ab1de92 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -43,7 +43,12 @@ '(mouse-autoselect-window t) '(package-selected-packages '(kotlin-mode magit counsel doom-modeline doom-themes use-package)) - '(tab-width 2)) + '(tab-width 2) + '(vterm-eval-cmds + '(("find-file" find-file) + ("message" message) + ("vterm-clear-scrollback" vterm-clear-scrollback) + ("find-file-other-window" find-file-other-window)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/.emacs.d/settings.org b/.emacs.d/settings.org index 96d02c0..f516632 100644 --- a/.emacs.d/settings.org +++ b/.emacs.d/settings.org @@ -312,7 +312,7 @@ Indent using tabs, render with tab-width of 2. (tab-line-mode nil))) (global-tab-line-mode t) - + (add-hook 'after-make-frame-functions 'my-tab-config) #+END_SRC @@ -385,7 +385,10 @@ Indent using tabs, render with tab-width of 2. #+BEGIN_SRC emacs-lisp (add-to-list 'auto-mode-alist '("\\.yuck\\'" . conf-unix-mode)) #+END_SRC - +** Webdev +#+BEGIN_SRC emacs-lisp + (add-to-list 'auto-mode-alist '("\\.tsx\\'" . typescript-mode)) +#+END_SRC * Markdown mode ** Auto Text Wrap #+BEGIN_SRC emacs-lisp @@ -556,12 +559,22 @@ After installing the ~rust-analyzer~ program, the following can be used: (set-face-background 'mmm-default-submode-face nil))) #+END_SRC *** Web Stuff -**** typescript-mode +**** Typescript #+BEGIN_SRC emacs-lisp ;; TODO: Update to tree-sitter in Emacs 29 - (use-package typescript-mode - :ensure t) - (setq typescript-indent-level 2) + (setq major-mode-remap-alist + '((typescript-mode . typescript-ts-mode) + (python-mode . python-ts-mode) + (js2-mode . js-ts-mode) + (json-mode . json-ts-mode))) + + (add-to-list 'auto-mode-alist '("\\.tsx\\'" . tsx-ts-mode)) + + (add-hook 'tsx-ts-mode-hook #'lsp) + (add-hook 'tsx-ts-mode-hook #'setup-tide-mode) + + (add-hook 'typescript-ts-mode-hook #'lsp) + (add-hook 'typescript-ts-mode-hook #'setup-tide-mode) #+END_SRC **** TIDE #+BEGIN_SRC emacs-lisp @@ -595,7 +608,6 @@ After installing the ~rust-analyzer~ program, the following can be used: :mode (("\\.scss\\'" . web-mode) ("\\.css\\'" . web-mode) ("\\.jsx\\'" . web-mode) - ("\\.tsx\\'" . web-mode) ("\\.html\\'" . web-mode)) :commands web-mode) #+END_SRC diff --git a/.local/bin/sway-find-workspace b/.local/bin/sway-find-workspace index b6148d5..69be005 100755 --- a/.local/bin/sway-find-workspace +++ b/.local/bin/sway-find-workspace @@ -3,7 +3,8 @@ output_sets=() # Get output ordering -for output in $(jq <~/.config/sway/workspaces.json '.display_layout[.display_ordering.[]] | strings' -r); do + +for output in $(swaymsg -t get_outputs | jq '[ (.[] | select(.active) | pick(.name, .rect)) ] | sort_by(.rect.x) | .[] | .name' -r); do output_sets+=$output done @@ -38,15 +39,24 @@ function get_ws { ws_set=$1 ws_target=$2 echo "Searching for workspace $ws_target on output $ws_set" >&2 + while ((ws_target > workspace_counts[ws_set + 1])); do + echo "Workspace $ws_target does not exist on output $ws_set, moving to the next one" >&2 + ((ws_set = (ws_set + 1) % ${#output_sets[@]})) + if [[ $ws_set == $1 ]]; then + echo "No more outputs to check, staying on the current workspace" >&2 + echo $current_workspace + return + fi + done workspace=$(($(get_previous_output_workspaces $ws_set) + ws_target)) - echo "Staying on this output would be workspace $workspace" >&2 + echo "Looking at workspace $workspace (located on output $ws_target)" >&2 if [[ $workspace == $current_workspace ]]; then echo "We're already on the target workspace, so we should look to change outputs" >&2 initial_ws_set=$ws_set while :; do ws_set=$(((ws_set + 1) % ${#output_sets[@]})) echo "Checking output $ws_set" >&2 - if ((ws_target < workspace_counts[ws_set + 1])); then + if ((ws_target <= workspace_counts[ws_set + 1])); then workspace=$(($(get_previous_output_workspaces $ws_set) + ws_target)) break elif ((ws_set == initial_ws_set)); then @@ -57,6 +67,7 @@ function get_ws { fi done fi + echo "Found on output $ws_set" >&2 echo $workspace }