diff --git a/home/config/xmonad/xmonad.hs b/home/config/xmonad/xmonad.hs index 09f7c71..a68ad4c 100644 --- a/home/config/xmonad/xmonad.hs +++ b/home/config/xmonad/xmonad.hs @@ -57,13 +57,13 @@ myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $ spawn "flameshot full -p /home/natto/Pictures -d 10000") , ((modMask, xK_p), - spawn "mpc toggle") + spawn "playerctl play-pause") , ((modMask, xK_h), - spawn "mpc next") + spawn "playerctl next") , ((modMask, xK_k), - spawn "mpc prev") + spawn "playerctl previous") , ((modMask .|. shiftMask, xK_a), spawn "mpc seek -00:00:05") @@ -190,6 +190,37 @@ toggleFullscreen = windows $ if isFullFloat then W.sink w else W.float w fullRect --}}} +--{{{ +--couldnt get fullScreenEventHook to work normally so using this for now +--source code: https://github.com/xmonad/xmonad-contrib/blob/v0.16/XMonad/Hooks/EwmhDesktops.hs + +fullscreenFix :: XConfig a -> XConfig a +fullscreenFix c = c { + startupHook = startupHook c +++ setSupportedWithFullscreen + } + where x +++ y = mappend x y + +setSupportedWithFullscreen :: X () +setSupportedWithFullscreen = withDisplay $ \dpy -> do + r <- asks theRoot + a <- getAtom "_NET_SUPPORTED" + c <- getAtom "ATOM" + supp <- mapM getAtom ["_NET_WM_STATE_HIDDEN" + ,"_NET_WM_STATE_FULLSCREEN" + ,"_NET_NUMBER_OF_DESKTOPS" + ,"_NET_CLIENT_LIST" + ,"_NET_CLIENT_LIST_STACKING" + ,"_NET_CURRENT_DESKTOP" + ,"_NET_DESKTOP_NAMES" + ,"_NET_ACTIVE_WINDOW" + ,"_NET_WM_DESKTOP" + ,"_NET_WM_STRUT" + ] + io $ changeProperty32 dpy r a c propModeReplace (fmap fromIntegral supp) + + setWMName "xmonad" +--}}} + main = do xmproc <- spawnPipe ("xmobar " ++ myXmobarrc) xmonad $ docks $ ewmh def { borderWidth = myBorderWidth diff --git a/home/natto.nix b/home/natto.nix index f7ab4ce..f74db5e 100644 --- a/home/natto.nix +++ b/home/natto.nix @@ -54,7 +54,8 @@ in sox qbittorrent #tor-browser-bundle-bin - mpc_cli + #mpc_cli + playerctl hexchat luajit mpv @@ -86,6 +87,7 @@ in dosbox authy unstable.premid + master.tauon nbfc-linux ]; diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index b6b609f..a4b2aac 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -3,6 +3,7 @@ environment.systemPackages = with pkgs; [ (emacsWithPackagesFromUsePackage { config = ./init.el; + package = emacsGcc; alwaysEnsure = true; extraEmacsPackages = epkgs: with epkgs; [ use-package diff --git a/modules/emacs/init.el b/modules/emacs/init.el index 8edd2aa..d797d34 100644 --- a/modules/emacs/init.el +++ b/modules/emacs/init.el @@ -1,3 +1,26 @@ +;; -*- lexical-binding:t -*- + +;;colors +(setq +c-bg "#1d2021" +c-fg "#d5c4a1" +c-red "#cc241d" +c-green "#98971a" +c-yellow "#d79921" +c-blue "#458588" +c-magenta "#b16286" +c-cyan "#689d6a" +c-white "#a89984" +c-black "#928374" +c-red-2 "#fb4934" +c-green-2 "#b8bb26" +c-yellow-2 "#fabd2f" +c-blue-2 "#83a598" +c-magenta-2 "#d3869b" +c-cyan-2 "#8ec07c" +c-white-2 "#ebdbb2") +;(setq vc-handled-backends nil) ; vc is slow as fuck with git + ;;settings (setq display-line-numbers-type 'relative) (setq inhibit-startup-screen t) @@ -9,6 +32,7 @@ (fringe-mode 0) (global-display-line-numbers-mode 1) (setq initial-major-mode 'emacs-lisp-mode) +(setq frame-resize-pixelwise t) ;;add packages and shit (require 'package) @@ -19,11 +43,13 @@ ;;package config and modes (use-package gruvbox-theme - :init - (load-theme 'gruvbox-dark-hard t)) + :init (load-theme 'gruvbox-dark-hard t)) (use-package ivy :config + (define-key ivy-minibuffer-map (kbd "C-n") 'ivy-next-line) + (define-key ivy-minibuffer-map (kbd "C-e") 'ivy-previous-line) + (define-key ivy-minibuffer-map (kbd "C-i") 'ivy-done) (ivy-mode 1)) (use-package elcord @@ -32,6 +58,7 @@ (use-package evil :config + (setq evil-undo-system 'undo-redo) (evil-mode 1)) (use-package evil-colemak-basics @@ -46,15 +73,16 @@ (treemacs-git-mode 'deferred)) (use-package treemacs-evil - :bind (:map evil-treemacs-state-map - ("n" . treemacs-next-line) - ("e" . treemacs-previous-line) - ("M-n" . treemacs-next-neighbour) - ("M-e" . treemacs-previous-neighbour) - ("M-N" . treemacs-next-line-other-window) - ("M-E" . treemacs-previous-line-other-window) - ("M" . treemacs-collapse-parent-node)) - :init + :config + (define-key evil-treemacs-state-map (kbd "n") #'treemacs-next-line) + (define-key evil-treemacs-state-map (kbd "e") #'treemacs-previous-line) + (define-key evil-treemacs-state-map (kbd "M-n") #'treemacs-next-neighbour) + (define-key evil-treemacs-state-map (kbd "M-e") #'treemacs-previous-neighbour) + (define-key evil-treemacs-state-map (kbd "M-N") #'treemacs-next-line-other-window) + (define-key evil-treemacs-state-map (kbd "M-E") #'treemacs-previous-line-other-window) + (define-key evil-treemacs-state-map (kbd "M") #'treemacs-collapse-parent-node) + (evil-define-key 'treemacs treemacs-mode-map (kbd "m") #'treemacs-COLLAPSE-action) + (evil-define-key 'treemacs treemacs-mode-map (kbd "i") #'treemacs-RET-action)) (use-package lsp-mode :config @@ -81,21 +109,53 @@ (use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode)) -;(use-package rustic) +(use-package flex-autopair + :config + (flex-autopair-mode 1)) -;;keybinds -;ivy -(define-key ivy-minibuffer-map (kbd "C-n") 'ivy-next-line) -(define-key ivy-minibuffer-map (kbd "C-e") 'ivy-previous-line) -(define-key ivy-minibuffer-map (kbd "C-i") 'ivy-done) +(use-package rainbow-mode + :config + (rainbow-mode 1)) + +(use-package rustic) + +(use-package magit) + +(defface bufname + `((t :foreground ,c-fg + :background ,c-bg + :weight bold + )) + "Custom faces for buffer name" + :group 'mode-line-faces ) + +(defface gitmode + `((t :foreground ,c-fg + :background ,c-red-2 + :weight bold + )) + "Custom face for git branch" + :group 'mode-line-faces ) + +(setq-default mode-line-format + '((:propertize " %b " face bufname) + (vc-mode (:propertize (" " vc-mode " " ) face gitmode)))) -;evil-treemacs -(evil-define-key 'treemacs treemacs-mode-map (kbd "m") #'treemacs-COLLAPSE-action) -(evil-define-key 'treemacs treemacs-mode-map (kbd "i") #'treemacs-RET-action)) -;;hooks -;exclude line numbers (setq exclude-ln '(term-mode-hook eshell-mode-hook shell-mode-hook)) (while exclude-ln (add-hook (car exclude-ln) (lambda () (display-line-numbers-mode 0))) (setq exclude-ln (cdr exclude-ln))) +(let ((default-color (cons (face-background 'mode-line) + (face-foreground 'mode-line)))) + (add-hook 'post-command-hook + (lambda () + (let ((color (cond ((minibufferp) default-color) + ((evil-insert-state-p) (cons c-magenta c-fg)) + ((evil-visual-state-p) (cons c-cyan c-fg)) + ((evil-normal-state-p) (cons c-fg c-bg)) + ((buffer-modified-p) (cons c-blue c-fg)) + (t default-color)))) + (set-face-background 'bufname (car color)) + (set-face-foreground 'bufname (cdr color)) + ))))