From bb998a87858b033d58f5fca059a0b7f9d65eab8b Mon Sep 17 00:00:00 2001 From: Hugo Holgersson Date: Tue, 16 Aug 2022 17:10:17 +0200 Subject: [PATCH 1/8] Docs and build fixes to run Diffuse on macOS Here we strip away Linux-only stuff so devs can create a local "Mac build". There might be other Linux-only stuff that are not needed on Mac still. Follow-ups are welcome. --- data/meson.build | 52 +++++++++++++++-------------- docs/developers/developers-setup.md | 18 ++++++++-- meson.build | 4 ++- 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/data/meson.build b/data/meson.build index f704ec1..52ed78a 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,34 +1,36 @@ pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name()) -desktop_file = i18n.merge_file( - input: 'io.github.mightycreak.Diffuse.desktop.in', - output: 'io.github.mightycreak.Diffuse.desktop', - type: 'desktop', - po_dir: '../po', - install: true, - install_dir: join_paths(get_option('datadir'), 'applications') -) - -desktop_utils = find_program('desktop-file-validate', required: false) -if desktop_utils.found() - test('Validate desktop file', desktop_utils, - args: [desktop_file] +if build_machine.system() == 'linux' + desktop_file = i18n.merge_file( + input: 'io.github.mightycreak.Diffuse.desktop.in', + output: 'io.github.mightycreak.Diffuse.desktop', + type: 'desktop', + po_dir: '../po', + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') ) -endif -appstream_file = i18n.merge_file( - input: 'io.github.mightycreak.Diffuse.appdata.xml.in', - output: 'io.github.mightycreak.Diffuse.appdata.xml', - po_dir: '../po', - install: true, - install_dir: join_paths(get_option('datadir'), 'appdata') -) + desktop_utils = find_program('desktop-file-validate', required: false) + if desktop_utils.found() + test('Validate desktop file', desktop_utils, + args: [desktop_file] + ) + endif -appstream_util = find_program('appstream-util', required: false) -if appstream_util.found() - test('Validate appstream file', appstream_util, - args: ['validate', appstream_file] + appstream_file = i18n.merge_file( + input: 'io.github.mightycreak.Diffuse.appdata.xml.in', + output: 'io.github.mightycreak.Diffuse.appdata.xml', + po_dir: '../po', + install: true, + install_dir: join_paths(get_option('datadir'), 'appdata') ) + + appstream_util = find_program('appstream-util', required: false) + if appstream_util.found() + test('Validate appstream file', appstream_util, + args: ['validate', appstream_file] + ) + endif endif # Diffuse config file diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index ad4ea7f..ef09447 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -8,7 +8,7 @@ Diffuse depends on these projects: * PyPi * Cairo and GObject Introspection development headers * Meson -* Flatpak and Flatpak builder +* Flatpak and Flatpak builder (Linux only) ### Install the distribution dependencies @@ -35,6 +35,20 @@ sudo dnf install python-pip cairo-devel cairo-gobject-devel meson flatpak flatpa _Note: Tested on Fedora 34_ +
+ Mac OS + +On Mac, all deps can be fetched using [Homebrew](https://docs.brew.sh/). + +```sh +brew install meson python3 py3cairo pygobject3 gtk+3 +``` + +_Note: Tested on macOS 12.5 (Monterey)_ + +You don't need to use `pip` because the above `brew` command installs all dependencies. +
+ ### Install the project dependencies To install the requirements just to execute the binary, run: @@ -72,7 +86,7 @@ To uninstall Diffuse: flatpak remove io.github.mightycreak.Diffuse ``` -### Build, test and install using Meson +## Build, test and install using Meson on Linux and Mac OS Diffuse build system is meson. diff --git a/meson.build b/meson.build index 05a2205..3d3d279 100644 --- a/meson.build +++ b/meson.build @@ -10,4 +10,6 @@ subdir('data') subdir('src') subdir('po') -meson.add_install_script('build-aux/meson/postinstall.py') +if build_machine.system() == 'linux' + meson.add_install_script('build-aux/meson/postinstall.py') +endif From 9a7ced4bc47cb28737c81cdf6308d4d3df274cb1 Mon Sep 17 00:00:00 2001 From: Hugo Holgersson Date: Wed, 17 Aug 2022 09:42:48 +0200 Subject: [PATCH 2/8] Build logic for installing Diffuse as a native macOS app Tested on macOS 12.5: brew install meson python3 py3cairo pygobject3 gtk+3 meson setup build cd build meson compile meson test meson install After `meson install`, `diffuse` can be used to launch a native Mac app that is installed into /Applications/Diffuse.app. These steps could be put into a Homebrew formula, see https://docs.brew.sh/Formula-Cookbook, as a way to distribute Diffuse on macOS. --- docs/developers/developers-setup.md | 19 ++++++++++++ .../Contents/Resources/diffuse.icns | Bin 0 -> 140997 bytes src/diffuse/mac-os-app/Info.plist.in | 22 +++++++++++++ src/diffuse/mac-os-app/diffuse-mac.in | 14 +++++++++ src/diffuse/mac-os-app/mac_launcher.sh.in | 7 +++++ src/diffuse/meson.build | 29 +++++++++++++++++- utils/makemacicon.sh | 20 ++++++++++++ 7 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 src/diffuse/mac-os-app/Diffuse.app/Contents/Resources/diffuse.icns create mode 100755 src/diffuse/mac-os-app/Info.plist.in create mode 100755 src/diffuse/mac-os-app/diffuse-mac.in create mode 100755 src/diffuse/mac-os-app/mac_launcher.sh.in create mode 100755 utils/makemacicon.sh diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index ef09447..4b3b928 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -128,6 +128,25 @@ sudo rm -v /usr/local/share/locale/*/LC_MESSAGES/diffuse.mo Meson allows to change the default installation directories, see [command-line documentation](https://mesonbuild.com/Commands.html#configure). +## Setup on Mac OS + +Building on Mac OS is similar to building on Linux. To recap, these are +the steps needed to build and install Diffuse manually: + +```brew install meson python3 py3cairo pygobject3 gtk+3 + meson setup build + cd build + meson compile + meson test + meson install +``` + +After `meson install`, the `diffuse` command can be used to launch Diffuse +as a native Mac app that is installed into `/Applications/Diffuse.app`. + +The `diffuse` command is compatible with git. To use Diffuse as git's +`git difftool` run `git config --global diff.tool diffuse` + ## Setup on Windows _Note:_ The Windows port is not maintained and would need some love. diff --git a/src/diffuse/mac-os-app/Diffuse.app/Contents/Resources/diffuse.icns b/src/diffuse/mac-os-app/Diffuse.app/Contents/Resources/diffuse.icns new file mode 100644 index 0000000000000000000000000000000000000000..03b345c6c3aaa9da9504967979cbd6cfcec31f1b GIT binary patch literal 140997 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�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
    {9)`fjCc4xOMK0 zXXONgq|wKm$E3il!0)c~ZevlOo+^i%`>FvS(S__0IsJp(ynV&Es_?twzaIE+kM5oq zS8rI|xLu81T$}NJzHF0tM=((JiP&U!=CgaxLYvFnNiP@tTDTpvzb)SHjIJN!!@Z(b zvekvHcP^I& zN!F*~RCMMeg?4M6Sj7?2JdKba!eK1YUpnGk3^;kiPLsxHgtqN|1sG(EHtQJYkOuzA zVp{BfFzx1{k7N65z{N$NLSbrYfa<0z<5ROs-?XrCWJi9qTBYvi%bPbb+^4-y2qZkT zi3j!r69zMD2WQ;+cmns2r=L2D`JL{K^2t`^>UYo?JKzCZF`XdM7o_sTFybkzMq|ar zmNOi{aw~Wg+4$D!SIwnp(19zdx;Z z^GCKsgNL7=pQ)Q$sg191=~vAU7<{;fuPr-_i769_T%|+AA-DC?ps&CaZgYIWq{r*c z%`4dro4#nb4qTf1J)BXu6$2+8KiKgtZ*@E;(kxQF0+mM2x+Gt!cM%j_jW^hv7%DLs zpYzrYo_hJxbKv;+_{ZVViOR{zQCwU<^#gGsp~K&UgQ)Ab+08fmvlqLPg!jVTDIs#; zQc)Pi|9|=aMezSE76ff!UIu!ystxT#h-m@fM?qFqrsA<_u$={;FaTgVNoziRi~=A^ z%V9UrO)b@xup7vdVh8{%MchCZHY09;#SkFn=Kq~9aFTQboP+=nx081_kP|l)fC4Bl zFHR2kcQ)5odb?U1=YDkeu5N7Y9vq!sfQcZ!I{z<-teYO_?)|-s*oXc(y|@kmDE|Q# z)=iakqxSc=#`pIRZ$Z+3fK7E%1Ec%m7W%ySUm#^z=_l0E($UR$X|czP;P+LZ`UVDve~nMh%z;?} z!G&9J5(NEz{yRaCB5}k+Qni)c`T1!VaoI=G0SAXi$Mbqh$|_*U^J*4GCPA6Ojg9Sf zb8Z%P_JE_~lamo?0YMNvJ1t{oWMO4-EK^7QoNL+c@Q1?CczmNA~yjHti5xFz#3Tds`s@nix+$VjI5mfs>ts zLv{+Whq-0V#l_7Xw7V7pU^$C&yV@W1(wwQ>PM|FduaB9;L6m$qit#W*}t~-yoQvWgp|)cP@kP z{8z})zRt<@_0_TU^}XAy5d8z}YMi(g0%9Gux&OBiHaFHfvtnYh+j_cMzdH&X)fRr1T9>{xv?nf72BaW^3t{URKrB)Bj^=WNhMALLfML3-&~W+rH@kcY+|< zLI^=ph56+lKl&VQDgSC~XJ>a(_ixJYme5ku2udQy$5FG!Tp+7`Ha54mdL{p&{MKeR z4K*FLFmh^PcGCQo^8RZe6}lvEDZjD4mdAAWF8!mfxyh+nBM{{EURhmR>$s)-^77JB zu>eTM@@)9_<-@PK6rHfhw*>*wl-E5yE~d2LB@A4t!`}Z{rNBB{|nYm_jPuE z4Rdmi==?9^{{z0Sohs~n=ip$g=iu<+KaBqm_@#ELuf)N@hK3m702%ln#{UN_s!dli zaj>Ps(gQ(DB~U`3mi-6(<|Zv+XF~&!F*9@6+W!muo@*!!f_97m1s4~eogE00Dk&+- z%gf2iJ`sQT00fO4>{&3h!D!9@Z&1t9!NHD^2n4-ef$#ihNRjNm&U6O{dlLu8Pq$h5 zCny^;1qz|*(nNiyH*#3QJ2-H!&cn(EaZOL6q?k*rW_G9&&QZ;`bg12y4c_ zO?Vd}BPn%D&7fy!091fgMpf0`P5ic!SN8Mw4{#Ovi}AibPapsmfGw%-Y;XS<1bLLb zK;?B1xn;bkhr2Q^1cJk6Zf9lf_y7cX6<)ZxyW5I_pp%oMqYmFaUY>gfW+pZkVjy_$ zse_}VlNrc(HH0;hl_noA4?B;xo|&B(ZS;Z9)ijYSf2zCtK zr^+fS%ECchkSCy7V`st74*>9zNOjexc-U0fpdE&%ATOf{Ug>YY;N&*|aQF2+1TPSG z&>{mWe%##v|B7XYBS5C95ZA-BKfqWu@8&xQV< z``ZW0!_5DHDZsv+p{k3u{oKIOaFopGFLCE=xfy#QZb`Xz7u{yPTEs1bD^#E+8Rc&}qo*8w5jvASh%i3eTD{YM~sjbr0NiMXRhAqxRAiDg7P z@h2|*UHp7~$*^2sTB<9U4#`B%MZl}O`Aj3W_7z=2OKMn6qL|0JkK$8t z(+%NtHyo=8h&+yxof9z~^ejgeST4B2_u91{?uA1GySn#;{r>FpmOEe>MBmk)%j;{m z@%kRjv{O&!Jwc=5skWrpurs*Qh7UuH#DIX^2EKXX7(p&L!m2NDYijzl|S19St;H zJW${c6zwo7{^G?mR(}NicupEan2fE`T_XEyzWupK#{1lkJ5lJ^0}WisoD*nKSFF)D zNy$=bzfcIlvzJd51NtJWfy_oZjA*zZJl7YGs_!g!6=yTT(yA>*hQU-gu20!tZj zcD>R?C2Dt5S;i|M>6ww=?6FdeMklVf&D!TKgymEv+oZYGXu=HZAn8rCYj6`e{sthH zI9VZmDS^8rC#DMGeUdfK7x<#GPK$^2#ZGtr`pg-&j7I0)hvKuDnRT2-3YRAgDPcbw zh~ec%Id8z{FI>Whs3^ikC^}{hPTtZe1u^HOJ-Jw&Eiexis)py?$9cxF!c*KAQa^?d zb6||Oq+D=?23c+BF7x<^6R78fXbPfpzU53qKDL9J#%jJXKfWkQWPGEGU&wXm5dHD# zlt=&uco4lq_Z&2q?u1s?ht01&#b_||)B z$Xu6{=#ensVXjV0?V5BSuXa+RK}+D$79cI?J7Dx)YcAaE7BL#JGMr)21c&? zxYA@PBBXbpXz*2kvmxtzq}zGu7(^G9W-gTc*qkG-0*(n|5e%{~(SO|K@3}7dHKM1d zu@KUC$MGe@bz%~Z?#*(V?AFz@n4JfGVUE2rMs*SM+h3{i7}(-col~e~ec|F4Ggi1w zUtz`WEJwua;V;X-$7MV6OlI>JR98ph-goxzNpKKs?fm-uq+UdenW?VY_i20RY6*2Q z{N3`#UFu{lY>Xc)gI7{OfIjDo@R7k0%J%j;@x}3;$@Q++9i4)fCup=YGLNJ$m4_?l zKQ4Z5HdBJ$2dWi5H$1Y<<8U05xF?lQh4;{Vo6azA>nSqgf%^}^Ckh_(Yft&4#*-db zF{e+A>Ba8%+^y*RWB8Dp$+$V8^D$%ik5{vns*4{uPgjD544}4lc31m7f`2rh#3JhJ z4r>fWRX=w0Uk@W)*!!&MFU)2RuI}URa zpMni4ubHK=JjKwpz`zZ1q5fzUXqQp)@Amxa&xzHan@rt zbF;9u1OL-z_Hc34Wp**Qx3chXCk7y4xh8}Js#;1`K30~}|MSogCYH9Fi;D*WQjCL3 zPC-dU`;6Jy)6sDR51)XL(u_*jadh88LJ7$zx#BRn=1aD+8EBRLmR#A_~eHS_WpeuCIba!y{wf j#3!Uw)ir% + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + mac_launcher.sh + CFBundleIconFile + diffuse.icns + CFBundleIdentifier + io.github.mightycreak.Diffuse + CFBundleName + Diffuse + CFBundleShortVersionString + @VERSION@ + CFBundlePackageType + APPL + NSAppleScriptEnabled + NO + + diff --git a/src/diffuse/mac-os-app/diffuse-mac.in b/src/diffuse/mac-os-app/diffuse-mac.in new file mode 100755 index 0000000..e4bb412 --- /dev/null +++ b/src/diffuse/mac-os-app/diffuse-mac.in @@ -0,0 +1,14 @@ +#!/bin/bash +# +# This is the command-line entry point on Mac. +# +# We want to use Mac's `open` command for mainly two reasons; +# a) open lets us choose our own icon. +# b) open puts the app on top of the other windows, including the terminal we ran this from. +# +# --new lets us open multiple windows. +# --wait-apps lets Diffuse be a "git difftool", letting Diffuse run before git deletes its tmp files. +# +# We pass "pwd" because Mac's `open` command launches processes at '/'. +# "printf %q" escapes spaces and other characters so the complete dir is passed as one. +open /Applications/Diffuse.app --new --wait-apps --args $(printf %q "$(pwd)") $@ diff --git a/src/diffuse/mac-os-app/mac_launcher.sh.in b/src/diffuse/mac-os-app/mac_launcher.sh.in new file mode 100755 index 0000000..857811f --- /dev/null +++ b/src/diffuse/mac-os-app/mac_launcher.sh.in @@ -0,0 +1,7 @@ +#!/bin/bash + +# Mac's `open` command resets working dir. This extra script only +# does `cd` back to the dir from which `diffuse` was launched to +# allow Python to pick up any relative paths given by `git difftool`. +cd $1 +@BINDIR@/diffuse_impl ${@:2} diff --git a/src/diffuse/meson.build b/src/diffuse/meson.build index 6b27994..bb02d4c 100644 --- a/src/diffuse/meson.build +++ b/src/diffuse/meson.build @@ -9,15 +9,42 @@ conf.set('VERSION', meson.project_version()) conf.set('PKGDATADIR', pkgdatadir) conf.set('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) conf.set('SYSCONFIGDIR', join_paths(get_option('prefix'), get_option('sysconfdir'))) +conf.set('BINDIR', join_paths(get_option('prefix'), get_option('bindir'))) configure_file( input: 'diffuse.in', - output: 'diffuse', + output: build_machine.system() == 'darwin' ? 'diffuse_impl' : 'diffuse', configuration: conf, install: true, install_dir: get_option('bindir') ) +if build_machine.system() == 'darwin' + install_subdir('mac-os-app/Diffuse.app', install_dir: '/Applications', strip_directory: false) + + configure_file( + input: 'mac-os-app/diffuse-mac.in', + output: 'diffuse', + configuration: conf, + install: true, + install_dir: get_option('bindir') + ) + configure_file( + input: 'mac-os-app/mac_launcher.sh.in', + output: 'mac_launcher.sh', + configuration: conf, + install: true, + install_dir: '/Applications/Diffuse.app/Contents/MacOS' + ) + configure_file( + input: 'mac-os-app/Info.plist.in', + output: 'Info.plist', + configuration: conf, + install: true, + install_dir: '/Applications/Diffuse.app/Contents' + ) +endif + diffuse_sources = [ '__init__.py', 'constants.py', diff --git a/utils/makemacicon.sh b/utils/makemacicon.sh new file mode 100755 index 0000000..35c5ac4 --- /dev/null +++ b/utils/makemacicon.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# Use this tool if you need to re-create +# Diffuse.app/Contents/Resources/diffuse.icns +# in case the icon changes (unlikely). + +sizes=(16 32 64 128 256 512) +for s in "${sizes[@]}"; do + echo $s + rsvg-convert -h $s "$1" > "icon_${s}x$s.png" +done + +cp 'icon_32x32.png' 'icon_16x16@2x.png' +cp 'icon_64x64.png' 'icon_32x32@2x.png' +cp 'icon_256x256.png' 'icon_128x128@2x.png' +cp 'icon_512x512.png' 'icon_256x256@2x.png' + +mkdir icon.iconset +mv icon_*x*.png icon.iconset +iconutil -c icns icon.iconset From c0b09ae95a218d912dd0ed8bd5c052bb5680256e Mon Sep 17 00:00:00 2001 From: Hugo Holgersson Date: Thu, 18 Aug 2022 13:59:42 +0200 Subject: [PATCH 3/8] Use the Command key (not Ctrl) on macOS For example, on macOS, Cmd+F opens Find. Ctrl+F is kept on other OSes. The same goes for other standard key commands, like Cmd+S etc. --- src/diffuse/resources.py | 94 +++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/src/diffuse/resources.py b/src/diffuse/resources.py index 302c385..a73761c 100644 --- a/src/diffuse/resources.py +++ b/src/diffuse/resources.py @@ -26,6 +26,7 @@ import glob import os +import platform import re import shlex @@ -43,36 +44,37 @@ from gi.repository import Gdk # type: ignore # noqa: E402 class Resources: def __init__(self): # default keybindings + defaultModKey = 'Cmd+' if platform.system() == 'Darwin' else 'Ctrl+' self.keybindings = {} self.keybindings_lookup = {} - self.setKeyBinding('menu', 'open_file', 'Ctrl+o') - self.setKeyBinding('menu', 'open_file_in_new_tab', 'Ctrl+t') + self.setKeyBinding('menu', 'open_file', defaultModKey + 'o') + self.setKeyBinding('menu', 'open_file_in_new_tab', defaultModKey + 't') self.setKeyBinding('menu', 'open_modified_files', 'Shift+Ctrl+O') self.setKeyBinding('menu', 'open_commit', 'Shift+Ctrl+T') self.setKeyBinding('menu', 'reload_file', 'Shift+Ctrl+R') - self.setKeyBinding('menu', 'save_file', 'Ctrl+s') - self.setKeyBinding('menu', 'save_file_as', 'Shift+Ctrl+A') - self.setKeyBinding('menu', 'save_all', 'Shift+Ctrl+S') + self.setKeyBinding('menu', 'save_file', defaultModKey + 's') + self.setKeyBinding('menu', 'save_file_as', defaultModKey + 'Shift+A') + self.setKeyBinding('menu', 'save_all', defaultModKey + 'Shift+S') self.setKeyBinding('menu', 'new_2_way_file_merge', 'Ctrl+2') self.setKeyBinding('menu', 'new_3_way_file_merge', 'Ctrl+3') self.setKeyBinding('menu', 'new_n_way_file_merge', 'Ctrl+4') - self.setKeyBinding('menu', 'close_tab', 'Ctrl+w') - self.setKeyBinding('menu', 'undo_close_tab', 'Shift+Ctrl+W') - self.setKeyBinding('menu', 'quit', 'Ctrl+q') - self.setKeyBinding('menu', 'undo', 'Ctrl+z') - self.setKeyBinding('menu', 'redo', 'Shift+Ctrl+Z') - self.setKeyBinding('menu', 'cut', 'Ctrl+x') - self.setKeyBinding('menu', 'copy', 'Ctrl+c') - self.setKeyBinding('menu', 'paste', 'Ctrl+v') - self.setKeyBinding('menu', 'select_all', 'Ctrl+a') - self.setKeyBinding('menu', 'clear_edits', 'Ctrl+r') - self.setKeyBinding('menu', 'dismiss_all_edits', 'Ctrl+d') - self.setKeyBinding('menu', 'find', 'Ctrl+f') - self.setKeyBinding('menu', 'find_next', 'Ctrl+g') - self.setKeyBinding('menu', 'find_previous', 'Shift+Ctrl+G') - self.setKeyBinding('menu', 'go_to_line', 'Shift+Ctrl+L') - self.setKeyBinding('menu', 'realign_all', 'Ctrl+l') - self.setKeyBinding('menu', 'isolate', 'Ctrl+i') + self.setKeyBinding('menu', 'close_tab', defaultModKey + 'w') + self.setKeyBinding('menu', 'undo_close_tab', defaultModKey + 'Shift+W') + self.setKeyBinding('menu', 'quit', defaultModKey + 'q') + self.setKeyBinding('menu', 'undo', defaultModKey + 'z') + self.setKeyBinding('menu', 'redo', defaultModKey + 'Shift+Z') + self.setKeyBinding('menu', 'cut', defaultModKey + 'x') + self.setKeyBinding('menu', 'copy', defaultModKey + 'c') + self.setKeyBinding('menu', 'paste', defaultModKey + 'v') + self.setKeyBinding('menu', 'select_all', defaultModKey + 'a') + self.setKeyBinding('menu', 'clear_edits', defaultModKey + 'r') + self.setKeyBinding('menu', 'dismiss_all_edits', defaultModKey + 'd') + self.setKeyBinding('menu', 'find', defaultModKey + 'f') + self.setKeyBinding('menu', 'find_next', defaultModKey + 'g') + self.setKeyBinding('menu', 'find_previous', defaultModKey + 'Shift+G') + self.setKeyBinding('menu', 'go_to_line', defaultModKey + 'Shift+l') + self.setKeyBinding('menu', 'realign_all', defaultModKey + 'l') + self.setKeyBinding('menu', 'isolate', defaultModKey + 'i') self.setKeyBinding('menu', 'first_difference', 'Shift+Ctrl+Up') self.setKeyBinding('menu', 'previous_difference', 'Ctrl+Up') self.setKeyBinding('menu', 'next_difference', 'Ctrl+Down') @@ -83,24 +85,24 @@ class Resources: self.setKeyBinding('menu', 'last_tab', 'Shift+Ctrl+Page_Down') self.setKeyBinding('menu', 'shift_pane_right', 'Shift+Ctrl+parenright') self.setKeyBinding('menu', 'shift_pane_left', 'Shift+Ctrl+parenleft') - self.setKeyBinding('menu', 'convert_to_upper_case', 'Ctrl+u') - self.setKeyBinding('menu', 'convert_to_lower_case', 'Shift+Ctrl+U') - self.setKeyBinding('menu', 'sort_lines_in_ascending_order', 'Ctrl+y') - self.setKeyBinding('menu', 'sort_lines_in_descending_order', 'Shift+Ctrl+Y') - self.setKeyBinding('menu', 'remove_trailing_white_space', 'Ctrl+k') - self.setKeyBinding('menu', 'convert_tabs_to_spaces', 'Ctrl+b') + self.setKeyBinding('menu', 'convert_to_upper_case', defaultModKey + 'u') + self.setKeyBinding('menu', 'convert_to_lower_case', defaultModKey + 'Shift+U') + self.setKeyBinding('menu', 'sort_lines_in_ascending_order', defaultModKey + 'y') + self.setKeyBinding('menu', 'sort_lines_in_descending_order', defaultModKey + 'Shift+Y') + self.setKeyBinding('menu', 'remove_trailing_white_space', defaultModKey + 'k') + self.setKeyBinding('menu', 'convert_tabs_to_spaces', defaultModKey + 'b') self.setKeyBinding('menu', 'convert_leading_spaces_to_tabs', 'Shift+Ctrl+B') - self.setKeyBinding('menu', 'increase_indenting', 'Shift+Ctrl+greater') - self.setKeyBinding('menu', 'decrease_indenting', 'Shift+Ctrl+less') - self.setKeyBinding('menu', 'convert_to_dos', 'Shift+Ctrl+E') - self.setKeyBinding('menu', 'convert_to_mac', 'Shift+Ctrl+C') - self.setKeyBinding('menu', 'convert_to_unix', 'Ctrl+e') - self.setKeyBinding('menu', 'copy_selection_right', 'Shift+Ctrl+Right') - self.setKeyBinding('menu', 'copy_selection_left', 'Shift+Ctrl+Left') - self.setKeyBinding('menu', 'copy_left_into_selection', 'Ctrl+Right') - self.setKeyBinding('menu', 'copy_right_into_selection', 'Ctrl+Left') - self.setKeyBinding('menu', 'merge_from_left_then_right', 'Ctrl+m') - self.setKeyBinding('menu', 'merge_from_right_then_left', 'Shift+Ctrl+M') + self.setKeyBinding('menu', 'increase_indenting', defaultModKey + 'Shift+greater') + self.setKeyBinding('menu', 'decrease_indenting', defaultModKey + 'Shift+less') + self.setKeyBinding('menu', 'convert_to_dos', defaultModKey + 'Shift+E') + self.setKeyBinding('menu', 'convert_to_mac', defaultModKey + 'Shift+C') + self.setKeyBinding('menu', 'convert_to_unix', defaultModKey + 'e') + self.setKeyBinding('menu', 'copy_selection_right', defaultModKey + 'Shift+Right') + self.setKeyBinding('menu', 'copy_selection_left', defaultModKey + 'Shift+Left') + self.setKeyBinding('menu', 'copy_left_into_selection', defaultModKey + 'Right') + self.setKeyBinding('menu', 'copy_right_into_selection', defaultModKey + 'Left') + self.setKeyBinding('menu', 'merge_from_left_then_right', defaultModKey + 'm') + self.setKeyBinding('menu', 'merge_from_right_then_left', defaultModKey + 'Shift+M') self.setKeyBinding('menu', 'help_contents', 'F1') self.setKeyBinding('line_mode', 'enter_align_mode', 'space') self.setKeyBinding('line_mode', 'enter_character_mode', 'Return') @@ -126,13 +128,13 @@ class Resources: self.setKeyBinding('line_mode', 'right', 'l') self.setKeyBinding('line_mode', 'extend_right', 'Shift+Right') self.setKeyBinding('line_mode', 'page_up', 'Page_Up') - self.setKeyBinding('line_mode', 'page_up', 'Ctrl+u') + self.setKeyBinding('line_mode', 'page_up', defaultModKey + 'u') self.setKeyBinding('line_mode', 'extend_page_up', 'Shift+Page_Up') - self.setKeyBinding('line_mode', 'extend_page_up', 'Shift+Ctrl+U') + self.setKeyBinding('line_mode', 'extend_page_up', defaultModKey + 'Shift+U') self.setKeyBinding('line_mode', 'page_down', 'Page_Down') - self.setKeyBinding('line_mode', 'page_down', 'Ctrl+d') + self.setKeyBinding('line_mode', 'page_down', defaultModKey + 'd') self.setKeyBinding('line_mode', 'extend_page_down', 'Shift+Page_Down') - self.setKeyBinding('line_mode', 'extend_page_down', 'Shift+Ctrl+D') + self.setKeyBinding('line_mode', 'extend_page_down', defaultModKey + 'Shift+D') self.setKeyBinding('line_mode', 'delete_text', 'BackSpace') self.setKeyBinding('line_mode', 'delete_text', 'Delete') self.setKeyBinding('line_mode', 'delete_text', 'x') @@ -165,9 +167,9 @@ class Resources: self.setKeyBinding('align_mode', 'right', 'Right') self.setKeyBinding('align_mode', 'right', 'l') self.setKeyBinding('align_mode', 'page_up', 'Page_Up') - self.setKeyBinding('align_mode', 'page_up', 'Ctrl+u') + self.setKeyBinding('align_mode', 'page_up', defaultModKey + 'u') self.setKeyBinding('align_mode', 'page_down', 'Page_Down') - self.setKeyBinding('align_mode', 'page_down', 'Ctrl+d') + self.setKeyBinding('align_mode', 'page_down', defaultModKey + 'd') self.setKeyBinding('character_mode', 'enter_line_mode', 'Escape') # default colours @@ -232,6 +234,8 @@ class Resources: modifiers |= Gdk.ModifierType.SHIFT_MASK elif token == 'Ctrl': modifiers |= Gdk.ModifierType.CONTROL_MASK + elif token == 'Cmd': + modifiers |= Gdk.ModifierType.META_MASK elif token == 'Alt': modifiers |= Gdk.ModifierType.MOD1_MASK elif len(token) == 0 or token[0] == '_': From c4869e15cba81be77b3185cb603b3419a11962f5 Mon Sep 17 00:00:00 2001 From: Hugo Holgersson Date: Thu, 18 Aug 2022 20:48:04 +0200 Subject: [PATCH 4/8] Show SVG icon in "Help->About Diffuse..." on macOS GTK on Mac needs a helper lib to be able to draw .svg files. --- docs/developers/developers-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index 4b3b928..9813a3d 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -41,7 +41,7 @@ _Note: Tested on Fedora 34_ On Mac, all deps can be fetched using [Homebrew](https://docs.brew.sh/). ```sh -brew install meson python3 py3cairo pygobject3 gtk+3 +brew install meson python3 py3cairo pygobject3 gtk+3 librsvg ``` _Note: Tested on macOS 12.5 (Monterey)_ @@ -133,7 +133,7 @@ Meson allows to change the default installation directories, see Building on Mac OS is similar to building on Linux. To recap, these are the steps needed to build and install Diffuse manually: -```brew install meson python3 py3cairo pygobject3 gtk+3 +```brew install meson python3 py3cairo pygobject3 gtk+3 librsvg meson setup build cd build meson compile From e8a7abb679ce54a23b9e63400897b386bd1b631f Mon Sep 17 00:00:00 2001 From: Hugo Holgersson Date: Fri, 2 Sep 2022 14:27:42 +0200 Subject: [PATCH 5/8] Move the prebuilt macOS icon to data/icons --- .../Contents/Resources => data/icons}/diffuse.icns | Bin data/icons/meson.build | 4 ++++ src/diffuse/meson.build | 2 -- 3 files changed, 4 insertions(+), 2 deletions(-) rename {src/diffuse/mac-os-app/Diffuse.app/Contents/Resources => data/icons}/diffuse.icns (100%) diff --git a/src/diffuse/mac-os-app/Diffuse.app/Contents/Resources/diffuse.icns b/data/icons/diffuse.icns similarity index 100% rename from src/diffuse/mac-os-app/Diffuse.app/Contents/Resources/diffuse.icns rename to data/icons/diffuse.icns diff --git a/data/icons/meson.build b/data/icons/meson.build index 2e3a308..ae47ea8 100644 --- a/data/icons/meson.build +++ b/data/icons/meson.build @@ -11,3 +11,7 @@ install_data( join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) ) + +if build_machine.system() == 'darwin' + install_data('diffuse.icns', install_dir: '/Applications/Diffuse.app/Contents/Resources') +endif diff --git a/src/diffuse/meson.build b/src/diffuse/meson.build index bb02d4c..7ed885e 100644 --- a/src/diffuse/meson.build +++ b/src/diffuse/meson.build @@ -20,8 +20,6 @@ configure_file( ) if build_machine.system() == 'darwin' - install_subdir('mac-os-app/Diffuse.app', install_dir: '/Applications', strip_directory: false) - configure_file( input: 'mac-os-app/diffuse-mac.in', output: 'diffuse', From 6622792e718a7347622cbd5e20b24d28c351b298 Mon Sep 17 00:00:00 2001 From: Romain Failliot Date: Sun, 23 Oct 2022 16:32:04 -0400 Subject: [PATCH 6/8] Reword the documentation to take care of Mac OS too --- .markdownlint.json | 6 ++ docs/developers/developers-setup.md | 92 ++++++++++++++++++++--------- docs/developers/release-process.md | 6 +- docs/translators.md | 7 ++- docs/users.md | 9 +++ 5 files changed, 86 insertions(+), 34 deletions(-) create mode 100644 .markdownlint.json diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..8d91412 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,6 @@ +{ + "default": true, + "no-duplicate-heading": false, + "no-inline-html": false, + "no-emphasis-as-heading": false +} diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index 9813a3d..af78da6 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -63,34 +63,42 @@ For developer tools, run this one instead (it includes requirements.txt): pip install -r requirements.dev.txt ``` -## Setup on Linux +## Setup -### Build, test and install using Flatpak +### Setup on Linux using Flatpak -To install Diffuse locally: +#### Build, test and install + +To build, test and install Diffuse locally: ```sh flatpak install runtime/org.gnome.Sdk/$(uname -p)/42 flatpak-builder --user --install build-flatpak io.github.mightycreak.Diffuse.yml ``` +#### Run + To run Diffuse through Flatpak: ```sh flatpak run io.github.mightycreak.Diffuse ``` +#### Uninstall + To uninstall Diffuse: ```sh flatpak remove io.github.mightycreak.Diffuse ``` -## Build, test and install using Meson on Linux and Mac OS +### Setup on Linux using Meson -Diffuse build system is meson. +#### Build and test -To compile and test Diffuse: +Diffuse is using Meson as its build system. + +To build and test Diffuse: ```sh meson setup build @@ -99,55 +107,81 @@ meson compile meson test ``` +#### Install on system and run + To install Diffuse on your system (e.g. `/usr/local/`): ```sh meson install # requires admin privileges +``` -# Run Diffuse +To run Diffuse: + +```sh diffuse ``` -To install Diffuse on a custom directory (e.g. `~/bin/diffuse`): +#### Install in a custom directory and run + +Meson allows to change the default installation directories, see +[command-line documentation](https://mesonbuild.com/Commands.html#configure). + +To install Diffuse in a custom directory (e.g. `~/bin/diffuse`): ```sh meson install --destdir ~/bin/diffuse - -# Run Diffuse -cd ~/bin/diffuse/usr/local/bin -PYTHONPATH=$HOME/bin/diffuse/usr/local/share/diffuse ./diffuse ``` -To uninstall diffuse afterwards: +To run Diffuse: + +```sh +export PYTHONPATH=$HOME/bin/diffuse/usr/local/share/diffuse +cd ~/bin/diffuse/usr/local/bin +./diffuse +``` + +#### Uninstall + +To uninstall Diffuse afterwards: ```sh sudo ninja uninstall -C build sudo rm -v /usr/local/share/locale/*/LC_MESSAGES/diffuse.mo ``` -Meson allows to change the default installation directories, see -[command-line documentation](https://mesonbuild.com/Commands.html#configure). +### Setup on Mac OS -## Setup on Mac OS +#### Build and test -Building on Mac OS is similar to building on Linux. To recap, these are -the steps needed to build and install Diffuse manually: +Diffuse is using Meson as its build system. -```brew install meson python3 py3cairo pygobject3 gtk+3 librsvg - meson setup build - cd build - meson compile - meson test - meson install +To build and test Diffuse: + +```sh +meson setup build +cd build +meson compile +meson test ``` -After `meson install`, the `diffuse` command can be used to launch Diffuse -as a native Mac app that is installed into `/Applications/Diffuse.app`. +#### Install on system and run -The `diffuse` command is compatible with git. To use Diffuse as git's -`git difftool` run `git config --global diff.tool diffuse` +To install Diffuse on your system (e.g. `/usr/local/`): -## Setup on Windows +```sh +meson install # requires admin privileges +``` + +To run Diffuse: + +```sh +diffuse +``` + +_Note: The `diffuse` command can be used to launch Diffuse as a native Mac app_ +_that is installed into `/Applications/Diffuse.app`._ + +### Setup on Windows (deprecated) _Note:_ The Windows port is not maintained and would need some love. Contributions are very welcome! 😉 diff --git a/docs/developers/release-process.md b/docs/developers/release-process.md index b9a01f0..79ed8fc 100644 --- a/docs/developers/release-process.md +++ b/docs/developers/release-process.md @@ -19,16 +19,16 @@ few manual steps. - data/usr/share/gnome/help/diffuse/*/diffuse.xml - data/usr/share/omf/diffuse/diffuse-*.omf - utils/book2manual.xsl -3. Update CHANGELOG.md +4. Update CHANGELOG.md - Add new line under `## Unreleased` following this syntax: `## x.y.z - YYYY-MM-DD` - Copy the content of the changes for this release -4. Update AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in: +5. Update AppData release notes in data/io.github.mightycreak.Diffuse.appdata.xml.in: - Create a new `` tag under ``, fill the `version` and `date` attributes - Create a new `` tag under the new `` tag - Add one paragraph to sum the release in one sentence (e.g. highlights, ...) - Paste the changes from the changelog and adapt it to HTML -5. Create new branch and PR +6. Create new branch and PR ## Create new release on GitHub diff --git a/docs/translators.md b/docs/translators.md index ff986fa..ec3e222 100644 --- a/docs/translators.md +++ b/docs/translators.md @@ -70,6 +70,7 @@ Use `update-translations.py` to validate one or more PO files. Here is an example with `ja.po` and `ko.po`: Command-line: + ```sh ./update-translations.py --check-only ja.po ko.po ``` @@ -99,8 +100,10 @@ POSIX platforms. The conversion tools insert some English text that gets localized using search and replace. Manually add new search and replace rules to these files: - ../windows-installer/translations.txt - ../utils/translations.txt +```text +../windows-installer/translations.txt +../utils/translations.txt +``` The format of each line is: \:\:\ diff --git a/docs/users.md b/docs/users.md index 1c3fbe8..f858cc2 100644 --- a/docs/users.md +++ b/docs/users.md @@ -22,3 +22,12 @@ The Diffuse package statuses for every distributions can been seen on Huge thanks to [@bongochong](https://github.com/bongochong) for maintaining the Diffuse package on Fedora. + +## Integrate with Git + +Diffuse is compatible with `git difftool` command-line. To use Diffuse as Git +diff tool, run: + +```sh +git config --global diff.tool diffuse +``` From 1f937dc57e982cf35ed66360cf0294a9a430c4af Mon Sep 17 00:00:00 2001 From: Romain Failliot Date: Sun, 23 Oct 2022 16:37:25 -0400 Subject: [PATCH 7/8] Refine dev setup --- docs/developers/developers-setup.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index af78da6..7a30181 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -10,11 +10,12 @@ Diffuse depends on these projects: * Meson * Flatpak and Flatpak builder (Linux only) -### Install the distribution dependencies +## Install the dependencies -It's a bit difficult to get the command lines for all the distributions and -their releases, but it should be enough to find the packages on other -distributions. +### Install the system dependencies + +It's a bit difficult to get the command lines for all the systems, but these +examples should be enough to find the packages on most systems.
    Debian/Ubuntu From d94df84302fcc92fc6a2f64790c3dd8c117f8940 Mon Sep 17 00:00:00 2001 From: Romain Failliot Date: Sun, 23 Oct 2022 16:41:37 -0400 Subject: [PATCH 8/8] Refine dev setup --- docs/developers/developers-setup.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/developers/developers-setup.md b/docs/developers/developers-setup.md index 7a30181..104a59d 100644 --- a/docs/developers/developers-setup.md +++ b/docs/developers/developers-setup.md @@ -33,21 +33,19 @@ _Note: Tested on Debian 11 (Buster) and Ubuntu 20.04 (Focal)_ sudo dnf install python-pip cairo-devel cairo-gobject-devel meson flatpak flatpak-builder ``` -_Note: Tested on Fedora 34_ +_Note: Tested on Fedora 36_
    Mac OS -On Mac, all deps can be fetched using [Homebrew](https://docs.brew.sh/). +On Mac, all dependencies can be installed using [Homebrew](https://docs.brew.sh/): ```sh brew install meson python3 py3cairo pygobject3 gtk+3 librsvg ``` _Note: Tested on macOS 12.5 (Monterey)_ - -You don't need to use `pip` because the above `brew` command installs all dependencies.
    ### Install the project dependencies