summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/fish/config.fish10
-rw-r--r--.config/foot/foot.ini1
-rw-r--r--.config/kitty/quick-access-terminal.conf7
-rw-r--r--.config/mpv/mpv.conf10
-rw-r--r--.config/niri/config.kdl187
-rw-r--r--.config/profanity/profrc0
-rw-r--r--.config/rc/rc.conf1
-rwxr-xr-x.config/rc/runlevels/gui/autodarkmode4
-rwxr-xr-x.config/rc/runlevels/gui/footserver5
-rwxr-xr-x.config/rc/runlevels/gui/kittenbar4
-rwxr-xr-x.config/rc/runlevels/gui/pipewire11
-rwxr-xr-x.config/rc/runlevels/gui/pipewire-pulse12
-rwxr-xr-x.config/rc/runlevels/gui/swaybg5
-rwxr-xr-x.config/rc/runlevels/gui/wireplumber11
-rw-r--r--.emacs209
15 files changed, 477 insertions, 0 deletions
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
--- /dev/null
+++ b/.config/profanity/profrc
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 <down>") 'scroll-up-line)
+(global-set-key (kbd "C-x <up>") '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 <left>" . centaur-tabs-backward)
+ ("C-c <right>" . 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