diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf deleted file mode 100644 index 19e4b53..0000000 --- a/.gnupg/gpg.conf +++ /dev/null @@ -1,3 +0,0 @@ -keyserver hkp://keys.gnupg.net -keyserver-options auto-key-retrieve -keyserver hkp://pgp.mit.edu:11371 diff --git a/.local/share/applications/FlowScape.desktop b/.local/share/applications/FlowScape.desktop deleted file mode 100644 index ad824ec..0000000 --- a/.local/share/applications/FlowScape.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.5 -Name=FlowScape -Comment=Create gorgeous 3D landscapes with ease. -Exec=/usr/bin/prime-run /home/phundrak/.local/opt/FlowScape/FlowScape.x86_64 -Path=/home/phundrak/.local/opt/FlowScape -Icon=/home/phundrak/.local/opt/FlowScape/icon.jpg -Terminal=false -Type=Application -Categories=Graphics diff --git a/.local/share/applications/OtherWorldMapper.desktop b/.local/share/applications/OtherWorldMapper.desktop deleted file mode 100644 index bc89308..0000000 --- a/.local/share/applications/OtherWorldMapper.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.0.4 -Name=OtherWorldMapper -Comment=OtherWorldMapper is a powerful yet intuitive fantasy map creation tool. -Exec=/usr/bin/prime-run /home/phundrak/.local/opt/OtherWorldMapper/OWM -Path=/home/phundrak/.local/opt/OtherWorldMapper -Icon=/home/phundrak/.local/opt/OtherWorldMapper/owm.ico -Terminal=false -Type=Application -Categories=Graphics diff --git a/.local/share/applications/Wonderdraft.desktop b/.local/share/applications/Wonderdraft.desktop deleted file mode 100644 index 4579d5f..0000000 --- a/.local/share/applications/Wonderdraft.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Version=1.1.3.2 -Name=Wonderdraft -Comment=Wonderdraft is a powerful yet intuitive fantasy map creation tool. -Exec=/usr/bin/prime-run /home/phundrak/Wonderdraft/Wonderdraft.x86_64 -Path=/home/phundrak/Wonderdraft -Icon=/home/phundrak/Wonderdraft/Wonderdraft.png -Terminal=false -Type=Application -Categories=Graphics diff --git a/.local/share/applications/emacs.desktop b/.local/share/applications/emacs.desktop deleted file mode 100644 index c23fa61..0000000 --- a/.local/share/applications/emacs.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Name=Emacs -GenericName=Text Editor -Comment=Edit text -MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; -Exec=emacsclient -c %F -Icon=emacs -Type=Application -Terminal=false -Categories=Development;TextEditor; -StartupWMClass=Emacs -Keywords=Text;Editor; diff --git a/org/config/desktop.org b/org/config/desktop.org new file mode 100644 index 0000000..171ba49 --- /dev/null +++ b/org/config/desktop.org @@ -0,0 +1,795 @@ +#+title: Desktop settings +#+setupfile: headers +#+options: auto-id:t +#+html_head: +#+html_head: +#+html_head: +#+property: header-args:emacs-lisp :mkdirp yes :lexical t :exports code +#+property: header-args:emacs-lisp+ :tangle ~/.emacs.d/desktop.el +#+property: header-args:emacs-lisp+ :mkdirp yes :noweb no-export +#+property: header-args:lisp :mkdirp :tangle ~/.stumpwm.d/desktop.lisp :noweb yes + +* Introduction +:PROPERTIES: +:CUSTOM_ID: Introduction-w831x4a0l9j0 +:END: +Many settings formerly present in this website’s index are related to +my desktop settings, while some others are not. + +# Also, since I switched to StumpWM, many of my keybinds from Emacs need +# to be kept up to date with my StumpWM keybinds, and /vice versa/. This +# document aims to regroup all settings related to the desktop in order +# to have an easier time managing them. + +* Common Emacs and StumpWM settings :noexport: +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-neseiaa0l9j0 +:END: +Both Emacs and StumpWM work on the same principle of keychords +powering a function or command. With both of them I have a prefix key, +~SPC~ in the case of Emacs (or ~C-SPC~ when in insert-mode, see the +relevant config) and ~s-SPC~ in the case of StumpWM. That means I can +give them the same keychord following this, for instance ~w/~ to create +a new vertically split frame to the right of the current one. + +All the keybinds will be presented in the form of tables, with on the +first column the keychord following the leader key, on the second +column the EmacsLisp function to be called, and on the third the +StumpWM command. If one of the ELisp or StumpWM case’s is empty, it +means there is no equivalence. If it’s ~nil~, then it means it is a +prefix key. The fourth column is for now reserved for Emacs’ which-key +so I can give it a better name. If its value is ~nil~, then it should +not show up. Hopefully this can be implemented someday in StumpWM. + +** Generating Code :noexport: +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-ngnclyk0l9j0 +:END: +*** Elisp +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-Elisp-oeqclyk0l9j0 +:END: +#+name: emacs-keybinds-gen +#+header: :var keymap=emacs-stumpwm-media-control +#+begin_src emacs-lisp :exports none :tangle no :wrap "src emacs-lisp :tangle no" +(mapconcat (lambda (keybind) + (let* ((keychord (replace-regexp-in-string (rx (or (seq line-start "~") + (seq "~" line-end))) + "" + (car keybind))) + (function (replace-regexp-in-string (rx (or (seq line-start "~") + (seq "~" line-end))) + "" + (nth 1 keybind))) + (which (nth 3 keybind))) + (format "\"%s\" %s" + keychord + (if (string= "nil" function) + (format "%S" + `(:ignore :which-key ,which)) + (if (string= "" which) + (concat "#'" function) + (format "%S" + `'(,(intern function) :which-key ,which))))))) + (seq-filter (lambda (elem) + (not (string= "" (nth 1 elem)))) + keymap) + "\n") +#+end_src + +#+RESULTS: emacs-keybinds-gen +#+begin_src emacs-lisp :tangle no +"m" (:ignore :which-key "media") +"m«" #'emms-player-mpd-previous +"m»" #'emms-player-mpd-next +"ma" '(hydra-media/body :which-key "MPD add") +"mb" (:ignore :which-key "browse") +"mba" #'emms-browse-by-artist +"mbA" #'emms-browse-by-album +"mbg" #'emms-browse-by-genre +"mbp" #'emms-playlists-mode-go +"mbs" #'emms-smart-browse +"mby" #'emms-browse-by-year +"mc" #'emms-player-mpd-clear +"mp" #'emms-player-toggle-pause +"ms" #'emms-player-mpd-show +"mu" (:ignore :which-key "update") +"mum" #'emms-player-mpd-update-all +"muc" #'emms-cache-set-from-mpd-all +#+end_src + +#+name: emacs-hydra-keybinds-gen +#+header: :var keymap=emacs-stumpwm-resize-frame +#+begin_src emacs-lisp :exports none :tangle no :wrap "src emacs-lisp :tangle no" +(mapconcat (lambda (keybind) + (let ((keychord (replace-regexp-in-string "^~\\|~$" + "" + (car keybind))) + (function (replace-regexp-in-string "^~\\|~$" + "" + (nth 1 keybind))) + (which (nth 3 keybind))) + (format "%S" (if (string= "" which) + `(,keychord ,(intern function)) + `(,keychord ,(intern function) ,which))))) + keymap + "\n") +#+end_src + +#+RESULTS: emacs-hydra-keybinds-gen +#+begin_src emacs-lisp :tangle no +("c" shrink-window-horizontally) +("t" enlarge-window) +("s" shrink-window) +("r" enlarge-window-horizontally) +#+end_src + +*** Lisp +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Generating-Code-Lisp-qntclyk0l9j0 +:END: +#+name: stumpwm-filter-keybinds +#+begin_src emacs-lisp :exports none :tangle no +(let ((no-tilde (lambda (string) + (replace-regexp-in-string "^~\\|~$" "" string)))) + (seq-filter (lambda (elem) + (= 1 (length (car elem)))) + (mapcar (lambda (elem) + `(,(replace-regexp-in-string (format "^%s" prefix) "" (car elem)) + . + ,(cdr elem))) + (seq-filter (lambda (elem) + (and (not (string= "" (cdr elem))) + (not (string= prefix (car elem))) + (string-prefix-p prefix (car elem)))) + (mapcar (lambda (elem) + (let ((keychord (apply no-tilde (list (car elem)))) + (function (apply no-tilde (list (nth 2 elem))))) + `(,keychord . ,function))) + keymap))))) +#+end_src + +#+name: stumpwm-keybinds-gen +#+header: :var keymap=emacs-stumpwm-media-control keymap-name="my-mpd-add-map" prefix="m" +#+begin_src emacs-lisp :exports none :tangle no :wrap "src lisp :tangle no" :noweb yes +(require 'seq) +(format "%S" + `(defvar ,(intern (format "*%s*" keymap-name)) + (let ((m (make-sparse-keymap))) + ,@(mapcar (lambda (keybind) + (let ((keychord (replace-regexp-in-string (format "^%s" prefix) + "" + (car keybind))) + (function (cdr keybind))) + `(define-key m (kbd ,keychord) ,function))) + <> + ) + m))) +#+end_src + +#+RESULTS: stumpwm-keybinds-gen +#+begin_src lisp :tangle no +(defvar *my-mpd-add-map* (let ((m (make-sparse-keymap))) (define-key m (kbd ".") "media-interactive") (define-key m (kbd "«") "mpd-prev") (define-key m (kbd "»") "mpd-next") (define-key m (kbd "a") "'*my-mpd-add-keymap*") (define-key m (kbd "b") "'*my-mpd-browse-keymap*") (define-key m (kbd "c") "mpd-clear") (define-key m (kbd "p") "mpd-toggle-pause") m)) +#+end_src + +#+name: stumpwm-interactive-keybinds-gen +#+header: :var keymap=emacs-stumpwm-resize-frame prefix="" +#+begin_src emacs-lisp :noweb yes +(format "%S" `,@(mapcar (lambda (keybind) + (let ((keychord (car keybind)) + (function (cdr keybind))) + `((kbd ,keychord) ,function))) + <>)) +#+end_src + +#+RESULTS: stumpwm-interactive-keybinds-gen +: (((kbd "c") "resize-direction left") ((kbd "t") "resize-direction down") ((kbd "s") "resize-direction up") ((kbd "r") "resize-direction right")) + +#+name: stumpwm-interactive-gen +#+header: :var keymap=emacs-stumpwm-resize-frame keymap-name="my-mpd-add-map" prefix="" +#+begin_src emacs-lisp :exports none :tangle no :wrap "src lisp :tangle no" +(format "%S" + `(define-interactive-keymap ,(intern keymap-name) + (:exit-on '((kbd "RET") + (kbd "ESC") + (kbd "C-g") + (kbd "q"))) + ,@ + <> + )) +#+end_src + +#+RESULTS: stumpwm-interactive-gen +#+begin_src lisp :tangle no +(define-interactive-keymap my-mpd-add-map (:exit-on '((kbd "RET") (kbd "ESC") (kbd "C-g") (kbd "q"))) ((kbd "c") "resize-direction left" (kbd "t") "resize-direction down" (kbd "s") "resize-direction up" (kbd "r") "resize-direction right")) +#+end_src + +** Frames Management +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Frames-Management-5zhea5c0l9j0 +:END: +In StumpWM, I’ll consider my various windows the same as Emacs’ +buffers. +#+name: emacs-stumpwm-frames-management +| Keychord | Emacs | StumpWM | which-key | +|----------+---------------------------+-------------------------+-----------| +| ~b~ | ~nil~ | ~'*my-buffers-keymap*~ | buffers | +| ~bb~ | ~buflers-switch-buffer~ | ~windowlist~ | | +| ~bB~ | ~bury-buffer~ | | | +| ~bd~ | ~kill-this-buffer~ | ~delete-window~ | | +| ~bD~ | ~kill-buffer~ | ~window-window-and-frame~ | | +| ~bh~ | ~dashboard-refresh-buffer~ | | | +| ~bk~ | | ~kill-window~ | | +| ~bl~ | ~bufler~ | | | +| ~bm~ | ~switch-to-messages-buffer~ | | | +| ~bn~ | ~evil-next-buffer~ | ~next~ | | +| ~bp~ | ~evil-prev-buffer~ | ~prev~ | | +| ~br~ | ~counsel-buffer-or-recentf~ | | | +| ~bs~ | ~switch-to-scratch-buffer~ | | | + +EmacsLisp code: +#+begin_src emacs-lisp +(phundrak/leader-key + <> + ) +#+end_src + +StumpWM’s Lisp code: +#+begin_src lisp +<> +(define-key *root-map (kbd "b") '*my-buffers-keymap*) +#+end_src + +** Window Management +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Window-Management-8kt59fa0l9j0 +:END: +The following allows to have an interactive keymap for resizing the +current frame. In Emacs, it will be translated as a hydra while in +StumpWM it will be an interactive keymap. +#+name: emacs-stumpwm-resize-frame +| Keychord | Emacs | StumpWM | which-key | +|----------+-----------------------------+------------------------+-----------| +| ~c~ | ~shrink-window-horizontally~ | ~resize-direction left~ | | +| ~t~ | ~enlarge-window~ | ~resize-direction down~ | | +| ~s~ | ~shrink-window~ | ~resize-direction up~ | | +| ~r~ | ~enlarge-window-horizontally~ | ~resize-direction right~ | | + +This translates into the following hydra in EmacsLisp: +#+begin_src emacs-lisp +(defhydra windows-adjust-size () + " +^Zoom^ ^Other +^^^^^^^----------------------------------------- +[_t_/_s_] shrink/enlarge vertically [_q_] quit +[_c_/_r_] shrink/enlarge horizontally +" + <> + ("q" nil :exit t)) +#+end_src + +While the following Lisp code is used with StumpWM. +#+begin_src lisp +(define-interactive-keymap (iresize tile-group) (:on-enter #'setup-iresize + :on-exit #'resize-unhide + :abort-if #'abort-resize-p + :exit-on '((kbd "RET") + (kbd "ESC") + (kbd "C-g") + (kbd "q"))) + <> + ) +#+end_src + +Below you will find my window management keybinds. +#+name: emacs-stump-window-management +| Keychord | Emacs | StumpWM | which-key | +|----------+-------------------------------+--------------------------+------------------| +| ~w~ | ~nil~ | ~'*my-windows-keymap*~ | windows | +| ~w.~ | ~windows-adjust-size/body~ | ~iresize~ | resize windows | +| ~w-~ | ~split-window-below-and-focus~ | ~vsplit-and-focus~ | | +| ~w+~ | | ~balance-frames~ | | +| ~wv~ | ~split-window-below~ | ~vsplit~ | | +| ~wV~ | | ~vsplit-equally~ | | +| ~w/~ | ~split-window-right-and-focus~ | ~hsplit-and-focus~ | | +| ~wh~ | ~split-window-right~ | ~hsplit~ | | +| ~wH~ | | ~hsplit-equally~ | | +| ~wc~ | ~evil-window-left~ | ~move-focus left~ | | +| ~wt~ | ~evil-window-down~ | ~move-focus down~ | | +| ~ws~ | ~evil-window-up~ | ~move-focus up~ | | +| ~wr~ | ~evil-window-right~ | ~move-focus right~ | | +| ~wC~ | | ~move-window left~ | | +| ~wT~ | | ~move-window down~ | | +| ~wS~ | | ~move-window up~ | | +| ~wR~ | | ~move-window right~ | | +| ~w C-c~ | | ~exchange-direction right~ | | +| ~w C-s~ | | ~exchange-direction down~ | | +| ~w C-t~ | | ~exchange-direction up~ | | +| ~w C-r~ | | ~exchange-direction right~ | | +| ~wb~ | ~kill-buffer-and-delete-window~ | | | +| ~we~ | ~winum-select-window-by-number~ | ~expose~ | | +| ~wf~ | | ~fullscreen~ | | +| ~wF~ | | ~'*my-floating-keymap*~ | floating windows | +| ~wFf~ | | ~float-this~ | | +| ~wFF~ | | ~flatten-floats~ | | +| ~wFu~ | | ~unfloat-this~ | | +| ~wi~ | | ~info~ | | +| ~wd~ | ~delete-window~ | ~remove-split~ | | +| ~wD~ | ~delete-other-windows~ | ~only~ | | +| ~wm~ | | ~meta~ | | +| ~wo~ | ~other-window~ | ~other-window~ | | +| ~ws~ | | ~sibling~ | | +| ~wu~ | | ~next-urgent~ | | +| ~wU~ | | ~unmaximize~ | | +| ~ww~ | ~nil~ | | writeroom | +| ~ww.~ | ~writeroom-buffer-width/body~ | | | +| ~www~ | ~writeroom-mode~ | | | + +** Media Control +:PROPERTIES: +:CUSTOM_ID: Common-Emacs-and-StumpWM-settings-Media-Control-r56g2hc0l9j0 +:END: +#+name: emacs-stumpwm-media-interactive +| Keychord | Emacs | StumpWM | which-key | +|----------+-------------------------------------------------------------+-----------------+-----------| +| ~c~ | ~emms-player-mpd-previous~ | ~mpd-prev~ | | +| ~t~ | ~(shell-command-and-echo "mpc volume -2" "mpc volume" "mpc")~ | ~mpd-volume-down~ | | +| ~s~ | ~(shell-command-and-echo "mpc volume +2" "mpc volume" "mpc")~ | ~mpd-volume-up~ | | +| ~r~ | ~emms-player-mpd-next~ | ~mpd-next~ | | +| ~s~ | ~emms-player-mpd-stop~ | ~mpd-stop~ | | + +#+name: emacs-stumpwm-general-media +| Keychord | Emacs | StumpWM | which-key | +|----------+-------+--------------------------------------+----------------| +| ~c~ | | ~exec xbacklight -dec 2~ | backlight down | +| ~t~ | | ~exec amixer -q set Master 2%- unmute~ | volume down | +| ~s~ | | ~exec amixer -q set Master 2%+ unmute~ | volume up | +| ~r~ | | ~exec xbacklight -inc 2~ | backlight up | +| ~m~ | | ~exec amixer -q set Master 1+ toggle~ | toggle mute | + +#+name: emacs-stumpwm-media-control +| Keychord | Emacs | StumpWM | which-key | +|----------+-----------------------------+---------------------------+-----------| +| ~m~ | ~nil~ | ~'*my-media-keymap*~ | media | +| ~m.~ | | ~media-interactive~ | | +| ~m«~ | ~emms-player-mpd-previous~ | ~mpd-prev~ | | +| ~m»~ | ~emms-player-mpd-next~ | ~mpd-next~ | | +| ~ma~ | ~hydra-media/body~ | ~'*my-mpd-add-keymap*~ | MPD add | +| ~maa~ | | ~mpd-serach-and-add-artist~ | | +| ~maA~ | | ~mpd-serach-and-add-album~ | | +| ~maf~ | | ~mpd-search-and-add-file~ | | +| ~maF~ | | ~mpd-add-file~ | | +| ~mag~ | | ~mpd-search-and-add-genre~ | | +| ~mat~ | | ~mpd-search-and-add-title~ | | +| ~mb~ | ~nil~ | ~'*my-mpd-browse-keymap*~ | browse | +| ~mba~ | ~emms-browse-by-artist~ | ~mpd-browse-artists~ | | +| ~mbA~ | ~emms-browse-by-album~ | ~mpd-browse-albums~ | | +| ~mbg~ | ~emms-browse-by-genre~ | ~mpd-browse-genres~ | | +| ~mbp~ | ~emms-playlists-mode-go~ | ~mpd-browse-playlist~ | | +| ~mbs~ | ~emms-smart-browse~ | | | +| ~mbt~ | | ~mpd-browse-tracks~ | | +| ~mby~ | ~emms-browse-by-year~ | | | +| ~mc~ | ~emms-player-mpd-clear~ | ~mpd-clear~ | | +| ~mp~ | ~emms-player-toggle-pause~ | ~mpd-toggle-pause~ | | +| ~ms~ | ~emms-player-mpd-show~ | | | +| ~mu~ | ~nil~ | | update | +| ~mum~ | ~emms-player-mpd-update-all~ | | | +| ~muc~ | ~emms-cache-set-from-mpd-all~ | | | + +* Theme and graphical tweaks +:PROPERTIES: +:CUSTOM_ID: Theme-and-graphical-tweaks-ukp6gbc0l9j0 +:END: +** GTK Settings +:PROPERTIES: +:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-2307gbc0l9j0 +:END: +*** GTK2 +:PROPERTIES: +:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-fq77gbc0l9j0 +:END: +**** General configuration +:PROPERTIES: +:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0 +:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-General-configuration-xod7gbc0l9j0 +:END: +This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the GTK3 +configuration file you will see below, and it shares most of its settings. +First, let’s select the Nordic theme for GTK2. Let’s also set the icon theme. +#+BEGIN_SRC conf-unix +# -*- mode: unix-config -*- +gtk-theme-name="Nordic" +gtk-icon-theme-name="Flat-Remix-Dark" +#+END_SRC + +#+BEGIN_SRC conf-unix +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle="hintslight" +#+END_SRC + +This changes the shortcuts in menu, let’s also make the menus snappier. +#+BEGIN_SRC conf-unix +gtk-can-change-accels=1 +gtk-menu-bar-popup-delay=0 +gtk-menu-popdown-delay=0 +gtk-menu-popup-delay=0 +#+END_SRC + +**** Filechooser +:PROPERTIES: +:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini +:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK2-Filechooser-nmh7gbc0l9j0 +:END: +#+BEGIN_SRC conf-unix +[Filechooser Settings] +#+END_SRC + +The first option alows me to open the file chooser in the current working +directory: +#+BEGIN_SRC conf-unix +StartupMode=cwd +#+END_SRC + +Next, setting the location mode to ~path-bar~ will show the path as buttons that +can be clicked rather than the full path. +#+BEGIN_SRC conf-unix +LocationMode=path-bar +#+END_SRC + +With this configuration, by default we won’t see hidden files. +#+BEGIN_SRC conf-unix +ShowHidden=true +#+END_SRC + +And we'll also see the size of the visible files. +#+BEGIN_SRC conf-unix +ShowSizeColumn=true +#+END_SRC + +Now, let’s choose the geometry of our file picker. These two first lines set +where the file picker appears: +#+BEGIN_SRC conf-unix +GeometryX=566 +GeometryY=202 +#+END_SRC + +And these two describe the size of the window: +#+BEGIN_SRC conf-unix +GeometryWidth=800 +GeometryHeight=400 +#+END_SRC + +With these two lines, we set how our files are sorted: by name, and in the +ascending order. +#+BEGIN_SRC conf-unix +SortColumn=name +SortOrder=ascending +#+END_SRC + +Our default view mode is a list of files: +#+BEGIN_SRC conf-unix +ViewMode=list-view +#+END_SRC + +And finally, setting our icon view scale to ~-1~ sets the icon view to the max +size. +#+BEGIN_SRC conf-unix +IconViewScale=-1 +#+END_SRC + +*** GTK3 +:PROPERTIES: +:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini +:CUSTOM_ID: Theme-and-graphical-tweaks-GTK-Settings-GTK3-ojl7gbc0l9j0 +:END: +The following file helps me choosing the aspect of various GTK+ 3 software, +including their theme and icons. First, let’s declare the header: +#+BEGIN_SRC conf-unix +[Settings] +#+END_SRC + +Now, let’s hint to GTK that I prefer dark themes. This can have an influence +also on some websites that can detect this preference and therefore set their +own theme to dark by themselves. +#+BEGIN_SRC conf-unix +gtk-application-prefer-dark-theme = true +#+END_SRC + +Next, the icon theme is the Flat Remix Dark icon theme: +#+BEGIN_SRC conf-unix +gtk-icon-theme-name = Flat-Remix-Dark +#+END_SRC + +Now, the general theme for GTK3 is Nordic. +#+BEGIN_SRC conf-unix +gtk-theme-name = Nordic +#+END_SRC + +#+BEGIN_SRC conf-unix +gtk-can-change-accels=1 +gtk-menu-bar-popup-delay=0 +gtk-menu-popdown-delay=0 +gtk-menu-popup-delay=0 +#+END_SRC + +#+BEGIN_SRC conf-unix +gtk-xft-antialias=1 +gtk-xft-hinting=1 +gtk-xft-hintstyle=hintslight +# gtk-xft-rgba=rgb +#+END_SRC + +Since window decorations are handled by my WMs, I will leave this variable +empty. +#+BEGIN_SRC conf-unix +gtk-decoration-layout= +#+END_SRC + +** Picom (Compton) +:PROPERTIES: +:CUSTOM_ID: Theme-and-graphical-tweaks-Picom-Compton-uko7gbc0l9j0 +:END: +Picom is a standalone compositor for Xorg, and the successor to +Compton, itself successor to xcompmgr-dana, itself a fork of xcompmgr. +You can find my Picom configuration [[file:picom.org][here]]. + +** Xresources +:PROPERTIES: +:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code +:CUSTOM_ID: Theme-and-graphical-tweaks-Xresources-4dr7gbc0l9j0 +:END: +The main body in my Xresources declaration is the declaration of my +color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]]. +#+BEGIN_SRC conf +#define nord0 #2E3440 +#define nord1 #3B4252 +#define nord2 #434C5E +#define nord3 #4C566A +#define nord4 #D8DEE9 +#define nord5 #E5E9F0 +#define nord6 #ECEFF4 +#define nord7 #8FBCBB +#define nord8 #88C0D0 +#define nord9 #81A1C1 +#define nord10 #5E81AC +#define nord11 #BF616A +#define nord12 #D08770 +#define nord13 #EBCB8B +#define nord14 #A3BE8C +#define nord15 #B48EAD + +,*.foreground: nord4 +,*.background: nord0 +,*.cursorColor: nord4 +,*fading: 35 +,*fadeColor: nord3 + +,*.color0: nord1 +,*.color1: nord11 +,*.color2: nord14 +,*.color3: nord13 +,*.color4: nord9 +,*.color5: nord15 +,*.color6: nord8 +,*.color7: nord5 +,*.color8: nord3 +,*.color9: nord11 +,*.color10: nord14 +,*.color11: nord13 +,*.color12: nord9 +,*.color13: nord15 +,*.color14: nord7 +,*.color15: nord6 +#+END_SRC + +* Gpg configuration +:PROPERTIES: +:CUSTOM_ID: Gpg-configuration-6i2ip6l0m9j0 +:END: +#+begin_src conf :tangle ~/.gnupg/gpg.conf +keyserver hkp://keys.gnupg.net +keyserver-options auto-key-retrieve +keyserver hkp://pgp.mit.edu:11371 +#+end_src + +* Email signature +:PROPERTIES: +:HEADER-ARGS: :mkdirp yes :tangle ~/.signature +:CUSTOM_ID: Email-signature-jnn75ac0l9j0 +:END: +This file gets inserted automatically at the end of my emails. +#+BEGIN_SRC text +Lucien “Phundrak” Cartier-Tilet +https://phundrak.com (Français) +https://phundrak.com/en (English) +Sent from GNU/Emacs +#+END_SRC + +* ~.desktop~ files for custom applications +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-cksiyhg0m9j0 +:END: +Some software I use are not packaged (yet) on my system. Therefore, in +order to make them available in ~rofi~, I need to write a ~.desktop~ file +so I can launch them. + +** Emacs +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-Emacs-6e9actg0m9j0 +:END: +Emacs does have a default ~.desktop~ file, but I want to override it so +I can just “open with Emacs” from other software (such as Nemo) and it +will instead open with ~emacsclient~. +#+begin_src conf-desktop :tangle ~/.local/share/applications/emacs.desktop +[Desktop Entry] +Name=Emacs +GenericName=Text Editor +Comment=Edit text +MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +Exec=emacsclient -c %F +Icon=emacs +Type=Application +Terminal=false +Categories=Development;TextEditor; +StartupWMClass=Emacs +Keywords=Text;Editor; +#+end_src + +I also have ~mu4e.desktop~ which is used to set my default email client. +It relies on ~emacsmail~ defined in [[file:bin.org::#Emacsmail-afffb7cd][this document]]. +#+begin_src conf-desktop :tangle ~/.local/share/applications/mu4e.desktop +[Desktop Entry] +Name=Mu4e +GenericName=Mu4e +Comment=Maildir Utils for Emacs +MimeType=x-scheme-handler/mailto; +Exec=/home/phundrak/.local/bin/emacsmail %U +Icon=emacs +Type=Application +Terminal=false +Categories=Network;Email;TextEditor +StartupWMClass=Gnus +Keywords=Text;Editor; +#+end_src + +Then I also have ~org-protocol.desktop~ so I can capture elements from +other software, mainly web pages from Firefox through the [[https://github.com/sprig/org-capture-extension][org-capture +extension]]. +#+begin_src conf-desktop :tangle ~/.local/share/applications/org-protocol.desktop +[Desktop Entry] +Name=org-protocol +Exec=emacsclient %u +Type=Application +Terminal=false +Categories=System; +MimeType=x-scheme-handler/org-protocol; +#+end_src + +** FlowScape +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-FlowScape-7zelglg0m9j0 +:END: +[[https://pixelforest.itch.io/flowscape][FlowScape]] is a nice 3D compositing software I sometimes use to create +landscapes. I always install it in =~/.local/opt/Flowscape=, so the +~.desktop~ file is relatively straightforward. +#+begin_src conf-desktop :tangle ~/.local/share/applications/FlowScape.desktop +[Desktop Entry] +Version=1.5 +Name=FlowScape +Comment=Create gorgeous 3D landscapes with ease. +Exec=/usr/bin/prime-run /home/phundrak/.local/opt/FlowScape/FlowScape.x86_64 +Path=/home/phundrak/.local/opt/FlowScape +Icon=/home/phundrak/.local/opt/FlowScape/icon.jpg +Terminal=false +Type=Application +Categories=Graphics +#+end_src + +** macOS +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-macOS-yb1dmyg0m9j0 +:END: +You did not read wrong! Yes I have an entry for macOS, but this is for +a virtual machine located in ~~/VMs/macOS~. +#+begin_src conf-desktop :tangle ~/.local/share/applications/macos.desktop +[Desktop Entry] +Version=1 +Name=macOS +Comment=macOS in a virtual machine +Exec=/usr/bin/prime-run /home/phundrak/VMs/macOS/basic.sh +Path=/home/phundrak/VMs/macOS +Icon=/home/phundrak/VMs/macOS/macOS.png +Terminal=false +Type=Application +Categories=Development +#+end_src + +** Minecraft +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-Minecraft-tds7ddh0m9j0 +:END: +Yup, I play Minecraft. And yes, it does have a default ~.desktop~ file, +but this one overrides it so it launches automatically Minecraft with +[[https://wiki.archlinux.org/title/PRIME][prime-run]] so my GPU is used. +#+begin_src conf-desktop :tangle ~/.local/share/applications/minecraft-launcher.desktop +[Desktop Entry] +Type=Application +Version=1.0 +Name=Minecraft Launcher (Nvidia) +Comment=Official Minecraft Launcher +Exec=/usr/bin/prime-run /usr/bin/minecraft-launcher +Path=/usr/bin/ +Icon=minecraft-launcher +Terminal=false +Categories=Game;Application; +#+end_src + +** OtherWorldMapper +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-OtherWorldMapper-rnh4omg0m9j0 +:END: +OtherWorldMapper is a map creation software. It is always installed in +~~/.local/opt/OtherWorldMapper~. +#+begin_src conf-desktop :tangle ~/.local/share/applications/OWM.desktop +[Desktop Entry] +Version=1.0.4 +Name=OtherWorldMapper +Comment=OtherWorldMapper is a powerful yet intuitive fantasy map creation tool. +Exec=/usr/bin/prime-run /home/phundrak/.local/opt/OtherWorldMapper/OWM +Path=/home/phundrak/.local/opt/OtherWorldMapper +Icon=/home/phundrak/.local/opt/OtherWorldMapper/owm.ico +Terminal=false +Type=Application +Categories=Graphics +#+end_src + +** Wonderdraft +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-Wonderdraft-0qaa6qg0m9j0 +:END: +Wonderdraft is another map creation software. I install it in +~~/.local/opt/Wonderdraft~. +#+begin_src conf-desktop +[Desktop Entry] +Version=1.1.3.2 +Name=Wonderdraft +Comment=Wonderdraft is a powerful yet intuitive fantasy map creation tool. +Exec=/usr/bin/prime-run /home/phundrak/.local/opt/Wonderdraft/Wonderdraft.x86_64 +Path=/home/phundrak/.local/opt/Wonderdraft +Icon=/home/phundrak/.local/opt/Wonderdraft/Wonderdraft.png +Terminal=false +Type=Application +Categories=Graphics +#+end_src + +** YouTube ~.desktop~ files +:PROPERTIES: +:CUSTOM_ID: -desktop-files-for-custom-applications-YouTube-desktop-files-0pw918h0m9j0 +:END: +The first ~.desktop~ file related to YouTube is ~ytdl.desktop~ which runs +~ytdl~ defined in [[file:bin.org::#ytdl-a-youtube-dl-wrapper-03bd63e0][this document]]. +#+begin_src conf-desktop :tangle ~/.local/share/applications/ytdl.desktop +[Desktop Entry] +Version=0.3 +Name=YTDL +Comment=YouTube (and more) video downloader +Exec=/home/phundrak/.local/bin/rofi-ytdl +Path=/home/phundrak/.local/bin +Terminal=false +Type=Application +Categories=Network;Video +#+end_src + +There is also ~ytplay.desktop~ for ~ytplay~ defined in [[file:bin.org::#Media-youtube-dl-wrappers-ytplay-z6ka39h0m9j0][this document]]. +#+begin_src conf-desktop +[Desktop Entry] +Type=Application +Version=1.0 +Name=ytplay (YouTube in mpv) +Comment=Play YouTube videos in mpv +Exec=/home/phundrak/.local/bin/ytplay +Path=/home/phundrak/.local/bin +Terminal=false +Categories=Media +#+end_src diff --git a/org/config/index.org b/org/config/index.org index f89cc3a..9ad7295 100644 --- a/org/config/index.org +++ b/org/config/index.org @@ -92,213 +92,6 @@ My annotated polybar config can be found [[file:polybar.org][here]], if you wish do not use polybar anymore, and I will not update it until I may someday use it again. This was deprecated on August 22nd, 2020. -** Theme and graphical tweaks -:PROPERTIES: -:CUSTOM_ID: Features-Graphical_tweaks-9879f6b0 -:END: -*** GTK Settings -:PROPERTIES: -:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-752e9916 -:END: -**** GTK2 -:PROPERTIES: -:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-74c9de24 -:END: -***** General configuration -:PROPERTIES: -:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0 -:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-General_configuration-eb1f1f3c -:END: -This file is tangled at ~$HOME/.gtkrc-2.0~. This is an equivalent for the GTK3 -configuration file you will see below, and it shares most of its settings. -First, let’s select the Nordic theme for GTK2. Let’s also set the icon theme. -#+BEGIN_SRC conf-unix -# -*- mode: unix-config -*- -gtk-theme-name="Nordic" -gtk-icon-theme-name="Flat-Remix-Dark" -#+END_SRC - -#+BEGIN_SRC conf-unix -gtk-xft-antialias=1 -gtk-xft-hinting=1 -gtk-xft-hintstyle="hintslight" -#+END_SRC - -This changes the shortcuts in menu, let’s also make the menus snappier. -#+BEGIN_SRC conf-unix -gtk-can-change-accels=1 -gtk-menu-bar-popup-delay=0 -gtk-menu-popdown-delay=0 -gtk-menu-popup-delay=0 -#+END_SRC - -***** Filechooser -:PROPERTIES: -:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini -:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-Filechooser-389f040d -:END: -#+BEGIN_SRC conf-unix -[Filechooser Settings] -#+END_SRC - -The first option alows me to open the file chooser in the current working -directory: -#+BEGIN_SRC conf-unix -StartupMode=cwd -#+END_SRC - -Next, setting the location mode to ~path-bar~ will show the path as buttons that -can be clicked rather than the full path. -#+BEGIN_SRC conf-unix -LocationMode=path-bar -#+END_SRC - -With this configuration, by default we won’t see hidden files. -#+BEGIN_SRC conf-unix -ShowHidden=true -#+END_SRC - -And we'll also see the size of the visible files. -#+BEGIN_SRC conf-unix -ShowSizeColumn=true -#+END_SRC - -Now, let’s choose the geometry of our file picker. These two first lines set -where the file picker appears: -#+BEGIN_SRC conf-unix -GeometryX=566 -GeometryY=202 -#+END_SRC - -And these two describe the size of the window: -#+BEGIN_SRC conf-unix -GeometryWidth=800 -GeometryHeight=400 -#+END_SRC - -With these two lines, we set how our files are sorted: by name, and in the -ascending order. -#+BEGIN_SRC conf-unix -SortColumn=name -SortOrder=ascending -#+END_SRC - -Our default view mode is a list of files: -#+BEGIN_SRC conf-unix -ViewMode=list-view -#+END_SRC - -And finally, setting our icon view scale to ~-1~ sets the icon view to the max -size. -#+BEGIN_SRC conf-unix -IconViewScale=-1 -#+END_SRC - -**** GTK3 -:PROPERTIES: -:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini -:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK3-3d6cba86 -:END: -The following file helps me choosing the aspect of various GTK+ 3 software, -including their theme and icons. First, let’s declare the header: -#+BEGIN_SRC conf-unix -[Settings] -#+END_SRC - -Now, let’s hint to GTK that I prefer dark themes. This can have an influence -also on some websites that can detect this preference and therefore set their -own theme to dark by themselves. -#+BEGIN_SRC conf-unix -gtk-application-prefer-dark-theme = true -#+END_SRC - -Next, the icon theme is the Flat Remix Dark icon theme: -#+BEGIN_SRC conf-unix -gtk-icon-theme-name = Flat-Remix-Dark -#+END_SRC - -Now, the general theme for GTK3 is Nordic. -#+BEGIN_SRC conf-unix -gtk-theme-name = Nordic -#+END_SRC - -#+BEGIN_SRC conf-unix -gtk-can-change-accels=1 -gtk-menu-bar-popup-delay=0 -gtk-menu-popdown-delay=0 -gtk-menu-popup-delay=0 -#+END_SRC - -#+BEGIN_SRC conf-unix -gtk-xft-antialias=1 -gtk-xft-hinting=1 -gtk-xft-hintstyle=hintslight -# gtk-xft-rgba=rgb -#+END_SRC - -Since window decorations are handled by my WMs, I will leave this variable -empty. -#+BEGIN_SRC conf-unix -gtk-decoration-layout= -#+END_SRC - -*** Picom (Compton) -:PROPERTIES: -:CUSTOM_ID: Features-Graphical_tweaks-Picom-b5b9a4dd -:END: -Picom is a standalone compositor for Xorg, and the successor to -Compton, itself successor to xcompmgr-dana, itself a fork of xcompmgr. -You can find my Picom configuration [[file:picom.org][here]]. - -*** Xresources -:PROPERTIES: -:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code -:CUSTOM_ID: Features-Graphical_tweaks-Xresources-8b622de1 -:END: -The main body in my Xresources declaration is the declaration of my -color theme. It is based on the [[https://www.nordtheme.com/][Nord]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/][Git repository]]. -#+BEGIN_SRC conf -#define nord0 #2E3440 -#define nord1 #3B4252 -#define nord2 #434C5E -#define nord3 #4C566A -#define nord4 #D8DEE9 -#define nord5 #E5E9F0 -#define nord6 #ECEFF4 -#define nord7 #8FBCBB -#define nord8 #88C0D0 -#define nord9 #81A1C1 -#define nord10 #5E81AC -#define nord11 #BF616A -#define nord12 #D08770 -#define nord13 #EBCB8B -#define nord14 #A3BE8C -#define nord15 #B48EAD - -,*.foreground: nord4 -,*.background: nord0 -,*.cursorColor: nord4 -,*fading: 35 -,*fadeColor: nord3 - -,*.color0: nord1 -,*.color1: nord11 -,*.color2: nord14 -,*.color3: nord13 -,*.color4: nord9 -,*.color5: nord15 -,*.color6: nord8 -,*.color7: nord5 -,*.color8: nord3 -,*.color9: nord11 -,*.color10: nord14 -,*.color11: nord13 -,*.color12: nord9 -,*.color13: nord15 -,*.color14: nord7 -,*.color15: nord6 -#+END_SRC - ** Text and source code editing :PROPERTIES: :CUSTOM_ID: Features-Text_and_source_code_editing-63cc66d5 @@ -368,19 +161,6 @@ You can find my tmux configuration in [[file:tmux.org][tmux.org]]. It depends on :PROPERTIES: :CUSTOM_ID: Features-And_some_minor_configuration_files-d5cec319 :END: -*** Email signature -:PROPERTIES: -:HEADER-ARGS: :mkdirp yes :tangle ~/.signature -:CUSTOM_ID: Features-And_some_minor_configuration_files-Email_signature-8c5f2218 -:END: -This file gets inserted automatically at the end of my emails. -#+BEGIN_SRC text -Lucien “Phundrak” Cartier-Tilet -https://phundrak.com (Français) -https://phundrak.com/en (English) -Sent from GNU/Emacs -#+END_SRC - *** Global gitignore :PROPERTIES: :HEADER-ARGS: :mkdirp yes :tangle ~/.gitignore_global