#+TITLE: Desktop Configuration This =.org= document is where I store all of my user-level application configuration including shells, terminal emulators, browsers etc. * Nyxt Nyxt is a browser written in Common Lisp that follows the same philosophy of extensibility as Emacs. This makes it a perfect companion to an Emacs centered eco-system when you need a browser with more features than Eww. #+begin_src lisp :tangle ~/Dotfiles/.config/nyxt/init.lisp :mkdirp yes ;; Set default modes when opening Nyxt. (define-configuration buffer ((default-modes (append '(dark-mode vi-normal-mode) %slot-default%)))) ;; Keybindings ;; (Note: Override Map will override any other custom keybindings so use a prefix key.) (define-configuration buffer ((override-map (define-key %slot-default% "C-x s" 'nyxt/web-mode:search-buffers "C-x d" 'delete-current-buffer)))) ;; todo: Redirect reddit to teddit ;; (defun old-reddit-handler (request-data) ;; (let ((url (url request-data))) ;; (setf (url request-data) ;; (if (search "reddit.com" (quri:uri-host url)) ;; (progn ;; (setf (quri:uri-host url) "old.reddit.com") ;; (log:info "Switching to old Reddit: ~s" (render-url url)) ;; url) ;; url))) ;; request-data) ;; (define-configuration web-buffer ;; ((request-resource-hook ;; (hooks:add-hook %slot-default% (make-handler-resource #'old-reddit-handler))))) ;; (See url-dispatching-handler for a simpler way to achieve the same result.) #+end_src * Shell Aside from using e-shell for quick command line usage, I mainly use vterm with Zsh. It's a bit of a complicated setup but allows for the maximum number of files possible to live in .config instead of littering my home directory. The entry-poignado ** zshrc #+begin_src shell :tangle ~/Dotfiles/.config/zsh/.zshrc :mkdirp yes [[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return # --- zsh config --- # export ZSH="$XDG_CONFIG_HOME/oh-my-zsh" HISTFILE=$XDG_CONFIG_HOME/zsh/.history ZSH_THEME="mrtazz" DISABLE_AUTO_UPDATE="true" ENABLE_CORRECTION="true" plugins=(git) # This has to stay below plugins. source $ZSH/oh-my-zsh.sh # --- user paths --- # # scripts export PATH=/home/ry/scripts:$PATH # cron scripts export PATH=/home/ry/scripts/cron-scripts:$PATH # doom export PATH=~/.config/emacs/bin:$PATH # GNU Guix path export PATH=/home/ry/.guix-profile/bin:$PATH # --- locale --- # export LANG=en_US.UTF-8 # --- autostart --- # pfetch # --- Functions --- # # Move files to trash folder instead. del () { mv "$@" $HOME/.local/share/Trash/files/.; } # Make directory and CD into it. mkcd () { mkdir -p -- "$1" && cd -P -- "$1" } # --- Aliases --- # # dnf alias install="sudo dnf -y install" alias remove="sudo dnf remove" alias search="dnf search" alias update="sudo dnf update" # qol alias vi="nvim" alias vim="nvim" alias unmount="umount" # systemD alias sr="sudo systemctl restart" alias se="sudo systemctl enable" alias sen="sudo systemctl enable --now" alias sd="sudo systemctl disable" # git alias ga="git add" alias gc="git commit -m" alias gs="git status" alias gd="git diff" alias gm="git merge" alias gp="git push" alias gco="git checkout" # config alias zshrc="vim ~/dotfiles/.config/zsh/.zshrc" alias zshrcsource="source ~/.config/zsh/.zshrc" # firewalld alias fcmd="firewall-cmd" #+end_src **