From 521157804cc4fb8e9550e3552c205d045213612f Mon Sep 17 00:00:00 2001 From: Mikhail Kirillov Date: Wed, 25 Sep 2024 23:43:27 +0400 Subject: Update dotfiles --- X/.xinitrc | 2 + emacs/.emacs.d/.emacs-config.org | 192 ++++++++------- guix/.config/gtk-3.0/gtk.css | 1 - guix/.config/gtk-3.0/settings.ini | 1 - guix/.config/nixpkgs/config.nix | 1 - guix/.dotfiles/.bash_profile | 16 +- guix/.dotfiles/.bashrc | 10 +- guix/.dotfiles/home-configuration.scm | 440 ++++++++++++++++++++-------------- guix/.dotfiles/id_rsa.pub | 1 - guix/.guix-packages/emacs.scm | 1 - guix/.guix-packages/kiwix.scm | 1 - guix/.guix-packages/php.scm | 1 - guix/.guix-packages/python.scm | 1 - guix/config-desktop.scm | 95 +++++--- guix/config-desktop.scm~ | 154 ------------ wm/.ratpoisonrc | 15 +- 16 files changed, 461 insertions(+), 471 deletions(-) delete mode 120000 guix/.config/gtk-3.0/gtk.css delete mode 120000 guix/.config/gtk-3.0/settings.ini delete mode 120000 guix/.config/nixpkgs/config.nix delete mode 100644 guix/.dotfiles/id_rsa.pub delete mode 120000 guix/.guix-packages/emacs.scm delete mode 120000 guix/.guix-packages/kiwix.scm delete mode 120000 guix/.guix-packages/php.scm delete mode 120000 guix/.guix-packages/python.scm delete mode 100644 guix/config-desktop.scm~ diff --git a/X/.xinitrc b/X/.xinitrc index ee19bf4..8b1f44f 100755 --- a/X/.xinitrc +++ b/X/.xinitrc @@ -1 +1,3 @@ +xrandr --output HDMI-A-0 --mode 1920x1080 --rate 240 --filter nearest exec ratpoison + diff --git a/emacs/.emacs.d/.emacs-config.org b/emacs/.emacs.d/.emacs-config.org index 817f974..ee30acb 100644 --- a/emacs/.emacs.d/.emacs-config.org +++ b/emacs/.emacs.d/.emacs-config.org @@ -103,13 +103,18 @@ Only needed when I need to install a package from Melpa and not GNU Guix Изначально они отключены, но можно вызвать по клавише F7. #+BEGIN_SRC emacs-lisp :tangle init.el (define-key global-map - (kbd "") 'global-display-line-numbers-mode) + (kbd "") 'display-line-numbers-mode) (define-key global-map (kbd "") 'whitespace-mode) #+END_SRC * Editing +** Completion styles +#+begin_src emacs-lisp :tangle init.el + (setq completion-styles '(basic partial-completion emacs22 substring)) +#+end_src + ** Dired #+BEGIN_SRC emacs-lisp :tangle init.el ;; Show files in KiB @@ -169,12 +174,14 @@ I use Flymake and Flycheck ** Imenu List #+begin_src emacs-lisp :tangle init.el - - (setq imenu-list-focus-after-activation nil - imenu-list-auto-resize nil - imenu-list-mode-line-format '() - imenu-list-size 0.4) - (global-set-key (kbd "C-x C-d") #'imenu-list-smart-toggle) + (use-package imenu-list + :bind + ("C-x C-d" . imenu-list-smart-toggle) + :config + (setq imenu-list-focus-after-activation nil + imenu-list-auto-resize nil + imenu-list-mode-line-format '() + imenu-list-size 0.4)) #+end_src ** Version Control System @@ -212,13 +219,13 @@ https://www.manueluberti.eu//emacs/2021/11/27/vc/ (use-package avy :defer t :bind (("M-s M-s" . avy-goto-char) - ("M-s s" . avy-goto-char) - ("M-s g" . avy-goto-line) - ("M-s l" . avy-goto-char-in-line) - ("M-s M-l" . avy-goto-char-in-line) + ("M-s s" . avy-goto-char) + ("M-s g" . avy-goto-line) + ("M-s l" . avy-goto-char-in-line) + ("M-s M-l" . avy-goto-char-in-line) - ("M-g g" . avy-goto-line) - ("M-s M-g" . avy-goto-line))) + ("M-g g" . avy-goto-line) + ("M-s M-g" . avy-goto-line))) (use-package link-hint :defer t @@ -228,12 +235,17 @@ https://www.manueluberti.eu//emacs/2021/11/27/vc/ (use-package goto-chg :defer t :bind (("C-z" . goto-last-change) - ("M-z" . goto-last-change-reverse))) + ("M-z" . goto-last-change-reverse))) ;; Jumps using grep and similar tools (use-package dumb-jump :defer t - :bind (("C-." . dumb-jump-go))) + :bind (("M-g o" . dumb-jump-go-other-window) + ("M-g j" . dumb-jump-go) + ("M-g b" . dumb-jump-back) + ("M-g q" . dumb-jump-quick-look) + ("M-g x" . dumb-jump-go-prefer-external) + ("M-g z" . dumb-jump-go-prefer-external-other-window))) #+END_SRC @@ -266,24 +278,32 @@ I use built-in project.el ** Tags Для прыжков и поиска функций/классов и т.д. -#+BEGIN_SRC emacs-lisp :tangle nil - (setq path-to-ctags "~/.guix-profile/bin/ctags") - +#+BEGIN_SRC emacs-lisp :tangle init.el + (setq path-to-ctags "~/.guix-home/profile/bin/ctags") + (defun tags-create (dir-name) "Create tags file." (interactive "DDirectory: ") (shell-command (format "%s -f TAGS -e -R %s" path-to-ctags - (directory-file-name dir-name)))) - + (directory-file-name dir-name)))) + (defun tags-create-python (dir-name) "Create tags with python interpreter" (interactive "DDirectory: ") (shell-command (format "%s -f TAGS -e -R --fields=+l --languages=python --python-kinds=-iv $(python -c \"import os, sys; print(' '.join('{}'.format(d) for d in sys.path if os.path.isdir(d)))\") %s" path-to-ctags - (directory-file-name dir-name)))) + (directory-file-name dir-name)))) #+END_SRC +#+begin_src emacs-lisp :tangle init.el + (use-package ggtags + :defer t + :hook + (c-mode . ggtags-mode)) +#+end_src + + ** Дебаггер #+begin_src emacs-lisp :tangle nil (when (package-loaded? "realgud") @@ -368,6 +388,10 @@ I use built-in project.el ** Клиент LSP #+begin_src emacs-lisp :tangle init.el + (with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + '((php-mode phps-mode php-ts-mode) . ("/home/w96k/projects/phpactor/bin/phpactor" "language-server" "-vvv")))) + ;; (with-eval-after-load 'eglot ;; (add-to-list 'eglot-server-programs '((php-mode phps-mode) . ("~/projects/phpactor/bin/phpactor" "language-server" "-vvv"))) ;; (add-to-list 'eglot-server-programs '((php-mode phps-mode) . ("intelephense" "--stdio"))) @@ -381,10 +405,10 @@ I use built-in project.el ;; Show all of the available eldoc information when we want it. This way Flymake errors ;; don't just get clobbered by docstrings. (add-hook 'eglot-managed-mode-hook - (lambda () - "Make sure Eldoc will show us all of the feedback at point." - (setq-local eldoc-documentation-strategy - #'eldoc-documentation-compose))) + (lambda () + "Make sure Eldoc will show us all of the feedback at point." + (setq-local eldoc-documentation-strategy + #'eldoc-documentation-compose))) #+end_src ** Линтеры @@ -556,87 +580,66 @@ Sudo-edit ;; (defun init-php-mode () ;; (eglot-ensure)) - - (with-eval-after-load 'php-mode - - ;; (add-hook 'php-mode-hook #'init-php-mode) - ) - - (when (package-loaded? "php-mode") - (progn - (add-hook 'php-mode-hook 'php-enable-symfony2-coding-style) - (setq lsp-intelephense-php-version "8.1.16") - (defvar phpactor-executable "~/.bin/phpactor") - (custom-set-variables '(lsp-phpactor-path "~/usr/local/bin/phpactor")) - - (add-hook 'php-mode-hook - '(lambda () - ;; (require 'yasnippet) - ;; (require 'yasnippet-snippets) - (set-fill-column 120) - - ;; (make-local-variable 'eldoc-documentation-function) - ;; (setq eldoc-documentation-function - ;; 'phpactor-hover) - ;; (yas-minor-mode t) - (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point))) + (use-package php-mode + :bind ("C-c h" . 'php-quickhelp-at-point) + :config - (setq php-manual-path - "~/php/php-manual/" - php-quickhelp-dir "~/php/php-manual/" - php-quickhelp--dest "~/.emacs.d/php-manual/php_manual_en.json") + (setq php-manual-path + "~/projects/php-manual/" + php-quickhelp-dir "~/projects/php-manual/" + php-quickhelp--dest "~/projects/php-manual/php_manual_en.json")) - ;; (add-hook 'php-mode-hook - ;; '(lambda () - ;; ;; (auto-complete-mode t) + ;; (add-hook 'php-mode-hook + ;; '(lambda () + ;; ;; (auto-complete-mode t) - ;; ;; (require 'ac-php) - ;; (require 'php-quickhelp) - ;; (require 'company) - ;; (company-mode t) - ;; (require 'company-php) - ;; (require 'company-quickhelp) + ;; ;; (require 'ac-php) + ;; (require 'php-quickhelp) + ;; (require 'company) + ;; (company-mode t) + ;; (require 'company-php) + ;; (require 'company-quickhelp) - ;; (require 'yasnippet) - ;; (require 'yasnippet-snippets) + ;; (require 'yasnippet) + ;; (require 'yasnippet-snippets) - ;; (set (make-local-variable 'company-backends) - ;; '((company-ac-php-backend company-dabbrev-code) - ;; php-quickhelp-company-php - ;; company-capf company-files)) + ;; (set (make-local-variable 'company-backends) + ;; '((company-ac-php-backend company-dabbrev-code) + ;; php-quickhelp-company-php + ;; company-capf company-files)) - ;; (company-quickhelp-mode t) + ;; (company-quickhelp-mode t) - ;; (define-key php-mode-map (kbd "C-M-i") 'company-complete) - ;; (define-key company-mode-map (kbd "M-TAB") 'company-complete) + ;; (define-key php-mode-map (kbd "C-M-i") 'company-complete) + ;; (define-key company-mode-map (kbd "M-TAB") 'company-complete) - ;; ;; (setq ac-sources '(ac-source-php php-quickhelp-company-php)) - ;; ;; (setq eldoc-documentation-function - ;; ;; 'php-quickhelp-eldoc-func) + ;; ;; (setq ac-sources '(ac-source-php php-quickhelp-company-php)) + ;; ;; (setq eldoc-documentation-function + ;; ;; 'php-quickhelp-eldoc-func) - ;; (yas-minor-mode t) + ;; (yas-minor-mode t) - ;; ;; (define-key php-mode-map (kbd "C-M-i") 'auto-complete) - ;; ;; (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) + ;; ;; (define-key php-mode-map (kbd "C-M-i") 'auto-complete) + ;; ;; (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) - ;; (define-key php-mode-map (kbd "C-c H") - ;; 'php-local-manual-search) + ;; (define-key php-mode-map (kbd "C-c H") + ;; 'php-local-manual-search) - ;; (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point) - ;; (define-key company-mode-map (kbd "C-c h") 'php-quickhelp-at-point) + ;; (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point) + ;; (define-key company-mode-map (kbd "C-c h") 'php-quickhelp-at-point) - ;; ;; (define-key php-mode-map (kbd "C-c t") 'ac-php-show-tip) + ;; ;; (define-key php-mode-map (kbd "C-c t") 'ac-php-show-tip) - ;; ;; Jump to definition (optional) - ;; (define-key php-mode-map - ;; (kbd "M-.") 'ac-php-find-symbol-at-point) + ;; ;; Jump to definition (optional) + ;; (define-key php-mode-map + ;; (kbd "M-.") 'ac-php-find-symbol-at-point) - ;; ;; Return back (optional) - ;; (define-key php-mode-map - ;; (kbd "M-,") 'ac-php-location-stack-back))) - )) + ;; ;; Return back (optional) + ;; (define-key php-mode-map + ;; (kbd "M-,") 'ac-php-location-stack-back))) + )) #+end_src *** Composer @@ -728,6 +731,16 @@ The main way to interact with SQL is using org-mode (sql-port 3306)))) #+end_src +*** Sql Viewer +#+begin_src emacs-lisp :tangle init.el + (unless (package-installed-p 'pg) + (package-vc-install "https://github.com/emarsden/pg-el" nil nil 'pg)) + (unless (package-installed-p 'pgmacs) + (package-vc-install "https://github.com/emarsden/pgmacs")) + + (use-package pgmacs) +#+end_src + ** Веб шаблоны *** Web-mode @@ -1248,4 +1261,5 @@ The main way to interact with SQL is using org-mode (add-hook 'dired-mode-hook 'set-normal-font) (add-hook 'org-mode-hook 'set-normal-font) + (add-hook 'Info-mode-hook 'set-normal-font) #+end_src diff --git a/guix/.config/gtk-3.0/gtk.css b/guix/.config/gtk-3.0/gtk.css deleted file mode 120000 index fa281ca..0000000 --- a/guix/.config/gtk-3.0/gtk.css +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/nhb78g142d0affc3w3b92r86gmm9939z-home-dotfiles--config-gtk-3-0-gtk-css \ No newline at end of file diff --git a/guix/.config/gtk-3.0/settings.ini b/guix/.config/gtk-3.0/settings.ini deleted file mode 120000 index 2d402fc..0000000 --- a/guix/.config/gtk-3.0/settings.ini +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/y5zs7640jnmm12sc88x88a4k8884isfp-home-dotfiles--config-gtk-3-0-settings-ini \ No newline at end of file diff --git a/guix/.config/nixpkgs/config.nix b/guix/.config/nixpkgs/config.nix deleted file mode 120000 index 31471b0..0000000 --- a/guix/.config/nixpkgs/config.nix +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/n7qm12fzblg61qblw7ylgfwwmxq14f4w-home-dotfiles--config-nixpkgs-config-nix \ No newline at end of file diff --git a/guix/.dotfiles/.bash_profile b/guix/.dotfiles/.bash_profile index 03c1fab..9972fda 100644 --- a/guix/.dotfiles/.bash_profile +++ b/guix/.dotfiles/.bash_profile @@ -5,8 +5,18 @@ eval "$(guix package --search-paths \ -p /run/current-system/profile)" # Prepend setuid programs. -export PATH=/run/setuid-programs:$PATH +export PATH=/run/setuid-programs:$PATH:$HOME/.bin:$PATH +export EMACSLOADPATH=$EMACSLOADPATH:$HOME/.emacs.d/elpa +export GTAGSLIBPATH=$GTAGSLIBPATH:$HOME/.guix-home/profile/include -export PATH=$HOME/.bin:$PATH +# export https_proxy=https://localhost:9250 +export http_proxy=https://localhost:9250 +export SOCKS_SERVER=localhost:9050 -export EMACSLOADPATH=$EMACSLOADPATH:$HOME/.emacs.d/elpa +# Set up the system, user profile, and related variables. +# /etc/profile will be sourced by bash automatically +# Set up the home environment profile. +if [ -f ~/.profile ]; then source ~/.profile; fi + +# Honor per-interactive-shell startup file +if [ -f ~/.bashrc ]; then source ~/.bashrc; fi diff --git a/guix/.dotfiles/.bashrc b/guix/.dotfiles/.bashrc index 1c5c069..a9f31f0 100644 --- a/guix/.dotfiles/.bashrc +++ b/guix/.dotfiles/.bashrc @@ -1,5 +1,13 @@ export GUIX_PACKAGE_PATH=$HOME/.guix-packages export GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles -export PS1="\e[0;34m\u@\e[0;35m\h \e[0;30m\w\${GUIX_ENVIRONMENT:+ [env]}$ " +draw_line() +{ + local COLUMNS="$COLUMNS" + while ((COLUMNS-- > 0)); do + printf '\u2500' + done +} + +export PS1="\e[37m$(draw_line)\e[32m\u\e[0m@\e[36m\h \e[1m\e[30m\w\${GUIX_ENVIRONMENT:+ [env]} \n\033[31m>>>\033[0m " diff --git a/guix/.dotfiles/home-configuration.scm b/guix/.dotfiles/home-configuration.scm index b7e53f6..ba68d27 100644 --- a/guix/.dotfiles/home-configuration.scm +++ b/guix/.dotfiles/home-configuration.scm @@ -1,5 +1,6 @@ (use-modules (gnu home) (gnu packages) + (gnu packages base) (gnu packages gnupg) (gnu packages shells) (gnu services) @@ -18,190 +19,259 @@ (define dotfiles-dir "/home/w96k/projects/dotfiles/") (define wkz-home (home-environment - (packages (specifications->packages (list - "mg" - "ratpoison" - "xterm" - "screen" - "xdot" - "graphviz" - "sed" - ;;"darktable" - - "global" - "emacs-ggtags" - "emacs-semantic-refactor" - "openssh" - "docker-compose" - "emacs-company" - "emacs-f" - "emacs-s" - "emacs-xterm-color" - "emacs-lsp-mode" - - "emacs-helm" - "emacs-helm-gtags" - - "emacs-magit" - "emacs-git-timemachine" - "emacs-browse-kill-ring" - "emacs-anzu" - "emacs-sudo-edit" - "emacs-highlight" - "emacs-mastodon" - "emacs-org-roam" - "emacs-undo-tree" - "emacs-expand-region" - - "emacs-nyxt" - "nyxt" - - "guile" - "guile-readline" - "guile-colorized" - "emacs-geiser" - "emacs-geiser-guile" - - ;;"emacs-telega" - ;;"emacs-telega-contrib" - "emacs-guix" - "emacs-simple-httpd" - "emacs-osm" - "translate-shell" - "wget" - "bitcoin-core" - "monero" - "monero-gui" - "xrandr" - "unzip" - "zip" - "mpv" - "ffmpeg" - "emacs-rmsbolt" - "git" - ;; "wkz-emacs" - "emacs-no-x-toolkit" - "emacs-gptel" - "emacs-nix-mode" - "lm-sensors" - "htop" - "make" - "emacs-simple-httpd" - "emacs-guix" - ;;"gimp" - "imagemagick" - "stow" - ;;"icecat" - "smartmontools" - "lshw" - "hwinfo" - "ntfs-3g" - "qbittorrent" - "x11-ssh-askpass" - "syncthing" - "pavucontrol" - "arp-scan" - "proot" - "openconnect" - "alsa-utils" - "grep" - "xlockmore" - "x11-ssh-askpass" - "pinentry-emacs" - ;;"texlive" - "fetchmail" - "gnupg" - "xhost" - - "universal-ctags" - - "c-intro-and-ref" - "sicp" - - "font-xfree86-type1" - "xlsfonts" - "font-alias" - ;; "wkz-php" - ;; "wkz-python" - ;; "wkz-ruby" - ))) - - ;; Below is the list of Home services. To search for available - ;; services, run 'guix home search KEYWORD' in a terminal. - (services - (list - ;; (service home-run-on-first-login-service-type) - ;; (service home-activation-service-type) - - (service home-bash-service-type - (home-bash-configuration - (guix-defaults? #t) - (aliases '(("grep" . "grep --color=auto") - ("ip" . "ip -color=auto") - ("ll" . "ls -l") - ("ls" . "ls -p --color=auto"))) - (bashrc (list (local-file - ".bashrc" - "bashrc"))) - ;; (bash-profile (list (local-file - ;; ".bash_profile" - ;; "bash_profile"))) - )) - -;; (service home-redshift-service-type -;; (home-redshift-configuration -;; (location-provider 'manual) -;; (latitude 41.71) -;; (longitude 44.82) -;; )) - - ;; (service home-x11-display-service-type) - (service home-gpg-agent-service-type - (home-gpg-agent-configuration - (pinentry-program - (file-append pinentry-emacs "/bin/pinentry-emacs")) - (ssh-support? #t))) - -;; (service home-unclutter-service-type -;; (home-unclutter-configuration -;; (idle-timeout 1))) - - (service home-openssh-service-type - (home-openssh-configuration - (authorized-keys (list (local-file "id_rsa.pub"))))) - - (service home-startx-command-service-type - (xorg-configuration (keyboard-layout (keyboard-layout "us,ru" - #:options '("grp:shifts_toggle" "ctrl:nocaps"))))) - - ;; (service home-files-service-type `((".xinitrc" ,(local-file ".xinitrc" "xinitrc")))) - - (service home-dotfiles-service-type - (home-dotfiles-configuration - ;; (layout 'stow) - (directories '( - "/home/w96k/projects/dotfiles/X" - "/home/w96k/projects/dotfiles/wm" - "/home/w96k/projects/dotfiles/emacs" - "/home/w96k/projects/dotfiles/cvs" - "/home/w96k/projects/dotfiles/guix" - )))) - - ;; (service home-ssh-agent-service-type - ;; (home-ssh-agent-configuration - ;; (extra-options '("-t" "1h30m")))) - - (simple-service 'nonguix-service - home-channels-service-type - (list - (channel - (name 'nonguix) - (url "https://gitlab.com/nonguix/nonguix") - (introduction - (make-channel-introduction - "897c1a470da759236cc11798f4e0a5f7d4d59fbc" - (openpgp-fingerprint - "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))))) - )))) + (packages (specifications->packages + (list + "glibc-locales" + "rlwrap" + "readline" + "mg" + "ratpoison" + "file" + "universal-ctags" + "perl" + "python" + "python-wrapper" + "php" + "sqls" + "go" + "ruby" + "gopls" + "delve" + "python-lsp-server" + "ruby-solargraph" + "zig-zls" + "rust-analyzer" + "racket" + "gcc-toolchain" + "clang-toolchain" + "gdb" + "valgrind" + "frama-c" + "kcachegrind" + "dwarves" + "xterm" + "screen" + "xdot" + "graphviz" + "sed" + ;;"darktable" + "global" + "emacs-edbi" + "emacs-edbi-sqlite" + "emacs-dape" + "emacs-dumb-jump" + "emacs-goto-chg" + "emacs-repology" + "emacs-syslog-mode" + "emacs-ggtags" + "emacs-semantic-refactor" + "openssh" + "docker-compose" + "emacs-docker" + "emacs-dockerfile-mode" + "emacs-docker-compose-mode" + "emacs-company" + "emacs-f" + "emacs-s" + "emacs-xterm-color" + ;; "emacs-lsp-mode" + "emacs-ebuild-mode" + + "emacs-helm" + "emacs-helm-gtags" + + "emacs-magit" + "emacs-git-timemachine" + "emacs-browse-kill-ring" + "emacs-anzu" + "emacs-sudo-edit" + "emacs-highlight" + "emacs-mastodon" + "emacs-org-roam" + "emacs-undo-tree" + "emacs-expand-region" + "emacs-avy" + "emacs-imenu-list" + + "emacs-nyxt" + + "guile" + "guile-readline" + "guile-colorized" + "emacs-geiser" + "emacs-geiser-guile" + + "emacs-telega" + "emacs-telega-contrib" + "emacs-guix" + "emacs-simple-httpd" + "emacs-osm" + "translate-shell" + "wget" + "curl" + "bitcoin-core" + "xrandr" + "unzip" + "zip" + "mpv" + "emacs-rmsbolt" + "git" + ;; "wkz-emacs" + "emacs-no-x-toolkit" + "emacs-gptel" + "emacs-nix-mode" + "lm-sensors" + "htop" + "make" + "emacs-simple-httpd" + "emacs-guix" + "emacs-hyperbole" + "emacs-php-mode" + "gimp" + "imagemagick" + "stow" + "smartmontools" + "lshw" + "hwinfo" + "qbittorrent" + "x11-ssh-askpass" + "syncthing" + "pavucontrol" + "arp-scan" + "openconnect" + "alsa-utils" + "grep" + "xlockmore" + "x11-ssh-askpass" + "pinentry" + "pinentry-emacs" + ;;"texlive" + "fetchmail" + "gnupg" + "xhost" + + "universal-ctags" + + "c-intro-and-ref" + "sicp" + + "font-xfree86-type1" + "xlsfonts" + "font-alias" + "font-gnu-unifont" + + "proxychains-ng" + "ungoogled-chromium" + "torbrowser" + "icecat" + "librewolf" + "nyxt" + "netsurf" + "ublock-origin-icecat" + "ublock-origin-chromium" + "noscript-icecat" + "browserpass-native" + + "keepassxc-browser-icecat" + "keepassxc" + + "restic" + "btrbk" + + "emacs-helm-pass" + "emacs-pass" + "password-store" + + "musescore" + "schismtracker" + "workrave" + "flatpak" + "utox" + "net-tools" + "lsof" + "podman" + "podman-compose" + "macchanger" + + "udiskie" + "emacs-discomfort" + + "yt-dlp" + "emacs-ytdl" + + ;; "wkz-php" + ;; "wkz-python" + ;; "wkz-ruby" + ))) + + ;; Below is the list of Home services. To search for available + ;; services, run 'guix home search KEYWORD' in a terminal. + (services + (list + (service home-bash-service-type + (home-bash-configuration + (guix-defaults? #t) + (aliases '(("grep" . "grep --color=auto") + ("ip" . "ip -color=auto") + ("ll" . "ls -l") + ("ls" . "ls -p --color=auto"))) + (bashrc (list (local-file + ".bashrc" + "bashrc"))) + (bash-profile (list (local-file + ".bash_profile" + "bash_profile"))) + )) + + ;; (service home-x11-display-service-type) + (service home-gpg-agent-service-type) + + ;; (service home-unclutter-service-type + ;; (home-unclutter-configuration + ;; (idle-timeout 1))) + + ;; (service home-openssh-service-type + ;; (home-openssh-configuration + ;; (authorized-keys (list (local-file "id_rsa.pub"))))) + + (service home-startx-command-service-type + (xorg-configuration (keyboard-layout (keyboard-layout "us,ru" + #:options '("grp:shifts_toggle" "ctrl:nocaps"))))) + + (service home-dotfiles-service-type + (home-dotfiles-configuration + ;; (layout 'stow) + (directories '( + "/home/w96k/projects/dotfiles/X" + "/home/w96k/projects/dotfiles/wm" + "/home/w96k/projects/dotfiles/emacs" + "/home/w96k/projects/dotfiles/cvs" + "/home/w96k/projects/dotfiles/guix" + "/home/w96k/projects/dotfiles/ssh" + )))) + + ;; (service home-ssh-agent-service-type + ;; (home-ssh-agent-configuration + ;; (extra-options '("-t" "1h30m")))) + + (service home-files-service-type + `((".guile" ,%default-dotguile))) + + (service home-xdg-configuration-files-service-type + `(("gdb/gdbinit" ,%default-gdbinit) + ("nano/nanorc" ,%default-nanorc))) + + (simple-service 'nonguix-service + home-channels-service-type + (list + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))))) + )))) wkz-home diff --git a/guix/.dotfiles/id_rsa.pub b/guix/.dotfiles/id_rsa.pub deleted file mode 100644 index 4e47387..0000000 --- a/guix/.dotfiles/id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCft3eS5RCtC321fr2JEnDAx2uvqXE2CFN7P1RzzNxb4+48zKAjPgxYkruyAcFKUDXJe9rOeP0JNA5DDZPQOHgvjJRm22PtFPPs3UdsZQHzWcd/DfhUkBwuourinKnZG/JRpOFOBt1S/7nHMNovGAk7oobIyU9gumoAOVryCiliZ/co5wziUyl8ofzJs6T50aFihFveLmlUeO1Fqlik59K3yZ9MshwLfHj5Vz4z7vNUMM5mxMM1UgfWQfrVP07VAgeQYxhcogWM8USIA+7edrewAx5ZGbcjIjPzAvTe0ijwUk/IUwsln7Z2B81mFU1ZdTR7t83uJluD82HoDkp+lXPYcI2vRiqzV14HJhKrHiJbMnXmBO2I/SGntUtSFRYy3Y7EiaujEkWuAk1yVo1Cq/aKnejlE+VfHmdqpBneJo7rrCl49aZq0j4/JNVsMdwY+t88NhlxjWJSQq6NnZL999BGxdnHL1NwRojomwbdVDvXH9ENX0JzWhMpxbBBfO/aSGk= w96k@wkz-guix diff --git a/guix/.guix-packages/emacs.scm b/guix/.guix-packages/emacs.scm deleted file mode 120000 index f918131..0000000 --- a/guix/.guix-packages/emacs.scm +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/bp44dky1ixj2w1hqjs8nw7a5k177vl9s-home-dotfiles--guix-packages-emacs-scm \ No newline at end of file diff --git a/guix/.guix-packages/kiwix.scm b/guix/.guix-packages/kiwix.scm deleted file mode 120000 index df5da02..0000000 --- a/guix/.guix-packages/kiwix.scm +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/38h5jn2wp5g1s4wqrx8maxz7vw2fshwx-home-dotfiles--guix-packages-kiwix-scm \ No newline at end of file diff --git a/guix/.guix-packages/php.scm b/guix/.guix-packages/php.scm deleted file mode 120000 index 85bf46d..0000000 --- a/guix/.guix-packages/php.scm +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/nf678d8jcd8kjz3vgf8l3zgmp7306qhx-home-dotfiles--guix-packages-php-scm \ No newline at end of file diff --git a/guix/.guix-packages/python.scm b/guix/.guix-packages/python.scm deleted file mode 120000 index ceb6ecf..0000000 --- a/guix/.guix-packages/python.scm +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/jafbqipm2a88dppzq6y9r2fhmpznb293-home-dotfiles--guix-packages-python-scm \ No newline at end of file diff --git a/guix/config-desktop.scm b/guix/config-desktop.scm index c731650..010490f 100644 --- a/guix/config-desktop.scm +++ b/guix/config-desktop.scm @@ -6,7 +6,7 @@ (nongnu system linux-initrd) (gnu home services shells)) -(use-service-modules guix cups desktop networking ssh xorg docker nix admin vnc lightdm syncthing virtualization databases linux) +(use-service-modules guix cups desktop networking ssh xorg docker nix admin vnc lightdm syncthing virtualization databases linux web backup telephony file-sharing) (use-package-modules gnome xdisorg vnc databases) (load "/home/w96k/projects/dotfiles/guix/.dotfiles/home-configuration.scm") @@ -20,6 +20,7 @@ (locale "en_US.utf8") (timezone "Asia/Tbilisi") (kernel linux) + (kernel-arguments '("video=HDMI-A-1:1920x1080@240")) (initrd microcode-initrd) (firmware (list linux-firmware)) (keyboard-layout (keyboard-layout "us,ru" @@ -32,7 +33,7 @@ (comment "W96K") (group "users") (home-directory "/home/w96k") - (supplementary-groups '("wheel" "netdev" "audio" "video" "docker"))) + (supplementary-groups '("wheel" "netdev" "audio" "video" "kvm"))) %base-user-accounts)) ;; (packages %base-packages) @@ -41,7 +42,7 @@ (map specification->package '( - + "font-gnu-freefont" "font-gnu-unifont" )) %base-packages)) @@ -49,7 +50,7 @@ ;; services, run 'guix system search KEYWORD' in a terminal. (services (append (list - (service guix-home-service-type `(("w96k" ,wkz-home) ("wkz" ,wkz-home))) + (service guix-home-service-type `(("w96k" ,wkz-home))) (service block-facebook-hosts-service-type) (service zram-device-service-type @@ -57,10 +58,18 @@ (compression-algorithm 'zlib) (priority 100))) - (service tor-service-type) + (service tor-service-type + (tor-configuration + (config-file (plain-file "tor-config" + "HTTPTunnelPort 127.0.0.1:9250")))) (service openssh-service-type) - (service containerd-service-type) - (service docker-service-type) + + (service transmission-daemon-service-type) + + ;; (service containerd-service-type) + ;; (service docker-service-type) + ;; (service restic-backup-service-type) + ;; (service hurd-vm-service-type ;; (hurd-vm-configuration ;; (disk-size (* 5000 (expt 2 20))) ;5G @@ -73,39 +82,55 @@ ;; (localhost? #f) ;; (geometry "1280x800"))) - (service syncthing-service-type - (syncthing-configuration - (user "w96k"))) - - (service postgresql-service-type - (postgresql-configuration - (postgresql postgresql-15))) - - (service connman-service-type) + ;; (service syncthing-service-type + ;; (syncthing-configuration + ;; (user "w96k"))) + + ;; (service postgresql-service-type + ;; (postgresql-configuration + ;; (postgresql postgresql-15))) + + (service dhcp-client-service-type) + + (service httpd-service-type + (httpd-configuration + (config + (httpd-config-file + (modules (cons* + (httpd-module + (name "proxy_module") + (file "modules/mod_proxy.so")) + (httpd-module + (name "proxy_fcgi_module") + (file "modules/mod_proxy_fcgi.so")) + %default-httpd-modules)) + (extra-config (list "\ + + SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\" +")))))) + (service php-fpm-service-type + (php-fpm-configuration + (socket "/var/run/php-fpm.sock") + (socket-group "httpd"))) ;; (service screen-locker-service-type ;; (screen-locker-configuration ;; (name "xlock") ;; (program (file-append xlockmore "/bin/xlock")))) - - ;; (service slim-service-type - ;; (slim-configuration - ;; (default-user "w96k") - ;; (xorg-configuration - ;; (xorg-configuration - ;; (keyboard-layout keyboard-layout))))) ) (modify-services %desktop-services (delete screen-locker-service-type) (delete modem-manager-service-type) - (delete udisks-service-type) + ;; (delete udisks-service-type) (delete upower-service-type) (delete network-manager-service-type) - (delete usb-modeswitch-service-type) + (delete wpa-supplicant-service-type) + ;; (delete usb-modeswitch-service-type) (delete geoclue-service-type) ;;(delete elogind-service-type) (delete colord-service-type) + (delete ntp-service-type) (guix-service-type config => (guix-configuration @@ -114,8 +139,10 @@ (log-compression 'none) (extra-options '("--max-jobs=10")) (substitute-urls - (append (list "https://substitutes.nonguix.org") - %default-substitute-urls)) + (list + "https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion" + "https://substitutes.nonguix.org")) + (http-proxy "http://localhost:9250") (authorized-keys (append (list (plain-file "non-guix.pub" " @@ -143,7 +170,19 @@ (mount-point "/") (device "/dev/mapper/cryptroot") (type "btrfs") - (options "compress=zlib:6,autodefrag") + (options "compress=zlib:9,autodefrag") + (dependencies mapped-devices)) + (file-system + (mount-point "/home/w96k/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (options "compress=zlib:7,autodefrag,subvol=/home/w96k/") + (dependencies mapped-devices)) + (file-system + (mount-point "/home/w96k/Snapshots/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (options "compress=zlib:9,autodefrag,subvol=/home/w96k/Snapshots") (dependencies mapped-devices)) (file-system (mount-point "/boot/efi") diff --git a/guix/config-desktop.scm~ b/guix/config-desktop.scm~ deleted file mode 100644 index 1f5f038..0000000 --- a/guix/config-desktop.scm~ +++ /dev/null @@ -1,154 +0,0 @@ -(use-modules (gnu) - (guix transformations) - (gnu home) - (guix gexp) - (nongnu packages linux) - (nongnu system linux-initrd) - (gnu home services shells)) - -(use-service-modules guix cups desktop networking ssh xorg docker nix admin vnc lightdm syncthing virtualization databases) -(use-package-modules gnome xdisorg vnc databases) - -(load "/home/w96k/projects/dotfiles/guix/home/home-configuration.scm") - -(define wkz-transform - ;; The package transformation procedure. - (options->transformation - '((tune . "skylake")))) - -(operating-system - (locale "en_US.utf8") - (timezone "Asia/Tbilisi") - (kernel linux) - (initrd microcode-initrd) - (firmware (list linux-firmware)) - (keyboard-layout (keyboard-layout "us,ru" - #:options '("grp:shifts_toggle" "ctrl:nocaps"))) - (host-name "wkz-guix") - - ;; The list of user accounts ('root' is implicit). - (users (cons* (user-account - (name "w96k") - (comment "W96K") - (group "users") - (home-directory "/home/w96k") - (supplementary-groups '("wheel" "netdev" "audio" "video" "docker"))) - (user-account - (name "wkz") - (comment "wkz") - (group "users") - (home-directory "/home/wkz") - (supplementary-groups '("wheel" "netdev" "audio" "video" "docker"))) - %base-user-accounts)) - - ;; (packages %base-packages) - (packages - (append - (map - specification->package - '( - "ratpoison" - "xterm" - )) - %base-packages)) - - ;; Below is the list of system services. To search for available - ;; services, run 'guix system search KEYWORD' in a terminal. - (services - (append (list - (service guix-home-service-type `(("w96k" ,wkz-home) ("wkz" ,wkz-home))) - (service block-facebook-hosts-service-type) - - (service tor-service-type) - (service openssh-service-type) - (service containerd-service-type) - (service docker-service-type) - ;; (service hurd-vm-service-type - ;; (hurd-vm-configuration - ;; (disk-size (* 5000 (expt 2 20))) ;5G - ;; (memory-size 1024))) - - (service nix-service-type (nix-configuration - (extra-options '("--extra-experimental-features nix-command")))) - - (service xvnc-service-type (xvnc-configuration - (display-number 10) - (localhost? #f) - (geometry "1280x800"))) - - (service syncthing-service-type - (syncthing-configuration - (user "w96k"))) - - (service postgresql-service-type - (postgresql-configuration - (postgresql postgresql-15))) - - (service connman-service-type) - - ;; (service screen-locker-service-type - ;; (screen-locker-configuration - ;; (name "xlock") - ;; (program (file-append xlockmore "/bin/xlock")))) - - ;; (service slim-service-type - ;; (slim-configuration - ;; (default-user "w96k") - ;; (xorg-configuration - ;; (xorg-configuration - ;; (keyboard-layout keyboard-layout))))) - ) - - (modify-services %desktop-services - (delete screen-locker-service-type) - (delete modem-manager-service-type) - (delete udisks-service-type) - (delete upower-service-type) - (delete network-manager-service-type) - (delete usb-modeswitch-service-type) - (delete geoclue-service-type) - - - (guix-service-type config => (guix-configuration - (inherit config) - (extra-options '("--max-jobs=10")) - (substitute-urls - (append (list "https://substitutes.nonguix.org") - %default-substitute-urls)) - (authorized-keys - (append (list (plain-file "non-guix.pub" - " -(public-key - (ecc - (curve Ed25519) - (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#) - ) - ) -")) - %default-authorized-guix-keys)))) - - (delete gdm-service-type)))) - - (bootloader (bootloader-configuration - (bootloader grub-efi-bootloader) - (targets (list "/boot/efi")) - (keyboard-layout keyboard-layout))) - (mapped-devices (list (mapped-device - (source (uuid - "6cfe9eed-8cdd-43da-9b9f-cec6f8ec538b")) - (target "cryptroot") - (type luks-device-mapping)))) - - (file-systems (cons* (file-system - (mount-point "/boot/efi") - (device (uuid "17C5-3E35" - 'fat32)) - (type "vfat")) - (file-system - (mount-point "/") - (device "/dev/mapper/cryptroot") - (type "ext4") - (options "discard") - (skip-check-if-clean? #f) - (repair #t) - (dependencies mapped-devices)) %base-file-systems))) diff --git a/wm/.ratpoisonrc b/wm/.ratpoisonrc index f358e26..eb924c8 100644 --- a/wm/.ratpoisonrc +++ b/wm/.ratpoisonrc @@ -15,15 +15,18 @@ set winname class set wingravity n # Commands to run-or-raise programs -alias icecat exec ratpoison -c "select icecat" || exec icecat -alias palemoon exec ratpoison -c "select Pale moon" || sh ~/Software/palemoon/palemoon-guix.sh +alias icecat exec ratpoison -c "select icecat" || exec guix shell --container --network --no-cwd --preserve='^XAUTHORITY$' --expose="${XAUTHORITY}" --preserve='^DISPLAY$' icecat -- icecat +alias chromium exec ratpoison -c "select chromium" || exec guix shell --container --network --no-cwd --preserve='^XAUTHORITY$' --expose="${XAUTHORITY}" --preserve='^DISPLAY$' ungoogled-chromium -- chromium +alias torbrowser exec ratpoison -c "select torbrowser" || exec guix shell --container --network --no-cwd --preserve='^XAUTHORITY$' --expose="${XAUTHORITY}" --preserve='^DISPLAY$' torbrowser -- torbrowser alias workrave exec ratpoison -c "select workrave" || exec workrave alias emacs exec ratpoison -c "select emacs" || exec emacs alias xterm exec ratpoison -c "select xterm" || exec xterm alias firefox exec ratpoison -c "select firefox" || exec flatpak run org.mozilla.firefox alias dbeaver exec dbeaver -c "select dbeaver" || exec flatpak run io.dbeaver.DBeaverCommunity alias guix exec guix -alias shell exec guix shell +alias shell exec guix shell --check +alias shell-container exec guix shell --container --network --no-cwd --preserve='^XAUTHORITY$' --expose="${XAUTHORITY}" --preserve='^DISPLAY$' +alias shell-pure exec guix shell --pure --check alias mpv exec mpv # Run or raise Emacs @@ -35,6 +38,12 @@ bind B palemoon # Run or raise Icecat bind I icecat +# Run or raise TorBrowser +bind T torbrowser + +# Run or raise Chromium +bind C chromium + # Run or raise Xterm bind c xterm -- cgit v1.2.3