diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 4dab6da..d037dc3 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -39,10 +39,10 @@ (setq custom-safe-themes t) ;; Treat themes as safe ;; Disable line mode for specific major/minor modes. -(dolist (mode '(org-mode-hook)) - 'term-mode-hook - 'shell-mode-hook - 'eshell-mode-hook +(dolist (mode '(org-mode-hook + vterm-mode-hook + term-mode-hook + eshell-mode-hook)) (add-hook mode (lambda () (display-line-numbers-mode 0)))) (set-frame-parameter (selected-frame) 'alpha '(90 . 90)) @@ -589,6 +589,13 @@ (defvar inferior-lisp-program "sbcl") (use-package sly :straight t) +(use-package geiser + :straight t + :ensure t + :custom + (setq geiser-guile-binary "guile") + (setq geiser-active-implementations '(guile))) + (use-package yasnippet :straight t :hook (prog-mode . yas-minor-mode) @@ -686,3 +693,35 @@ ;; erc-interpret-mirc-color t ;; erc-rename-buffers t ;; erc-track-exclude-server-buffer t)) +(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. + '(safe-local-variable-values + '((eval modify-syntax-entry 43 "'") + (eval modify-syntax-entry 36 "'") + (eval modify-syntax-entry 126 "'") + (eval let + ((root-dir-unexpanded + (locate-dominating-file default-directory ".dir-locals.el"))) + (when root-dir-unexpanded + (let* + ((root-dir + (expand-file-name root-dir-unexpanded)) + (root-dir* + (directory-file-name root-dir))) + (unless + (boundp 'geiser-guile-load-path) + (defvar geiser-guile-load-path 'nil)) + (make-local-variable 'geiser-guile-load-path) + (require 'cl-lib) + (cl-pushnew root-dir* geiser-guile-load-path :test #'string-equal)))) + (eval setq-local guix-directory + (locate-dominating-file default-directory ".dir-locals.el"))))) +(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. + ) diff --git a/.config/guix/home-desk.scm b/.config/guix/home-desk.scm index 050a918..6359e75 100644 --- a/.config/guix/home-desk.scm +++ b/.config/guix/home-desk.scm @@ -59,7 +59,8 @@ (specification->package "keepassxc") (specification->package "font-fira-mono") (specification->package "font-fira-sans") - (specification->package "font-fira-code")) + (specification->package "font-fira-code") + (specification->package "gcc-toolchain")) %base-packages)) (services (append (modify-services %desktop-services diff --git a/.config/guix/work-laptop.scm b/.config/guix/work-laptop.scm index ac720fe..47e7ac9 100644 --- a/.config/guix/work-laptop.scm +++ b/.config/guix/work-laptop.scm @@ -1,11 +1,16 @@ (use-modules (gnu) - (nongnu packages linux)) + (gnu services desktop) + (gnu packages wm) + (gnu system setuid) + (gnu packages admin) + (nongnu packages linux)) (use-service-modules - cups - desktop - networking - ssh - xorg) + cups + desktop + networking + ssh + sddm + xorg) (operating-system (kernel linux) @@ -13,6 +18,10 @@ (locale "en_US.utf8") (timezone "America/Los_Angeles") (keyboard-layout (keyboard-layout "us")) + (setuid-programs + (cons (setuid-program + (program (file-append swaylock "/bin/swaylock"))) + %setuid-programs)) (host-name "work") (users (cons* (user-account (name "opal") @@ -24,34 +33,37 @@ %base-user-accounts)) (packages (append - (list + (list (specification->package "git") - (specification->package "xclip") + (specification->package "wl-clipboard") (specification->package "vim") (specification->package "nss-certs") (specification->package "stow") (specification->package "exfat-utils") (specification->package "emacs") - (specification->package "emacs-exwm") - (specification->package "sway") + (specification->package "emacs-exwm") + (specification->package "sway") + (specification->package "swaybg") + (specification->package "swaylock") + (specification->package "swayidle") + (specification->package "polybar") + (specification->package "nyxt") + (specification->package "dmenu") (specification->package "bluez") (specification->package "bluez-alsa") (specification->package "pulseaudio") - (specification->package "nyxt") (specification->package "keepassxc") (specification->package "font-fira-mono") (specification->package "font-fira-sans") (specification->package "font-fira-code") - (specification->package "gnome-tweaks")) - %base-packages)) - (services - (append - (list (service gnome-desktop-service-type) - (service cups-service-type) - (set-xorg-configuration - (xorg-configuration - (keyboard-layout keyboard-layout)))) - %desktop-services)) + (specification->package "gcc-toolchain")) + %base-packages)) + (services + (append (modify-services %desktop-services + (delete gdm-service-type)) + (list (service sddm-service-type + (sddm-configuration + (display-server "wayland")))))) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) diff --git a/.config/guix/work-laptop.scm~ b/.config/guix/work-laptop.scm~ new file mode 100644 index 0000000..10914fa --- /dev/null +++ b/.config/guix/work-laptop.scm~ @@ -0,0 +1,72 @@ +;; This is an operating system configuration generated +;; by the graphical installer. + +(use-modules (gnu) + (nongnu packages linux)) +(use-service-modules + cups + desktop + networking + ssh + xorg) + +(operating-system + (kernel linux) + (firmware (list linux-firmware)) + (locale "en_US.utf8") + (timezone "America/Los_Angeles") + (keyboard-layout (keyboard-layout "us")) + (host-name "work") + (users (cons* (user-account + (name "opal") + (comment "Opal") + (group "users") + (home-directory "/home/opal") + (supplementary-groups + '("wheel" "netdev" "audio" "video"))) + %base-user-accounts)) + (packages + (append + (list + (specification->package "git") + (specification->package "vim") + (specification->package "nss-certs") + (specification->package "stow") + (specification->package "exfat-utils") + (specification->package "emacs") + (specification->package "bluez") + (specification->package "bluez-alsa") + (specification->package "pulseaudio") + (specification->package "nyxt") + (specification->package "keepassxc")) + %base-packages)) + (services + (append + (list (service gnome-desktop-service-type) + (service cups-service-type) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)))) + %desktop-services)) + (bootloader + (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")) + (keyboard-layout keyboard-layout))) + (mapped-devices + (list (mapped-device + (source + (uuid "abe760e2-4ba5-4f43-81a2-1c3f16eb62a8")) + (target "cryptroot") + (type luks-device-mapping)))) + (file-systems + (cons* (file-system + (mount-point "/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot/efi") + (device (uuid "15B3-5DE5" 'fat32)) + (type "vfat")) + %base-file-systems))) diff --git a/.config/nyxt/init.lisp b/.config/nyxt/init.lisp index 778b9ba..3b1b78d 100644 --- a/.config/nyxt/init.lisp +++ b/.config/nyxt/init.lisp @@ -1,8 +1,8 @@ (in-package :nyxt) -;; (load "~/quicklisp/setup.lisp") -;; (ql:quickload 'slynk) +(load "~/quicklisp/setup.lisp") +(ql:quickload 'slynk) ;; (push #p"~/common-lisp/sly/" asdf:*central-registry*) -(asdf:load-system :slynk) +;; (asdf:load-system :slynk) ;; (slynk:create-server :port 4008) (load-after-system :slynk (nyxt-init-file "my-slink.lisp")) diff --git a/.config/sway/config b/.config/sway/config index 1e24a3a..118a767 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -40,7 +40,7 @@ output * bg /home/opal/Dotfiles/guix-wallpaper.jpg stretch # # Example configuration: # -# output HDMI-A-1 resolution 1920x1080 position 1920,0 +output eDP-1 resolution 1920x1080 position 0,0 # # You can get the names of your outputs by running: swaymsg -t get_outputs @@ -79,8 +79,7 @@ bindsym $mod+Shift+q kill # Lock SwayWM # Doesn't work for some reason. Needs fix. -bindsym $mod+Shift+p swaylock - +bindsym Control+Shift+l exec swaylock # Start your launcher bindsym $mod+d exec $menu @@ -92,7 +91,7 @@ floating_modifier $mod normal bindsym $mod+Shift+c reload # Exit sway (logs you out of your Wayland session) -bindsym $mod+Shift+x swaymsg -r exit +bindsym $mod+Shift+x exec swaymsg -r exit # Moving around: # diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile index 48dfed3..dac87fa 100644 --- a/.config/zsh/.zprofile +++ b/.config/zsh/.zprofile @@ -12,4 +12,4 @@ export XDG_DATA_HOME=~/.local/share export XDG_STATE_HOME=~/.config/zsh export EDITOR=nvim export VISUAL=nvim -export GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile" +GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile" diff --git a/Desktop.org b/Desktop.org index 2a6787a..ecc8b03 100644 --- a/Desktop.org +++ b/Desktop.org @@ -48,7 +48,7 @@ output * bg /home/opal/Dotfiles/guix-wallpaper.jpg stretch # # Example configuration: # -# output HDMI-A-1 resolution 1920x1080 position 1920,0 +output eDP-1 resolution 1920x1080 position 0,0 # # You can get the names of your outputs by running: swaymsg -t get_outputs @@ -87,8 +87,7 @@ bindsym $mod+Shift+q kill # Lock SwayWM # Doesn't work for some reason. Needs fix. -bindsym $mod+Shift+p swaylock - +bindsym Control+Shift+l exec swaylock # Start your launcher bindsym $mod+d exec $menu @@ -100,7 +99,7 @@ floating_modifier $mod normal bindsym $mod+Shift+c reload # Exit sway (logs you out of your Wayland session) -bindsym $mod+Shift+x swaymsg -r exit +bindsym $mod+Shift+x exec swaymsg -r exit # Moving around: # @@ -331,7 +330,7 @@ export XDG_DATA_HOME=~/.local/share export XDG_STATE_HOME=~/.config/zsh export EDITOR=nvim export VISUAL=nvim -export GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile" +GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile" #+end_src ** zshenv #+begin_src shell :tangle ~/Dotfiles/.zshenv :mkdirp yes diff --git a/Emacs.org b/Emacs.org index bffec54..4dd34b2 100644 --- a/Emacs.org +++ b/Emacs.org @@ -74,10 +74,10 @@ I use [[https://github.com/raxod502/straight.el][straight.el]] for managing pack (setq custom-safe-themes t) ;; Treat themes as safe ;; Disable line mode for specific major/minor modes. -(dolist (mode '(org-mode-hook)) - 'term-mode-hook - 'shell-mode-hook - 'eshell-mode-hook +(dolist (mode '(org-mode-hook + vterm-mode-hook + term-mode-hook + eshell-mode-hook)) (add-hook mode (lambda () (display-line-numbers-mode 0)))) #+end_src *** Transparency @@ -751,6 +751,16 @@ Sets HTML strings to have the background of the color they represent. (defvar inferior-lisp-program "sbcl") (use-package sly :straight t) #+end_src +*** Scheme +#+begin_src emacs-lisp +(use-package geiser + :straight t + :ensure t) + +(use-package geiser-guile + :straight t) + +#+end_src *** Snippets Snippets allow certain files to be filled with a template depending on its filename extension. #+begin_src emacs-lisp diff --git a/Guix.org b/Guix.org index 32aa52b..cb3a83e 100644 --- a/Guix.org +++ b/Guix.org @@ -24,7 +24,8 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))) #+end_src -* Home Desktop +* System +** Home Desktop #+begin_src scheme :tangle ~/Dotfiles/.config/guix/home-desk.scm :mkdirp yes (use-modules (gnu) (gnu services desktop) @@ -34,12 +35,12 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from (nongnu packages linux)) (use-service-modules - cups - desktop - networking - ssh - sddm - xorg) + cups + desktop + networking + ssh + sddm + xorg) (operating-system (kernel linux) @@ -53,83 +54,109 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from (program (file-append swaylock "/bin/swaylock"))) %setuid-programs)) (users (cons* (user-account - (name "opal") - (comment "opal") - (group "users") - (home-directory "/home/opal") - (supplementary-groups - '("wheel" - "netdev" - "audio" - "video"))) + (name "opal") + (comment "opal") + (group "users") + (home-directory "/home/opal") + (supplementary-groups + '("wheel" + "netdev" + "audio" + "video"))) %base-user-accounts)) (packages - (append - (list - (specification->package "git") - (specification->package "wl-clipboard") - (specification->package "vim") - (specification->package "nss-certs") - (specification->package "stow") - (specification->package "exfat-utils") - (specification->package "emacs") - (specification->package "emacs-exwm") - (specification->package "sway") - (specification->package "swaybg") - (specification->package "swaylock") - (specification->package "swayidle") - (specification->package "polybar") - (specification->package "nyxt") - (specification->package "dmenu") - (specification->package "bluez") - (specification->package "bluez-alsa") - (specification->package "pulseaudio") - (specification->package "keepassxc") - (specification->package "font-fira-mono") - (specification->package "font-fira-sans") - (specification->package "font-fira-code")) - %base-packages)) + (append + (list + (specification->package "git") + (specification->package "wl-clipboard") + (specification->package "vim") + (specification->package "nss-certs") + (specification->package "stow") + (specification->package "exfat-utils") + (specification->package "emacs") + (specification->package "emacs-exwm") + (specification->package "sway") + (specification->package "swaybg") + (specification->package "swaylock") + (specification->package "swayidle") + (specification->package "polybar") + (specification->package "nyxt") + (specification->package "dmenu") + (specification->package "bluez") + (specification->package "bluez-alsa") + (specification->package "pulseaudio") + (specification->package "keepassxc") + (specification->package "font-fira-mono") + (specification->package "font-fira-sans") + (specification->package "font-fira-code") + (specification->package "gcc-toolchain")) + %base-packages)) (services (append (modify-services %desktop-services (delete gdm-service-type)) (list (service sddm-service-type (sddm-configuration (display-server "wayland")))))) - (bootloader - (bootloader-configuration - (bootloader grub-efi-bootloader) - (targets (list "/boot/efi")) - (keyboard-layout keyboard-layout))) + (bootloader + (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")) + (keyboard-layout keyboard-layout))) (mapped-devices - (list (mapped-device - (source - (uuid "40aa6387-e935-4f70-8e7d-1975678a5a32")) - (target "cryptroot") - (type luks-device-mapping)))) + (list (mapped-device + (source + (uuid "40aa6387-e935-4f70-8e7d-1975678a5a32")) + (target "cryptroot") + (type luks-device-mapping)))) (file-systems - (cons* (file-system - (mount-point "/") - (device "/dev/mapper/cryptroot") - (type "btrfs") - (dependencies mapped-devices)) - (file-system - (mount-point "/boot/efi") - (device (uuid "1C3B-10F5" 'fat32)) - (type "vfat")) - %base-file-systems))) + (cons* (file-system + (mount-point "/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot/efi") + (device (uuid "1C3B-10F5" 'fat32)) + (type "vfat")) + %base-file-systems))) + +;; (setuid-programs +;; (let ((from (lambda (package file) +;; (setuid-program (program (file-append package file)))))) +;; (cons* (from light "/bin/light") +;; (from mtr "/sbin/mtr") +;; (from network-manager "/bin/nmtui") +;; (from nfs-utils "/sbin/mount.nfs") +;; (from swaylock "/bin/swaylock") +;; %setuid-programs))) + +;; (services (cons* ... +;; (modify-services %desktop-services +;; (gdm-service-type config +;; => (gdm-configuration +;; (inherit config) +;; (wayland? #t) +;; (debug? #t)))))) + + #+end_src -* Work Laptop +** Work Laptop #+begin_src scheme :tangle ~/Dotfiles/.config/guix/work-laptop.scm :mkdirp yes (use-modules (gnu) - (nongnu packages linux)) + (gnu services desktop) + (gnu packages wm) + (gnu system setuid) + (gnu packages admin) + (nongnu packages linux)) (use-service-modules - cups - desktop - networking - ssh - xorg) + cups + desktop + networking + ssh + sddm + xorg) (operating-system (kernel linux) @@ -137,6 +164,10 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from (locale "en_US.utf8") (timezone "America/Los_Angeles") (keyboard-layout (keyboard-layout "us")) + (setuid-programs + (cons (setuid-program + (program (file-append swaylock "/bin/swaylock"))) + %setuid-programs)) (host-name "work") (users (cons* (user-account (name "opal") @@ -148,34 +179,37 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from %base-user-accounts)) (packages (append - (list + (list (specification->package "git") - (specification->package "xclip") + (specification->package "wl-clipboard") (specification->package "vim") (specification->package "nss-certs") (specification->package "stow") (specification->package "exfat-utils") (specification->package "emacs") - (specification->package "emacs-exwm") - (specification->package "sway") + (specification->package "emacs-exwm") + (specification->package "sway") + (specification->package "swaybg") + (specification->package "swaylock") + (specification->package "swayidle") + (specification->package "polybar") + (specification->package "nyxt") + (specification->package "dmenu") (specification->package "bluez") (specification->package "bluez-alsa") (specification->package "pulseaudio") - (specification->package "nyxt") (specification->package "keepassxc") (specification->package "font-fira-mono") (specification->package "font-fira-sans") (specification->package "font-fira-code") - (specification->package "gnome-tweaks")) - %base-packages)) - (services - (append - (list (service gnome-desktop-service-type) - (service cups-service-type) - (set-xorg-configuration - (xorg-configuration - (keyboard-layout keyboard-layout)))) - %desktop-services)) + (specification->package "gcc-toolchain")) + %base-packages)) + (services + (append (modify-services %desktop-services + (delete gdm-service-type)) + (list (service sddm-service-type + (sddm-configuration + (display-server "wayland")))))) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) @@ -199,3 +233,34 @@ Disclaimer: I use the nonguix channel only for the use of building Firefox from (type "vfat")) %base-file-systems))) #+end_src + +* Home +#+begin_src scheme +;; List of packages that I need to add to a home configuration. +(list + python-pip + libtool + emacs-vterm + emacs-geiser + emacs-geiser-guile + make + cmake + nyxt + sbcl + python + alacritty + perl + gcc + zsh + curl + wget + zathura + zathura-pdf-mupdf + zathura-pdf-poppler + zip + unzip + thunar + papirus-icon-theme + guile + python-lsp-server) +#+end_src diff --git a/Nyxt.org b/Nyxt.org index 028d5d7..73a9725 100644 --- a/Nyxt.org +++ b/Nyxt.org @@ -6,10 +6,10 @@ Nyxt is a browser written in Common Lisp that follows the same philosophy of ext * Load Quicklisp & Slynk #+begin_src lisp (in-package :nyxt) -;; (load "~/quicklisp/setup.lisp") -;; (ql:quickload 'slynk) +(load "~/quicklisp/setup.lisp") +(ql:quickload 'slynk) ;; (push #p"~/common-lisp/sly/" asdf:*central-registry*) -(asdf:load-system :slynk) +;; (asdf:load-system :slynk) ;; (slynk:create-server :port 4008) #+end_src * Import Functions