From 0ddd38e5fa62949d1161d06c7c70ee9ff135ebdb Mon Sep 17 00:00:00 2001 From: JackJ30 Date: Tue, 10 Sep 2024 21:32:18 -0400 Subject: emacs lsp and hyprland --- .config/emacs/Emacs.org | 126 ++++++++++++++++++++++++++++++++++++++++++ .config/emacs/init.el | 107 +++++++++++++++++++++++++++++++++++ .config/hypr/#hyprland.conf# | 65 ---------------------- .config/hypr/#hyprpaper.conf# | 2 - .config/hypr/#monitors.conf# | 26 --------- .config/hypr/binds.conf~ | 80 --------------------------- .config/hypr/hyprland.conf~ | 62 --------------------- .config/hypr/hyprpaper.conf~ | 2 - .config/hypr/monitors.conf~ | 26 --------- .config/hypr/style.conf | 1 + .config/hypr/style.conf~ | 61 -------------------- .config/waybar/config | 2 +- 12 files changed, 235 insertions(+), 325 deletions(-) delete mode 100644 .config/hypr/#hyprland.conf# delete mode 100644 .config/hypr/#hyprpaper.conf# delete mode 100644 .config/hypr/#monitors.conf# delete mode 100644 .config/hypr/binds.conf~ delete mode 100644 .config/hypr/hyprland.conf~ delete mode 100644 .config/hypr/hyprpaper.conf~ delete mode 100644 .config/hypr/monitors.conf~ delete mode 100644 .config/hypr/style.conf~ (limited to '.config') diff --git a/.config/emacs/Emacs.org b/.config/emacs/Emacs.org index b372a51..04d1965 100644 --- a/.config/emacs/Emacs.org +++ b/.config/emacs/Emacs.org @@ -306,6 +306,7 @@ :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) aw-scope 'frame)) + (elpaca-wait) #+end_src @@ -355,3 +356,128 @@ best git frontend ever (global-set-key (kbd "M-n") #'move-text-down) #+end_src + +* Development + +#+begin_src emacs-lisp + (use-package lsp-mode + :init + (setq lsp-keymap-prefix "C-c l" + lsp-headerline-breadcrumb-enable nil + lsp-headerline-breadcrumb-icons-enable nil + lsp-keep-workspace-alive nil + lsp-enable-snippet nil + lsp-lens-enable nil) + :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) + (c-mode . lsp) + (c++-mode . lsp) + (python-mode . lsp-deferred) + ;; if you want which-key integration + (lsp-mode . lsp-enable-which-key-integration)) + :commands lsp) + + + (use-package consult-lsp + :after lsp) + + (defun my-c-mode-common-hook () + ;; my customizations for all of c-mode, c++-mode, objc-mode, java-mode + (c-set-offset 'substatement-open 0) + ;; other customizations can go here + + (setq c++-tab-always-indent t) + (setq c-basic-offset 4) ;; Default is 2 + (setq c-indent-level 4) ;; Default is 2 + + (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60)) + (setq tab-width 4) + (setq indent-tabs-mode t) ; use spaces only if nil + ) + + (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) + + (use-package lsp-ui + :after lsp + :diminish lsp-lens-mode + :config + (setq lsp-ui-sideline-update-mode 'point) + (setq lsp-ui-sideline-show-diagnostics t) + (setq lsp-ui-sideline-ignore-duplicate t)) + + (use-package hydra) + + (use-package lsp-treemacs + :ensure t + :commands lsp-treemacs-errors-list) + + ;; company + (use-package company + :ensure t + :diminish + :config + (setq company-show-numbers t + company-minimum-prefix-length 1 + company-idle-delay 0 + company-backends + '((company-files ; files & directory + company-keywords ; keywords + company-capf ; what is this? + company-yasnippet) + (company-abbrev company-dabbrev))) + (global-company-mode +1)) + + (use-package clang-format) + (use-package clang-format+) + + + (use-package company-box + :ensure t + :diminish + :after company + :hook (company-mode . company-box-mode)) + + ;; flycheck + (use-package flycheck + :diminish flycheck-mode + :config + (setq flycheck-error-message-buffer " *Flycheck error messages*") + (setq-default flycheck-emacs-lisp-load-path 'inherit) + (global-flycheck-mode 1)) + + (use-package flycheck-pos-tip + :ensure t + :after flycheck + :config + (flycheck-pos-tip-mode)) + + (use-package ccls + :ensure t + :config + :hook ((c-mode c++-mode objc-mode cuda-mode) . + (lambda () (require 'ccls) (lsp))) + (setq ccls-executable "/usr/local/bin/ccls") + (setq ccls-initialization-options + '(:index (:comments 2) :completion (:detailedLabel t)))) + + (use-package srefactor + :ensure t + :config + (semantic-mode 1) + (define-key c-mode-map (kbd "M-RET") 'srefactor-refactor-at-point) + (define-key c++-mode-map (kbd "M-RET") 'srefactor-refactor-at-point)) + + +#+end_src + +** multiple cursors + +#+begin_src emacs-lisp + (use-package multiple-cursors + :bind (:map global-map + ("C->" . 'mc/mark-next-like-this) + ("C-<" . 'mc/mark-previous-like-this) + ("C-c C->" . 'mc/mark-all-like-this) + :map mc/keymap + ("" . nil))) +#+end_src + diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 27a5a2e..7ca42e3 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -295,6 +295,7 @@ :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) aw-scope 'frame)) +(elpaca-wait) (use-package tree-sitter :diminish tree-sitter-mode @@ -306,6 +307,12 @@ :diminish highlight-quoted-mode :hook (emacs-lisp-mode . highlight-quoted-mode)) +(use-package transient) +(use-package magit + :bind (("C-x g" . magit-status)) + :custom + (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) + (global-unset-key (kbd "C-z")) (global-set-key (kbd "") #'keyboard-escape-quit) (global-set-key (kbd "C-/") #'undo-tree-undo) @@ -313,3 +320,103 @@ (global-set-key (kbd "C-c v") #'avy-goto-char-timer) (global-set-key (kbd "M-p") #'move-text-up) (global-set-key (kbd "M-n") #'move-text-down) + +(use-package lsp-mode + :init + (setq lsp-keymap-prefix "C-c l" + lsp-headerline-breadcrumb-enable nil + lsp-headerline-breadcrumb-icons-enable nil + lsp-keep-workspace-alive nil + lsp-enable-snippet nil + lsp-lens-enable nil) + :hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) + (c-mode . lsp) + (c++-mode . lsp) + (python-mode . lsp-deferred) + ;; if you want which-key integration + (lsp-mode . lsp-enable-which-key-integration)) + :commands lsp) + + +(use-package consult-lsp + :after lsp) + +(defun my-c-mode-common-hook () + ;; my customizations for all of c-mode, c++-mode, objc-mode, java-mode + (c-set-offset 'substatement-open 0) + ;; other customizations can go here + + (setq c++-tab-always-indent t) + (setq c-basic-offset 4) ;; Default is 2 + (setq c-indent-level 4) ;; Default is 2 + + (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60)) + (setq tab-width 4) + (setq indent-tabs-mode t) ; use spaces only if nil + ) + +(add-hook 'c-mode-common-hook 'my-c-mode-common-hook) + +(use-package lsp-ui + :after lsp + :diminish lsp-lens-mode + :config + (setq lsp-ui-sideline-update-mode 'point) + (setq lsp-ui-sideline-show-diagnostics t) + (setq lsp-ui-sideline-ignore-duplicate t)) + +(use-package hydra) + +(use-package lsp-treemacs + :ensure t + :commands lsp-treemacs-errors-list) + +;; company +(use-package company + :ensure t + :config + (setq company-show-numbers t + company-minimum-prefix-length 1 + company-idle-delay 0.5 + company-backends + '((company-files ; files & directory + company-keywords ; keywords + company-capf ; what is this? + company-yasnippet) + (company-abbrev company-dabbrev))) + (global-company-mode +1)) + +(use-package company-box + :ensure t + :after company + :hook (company-mode . company-box-mode)) + +;; flycheck +(use-package flycheck + :diminish flycheck-mode + :config + (setq flycheck-error-message-buffer " *Flycheck error messages*") + (setq-default flycheck-emacs-lisp-load-path 'inherit) + (global-flycheck-mode 1)) + +(use-package flycheck-pos-tip + :ensure t + :after flycheck + :config + (flycheck-pos-tip-mode)) + +(use-package ccls + :ensure t + :config + :hook ((c-mode c++-mode objc-mode cuda-mode) . + (lambda () (require 'ccls) (lsp))) + (setq ccls-executable "/usr/local/bin/ccls") + (setq ccls-initialization-options + '(:index (:comments 2) :completion (:detailedLabel t)))) + +(use-package srefactor + :ensure t + :config + (semantic-mode 1) + (define-key c-mode-map (kbd "M-RET") 'srefactor-refactor-at-point) + (define-key c++-mode-map (kbd "M-RET") 'srefactor-refactor-at-point)) diff --git a/.config/hypr/#hyprland.conf# b/.config/hypr/#hyprland.conf# deleted file mode 100644 index 5df0c2c..0000000 --- a/.config/hypr/#hyprland.conf# +++ /dev/null @@ -1,65 +0,0 @@ -source=binds.conf -source=monitors.conf -source=style.conf -source=windowrules.conf - -# Slow app launch fix -exec-once = systemctl --user import-environment & -exec-once = hash dbus-update-activation-environment 2>/dev/null & -exec-once = dbus-update-activation-environment --systemd & -#exec-once = xdg-desktop-portal-hyprland & - -exec-once = hyprctl setcursor HyprBibataModernClassicSVG 24 -exec-once = hyprctl dispatch workspace 1 -exec-once = xrandr --output XWAYLAND0 --primary -exec-once = gsettings set org.gnome.desktop.interface cursor-theme "Bibata-Modern-Classic" -exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" -exec-once = gsettings set org.gnome.desktop.interface gtk-theme Adwaita -exec-once = hyprpaper -exec-once = waybar - -# Some default env vars. -env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that -env = XDG_SESSION_TYPE,wayland -env = XDG_SESSION_DESKTOP,Hyprland -env = XCURSOR_THEME,"Bibata-Modern-Classic" -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_THEME,HyprBibataModernClassicSVG -env = HYPRCURSOR_SIZE,64 -env = LIBVA_DRIVER_NAME,nvidia -env = GBM_BACKEND,nvidia-drm -env = __GLX_VENDOR_LIBRARY_NAME,nvidia - -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ -input { - kb_layout = us - kb_variant = - kb_model = - kb_options = ctrl:nocaps - kb_rules = - - follow_mouse = 1 - - repeat_delay = 300 - repeat_rate = 30 - - touchpad { - natural_scroll = no - } - - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. -} - -general { - layout = dwindle - #layout = master - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false -} - -windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ -windowrulev2 = noanim,class:^(xwaylandvideobridge)$ -windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ -windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ -windowrulev2 = noblur,class:^(xwaylandvideobridge)$ diff --git a/.config/hypr/#hyprpaper.conf# b/.config/hypr/#hyprpaper.conf# deleted file mode 100644 index 60a08a1..0000000 --- a/.config/hypr/#hyprpaper.conf# +++ /dev/null @@ -1,2 +0,0 @@ -preload = /home/nahtaiv3l/wallpapers/current_wallpaper/ -wallpaper = ,/home/nahtaiv3l/wallpapers/current_wallpaper diff --git a/.config/hypr/#monitors.conf# b/.config/hypr/#monitors.conf# deleted file mode 100644 index 9fd450f..0000000 --- a/.config/hypr/#monitors.conf# +++ /dev/null @@ -1,26 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ -#monitor=DP-1,2560x1440@144,0x0,auto -monitor=eDP1,highres,auto,1 -#monitor=DP-2,1920x1080@60,2560x0,auto - -# FOR HYPRSOME (MULTIPLE MONITORS) -workspace=1,monitor:eDP-1 -workspace=2,monitor:eDP-1 -workspace=3,monitor:eDP-1 -workspace=4,monitor:eDP-1 -workspace=5,monitor:eDP-1 -workspace=6,monitor:eDP-1 -workspace=7,monitor:eDP-1 -workspace=8,monitor:eDP-1 -workspace=9,monitor:eDP-1 -workspace=10,monitor:eDP-1 - -workspace=11,monitor:eDP-2 -workspace=12,monitor:eDP-2 -workspace=13,monitor:eDP-2 -workspace=14,monitor:eDP-2 -workspace=15,monitor:eDP-2 -workspace=17,monitor:eDP-2 -workspace=18,monitor:eDP-2 -workspace=19,monitor:eDP-2 -workspace=10,monitor:eDP-2 diff --git a/.config/hypr/binds.conf~ b/.config/hypr/binds.conf~ deleted file mode 100644 index 0973750..0000000 --- a/.config/hypr/binds.conf~ +++ /dev/null @@ -1,80 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Keywords/ for more -$mainMod = SUPER - -# Set programs that you use -$terminal = alacritty -$fileManager = kitty xplr -$browser = waterfox -$menu = wmenu-run - -# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, RETURN, exec, $menu -bind = $mainMod, A, exec, $terminal -bind = $mainMod, D, killactive, -bind = $mainMod CTRL SHIFT, D, exec, hyprctl kill -bind = $mainMod, S, exec, hyprshot -m region -bind = , PRINT, exec, hyprshot -m output -bind = $mainMod, PRINT, exec, hyprshot -m window -bind = $mainMod, M, exit, -bind = $mainMod, V, togglefloating, -bind = $mainMod, P, exec, hyprpicker -a -bind = $mainMod, L, exec, hyprlock -bind = $mainMod, R, togglesplit, # dwindle -bind = $mainMod, F, fullscreen -bind = $mainMod, G, fullscreenstate, 0 3 -bind = $mainMod, W, exec, $browser -bind = $mainMod, X, exec, $fileManager -bind = $mainMod, K, exec, kitty btm -bind = $mainMod SHIFT, B, exec, /bin/sh -c "pidof waybar && pkill -x waybar || waybar" -bind = $mainMod SHIFT, Q, exit, -bind = $mainMod SHIFT, RETURN, layoutmsg, swapwithmaster - -# Move focus with mainMod + arrow keys -bind = $mainMod, left, movefocus, lp -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d - -bind = $mainMod SHIFT,left ,movewindow, l -bind = $mainMod SHIFT,right ,movewindow, r -bind = $mainMod SHIFT,up ,movewindow, u -bind = $mainMod SHIFT,down ,movewindow, d - -# screenshot + crop keybind -bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png" - -# Example special workspace (scratchpad) COMMENTED OUT FOR SCREENSHOT KEYBIND -# bind = $mainMod, S, togglespecialworkspace, magic -# bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -# Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow - -# switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 -bind = $mainMod, 7, workspace, 7 -bind = $mainMod, 8, workspace, 8 -bind = $mainMod, 9, workspace, 9 -bind = $mainMod, 0, workspace, 10 - -# move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 -bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 -bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 -bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 -bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 -bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 -bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 -bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 -bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 -bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 diff --git a/.config/hypr/hyprland.conf~ b/.config/hypr/hyprland.conf~ deleted file mode 100644 index 672ef72..0000000 --- a/.config/hypr/hyprland.conf~ +++ /dev/null @@ -1,62 +0,0 @@ -source=binds.conf -source=monitors.conf -source=style.conf -source=windowrules.conf - -# Slow app launch fix -exec-once = systemctl --user import-environment & -exec-once = hash dbus-update-activation-environment 2>/dev/null & -exec-once = dbus-update-activation-environment --systemd & -exec-once = startup -#exec-once = xdg-desktop-portal-hyprland & - -exec-once = hyprctl dispatch workspace 1 - -exec-once = gsettings set org.gnome.desktop.interface cursor-theme "Bibata-Modern-Classic" -exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" -exec-once = gsettings set org.gnome.desktop.interface gtk-theme Adwaita -exec-once = hyprpaper -exec-once = waybar - -# Some default env vars. -env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that -env = XDG_SESSION_TYPE,wayland -env = XDG_SESSION_DESKTOP,Hyprland -env = XCURSOR_THEME,"Bibata-Modern-Classic" -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_THEME,HyprBibataModernClassicSVG - -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ -input { - kb_layout = us - kb_variant = - kb_model = - kb_options = ctrl:nocaps - kb_rules = - - follow_mouse = 1 - - repeat_delay = 300 - repeat_rate = 30 - - touchpad { - natural_scroll = yes - disable_while_typing = true - } - - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. -} - -general { - #layout = dwindle - layout = master - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false -} - -windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ -windowrulev2 = noanim,class:^(xwaylandvideobridge)$ -windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ -windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ -windowrulev2 = noblur,class:^(xwaylandvideobridge)$ diff --git a/.config/hypr/hyprpaper.conf~ b/.config/hypr/hyprpaper.conf~ deleted file mode 100644 index 2612cc8..0000000 --- a/.config/hypr/hyprpaper.conf~ +++ /dev/null @@ -1,2 +0,0 @@ -preload = /home/nahtaiv3l/wallpapers/current_wallpaper -wallpaper = ,/home/nahtaiv3l/wallpapers/current_wallpaper diff --git a/.config/hypr/monitors.conf~ b/.config/hypr/monitors.conf~ deleted file mode 100644 index 9fd450f..0000000 --- a/.config/hypr/monitors.conf~ +++ /dev/null @@ -1,26 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ -#monitor=DP-1,2560x1440@144,0x0,auto -monitor=eDP1,highres,auto,1 -#monitor=DP-2,1920x1080@60,2560x0,auto - -# FOR HYPRSOME (MULTIPLE MONITORS) -workspace=1,monitor:eDP-1 -workspace=2,monitor:eDP-1 -workspace=3,monitor:eDP-1 -workspace=4,monitor:eDP-1 -workspace=5,monitor:eDP-1 -workspace=6,monitor:eDP-1 -workspace=7,monitor:eDP-1 -workspace=8,monitor:eDP-1 -workspace=9,monitor:eDP-1 -workspace=10,monitor:eDP-1 - -workspace=11,monitor:eDP-2 -workspace=12,monitor:eDP-2 -workspace=13,monitor:eDP-2 -workspace=14,monitor:eDP-2 -workspace=15,monitor:eDP-2 -workspace=17,monitor:eDP-2 -workspace=18,monitor:eDP-2 -workspace=19,monitor:eDP-2 -workspace=10,monitor:eDP-2 diff --git a/.config/hypr/style.conf b/.config/hypr/style.conf index e818cbf..db0c6de 100644 --- a/.config/hypr/style.conf +++ b/.config/hypr/style.conf @@ -47,6 +47,7 @@ master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = master new_on_top = true + orientation = right mfact = 0.5 } diff --git a/.config/hypr/style.conf~ b/.config/hypr/style.conf~ deleted file mode 100644 index ceef549..0000000 --- a/.config/hypr/style.conf~ +++ /dev/null @@ -1,61 +0,0 @@ -general { - gaps_in = 3 - gaps_out = 25 - - border_size = 2 - col.active_border = rgba(EEABC4aa) - col.inactive_border = rgba(595959aa) -} - -decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 4 - - blur { - enabled = true - size = 2 - passes = 3 - } - - drop_shadow = no - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) -} - -animations { - enabled = yes - - bezier = defaultBezier, 0.05, 0.9, 0.1, 1.05 - - animation = windows, 1, 7, defaultBezier - animation = windowsOut, 1, 7, default, popin 80% - animation = border, 1, 10, default - animation = borderangle, 1, 8, default - animation = fade, 1, 3, default - animation = workspaces, 1, 6, defaultBezier -} - -dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this -} - -master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_status = master - new_on_top = true - mfact = 0.5 -} - -gestures { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = on -} - -misc { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers -} diff --git a/.config/waybar/config b/.config/waybar/config index 532109d..f14f700 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -39,7 +39,7 @@ "interval": 1, }, "clock": { - // "timezone": "America/New_York", + "timezone": "America/New_York", "format": "{:%r}", "tooltip-format": "{:%d %B %Y}", "interval": 1, -- cgit v1.2.3