Compare commits

..

7 Commits

Author SHA1 Message Date
cho
d9b03108b1 add mpv config 2023-09-05 20:44:34 +07:00
cho
8bdd17332f update 2023-09-05 20:43:34 +07:00
cho
3aa5120c24 properly kill emacs instead of using kill 2023-09-05 20:41:22 +07:00
cho
186f9af806 add syncplay.desktop 2023-09-05 20:40:57 +07:00
cho
a83355aa32 update settings, costumize org-capture and roam capture. etc. 2023-09-05 20:34:18 +07:00
cho
e01793f1bf fix sc-im opens neovim after exit 2023-09-05 20:27:22 +07:00
cho
5547096020 fix for org-roam on termux 2023-09-05 20:26:46 +07:00
9 changed files with 221 additions and 32 deletions

View File

@ -22,7 +22,9 @@
;; accept. For example:
;;
(setq doom-variable-pitch-font (font-spec :family "Libertinus Serif" :size 13))
;;(setq doom-variable-pitch-font (font-spec :family "DejaVu Serif" :size 13))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
;; refresh your font settings. If Emacs still can't find your font, it likely
@ -35,6 +37,7 @@
;(setq doom-theme 'doom-one)
;(setq doom-theme 'doom-wilmersdorf)
;(setq doom-theme 'doom-plain-dark)
;(setq doom-theme 'doom-feather-dark)
;(setq doom-theme 'doom-plain)
;(setq doom-theme 'doom-flatwhite)
@ -80,13 +83,15 @@
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
(after! org
;;; agenda files
(setq org-agenda-files '("~/housekeeping/calendar.org"
"~/notebook/ag/"
"~/notebook/refile.org"))
"~/notebook/refile.org"
"~/notebook/notes/events/birthdays.org"))
(after! org
(setq org-log-done 'time)
(use-package! org-journal
@ -134,12 +139,137 @@
(setq org-wild-notifier-keyword-whitelist nil))
(setq org-wild-notifier-keyword-blacklist '("DONE"))
;; org-roam configurations
(use-package! org-roam
:ensure t
:custom
(setq org-roam-directory "~/notebook/roam/")
:config
(org-roam-setup))
(setq org-roam-capture-templates
'(("d" "default" plain "%?"
:target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
"#+title: ${title}\n")
:unnarrowed t)
;; main things
("l" "literature" plain "%?"
:if-new
(file+head "literature/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
("p" "permanent" plain "%?"
:if-new
(file+head "permanent/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
("f" "fleeting" plain "%?"
:if-new
(file+head "fleeting/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
;; other categories
("r" "reference" plain "%?"
:if-new
(file+head "reference/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n")
:immediate-finish t
:unnarrowed t)
("a" "article" plain "%?"
:if-new
(file+head "articles/%<%Y%m%d%H%M%S>-${title}.org" "#+title: ${title}\n#+filetags: :article:\n")
:immediate-finish t
:unnarrowed t)))
;(cl-defmethod org-roam-node-type ((node org-roam-node))
; "Return the TYPE of NODE."
; (condition-case nil
; (file-name-nondirectory
; (directory-file-name
; (file-name-directory
; (file-relative-name (org-roam-node-file node) org-roam-directory))))
; (error "")))
;(setq org-roam-node-display-template
; (concat "${type:15} ${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
;;; org-capture stuff
(setq +org-capture-todo-file "ag/todo.org")
;; this sets Personal notes to refile instead
(defvar +org-capture-refile-file "refile.org")
(setq +org-capture-refile-file
(expand-file-name +org-capture-refile-file org-directory))
;(add-to-list 'org-capture-templates
; '(("s" "Slipbox" entry (file "braindump/org/inbox.org")
; "* %?\n")
; ("t" "Personal todo" entry
; (file+headline +org-capture-todo-file "Inbox")
; "* [ ] %?\n%i\n%a" :prepend t)
; )
(setq org-capture-templates
'(("t" "Personal todo" entry
(file+headline +org-capture-todo-file "todo")
"* [ ] %?\n%i\n%a")
("T" "Personal todo (single)" entry
(file+headline +org-capture-todo-file "todo")
"* [ ] %?\n")
("n" "Personal notes" entry
(file +org-capture-refile-file)
"* %u %?\n%i\n%a" :prepend t)
;; using org-journal atm..
;("j" "Journal" entry
;(file+olp+datetree +org-capture-journal-file)
;"* %U %?\n%i\n%a" :prepend t)
;; Will use {project-root}/{todo,notes,changelog}.org, unless a
;; {todo,notes,changelog}.org file is found in a parent directory.
;; Uses the basename from `+org-capture-todo-file',
;; `+org-capture-changelog-file' and `+org-capture-notes-file'.
("p" "Templates for projects")
("pt" "Project-local todo" entry ; {project-root}/todo.org
(file+headline +org-capture-project-todo-file "Inbox")
"* TODO %?\n%i\n%a" :prepend t)
("pn" "Project-local notes" entry ; {project-root}/notes.org
(file+headline +org-capture-project-notes-file "Inbox")
"* %U %?\n%i\n%a" :prepend t)
("pc" "Project-local changelog" entry ; {project-root}/changelog.org
(file+headline +org-capture-project-changelog-file "Unreleased")
"* %U %?\n%i\n%a" :prepend t)
;; Will use {org-directory}/{+org-capture-projects-file} and store
;; these under {ProjectName}/{Tasks,Notes,Changelog} headings. They
;; support `:parents' to specify what headings to put them under, e.g.
;; :parents ("Projects")
("o" "Centralized templates for projects")
("ot" "Project todo" entry
(function +org-capture-central-project-todo-file)
"* TODO %?\n %i\n %a"
:heading "Tasks"
:prepend nil)
("on" "Project notes" entry
(function +org-capture-central-project-notes-file)
"* %U %?\n %i\n %a"
:heading "Notes"
:prepend t)
("oc" "Project changelog" entry
(function +org-capture-central-project-changelog-file)
"* %U %?\n %i\n %a"
:heading "Changelog"
:prepend t)
;; org books / general logging
("b" "Book log" item (function org-books-visit-book-log)
"- %U %?" :prepend t)
;; zettelkasten
("s" "Slipbox" entry (file "roam/inbox.org")
"* %?\n")))
)
;;; end of (!after org ...
@ -178,3 +308,12 @@
(let ((org-agenda-tag-filter-preset '("-habits")))
(org-agenda arg "a")))
(bind-key "<f5>" 'agenda/hide-daily-schedule-1)
;;; termux specific
;(setq browse-url-browser-function 'browse-url-generic
; browse-url-generic-program "termux-open")
(defun jethro/org-archive-done-tasks ()
"Archive all done tasks."
(interactive)
(org-map-entries 'org-archive-subtree "/DONE" 'file))

View File

@ -50,6 +50,11 @@
;(unpin! t)
;(package! org-wild-notifier :disable t) ;; currently using a customized version loaded locally
;; for termux only: straight and org (org-roam) are as of writing (early 2023-08) unstable
;(package! straight :pin "921a449")
;(package! org :pin "ca873f7")
(package! org-books)
;;; customized to support repeated tasks, see https://github.com/akhramov/org-wild-notifier.el/issues/41

View File

@ -16,7 +16,7 @@ cmd open ${{
case "$(printf "%s\n" "$f" | awk '{print tolower($0)}')" in
*.kra|*.krz|*.ora) setsid -f krita $f >/dev/null 2>&1 && exit 0 ;;
*.xlsx) setsid -f libreoffice $f >/dev/null 2>&1 && exit 0 ;;
*.sc) sc-im $f ;;
*.sc) sc-im $f && exit 0;;
*.org) setsid -f em $f >/dev/null 2>&1 && exit 0 ;;
esac
case $(file --mime-type "$(readlink -f $f)" -b) in

View File

@ -0,0 +1,4 @@
l seek 5
h seek -5
j seek -60
k seek 60

View File

@ -0,0 +1 @@
save-position-on-quit

View File

@ -25,7 +25,7 @@ case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n
' fcitx5') fcitx5 ;;
' kill fcitx5') killall fcitx5 ;;
' start emacs daemon') emacs --daemon && notify-send 'emacs daemon started' ;;
' kill emacs daemon') killall emacs && notify-send 'emacs daemon killed' ;;
' restart emacs daemon') killall emacs && notify-send 'emacs daemon killed' ; emacs --daemon && notify-send 'emacs daemon started' ;;
' kill emacs daemon') emacsclient -e '(kill-emacs)' && notify-send 'emacs daemon killed' ;;
' restart emacs daemon') emacsclient -e '(kill-emacs)' && notify-send 'emacs daemon killed' ; emacs --daemon && notify-send 'emacs daemon started' ;;
*) exit 1 ;;
esac

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Syncplay
Exec=/home/default/.local/bin/syncplay

View File

@ -1,6 +1,8 @@
#+title: Instructions
setting up the system and packages
** information
This org document is a list of instructions on how to install the whole setup of my personal system, including installation of standalone programs.
** installing fedora minimal with btrfs snapshots (snapper)
@ -65,7 +67,7 @@ for building/installing packages, also some dependencies for doomemacs, and zsh.
sudo dnf install curl ca-certificates make automake gcc gcc-c++ kernel-devel git util-linux-user zsh ntpsec dnf-plugins-core golang flatpak cmake libevdev-devel systemd-devel yaml-cpp-devel boost-devel ripgrep fd-find ShellCheck tar pip npm
#+END_SRC
** get dotfiles
** installing dotfiles
#+BEGIN_SRC sh
# getting dotfiles
@ -82,6 +84,7 @@ mkdir -p ~/.config/shell
mkdir -p ~/.config/mpd
mkdir -p ~/.config/zsh
mkdir -p ~/.config/newsboat
mkdir -p ~/.config/nvim
cd ~/.dots/home/ && stow default --target=$HOME/
#+END_SRC
@ -92,7 +95,7 @@ cd ~/.dots/home/ && stow default --target=$HOME/
cd ~/.dots/home/ && stow -D default --target=$HOME/
#+END_SRC
** rpmfusion
** setting up rpmfusion
from https://rpmfusion.org/Configuration and https://rpmfusion.org/Howto/Multimedia
@ -128,7 +131,7 @@ the other dependency not included in packages.txt is `pup` (included in a sectio
sudo dnf install -y $(cat ~/.dots/packages.txt)
#+END_SRC
** sudoers
** configuring sudoers
Allow wheel users to sudo with password and allow several system commands
(like `shutdown` to run without password).
@ -167,7 +170,7 @@ https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/
** doom emacs
first we need marked for markdown support
first we need to install marked for markdown support
#+BEGIN_SRC sh
sudo npm install -g marked
@ -191,7 +194,7 @@ mkdir -p $HOME/.cache/lf
** interception tools (keyboard input mappings)
change caps lock to escape (pressed) and mod (held down)
change caps lock to escape (when pressed) and mod (when held down)
INSTALL FROM SOURCE
@ -243,10 +246,13 @@ pip install autotiling==1.8
** sc-im (terminal spreadsheet)
from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-36--(packaged)
from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-27
#+BEGIN_SRC sh
sudo dnf copr enable marcusmueller/sc-im
sudo dnf install sc-im
sudo dnf install libzip-devel libxml2-devel ncurses-devel byacc git gcc gnuplot
git clone https://github.com/andmarti1424/sc-im.git
cd sc-im/src/
make
sudo make install
#+END_SRC
** nsxiv (image viewer)
@ -256,7 +262,7 @@ dnf copr enable mamg22/nsxiv
dnf install nsxiv
#+END_SRC
** pip
** pip packages
*** keepmenu (dmenu keepassxc client)
https://github.com/firecat53/keepmenu/blob/main/docs/install.md#install-recommended
@ -286,6 +292,25 @@ go install github.com/ericchiang/pup@latest
#+END_SRC
** packages from source/binaries
*** simple-mtpfs (for mounting usb)
install dependencies:
#+begin_src sh
sudo dnf install libgcc fuse-devel libmtp-devel autoconf-archive
#+end_src
https://github.com/phatina/simple-mtpfs#installation
#+begin_src sh
git clone https://github.com/phatina/simple-mtpfs
cd simple-mtpfs
./autogen.sh
mkdir build && cd build
../configure
make
sudo make install
#+end_src
*** mpvpaper
animated wallpapers (used by `change-background`)
@ -319,7 +344,23 @@ tar -xvf ../<filename>.tar.xz
sudo cp 7zz /usr/local/bin/
#+END_SRC
#+RESULTS:
** AppImages
*** syncplay
from https://syncplay.pl/download/
#+begin_src sh
curl -LOv https://github.com/Syncplay/syncplay/releases/download/v1.7.0/Syncplay-1.7.0-x86_64.AppImage
chmod +x Syncplay-*.AppImage
mv Syncplay-*.AppImage ~/.local/bin/syncplay
#+end_src
** installing cargo
https://doc.rust-lang.org/cargo/getting-started/installation.html
#+BEGIN_SRC shell
curl https://sh.rustup.rs -sSf | sh
# choose to customize installation, and choose `no` when it asks to modify PATH variable.
#+END_SRC
** setting up flatpak
@ -337,7 +378,7 @@ sudo usermod -a -G vboxusers default
** flatpak packages
remember to set permissions, especially access to personal files according to what you want the software to have before launching them.
remember to set permissions with Flatseal, especially access to personal files according to what you want the software to have before launching them.
*** flatseal
@ -404,16 +445,8 @@ flatpak install flathub io.github.hrkfdn.ncspot
flatpak install flathub com.spotify.Client
#+END_SRC
** installing cargo
https://doc.rust-lang.org/cargo/getting-started/installation.html
#+BEGIN_SRC shell
curl https://sh.rustup.rs -sSf | sh
# choose to customize installation, and choose `no` when it asks to modify PATH variable.
#+END_SRC
** other
*** crashes with wayland under amd gpus
* fixes
** crashes with wayland under amd gpus
see https://bbs.archlinux.org/viewtopic.php?id=270468
https://forum.manjaro.org/t/graphics-glitches-freeze-up-with-new-comp-error-ring-gfx-timeout/55979/6
@ -432,7 +465,3 @@ power_dpm_force_performance_level: high
* todos
** TODO write dependencies and programs to separate files
** add packages
*** TODO add simple-mtpfs
dnf package unmaintained
*** TODO add syncplay
the copr repository batmanfeynman/syncplay is unmaintained

View File

@ -127,6 +127,13 @@ mono-devel
VirtualBox
virtualbox-guest-additions
@virtualization
texlive-scheme-basic
texlive-scheme-full
texlive-dvipng
rofi
kanshi
gvfs-mtp
usbutils
android-tools
java-1.8.0-openjdk
java-17-openjdk
easyeffects