From 78c176e81be7cb5c3b27c8e7c0ec33367f953885 Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Sun, 27 Oct 2024 08:17:21 +0200 Subject: . --- home/config.scm | 25 ++++++++++++++- home/dots/.emacs | 72 +++++++++++++++++++++++++++++++++++--------- home/dots/.local/bin/logdate | 2 +- home/dots/.xinitrc | 23 ++++++++++++++ home/dots/.xsession.bak | 18 ----------- os/config.scm | 6 ++-- 6 files changed, 109 insertions(+), 37 deletions(-) create mode 100755 home/dots/.xinitrc delete mode 100755 home/dots/.xsession.bak diff --git a/home/config.scm b/home/config.scm index 0df9d00..dd9a6cf 100644 --- a/home/config.scm +++ b/home/config.scm @@ -42,7 +42,11 @@ #:use-module (gnu home services fontutils) #:use-module (gnu home services dotfiles) #:use-module (gnu home services gnupg) + #:use-module (gnu home services desktop) #:use-module (gnu packages ssh) + #:use-module (gnu packages pdf) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages man) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) @@ -67,6 +71,14 @@ fd recutils unzip + inxi + alsa-utils + + texinfo + man-db + man-pages + mandoc + go binutils @@ -82,12 +94,18 @@ emacs-geiser emacs-geiser-guile emacs-pinentry + emacs-pdf-tools + emacs-alsamixer-el mu msmtp emacs aspell aspell-dict-en - + + xf86-input-libinput + xf86-video-fbdev + xf86-video-nouveau + gnupg age pinentry @@ -112,6 +130,11 @@ (bash-profile (list (local-file "./profile"))) (bashrc (list (local-file "./bashrc"))))) + (service home-startx-command-service-type) + (service home-xmodmap-service-type + (home-xmodmap-configuration + (key-map '(("remove Lock" . "Caps_Lock") + ("keysym Caps_Lock" . "Control_L"))))) (service home-gpg-agent-service-type (home-gpg-agent-configuration diff --git a/home/dots/.emacs b/home/dots/.emacs index 6c2eeb9..24a5403 100644 --- a/home/dots/.emacs +++ b/home/dots/.emacs @@ -3,9 +3,9 @@ (fset 'yes-or-no-p 'y-or-n-p) (setq inhibit-startup-screen t - default-frame-alist '((font . "Iosevka SS13 Extended") - (height . 125) - (line-spacing . 0.5)) +; default-frame-alist '((font . "Iosevka SS13 Extended") +; (height . 125) +; (line-spacing . 0.5)) ;; undo undo-limit 10000000 undo-outer-limit 20000000 @@ -17,6 +17,7 @@ eldoc-box elfeed elfeed-protocol + enwc emms expand-region exwm @@ -24,6 +25,7 @@ geiser-guile go-mode guix + pdf-tools lem magit markdown-mode @@ -50,6 +52,7 @@ (tool-bar-mode -1) (setq-default fill-column 80 + line-spacing 5 frame-title-format '("%b")) (package-initialize) @@ -69,7 +72,7 @@ (use-package project :ensure t - :init + :config (add-to-list 'project-switch-commands '(project-shell "Shell"))) (use-package exwm @@ -93,6 +96,15 @@ (exwm-input-set-key (kbd "C-") (lambda () (interactive) (shell-command "scrot -s -F '/home/mccd/screenshots/%Y-%m-%d_$wx$h.png'"))) + (exwm-input-set-key (kbd "") + (lambda () (interactive) + (shell-command "amixer set Master toggle 1> /dev/null"))) + (exwm-input-set-key (kbd "") + (lambda () (interactive) + (shell-command "amixer set Master 10%+ 1> /dev/null"))) + (exwm-input-set-key (kbd "") + (lambda () (interactive) + (shell-command "amixer set Master 10%- 1> /dev/null"))) (exwm-input-set-key (kbd "") (lambda () (interactive) (shell-command "brightnessctl set 5%- 1> /dev/null"))) @@ -105,6 +117,8 @@ (start-process-shell-command cmd nil cmd))) (exwm-enable) (exwm-xim-mode) + (shell-command "xset r rate 200 60 1> /dev/null") + (shell-command "xrdb ~/.Xresources") (push ?\C-\\ exwm-input-prefix-keys) :config (setq @@ -114,8 +128,6 @@ mouse-autoselect-window t) :hook (;; Make sure titles match X window - (server-after-make-frame . (lambda () - (set-window-margins (selected-window) 2 2))) (exwm-update-title . (lambda () (exwm-workspace-rename-buffer (concat exwm-class-name ":" @@ -175,6 +187,13 @@ (setq x-select-enable-clipboard t x-select-enable-primary t)) +(use-package exwm-randr + :config + (exwm-randr-enable) + (start-process-shell-command "xrandr" nil "")) + +(use-package pdf-tools) + (use-package imenu :defer t :config @@ -252,8 +271,16 @@ ("F" . forward-word) ("B" . backward-word) ("v" . scroll-up-command) - ("V" . scroll-down-command) + ("V" . scroll-down-command) + ("O" . open-line) + ("/" . undo) + ("\\" . indent-region) + ("?" . redo) + ("W" . kill-ring-save) + ("w" . kill-region) + ("y" . yank) ("o" . avy-goto-char-timer) + ("x" . eval-region) ("g" . goto-line) ("a" . move-beginning-of-line) ("k" . kill-line) @@ -278,6 +305,11 @@ repeat-exit-key (kbd "")) (repeat-mode 1)) +(use-package enwc + :ensure t + :config + (setq enwc-default-backend 'nm)) + (use-package org-crypt :ensure nil :init @@ -316,8 +348,8 @@ (use-package exwm-mff :demand t :load-path "elisp" - :hook - ((server-after-make-frame . exwm-mff-mode))) + :config + (exwm-mff-mode)) (use-package avy :ensure t @@ -536,11 +568,15 @@ (setq-local compile-command "go build ."))))) (use-package rec-mode - :ensure nil + :ensure t :defer t :mode "\\.rec\\'" + :config + (define-key rec-edit-mode-map (kbd "") nil) + (define-key rec-mode-map (kbd "") nil) :hook - ((rec-mode . flymake-mode) + ((rec-mode . variable-pitch-mode) + (rec-mode . flymake-mode) (rec-mode . eldoc-mode))) (use-package erc @@ -605,14 +641,14 @@ '(("t" "Todo" entry (file "~/personal-db/notes/todo.org") "* TODO %?\n%i\n%a\n " - :empty-lines 0) + :empty-lines 1) ("l" "Log" plain (file "~/personal-db/log") "%<%d %b %Y %H:%M> %?" :prepend t) ("n" "Inbox" entry (file "~/personal-db/notes/inbox.org") "** %?\n%T" - :empty-lines 0))) + :empty-lines 1))) (set-face-attribute 'org-block nil :inherit 'fixed-pitch) (set-face-attribute 'org-code nil :inherit 'fixed-pitch) (set-face-attribute 'org-table nil :inherit 'fixed-pitch) @@ -642,10 +678,14 @@ (use-package magit :ensure t - :demand t) + :demand t + :config + (global-key-binding (kbd "C-x p m") 'magit-project-status) + (define-key project-prefix-map (kbd "m") 'magit-project-status) + (add-to-list 'project-switch-commands '(magit-project-status "magit"))) (use-package magit-extras - :ensure nil) + :demand t) (use-package yasnippet :diminish t @@ -838,6 +878,7 @@ '(highlight ((t (:background "azure2")))) '(info-header-xref ((t (:inherit info-xref :underline (:color "RoyalBlue3" :style line :position t))))) '(info-node ((t (:foreground "brown" :box (:line-width (4 . 4) :color "white") :slant italic :weight bold)))) + '(enwc-connected ((t (:foreground "dark green" :weight bold)))) '(link ((t (:foreground "royalblue" :underline t)))) '(magit-branch-remote ((t (:foreground "royalblue")))) '(markdown-inline-code-face ((t (:inherit markdown-code-face)))) @@ -853,6 +894,7 @@ '(org-level-1 ((t (:inherit outline-1 :extend nil :weight regular)))) '(org-tag ((t (:inherit fixed-pitch :foreground "gray40" :weight regular)))) '(org-time-grid ((t (:foreground "gray")))) + '(org-quote ((t (:inherit org-block :slant italic)))) '(outline-4 ((t (:inherit outline-2)))) '(tab-bar ((t (:box (:line-width (12 . 24) :style flat-button) :weight semi-light :family "Iosevka Aile")))) '(tab-bar-tab ((t (:inherit tab-bar :foreground "black" :box (:line-width (20 . 1) :color "white") :weight semi-bold)))) diff --git a/home/dots/.local/bin/logdate b/home/dots/.local/bin/logdate index 337552a..a9d3768 100755 --- a/home/dots/.local/bin/logdate +++ b/home/dots/.local/bin/logdate @@ -1,2 +1,2 @@ -#!/bin/env sh +#!/usr/bin/env sh date +"%Y-%m-%d" diff --git a/home/dots/.xinitrc b/home/dots/.xinitrc new file mode 100755 index 0000000..24ccffb --- /dev/null +++ b/home/dots/.xinitrc @@ -0,0 +1,23 @@ +#!/usr/bin/env sh +DIR=$HOME/.guix-profile + +$DIR/bin/xinit -- $DIR/bin/Xorg :0 vt1 -keeptty \ + -configdir $DIR/share/X11/xorg.conf.d \ + -modulepath $DIR/lib/xorg/modules +export _JAVA_AWT_WM_NONREPARENTING=1 +export VISUAL=emacsclient +export EDITOR="$VISUAL" +#autocutsel & +xsetroot -solid '#FFFFFF' & +#ulimit -c 0 & +#xclock -digital -geometry +5+1402 -face "Iosevka Aile:pixelsize=18:style=regular" -bg \#282C34 -fg \#B8BCC4 -strftime "Bogo (%Y/%m/%d) %H:%M" & +gsettings set org.gnome.desktop.interface document-font-name 'Iosevka Aile' & +gsettings set org.gnome.desktop.interface font-name 'Iosevka Aile' & +gsettings set org.gnome.desktop.interface cursor-size 32 & +gsettings set org.gnome.desktop.interface cursor-theme Adwaita & +# xkbcomp $HOME/.config/keymap_locked_modifier.xkb $DISPLAY & +setxkbmap -layout us -variant colemak -option "caps:ctrl_modifier" & +xsetroot -cursor_name left_ptr & +xset r rate 200 60 & +emacs --daemon --eval "(require 'exwm)" -f exwm-enable +exec dbus-launch emacsclient -c diff --git a/home/dots/.xsession.bak b/home/dots/.xsession.bak deleted file mode 100755 index 5823726..0000000 --- a/home/dots/.xsession.bak +++ /dev/null @@ -1,18 +0,0 @@ - -#!/usr/bin/env sh -export _JAVA_AWT_WM_NONREPARENTING=1 -export VISUAL=emacsclient -export EDITOR="$VISUAL" -#autocutsel & -xsetroot -solid '#FFFFFF' & -#ulimit -c 0 & -#xclock -digital -geometry +5+1402 -face "Iosevka Aile:pixelsize=18:style=regular" -bg \#282C34 -fg \#B8BCC4 -strftime "Bogo (%Y/%m/%d) %H:%M" & -gsettings set org.gnome.desktop.interface document-font-name 'Iosevka Aile' & -gsettings set org.gnome.desktop.interface font-name 'Iosevka Aile' & -gsettings set org.gnome.desktop.interface cursor-size 32 & -gsettings set org.gnome.desktop.interface cursor-theme Adwaita & -# xkbcomp $HOME/.config/keymap_locked_modifier.xkb $DISPLAY & -#xsetroot -cursor_name left_ptr & -xset r rate 200 60 & -emacs --daemon --eval "(require 'exwm)" -f exwm-enable -exec dbus-launch emacsclient -c diff --git a/os/config.scm b/os/config.scm index 0244ee5..07db39f 100644 --- a/os/config.scm +++ b/os/config.scm @@ -38,8 +38,10 @@ ;; for packages and 'guix install PACKAGE' to install a package. (packages (append (list (specification->package "emacs") (specification->package "emacs-exwm") - (specification->package "nix") - (specification->package "mu") + (specification->package "nix") + (specification->package "xf86-input-libinput") + (specification->package "xf86-video-fbdev") + (specification->package "xf86-video-nouveau") (specification->package "guile") (specification->package "texinfo") (specification->package "man-db") -- cgit v1.2.3