diff options
Diffstat (limited to 'libre')
-rw-r--r-- | libre/min/PKGBUILD | 76 | ||||
-rw-r--r-- | libre/min/icon.patch | 12 | ||||
-rw-r--r-- | libre/min/min.desktop | 9 | ||||
-rw-r--r-- | libre/min/min.js | 29 | ||||
-rw-r--r-- | libre/min/remove_nonprivacy_options.patch | 107 |
5 files changed, 233 insertions, 0 deletions
diff --git a/libre/min/PKGBUILD b/libre/min/PKGBUILD new file mode 100644 index 000000000..164c56260 --- /dev/null +++ b/libre/min/PKGBUILD @@ -0,0 +1,76 @@ +# $Id: PKGBUILD 199506 2016-12-15 13:30:22Z tensor5 $ +# Maintainer (Arch): Nicola Squartini <tensor5@gmail.com> +# Maintainer: André Silva <emulatorman@parabola.nu> + +pkgname=min +pkgver=1.5.1 +pkgrel=1.parabola1 +pkgdesc='A smarter, faster web browser, without non-privacy search engines' +arch=('any') +url='https://minbrowser.github.io/min' +license=('Apache') +depends=('electron') +makedepends=('nodejs-grunt-cli' 'npm') +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/minbrowser/min/archive/v${pkgver}.tar.gz" + 'min.desktop' + 'min.js' + 'icon.patch' + 'remove_nonprivacy_options.patch') +sha256sums=('7ccaf8fbcc5b72093b4077b184fef68262b1a4d7d94c4b8cfae2a01b5bdefbd4' + 'a779a8daff1d684779ebc6d13ea4c2f09e838df018de41fa19fa3f25aa12e32f' + 'c22324184b72b3fad5a0aadb4e18182414e0294c5596c26426adc204fd473258' + 'f73d138d68f90e11a60128099b57eecb84a7d067e7f6883ff98924c5f4a61ea8' + '2bf4bc0e4eab3adaeca1e5c12f83340f4437024a5d15183304a729ba6cfd52a7') + +prepare() { + cd ${pkgname}-${pkgver} + + patch -Np1 -i "${srcdir}"/icon.patch + patch -Np1 -i "${srcdir}"/remove_nonprivacy_options.patch +} + +build() { + cd ${pkgname}-${pkgver} + + npm install grunt grunt-contrib-concat grunt-contrib-uglify + grunt + npm uninstall grunt grunt-contrib-concat grunt-contrib-uglify + + npm install --production +} + +package() { + cd ${pkgname}-${pkgver} + + appdir=/usr/lib/${pkgname} + + install -dm755 "${pkgdir}"${appdir} + cp -r * "${pkgdir}"${appdir} + + install -dm755 "${pkgdir}"/usr/share/icons/hicolor/256x256/apps + mv icons/icon256.png \ + "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/${pkgname}.png + + install -Dm755 "${srcdir}"/${pkgname}.js "${pkgdir}"/usr/bin/${pkgname} + install -Dm644 "${srcdir}"/${pkgname}.desktop \ + "${pkgdir}"/usr/share/applications/${pkgname}.desktop + + # Clean up + rm "${pkgdir}"${appdir}/dist/{build,webview}.js + rm -r "${pkgdir}"${appdir}/icons + rm -r "${pkgdir}"${appdir}/main + find "${pkgdir}"${appdir} \ + -name "package.json" \ + -exec sed -e "s|${srcdir}/${pkgname}-${pkgver}|${appdir}|" \ + -i {} \; \ + -or -name ".*" -prune -exec rm -r '{}' \; \ + -or -name "Gruntfile.js" -exec rm '{}' \; \ + -or -name "Makefile" -exec rm '{}' \; \ + -or -name "bower.json" -exec rm '{}' \; \ + -or -name "cmd.js" -exec rm '{}' \; \ + -or -name "coffee" -prune -exec rm -r '{}' \; \ + -or -name "example" -prune -exec rm -r '{}' \; \ + -or -name "gulpfile.js" -exec rm '{}' \; \ + -or -name "test" -prune -exec rm -r '{}' \; \ + -or -name "tests" -prune -exec rm -r '{}' \; +} diff --git a/libre/min/icon.patch b/libre/min/icon.patch new file mode 100644 index 000000000..5b85742fb --- /dev/null +++ b/libre/min/icon.patch @@ -0,0 +1,12 @@ +--- a/main/main.js ++++ b/main/main.js +@@ -78,8 +78,7 @@ + y: bounds.y, + minWidth: 320, + minHeight: 500, +- titleBarStyle: 'hidden-inset', +- icon: __dirname + '/icons/icon256.png' ++ titleBarStyle: 'hidden-inset' + }) + + // and load the index.html of the app. diff --git a/libre/min/min.desktop b/libre/min/min.desktop new file mode 100644 index 000000000..dbf9ca61f --- /dev/null +++ b/libre/min/min.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=Min +GenericName=Web Browser +Comment=A smarter, faster web browser +Icon=min +Exec=min +Categories=GTK;Network;WebBrowser; +StartupNotify=true diff --git a/libre/min/min.js b/libre/min/min.js new file mode 100644 index 000000000..e3bfeba0f --- /dev/null +++ b/libre/min/min.js @@ -0,0 +1,29 @@ +#!/usr/bin/electron + +const name = 'min'; + +const {app} = require('electron'); +const fs = require('fs'); +const path = require('path'); + +// Change command name. +const fd = fs.openSync('/proc/self/comm', fs.constants.O_WRONLY); +fs.writeSync(fd, name); +fs.closeSync(fd); + +// Remove first command line argument (/usr/bin/electron). +process.argv.splice(0, 1); + +// Set application paths. +const appPath = path.join(path.dirname(__dirname), 'lib', name); +const packageJson = require(path.join(appPath, 'package.json')); +const productName = packageJson.productName; +app.setAppPath(appPath); +app.setDesktopName(name + '.desktop'); +app.setName(productName); +app.setPath('userCache', path.join(app.getPath('cache'), productName)); +app.setPath('userData', path.join(app.getPath('appData'), productName)); +app.setVersion(packageJson.version); + +// Run the application. +require('module')._load(appPath, module, true); diff --git a/libre/min/remove_nonprivacy_options.patch b/libre/min/remove_nonprivacy_options.patch new file mode 100644 index 000000000..de34ccd69 --- /dev/null +++ b/libre/min/remove_nonprivacy_options.patch @@ -0,0 +1,107 @@ +diff --git a/js/searchbar/bangsPlugin.js b/js/searchbar/bangsPlugin.js +index 176c3c8f5..016c11229 100644 +--- a/js/searchbar/bangsPlugin.js ++++ b/js/searchbar/bangsPlugin.js +@@ -105,7 +105,18 @@ function showBangSearchResults (results, input, event, container) { + function getBangSearchResults (text, input, event, container) { + + // get results from DuckDuckGo if it is a search engine, and the current tab is not a private tab +- if (currentSearchEngine.name === 'DuckDuckGo' && !tabs.get(tabs.getSelected()).private) { ++ if (currentSearchEngine.name === 'DuckDuckGo HTML' && !tabs.get(tabs.getSelected()).private) { ++ fetch('https://ac.duckduckgo.com/ac/?t=min&q=' + encodeURIComponent(text), { ++ cache: 'force-cache' ++ }) ++ .then(function (response) { ++ return response.json() ++ }) ++ .then(function (results) { ++ // show the DuckDuckGo results, combined with the custom !bangs ++ showBangSearchResults(results.concat(searchCustomBangs(text)), input, event, container) ++ }) ++ } else if (currentSearchEngine.name === 'DuckDuckGo Lite' && !tabs.get(tabs.getSelected()).private) { + fetch('https://ac.duckduckgo.com/ac/?t=min&q=' + encodeURIComponent(text), { + cache: 'force-cache' + }) +diff --git a/js/searchbar/instantAnswerPlugin.js b/js/searchbar/instantAnswerPlugin.js +index 22ab0da84..ea385692d 100644 +--- a/js/searchbar/instantAnswerPlugin.js ++++ b/js/searchbar/instantAnswerPlugin.js +@@ -1,6 +1,8 @@ + function showSearchbarInstantAnswers (text, input, event, container) { + // only make requests to the DDG api if DDG is set as the search engine +- if (currentSearchEngine.name !== 'DuckDuckGo') { ++ if (currentSearchEngine.name !== 'DuckDuckGo HTML') { ++ return ++ } else if (currentSearchEngine.name !== 'DuckDuckGo Lite') { + return + } + +diff --git a/js/searchbar/searchSuggestionsPlugin.js b/js/searchbar/searchSuggestionsPlugin.js +index 7c3dc5e91..fcd2d544c 100644 +--- a/js/searchbar/searchSuggestionsPlugin.js ++++ b/js/searchbar/searchSuggestionsPlugin.js +@@ -2,7 +2,9 @@ var ddgAttribution = 'Results from DuckDuckGo' + + function showSearchSuggestions (text, input, event, container) { + // TODO support search suggestions for other search engines +- if (currentSearchEngine.name !== 'DuckDuckGo') { ++ if (currentSearchEngine.name !== 'DuckDuckGo HTML') { ++ return ++ } else if (currentSearchEngine.name !== 'DuckDuckGo Lite') { + return + } + +diff --git a/js/util/searchEngine.js b/js/util/searchEngine.js +index 18ff46e20..1353aa855 100644 +--- a/js/util/searchEngine.js ++++ b/js/util/searchEngine.js +@@ -3,28 +3,20 @@ var currentSearchEngine = { + searchURL: '%s' + } + +-var defaultSearchEngine = 'DuckDuckGo' ++var defaultSearchEngine = 'DuckDuckGo HTML' + + var searchEngines = { +- DuckDuckGo: { +- name: 'DuckDuckGo', +- searchURL: 'https://duckduckgo.com/?q=%s&t=min' ++ DuckDuckGoHTML: { ++ name: 'DuckDuckGo HTML', ++ searchURL: 'https://duckduckgo.com/html/?q=%s&t=min' + }, +- Google: { +- name: 'Google', +- searchURL: 'https://google.com/search?q=%s' ++ DuckDuckGoLite: { ++ name: 'DuckDuckGo Lite', ++ searchURL: 'https://duckduckgo.com/lite/?q=%s&t=min' + }, +- Bing: { +- name: 'Bing', +- searchURL: 'https://www.bing.com/search?q=%s' +- }, +- Yahoo: { +- name: 'Yahoo', +- searchURL: 'https://search.yahoo.com/yhs/search?p=%s' +- }, +- Baidu: { +- name: 'Baidu', +- searchURL: 'https://www.baidu.com/s?wd=%s' ++ searx: { ++ name: 'searx', ++ searchURL: 'https://searx.laquadrature.net/search?q=%s' + }, + StartPage: { + name: 'StartPage', +@@ -34,10 +26,6 @@ var searchEngines = { + name: 'Wikipedia', + searchURL: 'https://wikipedia.org/w/index.php?search=%s' + }, +- Yandex: { +- name: 'Yandex', +- searchURL: 'https://yandex.com/search/?text=%s' +- }, + none: { + name: 'none', + searchURL: 'http://%s' |