diff options
-rw-r--r-- | .config/emacs/init.el | 77 | ||||
-rw-r--r-- | .config/hypr/hyprland.conf | 282 | ||||
-rw-r--r-- | .config/sway/config | 239 | ||||
-rw-r--r-- | .config/sway/hermes/autostart.config | 2 | ||||
-rw-r--r-- | .config/sway/hermes/keyboard.config | 10 | ||||
-rw-r--r-- | .config/sway/zeus/autostart.config | 1 | ||||
-rw-r--r-- | .config/sway/zeus/keyboard.config | 6 | ||||
-rw-r--r-- | .config/sway/zeus/monitors.config | 4 | ||||
-rw-r--r-- | .config/waybar/config | 55 | ||||
-rw-r--r-- | .config/waybar/style.css | 89 | ||||
-rw-r--r-- | .scripts/notmuch-hook.sh.gpg | bin | 586 -> 581 bytes | |||
-rw-r--r-- | .stow-local-ignore | 12 | ||||
-rw-r--r-- | guix/alexios.scm (renamed from guix/hermes.scm) | 4 | ||||
-rw-r--r-- | guix/constantine.scm (renamed from guix/zeus.scm) | 4 | ||||
-rw-r--r-- | guix/home.scm | 34 | ||||
-rw-r--r-- | guix/system-create.scm | 18 |
16 files changed, 445 insertions, 392 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 4b9c8a6..8213892 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -36,7 +36,7 @@ (setf copyright-names-regexp (format "%s <%s>" user-full-name user-mail-address)) -(defvar is-zeus (string= (system-name) "zeus")) +(defvar is-constantine (string= (system-name) "constantine")) (defvar is-hermes (string= (system-name) "hermes")) (defvar is-phone (string= (system-name) "localhost")) (defvar is-uranus (string= (system-name) "uranus")) @@ -45,7 +45,8 @@ (custom-set-faces (if is-hermes '(default ((t (:inherit nil :height 130 :family "Fira Mono")))) '(default ((t (:inherit nil :height 160 :family "Fira Mono"))))) - '(org-modern-symbol ((t (:inherit t :family "Iosevka Aile"))))) + '(org-modern-symbol ((t (:inherit t :family "Iosevka")))) + '(italic ((t (:inherit t :family "Iosevka"))))) ;; Autoinsert (auto-insert-mode 1) @@ -278,7 +279,7 @@ (use-package emacs :ensure nil :config - (if is-zeus + (if is-constantine (display-battery-mode 0) (display-battery-mode 1)) @@ -441,21 +442,22 @@ modus-themes-variable-pitch-ui nil modus-themes-custom-auto-reload t modus-themes-disable-other-themes t - modus-themes-prompts '(italic) + modus-themes-prompts '(semibold italic) modus-themes-completions '((matches . (underline)) - (selection . (semibold italic text-also underline)))) + (selection . (semibold text-also underline)))) ;; Palette overrides - (setf modus-themes-common-palette-overrides + (setf modus-vivendi-palette-overrides '((fg-line-number-active cyan-intense) ;; (bg-main "#1d2021") ;;grubox-hard ;; (bg-main "#191919") ;; 1337 ;; (bg-main "#1d1f21") ;; tomorrow night - (bg-main "#151515") ;; jazz + ;; (bg-main "#151515") ;; jazz ;; (bg-main "#0C0C0C") ;; random black + ;; (bg-main "#1b1d1e") ;; Iosevka + ;; (bg-main "#0D0E16") ;; Acario + ;; (bg-main "#1c1e1f") ;; molokai ;; (bg-main "#171717") ;; badger - ;; (overline-heading-1 gold) - (fg-heading-1 red-warmer) - ;; (bg-heading-1 bg-blue-nuanced) + (fg-heading-1 red) (bg-line-number-inactive unspecified) (bg-line-number-active unspecified) (bg-paren-match bg-magenta-intense) @@ -466,11 +468,7 @@ (string olive) (border-mode-line-active unspecified) (border-mode-line-inactive unspecified) - (bg-mode-line-active "#433F4f") ;; subtle lavender - (bg-mode-line-inactive "#1D1D1D") - ;; Set fg from badger theme - (fg-mode-line-active "#F6F3E8") - (bg-hl-line bg-dim) + (bg-mode-line-active bg-lavender) (cursor indigo) (prose-todo green-intense) (prose-done bg-term-white) @@ -505,10 +503,8 @@ :config (defun vc-git--commit-hash-at-point () "Return commit hash at point." - (let ((hash (thing-at-point 'word t))) - (and (stringp hash) - (string-match-p "^[0-9a-f]\\{7,40\\}$" hash) - hash))) + (let ((hash (log-view-current-entry nil t))) + (cadr hash))) (defun vc-git-reset-to-commit-at-point (&optional hash) "Reset the current branch to the commit at point in the vc log buffer." @@ -566,6 +562,12 @@ vc-prefix-map ("b d" . 'vc-git-delete-branch))) +(use-package magit + :defer t + :config + (setf magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1) + :bind ("C-x g" . magit)) + (when (or is-phone is-uranus) (use-package corfu-terminal)) @@ -743,7 +745,7 @@ (setf sudo-edit-local-method "sudo")) ;; My packages -(when (or is-zeus is-hermes) +(when (or is-constantine is-hermes) (use-package yeetube :init (define-prefix-command 'thanos/yeetube-map) :vc t @@ -869,7 +871,7 @@ :after org-gnosis :config (setf org-gnosis-ui-custom-theme - '((bg . "#1e1e1e") + '((bg . "#1b1d1e") (bg-alt . "#282a36") (fg . "#ffffff") (fg-alt . "#c6daff") @@ -914,16 +916,23 @@ torrentfreak piracy) ("https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=sciimmunol" science) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.medscape.com%2Findex%2Flist_13470_0&url_selector=a.title&url_pattern=viewarticle%2F.*&content_selector=div.article__main-content&content_cleanup=&title_cleanup=+-+Index&limit=&format=Atom" medscape med) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.tovima.gr%2Flatest-news%2F&url_selector=a.columns&url_pattern=&content_selector=div.main-content&content_cleanup=div.wrap-facebook%2Cdiv.googlenews&title_cleanup=&limit=&format=Atom" tovima greek news) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Feidiseis-arthra%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-lg-8&content_cleanup=&title_cleanup=&limit=&format=Atom" estia greek news) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Fkentriko-thema%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-md-8&content_cleanup=&title_cleanup=&limit=&format=Atom" estia greek kyrio) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Fapopseis%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-lg-8&content_cleanup=&title_cleanup=&limit=&format=Atom" estia greek opinions) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.reuters.com%2Fbusiness%2Fhealthcare-pharmaceuticals%2F&url_selector=a.basic-card__title__37xHl&url_pattern=&content_selector=div.article-body__wrapper__3IxHM&content_cleanup=svg.link__new-tab-symbol__3T19s%2C+div.toolbar__container__3kIkw%2C+div.article-body__row__dFOPA+article-body__element__2p5pI&title_cleanup=&limit=&format=Atom" reuters med news) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.medscape.com%2Findex%2Flist_13470_0&url_selector=a.title&url_pattern=viewarticle%2F.*&content_selector=div.article__main-content&content_cleanup=&title_cleanup=+-+Index&limit=&format=Atom" + medscape med) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.tovima.gr%2Flatest-news%2F&url_selector=a.columns&url_pattern=&content_selector=div.main-content&content_cleanup=div.wrap-facebook%2Cdiv.googlenews&title_cleanup=&limit=&format=Atom" + tovima greek news) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Feidiseis-arthra%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-lg-8&content_cleanup=&title_cleanup=&limit=&format=Atom" + estia greek news) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Fkentriko-thema%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-md-8&content_cleanup=&title_cleanup=&limit=&format=Atom" + estia greek kyrio) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.estianews.gr%2Fapopseis%2F&url_selector=h3.entry-title&url_pattern=&content_selector=div.col-lg-8&content_cleanup=&title_cleanup=&limit=&format=Atom" + estia greek opinions) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.reuters.com%2Fbusiness%2Fhealthcare-pharmaceuticals%2F&url_selector=a.basic-card__title__37xHl&url_pattern=&content_selector=div.article-body__wrapper__3IxHM&content_cleanup=svg.link__new-tab-symbol__3T19s%2C+div.toolbar__container__3kIkw%2C+div.article-body__row__dFOPA+article-body__element__2p5pI&title_cleanup=&limit=&format=Atom" + reuters med news) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.kathimerini.gr%2Ftag%2Fellinotoyrkika%2F&url_selector=div.media-content&url_pattern=&content_selector=div.p-3&content_cleanup=&title_cleanup=&limit=&format=Atom" + kath greek tk) ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.reuters.com%2Ftechnology%2Fcybersecurity%2F&url_selector=a.media-story-card__headline__tFMEu%2C+a.media-story-card__heading__eqhp9&url_pattern=&content_selector=article.article__container__2MUeZ&content_cleanup=div.info-content__toolbar__3AkHm%2C+svg.link__new-tab-symbol__3T19s%2C+div.article-body__row__dFOPA%2C+div.read-next-tablet-up__container__3MpHN%2C+div.author-bio__multiple-authors__5YGrG%2C+div.article__read-next__Kjxdw&title_cleanup=&limit=&format=Atom" reuters cybersec news) - ("https://annas-blog.org/ -rss.xml" anna piracy) - ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.ethnos.gr%2Ftag%2F842%2Fellhnotoyrkika&url_selector=a.single-title&url_pattern=&content_selector=div.content-section&content_cleanup=div.article-related-posts%2C+div.ReadMore%2C+script&title_cleanup=&limit=&format=Atom" greek ethnos ellinotourkika) + ("https://annas-blog.org/rss.xml" anna piracy) + ("http://localhost/?action=display&bridge=CssSelectorBridge&home_page=https%3A%2F%2Fwww.ethnos.gr%2Ftag%2F842%2Fellhnotoyrkika&url_selector=a.single-title&url_pattern=&content_selector=div.content-section&content_cleanup=div.article-related-posts%2C+div.ReadMore%2C+script&title_cleanup=&limit=&format=Atom" greek ethnos tk) ("https://planet.emacslife.com/atom.xml" emacs emacslife) ("https://localmonero.co/static/rss/the-monero-standard/feed.xml" monero) ("https://devonzuegel.com/feed" devon) @@ -995,7 +1004,7 @@ rss.xml" anna piracy) (setq-default gptel-model "llama3.2:latest") (setq gptel-backend (gptel-make-ollama "Ollama" - :host (if is-zeus "localhost:11434" "zeus:11434") + :host (if is-constantine "localhost:11434" "constantine:11434") :stream t :models '("llama3.2:latest" "dolphin-phi" "dolphin-llama3:latest"))) @@ -1088,12 +1097,14 @@ rss.xml" anna piracy) ;; autosign messages (add-hook 'message-send-hook 'mml-secure-message-sign-pgpmime) +;; Signers +(setf mml-secure-openpgp-signers '("62B758D0F6719938BC09CECA339F736C3A720928")) ;; (use-package yasnippet ;; :ensure nil ;; :config -;; (when is-zeus (add-to-list 'yas-snippet-dirs "~/Dev/guile/guix/etc/snippets/yas"))) +;; (when is-constantine (add-to-list 'yas-snippet-dirs "~/Dev/guile/guix/etc/snippets/yas"))) (use-package emms :ensure t @@ -1283,7 +1294,7 @@ Create a temporary frame to execute BODY, which will then be deleted." (add-variable-watcher 'wallpaper-current #'thanos/wallpaper-watcher) ;; Set wallpaper -(when (or is-zeus is-hermes) +(when (or is-constantine is-hermes) (thanos/wallpaper-startup)) (defvar-keymap thanos/applications-map diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..91e3e22 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,282 @@ + +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/ + +################ +### MONITORS ### +################ + +## Desktop +monitor = DP-1, 2560x1440, 0x0, 1 +monitor = HDMI-A-1, 2560x1440, 2560x0, 1, transform, 1 + +## For everything else +monitor=,preferred,auto,auto + + + +## Programs + +$terminal = emacs +$menu = fuzzel + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +exec-once = nm-applet +exec-once = waybar +exec-once = emacs +# exec-once = waybar & hyprpaper & firefox + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 10 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparencny of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 100% + animation = windowsOut, 1, 1.49, linear, popin 100% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 2.5, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] +# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = slave +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us,gr + kb_variant = + kb_model = + kb_options = grp:win_space_toggle ctrl:nocaps + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, RETURN, exec, emacsclient -c +bind = $mainMod, R, exec, fuzzel +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +bind = $mainMod SHIFT, f, fullscreen, +bind = $mainMod, comma, exec, grimshot save area +bind = $mainMod, l, exec, swaylock + +# Move focus with mainMod + arrow keys +# bind = $mainMod, b, movefocus, l +# bind = $mainMod, f, movefocus, r +bind = $mainMod, p, movefocus, u +bind = $mainMod, n, cyclenext, + +# 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, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +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 + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% +bindel = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% +bindel = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 5%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 5%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
\ No newline at end of file diff --git a/.config/sway/config b/.config/sway/config deleted file mode 100644 index aed1e7f..0000000 --- a/.config/sway/config +++ /dev/null @@ -1,239 +0,0 @@ -## Mod key -set $mod Mod4 - -include ~/.config/sway/$(hostname)/* - -exec emacs -exec waybar - -bindsym $mod+z exec swaylock - -workspace_layout tabbed - -# Workspace switch -bindsym $mod+period workspace back_and_forth - -bindsym $mod+comma exec grimshot save area -bindsym $mod+Shift+comma exec ~/.scripts/grimshot-gnosis-save.sh - -default_border pixel 3 -default_floating_border pixel 3 -gaps inner 5 -gaps outer 0 -bindsym $mod+shift+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 5 -bindsym $mod+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 0 - -# Activate smart borders (always) -smart_borders on -#smart_gaps on - -# Always float certain windows # -#swaymsg -t get_tree | grep app_id - for_window [app_id="pop-up"] floating enable - for_window [app_id="thanos/pass-launcher"] floating enable - for_window [app_id="task_dialog"] floating enable - for_window [app_id="dialog"] floating enable - for_window [app_id="toolbox"] floating enable - for_window [app_id="page-info"] floating enable - for_window [app_id="webconsole"] floating enable - for_window [app_id="mpv"] floating enable - for_window [app_id="mpv"] resize set height 540 - for_window [app_id="mpv"] resize set width 960 - # Inhibit idle on fullscreen - for_window [app_id=".*"] inhibit_idle fullscreen - for_window [class=".*"] inhibit_idle fullscreen - -# Sticky floating windows(sticky enable|disable|toggle) - for_window [app_id="danmufloat"] floating enable - for_window [app_id="danmufloat"] sticky enable - for_window [app_id="danmufloat"] resize set height 540 - for_window [app_id="danmufloat"] resize set width 960 - -# Focus follows mouse -focus_follows_mouse yes - -# set gtk+ theme -set $gnome-schema org.gnome.desktop.interface - -# Window colours: border background text - # client.unfocused #2e3440 #1f222d #888888 - # client.focused_inactive #2e3440 #1f222d #888888 - # client.placeholder #2e3440 #1f222d #888888 - # client.urgent #D08770 #D08770 #ffffff - # client.background #242424 -client.focused #2D2D2D #000000 #ffffff #ffffff #E2DFD0 -client.focused_inactive #0f1212 #0f1212 #ffffff #0f1212 #0f1212 -client.unfocused #1D1D1D #151515 #c6c6c6 #000000 #000000 -client.urgent #0f1212 #FF5555 #F8F8F2 #FF5555 #FF5555 -client.placeholder #000000 #000000 #F8F8F2 #000000 #000000 - -# TODO Direction keys, like Emacs - set $left h - set $down j - set $up k - set $right l - -#----------------------------------# -# Your preferred terminal emulator # -#----------------------------------# - set $term emacsclient -c - -# Control volume,monitor brightness,media players # - bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% - bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% - bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle - bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle - bindsym XF86MonBrightnessUp exec light -A 5 - bindsym XF86MonBrightnessDown exec light -U 5 - bindsym XF86AudioPlay exec playerctl play-pause - bindsym XF86AudioNext exec playerctl next - bindsym XF86AudioPrev exec playerctl previous - -# Key bindings --# - bindsym $mod+Return exec $term - bindsym $mod+Shift+Return exec kitty --class="termfloat" - bindsym $mod+Shift+m exec kitty --class="musicfox" --hold sh -c "musicfox" - bindsym $mod+Shift+d exec kitty --class="danmufloat" --hold sh -c "cd /home/ruixi/Codelearning/go/src/bilibili_live_tui/ && export TERM=xterm-256color && ./main" - - # Kill focused window - bindsym $mod+q kill - - # Start your launcher - bindsym $mod+r exec fuzzel - - # Reload the configuration file - bindsym $mod+Shift+r reload - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - -# Moving around: # - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Emacs - bindsym $mod+p focus left - bindsym $mod+n focus right - # bindsym $mod+Up focus up - # bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right - -# Workspaces: - # Switch to workspace - bindsym $mod+1 workspace number 1 - bindsym $mod+2 workspace number 2 - bindsym $mod+3 workspace number 3 - bindsym $mod+4 workspace number 4 - bindsym $mod+5 workspace number 5 - bindsym $mod+6 workspace number 6 - bindsym $mod+7 workspace number 7 - bindsym $mod+8 workspace number 8 - bindsym $mod+9 workspace number 9 - bindsym $mod+0 workspace number 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number 1 - bindsym $mod+Shift+2 move container to workspace number 2 - bindsym $mod+Shift+3 move container to workspace number 3 - bindsym $mod+Shift+4 move container to workspace number 4 - bindsym $mod+Shift+5 move container to workspace number 5 - bindsym $mod+Shift+6 move container to workspace number 6 - bindsym $mod+Shift+7 move container to workspace number 7 - bindsym $mod+Shift+8 move container to workspace number 8 - bindsym $mod+Shift+9 move container to workspace number 9 - bindsym $mod+Shift+0 move container to workspace number 10 - # move focused container to workspace(follow) - bindsym $mod+Ctrl+1 move container to workspace number 1, workspace 1 - bindsym $mod+Ctrl+2 move container to workspace number 2, workspace 2 - bindsym $mod+Ctrl+3 move container to workspace number 3, workspace 3 - bindsym $mod+Ctrl+4 move container to workspace number 4, workspace 4 - bindsym $mod+Ctrl+5 move container to workspace number 5, workspace 5 - bindsym $mod+Ctrl+6 move container to workspace number 6, workspace 6 - bindsym $mod+Ctrl+7 move container to workspace number 7, workspace 7 - bindsym $mod+Ctrl+8 move container to workspace number 8, workspace 8 - bindsym $mod+Ctrl+9 move container to workspace number 9, workspace 9 - bindsym $mod+Ctrl+0 move container to workspace number 10, workspace 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# Layout stuff: - # You can "split" the current object of your focus with - # $mod+semicolon or $mod+apostrophe, for horizontal and vertical splits - # respectively. - bindsym $mod+semicolon splitv - bindsym $mod+apostrophe splith - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+x layout tabbed - bindsym $mod+w exec emacsclient -e '(thanos/pass-launcher)' - bindsym $mod+e layout toggle split - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+f floating toggle - - # Move focus to the Parent container - # bindsym $mod+p focus parent - # Move focus the child container - bindsym $mod+c focus child - -# Scratchpad: # -## hide | show window(minus is "-" and plus is "+".) -bindsym $mod+minus move scratchpad -bindsym $mod+equal scratchpad show - -#----------------------# -# Resizing containers: # -#----------------------# -#bindsym $mod+r mode "resize" -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $up resize grow height 10px - bindsym $down resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Up resize grow height 10px - bindsym Down resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -## Better to resize window -bindsym Shift+Ctrl+h resize shrink width 5 px or 5 ppt -bindsym Shift+Ctrl+k resize grow height 5 px or 5 ppt -bindsym Shift+Ctrl+j resize shrink height 5 px or 5 ppt -bindsym Shift+Ctrl+l resize grow width 5 px or 5 ppt -bindsym Shift+Ctrl+Left resize shrink width 5 px or 5 ppt -bindsym Shift+Ctrl+Up resize grow height 5 px or 5 ppt -bindsym Shift+Ctrl+Down resize shrink height 5 px or 5 ppt -bindsym Shift+Ctrl+Right resize grow width 5 px or 5 ppt - -exec swayidle -w timeout 960 swaylock before-sleep swaylock
\ No newline at end of file diff --git a/.config/sway/hermes/autostart.config b/.config/sway/hermes/autostart.config deleted file mode 100644 index 3261998..0000000 --- a/.config/sway/hermes/autostart.config +++ /dev/null @@ -1,2 +0,0 @@ - -exec nm-applet
\ No newline at end of file diff --git a/.config/sway/hermes/keyboard.config b/.config/sway/hermes/keyboard.config deleted file mode 100644 index 90f9b1e..0000000 --- a/.config/sway/hermes/keyboard.config +++ /dev/null @@ -1,10 +0,0 @@ - - -## Keyboard -input "type:keyboard" { - xkb_layout us,gr - xkb_options grp:win_space_toggle,ctrl:swapcaps - } - -bindsym F2 exec brightnessctl set +5% -bindsym F1 exec brightnessctl set 5%-
\ No newline at end of file diff --git a/.config/sway/zeus/autostart.config b/.config/sway/zeus/autostart.config deleted file mode 100644 index 8b13789..0000000 --- a/.config/sway/zeus/autostart.config +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.config/sway/zeus/keyboard.config b/.config/sway/zeus/keyboard.config deleted file mode 100644 index 7dbd9e3..0000000 --- a/.config/sway/zeus/keyboard.config +++ /dev/null @@ -1,6 +0,0 @@ - -input "type:keyboard" { - xkb_layout us,gr - xkb_options grp:win_space_toggle - xkb_variant altgr-intl,polytonic -}
\ No newline at end of file diff --git a/.config/sway/zeus/monitors.config b/.config/sway/zeus/monitors.config deleted file mode 100644 index f1bfd44..0000000 --- a/.config/sway/zeus/monitors.config +++ /dev/null @@ -1,4 +0,0 @@ - -## Setup monitors & wallpapers -output DP-2 pos 0 0 res 2560x1440 -output HDMI-A-1 pos 2560 0 res 2560x1440 transform 270
\ No newline at end of file diff --git a/.config/waybar/config b/.config/waybar/config index 5bf708d..2cee81c 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,62 +1,33 @@ -// -*- mode: json -*- +// -*- mode: js-json -*- { "layer": "top", "position": "top", "modules-left": [ - "sway/workspaces", - "custom/right-arrow-dark" + "hyprland/workspaces" ], "modules-center": [ - "custom/left-arrow-dark", - "clock#1", - "custom/left-arrow-light", - "custom/left-arrow-dark", - "clock#2", - "custom/right-arrow-dark", - "custom/right-arrow-light", - "clock#3", - "custom/right-arrow-dark" + "clock#3" ], "modules-right": [ - "custom/left-arrow-dark", "pulseaudio", - "custom/left-arrow-light", - "custom/left-arrow-dark", "memory", - "custom/left-arrow-light", - "custom/left-arrow-dark", "cpu", - "custom/left-arrow-light", - "custom/left-arrow-dark", "battery", - "custom/left-arrow-light", "tray" ], - "custom/left-arrow-dark": { - "format": "", - "tooltip": false - }, - "custom/left-arrow-light": { - "format": "", - "tooltip": false - }, - "custom/right-arrow-dark": { - "format": "", - "tooltip": false + // Modules // + "hyprland/workspaces": { + "format": "{name}", + "active-only": false, + "all-outputs": false, + "show-special": false, + "on-click": "activate", + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1" }, - "custom/right-arrow-light": { - "format": "", - "tooltip": false - }, - - "sway/workspaces": { - "disable-scroll": true, - "format": "{name}" - }, - "clock#1": { "format": "{:%a}", "tooltip": false @@ -66,7 +37,7 @@ "tooltip": false }, "clock#3": { - "format": "{:%y/%m/%d}", + "format": "{:%a %H:%M | %y/%m/%d}", "tooltip": false }, diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 4c6cbf0..c98ace6 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -1,53 +1,92 @@ * { - font-size: 15px; + font-size: 17px; font-family: monospace; } window#waybar { - background: #292b2e; + background: transparent; color: #fdf6e3; } -#custom-right-arrow-dark, -#custom-left-arrow-dark { - color: #1a1a1a; -} -#custom-right-arrow-light, -#custom-left-arrow-light { - color: #292b2e; - background: #1a1a1a; -} - #workspaces, -#clock.1, -#clock.2, -#clock.3, #pulseaudio, #memory, #cpu, #battery, #disk, +#clock.1, +#clock.2, +#clock.3, +#tray { + background: #000000; + border-radius: 20px; /* Adjust the value for more or less rounding */ + margin: 3px; + border: 2px solid; +} + #tray { - background: #1a1a1a; + border-color: transparent; } + +#clock.1, +#clock.2, +#clock.3 { + color: #2fafff; + margin: 3px; + border-radius: 20px; +} + +#clock.2 { + font-size: 20px; + border-color: transparent; + background: transparent; +} + +#workspaces { + border-color: #2fafff; +} #workspaces button { - padding: 0 2px; - color: #fdf6e3; + color: #989898; + box-shadow: none; + text-shadow: none; + padding: 3px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: border-pulse 20s ease-in infinite; + transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); +} + +#workspaces button.active { + color: #338fff; + border-radius: 50%; + background-color: black; + padding-left: 8px; + padding-right: 8px; + animation: border-pulse 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); } + #workspaces button.focused { - color: #268bd2; + color: #d8dee9; } -#workspaces button:hover { - box-shadow: inherit; - text-shadow: inherit; + +#workspaces button.urgent { + color: #11111b; + border-radius: 10px; } + #workspaces button:hover { - background: #1a1a1a; - border: #1a1a1a; - padding: 0 3px; + color: #9CCFD8; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); } + #pulseaudio { color: #268bd2; } diff --git a/.scripts/notmuch-hook.sh.gpg b/.scripts/notmuch-hook.sh.gpg Binary files differindex 69fb5f5..dcc67c5 100644 --- a/.scripts/notmuch-hook.sh.gpg +++ b/.scripts/notmuch-hook.sh.gpg diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..fede922 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,12 @@ + +.git +.gitignore +.gitmodules + +bash-prompt.sh +vimium-options.json + +guix + +README +LICENSE
\ No newline at end of file diff --git a/guix/hermes.scm b/guix/alexios.scm index e2f1a17..a6d28b1 100644 --- a/guix/hermes.scm +++ b/guix/alexios.scm @@ -1,11 +1,11 @@ -(define-module (hermes) +(define-module (alexios) #:use-module (gnu) #:use-module (system-create)) (use-package-modules file-systems) -(system-create #:hostname "hermes" +(system-create #:hostname "alexios" #:filesystem (cons* (file-system (mount-point "/boot/efi") (device (uuid "1F4A-0DF0" diff --git a/guix/zeus.scm b/guix/constantine.scm index 4b248f6..a0674bf 100644 --- a/guix/zeus.scm +++ b/guix/constantine.scm @@ -1,11 +1,11 @@ -(define-module (zeus) +(define-module (constantine) #:use-module (gnu) #:use-module (system-create)) (use-package-modules file-systems) -(system-create #:hostname "zeus" +(system-create #:hostname "constantine" #:filesystem (cons* (file-system (mount-point "/hdd") (device (uuid "b0fddf60-47ff-469f-b135-8f6b58812c99" diff --git a/guix/home.scm b/guix/home.scm index d624e67..c03e0ae 100644 --- a/guix/home.scm +++ b/guix/home.scm @@ -27,20 +27,23 @@ (define thanos/emacs-packages '("emacs-next-pgtk" "emacs-nov-el" "emacs-pdf-tools" "emacs-emms" "emacs-geiser" "emacs-geiser-guile" "emacs-notmuch" "emacs-password-store" - "emacs-debbugs" "emacs-0x0" "emacs-emojify" "emacs-org-present" "emacs-sudo-edit")) + "emacs-debbugs" "emacs-0x0" "emacs-emojify" "emacs-org-present" "emacs-sudo-edit" + "emacs-magit")) (define thanos/python-packages '("python-next" "python-pip" "python-lsp-server" "python-numpy")) (home-environment - (packages (specifications->packages - (append '("perl" "yt-dlp" "torbrowser" "icecat" "sbcl" "notmuch" "hunspell-dict-en" - "gcc-toolchain" "sqlite" "hyfetch" "transmission" "isync" "mpv" - "steam" "signal-desktop" "git" "fuzzel" "alacritty" "password-store" - "curl" "dino" "bind" "nmap" "hunspell" "wtype" "hunspell-dict-en-med" - "hunspell-dict-el" "mlocate" "rsync" "grimshot" "swayidle" "htop" - "net-tools" "gnupg" "texlive" "texlive-collection-latexrecommended") - thanos/emacs-packages thanos/python-packages thanos/fonts-packages))) + (packages + (specifications->packages + (append '("perl" "yt-dlp" "torbrowser" "icecat" "sbcl" "notmuch" "hunspell-dict-en" + "gcc-toolchain" "sqlite" "hyfetch" "transmission" "isync" "mpv" + "steam" "signal-desktop" "git" "fuzzel" "alacritty" "password-store" + "curl" "dino" "bind" "nmap" "hunspell" "wtype" "hunspell-dict-en-med" + "hunspell-dict-el" "mlocate" "rsync" "grimshot" "swayidle" "htop" + "net-tools" "gnupg" "texlive" "texlive-collection-latexrecommended" + "stow") + thanos/emacs-packages thanos/python-packages thanos/fonts-packages))) (services (list (service home-bash-service-type (home-bash-configuration @@ -50,16 +53,11 @@ ("ls" . "ls --color") ("o" . "emacsclient -n") ("weather" . "curl wttr.in") - ("gx" . "guix"))) - (bashrc (list (local-file (format #f "~a/bash-prompt.sh" thanos/dotfiles-path) + ("gx" . "guix") + ("neofetch" . "neowofetch"))) + (bashrc + (list (local-file (format #f "~a/bash-prompt.sh" thanos/dotfiles-path) #:recursive? #f))))) - (service home-dotfiles-service-type - (home-dotfiles-configuration - (directories (list thanos/dotfiles-path)) - (excluded '(".*~" ".*\\.swp" "\\.git" "\\.gitignore" - "vimium-options.json" "README" "LICENSE" ".*\\.scm" "__pycache__" - "bash-prompt.sh")) - (layout 'plain))) (simple-service 'profile-service-type home-environment-variables-service-type '(("VISUAL" . "emacsclient") diff --git a/guix/system-create.scm b/guix/system-create.scm index dac64a0..6102105 100644 --- a/guix/system-create.scm +++ b/guix/system-create.scm @@ -26,7 +26,7 @@ '("sway" "swaylock" "swaylock-effects" "swaybg" "waybar" "gnupg" "pinentry" "font-jetbrains-mono" "docker" "docker-cli" "dbus" "xf86-input-libinput" - "xf86-video-fbdev" "tailscale-bin")) + "xf86-video-fbdev" "tailscale-bin" "virt-manager")) (define* (system-create #:key (system-packages thanos/system-packages) @@ -54,12 +54,14 @@ (comment "Thanos Apollo") (group "users") (home-directory "/home/thanos") - (supplementary-groups '("wheel" "netdev" "audio" "video" "docker" "kvm"))) + (supplementary-groups '("wheel" "netdev" "audio" "video" "docker" "kvm" + "libvirt"))) %base-user-accounts)) (packages - (append (map specification->package system-packages) - %base-packages)) + (append + (map specification->package system-packages) + %base-packages)) (services (append (list @@ -79,11 +81,10 @@ (service block-facebook-hosts-service-type) (simple-service 'add-extra-hosts hosts-service-type - (list (host "192.168.0.100" "zeus" + (list (host "192.168.0.100" "constantine" '()) (host "192.168.0.101" "uranus" '()))) - (service tailscale-service-type) (service transmission-daemon-service-type (transmission-daemon-configuration @@ -128,8 +129,9 @@ (tlp-configuration (cpu-boost-on-ac? #t) (wifi-pwr-on-bat? #t)))) - ;; Services specifics for zeus - (if (string= hostname "zeus") + + ;; Services specifics for constantine + (if (string= hostname "constantine") (list (service oci-container-service-type (list |