diff --git a/Xresources b/Xresources index 5ab7e22..9743752 100644 --- a/Xresources +++ b/Xresources @@ -9,6 +9,7 @@ rofi.color-normal: #00000000, #ffffff, #22000000, #88ffffff, #000000 rofi.color-active: #44000000, #ffffff, #66000000, #44000000, #ffffff rofi.hide-scrollbar: true rofi.combi-modi: window,run,ssh +rofi.run-command: fish -c '{cmd}' ! urxvt urxvt*internalBorder: 12 diff --git a/config.fish b/config.fish index 8cb6101..73c1c18 100644 --- a/config.fish +++ b/config.fish @@ -31,9 +31,9 @@ end # PATH set -x PATH $HOME/dotfiles/bin $PATH -set -x PATH $HOME/.local/bin $PATH -set -x PATH $HOME/.npm-packages/bin $PATH -set -x PATH /usr/local/opt/python/libexec/bin $PATH +# set -x PATH $HOME/.local/bin $PATH +# set -x PATH $HOME/.npm-packages/bin $PATH +# set -x PATH /usr/local/opt/python/libexec/bin $PATH # Keychain if status --is-interactive diff --git a/configuration.nix b/configuration.nix index 7d02994..cb078dc 100644 --- a/configuration.nix +++ b/configuration.nix @@ -8,6 +8,7 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + ./vpn.nix ]; # Use the systemd-boot EFI boot loader. @@ -22,6 +23,10 @@ consoleFont = "Lat2-Terminus16"; consoleKeyMap = "dvorak"; defaultLocale = "en_US.UTF-8"; + # inputMethod.enabled = "ibus"; + inputMethod.enabled = "fcitx"; + # inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ]; + inputMethod.fcitx.engines = with pkgs.fcitx-engines; [ anthy mozc ]; }; # Set your time zone. @@ -30,7 +35,7 @@ # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget environment.systemPackages = with pkgs; [ - wget vim + wget vim clipit compton emacs feh firefox fzf git gparted gucharmap htop keepassx2 keychain ncmpcpp neovim noto-fonts-cjk pandoc polybar python qutebrowser rofi rxvt_unicode silver-searcher syncthing tmux tree unzip wirelesstools xcape xclip spotify anki mopidy mopidy-soundcloud mopidy-spotify mopidy-youtube pavucontrol ranger ]; nixpkgs.config.allowUnfree = true; @@ -39,7 +44,11 @@ # started in user sessions. # programs.bash.enableCompletion = true; # programs.mtr.enable = true; - programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; + + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; # Enable the OpenSSH daemon. # services.openssh.enable = true; @@ -57,12 +66,22 @@ services.xserver.layout = "dvorak"; services.xserver.videoDriver = "nvidia"; services.xserver.resolutions = [ { x = 2560; y = 1440; } ]; + + services.xserver.synaptics.enable = true; + services.xserver.synaptics.palmDetect = true; + services.xserver.synaptics.palmMinWidth = 5; + services.xserver.synaptics.palmMinZ = 20; + services.xserver.synaptics.twoFingerScroll = true; + services.xserver.synaptics.accelFactor = "0.005"; + services.xserver.synaptics.buttonsMap = [ 1 3 2 ]; + services.upower.enable = true; + services.xserver.desktopManager.xterm.enable = false; services.xserver.displayManager.slim.defaultUser = "dustinswan"; + services.xserver.windowManager.xmonad.enable = true; services.xserver.windowManager.xmonad.enableContribAndExtras = true; - services.xserver.windowManager.xmonad.extraPackages = self: [ self.taffybar ]; services.xserver.windowManager.default = "xmonad"; services.syncthing = { @@ -72,16 +91,35 @@ dataDir = "/home/dustinswan/"; }; + services.urxvtd.enable = true; + + services.emacs.enable = true; + services.emacs.defaultEditor = true; + hardware.opengl.driSupport32Bit = true; hardware.pulseaudio.enable = true; hardware.pulseaudio.support32Bit = true; + hardware.pulseaudio.package = pkgs.pulseaudioFull; + hardware.pulseaudio.zeroconf.discovery.enable = true; + hardware.bluetooth.enable = true; sound.mediaKeys.enable = true; programs.fish.enable = true; + fonts = { + enableFontDir = true; + fonts = with pkgs; [ + nerdfonts # includes Iosevka + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + siji + ]; + }; + users.extraUsers.dustinswan = { isNormalUser = true; - extraGroups = [ "wheel" "audio" "networkmanager" ]; + extraGroups = [ "wheel" "sound" "pulse" "audio" "networkmanager" ]; uid = 1000; shell = pkgs.fish; }; diff --git a/logitech_linux_mouse.sh b/logitech_linux_mouse.sh index db3ed81..bde9f7c 100755 --- a/logitech_linux_mouse.sh +++ b/logitech_linux_mouse.sh @@ -1,7 +1,7 @@ #!/bin/sh -for id in `xinput --list|grep 'Logitech Gaming Mouse G502'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'`; do +for id in `xinput --list|grep 'MX Master 2S'|perl -ne 'while (m/id=(\d+)/g){print "$1\n";}'`; do xinput set-prop $id "Device Accel Velocity Scaling" 1 - xinput set-prop $id "Device Accel Constant Deceleration" 1.2 + xinput set-prop $id "Device Accel Constant Deceleration" 1.0 xinput set-button-map $id 1 2 3 5 4 # "natural" scrolling done diff --git a/polybar b/polybar index 5c23101..cbda4c0 100644 --- a/polybar +++ b/polybar @@ -191,6 +191,12 @@ label = %date% %time% [module/volume] type = internal/volume +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +master-mixer = Master + format-volume = label-volume = VOL label-volume-foreground = ${root.foreground} diff --git a/spacemacs b/spacemacs index 89cbc9b..57696d9 100644 --- a/spacemacs +++ b/spacemacs @@ -94,7 +94,7 @@ values." ruby-on-rails python markdown - pandoc + ;; pandoc ;; until pandoc 2 is in Nix unstable yaml extra-langs latex @@ -771,7 +771,7 @@ layers configuration. You are free to put any user code." '(org-journal-time-format "%R %Z") '(package-selected-packages (quote - (zeal-at-point edit-indirect ssass-mode vue-html-mode org-vcard oauth gntp libmpdee json-snatcher json-reformat prop-menu parent-mode fringe-helper git-gutter+ git-gutter marshal logito ht pos-tip flx anzu goto-chg pkg-info epl web-completion-data dash-functional seq pythonic popup dash-at-point counsel-dash helm-dash visual-fill-column org-category-capture ghc undo-tree s spaceline-all-the-icons all-the-icons memoize font-lock+ diminish pdf-tools tablist f winum unfill sudoku ob-restclient multiple-cursors fuzzy company-restclient know-your-http-well flyspell-correct log4e async mmt slime rust-mode bind-key packed auto-complete avy tern iedit bind-map evil simple-httpd pcache alert php-mode purescript-mode haml-mode markdown-mode htmlize vue-mode circe rcirc-notify rcirc-color helm-themes helm-swoop helm-spotify multi helm-pydoc helm-projectile helm-mode-manager helm-hoogle helm-gitignore helm-flx helm-descbinds helm-css-scss helm-company helm-c-yasnippet helm-ag flyspell-correct-helm ace-jump-helm-line csv-mode inflections spinner org anaconda-mode swiper highlight projectile skewer-mode js2-mode gh magit-popup git-commit hydra inf-ruby pcre2el macrostep dash powerline auctex counsel smartparens go-mode haskell-mode flycheck magit with-editor yasnippet rake company ivy helm helm-core xterm-color auctex-latexmk yapfify yaml-mode xkcd wttrin ws-butler writeroom-mode wolfram-mode window-numbering which-key wgrep web-mode web-beautify volatile-highlights vi-tilde-fringe vdirel uuidgen use-package typit twittering-mode tumblesocks toml-mode toc-org thrift tagedit stan-mode spray spotify spacemacs-theme spaceline smex smeargle slime-company slim-mode shell-pop scss-mode scad-mode sass-mode rvm ruby-tools ruby-test-mode rubocop rspec-mode robe reveal-in-osx-finder restclient restart-emacs request rbenv ranger rainbow-mode rainbow-identifiers rainbow-delimiters racer quelpa qml-mode pyvenv pytest pyenv-mode py-isort pug-mode psci psc-ide projectile-rails popwin pip-requirements phpunit phpcbf php-extras php-auto-yasnippets persp-mode pbcopy paradox pandoc-mode pacmacs p4 ox-pandoc ox-gfm osx-trash osx-dictionary orgit org-projectile org-present org-pomodoro org-plus-contrib org-journal org-download org-bullets open-junk-file ob-http neotree mwim multi-term mu4e-maildirs-extension mu4e-alert move-text monokai-theme mmm-mode minitest mingus matlab-mode markdown-toc magit-gitflow magit-gh-pulls lorem-ipsum livid-mode live-py-mode linum-relative link-hint less-css-mode ledger-mode launchctl julia-mode json-mode js2-refactor js-doc ivy-hydra intero insert-shebang info+ indent-guide idris-mode ido-vertical-mode hy-mode hungry-delete hlint-refactor hl-todo hindent highlight-parentheses highlight-numbers highlight-indentation hide-comnt help-fns+ helm-make haskell-snippets hackernews google-translate golden-ratio go-guru go-eldoc gnuplot gitignore-mode github-search github-clone github-browse-file gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link git-gutter-fringe git-gutter-fringe+ gist gh-md geiser flyspell-correct-ivy flycheck-rust flycheck-pos-tip flycheck-ledger flycheck-haskell flycheck-elm flx-ido fish-mode fill-column-indicator feature-mode fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-snipe evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-magit evil-lisp-state evil-indent-plus evil-iedit-state evil-exchange evil-escape evil-ediff evil-args evil-anzu eval-sexp-fu eshell-z eshell-prompt-extras esh-help erc-yt erc-view-log erc-terminal-notifier erc-social-graph erc-image erc-hl-nicks engine-mode emoji-cheat-sheet-plus emmet-mode elm-mode elisp-slime-nav dumb-jump drupal-mode disaster diff-hl deft cython-mode counsel-projectile company-web company-tern company-statistics company-shell company-go company-ghci company-ghc company-emoji company-cabal company-c-headers company-auctex company-anaconda common-lisp-snippets column-enforce-mode color-identifiers-mode coffee-mode cmm-mode cmake-mode clean-aindent-mode clang-format chruby chess cargo bundler bracketed-paste beacon auto-yasnippet auto-highlight-symbol auto-dictionary auto-compile arduino-mode aggressive-indent adaptive-wrap ace-window ace-link ac-ispell 2048-game))) + (ghub zeal-at-point edit-indirect ssass-mode vue-html-mode org-vcard oauth gntp libmpdee json-snatcher json-reformat prop-menu parent-mode fringe-helper git-gutter+ git-gutter marshal logito ht pos-tip flx anzu goto-chg pkg-info epl web-completion-data dash-functional seq pythonic popup dash-at-point counsel-dash helm-dash visual-fill-column org-category-capture ghc undo-tree s spaceline-all-the-icons all-the-icons memoize font-lock+ diminish pdf-tools tablist f winum unfill sudoku ob-restclient multiple-cursors fuzzy company-restclient know-your-http-well flyspell-correct log4e async mmt slime rust-mode bind-key packed auto-complete avy tern iedit bind-map evil simple-httpd pcache alert php-mode purescript-mode haml-mode markdown-mode htmlize vue-mode circe rcirc-notify rcirc-color helm-themes helm-swoop helm-spotify multi helm-pydoc helm-projectile helm-mode-manager helm-hoogle helm-gitignore helm-flx helm-descbinds helm-css-scss helm-company helm-c-yasnippet helm-ag flyspell-correct-helm ace-jump-helm-line csv-mode inflections spinner org anaconda-mode swiper highlight projectile skewer-mode js2-mode gh magit-popup git-commit hydra inf-ruby pcre2el macrostep dash powerline auctex counsel smartparens go-mode haskell-mode flycheck magit with-editor yasnippet rake company ivy helm helm-core xterm-color auctex-latexmk yapfify yaml-mode xkcd wttrin ws-butler writeroom-mode wolfram-mode window-numbering which-key wgrep web-mode web-beautify volatile-highlights vi-tilde-fringe vdirel uuidgen use-package typit twittering-mode tumblesocks toml-mode toc-org thrift tagedit stan-mode spray spotify spacemacs-theme spaceline smex smeargle slime-company slim-mode shell-pop scss-mode scad-mode sass-mode rvm ruby-tools ruby-test-mode rubocop rspec-mode robe reveal-in-osx-finder restclient restart-emacs request rbenv ranger rainbow-mode rainbow-identifiers rainbow-delimiters racer quelpa qml-mode pyvenv pytest pyenv-mode py-isort pug-mode psci psc-ide projectile-rails popwin pip-requirements phpunit phpcbf php-extras php-auto-yasnippets persp-mode pbcopy paradox pandoc-mode pacmacs p4 ox-pandoc ox-gfm osx-trash osx-dictionary orgit org-projectile org-present org-pomodoro org-plus-contrib org-journal org-download org-bullets open-junk-file ob-http neotree mwim multi-term mu4e-maildirs-extension mu4e-alert move-text monokai-theme mmm-mode minitest mingus matlab-mode markdown-toc magit-gitflow magit-gh-pulls lorem-ipsum livid-mode live-py-mode linum-relative link-hint less-css-mode ledger-mode launchctl julia-mode json-mode js2-refactor js-doc ivy-hydra intero insert-shebang info+ indent-guide idris-mode ido-vertical-mode hy-mode hungry-delete hlint-refactor hl-todo hindent highlight-parentheses highlight-numbers highlight-indentation hide-comnt help-fns+ helm-make haskell-snippets hackernews google-translate golden-ratio go-guru go-eldoc gnuplot gitignore-mode github-search github-clone github-browse-file gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link git-gutter-fringe git-gutter-fringe+ gist gh-md geiser flyspell-correct-ivy flycheck-rust flycheck-pos-tip flycheck-ledger flycheck-haskell flycheck-elm flx-ido fish-mode fill-column-indicator feature-mode fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-snipe evil-search-highlight-persist evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-magit evil-lisp-state evil-indent-plus evil-iedit-state evil-exchange evil-escape evil-ediff evil-args evil-anzu eval-sexp-fu eshell-z eshell-prompt-extras esh-help erc-yt erc-view-log erc-terminal-notifier erc-social-graph erc-image erc-hl-nicks engine-mode emoji-cheat-sheet-plus emmet-mode elm-mode elisp-slime-nav dumb-jump drupal-mode disaster diff-hl deft cython-mode counsel-projectile company-web company-tern company-statistics company-shell company-go company-ghci company-ghc company-emoji company-cabal company-c-headers company-auctex company-anaconda common-lisp-snippets column-enforce-mode color-identifiers-mode coffee-mode cmm-mode cmake-mode clean-aindent-mode clang-format chruby chess cargo bundler bracketed-paste beacon auto-yasnippet auto-highlight-symbol auto-dictionary auto-compile arduino-mode aggressive-indent adaptive-wrap ace-window ace-link ac-ispell 2048-game))) '(paradox-github-token t) '(pos-tip-background-color "#A6E22E") '(pos-tip-foreground-color "#272822") diff --git a/symlinks.sh b/symlinks.sh index 8b01eb0..1a8254f 100644 --- a/symlinks.sh +++ b/symlinks.sh @@ -27,6 +27,7 @@ touch ~/.hushlogin # linux only rm -rf ~/.Xresources; ln -s ~/dotfiles/Xresources ~/.Xresources +rm -rf ~/.xprofile; ln -s ~/dotfiles/xprofile ~/.xprofile rm -rf ~/.xmonad; mkdir ~/.xmonad; ln -s ~/dotfiles/xmonad.hs ~/.xmonad/xmonad.hs rm -rf ~/.config/polybar; mkdir -p ~/.config/polybar; ln -s ~/dotfiles/polybar ~/.config/polybar/config diff --git a/xmonad.hs b/xmonad.hs index 095079d..3107116 100644 --- a/xmonad.hs +++ b/xmonad.hs @@ -5,11 +5,11 @@ import XMonad.Hooks.EwmhDesktops (ewmh) import XMonad.Hooks.ManageDocks import XMonad.Layout.Spacing import XMonad.Util.EZConfig -import System.Taffybar.Hooks.PagerHints (pagerHints) +-- import System.Taffybar.Hooks.PagerHints (pagerHints) lightBlue = "#66aaff" -main = xmonad $ docks $ ewmh $ pagerHints defaultConfig +main = xmonad $ docks $ ewmh $ defaultConfig { terminal = "urxvtc" , modMask = mod4Mask , workspaces = [ "1", "2", "3" ] @@ -19,11 +19,15 @@ main = xmonad $ docks $ ewmh $ pagerHints defaultConfig , focusFollowsMouse = False , layoutHook = avoidStruts $ spacingWithEdge 6 $ layoutHook defaultConfig , startupHook = do - spawn "pkill polybar; polybar top &" - spawn "compton" + spawn "polybar top" + spawn "compton -cGb" spawn "~/dotfiles/logitech_linux_mouse.sh" spawn "xsetroot -solid black -cursor_name left_ptr" spawn "feh --bg-fill ~/Sync/Pictures/Wallpaper/space2.jpg" + spawn "setxkbmap -option ctrl:nocaps -option compose:ralt" + spawn "xcape -e 'Control_L=Escape'" + spawn "qsyncthingtray" + spawn "xscreensaver" } `additionalKeysP` [ ("M1-", spawn "rofi -show combi") @@ -32,4 +36,5 @@ main = xmonad $ docks $ ewmh $ pagerHints defaultConfig , ("", spawn "amixer -q sset Master 5%-") , ("", spawn "amixer -q sset Master 5%+") , ("C-M-M1-b", spawn "firefox") + , ("C-M-M1-e", spawn "emacsclient -c") ] diff --git a/xprofile b/xprofile new file mode 100644 index 0000000..ed770d4 --- /dev/null +++ b/xprofile @@ -0,0 +1,8 @@ +# setxkbmap -option ctrl:nocaps -option compose:ralt +# xcape -e 'Control_L=Escape' +# compton -cGb +# sh ~/dotfiles/logitech_linux_mouse.sh +# xsetroot -solid black -cursor_name left_ptr +# feh --bg-fill ~/Sync/Pictures/Wallpaper/space2.jpg +# qsyncthingtray & +# xscreensaver &