From cee9eb00e06e992250a55f8278c26d4448316da1 Mon Sep 17 00:00:00 2001 From: Rose Date: Mon, 25 Aug 2025 18:20:35 +0200 Subject: Initial commit --- .config/fish/config.fish | 10 ++ .config/foot/foot.ini | 1 + .config/kitty/quick-access-terminal.conf | 7 ++ .config/mpv/mpv.conf | 10 ++ .config/niri/config.kdl | 187 +++++++++++++++++++++++++++ .config/profanity/profrc | 0 .config/rc/rc.conf | 1 + .config/rc/runlevels/gui/autodarkmode | 4 + .config/rc/runlevels/gui/footserver | 5 + .config/rc/runlevels/gui/kittenbar | 4 + .config/rc/runlevels/gui/pipewire | 11 ++ .config/rc/runlevels/gui/pipewire-pulse | 12 ++ .config/rc/runlevels/gui/swaybg | 5 + .config/rc/runlevels/gui/wireplumber | 11 ++ .emacs | 209 +++++++++++++++++++++++++++++++ 15 files changed, 477 insertions(+) create mode 100644 .config/fish/config.fish create mode 100644 .config/foot/foot.ini create mode 100644 .config/kitty/quick-access-terminal.conf create mode 100644 .config/mpv/mpv.conf create mode 100644 .config/niri/config.kdl create mode 100644 .config/profanity/profrc create mode 100644 .config/rc/rc.conf create mode 100755 .config/rc/runlevels/gui/autodarkmode create mode 100755 .config/rc/runlevels/gui/footserver create mode 100755 .config/rc/runlevels/gui/kittenbar create mode 100755 .config/rc/runlevels/gui/pipewire create mode 100755 .config/rc/runlevels/gui/pipewire-pulse create mode 100755 .config/rc/runlevels/gui/swaybg create mode 100755 .config/rc/runlevels/gui/wireplumber create mode 100644 .emacs diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..46bff2b --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,10 @@ +if status is-interactive + alias w='dbus-run-session startxfce4 --wayland niri --session' + alias vpn_down='sudo /etc/init.d/wg-quick.vpn stop' + alias vpn_up='sudo /etc/init.d/wg-quick.vpn start' + alias vpn_recon='sudo /etc/inti.d/wg-quick.vpn restart' + #alias w='dbus-run-session startplasma-wayland' + #alias w='dbus-run-session sway' + # Commands to run in interactive sessions can go here +end +abbr -a --position anywhere --set-cursor='%' -- run '2> /dev/null > /dev/null & disown' diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini new file mode 100644 index 0000000..4c32974 --- /dev/null +++ b/.config/foot/foot.ini @@ -0,0 +1 @@ +font=OG Courier Zero slash:size=13 diff --git a/.config/kitty/quick-access-terminal.conf b/.config/kitty/quick-access-terminal.conf new file mode 100644 index 0000000..0866680 --- /dev/null +++ b/.config/kitty/quick-access-terminal.conf @@ -0,0 +1,7 @@ +lines 30 +columns 100 +edge top +background_opacity 0.90 +hide_on_focus_loss yes +grab_keyboard no +start_as_hidden yes diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf new file mode 100644 index 0000000..0e63ddb --- /dev/null +++ b/.config/mpv/mpv.conf @@ -0,0 +1,10 @@ +[extension.mkv] +keep-open +volume-max=150 + +[extension.gif] +osc=no +loop-file + +[protocol.cdda] +no-video diff --git a/.config/niri/config.kdl b/.config/niri/config.kdl new file mode 100644 index 0000000..fcf6cba --- /dev/null +++ b/.config/niri/config.kdl @@ -0,0 +1,187 @@ +cursor { + xcursor-theme "whiteglass" + xcursor-size 21 +} + +input { + keyboard { + xkb { + layout "us" + // variant "altgr_intl" + variant "colemak" + // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" + } + numlock + } + + tablet { + map-to-output "DP-7" + } +} + +output "eDP-1" { + off +} +output "DP-7" { + mode "1920x1080" + position x=0 y=0 +} +output "DP-9" { + transform "90" + position x=-1080 y=-390 +} + +layout { + center-focused-column "never" + + preset-column-widths { + proportion 0.33333 + proportion 0.5 + proportion 0.66667 + } + + default-column-width { proportion 0.5; } + + focus-ring { + off + } + + border { + width 4 + active-color "#ffc87f" + inactive-color "#505050" + urgent-color "#9b0000" + } +} + +spawn-at-startup "openrc" "--user" "gui" +spawn-at-startup "kdeconnectd" +spawn-at-startup "kitten" "quick-access-terminal" +screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" + +prefer-no-csd + +animations { + slowdown 1.5 +} + +window-rule { + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + open-floating true +} + +window-rule { + match app-id=r#"^org\.keepassxc\.KeePassXC$"# + match app-id=r#"^org\.gnome\.World\.Secrets$"# + block-out-from "screen-capture" +} + +hotkey-overlay { + skip-at-startup +} + +environment { + QT_QPA_PLATFORM "wayland" + DISPLAY null +} + +binds { + Mod+T hotkey-overlay-title="Open a Terminal: foot" { spawn "footclient"; } + Mod+D hotkey-overlay-title="Run an Application: kitten" { spawn "kitten" "quick-access-terminal"; } + Mod+E hotkey-overlay-title="Open emoji picker" { spawn "/home/lain/.local/bin/wofi-emoji"; } + Super+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; } + + XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.025+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.025-"; } + XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } + XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } + + Mod+O repeat=false { toggle-overview; } + + Mod+Q { close-window; } + + Mod+Left { focus-column-left; } + Mod+Down { focus-window-or-workspace-down; } + Mod+Up { focus-window-or-workspace-up; } + Mod+Right { focus-column-right; } + + Mod+Ctrl+Left { move-column-left; } + Mod+Ctrl+Down { move-window-down-or-to-workspace-down; } + Mod+Ctrl+Up { move-window-up-or-to-workspace-up; } + Mod+Ctrl+Right { move-column-right; } + + Mod+Home { focus-column-first; } + Mod+End { focus-column-last; } + Mod+Ctrl+Home { move-column-to-first; } + Mod+Ctrl+End { move-column-to-last; } + + Mod+Shift+Left { focus-monitor-left; } + Mod+Shift+Down { focus-monitor-down; } + Mod+Shift+Up { focus-monitor-up; } + Mod+Shift+Right { focus-monitor-right; } + + Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } + Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } + Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } + Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } + + Mod+Page_Down { focus-workspace-down; } + Mod+Page_Up { focus-workspace-up; } + Mod+U { focus-workspace-down; } + Mod+I { focus-workspace-up; } + Mod+Ctrl+Page_Down { move-column-to-workspace-down; } + Mod+Ctrl+Page_Up { move-column-to-workspace-up; } + Mod+Ctrl+U { move-column-to-workspace-down; } + Mod+Ctrl+I { move-column-to-workspace-up; } + + Mod+Shift+Page_Down { move-workspace-down; } + Mod+Shift+Page_Up { move-workspace-up; } + Mod+Shift+U { move-workspace-down; } + Mod+Shift+I { move-workspace-up; } + + Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } + Mod+Shift+WheelScrollDown { focus-column-right; } + Mod+Shift+WheelScrollUp { focus-column-left; } + Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } + Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } + + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + Mod+Comma { consume-window-into-column; } + Mod+Period { expel-window-from-column; } + + Mod+R { switch-preset-column-width; } + Mod+Shift+R { switch-preset-window-height; } + Mod+Ctrl+R { reset-window-height; } + Mod+F { maximize-column; } + Mod+Shift+F { fullscreen-window; } + + Mod+Ctrl+F { expand-column-to-available-width; } + + Mod+C { center-column; } + Mod+Ctrl+C { center-visible-columns; } + + Mod+k { set-column-width "-10%"; } + Mod+m { set-column-width "+10%"; } + + Mod+Shift+k { set-window-height "-10%"; } + Mod+Shift+m { set-window-height "+10%"; } + + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + Mod+W { toggle-column-tabbed-display; } + + Print { screenshot; } + Ctrl+Print { screenshot-screen; } + Alt+Print { screenshot-window; } + + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + + Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } + Mod+Shift+P { power-off-monitors; } +} diff --git a/.config/profanity/profrc b/.config/profanity/profrc new file mode 100644 index 0000000..e69de29 diff --git a/.config/rc/rc.conf b/.config/rc/rc.conf new file mode 100644 index 0000000..785403e --- /dev/null +++ b/.config/rc/rc.conf @@ -0,0 +1 @@ +rc_env_allow="WAYLAND_DISPLAY DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR" diff --git a/.config/rc/runlevels/gui/autodarkmode b/.config/rc/runlevels/gui/autodarkmode new file mode 100755 index 0000000..7b342a9 --- /dev/null +++ b/.config/rc/runlevels/gui/autodarkmode @@ -0,0 +1,4 @@ +#!/sbin/openrc-run + +supervisor=supervise-daemon +command="/home/lain/.local/bin/autodarkmode" diff --git a/.config/rc/runlevels/gui/footserver b/.config/rc/runlevels/gui/footserver new file mode 100755 index 0000000..d1a54cf --- /dev/null +++ b/.config/rc/runlevels/gui/footserver @@ -0,0 +1,5 @@ +#!/sbin/openrc-run + +supervisor=supervise-daemon +command="foot" +command_args="--server" diff --git a/.config/rc/runlevels/gui/kittenbar b/.config/rc/runlevels/gui/kittenbar new file mode 100755 index 0000000..27eaafe --- /dev/null +++ b/.config/rc/runlevels/gui/kittenbar @@ -0,0 +1,4 @@ +#!/sbin/openrc-run + +supervisor=supervise-daemon +command="/usr/bin/kittenbar" diff --git a/.config/rc/runlevels/gui/pipewire b/.config/rc/runlevels/gui/pipewire new file mode 100755 index 0000000..76a0f19 --- /dev/null +++ b/.config/rc/runlevels/gui/pipewire @@ -0,0 +1,11 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +depend() { + need dbus +} + +export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" +supervisor=supervise-daemon +command="/usr/bin/pipewire" diff --git a/.config/rc/runlevels/gui/pipewire-pulse b/.config/rc/runlevels/gui/pipewire-pulse new file mode 100755 index 0000000..af7de86 --- /dev/null +++ b/.config/rc/runlevels/gui/pipewire-pulse @@ -0,0 +1,12 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +depend() { + need pipewire dbus +} + +export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" +supervisor=supervise-daemon +command="/usr/bin/pipewire" +command_args="-c pipewire-pulse.conf" diff --git a/.config/rc/runlevels/gui/swaybg b/.config/rc/runlevels/gui/swaybg new file mode 100755 index 0000000..f21c1db --- /dev/null +++ b/.config/rc/runlevels/gui/swaybg @@ -0,0 +1,5 @@ +#!/sbin/openrc-run + +supervisor=supervise-daemon +command="/usr/bin/swaybg" +command_args="-i /home/lain/Desktop/mousewall3.jpg -m fill" diff --git a/.config/rc/runlevels/gui/wireplumber b/.config/rc/runlevels/gui/wireplumber new file mode 100755 index 0000000..ea4c6f2 --- /dev/null +++ b/.config/rc/runlevels/gui/wireplumber @@ -0,0 +1,11 @@ +#!/sbin/openrc-run +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +depend() { + need pipewire dbus +} + +DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" +supervisor=supervise-daemon +command="/usr/bin/wireplumber" diff --git a/.emacs b/.emacs new file mode 100644 index 0000000..f0275a5 --- /dev/null +++ b/.emacs @@ -0,0 +1,209 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-safe-themes + '("1e6997bc08f0b11a2b5b6253525aed4e1eb314715076a0c0c2486bd97569f18a" + "249e100de137f516d56bcf2e98c1e3f9e1e8a6dce50726c974fa6838fbfcec6b" + default)) + '(inhibit-startup-screen t) + '(package-selected-packages + '(ascii-table multiple-cursors toml-mode yaml-mode ada-mode meson-mode + rust-mode nix-mode all-the-icons kaolin-themes + centaur-tabs elcord latex-preview-pane lsp-latex + dashboard lsp-mode lsp-treemacs yasnippet company + flycheck dap-mode magit projectile persp-mode helm + helm-lsp go-mode lsp-ui undo-tree)) + '(warning-suppress-log-types '((use-package))) + '(warning-suppress-types '((comp)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + +;; hide gui stuff +(tool-bar-mode -1) +(menu-bar-mode -1) + + +(global-display-line-numbers-mode 1) + +(require 'package) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +(package-initialize) + +(setq package-selected-packages '(lsp-mode lsp-treemacs yasnippet company flycheck dap-mode magit projectile persp-mode helm helm-lsp go-mode lsp-ui undo-tree)) + +(when (cl-find-if-not #'package-installed-p package-selected-packages) + (package-refresh-contents) + (mapc #'package-install package-selected-packages)) + +(global-set-key (kbd "M-o") 'ace-window) +(global-set-key (kbd "C-x ") 'scroll-up-line) +(global-set-key (kbd "C-x ") 'scroll-up-line) + + +(set-frame-font "OG Courier Zero Slash 11" nil t) +(set-face-attribute 'default nil :height 120) + +(use-package rust-mode) + +;; Tabs +(use-package centaur-tabs + :demand + :ensure t + :config + (centaur-tabs-mode t) + :bind + ("C-c " . centaur-tabs-backward) + ("C-c " . centaur-tabs-forward)) + +(use-package all-the-icons + :if (display-graphic-p)) + +;; Theme +(use-package kaolin-themes + :config + (load-theme 'kaolin-valley-light t) + (kaolin-treemacs-theme)) + + +;; dashboard +(use-package dashboard + :ensure t + :config + (progn + (dashboard-setup-startup-hook) + (setq dashboard-banner-logo-title "AAAAAAAAAAAAAAAAA") + (setq dashboard-startup-banner "/home/xen/Documents/fumo.txt") + (setq dashboard-center-content t) + (setq dashboard-show-shortcuts nil) + (setq dashboard-item-shortcuts '((recents . "r") + (agenda . "a") + (registers . "e"))))) + +(use-package treemacs + :ensure t + :defer t + :pin manual + :init + (with-eval-after-load 'winum + (define-key winum-keymap (kbd "M-0") #'treemacs-select-window)) + :config + (progn + (setq treemacs-collapse-dirs (if treemacs-python-executable 3 0) + treemacs-deferred-git-apply-delay 0.5 + treemacs-directory-name-transformer #'identity + treemacs-display-in-side-window t + treemacs-eldoc-display 'simple + treemacs-file-event-delay 2000 + treemacs-file-extension-regex treemacs-last-period-regex-value + treemacs-file-follow-delay 0.2 + treemacs-file-name-transformer #'identity + treemacs-follow-after-init t + treemacs-expand-after-init t + treemacs-find-workspace-method 'find-for-file-or-pick-first + treemacs-git-command-pipe "" + treemacs-goto-tag-strategy 'refetch-index + treemacs-header-scroll-indicators '(nil . "^^^^^^") + treemacs-hide-dot-git-directory t + treemacs-indentation 2 + treemacs-indentation-string " " + treemacs-is-never-other-window t + treemacs-max-git-entries 5000 + treemacs-missing-project-action 'ask + treemacs-move-forward-on-expand nil + treemacs-no-png-images nil + treemacs-no-delete-other-windows t + treemacs-project-follow-cleanup nil + treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory) + treemacs-position 'left + treemacs-read-string-input 'from-child-frame + treemacs-recenter-distance 0.1 + treemacs-recenter-after-file-follow nil + treemacs-recenter-after-tag-follow nil + treemacs-recenter-after-project-jump 'always + treemacs-recenter-after-project-expand 'on-distance + treemacs-litter-directories '("/node_modules" "/.venv" "/.cask") + treemacs-project-follow-into-home nil + treemacs-show-cursor nil + treemacs-show-hidden-files t + treemacs-silent-filewatch nil + treemacs-silent-refresh nil + treemacs-sorting 'alphabetic-asc + treemacs-select-when-already-in-treemacs 'move-back + treemacs-space-between-root-nodes t + treemacs-tag-follow-cleanup t + treemacs-tag-follow-delay 1.5 + treemacs-text-scale nil + treemacs-user-mode-line-format nil + treemacs-user-header-line-format nil + treemacs-wide-toggle-width 70 + treemacs-width 35 + treemacs-width-increment 1 + treemacs-width-is-initially-locked t + treemacs-workspace-switch-cleanup nil) + + ;; The default width and height of the icons is 22 pixels. If you are + ;; using a Hi-DPI display, uncomment this to double the icon size. + ;;(treemacs-resize-icons 44) + + (treemacs-follow-mode t) + (treemacs-filewatch-mode t) + (treemacs-fringe-indicator-mode 'always) + (treemacs-hide-gitignored-files-mode nil)) + :bind + (:map global-map + ("M-0" . treemacs-select-window) + ("C-x t 1" . treemacs-delete-other-windows) + ("C-x t t" . treemacs) + ("C-x t d" . treemacs-select-directory) + ("C-x t B" . treemacs-bookmark) + ("C-x t C-t" . treemacs-find-file) + ("C-x t M-t" . treemacs-find-tag))) + +(use-package treemacs-icons-dired + :hook (dired-mode . treemacs-icons-dired-enable-once) + :ensure t) + +;; undo tree +(global-undo-tree-mode) + +;; Company mode +(setq company-idle-delay 0) +(setq company-minimum-prefix-length 1) + +;; Go lsp mode +(defun lsp-go-install-save-hooks() + (add-hook 'before-save-hook #'lsp-format-buffer t t) + (add-hook 'before-save-hook #'lsp-organize-imports t t)) +(add-hook 'go-mode-hook #'lsp-go-install-save-hooks) + +;; lsp mode +(with-eval-after-load 'lsp-mode + (add-hook 'prog-mode-hook #'lsp-deferred) + (yas-minor-mode)) + +(require 'multiple-cursors) +(global-set-key (kbd "C-c C-c") 'mc/edit-lines) +(global-set-key (kbd "C->") 'mc/mark-next-like-this) +(global-set-key (kbd "C-<") 'mc/mark-previous-like-this) +(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this) + +(projectile-mode +1) +;; Recommended keymap prefix on Windows/Linux +(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) +(setq projectile-project-search-path '("~/Projects")) +(add-hook 'makefile-mode-hook (lambda () (lsp-mode -1))) +;; Tex +(use-package tex + :ensure auctex) +(setq TeX-auto-save t) +(setq TeX-parse-self t) +(setq-default TeX-master nil) + +(setq-default show-trailing-whitespace t) +(setq load-home-init-file t) ; don't load init file from ~/.xemacs/init.el -- cgit v1.2.3