diff options
| -rw-r--r-- | .config/emacs/archive/if_i_use_emacs_keybinds.el | 22 | ||||
| -rw-r--r-- | .config/emacs/archive/misc.el | 42 | ||||
| -rw-r--r-- | .config/emacs/init.el | 143 | ||||
| -rw-r--r-- | .config/sway/config | 222 | ||||
| -rwxr-xr-x | scripts/lock | 2 | ||||
| -rwxr-xr-x | scripts/project | 12 | ||||
| -rwxr-xr-x | scripts/sleep_computer | 4 | ||||
| -rwxr-xr-x | scripts/startup | 4 | ||||
| -rwxr-xr-x | scripts/sysinfo | 2 |
9 files changed, 319 insertions, 134 deletions
diff --git a/.config/emacs/archive/if_i_use_emacs_keybinds.el b/.config/emacs/archive/if_i_use_emacs_keybinds.el new file mode 100644 index 0000000..647b7bc --- /dev/null +++ b/.config/emacs/archive/if_i_use_emacs_keybinds.el @@ -0,0 +1,22 @@ +;; mwim +(use-package mwim + :bind (("C-a" . mwim-beginning) + ("C-e" . mwim-end-of-line))) + +;; expand keybind +(use-package expand-region + :bind("C-=" . er/expand-region)) + +;; multiple cursors +(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 + ("<return>" . nil))) + +;; delete marked text when typing start +(use-package delsel + :ensure nil + :hook (after-init . delete-selection-mode)) diff --git a/.config/emacs/archive/misc.el b/.config/emacs/archive/misc.el new file mode 100644 index 0000000..07323b6 --- /dev/null +++ b/.config/emacs/archive/misc.el @@ -0,0 +1,42 @@ +;; Custom "in-line" text object +(evil-define-text-object evil-inner-line (count &optional beg end type) + "Select the current line excluding leading/trailing whitespace." + (let* ((line-start (line-beginning-position)) + (line-end (line-end-position)) + (text (buffer-substring-no-properties line-start line-end)) + (nonspace-start (string-match-p "\\S-" text)) + (nonspace-end (or (save-match-data + (string-match-p "\\S-\\s-*\\'" text)) + 0))) + (evil-range (+ line-start nonspace-start) + (+ line-start nonspace-end) + 'exclusive))) +(define-key evil-inner-text-objects-map "l" 'evil-inner-line) + +;; icons +(use-package nerd-icons) +(use-package nerd-icons-dired + :hook + (dired-mode . nerd-icons-dired-mode)) +(use-package nerd-icons-completion + :after marginalia + :config + (nerd-icons-completion-mode) + (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) +(use-package nerd-icons-corfu + :after corfu + :config + (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)) + +;; == typst modes +(use-package typst-ts-mode + :vc (:url "https://codeberg.org/meow_king/typst-ts-mode" + :rev :newest)) + +(with-eval-after-load 'lsp-mode + (add-to-list 'lsp-language-id-configuration + '(typst-ts-mode . "typst")) + (lsp-register-client + (make-lsp-client :new-connection (lsp-stdio-connection "tinymist") + :activation-fn (lsp-activate-on "typst") + :server-id 'theme-check))) diff --git a/.config/emacs/init.el b/.config/emacs/init.el index e279d89..c295d20 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -109,33 +109,13 @@ ;; electric pairs ;; (electric-pair-mode +1) -;; mwim -(use-package mwim - :bind (("C-a" . mwim-beginning) - ("C-e" . mwim-end-of-line))) +;; find other file +(global-set-key (kbd "C-c f") 'ff-find-other-file) ;; better commenting (use-package evil-nerd-commenter :bind ("M-;" . evilnc-comment-or-uncomment-lines)) -;; expand keybind -(use-package expand-region - :bind("C-=" . er/expand-region)) - -;; multiple cursors -(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 - ("<return>" . nil))) - -;; delete marked text when typing start -(use-package delsel - :ensure nil - :hook (after-init . delete-selection-mode)) - ;; == dired (use-package dired :ensure nil @@ -183,21 +163,6 @@ :config (evil-collection-init)) -;; Custom "in-line" text object -(evil-define-text-object evil-inner-line (count &optional beg end type) - "Select the current line excluding leading/trailing whitespace." - (let* ((line-start (line-beginning-position)) - (line-end (line-end-position)) - (text (buffer-substring-no-properties line-start line-end)) - (nonspace-start (string-match-p "\\S-" text)) - (nonspace-end (or (save-match-data - (string-match-p "\\S-\\s-*\\'" text)) - 0))) - (evil-range (+ line-start nonspace-start) - (+ line-start nonspace-end) - 'exclusive))) -(define-key evil-inner-text-objects-map "l" 'evil-inner-line) - (use-package evil-paste-indent :vc (:url "https://github.com/Schievel1/evil-paste-indent" :rev :newest) @@ -205,15 +170,16 @@ ;; == style ;; theme +(use-package doom-themes + :demand t + :config + (load-theme 'doom-one)) + ;; (use-package dracula-theme ;; :demand t ;; :config ;; (load-theme 'dracula) ;; (set-face-attribute 'show-paren-match nil :background "dark violet" :foreground "black")) -;; (use-package doom-themes -;; :demand t -;; :config -;; (load-theme 'doom-tokyo-night)) ;; (use-package ef-themes ;; :demand t ;; :config @@ -224,7 +190,7 @@ ;; (setq catppuccin-flavor 'mocha) ;; (load-theme 'catppuccin t)) -(load-theme `modus-vivendi) +;; (load-theme `modus-vivendi) ;; (use-package spacious-padding ;; :config @@ -232,35 +198,20 @@ ;; (setq spacious-padding-widths (plist-put spacious-padding-widths :right-divider-width 10)) ;; (spacious-padding-mode)) -(set-face-attribute 'mode-line nil - :box nil - :foreground "#9fefff" - :background "black") -(set-face-attribute 'mode-line-inactive nil - :box nil - :foreground "#5e8891" - :background "black") +;; (set-face-attribute 'mode-line nil +;; :box nil +;; :foreground "#9fefff" +;; :background "black") +;; (set-face-attribute 'mode-line-inactive nil +;; :box nil +;; :foreground "#5e8891" +;; :background "black") -(use-package doom-modeline - :config - (setq doom-modeline-modal nil - doom-modeline-height 0) - (doom-modeline-mode)) - -;; icons -(use-package nerd-icons) -(use-package nerd-icons-dired - :hook - (dired-mode . nerd-icons-dired-mode)) -(use-package nerd-icons-completion - :after marginalia - :config - (nerd-icons-completion-mode) - (add-hook 'marginalia-mode-hook #'nerd-icons-completion-marginalia-setup)) -(use-package nerd-icons-corfu - :after corfu - :config - (add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter)) +;; (use-package doom-modeline +;; :config +;; (setq doom-modeline-modal nil +;; doom-modeline-height 0) +;; (doom-modeline-mode)) ;; rainbow mode (use-package rainbow-mode @@ -327,9 +278,6 @@ (("C-c g" . projectile-ripgrep) ("C-c v" . projectile-find-file))) -;; find other file -(global-set-key (kbd "C-c f") 'ff-find-other-file) - ;; == magit (use-package transient) (use-package magit @@ -341,6 +289,10 @@ ;; == flycheck (use-package flycheck) +;; == editorconfig +(editorconfig-mode 1) +(add-hook 'prog-mode 'editorconfig-apply) + ;; == lsp (use-package lsp-mode :custom @@ -470,17 +422,6 @@ (use-package yasnippet-snippets :after yasnippet) -;; == treesitter -(setq treesit-language-source-alist - '((cpp "https://github.com/tree-sitter/tree-sitter-cpp") - (c "https://github.com/tree-sitter/tree-sitter-c") - (typst "https://github.com/uben0/tree-sitter-typst"))) -(dolist (lang treesit-language-source-alist) - (unless (treesit-language-available-p (car lang)) - (treesit-install-language-grammar (car lang)))) -(setq treesit-load-name-override-list - '((c++ "libtree-sitter-cpp"))) - ;; == development environment (defun my/replace-master-vterm () (interactive) @@ -564,14 +505,6 @@ (add-hook 'vterm-mode-hook #'my-vterm-setup) (add-hook 'vterm-copy-mode-hook #'my-vterm-copy-mode-evil-setup)) -;; (use-package persp-mode -;; :bind (("C-x k" . persp-kill-buffer*) -;; ("C-x C-p" . persp-switch)) -;; :custom -;; (persp-mode-prefix-key (kbd "C-c M-p")) -;; :init -;; (persp-mode)) - ;; == languages ;; === c mode @@ -584,29 +517,3 @@ (c-set-offset 'case-label '+) (add-to-list 'c-offsets-alist '(arglist-close . c-lineup-close-paren))) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) - -;; == org mode -(use-package org - :ensure nil - :config - (setq org-startup-folded t - org-src-preserve-indentation t - org-src-tab-acts-natively t - org-edit-src-content-indentation t)) - -;; == typst modes -(use-package typst-ts-mode - :vc (:url "https://codeberg.org/meow_king/typst-ts-mode" - :rev :newest)) - -(with-eval-after-load 'lsp-mode - (add-to-list 'lsp-language-id-configuration - '(typst-ts-mode . "typst")) - (lsp-register-client - (make-lsp-client :new-connection (lsp-stdio-connection "tinymist") - :activation-fn (lsp-activate-on "typst") - :server-id 'theme-check))) - -;; == random functionality -;; erc -(setq erc-join-buffer 'window) diff --git a/.config/sway/config b/.config/sway/config new file mode 100644 index 0000000..34e4671 --- /dev/null +++ b/.config/sway/config @@ -0,0 +1,222 @@ +### Variables + +set $mod Mod4 + +# home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l + +set $term alacritty +set $menu swenu-run +set $browser firefox + +# init +exec startup + +### Output configuration +# +# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) +# output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs + +### Idle configuration +exec swayidle -w \ + timeout 150 'sleep_computer' \ + +### Input configuration +input type:touchpad { + natural_scroll enabled +} + +input type:keyboard { + xkb_options ctrl:nocaps + repeat_delay 300 + repeat_rate 30 +} + +### Style +default_border pixel + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+a exec $term + + bindsym $mod+i exec sysinfo + + # Kill focused window + bindsym $mod+d kill + + # Start your launcher + bindsym $mod+Return exec $menu + + # Start your browser + bindsym $mod+w exec $browser + + # Start screen locker + bindsym $mod+Ctrl+l exec lock + + # Drag floating windows by holding down $mod and left mouse button. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c 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' +# +# 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 + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + 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 + # 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+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + # bindsym $mod+s layout stacking + # bindsym $mod+w layout tabbed + # 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+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + # bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +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 $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + + # Special keys to adjust brightness via brightnessctl + bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ + + # Special key to take a screenshot with grim + bindsym Print exec grim + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + status_command while true; do echo $(TERM="" sysinfo | tr '\n' ' '); sleep 1; done + + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } +} + +include @sysconfdir@/sway/config.d/* diff --git a/scripts/lock b/scripts/lock new file mode 100755 index 0000000..efb238e --- /dev/null +++ b/scripts/lock @@ -0,0 +1,2 @@ +#!/bin/sh +swaylock -fc 000000 diff --git a/scripts/project b/scripts/project deleted file mode 100755 index e306dfa..0000000 --- a/scripts/project +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ "$TERM" = "linux" ]; then - exit 1 -fi - -dir="$(find ~/Dev ~/Dev/CPP/comp-org/ -mindepth 2 -maxdepth 2 -type d | fzf)" -if [ -z "$dir" ]; then - return -else - cd "$dir" -fi diff --git a/scripts/sleep_computer b/scripts/sleep_computer new file mode 100755 index 0000000..3dca0e3 --- /dev/null +++ b/scripts/sleep_computer @@ -0,0 +1,4 @@ +#!/bin/sh +echo "slept" >> $HOME/.sleeplog +lock +echo "mem" > /sys/power/state diff --git a/scripts/startup b/scripts/startup index e79419e..f09130e 100755 --- a/scripts/startup +++ b/scripts/startup @@ -1,6 +1,4 @@ #!/bin/sh -hyprpaper & -hypridle & pipewire & +dunst & restartemacs >/dev/null & -dunst diff --git a/scripts/sysinfo b/scripts/sysinfo index 1daf4c7..90bac9a 100755 --- a/scripts/sysinfo +++ b/scripts/sysinfo @@ -35,7 +35,7 @@ else echo "\ Time: $(date "+%I:%M:%S") $(get_volume) -Brightness: ${brightness}% +Brightness: ${brightness} ${batstate}: ${batperc}% $(network_info)" fi |
