summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Kirillov <w96k@runbox.com>2024-09-25 23:43:27 +0400
committerMikhail Kirillov <w96k@runbox.com>2024-09-25 23:43:27 +0400
commit521157804cc4fb8e9550e3552c205d045213612f (patch)
tree71696b6cbaff14777688750519af80a2f8a92ef2
parentfc6fa17a6ea1b781124c6d25243df97573d5c05f (diff)
Update dotfiles
-rwxr-xr-xX/.xinitrc2
-rw-r--r--emacs/.emacs.d/.emacs-config.org192
l---------guix/.config/gtk-3.0/gtk.css1
l---------guix/.config/gtk-3.0/settings.ini1
l---------guix/.config/nixpkgs/config.nix1
-rw-r--r--guix/.dotfiles/.bash_profile16
-rw-r--r--guix/.dotfiles/.bashrc10
-rw-r--r--guix/.dotfiles/home-configuration.scm440
-rw-r--r--guix/.dotfiles/id_rsa.pub1
l---------guix/.guix-packages/emacs.scm1
l---------guix/.guix-packages/kiwix.scm1
l---------guix/.guix-packages/php.scm1
l---------guix/.guix-packages/python.scm1
-rw-r--r--guix/config-desktop.scm95
-rw-r--r--guix/config-desktop.scm~154
-rw-r--r--wm/.ratpoisonrc15
16 files changed, 461 insertions, 471 deletions
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 "<f7>") 'global-display-line-numbers-mode)
+ (kbd "<f7>") 'display-line-numbers-mode)
(define-key global-map
(kbd "<f6>") '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 "\
+<FilesMatch \\.php$>
+ SetHandler \"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\"
+</FilesMatch>"))))))
+ (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