diff --git a/.config/iptables b/.config/iptables new file mode 100755 index 0000000..302b1e9 --- /dev/null +++ b/.config/iptables @@ -0,0 +1,26 @@ +# Accept on localhost +iptables -A INPUT -i lo -j ACCEPT +iptables -A OUTPUT -o lo -j ACCEPT + +# Accept outgoing network +iptables -A OUTPUT -o eth0 -j ACCEPT + +# Allow established sessions to receive traffic +iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT +iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT + +# Enable SSH (to internet) +#iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT +#iptables -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 10571 -j ACCEPT + +# Disable SSH (to that machine) +iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 192.168.0.0/24 --sport 22 -j DROP +iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 192.168.0.0/24 --dport 22 -j DROP + +# Enable INZ +iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 192.168.0.0/24 --dport 1285 -j ACCEPT +iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 192.168.0.0/24 --dport 3000 -j ACCEPT +iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 192.168.0.0/24 --dport 8080 -j ACCEPT + +iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP +iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 3555740..0190d35 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -21,7 +21,9 @@ (menu-bar-mode 0) ;; Enable IDO mode -(ido-mode 1) +(setq ido-enable-flex-matching t) +;;(setq ido-everywhere t) +;;(ido-mode 1) (global-set-key (kbd "C-x b") 'ido-switch-buffer) ;; Remove working cl @@ -166,6 +168,14 @@ (require 'dired-sidebar) (global-set-key (kbd "C-x d") 'dired-sidebar-toggle-sidebar) +;;buffer-move +(require 'buffer-move) +(global-set-key (kbd "") 'buf-move-up) +(global-set-key (kbd "") 'buf-move-down) +(global-set-key (kbd "") 'buf-move-left) +(global-set-key (kbd "") 'buf-move-right) + + ;; Magit (use-package magit :ensure t @@ -273,8 +283,151 @@ (add-hook 'flycheck-mode-hook #'flycheck-haskell-setup) +;; Java +(use-package lsp-java + :ensure t + :config + (global-set-key (kbd "C-.") 'lsp-execute-code-action) +) + +(global-set-key (kbd "") 'dap-breakpoint-toggle) +(global-set-key (kbd "") 'dap-next) +(global-set-key (kbd "") 'dap-step-in) +(global-set-key (kbd "") 'lsp-jt-browser) +(global-set-key (kbd "") 'dap-stop-thread) +(global-set-key (kbd "") 'comment-or-uncomment-region) + +(add-hook 'dap-stopped-hook + (lambda (arg) (call-interactively #'dap-hydra))) + +(setq dap-auto-configure-features '(sessions locals controls tooltip)) + + +(require 'lsp-java) +(add-hook 'java-mode-hook #'lsp) + +(require 'dap-java) + +;; Treemacs +(use-package treemacs + :ensure t + :defer t + :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 t + treemacs-file-event-delay 5000 + 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-git-command-pipe "" + treemacs-goto-tag-strategy 'refetch-index + treemacs-indentation 2 + treemacs-indentation-string " " + treemacs-is-never-other-window nil + 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-show-cursor nil + treemacs-show-hidden-files t + treemacs-silent-filewatch nil + treemacs-silent-refresh nil + treemacs-sorting 'alphabetic-asc + treemacs-space-between-root-nodes t + treemacs-tag-follow-cleanup t + treemacs-tag-follow-delay 1.5 + treemacs-user-mode-line-format nil + treemacs-user-header-line-format nil + treemacs-width 35 + 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) + (pcase (cons (not (null (executable-find "git"))) + (not (null treemacs-python-executable))) + (`(t . t) + (treemacs-git-mode 'deferred)) + (`(t . _) + (treemacs-git-mode 'simple)))) + :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 B" . treemacs-bookmark) + ("C-x t C-t" . treemacs-find-file) + ("C-x t M-t" . treemacs-find-tag))) + +(use-package treemacs-evil + :after treemacs evil + :ensure t) + +(use-package treemacs-projectile + :after treemacs projectile + :ensure t) + +(use-package treemacs-icons-dired + :after treemacs dired + :ensure t + :config (treemacs-icons-dired-mode)) + +(use-package treemacs-magit + :after treemacs magit + :ensure t) + +(use-package treemacs-persp ;;treemacs-perspective if you use perspective.el vs. persp-mode + :after treemacs persp-mode ;;or perspective vs. persp-mode + :ensure t + :config (treemacs-set-scope-type 'Perspectives)) + ;;; --- Look & Feel --- +;; Helm +(use-package helm + :ensure t + :config +) + +(add-hook 'helm-minibuffer-set-up-hook + 'helm-hide-minibuffer-maybe) + +(setq helm-autoresize-max-height 0) +(setq helm-autoresize-min-height 20) + +(helm-autoresize-mode 1) +(helm-mode 1) + +;; Disable scroll bar +(scroll-bar-mode -1) + +;; Copy +(setq select-active-regions nil) +(setq mouse-drag-copy-region t) +(global-set-key [mouse-2] 'mouse-yank-at-click) + ;; Zoom in/out. (global-set-key (kbd "M-+") 'text-scale-increase) (global-set-key (kbd "M--") 'text-scale-decrease) diff --git a/.emacs.d/plugins/buffer-move.el b/.emacs.d/plugins/buffer-move.el new file mode 100644 index 0000000..786c5e5 --- /dev/null +++ b/.emacs.d/plugins/buffer-move.el @@ -0,0 +1,138 @@ +;;; buffer-move.el --- + +;; Copyright (C) 2004-2014 Lucas Bonnet + +;; Author: Lucas Bonnet +;; Keywords: lisp,convenience +;; Version: 0.5 +;; URL : https://github.com/lukhas/buffer-move + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License +;; as published by the Free Software Foundation; either version 2 +;; of the License, or (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program; if not, write to the Free Software +;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + +;;; Commentary: + +;; This file is for lazy people wanting to swap buffers without +;; typing C-x b on each window. This is useful when you have : + +;; +--------------+-------------+ +;; | | | +;; | #emacs | #gnus | +;; | | | +;; +--------------+-------------+ +;; | | +;; | .emacs | +;; | | +;; +----------------------------+ + +;; and you want to have : + +;; +--------------+-------------+ +;; | | | +;; | #gnus | .emacs | +;; | | | +;; +--------------+-------------+ +;; | | +;; | #emacs | +;; | | +;; +----------------------------+ + +;; With buffer-move, just go in #gnus, do buf-move-left, go to #emacs +;; (which now should be on top right) and do buf-move-down. + +;; To use it, simply put a (require 'buffer-move) in your ~/.emacs and +;; define some keybindings. For example, i use : + +;; (global-set-key (kbd "") 'buf-move-up) +;; (global-set-key (kbd "") 'buf-move-down) +;; (global-set-key (kbd "") 'buf-move-left) +;; (global-set-key (kbd "") 'buf-move-right) + + +;;; Code: + + +(require 'windmove) + +;;;###autoload +(defun buf-move-up () + "Swap the current buffer and the buffer above the split. +If there is no split, ie now window above the current one, an +error is signaled." +;; "Switches between the current buffer, and the buffer above the +;; split, if possible." + (interactive) + (let* ((other-win (windmove-find-other-window 'up)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No window above this one") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-down () +"Swap the current buffer and the buffer under the split. +If there is no split, ie now window under the current one, an +error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'down)) + (buf-this-buf (window-buffer (selected-window)))) + (if (or (null other-win) + (string-match "^ \\*Minibuf" (buffer-name (window-buffer other-win)))) + (error "No window under this one") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-left () +"Swap the current buffer and the buffer on the left of the split. +If there is no split, ie now window on the left of the current +one, an error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'left)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No left split") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + +;;;###autoload +(defun buf-move-right () +"Swap the current buffer and the buffer on the right of the split. +If there is no split, ie now window on the right of the current +one, an error is signaled." + (interactive) + (let* ((other-win (windmove-find-other-window 'right)) + (buf-this-buf (window-buffer (selected-window)))) + (if (null other-win) + (error "No right split") + ;; swap top with this one + (set-window-buffer (selected-window) (window-buffer other-win)) + ;; move this one to top + (set-window-buffer other-win buf-this-buf) + (select-window other-win)))) + + +(provide 'buffer-move) +;;; buffer-move.el ends here diff --git a/.local/bin/iptables-restart b/.local/bin/iptables-restart new file mode 100755 index 0000000..121cb47 --- /dev/null +++ b/.local/bin/iptables-restart @@ -0,0 +1,6 @@ +#!/bin/bash +sudo rc-service iptables stop +sudo iptables -F +sudo ~/.config/iptables +sudo /etc/init.d/iptables save +sudo rc-service iptables start diff --git a/.local/bin/shut-sup-rest b/.local/bin/shut-sup-rest index 5e3527b..6384f9d 100755 --- a/.local/bin/shut-sup-rest +++ b/.local/bin/shut-sup-rest @@ -5,7 +5,7 @@ chosen=$(echo -e "$choices" | dmenu -i) case "$chosen" in Lock) slock ;; - Suspend) loginctl suspend && slock ;; + Suspend) sudo s2ram && slock ;; Reboot) sudo reboot ;; Shutdown) sudo shutdown -h now ;; esac diff --git a/.zshrc b/.zshrc index ee40417..d9d1fc3 100644 --- a/.zshrc +++ b/.zshrc @@ -50,8 +50,8 @@ export FZF_DEFAULT_OPTS='--height 40% --layout=reverse' export EIX_LIMIT_COMPACT=0 export TERMINAL="st" export QT_SCALE_FACTOR=1.5 -export VISUAL='nvim' -export EDITOR='nvim' +export VISUAL='emacs' +export EDITOR='vim' alias svm="sudo vim /etc/portage/make.conf" alias svr="sudo vim /etc/portage/repos.conf" alias svp="sudo vim /etc/portage/package.use"