diff options
author | Mikhail Kirillov <w96k@runbox.com> | 2024-08-05 06:33:27 +0400 |
---|---|---|
committer | Mikhail Kirillov <w96k@runbox.com> | 2024-08-05 06:53:43 +0400 |
commit | 254aa1d44b1575434f9f92ace2e1ea12280d028c (patch) | |
tree | 2dbd1a4accf36803f141e5720568af8f13c6fb65 | |
parent | 7bfb563bd9fae2bbcfdcd8c4df8db1ad44ef8ca7 (diff) |
Massively update guix home
75 files changed, 1218 insertions, 4127 deletions
@@ -1,51 +0,0 @@ --*- mode: org -*- - -* Dotfiles -Here you can find my dotfiles for various of unix programs. - -** GUIX - I use guixsd as my primary linux distro. It's GNU (totally libre), - extensible by GNU/Guile & based on nix package manager. - - [[config.scm][My config]] - -** Emacs - [[emacs.png]] - -*** My setup -| Emacs version | 27 | -| Font | Fira Mono | -| Theme | Default (I used Tomorrow Eightees before) | - - -| use-package | Package management | -| vc [built-in] | Version Control | -| org-mode [built-in] | Mode for writing documents & more | -| flymake [built-in] | Spot code errors on the fly | -| treemacs | Fancy file manager in sidebar like in IDE | -| project.el [built-in] | Project Management | -| electric [build-in] | Paren pairing | -| all-the-icons | Icons for dired and treemacs | -| telega | Telegram frontend | -| git-gutter | Showing git status of lines | -| avy | Moving faster | -| mwim | Change default movement a bit | -| fill-column-indicator | Show vertical bar at 70 symbols | -| web-mode | Editing templates | -| direnv | Get project environment | -| guix | Guix frontend | -| pdf-tools | Reading pdf files | - -And many more! I left comments in my config, so you can get idea what -packages do. - -** Install - - You need GNU Stow & Git installed - -#+BEGIN_SRC bash -git clone <this_repo> -cd <this_repo> - -stow <dir> -t ~ -#+END_SRC diff --git a/X/.Xdefaults b/X/.Xdefaults index fa33d88..a705688 100644 --- a/X/.Xdefaults +++ b/X/.Xdefaults @@ -47,7 +47,7 @@ xterm*termName: xterm-256color xterm*locale: true xterm*vt100.locale: true xterm*font: x:-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1 -xterm*boldFont: x:-adobe-courier-medium-r-bold--14-140-75-75-m-90-iso8859-1 +! xterm*boldFont: x:-adobe-courier-medium-r-bold--14-140-75-75-m-90-iso8859-1 xterm*vt100.allowBoldFonts: True xterm*renderFont: True xterm.vt100.eightBitInput: False diff --git a/X/.xinitrc b/X/.xinitrc new file mode 100755 index 0000000..ee19bf4 --- /dev/null +++ b/X/.xinitrc @@ -0,0 +1 @@ +exec ratpoison diff --git a/cvs/.gitconfig b/cvs/.gitconfig index 72d0f80..052ff03 100644 --- a/cvs/.gitconfig +++ b/cvs/.gitconfig @@ -1,6 +1,6 @@ [user] name = Mikhail Kirillov - email = w96k@riseup.net + email = w96k@runbox.com [gpg] program = gpg2 [github] @@ -9,8 +9,8 @@ ui = auto [sendemail] smtpEncryption = tls - smtpServer = smtp.riseup.net - smtpUser = w96k@riseup.net + smtpServer = mail.runbox.com + smtpUser = w96k@runbox.com smtpServerPort = 587 [init] defaultBranch = master @@ -1,6 +1,6 @@ # example user config (see 'hg help config' for more info) [ui] -username = Mikhail Kirillov <w96k@riseup.net> +username = Mikhail Kirillov <w96k@runbox.com> # We recommend enabling tweakdefaults to get slight improvements to # the UI over time. Make sure to set HGPLAIN in the environment when diff --git a/emacs.png b/emacs.png Binary files differdeleted file mode 100644 index efc982c..0000000 --- a/emacs.png +++ /dev/null diff --git a/emacs/.emacs.d/.emacs-config.org b/emacs/.emacs.d/.emacs-config.org index 64f4bc0..f69a84a 100644 --- a/emacs/.emacs.d/.emacs-config.org +++ b/emacs/.emacs.d/.emacs-config.org @@ -216,28 +216,6 @@ https://git.sr.ht/~w96k/dotfiles/tree/master/item/emacs ) #+end_src -* Инициализация -Следующие блоки кода выводят в файл early-init.el -** Компиляция -JIT компиляция elisp кода в машинный -#+begin_src elisp :tangle nil - (when (eq window-system 'pgtk) - (pgtk-use-im-context t)) - - (when (fboundp 'native-compile-async) - (setq comp-async-compilation t - package-native-compile t - - native-comp-speed 2 - native-comp-async-jobs-number 1 - comp-num-cpus 2 - ;; JIT Compilation - native-comp-deferred-compilation t - ;; AOT Compilation - package-native-compile t - comp-async-report-warnings-errors nil)) -#+end_src - *** Ручная компиляция #+begin_src elisp :tangle nil :results nil ;; (native-compile-async "~/.emacs.d/elpa/" 'recursively) @@ -437,7 +415,7 @@ JIT компиляция elisp кода в машинный Базовые функции для манипулирования конфигом в дальнейшем, чтобы не приходилось танглить вручную. #+BEGIN_SRC emacs-lisp :tangle init.el - (setq config-dotfiles-path "~/projects/dotfiles/emacs/.emacs.d/" + (setq config-dotfiles-path "/home/w96k/projects/dotfiles/emacs/.emacs.d/" config-path "~/.emacs.d/" config-name ".emacs-config.org") @@ -1195,7 +1173,7 @@ The main way to interact with SQL is using org-mode (setq org-todo-keywords (quote ((sequence "TODO(t)" - "MIGRATE(m)" "|" + "MIGRATE(m)" "IN PROGRESS(p)" "DONE(d)") (sequence "BLOCKED(w@/!)" @@ -1310,6 +1288,12 @@ The main way to interact with SQL is using org-mode mastodon-instance-url "https://fosstodon.org/")) #+end_src +** LLM +#+begin_src emacs-lisp + +#+end_src + + * Наука * Разное diff --git a/emacs/.emacs.d/nil b/emacs/.emacs.d/nil new file mode 100644 index 0000000..08c3961 --- /dev/null +++ b/emacs/.emacs.d/nil @@ -0,0 +1,708 @@ +(require 'package) + +(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") + ("melpa" . "http://melpa.org/packages/"))) + +(when (< emacs-major-version 27) + (package-initialize)) + +(require 'gnutls) + +(progn + (package-refresh-contents) + (package-install 'avy) + (package-install 'php-mode) + (package-install 'phps-mode) + ;; (package-install 'anzu) + (package-install 'anaconda-mode) + (package-install 'auctex) + ;; (package-install 'rmsbolt) + ;; (package-install 'beginend) + ;; (package-install 'composer) + (package-install 'cinspect) + (package-install 'debian-el) + (package-install 'dpkg-dev-el) + (package-install 'edebug-inline-result) + ;;(package-install 'haskell-mode) + ;;(package-install 'idris-mode) + (package-install 'magit) + (package-install 'git-timemachine) + (package-install 'git-dwim) + (package-install 'gitpatch) + (package-install 'goto-chg) + (package-install 'debbugs) + ;;(package-install 'deft) + ;; (package-install 'direnv) + (package-install 'dumb-jump) + (package-install 'docker) + (package-install 'docker-cli) + (package-install 'docker-tramp) + (package-install 'docker-compose-mode) + (package-install 'org-sql) + ;;(package-install 'eglot) + ;; (package-install 'eglot-java) + ;; (package-install 'mastodon) + ;; (package-install 'exec-path-from-shell) + (package-install 'expand-region) + ;; (package-install 'flymake-php) + (package-install 'flycheck) + (package-install 'flycheck-phpstan) + (package-install 'phpactor) + ;;(package-install 'robe) + (package-install 'geiser) + (package-install 'geiser-guile) + (package-install 'guix) + ;; (package-install 'git-gutter) + ;; (package-install 'gnuplot) + ;;(package-install 'swiper) + ;;(package-install 'sqlite3) + (package-install 'org-roam) + ;; (package-install 'org-roam-ui) + ;; (package-install 'org-download) + ;; (package-install 'org-babel-eval-in-repl) + ;;(package-install 'ob-php) + ;; (package-install 'on-screen) + ;;(package-install 'nix-mode) + (package-install 'pdf-tools) + ;;(package-install 'phpactor) + ;; (package-install 'company-quickhelp) + ;;(package-install 'ac-php) + (package-install 'php-mode) + (package-install 'php-quickhelp) + (package-install 'phan) + ;;(package-install 'php-cs-fixer) + ;; (package-install 'company-php) + ;;(package-install 'php-eldoc) + ;;(package-install 'phps-mode) + (package-install 'realgud) + ;; (package-install 'realgud-xdebug) + ;; (package-install 'kiwix) + ;;(package-install 'sml-mode) + (package-install 'sly) + (package-install 'simple-httpd) + (package-install 'sudo-edit) + ;;(package-install 'treemacs) + (package-install 'undo-tree) + ;; (package-install 'yasnippet) + ;; (package-install 'yasnippet-snippets) + ;; (package-install 'vimrc-mode) + ;; (package-install 'flymake-phpcs) + ;; (package-install 'flymake-phpstan) + ;; (package-install 'no-littering) + (package-install 'web-mode) + ;; (package-install 'which-key) + ;; (package-install 'reverse-im) + (package-install 'imenu-list) + ;; (package-install 'isearch-mb) + (package-install 'visual-fill-column) + ;; (package-install 'browse-kill-ring) + (package-install 'corfu) + ;; (package-install 'inf-ruby) + (package-install 'yaml-mode) + ;; (package-install 'geben) + (package-install 'link-hint) + (package-install 'whole-line-or-region) + (package-install 'quickrun) + ;; (package-install 'psysh) + ;; (package-install 'restclient) + ) + +(when (eq window-system 'pgtk) + (pgtk-use-im-context t)) + +(when (fboundp 'native-compile-async) + (setq comp-async-compilation t + package-native-compile t + + native-comp-speed 2 + native-comp-async-jobs-number 1 + comp-num-cpus 2 + ;; JIT Compilation + native-comp-deferred-compilation t + ;; AOT Compilation + package-native-compile t + comp-async-report-warnings-errors nil)) + +;; (native-compile-async "~/.emacs.d/elpa/" 'recursively) +(native-compile-async "~/.guix-profile/share/emacs/site-lisp" 'recursively) + +;; block until native compilation has finished + (while (or comp-files-queue + (> (comp-async-runnings) 0)) + +;; Disable guix autoloading and x resources loading +(setq site-run-file nil) + +(require 'exwm) +(require 'exwm-config) +(exwm-config-example) + +;; Change mode-line-modes to show only major mode +(defvar mode-line-major-mode + (let ((recursive-edit-help-echo "Recursive edit, type C-M-c to get out")) + (list (propertize "%[" 'help-echo recursive-edit-help-echo) + `(:propertize ("" mode-name) + help-echo "Major mode\n\ + mouse-1: Display major mode menu\n\ + mouse-2: Show help for major mode\n\ + mouse-3: Toggle minor modes" + mouse-face mode-line-highlight + local-map ,mode-line-major-mode-keymap) + '("" mode-line-process) + (propertize "%n" 'help-echo "mouse-2: Remove narrowing from buffer" + 'mouse-face 'mode-line-highlight + 'local-map (make-mode-line-mouse-map + 'mouse-2 #'mode-line-widen)) + (propertize "%]" 'help-echo recursive-edit-help-echo) + " ")) + "Mode line construct for displaying major and minor modes.") + +(put 'mode-line-major-mode 'risky-local-variable t) + +;; Change mode-line-format +(setq-default mode-line-format + '("%e" + mode-line-front-space + mode-line-mule-info + + mode-line-client + mode-line-modified + mode-line-remote + mode-line-frame-identification + ;; long-path + mode-line-buffer-identification + mode-line-misc-info + " " + mode-line-major-mode + " " + vc-mode + " " + + mode-line-position + mode-line-end-spaces + )) + +;; Do not resize the frame at this early stage. +(setq frame-inhibit-implied-resize t) +(setq use-dialog-box nil) + +;;; Disable some gui +(scroll-bar-mode -1) +(tool-bar-mode -1) +(menu-bar-mode -1) +;;(tooltip-mode -1) + +;;; Changing emacs default setting through customize +(custom-set-variables + '(fill-column 72) + '(git-gutter:added-sign " ") + '(git-gutter:deleted-sign " ") + '(git-gutter:modified-sign " ") + '(git-gutter:unchanged-sign " ") + '(lsp-headerline-breadcrumb-enable nil) + '(scroll-bar-mode 'nil) + '(scroll-bar-adjust-thumb-portion nil) + '(tool-bar-position 'bottom) + '(tool-bar-style 'both-horiz)) + +(custom-set-faces + '(default ((t (:height 140 :family "Jetbrains Mono" :embolden t)))) + '(region ((t (:background "gray85")))) + '(mode-line ((t (:background "grey70" :foreground "grey10")))) + '(mode-line-inactive ((t (:inherit mode-line :background "grey90" :foreground "grey20" :box (:line-width (-2 . -2) :color "grey85") :weight light)))) + '(mode-line-buffer-id ((t (:weight bold)))) + '(mode-line-emphasis ((t (:weight bold)))) + '(lsp-modeline-code-actions-face ((t :inherit mode-line :height 100))) + '(tool-bar ((t (:background "grey80" :foreground "grey10")))) + '(fill-column-indicator ((t (:foreground "grey95")))) + '(hl-line ((t (:background "gray95")))) + '(fringe ((t (:background "grey87")))) + '(header-line ((t (:inherit mode-line :background "grey90")))) + '(vertical-border ((t (:foreground "grey90")))) + '(window-divider ((t (:foreground "gray90"))))) + +(set-fringe-style (cons 7 7)) + +(defun switch-gui () + "Disable/enable menu-bar and tool-bar." + (interactive) + (if menu-bar-mode + (progn + (menu-bar-mode -1) + (tool-bar-mode -1) + (scroll-bar-mode -1)) + (progn + (menu-bar-mode 1) + (tool-bar-mode 1) + (scroll-bar-mode 1)))) + +(defun switch-scroll-bar () + "Disable/enable scroll-bar." + (interactive) + (if scroll-bar-mode + (scroll-bar-mode -1) + (scroll-bar-mode))) + +(define-key global-map (kbd "<f5>") 'switch-gui) +(define-key global-map (kbd "<f8>") 'switch-scroll-bar) + +(provide 'early-init) + ;;; early-init.el ends here + +;;(add-hook 'prog-mode-hook 'flymake-mode) + +(require 'psalm) + +(define-prefix-command 'flymake-map) +(global-set-key (kbd "C-q") 'flymake-map) +(define-key flymake-map (kbd "n") 'flymake-goto-next-error) +(define-key flymake-map (kbd "p") 'flymake-goto-prev-error) +(define-key flymake-map (kbd "l") 'flymake-show-diagnostics-buffer) +(define-key flymake-map (kbd "e") 'flymake-show-diagnostic) + +;; (require 'psalm) + +(when (package-loaded? "flycheck") + + (defun flycheck-phanclient-start-daemon () + "Start the phan daemon" + (interactive) + (let* ((default-directory (php-project-get-root-dir)) + (phan-executable (or flycheck-phanclient--phan-executable + (if (file-exists-p "vendor/bin/phan") + (concat default-directory "vendor/bin/phan") + (executable-find "phan")))) + (cmd (list phan-executable "--daemonize-tcp-port" "4846" "--quick"))) + (apply #'start-process "PhanDaemon" "*phan daemon*" cmd))) + + (flycheck-define-checker php-phanclient + "Phan" + :command ("phan_client" "-l" source-original "-f" source) + :error-patterns + ((warning line-start (or "Parse" "Fatal" "syntax" "Phan") " error" (any ":" ",") " " (message) " in " (file-name) " on line " line line-end)) + :modes (php-mode php+-mode)) + + (add-to-list 'flycheck-checkers 'php-phanclient) + + (flycheck-add-next-checker 'php '(warning . php-phanclient)) + + (add-hook 'prog-mode-hook 'flycheck-mode)) + +(when (package-loaded? "treemacs") + (progn + (setq treemacs-width 50 + treemacs-show-cursor t + treemacs-position 'right + treemacs-indentation 1 + treemacs-tag-follow-mode t + treemacs-fringe-indicator-mode nil) + + (define-key global-map + (kbd "C-x C-d") 'treemacs))) + +(when (package-loaded? "isearch-mb") + (progn + (isearch-mb-mode t) + (global-set-key (kbd "C-s") 'isearch-forward-regexp) + (global-set-key (kbd "C-r") 'isearch-backward-regexp))) + +(when (package-loaded? "browse-kill-ring") + (define-key global-map (kbd "C-M-y") 'browse-kill-ring)) + +(setq path-to-ctags "~/.guix-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)))) + +(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)))) + +(when (package-loaded? "realgud") + (load "~/.emacs.d/site-lisp/realgud-xdebug/realgud-xdebug.el")) + +(when (package-loaded? "geben") + (setq geben-dbgp-default-port 9003)) + +(when (package-loaded? "corfu") + (progn + (setq corfu-preview-current 'nil + corfu-popupinfo-delay t) + (corfu-mode 1) + (corfu-popupinfo-mode 1) + (defun show-default-completion-buffer () + (interactive) + (corfu-quit) + (corfu-mode -1) + (completion-at-point) + (corfu-mode 1) + (corfu-popupinfo-mode 1)) + (define-key corfu-map (kbd "M-TAB") 'show-default-completion-buffer) + (define-key corfu-map (kbd "TAB") 'show-default-completion-buffer) + (define-key corfu-map (kbd "C-M-i") 'show-default-completion-buffer) + (corfu-mode -1) + (add-hook 'prog-mode-hook 'corfu-mode) + + (defun corfu-send-shell (&rest _) + "Send completion candidate when inside comint/eshell." + (cond + ((and (derived-mode-p 'eshell-mode) (fboundp 'eshell-send-input)) + (eshell-send-input)) + ((and (derived-mode-p 'comint-mode) (fboundp 'comint-send-input)) + (comint-send-input)))) + + (advice-add #'corfu-insert :after #'corfu-send-shell) + + (add-hook 'eshell-mode-hook 'corfu-mode))) + +(setq completion-styles '(basic partial-completion substring flex emacs22) + completion-ignore-case t + read-buffer-completion-ignore-case t + read-file-name-completion-ignore-case t) + +(setq aggressive-completion-delay 0.5) +(aggressive-completion-mode t) + +(load "deft-autoloads") + +(define-key global-map + (kbd "C-c n s") 'deft) + +(setq deft-recursive t + deft-use-filter-string-for-filename t + deft-default-extension "org md" + deft-directory "~/projects/at-w96k/content/digarden") + +(when (package-loaded? "yasnippet") + (progn + (add-hook 'prog-mode-hook #'yas-minor-mode))) + +(defun my-php-mode-setup () + "My PHP-mode hook." + (require 'flycheck-phpstan) + (flycheck-mode t)) + +(add-hook 'php-mode-hook 'my-php-mode-setup) + +;; (add-hook 'php-mode-hook 'flymake-php-load) + ;; (add-hook 'php-mode-hook 'flymake-phpstan-turn-on) + + ;; (require 'flycheck-phpstan) + + +;;(add-to-list 'auto-mode-alist '("\\.\\(php\\|phtml\\)\\'" . phps-mode)) + +;; (phps-mode-flycheck-setup) + +;; (setq phps-mode-async-process t) +;; (setq phps-mode-async-process-using-async-el t) + +(desktop-save-mode 1) + +(global-anzu-mode t) + +(load "swiper-autoloads") +(global-set-key (kbd "C-s") 'swiper) + +(setq swiper-include-line-number-in-search t + swiper-use-visual-line t + swiper-stay-on-quit t) + +(load "which-key-autoloads") +(which-key-setup-side-window-right) +(which-key-mode) + +(setq which-key-side-window-max-width 0.5 + which-key-show-remaining-keys t + which-key-max-display-columns 50 + which-key-max-description-length 35 + which-key-sort-order 'which-key-local-then-key-order + which-key-idle-delay 0.25) + +(add-hook 'prog-mode-hook 'rmsbolt-mode) + +;; (when (package-loaded? "quickrun") +;; (define-key global-map (kbd "C-c C-c") 'quickrun)) + +(load "sly-autoloads") + +(setq sly-lisp-implementations + '((clisp ("clisp")) + (cmucl ("cmucl" "-quiet")) + (sbcl ("/opt/sbcl/bin/sbcl") :coding-system utf-8-unix))) + +(load "erlang-autoloads") + +(when (package-loaded? "inf-ruby") + (add-hook 'ruby-mode-hook 'inf-ruby-minor-mode)) + +(when (package-loaded? "inf-ruby") + (add-hook 'ruby-mode-hook 'robe-mode)) + +(when (package-loaded? "anaconda-mode") + (progn + (add-hook 'python-mode-hook 'anaconda-mode) + (add-hook 'python-mode-hook 'anaconda-eldoc-mode))) + +;; (when (load "flymake" t) +;; (defun flymake-pylint-init () +;; (let* ((temp-file (flymake-init-create-temp-buffer-copy +;; 'flymake-create-temp-inplace)) +;; (local-file (file-relative-name +;; temp-file +;; (file-name-directory buffer-file-name)))) +;; (list "epylint" (list local-file)))) + +;; (add-to-list 'flymake-allowed-file-name-masks +;; '("\\.py\\'" flymake-pylint-init))) + +;; (add-hook 'python-mode-hook 'flymake-mode) + +(add-hook 'sml-mode-hook 'sml-mode) + +;; (add-to-list 'load-path "~/.emacs.d/site-lisp/realgud-xdebug/") +;; (require 'realgud-xdebug) + +;; (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))) + + (setq php-manual-path + "~/php/php-manual/" + php-quickhelp-dir "~/php/php-manual/" + php-quickhelp--dest "~/.emacs.d/php-manual/php_manual_en.json") + + + ;; (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 '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)) + + ;; (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) + + ;; ;; (setq ac-sources '(ac-source-php php-quickhelp-company-php)) + ;; ;; (setq eldoc-documentation-function + ;; ;; 'php-quickhelp-eldoc-func) + + ;; (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-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 t") 'ac-php-show-tip) + + ;; ;; 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))) + )) + +(setq phpactor-executable "~/.bin/phpactor") +(custom-set-variables '(lsp-phpactor-path "~/.bin/phpactor")) + +(use-package phpactor :ensure t) +(use-package company-phpactor :ensure t) + + + +;; (with-eval-after-load 'php-mode +;; (define-key php-mode-map (kbd "M-.") #'phpactor-goto-definition) +;; (define-key php-mode-map (kbd "M-?") #'phpactor-find-references)) + +(require 'transient) +(define-transient-command php-menu () + "Php" + [["Class" + ("cc" "Copy" phpactor-copy-class) + ("cn" "New" phpactor-create-new-class) + ("cr" "Move" phpactor-move-class) + ("ci" "Inflect" phpactor-inflect-class) + ("n" "Namespace" phpactor-fix-namespace)] + ["Properties" + ("a" "Accessor" phpactor-generate-accessors) + ("pc" "Constructor" phpactor-complete-constructor) + ("pm" "Add missing props" phpactor-complete-properties) + ("r" "Rename var locally" phpactor-rename-variable-local) + ("R" "Rename var in file" phpactor-rename-variable-file)] + ["Extract" + ("ec" "constant" phpactor-extract-constant) + ("ee" "expression" phpactor-extract-expression) + ("em" "method" phpactor-extract-method)] + ["Methods" + ("i" "Implement Contracts" phpactor-implement-contracts) + ("m" "Generate method" phpactor-generate-method)] + ["Navigate" + ("x" "List refs" phpactor-list-references) + ("X" "Replace refs" phpactor-replace-references) + ("." "Goto def" phpactor-goto-definition)] + ["Phpactor" + ("s" "Status" phpactor-status) + ("u" "Install" phpactor-install-or-update)]]) + +;; Empty for now (was using emacsql) +(setq lsp-sqls-server "~/go/bin/sqls") + +;; (setq lsp-sqls-workspace-config-path nil) + +(setq lsp-sqls-connections + '(((driver . "mysql") (dataSourceName . "dbuser:mangoworms@tcp(localhost:3306)/profile24")))) + +(when (package-loaded? "org-sql") + (setq org-sql-files "~/projects/profile24/org")) + +(add-hook 'sql-interactive-mode-hook + (lambda () + (sql-connect "profile24") + (toggle-truncate-lines t))) + +(setq sql-connection-alist + '((profile24 + (sql-product 'mysql) + (sql-server "localhost") + (sql-user "dbuser") + (sql-password "123456") + (sql-database "testdb") + (sql-port 3306)))) + +(load "org-ref-autoloads") + +(setq reftex-default-bibliography '("~/Documents/bibliography/references.bib")) + +;; see org-ref for use of these variables +(setq org-ref-bibliography-notes "~/Documents/bibliography/notes.org" + org-ref-default-bibliography '("~/Documents/Bibliography/references.bib") + org-ref-pdf-directory "~/Documents/bibliography/bibtex-pdfs/") + +(when (package-loaded? "mastodon") + (setq mastodon-active-user "w96k" + mastodon-instance-url "https://fosstodon.org/")) + +(global-hl-line-mode 1) + +(add-to-list 'special-display-buffer-names "*Buffer List*") +(setq Buffer-menu-files-only t) + +(setq exec-path-from-shell-variables + '("PATH" "MANPATH")) + +(when (and (memq window-system '(mac ns x)) + (not (eq system-type 'berkeley-unix))) + (exec-path-from-shell-initialize)) + +(define-key global-map (kbd "C-q C-q") 'previous-buffer) +(define-key global-map (kbd "C-S-q C-S-q") 'next-buffer) + +(define-key global-map (kbd "C-h") 'delete-backward-char) +(define-key global-map (kbd "C-c h") 'help-command) + +(setq browse-url-browser-function #'eww-browse-url) + +(add-hook 'eww-mode-hook + (lambda () + (set-fill-column 80) + (display-fill-column-indicator-mode) + (visual-fill-column-mode))) + +(add-to-list 'tramp-remote-path 'tramp-own-remote-path) + +(load "debian-el-autoloads") +(load "dpkg-dev-el-autoloads") + +(package-loaded? "nix") + +(when (package-loaded? "direnv") + (direnv-mode)) + +(defun zoom-in () + (interactive) + (let ((x (+ (face-attribute 'default :height) + 10))) + (set-face-attribute 'default nil :height x) + (set-face-attribute 'mode-line nil :height x) + (set-face-attribute 'mode-line-inactive nil :height x) + (set-face-attribute 'mode-line-position-face nil :height x))) + +(defun zoom-out () + (interactive) + (let ((x (- (face-attribute 'default :height) + 10))) + (set-face-attribute 'default nil :height x) + (set-face-attribute 'mode-line nil :height x) + (set-face-attribute 'mode-line-inactive nil :height x) + (set-face-attribute 'mode-line-position-face nil :height x))) + +(define-key global-map (kbd "C-=") 'zoom-in) +(define-key global-map (kbd "C-+") 'zoom-out) + +(add-to-list 'default-frame-alist '(fullscreen . maximized)) + +(toggle-frame-fullscreen) + +(defun fullscreen () +"Fullscreen." +(interactive) +(x-send-client-message nil 0 nil "_NET_WM_STATE" 32 + ;; if first parameter is '1', can't toggle fullscreen status + '(1 "_NET_WM_STATE_FULLSCREEN" 0))) + +;; Better support for files with long lines +(setq-default bidi-paragraph-direction 'left-to-right) +(setq-default bidi-inhibit-bpa t) +(global-so-long-mode 1) diff --git a/gnupg/.gnupg/crls.d/DIR.txt b/gnupg/.gnupg/crls.d/DIR.txt deleted file mode 100644 index 2a29a47..0000000 --- a/gnupg/.gnupg/crls.d/DIR.txt +++ /dev/null @@ -1 +0,0 @@ -v:1: diff --git a/gnupg/.gnupg/gpg-agent.conf b/gnupg/.gnupg/gpg-agent.conf deleted file mode 100644 index 24f3912..0000000 --- a/gnupg/.gnupg/gpg-agent.conf +++ /dev/null @@ -1 +0,0 @@ -pinentry-program /home/w96k/.guix-profile/bin/pinentry
\ No newline at end of file diff --git a/guix/.config/cagebreak/config b/guix/.config/cagebreak/config deleted file mode 100644 index f701684..0000000 --- a/guix/.config/cagebreak/config +++ /dev/null @@ -1,88 +0,0 @@ -###################### -# General settings an key bindings -###################### - -exec xterm - -workspaces 6 -background 0.25 0.21 0.2 - -escape C-t - -bind s hsplit -bind S vsplit -bind Q only -bind D quit -bind Tab focus -bind A-Tab focusprev -bind n next -bind p prev -bind w exec firefox -bind R setmode resize -bind N nextscreen -bind P prevscreen -bind a time -bind C-n movetonextscreen -bind H exchangeleft -bind J exchangedown -bind K exchangeup -bind L exchangeright -bind h focusleft -bind j focusdown -bind k focusup -bind l focusright -bind t exec xterm -bind C-k close -definekey resize h resizeleft -definekey resize l resizeright -definekey resize j resizedown -definekey resize k resizeup -definekey resize Escape setmode top - -###################### -#Workspaces -###################### -definekey top A-1 workspace 1 -definekey top A-2 workspace 2 -definekey top A-3 workspace 3 -definekey top A-4 workspace 4 -definekey top A-5 workspace 5 -definekey top A-6 workspace 6 - -definekey top C-1 movetoworkspace 1 -definekey top C-2 movetoworkspace 2 -definekey top C-3 movetoworkspace 3 -definekey top C-4 movetoworkspace 4 -definekey top C-5 movetoworkspace 5 -definekey top C-6 movetoworkspace 6 - -definekey top XF86_Switch_VT_1 switchvt 1 -definekey top XF86_Switch_VT_2 switchvt 2 -definekey top XF86_Switch_VT_3 switchvt 3 -definekey top XF86_Switch_VT_4 switchvt 4 -definekey top XF86_Switch_VT_5 switchvt 5 -definekey top XF86_Switch_VT_6 switchvt 6 - -###################### -#Bind Function keys -###################### -definekey top XF86AudioMute exec pactl set-sink-mute 0 toggle -definekey top XF86AudioLowerVolume exec pactl set-sink-mute 0 off&&amixer set Master 1%- -definekey top XF86AudioRaiseVolume exec pactl set-sink-mute 0 off&&amixer set Master 1%+ -definekey top XF86MonBrightnessDown exec xbacklight -dec 1 -definekey top XF86MonBrightnessUp exec xbacklight -inc 1 - -###################### -#Output configuration -###################### -#output eDP-1 pos 0 0 res 1366x768 rate 60 -#output eDP-1 disable -#output eDP-1 enable - -##################### -#Input configuration -##################### - -#input 1234:0:Device_Ident click_method clickfinger -#input type:pointer scroll_method two_finger -#input * calibration_matrix 1 2 3 4 5 6 diff --git a/guix/.config/gtk-3.0/gtk.css b/guix/.config/gtk-3.0/gtk.css index a6dc7b5..fa281ca 100644..120000 --- a/guix/.config/gtk-3.0/gtk.css +++ b/guix/.config/gtk-3.0/gtk.css @@ -1,169 +1 @@ -undershoot.top, -undershoot.right, -undershoot.bottom, -undershoot.left { - background-image: none; -} - -* { - transition: 0; -} - -scrollbar { - -GtkScrollbar-has-backward-stepper: true; - -GtkScrollbar-has-forward-stepper: true; -} - -scrollbar.vertical { - padding: 0.1em 0; - margin: 0; - opacity: 1; -} - -scrollbar.vertical slider { - border-radius: 0; - margin: 0; - padding: 0; - border-radius: 0.2em; - transition: 0; - background-color: #bbb; -} - -scrollbar.vertical slider:hover { - background-color: #aaa; -} - -menubar { - font-size: 10pt; - background: #eee; -} - -menubar menuitem:first-child { - border-left: 0; -} - -menubar menuitem { - border-left: 1px solid #ddd; - padding: 0.35em 0.35em 0.15em 0.35em; -} - -menubar > menuitem:hover { - background: #ddd; - color: #000; - -} - -scrollbar, scrollbar trough { - background-color: #fafafa; - padding: 0; - margin: 0; -} - -manubar tab { - padding: 0; -} - -toolbar { - background: #fafafa; - padding: 0; - margin-top: 0.15em; -} - -toolbar button { - border-radius: 0; - transition: 0; - padding: 0.1em; - font-size: 10pt -} - -@binding-set gtk-emacs-text-entry -{ - bind "<ctrl>b" { "move-cursor" (logical-positions, -1, 0) }; - bind "<shift><ctrl>b" { "move-cursor" (logical-positions, -1, 1) }; - bind "<ctrl>f" { "move-cursor" (logical-positions, 1, 0) }; - bind "<shift><ctrl>f" { "move-cursor" (logical-positions, 1, 1) }; - - bind "<alt>b" { "move-cursor" (words, -1, 0) }; - bind "<shift><alt>b" { "move-cursor" (words, -1, 1) }; - bind "<alt>f" { "move-cursor" (words, 1, 0) }; - bind "<shift><alt>f" { "move-cursor" (words, 1, 1) }; - - bind "<ctrl>a" { "move-cursor" (paragraph-ends, -1, 0) }; - bind "<shift><ctrl>a" { "move-cursor" (paragraph-ends, -1, 1) }; - bind "<ctrl>e" { "move-cursor" (paragraph-ends, 1, 0) }; - bind "<shift><ctrl>e" { "move-cursor" (paragraph-ends, 1, 1) }; - - bind "<ctrl>w" { "cut-clipboard" () }; - bind "<ctrl>y" { "paste-clipboard" () }; - - bind "<ctrl>d" { "delete-from-cursor" (chars, 1) }; - bind "<alt>d" { "delete-from-cursor" (word-ends, 1) }; - bind "<ctrl>k" { "delete-from-cursor" (paragraph-ends, 1) }; - bind "<alt>backslash" { "delete-from-cursor" (whitespace, 1) }; - - bind "<alt>space" { "delete-from-cursor" (whitespace, 1) - "insert-at-cursor" (" ") }; - bind "<alt>KP_Space" { "delete-from-cursor" (whitespace, 1) - "insert-at-cursor" (" ") }; - /* - * Some non-Emacs keybindings people are attached to - */ - bind "<ctrl>u" { "move-cursor" (paragraph-ends, -1, 0) - "delete-from-cursor" (paragraph-ends, 1) }; - - bind "<ctrl>h" { "delete-from-cursor" (chars, -1) }; - bind "<ctrl>w" { "delete-from-cursor" (word-ends, -1) }; -} - -/* - * Bindings for GtkTextView - */ -@binding-set gtk-emacs-text-view -{ - bind "<ctrl>p" { "move-cursor" (display-lines, -1, 0) }; - bind "<shift><ctrl>p" { "move-cursor" (display-lines, -1, 1) }; - bind "<ctrl>n" { "move-cursor" (display-lines, 1, 0) }; - bind "<shift><ctrl>n" { "move-cursor" (display-lines, 1, 1) }; - - bind "<ctrl>space" { "set-anchor" () }; - bind "<ctrl>KP_Space" { "set-anchor" () }; -} - -/* - * Bindings for GtkTreeView - */ -@binding-set gtk-emacs-tree-view -{ - bind "<ctrl>s" { "start-interactive-search" () }; - bind "<ctrl>f" { "move-cursor" (logical-positions, 1) }; - bind "<ctrl>b" { "move-cursor" (logical-positions, -1) }; -} - -/* - * Bindings for menus - */ -@binding-set gtk-emacs-menu -{ - bind "<ctrl>n" { "move-current" (next) }; - bind "<ctrl>p" { "move-current" (prev) }; - bind "<ctrl>f" { "move-current" (child) }; - bind "<ctrl>b" { "move-current" (parent) }; -} - -GtkEntry { - -gtk-key-bindings: gtk-emacs-text-entry; -} - -GtkTextView { - -gtk-key-bindings: gtk-emacs-text-entry, gtk-emacs-text-view; -} - -GtkTreeView { - -gtk-key-bindings: gtk-emacs-tree-view; -} - -GtkMenuShell { - -gtk-key-bindings: gtk-emacs-menu; -} - -class "GtkMenuShell" binding "gtk-emacs-menu" +/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 index f40d6b6..2d402fc 100644..120000 --- a/guix/.config/gtk-3.0/settings.ini +++ b/guix/.config/gtk-3.0/settings.ini @@ -1,16 +1 @@ -[Settings] -gtk-key-theme-name = Emacs -gtk-primary-button-warps-slider = false -# Ignore since we do that in font-config and .Xdefaults -gtk-xft-antialias=1 -gtk-xft-hinting=1 -gtk-xft-hintstyle=hintslight -gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ -gtk-icon-sizes = "panel-menu=12,12:panel=12,12:gtk-menu=12,12:gtk-large-toolbar=12,12:gtk-small-toolbar=12,12:gtk-button=12,12" -gtk-decoration-layout=menu:closes -# gtk-font-name=FreeFont Sans 14 -# gtk-primary-button-warps-slider=false -gtk-menu-popup-delay = 0 -#gtk-menu-images = 0 -# gtk-button-images = 0 -gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR +/gnu/store/y5zs7640jnmm12sc88x88a4k8884isfp-home-dotfiles--config-gtk-3-0-settings-ini
\ No newline at end of file diff --git a/guix/.config/guix/channels.scm b/guix/.config/guix/channels.scm deleted file mode 100644 index ee5b43b..0000000 --- a/guix/.config/guix/channels.scm +++ /dev/null @@ -1,4 +0,0 @@ -(list (channel - (name 'guix) - (url "https://git.savannah.gnu.org/git/guix.git") - (branch "version-1.4.0"))) diff --git a/guix/.config/i3blocks/config b/guix/.config/i3blocks/config deleted file mode 100644 index 3f00493..0000000 --- a/guix/.config/i3blocks/config +++ /dev/null @@ -1,29 +0,0 @@ -# Optimized for 1280x800 resolution -# on thinkpad x200t - -[cpu] -command=$SCRIPT_DIR/cpu_usage -interval=10 -separator=false - - -[temperature] -command=$SCRIPT_DIR/temp -interval=10 - -[memory] -command=$SCRIPT_DIR/memory -interval=2 - -[disk] -command=$SCRIPT_DIR/disk -ALERT_LOW=5 -interval=60 - -[volume] -command=$SCRIPT_DIR/volume -interval=1 - -[time] -command=date '+%d.%m.%Y %H:%M:%S' -interval=1 diff --git a/guix/.config/i3blocks/cpu_usage b/guix/.config/i3blocks/cpu_usage deleted file mode 100755 index a2e622d..0000000 --- a/guix/.config/i3blocks/cpu_usage +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env perl -# -# Copyright 2014 Pierre Mavro <deimos@deimos.fr> -# Copyright 2014 Vivien Didelot <vivien@didelot.org> -# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com> -# -# Licensed under the terms of the GNU GPL v3, or any later version. - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -# default values -my $t_warn = $ENV{T_WARN} // 50; -my $t_crit = $ENV{T_CRIT} // 80; -my $cpu_usage = -1; -my $decimals = $ENV{DECIMALS} // 2; -my $label = $ENV{LABEL} // "CPU: "; - -sub help { - print "Usage: cpu_usage [-w <warning>] [-c <critical>] [-d <decimals>]\n"; - print "-w <percent>: warning threshold to become yellow\n"; - print "-c <percent>: critical threshold to become red\n"; - print "-d <decimals>: Use <decimals> decimals for percentage (default is $decimals) \n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit, - "d=i" => \$decimals, -); - -# Get CPU usage -$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is -open (MPSTAT, 'mpstat 1 1 |') or die; -while (<MPSTAT>) { - if (/^.*\s+(\d+\.\d+)[\s\x00]?$/) { - $cpu_usage = 100 - $1; # 100% - %idle - last; - } -} -close(MPSTAT); - -$cpu_usage eq -1 and die 'Can\'t find CPU information'; - -# Print short_text, full_text -print "${label}"; -printf "%.${decimals}f%%\n", $cpu_usage; -print "${label}"; -printf "%.${decimals}f%%\n", $cpu_usage; - -# Print color, if needed -if ($cpu_usage >= $t_crit) { - print "#FF0000\n"; - exit 33; -} elsif ($cpu_usage >= $t_warn) { - print "#FFFC00\n"; -} - -exit 0; diff --git a/guix/.config/i3blocks/disk b/guix/.config/i3blocks/disk deleted file mode 100755 index 0ce6542..0000000 --- a/guix/.config/i3blocks/disk +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -DIR="${DIR:-$BLOCK_INSTANCE}" -DIR="${DIR:-$HOME}" -ALERT_LOW="${ALERT_LOW:-$1}" -ALERT_LOW="${ALERT_LOW:-10}" # color will turn red under this value (default: 10%) - -LOCAL_FLAG="-l" -if [ "$1" = "-n" ] || [ "$2" = "-n" ]; then - LOCAL_FLAG="" -fi - -df -h -P $LOCAL_FLAG "$DIR" | awk -v label="$LABEL" -v alert_low=$ALERT_LOW ' -/\/.*/ { - # full text - print label $4 - - # short text - print "HDD: " $3 "/" $2 - - use=$5 - - # no need to continue parsing - exit 0 -} - -END { - gsub(/%$/,"",use) - if (100 - use < alert_low) { - # color - print "#FF0000" - } -} -' diff --git a/guix/.config/i3blocks/memory b/guix/.config/i3blocks/memory deleted file mode 100755 index d1ab86b..0000000 --- a/guix/.config/i3blocks/memory +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -TYPE="${BLOCK_INSTANCE:-mem}" - -awk -v type=$TYPE ' -/^MemTotal:/ { - mem_total=$2 -} -/^MemFree:/ { - mem_free=$2 -} -/^Buffers:/ { - mem_free+=$2 -} -/^Cached:/ { - mem_free+=$2 -} -/^SwapTotal:/ { - swap_total=$2 -} -/^SwapFree:/ { - swap_free=$2 -} -END { - if (type == "swap") { - free=swap_free/1024 - used=(swap_total-swap_free)/1024 - total=swap_total/1024 - } else { - free=mem_free/1024 - used=(mem_total-mem_free)/1024 - total=mem_total/1024 - } - - pct=0 - if (total > 0) { - pct=used/total*100 - } - - # full text - printf("%s%.1i/%.1iMiB\n", "RAM: ", used, total) - - # color - if (pct > 90) { - print("#FF0000") - } else if (pct > 80) { - print("#FFAE00") - } else if (pct > 70) { - print("#FFF600") - } -} -' /proc/meminfo diff --git a/guix/.config/i3blocks/temp b/guix/.config/i3blocks/temp deleted file mode 100755 index 370a8b1..0000000 --- a/guix/.config/i3blocks/temp +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2014 Pierre Mavro <deimos@deimos.fr> -# Copyright 2014 Vivien Didelot <vivien@didelot.org> -# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com> -# Copyright 2014 Benjamin Chretien <chretien at lirmm dot fr> - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -binmode(STDOUT, ":utf8"); - -# default values -my $t_warn = $ENV{T_WARN} || 70; -my $t_crit = $ENV{T_CRIT} || 90; -my $chip = $ENV{SENSOR_CHIP} || ""; -my $temperature = -9999; - -sub help { - print "Usage: temperature [-w <warning>] [-c <critical>] [--chip <chip>]\n"; - print "-w <percent>: warning threshold to become yellow\n"; - print "-c <percent>: critical threshold to become red\n"; - print "--chip <chip>: sensor chip\n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit, - "chip=s" => \$chip); - -# Get chip temperature -open (SENSORS, "sensors -u $chip |") or die; -while (<SENSORS>) { - if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) { - $temperature = $1; - last; - } -} -close(SENSORS); - -$temperature eq -9999 and die 'Cannot find temperature'; - -# Print short_text, full_text -print "$temperature°C\n" x2; - -# Print color, if needed -if ($temperature >= $t_crit) { - print "#FF0000\n"; - exit 33; -} elsif ($temperature >= $t_warn) { - print "#FFFC00\n"; -} - -exit 0; diff --git a/guix/.config/i3blocks/volume b/guix/.config/i3blocks/volume deleted file mode 100755 index 7d33c7e..0000000 --- a/guix/.config/i3blocks/volume +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info> -# Copyright (C) 2014 Alexander Keller <github@nycroth.com> - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -#------------------------------------------------------------------------ - -# The second parameter overrides the mixer selection -# For PulseAudio users, eventually use "pulse" -# For Jack/Jack2 users, use "jackplug" -# For ALSA users, you may use "default" for your primary card -# or you may use hw:# where # is the number of the card desired -if [[ -z "$MIXER" ]] ; then - MIXER="default" - if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then - # pulseaudio is running, but not all installations use "pulse" - if amixer -D pulse info >/dev/null 2>&1 ; then - MIXER="pulse" - fi - fi - [ -n "$(lsmod | grep jack)" ] && MIXER="jackplug" - MIXER="${2:-$MIXER}" -fi - -# The instance option sets the control to report and configure -# This defaults to the first control of your selected mixer -# For a list of the available, use `amixer -D $Your_Mixer scontrols` -if [[ -z "$SCONTROL" ]] ; then - SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols | - sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | - head -n1 - )}" -fi - -# The first parameter sets the step to change the volume by (and units to display) -# This may be in in % or dB (eg. 5% or 3dB) -if [[ -z "$STEP" ]] ; then - STEP="${1:-5%}" -fi - -#------------------------------------------------------------------------ - -capability() { # Return "Capture" if the device is a capture device - amixer -D $MIXER get $SCONTROL | - sed -n "s/ Capabilities:.*cvolume.*/Capture/p" -} - -volume() { - amixer -D $MIXER get $SCONTROL $(capability) -} - -format() { - - perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)' - perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "' - # If dB was selected, print that instead - perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1') - perl_filter+='"; exit}' - output=$(perl -ne "$perl_filter") - echo "VOL: $output" -} - -#------------------------------------------------------------------------ - -case $BLOCK_BUTTON in - 3) amixer -q -D $MIXER sset $SCONTROL $(capability) toggle ;; # right click, mute/unmute - 4) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase - 5) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease -esac - -volume | format diff --git a/guix/.config/mpv/mpv.conf b/guix/.config/mpv/mpv.conf deleted file mode 100644 index cf0aeab..0000000 --- a/guix/.config/mpv/mpv.conf +++ /dev/null @@ -1 +0,0 @@ -ytdl-format=bestvideo[height<=?720][fps<=?30]+bestaudio/best
\ No newline at end of file diff --git a/guix/.config/nixpkgs/config.nix b/guix/.config/nixpkgs/config.nix index 1dd1750..31471b0 100644..120000 --- a/guix/.config/nixpkgs/config.nix +++ b/guix/.config/nixpkgs/config.nix @@ -1,3 +1 @@ -{ - allowUnfree = true; -} +/gnu/store/n7qm12fzblg61qblw7ylgfwwmxq14f4w-home-dotfiles--config-nixpkgs-config-nix
\ No newline at end of file diff --git a/guix/.config/nyxt/init.lisp b/guix/.config/nyxt/init.lisp deleted file mode 100644 index fbbeacc..0000000 --- a/guix/.config/nyxt/init.lisp +++ /dev/null @@ -1,12 +0,0 @@ -;; -*- mode: common-lisp -*- - -;; (define-configuration buffer -;; ((default-modes -;; (append '(emacs-mode -;; noscript-mode -;; nowebgl-mode -;; ;;web-mode -;; ;;web-buffer -;; ;;base-mode -;; force-https-mode) -;; %slot-default)))) diff --git a/guix/.config/rofi/config.rasi b/guix/.config/rofi/config.rasi deleted file mode 100644 index 935d4f9..0000000 --- a/guix/.config/rofi/config.rasi +++ /dev/null @@ -1,144 +0,0 @@ -configuration { - modi: "window,run,ssh,keys,combi,drun"; - width: 25; - lines: 5; - columns: 1; - font: "mono 12"; - bw: 1; - location: 2; - padding: 0; - yoffset: 0; - xoffset: 0; - fixed-num-lines: false; - show-icons: false; -/* terminal: "rofi-sensible-terminal";*/ - ssh-client: "ssh"; - ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; - run-command: "{cmd}"; - run-list-command: ""; - run-shell-command: "{terminal} -e {cmd}"; -/* window-command: "wmctrl -i -R {window}";*/ -/* window-match-fields: "all";*/ -/* icon-theme: ;*/ -/* drun-match-fields: "name,generic,exec,categories";*/ -/* drun-show-actions: false;*/ -/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/ -/* disable-history: false;*/ -/* ignored-prefixes: "";*/ -/* sort: false;*/ -/* sorting-method: ;*/ -/* case-sensitive: false;*/ - cycle: true; -//* eh: 1;*/ -/* auto-select: false;*/ -/* parse-hosts: false;*/ -/* parse-known-hosts: true;*/ -/* combi-modi: "window,run";*/ -/* matching: "normal";*/ -/* tokenize: true;*/ -/* m: "-5";*/ - line-margin: 0; - line-padding: 0; -/* filter: ;*/ - separator-style: "none"; - hide-scrollbar: true; - fullscreen: false; -/* fake-transparency: true; */ -/* dpi: -1;*/ -/* threads: 0;*/ -/* scrollbar-width: 8;*/ -/* scroll-method: 0;*/ -/* fake-background: "screenshot";*/ - window-format: "{w} {c} {t}"; - click-to-exit: true; -/* show-match: true;*/ -/* theme: ;*/ -/* color-normal: ;*/ -/* color-urgent: ;*/ -/* color-active: ;*/ -/* color-window: ;*/ -/* max-history-size: 25;*/ -/* combi-hide-mode-prefix: false;*/ -/* matching-negate-char: '-' /* unsupported */;*/ -/* cache-dir: ;*/ -/* pid: "/run/user/1000/rofi.pid";*/ -/* display-window: ;*/ -/* display-windowcd: ;*/ -/* display-run: ;*/ -/* display-ssh: ;*/ -/* display-drun: ;*/ -/* display-combi: ;*/ -/* display-keys: ;*/ - kb-primary-paste: "Control+V,Shift+Insert,Control+y"; -/* kb-secondary-paste: "Control+v,Insert";*/ -/* kb-clear-line: "Control+w";*/ -/* kb-move-front: "Control+a";*/ -/* kb-move-end: "Control+e";*/ -/* kb-move-word-back: "Alt+b,Control+Left";*/ -/* kb-move-word-forward: "Alt+f,Control+Right";*/ -/* kb-move-char-back: "Left,Control+b";*/ -/* kb-move-char-forward: "Right,Control+f";*/ -/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ -/* kb-remove-word-forward: "Control+Alt+d";*/ -/* kb-remove-char-forward: "Delete,Control+d";*/ -/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ -/* kb-remove-to-eol: "Control+k";*/ -/* kb-remove-to-sol: "Control+u";*/ -/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ -/* kb-accept-custom: "Control+Return";*/ -/* kb-accept-alt: "Shift+Return";*/ -/* kb-delete-entry: "Shift+Delete";*/ -/* kb-mode-next: "Shift+Right,Control+Tab";*/ -/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ -/* kb-row-left: "Control+Page_Up";*/ -/* kb-row-right: "Control+Page_Down";*/ -/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ -/* kb-row-down: "Down,Control+n";*/ -/* kb-row-tab: "Tab";*/ -/* kb-page-prev: "Page_Up";*/ -/* kb-page-next: "Page_Down";*/ -/* kb-row-first: "Home,KP_Home";*/ -/* kb-row-last: "End,KP_End";*/ -/* kb-row-select: "Control+space";*/ -/* kb-screenshot: "Alt+S";*/ -/* kb-ellipsize: "Alt+period";*/ -/* kb-toggle-case-sensitivity: "grave,dead_grave";*/ -/* kb-toggle-sort: "Alt+grave";*/ -/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ -/* kb-custom-1: "Alt+1";*/ -/* kb-custom-2: "Alt+2";*/ -/* kb-custom-3: "Alt+3";*/ -/* kb-custom-4: "Alt+4";*/ -/* kb-custom-5: "Alt+5";*/ -/* kb-custom-6: "Alt+6";*/ -/* kb-custom-7: "Alt+7";*/ -/* kb-custom-8: "Alt+8";*/ -/* kb-custom-9: "Alt+9";*/ -/* kb-custom-10: "Alt+0";*/ -/* kb-custom-11: "Alt+exclam";*/ -/* kb-custom-12: "Alt+at";*/ -/* kb-custom-13: "Alt+numbersign";*/ -/* kb-custom-14: "Alt+dollar";*/ -/* kb-custom-15: "Alt+percent";*/ -/* kb-custom-16: "Alt+dead_circumflex";*/ -/* kb-custom-17: "Alt+ampersand";*/ -/* kb-custom-18: "Alt+asterisk";*/ -/* kb-custom-19: "Alt+parenleft";*/ -/* kb-select-1: "Super+1";*/ -/* kb-select-2: "Super+2";*/ -/* kb-select-3: "Super+3";*/ -/* kb-select-4: "Super+4";*/ -/* kb-select-5: "Super+5";*/ -/* kb-select-6: "Super+6";*/ -/* kb-select-7: "Super+7";*/ -/* kb-select-8: "Super+8";*/ -/* kb-select-9: "Super+9";*/ -/* kb-select-10: "Super+0";*/ -/* ml-row-left: "ScrollLeft";*/ -/* ml-row-right: "ScrollRight";*/ -/* ml-row-up: "ScrollUp";*/ -/* ml-row-down: "ScrollDown";*/ -/* me-select-entry: "MousePrimary";*/ -/* me-accept-entry: "MouseDPrimary";*/ -/* me-accept-custom: "Control+MouseDPrimary";*/ -} diff --git a/guix/.config/shepherd/init.scm b/guix/.config/shepherd/init.scm deleted file mode 100644 index bf8af72..0000000 --- a/guix/.config/shepherd/init.scm +++ /dev/null @@ -1,5 +0,0 @@ -(load "services.scm") - -(register-services emacs) -(action 'shepherd 'daemonize) ; send shepherd into background -(for-each start (list emacs ssh-agent redshift)) diff --git a/guix/.config/shepherd/services.scm b/guix/.config/shepherd/services.scm deleted file mode 100644 index 8423a8f..0000000 --- a/guix/.config/shepherd/services.scm +++ /dev/null @@ -1,25 +0,0 @@ -(define emacs - (make <service> - #:provides '(emacs) - #:requires '() - #:start (make-system-constructor "emacs --daemon") - #:stop (make-system-destructor - "emacsclient --eval \"(kill-emacs)\""))) - -(define ssh-agent - (make <service> - #:provides '(ssh-agent) - #:requires '() - #:start (make-system-constructor "eval $(ssh-agent)"))) - -(define redshift - (make <service> - #:provides '(redshift) - #:requires '() - #:start (make-system-constructor "redshift -l 45:37") - #:stop (make-system-destructor - "pkill -f redshift"))) - -(register-services emacs) -(register-services redshift) - diff --git a/guix/.config/sway/config b/guix/.config/sway/config deleted file mode 100644 index 94a2805..0000000 --- a/guix/.config/sway/config +++ /dev/null @@ -1,284 +0,0 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. - -### Variables -# -# Logo key. Use Mod1 for Alt. -set $mod Mod4 -# Home row direction keys, like vim -set $left h -set $down j -set $up k -set $right l - -set $term wterm - -bindsym $mod+d exec --no-startup-id "rofi -show drun -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'" -bindsym $mod+w exec --no-startup-id "rofi -show window -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'" - -exec dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus -exec mako - -# exec swayidle -w \ -# timeout 300 'swaylock -f -c 000000' \ -# timeout 600 'swaymsg "output * dpms off"' \ -# resume 'swaymsg "output * dpms on"' \ -# before-sleep 'swaylock -f -c 000000' - -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - bindsym $mod+c exec $term - - - # Kill focused window - bindsym $mod+q kill - - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+c reload - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right -# -# Workspaces: -# - # Switch to workspace - bindsym $mod+1 workspace 1 - bindsym $mod+2 workspace 2 - bindsym $mod+3 workspace 3 - bindsym $mod+4 workspace 4 - bindsym $mod+5 workspace 5 - bindsym $mod+6 workspace 6 - bindsym $mod+7 workspace 7 - bindsym $mod+8 workspace 8 - bindsym $mod+9 workspace 9 - bindsym $mod+0 workspace 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace 1 - bindsym $mod+Shift+2 move container to workspace 2 - bindsym $mod+Shift+3 move container to workspace 3 - bindsym $mod+Shift+4 move container to workspace 4 - bindsym $mod+Shift+5 move container to workspace 5 - bindsym $mod+Shift+6 move container to workspace 6 - bindsym $mod+Shift+7 move container to workspace 7 - bindsym $mod+Shift+8 move container to workspace 8 - bindsym $mod+Shift+9 move container to workspace 9 - bindsym $mod+Shift+0 move container to workspace 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - #bindsym $mod+w layout tabbed - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+space floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle - - # Move focus to the parent container - bindsym $mod+a focus parent -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -bindsym $mod+r mode "resize" - -# Volume control -bindsym XF86AudioRaiseVolume exec amixer -q sset Master 5%+ -bindsym XF86AudioLowerVolume exec amixer -q sset Master 5%- -bindsym XF86AudioMute exec amixer -q sset Master toggle - -bar { - position top - - #status_command SCRIPT_DIR=~/.config/i3blocks/ i3blocks - - strip_workspace_name yes - - #tray_output primary - - colors { - statusline #cccccc - background #333333 - focused_workspace #333333 #aeafad #333333 - inactive_workspace #333333 #333333 #cccccc - urgent_workspace #333333 #f2777a #2d2d2d - } -} - - -input type:keyboard { - xkb_layout us,ru - xkb_options grp:win_space_toggle,caps:ctrl_modifier#,ctrl:nocaps -} - -# Change borders -default_border none -default_floating_border normal -hide_edge_borders vertical - -gaps inner 1 - -workspace_auto_back_and_forth on -focus_on_window_activation focus -focus_wrapping workspace - -# Default stumpwm keybinding doesn't work, because C-t is used by many programs -# and sway let other programs to use binded keys. -set $StumpMod Control+t - -assign [class="Emacs"] "Editor" -assign [class="Icecat"] "Browser" -assign [class="Firefox"] "Browser" -assign [class="Chromium"] "Browser" - -mode "stumpwm" { - # Would be nice to have exit from mode after each bind - - bindsym --to-code { - # Launch emacs - e exec emacsclient; workspace "Editor"; mode default; - - shift+e exec "if ps auxf | grep -c emacs > 1; then swaymsg '[class=Emacs] focus'; else swaymsg exec 'emacs'; fi; swaymsg 'mode default'"; - - # Launch terminal - c mode default; exec $term; - - # Kill window - k kill; mode default; - - # Navigation - n workspace next; mode default; - p workspace prev; mode default; - - # Switch to previous workspace - t workspace current; mode default; - Control+t workspace current; mode default; - - # Splitting - s split vertical; mode default; - Shift+s split horizontal; mode default; - - # Exit stumpwmm mode - g mode default; - - Control+g mode default; - - # Select workspace with corresponding digit - 0 workspace "0: Emacs"; mode default; - 1 workspace 1; mode default; - 2 workspace 2; mode default; - 3 workspace 3; mode default; - 4 workspace 4; mode default; - 5 workspace 5; mode default; - 6 workspace 6; mode default; - 7 workspace 7; mode default; - 8 workspace 8; mode default; - 9 workspace 9; mode default; - - # Choose/find window - apostrophe exec --no-startup-id "swaymsg mode default; rofi -show window" - - # Combimode - b exec --no-startup-id "swaymsg mode default; rofi -show combi" - - - # Exec/find shell command - shift+1 exec --no-startup-id "swaymsg mode default; rofi -show run -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'" - } - - # bindsym --to-code n exec "swaymsg focus down; swaymsg mode default;" - # bindsym --to-code p exec "swaymsg focus up; swaymsg mode default;" - # bindsym --to-code b exec "swaymsg focus left; swaymsg mode default;" - # bindsym --to-code f exec "swaymsg focus right; swaymsg mode default;" - - # List of windows - bindsym w exec --no-startup-id "swaymsg mode default; rofi -show window -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'" -} -bindsym --to-code $StumpMod mode "stumpwm" - -bindsym --to-code $mod+n exec --no-startup-id "rofi -show window" - -bindsym $mod+g mode "default"
\ No newline at end of file diff --git a/guix/.config/sxhkd/sxhkdrc b/guix/.config/sxhkd/sxhkdrc deleted file mode 100644 index a731db4..0000000 --- a/guix/.config/sxhkd/sxhkdrc +++ /dev/null @@ -1,2 +0,0 @@ -ctrl + t ; c - urxvt diff --git a/guix/home/.bash_profile b/guix/.dotfiles/.bash_profile index 2868826..03c1fab 100644 --- a/guix/home/.bash_profile +++ b/guix/.dotfiles/.bash_profile @@ -1,9 +1,3 @@ -# Set up Guix Home profile -if [ -f ~/.profile ]; then . ~/.profile; fi - -# Honor per-interactive-shell startup file -if [ -f ~/.bashrc ]; then . ~/.bashrc; fi - # Merge search-paths from multiple profiles, the order matters. eval "$(guix package --search-paths \ -p $HOME/.config/guix/current \ diff --git a/guix/.dotfiles/.bashrc b/guix/.dotfiles/.bashrc new file mode 100644 index 0000000..3a09a90 --- /dev/null +++ b/guix/.dotfiles/.bashrc @@ -0,0 +1,2 @@ +export GUIX_PACKAGE_PATH=$HOME/.guix-packages +export GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles diff --git a/guix/.dotfiles/home-configuration.scm b/guix/.dotfiles/home-configuration.scm new file mode 100644 index 0000000..4aab310 --- /dev/null +++ b/guix/.dotfiles/home-configuration.scm @@ -0,0 +1,170 @@ +(use-modules (gnu home) + (gnu packages) + (gnu packages gnupg) + (gnu packages shells) + (gnu services) + (guix gexp) + (guix channels) + (gnu home services) + (gnu home services guix) + (gnu home services ssh) + (gnu home services desktop) + (gnu home services dotfiles) + (gnu home services shells) + (gnu home services gnupg)) + +(define dotfiles-dir "/home/w96k/projects/dotfiles/") + +(define wkz-home (home-environment + (packages (specifications->packages (list + "guix" + "ratpoison" + "xdot" + "graphviz" + "sed" + "darktable" + "openssh" + "docker-compose" + "emacs-company" + "emacs-f" + "emacs-s" + "emacs-xterm-color" + "emacs-lsp-mode" + + "guile" + "guile-readline" + "guile-colorized" + "emacs-geiser" + "emacs-geiser-guile" + + "emacs-telega" + "emacs-guix" + "emacs-simple-httpd" + "emacs-osm" + "wget" + "bitcoin-core" + "xrandr" + "unzip" + "zip" + "mpv" + "emacs-rmsbolt" + "git" + ;; "wkz-emacs" + "emacs-no-x-toolkit" + "emacs-gptel" + "lm-sensors" + "htop" + "make" + "emacs-simple-httpd" + "emacs-guix" + "emacs-telega" + "gimp" + "imagemagick" + "stow" + "icecat" + "smartmontools" + "lshw" + "hwinfo" + "ntfs-3g" + "qbittorrent" + "x11-ssh-askpass" + "syncthing" + "pavucontrol" + "arp-scan" + "proot" + "openconnect" + "alsa-utils" + "grep" + "xlockmore" + "bitcoin-core" + "x11-ssh-askpass" + "pinentry-emacs" + "texlive" + "fetchmail" + "gnupg" + "xhost" + + ;; "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")))))) + )))) + +wkz-home diff --git a/guix/.dotfiles/id_rsa.pub b/guix/.dotfiles/id_rsa.pub new file mode 100644 index 0000000..4e47387 --- /dev/null +++ b/guix/.dotfiles/id_rsa.pub @@ -0,0 +1 @@ +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 index 14ff055..f918131 100644..120000 --- a/guix/.guix-packages/emacs.scm +++ b/guix/.guix-packages/emacs.scm @@ -1,256 +1 @@ -(define-module (emacs) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix git-download) - #:use-module (guix licenses) - #:use-module (guix utils) - #:use-module (guix memoization) - #:use-module (guix build-system emacs) - #:use-module (guix build-system glib-or-gtk) - #:use-module (gnu packages) - #:use-module (gnu packages imagemagick) - #:use-module (gnu packages xorg) - #:use-module (gnu packages base) - #:use-module (gnu packages code) - #:use-module (gnu packages gcc) - #:use-module (gnu packages php) - #:use-module (gnu packages web) - #:use-module (gnu packages autotools) - #:use-module (gnu packages compression) - #:use-module (gnu packages emacs) - #:use-module (gnu packages emacs-xyz) - #:use-module (guix utils) - #:use-module (srfi srfi-1) - #:use-module (ice-9 match)) - -(define-public emacs-pythonic - (package - (name "emacs-pythonic") - (version "0.2.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pythonic-emacs/pythonic.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0hbvy8wdi5dgxn86j8z54y2fhcvm605xxm6xv054nl6fw2hh2h5h")))) - (build-system emacs-build-system) - (propagated-inputs - `(("s" ,emacs-s) - ("f" ,emacs-f))) - (home-page "https://github.com/pythonic-emacs/anaconda-mode") - (synopsis "Utility functions for writing pythonic emacs package.") - (description - "Utility functions for writing pythonic emacs package.") - (license license:gpl3+))) - -(define-public emacs-anaconda-mode - (package - (name "emacs-anaconda-mode") - (version "0.1.14") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pythonic-emacs/anaconda-mode.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04f6kw4rd8k6waiyfbk7x8qdrqm411mdsdzjh2w9rvmv7y36ckh8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-pythonic" ,emacs-pythonic) - ("dash" ,emacs-dash) - ("s" ,emacs-s) - ("f" ,emacs-f))) - (home-page "https://github.com/pythonic-emacs/anaconda-mode") - (synopsis "Code navigation, documentation lookup and completion for -Python.") - (description - "Code navigation, documentation lookup and completion for Python.") - (license license:gpl3))) - -(define-public emacs-kiwix - (package - (name "emacs-kiwix") - (version "1.0.3") - (source - (origin - (method url-fetch) - (uri (string-append - "https://elpa.gnu.org/packages/kiwix-" - version - ".tar")) - (sha256 - (base32 - "061b816xp8ykqd56z0nvc69aql9y4mba42p6x6vc0j6gr9n3c1j6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-request" ,emacs-request))) - (home-page - "https://github.com/stardiviner/kiwix.el") - (synopsis - "Searching offline Wikipedia through Kiwix.") - (description - "Emacs client for a free offline web browser created by Emmanuel -Engelhart and Renaud Gaudin in 2007.") - (license license:gpl3+))) - -(define-public emacs-realgud-xdebug - (package - (name "emacs-realgud-xdebug") - (version "0.1.0") - (source - (origin - (uri (git-reference - (url "https://github.com/realgud/realgud-xdebug") - (commit version))) - (method git-fetch) - (sha256 - (base32 "0iyxm4yfjwpc322md8iz38xs1y6whqjgsbbs7vdjw1k5029q8nc0")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (inputs - (list emacs-realgud)) - (home-page "https://github.com/realgud/realgud-xdebug/") - (synopsis - "Modular front-end for interacting with external debuggers") - (description - "RealGUD is a modular, extensible GNU Emacs front-end for interacting -with external debuggers. It integrates various debuggers such as gdb, pdb, -ipdb, jdb, lldb, bashdb, zshdb, etc. and allows visually steping through code in the -sources. Unlike GUD, it also supports running multiple debug sessions in -parallel.") - (license license:gpl3+))) - -(define-public emacs-xcscope - (package - (name "emacs-xcscope") - (version "1.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dkogan/xcscope.el") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0w2bxrnidladpzrd82z3w3gvjhajs71k5vjk2y03r09i9fwn2ykc")))) - (build-system emacs-build-system) - (home-page "https://github.com/realgud/realgud-xdebug/") - (synopsis - "emacs auto-complete & company-mode for php ") - (description - "The PHP code completion and the jump to definition/declaration/inclusion-file provided by phpctags") - (license license:gpl3+))) - -(define-public emacs-ac-php - (package - (name "emacs-ac-php") - (version "2.4.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xcwen/ac-php") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "08vfdp7q6x5fk2nn5dl884cyysxrl2gw8f16g7wqvf7v24jmx71d")))) - (build-system emacs-build-system) - (native-inputs - (list emacs-company emacs-helm)) - (propagated-inputs - (list emacs-php-mode php emacs-s - emacs-f emacs-popup emacs-dash - emacs-xcscope cscope emacs-auto-complete - emacs-yasnippet)) - (home-page "https://github.com/xcwen/ac-php") - (synopsis - "emacs auto-complete & company-mode for php ") - (description - "The PHP code completion and the jump to definition/declaration/inclusion-file provided by phpctags") - (license license:gpl3+))) - -(define-public emacs-php-quickhelp - (package - (name "emacs-php-quickhelp") - (version "0.5.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vpxyz/php-quickhelp") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1d9rg699wl67qkb93r4qnjn0ng4xn9c2g6kc98zaiy2v0v2wcv8g")))) - (build-system emacs-build-system) - (propagated-inputs - (list jq)) - (home-page "https://github.com/vpxyz/php-quickhelp") - (synopsis - "A php quickhelp and eldoc backed for emacs ") - (description - "Provide quick help (and a eldoc beckend) for company-php and company-phpactor. It require jq to extract a short help from php manual.") - (license license:gpl3+))) - -(define-public emacs-mastodon-updated - (package - (inherit emacs-mastodon) - (name "emacs-mastodon") - (version "1.0.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://codeberg.org/martianh/mastodon.el") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "13swcbvwhjl8ksrgzvmfafkgd3iz8znk49bs1n48w3g9qvh097w7")))) - (propagated-inputs - (list emacs-request)) - (build-system emacs-build-system))) - -(define-public emacs-mini-modeline - (package - (name "emacs-mini-modeline") - (version "20211130.604") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kiennq/emacs-mini-modeline.git") - (commit "434b98b22c69c8b3b08e9c267c935591c49a8301"))) - (sha256 - (base32 - "063bpi3gxzi6kkc3mb9h4m8lvbsvfw47z559960h912h2l3z6vhq")))) - (build-system emacs-build-system) - (propagated-inputs (list emacs-dash)) - (home-page "https://github.com/kiennq/emacs-mini-modeline") - (synopsis "Display modeline in minibuffer") - (description - "Display modeline in minibuffer. With this we save one display line and also -don't have to see redundant information.") - (license #f))) - -(define-public emacs-isearch-mb - (package - (name "emacs-isearch-mb") - (version "0.5") - (source (origin - (method url-fetch) - (uri (string-append "https://elpa.gnu.org/packages/isearch-mb-" - version ".tar")) - (sha256 - (base32 - "0fah8dmh9jv05i93ccn9dvl7qmfy32vwxqdzkf1v8gr1plsyjyx7")))) - (build-system emacs-build-system) - (home-page "https://github.com/astoff/isearch-mb") - (synopsis "Control isearch from the minibuffer") - (description "") - (license license:gpl3+))) +/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 index ec362f3..df5da02 100644..120000 --- a/guix/.guix-packages/kiwix.scm +++ b/guix/.guix-packages/kiwix.scm @@ -1,56 +1 @@ -(define-module (kiwix) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix git-download) - #:use-module (guix licenses) - #:use-module (guix utils) - #:use-module (guix build-system meson) - #:use-module (gnu packages cmake) - #:use-module (gnu packages web) - #:use-module (gnu packages gnunet) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages search) - #:use-module (gnu packages icu4c) - #:use-module (gnu packages xml) - #:use-module (gnu packages curl) - #:use-module (gnu packages compression)) - -(define-public kiwix-tools - (package - (name "kiwix-tools") - (version "3.1.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kiwix/kiwix-tools.git") - ;;(commit (string-append "v" version)) - (commit version) - )) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jmvw9llmj8cah6kwmdamwjpakz9ly688a988kd7sy22av8jnz4b")))) - (build-system meson-build-system) - (native-inputs - `(("cmake" ,cmake))) - (inputs - `( - ("libzim" ,libzim) - ("libmicrohttpd" ,libmicrohttpd) - ("zlib" ,zlib) - ("pkg-config" ,pkg-config) - ("zstd" ,zstd "lib") - ("xapian" ,xapian) - ("icu4c" ,icu4c) - ("pugixml" ,pugixml) - ("curl" ,curl) - )) - (propagated-inputs - `(("kiwix-lib" ,kiwix-lib))) - (home-page "https://kiwix.org/") - (synopsis "") - (description - "") - (license license:gpl3+))) +/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 index d1b0504..85bf46d 100644..120000 --- a/guix/.guix-packages/php.scm +++ b/guix/.guix-packages/php.scm @@ -1,384 +1 @@ -(define-module (php) - #:use-module (gnu packages php) - #:use-module (gnu packages) - #:use-module (gnu packages algebra) - #:use-module (gnu packages aspell) - #:use-module (gnu packages base) - #:use-module (gnu packages bison) - #:use-module (gnu packages compression) - #:use-module (gnu packages crypto) - #:use-module (gnu packages curl) - #:use-module (gnu packages cyrus-sasl) - #:use-module (gnu packages databases) - #:use-module (gnu packages dbm) - #:use-module (gnu packages fontutils) - #:use-module (gnu packages gd) - #:use-module (gnu packages gettext) - #:use-module (gnu packages gnupg) - #:use-module (gnu packages icu4c) - #:use-module (gnu packages image) - #:use-module (gnu packages linux) - #:use-module (gnu packages multiprecision) - #:use-module (gnu packages openldap) - #:use-module (gnu packages pcre) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages readline) - #:use-module (gnu packages sqlite) - #:use-module (gnu packages textutils) - #:use-module (gnu packages tls) - #:use-module (gnu packages web) - #:use-module (gnu packages xml) - #:use-module (gnu packages xorg) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (guix utils) - #:use-module ((guix licenses) #:prefix license:)) - -;; (define-public php-8 -;; (package -;; (name "php-8") -;; (version "8.1.9") -;; (home-page "https://secure.php.net/") -;; (source (origin -;; (method url-fetch) -;; (uri (string-append home-page "distributions/" -;; "php-" version ".tar.xz")) -;; (sha256 -;; (base32 -;; "1gr79i9dwm7qiqgimxms8rlvzzazh66sa4w9nr1cjk95wrrpwisk")) -;; (modules '((guix build utils))) -;; (snippet -;; '(with-directory-excursion "ext" -;; (for-each delete-file-recursively -;; ;; Some of the bundled libraries have no proper upstream. -;; ;; Ideally we'd extract these out as separate packages: -;; ;;"mbstring/libmbfl" -;; ;;"date/lib" -;; ;;"bcmath/libbcmath" -;; ;;"fileinfo/libmagic" ; a patched version of libmagic -;; '("gd/libgd" -;; "pcre/pcre2lib" -;; "xmlrpc/libxmlrpc")))))) -;; (build-system gnu-build-system) -;; (arguments -;; `(#:configure-flags -;; (let-syntax ((with (syntax-rules () -;; ((_ option input) -;; (string-append option "=" -;; (assoc-ref %build-inputs input)))))) -;; (list (with "--with-bz2" "bzip2") -;; (with "--with-curl" "curl") -;; (with "--with-gdbm" "gdbm") -;; (with "--with-gettext" "libc") ; libintl.h -;; (with "--with-gmp" "gmp") -;; (with "--with-ldap" "openldap") -;; (with "--with-ldap-sasl" "cyrus-sasl") -;; (with "--with-pdo-pgsql" "postgresql") -;; (with "--with-pdo-sqlite" "sqlite") -;; (with "--with-pgsql" "postgresql") -;; ;; PHP’s Pspell extension, while retaining its current name, -;; ;; now uses the Aspell library. -;; (with "--with-pspell" "aspell") -;; (with "--with-readline" "readline") -;; (with "--with-sodium" "libsodium") -;; (with "--with-sqlite3" "sqlite") -;; (with "--with-tidy" "tidy") -;; (with "--with-xsl" "libxslt") -;; (with "--with-zlib-dir" "zlib") -;; ;; We could add "--with-snmp", but it requires netsnmp that -;; ;; we don't have a package for. It is used to build the snmp -;; ;; extension of php. -;; "--with-external-pcre" -;; "--with-external-gd" -;; "--with-iconv" -;; "--with-openssl" -;; "--with-mysqli" ; Required for, e.g. wordpress -;; "--with-pdo-mysql" -;; "--with-zip" -;; "--with-zlib" -;; "--enable-bcmath" ; Required for, e.g. Zabbix frontend -;; "--enable-calendar" -;; "--enable-dba=shared" -;; "--enable-exif" -;; "--enable-flatfile" -;; "--enable-fpm" -;; "--enable-ftp" -;; "--enable-gd" -;; "--enable-inifile" -;; "--enable-intl" -;; "--enable-mbstring" -;; "--enable-pcntl" -;; "--enable-sockets")) -;; #:phases -;; (modify-phases %standard-phases -;; (add-after 'unpack 'do-not-record-build-flags -;; (lambda _ -;; ;; Prevent configure flags from being stored and causing -;; ;; unnecessary runtime dependencies. -;; (substitute* "scripts/php-config.in" -;; (("@CONFIGURE_OPTIONS@") "") -;; (("@PHP_LDFLAGS@") "")) -;; ;; This file has ISO-8859-1 encoding. -;; (with-fluids ((%default-port-encoding "ISO-8859-1")) -;; (substitute* "main/build-defs.h.in" -;; (("@CONFIGURE_COMMAND@") "(omitted)"))))) -;; (add-before 'build 'patch-/bin/sh -;; (lambda _ -;; (substitute* '("run-tests.php" "ext/standard/proc_open.c") -;; (("/bin/sh") (which "sh"))))) -;; (add-before 'check 'prepare-tests -;; (lambda _ -;; ;; Some of these files have ISO-8859-1 encoding, whereas others -;; ;; use ASCII, so we can't use a "catch-all" find-files here. -;; (with-fluids ((%default-port-encoding "ISO-8859-1")) -;; (substitute* '("ext/mbstring/tests/mb_send_mail02.phpt" -;; "ext/mbstring/tests/mb_send_mail04.phpt" -;; "ext/mbstring/tests/mb_send_mail05.phpt" -;; "ext/mbstring/tests/mb_send_mail06.phpt") -;; (("/bin/cat") (which "cat")))) -;; (substitute* '("ext/mbstring/tests/mb_send_mail01.phpt" -;; "ext/mbstring/tests/mb_send_mail03.phpt" -;; "ext/mbstring/tests/bug52681.phpt" -;; "ext/standard/tests/general_functions/bug34794.phpt" -;; "ext/standard/tests/general_functions/bug44667.phpt" -;; "ext/standard/tests/general_functions/proc_open.phpt") -;; (("/bin/cat") (which "cat"))) - -;; ;; The encoding of this file is not recognized, so we simply drop it. -;; (delete-file "ext/mbstring/tests/mb_send_mail07.phpt") - -;; (substitute* "ext/standard/tests/streams/bug60602.phpt" -;; (("'ls'") (string-append "'" (which "ls") "'"))) - -;; ,@(if (string-prefix? "arm" (or (%current-system) -;; (%current-target-system))) -;; ;; Drop tests known to fail on armhf. -;; '((for-each delete-file -;; (list -;; "ext/calendar/tests/unixtojd_error1.phpt" -;; ;; arm can be a lot slower, so a time-related test fails -;; "ext/fileinfo/tests/cve-2014-3538-nojit.phpt" -;; "ext/pcntl/tests/pcntl_unshare_01.phpt" -;; "ext/pcre/tests/bug76514.phpt" -;; "ext/pcre/tests/preg_match_error3.phpt" -;; "ext/pcre/tests/cache_limit.phpt" -;; "ext/sockets/tests/socket_getopt.phpt" -;; "ext/sockets/tests/socket_sendrecvmsg_error.phpt" -;; "ext/standard/tests/general_functions/var_export-locale.phpt" -;; "ext/standard/tests/general_functions/var_export_basic1.phpt" -;; "ext/intl/tests/timezone_getErrorCodeMessage_basic.phpt" -;; "ext/intl/tests/timezone_getOffset_error.phpt" -;; "sapi/cli/tests/cli_process_title_unix.phpt" -;; "sapi/cli/tests/upload_2G.phpt" -;; "Zend/tests/concat_003.phpt"))) -;; '()) - -;; ,@(if (target-ppc64le?) -;; ;; Drop tests known to fail on powerpc64le. -;; '((for-each delete-file -;; (list -;; ;; phpdbg watchpoints don't work. -;; ;; Bug tracked upstream at: -;; ;; https://bugs.php.net/bug.php?id=81408 -;; "sapi/phpdbg/tests/watch_001.phpt" -;; "sapi/phpdbg/tests/watch_003.phpt" -;; "sapi/phpdbg/tests/watch_004.phpt" -;; "sapi/phpdbg/tests/watch_005.phpt" -;; "sapi/phpdbg/tests/watch_006.phpt"))) -;; '()) - -;; ;; Drop tests that are known to fail. -;; (for-each delete-file -;; '("ext/posix/tests/posix_getgrgid.phpt" ; Requires /etc/group. -;; "ext/posix/tests/posix_getgrnam_basic.phpt" ; Requires /etc/group. -;; "ext/sockets/tests/bug63000.phpt" ; Fails to detect OS. -;; "ext/sockets/tests/socket_shutdown.phpt" ; Requires DNS. -;; "ext/sockets/tests/socket_send.phpt" ; Likewise. -;; "ext/sockets/tests/mcast_ipv4_recv.phpt" ; Requires multicast. -;; ;; These needs /etc/services. -;; "ext/standard/tests/general_functions/getservbyname_basic.phpt" -;; "ext/standard/tests/general_functions/getservbyport_basic.phpt" -;; "ext/standard/tests/general_functions/getservbyport_variation1.phpt" -;; ;; And /etc/protocols. -;; "ext/standard/tests/network/getprotobyname_basic.phpt" -;; "ext/standard/tests/network/getprotobynumber_basic.phpt" -;; ;; And exotic locales. -;; "ext/standard/tests/strings/setlocale_basic1.phpt" -;; "ext/standard/tests/strings/setlocale_basic2.phpt" -;; "ext/standard/tests/strings/setlocale_basic3.phpt" -;; "ext/standard/tests/strings/setlocale_variation1.phpt" -;; ;; This failing test is skipped on PHP's Travis CI as it is -;; ;; supposedly inaccurate. -;; "ext/standard/tests/file/disk_free_space_basic.phpt" -;; ;; The following test erroneously expect the link -;; ;; count of a sub-directory to increase compared to -;; ;; its parent. -;; "ext/standard/tests/file/lstat_stat_variation8.phpt" -;; ;; This tests whether microseconds ‘differ enough’ and -;; ;; fails inconsistently on ‘fast’ machines. -;; "ext/date/tests/bug73837.phpt" - -;; ;; XXX: These gd tests fails. Likely because our version -;; ;; is different from the (patched) bundled one. -;; ;; Here, gd quits immediately after "fatal libpng error"; while the -;; ;; test expects it to additionally return a "setjmp" error and warning. -;; "ext/gd/tests/bug39780_extern.phpt" -;; "ext/gd/tests/libgd00086_extern.phpt" -;; ;; Extra newline in gd-png output. -;; "ext/gd/tests/bug45799.phpt" -;; ;; Test expects generic "gd warning" but gets the actual function name. -;; "ext/gd/tests/createfromwbmp2_extern.phpt" -;; ;; This bug should have been fixed in gd 2.2.2. -;; ;; Is it a regression? -;; "ext/gd/tests/bug65148.phpt" -;; ;; This bug should have been fixed in the gd 2.2 -;; ;; series. Perhaps a regression introduced by gd -;; ;; 2.3.0? -;; "ext/gd/tests/bug66590.phpt" -;; ;; This bug should have been fixed in the php-5.5 -;; ;; series. Perhaps a regression introduced by gd -;; ;; 2.3.0? -;; "ext/gd/tests/bug70102.phpt" -;; ;; This bug should have been fixed in the php-5.6 -;; ;; series. Perhaps a regression introduced by gd -;; ;; 2.3.0? -;; "ext/gd/tests/bug73869.phpt" -;; ;; Some WebP related tests fail. -;; "ext/gd/tests/webp_basic.phpt" -;; "ext/gd/tests/imagecreatefromstring_webp.phpt" -;; ;; Expected error message, but from the wrong function -;; "ext/gd/tests/bug77269.phpt" -;; ;; TODO: Enable these when libgd is built with xpm support. -;; "ext/gd/tests/xpm2gd.phpt" -;; "ext/gd/tests/xpm2jpg.phpt" -;; "ext/gd/tests/xpm2png.phpt" -;; ;; Whitespace difference, probably caused by a very -;; ;; long store path -;; "ext/gd/tests/bug77479.phpt" -;; ;; Expected invalid XBM but got EOF before image was -;; ;; complete. It's a warning in both cases and test -;; ;; result is the same. -;; "ext/gd/tests/bug77973.phpt" -;; ;; Test expects uninitialized value to be false, but -;; ;; instead gets "resource(5) of type (gd)". -;; "ext/gd/tests/bug79067.phpt" -;; ;; The following test fails with "The image size -;; ;; differs: expected 114x115, got 117x117". -;; "ext/gd/tests/bug79068.phpt" - -;; ;; XXX: These iconv tests have the expected outcome, -;; ;; but with different error messages. -;; ;; Expects "illegal character", instead gets "unknown error (84)". -;; "ext/iconv/tests/bug52211.phpt" -;; "ext/iconv/tests/bug60494.phpt" -;; ;; Expects "wrong charset", gets unknown error (22). -;; "ext/iconv/tests/iconv_strlen_error2.phpt" -;; "ext/iconv/tests/iconv_substr_error2.phpt" -;; ;; Expects conversion error, gets "error condition Termsig=11". -;; "ext/iconv/tests/iconv_strpos_error2.phpt" -;; "ext/iconv/tests/iconv_strrpos_error2.phpt" -;; ;; Expects "invalid multibyte sequence" but got -;; ;; "unknown error". -;; "ext/iconv/tests/bug76249.phpt" - -;; ;; XXX: These test failures appear legitimate, needs investigation. -;; ;; open_basedir() restriction failure. -;; "ext/curl/tests/bug61948-unix.phpt" -;; ;; Expects a false boolean, gets empty array from glob(). -;; "ext/standard/tests/file/bug41655_1.phpt" -;; "ext/standard/tests/file/glob_variation5.phpt" -;; ;; The test expects an Array, but instead get the contents(?). -;; "ext/gd/tests/bug43073.phpt" -;; ;; imagettftext() returns wrong coordinates. -;; "ext/gd/tests/bug48732-mb.phpt" -;; "ext/gd/tests/bug48732.phpt" -;; ;; Similarly for imageftbbox(). -;; "ext/gd/tests/bug48801-mb.phpt" -;; "ext/gd/tests/bug48801.phpt" -;; ;; Different expected output from imagecolorallocate(). -;; "ext/gd/tests/bug53504.phpt" -;; ;; Wrong image size after scaling an image. -;; "ext/gd/tests/bug73272.phpt" -;; ;; Expects iconv to detect illegal characters, instead gets -;; ;; "unknown error (84)" and heap corruption(!). -;; "ext/iconv/tests/bug48147.phpt" -;; ;; Expects illegal character ".", gets "=?utf-8?Q?." -;; "ext/iconv/tests/bug51250.phpt" -;; ;; iconv throws "buffer length exceeded" on some string checks. -;; "ext/iconv/tests/iconv_mime_encode.phpt" -;; ;; file_get_contents(): iconv stream filter -;; ;; ("ISO-8859-1"=>"UTF-8") unknown error. -;; "ext/standard/tests/file/bug43008.phpt" -;; ;; Table data not created in sqlite(?). -;; "ext/pdo_sqlite/tests/bug_42589.phpt" -;; ;; Expects an Array with 3 preg_matches; gets 0. -;; "ext/pcre/tests/bug79846.phpt" -;; ;; Expects an empty Array; gets one with " " in it. -;; "ext/pcre/tests/bug80118.phpt" -;; ;; Renicing a process fails in the build environment. -;; "ext/standard/tests/general_functions/proc_nice_basic.phpt" -;; ;; Can fail on fast machines? -;; "Zend/tests/bug74093.phpt")) - -;; ;; Accomodate two extra openssl errors flanking the expected one: -;; ;; random number generator:RAND_{load,write}_file:Cannot open file -;; ;; This is due to an invalid $HOME, but changing it in the test -;; ;; still prints the first one & changing it globally is overkill. -;; (substitute* "ext/openssl/tests/bug80747.phpt" -;; ((".*error:%s:key size too small.*" match) -;; (string-append "%s\n" match "%s\n"))) - -;; ;; Skip tests requiring network access. -;; (setenv "SKIP_ONLINE_TESTS" "1") -;; ;; Without this variable, 'make test' passes regardless of failures. -;; (setenv "REPORT_EXIT_STATUS" "1") -;; ;; Skip tests requiring I/O facilities that are unavailable in the -;; ;; build environment -;; (setenv "SKIP_IO_CAPTURE_TESTS" "1")))) -;; #:test-target "test")) -;; (inputs -;; `(("aspell" ,aspell) -;; ("bzip2" ,bzip2) -;; ("curl" ,curl) -;; ("cyrus-sasl" ,cyrus-sasl) -;; ("gd" ,gd) -;; ("gdbm" ,gdbm) -;; ("gmp" ,gmp) -;; ("gnutls" ,gnutls) -;; ("icu4c" ,icu4c) -;; ("libgcrypt" ,libgcrypt) -;; ("libpng" ,libpng) -;; ("libsodium" ,libsodium) -;; ("libxml2" ,libxml2) -;; ("libxslt" ,libxslt) -;; ("libx11" ,libx11) -;; ("libzip" ,libzip) -;; ("oniguruma" ,oniguruma) -;; ("openldap" ,openldap) -;; ("openssl" ,openssl) -;; ("pcre" ,pcre2) -;; ("postgresql" ,postgresql) -;; ("readline" ,readline) -;; ("sqlite" ,sqlite) -;; ("tidy" ,tidy) -;; ("zlib" ,zlib))) -;; (native-inputs -;; `(("pkg-config" ,pkg-config) -;; ("bison" ,bison) -;; ("gettext" ,gettext-minimal) -;; ("procps" ,procps))) ; for tests -;; (synopsis "PHP programming language") -;; (description -;; "PHP (PHP Hypertext Processor) is a server-side (CGI) scripting -;; language designed primarily for web development but is also used as -;; a general-purpose programming language. PHP code may be embedded into -;; HTML code, or it can be used in combination with various web template -;; systems, web content management systems and web frameworks." ) -;; (license (list -;; (license:non-copyleft "file://LICENSE") ; The PHP license. -;; (license:non-copyleft "file://Zend/LICENSE") ; The Zend license. -;; license:lgpl2.1 ; ext/mbstring/libmbfl -;; license:lgpl2.1+ ; ext/bcmath/libbcmath -;; license:bsd-2 ; ext/fileinfo/libmagic -;; license:expat)))) +/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 index 1db1a8d..ceb6ecf 100644..120000 --- a/guix/.guix-packages/python.scm +++ b/guix/.guix-packages/python.scm @@ -1,336 +1 @@ -(define-module (python) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (gnu packages) - #:use-module (gnu packages base) - #:use-module (gnu packages bash) - #:use-module (gnu packages certs) - #:use-module (gnu packages check) - #:use-module (gnu packages compression) - #:use-module (gnu packages dbm) - #:use-module (gnu packages time) - #:use-module (gnu packages databases) - #:use-module (gnu packages hurd) - #:use-module (gnu packages libffi) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python-xyz) - #:use-module (gnu packages python-web) - #:use-module (gnu packages readline) - #:use-module (gnu packages shells) - #:use-module (gnu packages sqlite) - #:use-module (gnu packages tcl) - #:use-module (gnu packages tls) - #:use-module (gnu packages xml) - #:use-module (guix gexp) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix utils) - #:use-module (guix build-system gnu) - #:use-module (guix build-system python) - #:use-module (guix build-system trivial) - #:use-module (srfi srfi-1) - #:use-module (srfi srfi-26) - - #:export (customize-site - guix-pythonpath-search-path)) - -(define-public python-types-urllib3 - (package - (name "python-types-urllib3") - (version "1.26.11") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-urllib3" version)) - (sha256 - (base32 "0nri65gfihl4wcbi33wwcksmh5g3ibhjs0hxbyq1x1b82524xmi4")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for urllib3") - (description "Typing stubs for urllib3") - (license #f))) - -(define-public python-types-requests - (package - (name "python-types-requests") - (version "2.27.16") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-requests" version)) - (sha256 - (base32 "16zypz2csgw0c86ffmyn7mljbg1h4phxnlhl1fvfz9win8c0q0f8")))) - (build-system python-build-system) - (propagated-inputs (list python-types-urllib3)) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for requests") - (description "Typing stubs for requests") - (license #f))) - -(define-public python-types-pyyaml - (package - (name "python-types-pyyaml") - (version "6.0.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-PyYAML" version)) - (sha256 - (base32 "0blavmg6f0xapjba1sh2rnvrdjx5dps1r3h3ihxdilgk2h4hakj6")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for PyYAML") - (description "Typing stubs for PyYAML") - (license #f))) - -(define-public python-types-pytz - (package - (name "python-types-pytz") - (version "2021.3.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-pytz" version)) - (sha256 - (base32 "14yr5hg2ww8s4a0mz2bkd549fv8qgm538fnzxvqv92ld1pcpym3l")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for pytz") - (description "Typing stubs for pytz") - (license #f))) - -(define-public python-types-psycopg2 - (package - (name "python-types-psycopg2") - (version "2.9.9") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-psycopg2" version)) - (sha256 - (base32 "0bhaybs5rl864yw2w1qapbpihp4a798z3m2yzl0dqhxkxr94v7ag")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for psycopg2") - (description "Typing stubs for psycopg2") - (license #f))) - -(define-public python-types-werkzeug - (package - (name "python-types-werkzeug") - (version "1.0.9") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-Werkzeug" version)) - (sha256 - (base32 "132im9g3m7hv57g3zq30qj7qfpv5jxiyw354aba360a09ih6khjw")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for Werkzeug") - (description "Typing stubs for Werkzeug") - (license #f))) - -(define-public python-types-markupsafe - (package - (name "python-types-markupsafe") - (version "1.1.10") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-MarkupSafe" version)) - (sha256 - (base32 "1c8iczhgiyw7f92mhbq3j9038g0rj3sqwamclnisw0ixd1raicw5")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for MarkupSafe") - (description "Typing stubs for MarkupSafe") - (license #f))) - -(define-public python-types-jinja2 - (package - (name "python-types-jinja2") - (version "2.11.9") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-Jinja2" version)) - (sha256 - (base32 "10cc9d6hikrv28sqn84lhi8qchpyy3l8jkby1d9fsyms1aj79p6v")))) - (build-system python-build-system) - (propagated-inputs (list python-types-markupsafe)) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for Jinja2") - (description "Typing stubs for Jinja2") - (license #f))) - -(define-public python-types-flask - (package - (name "python-types-flask") - (version "1.1.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-Flask" version)) - (sha256 - (base32 "1kz9cdbirfxa79vvy777bdpfl8ygf60x1xh1ddp47ygzmfrpgixa")))) - (build-system python-build-system) - (propagated-inputs - (list python-types-click python-types-jinja2 python-types-werkzeug)) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for Flask") - (description "Typing stubs for Flask") - (license #f))) - -(define-public python-types-click - (package - (name "python-types-click") - (version "7.1.8") - (source - (origin - (method url-fetch) - (uri (pypi-uri "types-click" version)) - (sha256 - (base32 "14p0yjzxpw0jfkyhx16bl2kvla0ai9q51jhicd8xq0b4prl4jq5n")))) - (build-system python-build-system) - (home-page "https://github.com/python/typeshed") - (synopsis "Typing stubs for click") - (description "Typing stubs for click") - (license #f))) - -(define-public python-systemd-python - (package - (name "python-systemd-python") - (version "234") - (source - (origin - (method url-fetch) - (uri (pypi-uri "systemd-python" version)) - (sha256 - (base32 "1rw3vfakils7h0i93cyi5hvvdc5mgq5cp4n2mmdf9npaf2zl83px")))) - (build-system python-build-system) - (home-page "https://github.com/systemd/python-systemd") - (synopsis "Python interface for libsystemd") - (description "Python interface for libsystemd") - (license #f))) - -(define-public python-gunicorn - (package - (name "python-gunicorn") - (version "20.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "gunicorn" version)) - (sha256 - (base32 "1s7670qw36x90bgmazmgib170i5gnpyb2ypxzlla7y0mpasniag0")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) - (propagated-inputs (list python-setuptools)) - (home-page "https://gunicorn.org") - (synopsis "WSGI HTTP Server for UNIX") - (description "WSGI HTTP Server for UNIX") - (license license:expat))) - -(define-public python-aiohttp-utils - (package - (name "python-aiohttp-utils") - (version "3.1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "aiohttp_utils" version)) - (sha256 - (base32 "056w0aw3nnnhwzrn8rrsn7hbmxb5yd7iz8h4m4x1kzd32pfc9wh8")))) - (build-system python-build-system) - (arguments - `(#:tests? #f)) - (propagated-inputs (list python-aiohttp python-gunicorn python-mimeparse)) - (home-page "https://github.com/sloria/aiohttp_utils") - (synopsis "Handy utilities for aiohttp.web applications.") - (description "Handy utilities for aiohttp.web applications.") - (license license:expat))) - -(define-public python-mirakuru - (package - (name "python-mirakuru") - (version "2.4.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "mirakuru" version)) - (sha256 - (base32 "09l2a2c2mh422j43q8n1l0vg14la34ynp32r1v5rdjjb3gcd917c")))) - (build-system python-build-system) - (propagated-inputs (list python-psutil)) - (native-inputs (list python-daemon python-pytest python-pytest-cov)) - (home-page "https://github.com/ClearcodeHQ/mirakuru") - (synopsis "Process executor (not only) for tests.") - (description "Process executor (not only) for tests.") - (license #f))) - -(define-public python-pytest-postgresql - (package - (name "python-pytest-postgresql") - (version "4.1.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pytest-postgresql" version)) - (sha256 - (base32 "0p99j6wm36s0xz3zxi8qyir0ajnxpzcjb00f3z5xwh8603s6lk8l")))) - (build-system python-build-system) - (propagated-inputs - (list python-mirakuru python-port-for python-pytest python-setuptools)) - (native-inputs (list python-pytest-cov python-pytest-xdist)) - (home-page "https://github.com/ClearcodeHQ/pytest-postgresql") - (synopsis "Postgresql fixtures and fixture factories for Pytest.") - (description "Postgresql fixtures and fixture factories for Pytest.") - (license #f))) - -(define-public python-swh.core - (package - (name "python-swh.core") - (version "2.4.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "swh.core" version)) - (sha256 - (base32 "17dyqq1z774xnbjak4ncdrbp6acnbrmks0636fw1rmqq728rzz68")))) - (build-system python-build-system) - (propagated-inputs - (list python-click - python-deprecated - python-magic - python-pyyaml - python-sentry-sdk)) - (native-inputs - (list python-aiohttp - python-aiohttp-utils - python-blinker - python-flask - python-hypothesis - python-iso8601 - python-msgpack - python-psycopg2 - python-pytest - python-pytest-mock - python-pytest-postgresql - python-pytz - python-requests - python-requests-mock - ;;python-systemd-python - python-types-click - python-types-flask - python-types-psycopg2 - python-types-pytz - python-types-pyyaml - python-types-requests - python-typing-extensions)) - (home-page "https://forge.softwareheritage.org/diffusion/DCORE/") - (synopsis "Software Heritage core utilities") - (description "Software Heritage core utilities") - (license #f))) - +/gnu/store/jafbqipm2a88dppzq6y9r2fhmpznb293-home-dotfiles--guix-packages-python-scm
\ No newline at end of file diff --git a/guix/.zprofile b/guix/.zprofile deleted file mode 100644 index 58d90e4..0000000 --- a/guix/.zprofile +++ /dev/null @@ -1,2 +0,0 @@ -# Honor system-wide environment variables -source /etc/profile diff --git a/guix/.zshenv b/guix/.zshenv deleted file mode 100644 index 456b247..0000000 --- a/guix/.zshenv +++ /dev/null @@ -1 +0,0 @@ -if [ -e /home/w96k/.nix-profile/etc/profile.d/nix.sh ]; then . /home/w96k/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer diff --git a/guix/.zshrc b/guix/.zshrc deleted file mode 100644 index 0f9b19f..0000000 --- a/guix/.zshrc +++ /dev/null @@ -1,20 +0,0 @@ -# Enable colors and change prompt: -autoload -U colors && colors -PS1="%B%{$fg[magenta]%}%n %{$fg[blue]%}%~ %{$fg[grey]%}$%{$reset_color%}%b " - -#PS1="%B%{$fg[magenta]%}%n" -#PS1="%B%{$fg[red]%}" -#PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b " - -# Basic auto/tab complete: -autoload -U compinit -zstyle ':completion:*' menu select -zmodload zsh/complist -compinit -_comp_options+=(globdots) # Include hidden files. - -#source /run/current-system/profile/etc/profile.d/nix.sh - -#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!! -export SDKMAN_DIR="/home/w96k/.sdkman" -[[ -s "/home/w96k/.sdkman/bin/sdkman-init.sh" ]] && source "/home/w96k/.sdkman/bin/sdkman-init.sh" diff --git a/guix/config-desktop.scm b/guix/config-desktop.scm new file mode 100644 index 0000000..cf30280 --- /dev/null +++ b/guix/config-desktop.scm @@ -0,0 +1,154 @@ +(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/.dotfiles/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/guix/config-desktop.scm~ b/guix/config-desktop.scm~ new file mode 100644 index 0000000..1f5f038 --- /dev/null +++ b/guix/config-desktop.scm~ @@ -0,0 +1,154 @@ +(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/guix/config.scm b/guix/config-thinkpad.scm index e57facc..e57facc 100644 --- a/guix/config.scm +++ b/guix/config-thinkpad.scm diff --git a/guix/desktop.scm b/guix/desktop.scm deleted file mode 100644 index 99f0f31..0000000 --- a/guix/desktop.scm +++ /dev/null @@ -1,109 +0,0 @@ -;; This is an operating system configuration generated -;; by the graphical installer. -;; -;; Once installation is complete, you can learn and modify -;; this file to tweak the system configuration, and pass it -;; to the 'guix system reconfigure' command to effect your -;; changes. - - -;; Indicate which modules to import to access the variables -;; used in this configuration. -(use-modules (gnu) - (nongnu packages linux) - (nongnu system linux-initrd)) -(use-service-modules cups desktop networking ssh xorg) - -(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"))) - %base-user-accounts)) - - ;; Packages installed system-wide. Users can also install packages - ;; under their own account: use 'guix search KEYWORD' to search - ;; for packages and 'guix install PACKAGE' to install a package. - (packages (append (list (specification->package "ratpoison") - (specification->package "xterm") - (specification->package "emacs") - (specification->package "emacs-exwm") - (specification->package - "emacs-desktop-environment") - (specification->package "nss-certs")) - %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 tor-service-type) - (service openssh-service-type) - (service slim-service-type - (slim-configuration - (xorg-configuration - (xorg-configuration - (keyboard-layout keyboard-layout))))) - - ;; (set-xorg-configuration - ;; (xorg-configuration (keyboard-layout keyboard-layout))) - - ) - - (modify-services %desktop-services - (guix-service-type config => (guix-configuration - (inherit config) - (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)))) - - ;; The list of file systems that get "mounted". The unique - ;; file system identifiers there ("UUIDs") can be obtained - ;; by running 'blkid' in a terminal. - (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") - (dependencies mapped-devices)) %base-file-systems))) diff --git a/guix/emacs.scm b/guix/emacs.scm deleted file mode 100644 index 8d3d88a..0000000 --- a/guix/emacs.scm +++ /dev/null @@ -1,92 +0,0 @@ -(use-package-modules guile emacs) - -(specifications->manifest - '(;;"emacs-next" - ;;"emacs-no-x-toolkit" - "emacs-with-editor" - "emacs-use-package" - ;;"emacs-auto-package-update" - ;;"emacs-color-theme-sanityinc-tomorrow" - ;;"emacs-mood-line" - ;;"emacs-agressive-indent" - "emacs-guix" - "emacs-edit-indirect" - "emacs-build-farm" - "guile-gcrypt" - "emacs-dash" - "emacs-bui" - "emacs-pdf-tools" - "emacs-magit" - ;;"emacs-magit-gitflow" - "emacs-undo-tree" - "emacs-magit-todos" - ;;"emacs-git-gutter+" - "emacs-ace-jump-mode" - "emacs-ido-vertical-mode" - "emacs-ido-completing-read+" - "emacs-ido-ubiquitous" - "emacs-amx" - "emacs-company" - "emacs-company-quickhelp" - "emacs-ivy" - ;;"emacs-swiper" - "emacs-projectile" - "emacs-dumb-jump" - "emacs-yasnippet" - "emacs-yasnippet-snippets" - "emacs-whitespace-cleanup-mode" - ;;"emacs-column-enforce-mode" - "emacs-editorconfig" - "emacs-sudo-edit" - "emacs-rainbow-delimiters" - "emacs-paredit" - "emacs-s" - "emacs-company-jedi" - "emacs-nodejs-repl" - "emacs-typescript-mode" - ;;"emacs-mwim" - ;;"emacs-vue-mode" - "emacs-haskell-mode" - ;;"emacs-intero" - "emacs-cider" - "emacs-org-bullets" - "emacs-org-pomodoro" - ;;"emacs-org-journal" - ;;"emacs-epresent" - ;;"emacs-flymd" - ;;"emacs-flycheck-lilypond" - ;;"emacs-erc" - "emacs-telega" - ;;"emacs-org-mime" - "emacs-pinentry" - "emacs-exec-path-from-shell" - "emacs-docker" - "emacs-debbugs" - ;;"emacs-keycast" - ;;"emacs-pos-tip" - "emacs-simple-httpd" - "emacs-js2-mode" - "emacs-web-mode" - "emacs-restclient" - ;;"emacs-djvu" - "emacs-htmlize" - "emacs-ledger-mode" - "emacs-diminish" - ;;"emacs-smooth-scrolling" - "emacs-so-long" - "emacs-hydra" - "emacs-geiser" - "emacs-scheme-complete" - "emacs-build-farm" - "emacs-clojure-mode" - "emacs-cider" - "emacs-slime" - "emacs-slime-company" - "emacs-parinfer-mode" - "emacs-lispy" - "emacs-emms" - "emacs-which-key" - "emacs-emacsql" - "emacs-slime" - "emacs-slime-company" - )) diff --git a/guix/etc/guix/machines.scm b/guix/etc/guix/machines.scm deleted file mode 100644 index 9de456a..0000000 --- a/guix/etc/guix/machines.scm +++ /dev/null @@ -1,9 +0,0 @@ -(list (build-machine - (name "Yunohost") - (systems (list "x86_64-linux" "i686-linux")) - (host-key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHeon4e9iK9HWicDp2lwoBmbTXQPB4dofNaBubGflhJN root@yunohost") - (user "root") - (private-key - (string-append (getenv "HOME") - "/.ssh/id_ed25519")) - (speed 2.))) diff --git a/guix/home/.bashrc b/guix/home/.bashrc deleted file mode 100644 index 7b58a92..0000000 --- a/guix/home/.bashrc +++ /dev/null @@ -1,28 +0,0 @@ -# Bash initialization for interactive non-login shells and -# for remote shells (info "(bash) Bash Startup Files"). - -# Export 'SHELL' to child processes. Programs such as 'screen' -# honor it and otherwise use /bin/sh. -export SHELL - -export GUIX_PACKAGE_PATH=$HOME/.guix-packages -export GUIX_EXTRA_PROFILES=$HOME/.guix-extra-profiles - -if [[ $- != *i* ]] -then - # We are being invoked from a non-interactive shell. If this - # is an SSH session (as in "ssh host command"), source - # /etc/profile so we get PATH and other essential variables. - [[ -n "$SSH_CLIENT" ]] && source /etc/profile - - # Don't do anything else. - return -fi - -# Source the system-wide file. -[ -f /etc/bashrc ] && source /etc/bashrc - -alias ls='ls -p --color=auto' -alias ll='ls -l' -alias grep='grep --color=auto' -alias ip='ip -color=auto' diff --git a/guix/home/home-configuration.scm b/guix/home/home-configuration.scm deleted file mode 100644 index 2f29174..0000000 --- a/guix/home/home-configuration.scm +++ /dev/null @@ -1,70 +0,0 @@ -;; This "home-environment" file can be passed to 'guix home reconfigure' -;; to reproduce the content of your profile. This is "symbolic": it only -;; specifies package names. To reproduce the exact same profile, you also -;; need to capture the channels being used, as returned by "guix describe". -;; See the "Replicating Guix" section in the manual. - -(use-modules (gnu home) - (gnu packages) - (gnu services) - (guix gexp) - (gnu home services shells)) - -(define wkz-home (home-environment - (packages (specifications->packages (list "darktable" - "openssh" - "docker-compose" - "emacs-company" - "emacs-f" - "emacs-s" - "emacs-xterm-color" - "emacs-lsp-mode" - "wget" - "bitcoin-core" - "xrandr" - "unzip" - "zip" - "mpv" - "emacs-rmsbolt" - "git" - "emacs" - "lm-sensors" - "htop" - "make" - "emacs-simple-httpd" - "emacs-guix" - "emacs-telega" - "gimp" - "imagemagick" - "stow" - "icecat" - "smartmontools" - "lshw" - "hwinfo" - "ntfs-3g" - "qbittorrent" - "x11-ssh-askpass" - "syncthing" - "pavucontrol" - "wmname" - "arp-scan" - "proot" - "openconnect" - "alsa-utils" - "grep"))) - - ;; 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 - (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"))))))))) diff --git a/guix/home/home-configuration.scm~ b/guix/home/home-configuration.scm~ deleted file mode 100644 index 403106a..0000000 --- a/guix/home/home-configuration.scm~ +++ /dev/null @@ -1,80 +0,0 @@ -;; This "home-environment" file can be passed to 'guix home reconfigure' -;; to reproduce the content of your profile. This is "symbolic": it only -;; specifies package names. To reproduce the exact same profile, you also -;; need to capture the channels being used, as returned by "guix describe". -;; See the "Replicating Guix" section in the manual. - -(use-modules (gnu home) - (gnu packages) - (gnu services) - (guix gexp) - (gnu home services shells)) - -(home-environment - ;; Below is the list of packages that will show up in your - ;; Home profile, under ~/.guix-home/profile. - (packages (specifications->packages (list "darktable" - "openssh" - "docker-compose" - "emacs-company" - "emacs-f" - "emacs-s" - "emacs-xterm-color" - "emacs-lsp-mode" - "emacs-osm" - "wget" - "bitcoin-core" - "xrandr" - "unzip" - "zip" - "mpv" - "gnupg" - "pinentry-tty" - "pinentry-emacs" - "signing-party" - "emacs-rmsbolt" - "git" - "emacs-no-x-toolkit" - "emacs-mastodon" - "lm-sensors" - "htop" - "make" - "emacs-simple-httpd" - "emacs-guix" - "emacs-telega" - "font-gnu-unifont" - "gimp" - "imagemagick" - "stow" - "icecat" - "icedove" - "smartmontools" - "lshw" - "hwinfo" - "ntfs-3g" - "qbittorrent" - "x11-ssh-askpass" - "syncthing" - "pavucontrol" - "wmname" - "arp-scan" - "proot" - "openconnect" - "alsa-utils" - "grep"))) - - ;; 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 - (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")))))))) diff --git a/guix/machines.scm b/guix/machines.scm deleted file mode 100644 index 0f90ec3..0000000 --- a/guix/machines.scm +++ /dev/null @@ -1,9 +0,0 @@ -(list (build-machine - (name "wkz-serv") - ;;(system "x86_64-linux") - (host-key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDGqGIwdYuz+fnvMFQjA7S/xw6bTkJsJg+/6bORPb3Bf root@(none)") - (user "root") - (parallel-builds 4) - (features '("kvm")) - (speed 2.0) - )) diff --git a/guix/rde/.envrc b/guix/rde/.envrc deleted file mode 100644 index 50edec8..0000000 --- a/guix/rde/.envrc +++ /dev/null @@ -1,2 +0,0 @@ -GUIX_PROFILE=target/profiles/guix -if [ -f $GUIX_PROFILE/etc/profile ]; then source $GUIX_PROFILE/etc/profile; fi diff --git a/guix/rde/Makefile b/guix/rde/Makefile deleted file mode 100644 index f829718..0000000 --- a/guix/rde/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# profiles.mk provides guix version specified by rde/channels-lock.scm -# To rebuild channels-lock.scm use `make -B rde/channels-lock.scm` -include profiles.mk - -# Also defined in .envrc to make proper guix version available project-wide -GUIX_PROFILE=target/profiles/guix -GUIX=./pre-inst-env ${GUIX_PROFILE}/bin/guix - -SRC_DIR=./src -CONFIGS=${SRC_DIR}/abcdw/configs.scm -PULL_EXTRA_OPTIONS= -# --allow-downgrades - -ROOT_MOUNT_POINT=/mnt - -VERSION=latest - -target: - mkdir -p target - -build-home: guix - ${GUIX} home build ./src/wkz-p1.scm - -install-home: guix - ${GUIX} home reconfigure ./src/wkz-p1.scm -v 5 - -rollback-home: guix - ${GUIX} home roll-back - -clean-target: - rm -rf ./target - -clean: clean-target diff --git a/guix/rde/pre-inst-env b/guix/rde/pre-inst-env deleted file mode 100755 index 886c81c..0000000 --- a/guix/rde/pre-inst-env +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -GUILE_LOAD_PATH="./src${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" -export GUILE_LOAD_PATH - -exec "$@" diff --git a/guix/rde/profiles.mk b/guix/rde/profiles.mk deleted file mode 100644 index 1b90888..0000000 --- a/guix/rde/profiles.mk +++ /dev/null @@ -1,34 +0,0 @@ -# -# Profiles -# - -# Store items doesn't have useful mtime, so we rely on guix.lock to prevent -# unecessary rebuilds -guix: target/guix-time-marker - -target/profiles: - mkdir -p target/profiles - -target/guix-time-marker: rde/channels-lock.scm - make target/profiles/guix - touch $@ - -target/profiles/guix: target/profiles rde/channels-lock.scm - guix pull -C rde/channels-lock.scm -p ${GUIX_PROFILE} \ - ${PULL_EXTRA_OPTIONS} - -target/profiles/guix-local: target/profiles rde/channels-lock-local.scm - guix pull -C rde/channels-lock-local.scm -p ${GUIX_PROFILE} \ - ${PULL_EXTRA_OPTIONS} - -rde/channels-lock.scm: rde/channels.scm - echo -e "(use-modules (guix channels))\n" > ./rde/channels-lock-tmp.scm - guix time-machine -C ./rde/channels.scm -- \ - describe -f channels >> ./rde/channels-lock-tmp.scm - mv ./rde/channels-lock-tmp.scm ./rde/channels-lock.scm - -rde/channels-lock-local.scm: rde/channels-local.scm - echo -e "(use-modules (guix channels))\n" > ./rde/channels-lock-tmp.scm - guix time-machine -C ./rde/channels-local.scm -- \ - describe -f channels >> ./rde/channels-lock-tmp.scm - mv ./rde/channels-lock-tmp.scm ./rde/channels-lock-local.scm diff --git a/guix/rde/rde/channels-local.scm b/guix/rde/rde/channels-local.scm deleted file mode 100644 index da81890..0000000 --- a/guix/rde/rde/channels-local.scm +++ /dev/null @@ -1,20 +0,0 @@ -(use-modules (guix ci) - (guix channels)) - -(list - (channel - (name 'guix) - (url "file:///home/bob/work/gnu/guix") - (introduction - (make-channel-introduction - "9edb3f66fd807b096b48283debdcddccfea34bad" - (openpgp-fingerprint - "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))) - (channel - (name 'rde) - (url "https://git.sr.ht/~abcdw/rde") - (introduction - (make-channel-introduction - "257cebd587b66e4d865b3537a9a88cccd7107c95" - (openpgp-fingerprint - "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0"))))) diff --git a/guix/rde/rde/channels-lock-local.scm b/guix/rde/rde/channels-lock-local.scm deleted file mode 100644 index bbc7fc4..0000000 --- a/guix/rde/rde/channels-lock-local.scm +++ /dev/null @@ -1,24 +0,0 @@ -(use-modules (guix channels)) - -(list (channel - (name 'rde) - (url "https://git.sr.ht/~abcdw/rde") - (branch "master") - (commit - "e4fe6ef24219b3b2a512ae96ef61f2bbad44dc04") - (introduction - (make-channel-introduction - "257cebd587b66e4d865b3537a9a88cccd7107c95" - (openpgp-fingerprint - "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0")))) - (channel - (name 'guix) - (url "file:///home/bob/work/gnu/guix") - (branch "master") - (commit - "e6acde4a95dea5b9a27416e58c6f904ff1e9eba6") - (introduction - (make-channel-introduction - "9edb3f66fd807b096b48283debdcddccfea34bad" - (openpgp-fingerprint - "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) diff --git a/guix/rde/rde/channels-lock.scm b/guix/rde/rde/channels-lock.scm deleted file mode 100644 index af49d41..0000000 --- a/guix/rde/rde/channels-lock.scm +++ /dev/null @@ -1,24 +0,0 @@ -(use-modules (guix channels)) - -(list (channel - (name 'rde) - (url "https://git.sr.ht/~abcdw/rde") - (branch "master") - (commit - "a7b59443405169600a00f0b295a3fb1de360cb0b") - (introduction - (make-channel-introduction - "257cebd587b66e4d865b3537a9a88cccd7107c95" - (openpgp-fingerprint - "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0")))) - (channel - (name 'guix) - (url "https://git.savannah.gnu.org/git/guix.git") - (branch "master") - (commit - "04724e59971b03f86a410285653d24005c62b924") - (introduction - (make-channel-introduction - "9edb3f66fd807b096b48283debdcddccfea34bad" - (openpgp-fingerprint - "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) diff --git a/guix/rde/rde/channels.scm b/guix/rde/rde/channels.scm deleted file mode 100644 index 6a68a0c..0000000 --- a/guix/rde/rde/channels.scm +++ /dev/null @@ -1,13 +0,0 @@ -(use-modules (guix ci) - (guix channels)) - -(list - %default-guix-channel - (channel - (name 'rde) - (url "https://git.sr.ht/~abcdw/rde") - (introduction - (make-channel-introduction - "257cebd587b66e4d865b3537a9a88cccd7107c95" - (openpgp-fingerprint - "2841 9AC6 5038 7440 C7E9 2FFA 2208 D209 58C1 DEB0"))))) diff --git a/guix/rde/src/configs.scm b/guix/rde/src/configs.scm deleted file mode 100644 index e45069d..0000000 --- a/guix/rde/src/configs.scm +++ /dev/null @@ -1,559 +0,0 @@ -(define-module (abcdw configs) - #:use-module (abcdw feature-lists) - #:use-module (abcdw hosts ixy) - #:use-module (abcdw hosts live) - - #:use-module (rde features) - #:use-module (rde features base) - #:use-module (rde features gnupg) - #:use-module (rde features security-token) - #:use-module (rde features keyboard) - #:use-module (rde features system) - #:use-module (rde features xdg) - #:use-module (rde features password-utils) - #:use-module (rde features emacs-xyz) - #:use-module (rde features mail) - #:use-module (rde features irc) - #:use-module (rde features networking) - #:use-module (rde features clojure) - #:use-module (contrib features javascript) - - #:use-module (gnu services) - #:use-module (gnu home services) - #:use-module (gnu home services shepherd) - #:use-module (gnu home services xdg) - #:use-module (rde home services i2p) - #:use-module (rde home services emacs) - #:use-module (rde home services wm) - - #:use-module (gnu home-services ssh) - - #:use-module (gnu packages) - #:use-module (rde packages) - #:use-module (rde packages aspell) ; needed for strings->packages - - #:use-module (guix gexp) - #:use-module (guix inferior) - #:use-module (guix channels) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (ice-9 match)) - - -;;; Helpers - -(define* (mail-acc id user #:optional (type 'gmail)) - "Make a simple mail-account with gmail type by default." - (mail-account - (id id) - (fqda user) - (type type))) - -(define* (mail-lst id fqda urls) - "Make a simple mailing-list." - (mailing-list - (id id) - (fqda fqda) - (config (l2md-repo - (name (symbol->string id)) - (urls urls))))) - - -;;; Service extensions - -(define emacs-extra-packages-service - (simple-service - 'emacs-extra-packages - home-emacs-service-type - (home-emacs-extension - (init-el - `((with-eval-after-load 'org - (setq org-use-speed-commands t) - (define-key org-mode-map (kbd "M-o") - (lambda () - (interactive) - (org-end-of-meta-data t)))) - (with-eval-after-load 'simple - (setq-default display-fill-column-indicator-column 80) - (add-hook 'prog-mode-hook 'display-fill-column-indicator-mode)) - (setq copyright-names-regexp - (format "%s <%s>" user-full-name user-mail-address)) - (add-hook 'after-save-hook (lambda () (copyright-update nil nil))))) - (elisp-packages - (append - (strings->packages - ;; "emacs-dirvish" - "emacs-rainbow-mode" - "emacs-hl-todo" - "emacs-yasnippet" - ;; "emacs-company" - "emacs-consult-dir" - ;; "emacs-all-the-icons-completion" "emacs-all-the-icons-dired" - "emacs-kind-icon" - "emacs-nginx-mode" "emacs-yaml-mode" - ;; "emacs-lispy" - "emacs-ytdl" - "emacs-multitran" - "emacs-minimap" - "emacs-ement" - "emacs-restart-emacs" - "emacs-org-present")))))) - -(define home-extra-packages-service - (simple-service - 'home-profile-extra-packages - home-profile-service-type - (append - (strings->packages - "figlet" ;; TODO: Move to emacs-artist-mode - "calibre" - "icecat" "nyxt" - "ungoogled-chromium-wayland" "ublock-origin-chromium" - - "utox" "qtox" "jami" - - "alsa-utils" "yt-dlp" "cozy" - "pavucontrol" "wev" - "imagemagick" - "obs" "obs-wlrobs" - "recutils" "binutils" "make" - "fheroes2" - - "hicolor-icon-theme" "adwaita-icon-theme" "gnome-themes-extra" - "papirus-icon-theme" "arc-theme" - "thunar" "fd" - ;; "glib:bin" - - "libreoffice" - "ffmpeg" - "ripgrep" "curl")))) - -(define (wallpaper url hash) - (origin - (method url-fetch) - (uri url) - (file-name "wallpaper.png") - (sha256 (base32 hash)))) - -(define wallpaper-ai-art - (wallpaper "https://w.wallhaven.cc/full/j3/wallhaven-j3m8y5.png" - "0qqx6cfx0krlp0pxrrw0kvwg6x40qq9jic90ln8k4yvwk8fl1nyw")) - -(define wallpaper-dark-rider - (wallpaper "https://w.wallhaven.cc/full/lm/wallhaven-lmlzwl.jpg" - "01j5z3al8zvzqpig8ygvf7pxihsj2grsazg9yjiqyjgsmp00hpaf")) - -(define sway-extra-config-service - (simple-service - 'sway-extra-config - home-sway-service-type - `((output DP-2 scale 2) - ;; (output * bg ,wallpaper-ai-art center) - ;; (output eDP-1 disable) - ,@(map (lambda (x) `(workspace ,x output DP-2)) (iota 8 1)) - - ;; (workspace 9 output DP-2) - ;; (workspace 10 output DP-2) - - ;; (bindswitch --reload --locked lid:on exec /run/setuid-programs/swaylock) - - (bindsym - --locked $mod+Shift+t exec - ,(file-append (@ (gnu packages music) playerctl) "/bin/playerctl") - play-pause) - - (bindsym - --locked $mod+Shift+n exec - ,(file-append (@ (gnu packages music) playerctl) "/bin/playerctl") - next) - - (bindsym $mod+Shift+o move workspace to output left) - (bindsym $mod+Ctrl+o focus output left) - (input type:touchpad - ;; TODO: Move it to feature-sway or feature-mouse? - (;; (natural_scroll enabled) - (tap enabled))) - - ;; (xwayland disable) - (bindsym $mod+Shift+Return exec emacs)))) - -(define i2pd-add-ilita-irc-service - (simple-service - 'i2pd-add-ilita-irc - home-i2pd-service-type - (home-i2pd-extension - (tunnels-conf - `((IRC-ILITA ((type . client) - (address . 127.0.0.1) - (port . 6669) - (destination . irc.ilita.i2p) - (destinationport . 6667) - (keys . ilita-keys.dat)))))))) - -(define ssh-extra-config-service - (simple-service - 'ssh-extra-config - home-ssh-service-type - (home-ssh-extension - (extra-config - (append - ;; TODO: Move it feature-qemu? - (map (lambda (id) - (ssh-host - (host (format #f "qemu~a" id)) - (options - `((host-name . "localhost") - (port . ,(+ 10020 id)))))) - (iota 4)) - (list - (ssh-host - (host "pinky-ygg") - (options - '((host-name . "200:554d:3eb1:5bc5:6d7b:42f4:8792:efb8") - (port . 50621) - (control-master . "auto") - (control-path . "~/.ssh/master-%r@%h:%p") - (compression . #t)))) - (ssh-host - (host "pinky") - (options - '((host-name . "23.137.249.202") - (port . 50621) - (compression . #t))))))) - (toplevel-options - '((host-key-algorithms . "+ssh-rsa") - (pubkey-accepted-key-types . "+ssh-rsa")))))) - - -;;; User-specific features with personal preferences - -;; Initial user's password hash will be available in store, so use this -;; feature with care (display (crypt "hi" "$6$abc")) - -(define %abcdw-features - (list - (feature-user-info - #:user-name "bob" - #:full-name "Andrew Tropin" - #:email "andrew@trop.in" - #:user-initial-password-hash - "$6$abc$3SAZZQGdvQgAscM2gupP1tC.SqnsaLSPoAnEOb2k6jXMhzQqS1kCSplAJ/vUy2rrnpHtt6frW2Ap5l/tIvDsz." - ;; (crypt "bob" "$6$abc") - - ;; WARNING: This option can reduce the explorability by hiding - ;; some helpful messages and parts of the interface for the sake - ;; of minimalistic, less distractive and clean look. Generally - ;; it's not recommended to use it. - #:emacs-advanced-user? #t) - (feature-gnupg - #:gpg-primary-key "74830A276C328EC2") - (feature-security-token) - (feature-password-store - #:remote-password-store-url "ssh://abcdw@olorin.lan/~/state/password-store") - - (feature-mail-settings - #:mail-accounts (list (mail-acc 'work "andrew@trop.in" 'gandi) - (mail-acc 'personal "bs@trop.in" 'gandi)) - #:mailing-lists (list (mail-lst 'guix-devel "guix-devel@gnu.org" - '("https://yhetil.org/guix-devel/0")) - (mail-lst 'guix-bugs "guix-bugs@gnu.org" - '("https://yhetil.org/guix-bugs/0")) - (mail-lst 'guix-patches "guix-patches@gnu.org" - '("https://yhetil.org/guix-patches/1")))) - - (feature-irc-settings - #:irc-accounts (list - (irc-account - (id 'srht) - (network "chat.sr.ht") - (bouncer? #t) - (nick "abcdw")) - (irc-account - (id 'libera) - (network "irc.libera.chat") - (nick "abcdw")) - (irc-account - (id 'oftc) - (network "irc.oftc.net") - (nick "abcdw")))) - - (feature-custom-services - #:feature-name-prefix 'abcdw - #:home-services - (list - emacs-extra-packages-service - home-extra-packages-service - sway-extra-config-service - ssh-extra-config-service - i2pd-add-ilita-irc-service)) - - (feature-ssh-proxy #:host "pinky-ygg" #:auto-start? #f) - (feature-ssh-proxy #:host "pinky-ygg" #:name "hundredrps" - #:proxy-string "50080:localhost:8080" - #:reverse? #t - #:auto-start? #f) - - (feature-xdg - #:xdg-user-directories-configuration - (home-xdg-user-directories-configuration - (music "$HOME/music") - (videos "$HOME/vids") - (pictures "$HOME/pics") - (documents "$HOME/docs") - (download "$HOME/dl") - (desktop "$HOME") - (publicshare "$HOME") - (templates "$HOME"))) - - (feature-yggdrasil) - (feature-i2pd - #:outproxy 'http://acetone.i2p:3128 - ;; 'purokishi.i2p - #:less-anonymous? #t) - - (feature-emacs-keycast #:turn-on? #t) - - (feature-emacs-tempel - #:default-templates? #t - #:templates - `(fundamental-mode - ,#~"" - (t (format-time-string "%Y-%m-%d")) - ;; TODO: Move to feature-guix - ;; ,((@ (rde gexp) slurp-file-like) - ;; (file-append ((@ (guix packages) package-source) - ;; (@ (gnu packages package-management) guix)) - ;; "/etc/snippets/tempel/text-mode")) - )) - (feature-emacs-time) - (feature-emacs-spelling - #:spelling-program (@ (gnu packages hunspell) hunspell) - #:spelling-dictionaries - (list - (@ (gnu packages hunspell) hunspell-dict-en) - (@ (rde packages aspell) hunspell-dict-ru))) - (feature-emacs-git - #:project-directory "~/work") - (feature-emacs-org - #:org-directory "~/work/abcdw/private" - #:org-indent? #f - #:org-capture-templates - ;; https://libreddit.tiekoetter.com/r/orgmode/comments/gc76l3/org_capture_inside_notmuch/ - `(("r" "Reply" entry (file+headline "" "Tasks") - "* TODO Reply %:subject %?\nSCHEDULED: %t\n%U\n%a\n" - :immediate-finish t) - ("t" "Todo" entry (file+headline "" "Tasks") ;; org-default-notes-file - "* TODO %?\nSCHEDULED: %t\n%a\n" :clock-in t :clock-resume t))) - (feature-emacs-org-roam - ;; TODO: Rewrite to states - #:org-roam-directory "~/work/abcdw/notes/notes") - (feature-emacs-org-agenda - #:org-agenda-files '("~/work/abcdw/private/todo.org" - "~/work/abcdw/rde/TODO")) - (feature-emacs-elfeed - #:elfeed-org-files '("~/work/abcdw/private/rss.org")) - - - (feature-javascript) - - ;; TODO: move feature to general, move extra configuration to service. - (feature-notmuch - ;; TODO: Add integration with mail-lists - ;; `notmuch-show-stash-mlarchive-link-alist' - #:extra-tag-updates-post - '("notmuch tag +guix-home -- 'thread:\"\ -{((subject:guix and subject:home) or (subject:service and subject:home) or \ -subject:/home:/) and tag:new}\"'") - #:notmuch-saved-searches - (cons* - ;; TODO: Add tag:unread to all inboxes. Revisit archive workflow. - '(:name "Work Inbox" :query "tag:work and tag:inbox and tag:unread" :key "W") - '(:name "Personal Inbox" :query "tag:personal and tag:inbox" :key "P") - '(:name "Guix Home Inbox" :key "H" :query "tag:guix-home and tag:unread") - '(:name "RDE Inbox" :key "R" - :query "(to:/rde/ or cc:/rde/) and tag:unread") - '(:name "New TODO" :query "tag:todo or (tag:inbox and not tag:unread)" :key "T") - ;; '(:name "Watching" :query "thread:{tag:watch} and tag:unread" :key "tw") - %rde-notmuch-saved-searches)) - - (feature-keyboard - ;; To get all available options, layouts and variants run: - ;; cat `guix build xkeyboard-config`/share/X11/xkb/rules/evdev.lst - #:keyboard-layout - (keyboard-layout - "us,ru" "dvorak," - #:options '("grp:shifts_toggle" "ctrl:nocaps"))))) - -(define %guest-features - (list - (feature-user-info - #:user-name "guest" - #:full-name "rde user" - #:email "guest@rde" - ;; (crypt "guest" "$6$abc") - #:user-initial-password-hash - "$6$abc$9a9KlQ2jHee45D./UOzUZWLHjI/atvz2Dp6.Zz6hjRcP2KJv\ -G9.lc/f.U9QxNW1.2MZdV1KzW6uMJ0t23KKoN/") - - (feature-keyboard - ;; To get all available options, layouts and variants run: - ;; cat `guix build xkeyboard-config`/share/X11/xkb/rules/evdev.lst - #:keyboard-layout - (keyboard-layout - "us,us" - ",dvorak" - #:options '("grp:shifts_toggle" "ctrl:nocaps"))) - - (feature-irc-settings - #:irc-accounts (list - (irc-account - (id 'libera) - (network "irc.libera.chat") - (nick "rde-user")) - (irc-account - (id 'oftc) - (network "irc.oftc.net") - (nick "rde-user")))))) - - -;;; Some TODOs - -;; TODO: Add an app for saving and reading articles and web pages -;; https://github.com/wallabag/wallabag -;; https://github.com/chenyanming/wallabag.el - -;; TODO: feature-wallpapers https://wallhaven.cc/ -;; TODO: feature-icecat -;; TODO: Revisit <https://en.wikipedia.org/wiki/Git-annex> -;; TODO: <https://www.labri.fr/perso/nrougier/GTD/index.html#table-of-contents> - - -;;; ixy - -(define-public ixy-config - (rde-config - (features - (append - %all-features - %ixy-features - %abcdw-features)))) - -(define-public ixy-os - (rde-config-operating-system ixy-config)) - -(define-public ixy-he - (rde-config-home-environment ixy-config)) - - -;;; live - -(use-modules (srfi srfi-1) - (rde features version-control)) - -(define sway-wlr-settings-service - (simple-service - 'sway-wlr-settings - home-environment-variables-service-type - ;; Make sway work on virtual gpu in qemu - `(("WLR_RENDERER_ALLOW_SOFTWARE" . "1") - ("WLR_NO_HARDWARE_CURSORS" . "1")))) - -(define sway-live-extra-config-service - (simple-service - 'sway-output-settings - home-sway-service-type - `((output Virtual-1 mode 1920x1080 scale 2) - (exec emacs --eval "'(info \"(rde)Getting Started\")'")))) - -(define home-profile-live-extra-packages-service - (simple-service - 'home-profile-live-extra-packages - home-profile-service-type - (append - (strings->packages - "icecat" - "imv" "wev" - "make" - "adwaita-icon-theme" "gnome-themes-extra" - "hicolor-icon-theme" ;; needed for nm icons - - "ripgrep" "curl")))) - -(define example-configs-service - (simple-service - 'live-example-configs - home-shepherd-service-type - (list - (shepherd-service - (documentation "Create ~/rde-configs.") - (requirement '()) - (provision '(rde-configs)) - (start - (with-imported-modules '((guix build utils)) - #~(lambda () - (let ((rde-configs #$(local-file - "../.." "rde-configs" - #:recursive? #t - #:select? - (lambda (file _) - (not (string=? (basename file) "target"))))) - (output (string-append (getenv "HOME") "/rde-configs"))) - (when (not (file-exists? output)) - (mkdir-p output) - (copy-recursively - rde-configs - output - #:copy-file (lambda (f t) - (copy-file f t) - (make-file-writable t))) - ;; MAYBE: take this value from rde-config - (system* #$(file-append (@ (gnu packages shellutils) direnv) - "/bin/direnv") "allow" output)))))) - (one-shot? #t))))) - -(define live-custom-services - (feature-custom-services - #:feature-name-prefix 'live - #:home-services - (list - example-configs-service - sway-live-extra-config-service - sway-wlr-settings-service - home-profile-live-extra-packages-service))) - -;; TODO: Pull channels from lock file in advance and link them to example-config -;; TODO: Add auto-login - -(define-public live-config - (rde-config - (integrate-he-in-os? #t) - (features - (append - %guest-features - (list live-custom-services) - - (remove - (lambda (f) (member (feature-name f) '(git markdown))) - %general-features) - (list - (feature-git #:sign-commits? #f) - (feature-hidpi)) - - %live-features)))) - -(define-public live-os - (rde-config-operating-system live-config)) - - -;;; Dispatcher, which helps to return various values based on environment -;;; variable value. - -(define (dispatcher) - (let ((rde-target (getenv "RDE_TARGET"))) - (match rde-target - ("ixy-home" ixy-he) - ("ixy-system" ixy-os) - ("live-system" live-os) - (_ ixy-he)))) - -(dispatcher) diff --git a/guix/rde/src/hosts/ixy.scm b/guix/rde/src/hosts/ixy.scm deleted file mode 100644 index 781c358..0000000 --- a/guix/rde/src/hosts/ixy.scm +++ /dev/null @@ -1,60 +0,0 @@ -(define-module (abcdw hosts ixy) - #:use-module (rde features base) - #:use-module (rde features system) - #:use-module (rde features wm) - #:use-module (gnu system file-systems) - #:use-module (gnu system mapped-devices) - #:use-module (ice-9 match)) - - -;;; Hardware/host specifis features - -;; TODO: Switch from UUIDs to partition labels For better -;; reproducibilty and easier setup. Grub doesn't support luks2 yet. - -(define ixy-mapped-devices - (list (mapped-device - (source (uuid "0e51ee1e-49ef-45c6-b0c3-6307e9980fa9")) - (target "enc") - (type luks-device-mapping)))) - -(define ixy-file-systems - (append - (map (match-lambda - ((subvol . mount-point) - (file-system - (type "btrfs") - (device "/dev/mapper/enc") - (mount-point mount-point) - (options (format #f "subvol=~a" subvol)) - (dependencies ixy-mapped-devices)))) - '((root . "/") - (boot . "/boot") - (gnu . "/gnu") - (home . "/home") - (data . "/data") - (log . "/var/log"))) - (list - (file-system - (mount-point "/boot/efi") - (type "vfat") - (device (uuid "8C99-0704" 'fat32)))))) - -(define-public %ixy-features - (list - (feature-host-info - #:host-name "ixy" - ;; ls `guix build tzdata`/share/zoneinfo - #:timezone "Asia/Tbilisi") - ;;; Allows to declare specific bootloader configuration, - ;;; grub-efi-bootloader used by default - ;; (feature-bootloader) - (feature-file-systems - #:mapped-devices ixy-mapped-devices - #:file-systems ixy-file-systems) - (feature-kanshi - #:extra-config - `((profile laptop ((output eDP-1 enable))) - (profile docked ((output eDP-1 enable) - (output DP-2 scale 2))))) - (feature-hidpi))) diff --git a/guix/rde/src/hosts/live.scm b/guix/rde/src/hosts/live.scm deleted file mode 100644 index 7e15ed8..0000000 --- a/guix/rde/src/hosts/live.scm +++ /dev/null @@ -1,51 +0,0 @@ -(define-module (abcdw hosts live) - #:use-module (rde features base) - #:use-module (rde features system) - - #:use-module (rde system services admin) - #:use-module (rde system services guix) - - #:use-module (gnu services) - #:use-module (gnu system file-systems)) - - -;;; Hardware/host specifis features - -;; TODO: Switch from UUIDs to partition labels For better -;; reproducibilty and easier setup. Grub doesn't support luks2 yet. - -(define live-file-systems - (list (file-system - (mount-point "/") - (device (file-system-label "Guix_image")) - (type "ext4")) - (file-system - (mount-point "/tmp") - (device "none") - (type "tmpfs") - (check? #f)))) - -(define sudoers-extra-service - (simple-service - 'sudoers-extra - sudoers-service-type - (list "%wheel ALL=(ALL) NOPASSWD: ALL"))) - -(define live-extra-services - (feature-custom-services - #:feature-name-prefix 'live-extra - #:system-services - (list - sudoers-extra-service - (service cow-store-service-type)))) - -(define-public %live-features - (list - (feature-host-info - #:host-name "live" - #:issue "This is rde. Welcome. Login and password - guest and guest.\n" - ;; ls `guix build tzdata`/share/zoneinfo - #:timezone "Europe/Kiev") - live-extra-services - (feature-file-systems - #:file-systems live-file-systems))) diff --git a/guix/rde/src/wkz-p1.scm b/guix/rde/src/wkz-p1.scm deleted file mode 100644 index dd4b0a5..0000000 --- a/guix/rde/src/wkz-p1.scm +++ /dev/null @@ -1,261 +0,0 @@ -(define-module (wkz-p1) - #:use-module (rde features) - #:use-module (rde features base) - #:use-module (rde features documentation) - #:use-module (rde features docker) - #:use-module (rde features linux) - #:use-module (rde features networking) - #:use-module (rde features wm) - #:use-module (rde features finance) - #:use-module (rde features mail) - #:use-module (rde features irc) - #:use-module (rde features video) - #:use-module (rde features keyboard) - #:use-module (rde features fontutils) - #:use-module (rde features emacs) - #:use-module (rde features emacs-xyz) - #:use-module (rde features shellutils) - #:use-module (rde features terminals) - #:use-module (rde features shells) - #:use-module (rde features version-control) - #:use-module (rde features virtualization) - ;; #:use-module (rde features web) - #:use-module (rde features xdg) - #:use-module (gnu home-services base) - #:use-module (gnu home services) - #:use-module (gnu home-services wm) - #:use-module (gnu services) - - #:use-module (rde packages) - #:use-module (guix gexp)) - -(define home-extra-packages-service - (simple-service - 'home-profile-extra-packages - home-profile-service-type - (append - (strings->packages - ;; "calibre" - "glibc-locales" - "icecat" ;; "nyxt" - ;; "ungoogled-chromium-wayland" "ublock-origin-chromium" - - "alsa-utils" "pamixer" "yt-dlp" - "pavucontrol" "wev" - "imagemagick" - "obs" "obs-wlrobs" - "recutils" "binutils" "make" - - ;; Web tech - "node" "php" "docker-compose" - - "papirus-icon-theme" "arc-theme" - "thunar" "fd" - "glib:bin" - "wob" "brightnessctl" - - "ffmpeg")))) - -(define sway-extra-config-service - (simple-service - 'sway-extra-config - home-sway-service-type - `((output DP-2 scale 2) - ,@(map (lambda (x) `(workspace ,x output DP-2)) (iota 8 1)) - - (bindswitch --reload --locked lid:on exec /run/setuid-programs/swaylock) - - (set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock) - (exec rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK \| ,(file-append (@ (gnu packages xdisorg) wob) "/bin/wob")) - - ;; Brightness control - ;; (bindsym --locked XF86MonBrightnessUp exec - ;; ,(file-append (@ (gnu packages linux) brightnessctl) "/bin/brightnessctl") - ;; set 5%+) - ;; (bindsym --locked XF86MonBrightnessDown exec - ;; ,(file-append (@ (gnu packages linux) brightnessctl) "/bin/brightnessctl") - ;; set 5%-) - - ;; Audio control - ;; (bindsym --locked XF86AudioLowerVolume exec - ;; ,(file-append (@ (gnu packages pulseaudio) pamixer) "/bin/pamixer") - ;; -ud 2) - ;; (bindsym --locked XF86AudioMute exec - ;; ,(file-append (@ (gnu packages pulseaudio) pamixer) "/bin/pamixer") - ;; --toggle-mute) - - (bindsym $mod+Ctrl+o focus output left) - (input type:touchpad - ((events disabled) - (tap disabled))) - - ;; (xwayland disable) - (bindsym $mod+Shift+Return exec emacs)))) - -(define minimal-rde-config - (rde-config - (features - (list - ;; %general-features - (feature-user-info - #:user-name "w96k" - #:full-name "Mikhail Kirillov" - #:email "w96k.ru@gmail.com" - #:emacs-advanced-user? #t) - - (feature-backlight) - (feature-pipewire) - - (feature-vterm) - (feature-bash) - (feature-direnv) - - (feature-qemu) - - (feature-base-services) - (feature-base-packages) - - (feature-desktop-services) - (feature-hidpi) - (feature-foreign-distro) - - (feature-sway) - (feature-emacs - #:default-application-launcher? #t) - - (feature-keyboard - ;; To get all available options, layouts and variants run: - ;; cat `guix build xkeyboard-config`/share/X11/xkb/rules/evdev.lst - #:keyboard-layout - (keyboard-layout - "us,ru" - "qwerty" - #:options '("grp:shifts_toggle" "ctrl:nocaps"))) - - (feature-irc-settings - #:irc-accounts (list - (irc-account - (id 'libera) - (network "irc.libera.chat") - (nick "w96k") - (bouncer? #t)))) - - ;; (feature-alternative-frontends) - - (feature-docker) - - (feature-youtube-dl) - - (feature-fonts - #:default-font-size 13) - - (feature-emacs-appearance) - (feature-emacs-faces) - (feature-emacs-modus-themes) - - (feature-emacs-completion - #:mini-frame? #f - #:marginalia-align 'right) - (feature-emacs-corfu - #:corfu-doc-auto #f) - (feature-emacs-vertico) - - (feature-emacs-tramp) - (feature-emacs-project) - (feature-compile) - (feature-emacs-perspective) - (feature-emacs-input-methods) - (feature-emacs-which-key) - (feature-emacs-monocle) - - (feature-emacs-message) - - - (feature-emacs-erc - #:erc-log? #f - #:erc-autojoin-channels-alist '((Libera.Chat "#rde"))) - (feature-emacs-telega) - (feature-emacs-elpher) - - (feature-emacs-pdf-tools) - ;; (feature-emacs-nov-el) - (feature-emacs-org) - (feature-emacs-org-roam - #:org-roam-directory "~/projects/at-w96k/content/digarden/pages/" - ) - (feature-emacs-org-agenda) - (feature-emacs-org-protocol) - (feature-emacs-calendar) - - - (feature-emacs-shell) - (feature-emacs-eshell) - (feature-emacs-re-builder) - - (feature-emacs-elisp) - - (feature-emacs-spelling) - (feature-emacs-dashboard) - - (feature-emacs-browse-url) - - ;; TODO: Remove auctex dependency, which interjects in texinfo-mode. - ;; (feature-emacs-citar) - - ;; (feature-emacs-smartparens - ;; #:show-smartparens? #t) - - (feature-emacs-pulseaudio-control) - (feature-emacs-geiser) - (feature-emacs-guix) - (feature-emacs-eglot) - (feature-emacs-help) - (feature-emacs-info) - - (feature-manpages) - - (feature-xdg) - - (feature-git #:sign-commits? #f) - - (feature-custom-services - #:feature-name-prefix 'w96k - #:home-services - (list - home-extra-packages-service - sway-extra-config-service - )) - - (feature-sway-run-on-tty - #:sway-tty-number 2) - (feature-sway-screenshot) - ;; (feature-sway-statusbar - ;; #:use-global-fonts? #f) - (feature-waybar - #:extra-config '(((position . bottom))) - #:transitions? #t - #:waybar-modules - (list - (waybar-temperature) - (waybar-cpu) - (waybar-memory) - (waybar-disk) - (waybar-sway-workspaces) - (waybar-tray) - (waybar-idle-inhibitor) - (waybar-sway-language) - (waybar-microphone) - (waybar-volume) - (waybar-battery #:intense? #t) - (waybar-clock))) - (feature-swayidle) - - (feature-swaylock - #:swaylock (@ (gnu packages wm) swaylock-effects) - ;; The blur on lock screen is not privacy-friendly. - #:extra-config '((screenshots) - (effect-blur . 7x5) - (clock))) - )))) - -(rde-config-home-environment minimal-rde-config) diff --git a/guix/rde/target/guix-time-marker b/guix/rde/target/guix-time-marker deleted file mode 100644 index e69de29..0000000 --- a/guix/rde/target/guix-time-marker +++ /dev/null diff --git a/guix/rde/target/profiles/guix b/guix/rde/target/profiles/guix deleted file mode 120000 index 70c6292..0000000 --- a/guix/rde/target/profiles/guix +++ /dev/null @@ -1 +0,0 @@ -guix-1-link
\ No newline at end of file diff --git a/guix/rde/target/profiles/guix-1-link b/guix/rde/target/profiles/guix-1-link deleted file mode 120000 index 2bc7145..0000000 --- a/guix/rde/target/profiles/guix-1-link +++ /dev/null @@ -1 +0,0 @@ -/gnu/store/hdsjdz3hdymz3p9dafjmjgdgpzcnhq2k-profile
\ No newline at end of file diff --git a/js/.eslintrc b/languages/js/.eslintrc index 5febf43..5febf43 100644 --- a/js/.eslintrc +++ b/languages/js/.eslintrc diff --git a/js/.npmrc b/languages/js/.npmrc index abeccfb..abeccfb 100644 --- a/js/.npmrc +++ b/languages/js/.npmrc diff --git a/php/.phprc b/languages/php/.phprc index bc11860..bc11860 100644 --- a/php/.phprc +++ b/languages/php/.phprc diff --git a/php/.psysh/rc.php b/languages/php/.psysh/rc.php index ccc188b..ccc188b 100644 --- a/php/.psysh/rc.php +++ b/languages/php/.psysh/rc.php diff --git a/python/.pythonrc b/languages/python/.pythonrc index 5914291..5914291 100644 --- a/python/.pythonrc +++ b/languages/python/.pythonrc diff --git a/ruby/.irbrc b/languages/ruby/.irbrc index dad51f6..dad51f6 100644 --- a/ruby/.irbrc +++ b/languages/ruby/.irbrc diff --git a/languages/scheme/.guile b/languages/scheme/.guile new file mode 100644 index 0000000..5646cf9 --- /dev/null +++ b/languages/scheme/.guile @@ -0,0 +1,4 @@ +(use-modules (ice-9 readline) (ice-9 colorized)) + +(activate-readline) +(activate-colorized) diff --git a/nix/configuration.nix b/nix/configuration.nix deleted file mode 100644 index a9c0830..0000000 --- a/nix/configuration.nix +++ /dev/null @@ -1,327 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - -{ config, pkgs, ... }: - -{ - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - <nixos-hardware/lenovo/thinkpad/x200s> - <home-manager/nixos> - - ]; - - nix = { - package = pkgs.nixUnstable; - extraOptions = '' - experimental-features = nix-command flakes - ''; - }; - - # Bootloader - boot.kernelPackages = pkgs.linuxPackages_latest; - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/sdb"; - boot.loader.grub.useOSProber = true; - boot.kernel.sysctl = { "net.ipv4.ip_forward" = 1; }; - - networking.hostName = "nixos"; # Define your hostname. - #networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Enable networking - networking.networkmanager.enable = true; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - - fonts.fonts = with pkgs; [ - unifont - dejavu_fonts - ]; - - fonts.fontDir.enable = true; - - # Set your time zone. - time.timeZone = "Europe/Moscow"; - - services.lorri.enable = true; - - # Configure keymap in X11 - services.xserver = { - enable = true; - layout = "us,ru"; - xkbOptions = "grp:shifts_toggle,caps:ctrl_modifier"; - videoDrivers = [ "intel" ]; - - windowManager.ratpoison.enable = true; - displayManager.startx.enable = true; - displayManager.defaultSession = "none+ratpoison"; - }; - - powerManagement = { - enable = true; - cpuFreqGovernor = "ondemand"; - }; - - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.w96k = { - isNormalUser = true; - description = "Mikhail Kirillov"; - extraGroups = [ "networkmanager" "wheel" "audio" "docker" "libvirtd"]; - }; - - nix.trustedUsers = [ "root" "w96k" ]; - - home-manager.useGlobalPkgs = true; - - home-manager.users.w96k = { pkgs, ... }: { - home.stateVersion = "22.05"; - home.packages = [ - pkgs.gparted - pkgs.python3 - pkgs.nodejs - # pkgs.php81 - # # Minimal requirements for symfony - # pkgs.php81Extensions.redis - # pkgs.php81Extensions.amqp - # pkgs.php81Extensions.xsl - pkgs.php81Packages.psysh - pkgs.gimp - pkgs.php81Packages.composer - pkgs.direnv - pkgs.openjdk17 - pkgs.firefox - pkgs.tdesktop - pkgs.imagemagick - pkgs.arandr - pkgs.symfony-cli - pkgs.shellcheck - pkgs.gnome.gnome-boxes - pkgs.cachix - pkgs.tor-browser-bundle-bin - pkgs.htop - pkgs.ghc - pkgs.nix-prefetch-scripts - pkgs.libreoffice - pkgs.mpv - pkgs.musescore - pkgs.yarn - pkgs.postgresql - pkgs.unzip - pkgs.sloc - ]; - - programs.git = { - enable = true; - userName = "Mikhail Kirillov"; - userEmail = "w96k.ru@gmail.com"; - }; - programs.autorandr.enable = true; - programs.direnv.enable = true; - programs.direnv.nix-direnv.enable = true; - programs.bash.enable = true; - programs.emacs = { - enable = true; - extraPackages = epkgs: with epkgs; [ - flycheck - avy - anaconda-mode - auctex - beginend - composer - cinspect - debian-el - dpkg-dev-el - edebug-inline-result - magit - git-dwim - gitpatch - goto-chg - debbugs - direnv - docker - docker-cli - docker-tramp - mastodon - exec-path-from-shell - expand-region - geiser - geiser-guile - guix - gnuplot - isearch-mb - minibuffer-line - org-roam - org-roam-ui - org-download - org-babel-eval-in-repl - on-screen - pdf-tools - lsp-mode - lsp-java - company - company-quickhelp - # ac-php - # php-mode - # php-quickhelp - phan - php-cs-fixer - # company-php - # php-eldoc - realgud - kiwix - slime - simple-httpd - sudo-edit - imenu-list - telega - mini-frame - mini-modeline - undo-tree - yasnippet - yasnippet-snippets - vimrc-mode - no-littering - web-mode - reverse-im - restclient - # php-scratch - yaml-mode - php-quickhelp - nix-mode - ]; -}; - }; - - # nixpkgs.config.allowUnfree = true; - # Nixos optimizations for thinkpadg - # nixpkgs.localSystem = { - # system = "x86_64-linux"; - # gcc.arch = "core2"; - # gcc.tune = "core2"; - # }; - - # Enable sound - sound.enable = true; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - wget - lm_sensors - emacs28NativeComp - nix-tree - xorg.xf86inputevdev - xorg.xf86videointel - xorg.xorgserver - xorg.xinit - thinkfan - home-manager - neofetch - git - wmname - docker-compose - niv - - (pkgs.php81.buildEnv { - extensions = ({ enabled, all }: enabled ++ (with all; [ - xdebug - amqp - redis - xsl - ])); - extraConfig = '' - xdebug.mode=debug - ''; - }) - ]; - - services.emacs.package = pkgs.emacs28NativeComp; - services.emacs.defaultEditor = true; - - # services.postgresql = { - # enable = true; - # package = pkgs.postgresql_14; - # enableTCPIP = true; - # authentication = pkgs.lib.mkOverride 10 '' - # local all all trust - # host all all 127.0.0.1/32 trust - # host all all ::1/128 trust - # ''; - # initialScript = pkgs.writeText "backend-initScript" '' - # CREATE ROLE w96k WITH LOGIN PASSWORD 'w96k' CREATEDB; - # CREATE DATABASE symfony; - # GRANT ALL PRIVILEGES ON DATABASE symfony TO w96k; - # ''; - # }; - - services.tor.settings = { - UseBridges = true; - ClientTransportPlugin = "obfs4 exec ${pkgs.obfs4}/bin/obfs4proxy"; - Bridge = "obfs4 IP:ORPort [fingerprint]"; - }; - - services.tor.client.enable = true; - - virtualisation.docker = { - enable = true; - enableOnBoot = true; - # autoPrune.enable = true; - }; - - virtualisation.libvirtd.enable = true; - - systemd.mounts = [ - { what = "/dev/sda2"; - where = "/mnt/guix"; - mountConfig = { - TimeoutSec = "1"; - Options = "uid=c184f446-df67-4103-b28e-465ac8776f10"; - }; - } - ]; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - nix.autoOptimiseStore = true; - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 60d"; - }; - - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leavecatenate(variables, "bootdev", bootdev) - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "22.05"; # Did you read the comment? -} diff --git a/nix/hardware-configuration.nix b/nix/hardware-configuration.nix deleted file mode 100644 index 59157f3..0000000 --- a/nix/hardware-configuration.nix +++ /dev/null @@ -1,50 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/a1abae4a-c292-4d2c-85f8-6690bb3e4c03"; - fsType = "ext4"; - }; - - # fileSystems."/mnt/guix" = - # { device = "/dev/disk/by-uuid/c184f446-df67-4103-b28e-465ac8776f10"; - # fsType = "ext4"; - # }; - - # swapDevices = [{ device = "/dev/sda1"; }]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s25.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; - - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; - hardware.pulseaudio.enable = true; - hardware.pulseaudio.package = pkgs.pulseaudioFull; - hardware.opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - extraPackages = with pkgs; [ - intel-media-driver # LIBVA_DRIVER_NAME=iHD - vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) - vaapiVdpau - libvdpau-va-gl - ]; - }; -} diff --git a/wm/.config/polybar/config b/wm/.config/polybar/config deleted file mode 100644 index 9996059..0000000 --- a/wm/.config/polybar/config +++ /dev/null @@ -1,6 +0,0 @@ -[bar/w96k] -modules-right = date - -[module/date] -type = internal/date -date = %Y-%m-%d%
\ No newline at end of file diff --git a/wm/.ratpoisonrc b/wm/.ratpoisonrc index 037901f..f358e26 100644 --- a/wm/.ratpoisonrc +++ b/wm/.ratpoisonrc @@ -7,7 +7,8 @@ escape C-Tab # Window numbering set framesels 1234567890abcdefg -set font "Courier:size=12" +set font "Courier:size=10" +set winliststyle column set bargravity n defborder 0 set winname class @@ -15,7 +16,7 @@ set wingravity n # Commands to run-or-raise programs alias icecat exec ratpoison -c "select icecat" || exec icecat -alias nyxt exec ratpoison -c "select nyxt" || exec nyxt +alias palemoon exec ratpoison -c "select Pale moon" || sh ~/Software/palemoon/palemoon-guix.sh 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 @@ -29,7 +30,7 @@ alias mpv exec mpv bind e emacs # Run or raise Nyxt -bind B nyxt +bind B palemoon # Run or raise Icecat bind I icecat @@ -50,5 +51,3 @@ bind h help definekey top XF86AudioLowerVolume exec amixer -q sset Master 3%- definekey top XF86AudioRaiseVolume exec amixer -q sset Master 3%+ - -#exec wmname LG3D |