CRhode
Done!
This gets a bit messy. Here's a python code snippet that gives you some idea what I'm up to with my Debian/Gnome desktop:
if while_tweaking('all', 'default browser', '√'):
ChangeSymbolicLink(
name='gnome-www-browser',
action='Make Tor the default browser.',
old=f'~ccrhode/tor-browser_en-US/{TBB_SCRIPT}',
new='/etc/alternatives/gnome-www-browser',
)
ChangeSymbolicLink(
name='x-www-browser',
action='Make Tor the default browser.',
old=f'~ccrhode/tor-browser_en-US/{TBB_SCRIPT}',
new='/etc/alternatives/x-www-browser',
)
ChangeGConf(
name='http handler',
action='Change default Gnome http handler.',
path='/desktop/gnome/url-handlers/http',
key_values={'command': 'gnome-www-browser "%s"'},
)
ChangeGConf(
name='https handler',
action='Change default Gnome https handler.',
path='/desktop/gnome/url-handlers/https',
key_values={'command': 'gnome-www-browser "%s"'},
)
ChangeGConf(
name='default browser',
action='Change default Gnome browser.',
path='/desktop/gnome/applications/browser',
key_values={'exec': 'gnome-www-browser'},
)
if while_tweaking('personal', 'desktop_icons', 'all', 'default browser', '√'):
full_path = home_path(f'tor-browser_en-US/{TBB_SCRIPT}')
ChangeDesktopLauncher( # 2013 Jun 29
name='firefox',
action='Desktop icon for browser.',
exec_=f'{full_path} -new-window %U', # 2015 May 14
desktop_name='New Window',
icon='/usr/share/pixmaps/other/Web.png',
comment="New window for Tor browser.",
)
ChangeDesktopLauncher( # 2013 Jun 29
name='firefox',
action='Desktop icon for browser.',
exec_=f'{full_path} -new-tab %U', # 2015 May 14
desktop_name='New Tab',
icon='/usr/share/pixmaps/other/Web.png',
comment="New tab for Tor browser. This desktop item IS the default browser. Please leave as-is.",
key_values={
'MimeType':
'text/html;'
'text/xml;'
'application/xhtml+xml;'
'application/xml;'
'application/vnd.mozilla.xul+xml;'
'application/rss+xml;'
'application/rdf+xml;'
'image/gif;'
'image/jpeg;'
'image/png;'
'x-scheme-handler/http;'
'x-scheme-handler/https;'
'x-scheme-handler/about;'
'x-scheme-handler/unknown;'
},
)
path_local_apps = home_path('.local/share/applications')
ChangeMkdir(
name='firefox',
action='Make default mime desktop files',
path=path_local_apps,
)
APPS_REPERTOIRE = [
home_path('Desktop/tweaks-New Tab.desktop'),
'/usr/share/applications/org.gnome.Evince.desktop', # 2020 Jul 31
'/usr/share/applications/org.gnome.gedit.desktop', # 2020 Jul 31
]
for app_name in APPS_REPERTOIRE:
ChangeSymbolicLink(
name='firefox',
action=f'Link {app_name}.',
old=app_name,
new=path_local_apps,
)
ChangeCommand(
name='firefox',
action='Update Mime cache',
args=f'update-desktop-database "{path_local_apps}"',
)
ChangeCommand( # 2023 Jan 10
name='firefox',
action="Force ownership of mimeinfo.cache.",
args=f'chown {USER.name}:{USER.name} "{path_local_apps}/mimeinfo.cache"',
)
ChangeScript(
name='firefox',
action='Create defaults list.',
file_name=f'{path_local_apps}/mimeinfo.cache',
regexs_subs=[
(r'\[MIME Cache\]','[Default Applications]'),
]
)
ChangeSymbolicLink(
name='firefox',
action='Link mimeinfo.cache',
old=f'{path_local_apps}/mimeinfo.cache',
new=f'{path_local_apps}/defaults.list',
)
ChangeDesktopLauncher(
name='tor',
action='Desktop icon for anonymizing browser.',
exec_=full_path,
desktop_name='Tor',
icon=home_path('tor-browser_en-US/onion.png'),
comment="TOR anonymizing browser",
)
ChangeDesktopLauncher(
name='firefox',
action='Desktop icon for Firefox browser.',
exec_='firefox', # 2022 Jan 10
desktop_name='Firefox',
icon='/usr/share/icons/hicolor/64x64/apps/firefox-esr.png', # 2023 Jan 23
comment="Firefox browser",
)
IS_DESKTOP_DIRTY = True
In other words, in place of your browser invocation, you want a script that applies the -new-tab option to the browser invocation and you have to correct a bunch of Gnome configs, symlinks, and MimeTypes to get that to stick.
Tor Browser on both Linux/Gnome and Android. I believe I get not only the benefits of ad-blocking and anti-tracking measures but also IP-obfuscation through the Tor network. Sure, there are sites that won't serve content to the Tor network, but screw them!
GNOME is entirely adequate.
Yes it is except when it isn't. Maybe there's a reason practically no Adwaita theme alternatives ship with Debian. Maybe not. But, using Gnome, it's the default theme or nothing. I have to admit I don't know from themes. However, there are lots of Gnome themes available from theme peddlers.
Recently I became fed to the teeth with claws-mail, which is a GTK app. In Adwaita the foreground font color is too dark (gray) on top of the background highlight (blue). My eyesight had deteriorated to the point that I just couldn't read the Subject of the current eMail, so I shopped for a new theme that would be ... adequate. I didn't have time to try them all.
I settled on Ant by EliverLara. In this theme foreground font color (white) on background highlight (salmon) is just barely visible. I use it only for claws-mail:
> env GTK_THEME=Ant claws-mail
Does anyone know how I can merge/deduplicate contacts in a .vcf vcard file?
Tonto2 is a python 3/Qt graphical app that runs on desktops. It's main purpose is not to manipulate *.vcf files, but the appendix to the instruction pages tells how, anyway. Tonto2 uses a spread-sheet-like presentation paradigm. With appropriate magical mystical spells, you can import *.vcf as *.csv and sort the *.csv by last-name, phone-number, eMail, zip-code, or whatever. It won't de-dup, but you can spot the duplicates easier once they're collated next to one another in one sequence or another. Show just the significant attributes. Probably you'll want to sort, look, sort, and look again. Killing entries is nearly as simple as checking them off. FAIR WARNING: This process is time consuming, frustrating, and fraught with peril. Keep several versions of your address list until you're sure the final is the one you want to keep forever. My experience is that I always find stuff I want to keep in each of all (sometimes more than two) duplicate entries, so deleting the dup's is not what's called for. Merging means manually copying from one entry and pasting into another. Due to the judgemental nature of how to handle conflicting and out-of-date info, I've hesitated to try to automate the process.
Maybe copying/moving files using a file manager?
FileZilla
-or-
Gnome Commander
...but call me quaint. I still like...
mc
... 'cause it always just works. mc can ostensibly preserve attributes, time-stamps, and (with appropriate privilege on the receiving end) ownership of transferred files (using an sftp server supposedly).
I'm not familiar with jabref, so I probably shouldn't stick my oar in here. But I will anyway. I've written my own python script that I use for lists like Web bookmarks. It's a poor man's database manager, so you can add attributes to bookmark entries and sort and search on those attributes.
There's no doubt there are a great variety of Linux packages in use.
Recently I did a CD install of Debian 12 (Bookworm) desktop with Gnome, which loads a bunch of stuff over the Net. Here are extra packages that I installed manually. The first set is used by and with an automated configuration script that I wrote, so they have to come in to begin with.
Title | Description | Purpose |
---|---|---|
info | Gnu info processor | "Config" |
curl | Command line tool for transferring data with URL syntax | "Config" |
dbus-x11 | Simple interprocess messaging system (X11 deps) | "Config" |
emacs | Editor | "Config" |
gconf2 | GNOME configuration database system (support tools) | "Config" |
mc | Midnight Commander - a powerful file manager | "Config" |
python3-iniparse | Access and modify configuration data in INI files | "Config" |
python-lxml-doc | Python XML documentation | "Config" |
python3-lxml | Pythonic binding for the libxml2 and libxslt libraries | "Config" |
sakura | Simple but powerful libvte-based terminal emulator | "Config" |
Title | Description | Purpose |
---|---|---|
"apcupsd" | "APC UPS Power Management" | "Monitor" |
"artha" | "Handy off-line thesaurus based on WordNet" | "Utils" |
"backintime" | "Simple backup/snapshot system" | "Utils" |
"brasero" | "CD/DVD burning application for GNOME" | "Utils" |
"bwm-ng" | "Small and simple console-based bandwidth monitor" | "Monitor" |
"ccze" | "Robust, modular log coloriser" | "Utils" |
"certbot" | "Automatically configure HTTPS using Let's Encrypt " | "Utils" |
"claws-mail-dillo-viewer" | "HTML viewer plugin for Claws Mail using Dillo" | "Mail" |
"claws-mail-feeds-reader" | "Feeds (RSS/atom) reader plugin for claws mail" | "Mail" |
"claws-mail-plugins" | "Claws mail" | "Mail" |
"claws-mail-spam-report" | "Spam reporting plugin for claws mail" | "Mail" |
"cmake" | "Cross-platform, open-source make system" | "Retroshare" |
"conky-all" | "Highly configurable system monitor" | "Monitor" |
"copyq" | "Advanced clipboard manager with editing and scripting features" | "Utils" |
"cups" | "Common UNIX Printing System(tm) - PPD/driver support, web interface " | "Utils" |
"dcraw" | "Decode raw digital camera images" | "Photo" |
"devilspie" | "Automatically resize windows" | "Utils" |
"dict" | "Dictionary client/server and a selection of dictionaries, too" | "Utils" |
"dictd" | "Dictionary server" | "Utils" |
"diction" | "Utilities to help with style and diction" | "Utils" |
"exiv2" | "EXIF/IPTC photo metadata manipulation tool" | "Photo" |
"festival" | "General multi-lingual speech synthesis system" | "Utils" |
"ftp" | "Classical file transfer client" | "Utils" |
"gedit" | "Popular text editor for the GNOME desktop environment" | "Editor" |
"gimp" | "GNU Image Manipulation Program" | "Photo" |
"git" | "Fast, scalable, distributed revision control system" | "Utils" |
"gnome-audio" | "Audio files for GNOME" | "Utils" |
"gnome-extra-icons" | "Optional gnome icons" | "Utils" |
"gnucash" | "Personal bookkeeping and finance" | "App" |
"golang" | "Go programming language compiler" | "yamn" |
"hplip" | "HP Linux Printing and Imaging System (HPLIP)" | "Utils" |
"hplip-gui" | "HP Linux Printing and Imaging - GUI utilities (Qt-based)" | "Utils" |
"hugin" | "Panorama photo stitching program" | "Photo" |
"imagemagick" | "Image manipulation programs" | "Photo" |
"libbz2-dev" | "High-quality block-sorting file compressor library" | "Retroshare" |
"libcurl4-openssl-dev" | "Development files and documentation for libcurl (OpenSSL flavour)" | "Retroshare" |
"libglib2.0-dev" | "Development files for the GLib library" | "Retroshare" |
"libjpeg-turbo-progs" | "Programs for manipulating JPEG files including loss-less rotation" | "Photo" |
"libmicrohttpd-dev" | "Library embedding HTTP server functionality" | "Retroshare" |
"libopencv-dev" | "computer vision core library" | "Retroshare" |
"libqt5opengl5-dev" | "Qt 5 OpenGL library development files" | "Retroshare" |
"libqt5multimedia5" | "Qt 5 Multimedia module" | "Retroshare" |
"libqt5network5" | "Qt 5 network module" | "Retroshare" |
"libqt5x11extras5-dev" | "Qt 5 X11 extras" | "Retroshare" |
"libreoffice-base" | "Database component for LibreOffice" | "Utils" |
"librsvg2-bin" | "Command-line and graphical viewers for SVG files" | "Photo" |
"libsqlcipher-dev" | "Sqlcipher shared library" | "Retroshare" |
"libssl-dev" | "Secure Sockets Layer toolkit - development files" | "Retroshare" |
"libspeex-dev" | "The Speex codec library" | "Retroshare" |
"libspeexdsp-dev" | "The Speex extended library" | "Retroshare" |
"libupnp-dev" | "Portable SDK for UPnP devices" | "Retroshare" |
"libxslt1-dev" | "XSLT 1.0 processing library" | "Retroshare" |
"libxss-dev" | "X11 Screen Saver extension library (development headers)" | "Retroshare" |
"lm-sensors" | "Utilities to read temperature/voltage/fan sensors" | "Monitor" |
"mosquitto" | "MQTT version 5.0/3.1.1/3.1 compatible message broker" | "Home Automation" |
"mosquitto-clients" | "Mosquitto command line MQTT clients" | "Home Automation" |
"net-tools" | "NET-3 networking toolkit" | "Utils" |
"numlockx" | "Enable numlock in X11 sessions" | "Unknown" |
"openhab-addons" | "OpenHAB Home Automation" | "Home Automation" |
"otpclient" | "Simple GTK+ software to generate OTPs (TOTP and HOTP)" | "Utils" |
"pandoc" | "General markup converter" | "Utils" |
"pcmanfm" | "Extremely fast and lightweight file manager" | "Utils" |
"python-is-python3" | "Symlinks /usr/bin/python to python3" | "Devel" |
"python3-babel" | "Tools for internationalizing Python applications - Python 3.x" | "Devel" |
"python3-calmjs" | "Node.js Python framework for building toolchains and utilities" | "Devel" |
"python3-cheetah" | "Text-based template engine and Python code generator (Python 3)" | "WeeWX" |
"python3-configobj" | "Simple but powerful config file reader and writer for Python 3" | "WeeWX" |
"python3-dateparser" | "Python parser for human readable dates" | "Devel" |
"python3-doc" | "Python documentation" | "Devel" |
"python3-ephem" | "Compute positions of the planets and stars with Python 3" | "WeeWX" |
"python3-nltk" | "Natural language processing" | "Utils" |
"python3-pycryptodome" | "Cryptographic Python library" | "eoas" |
"python3-pyqt5" | "Python 3 bindings for Qt5" | "Devel" |
"python3-pyqt5.qtmultimedia" | "Python 3 bindings for Qt5's Multimedia module" | "Devel" |
"python3-serial" | "pyserial - module encapsulating access for the serial port " | "WeeWX" |
"python3-setuptools" | "Python distutils enhancements (setuptools compatibility)" | "Devel" |
"python3-tz" | "The Olson timezone database" | "Utils" |
"python3-usb" | "USB interface for Python (Python3)" | "WeeWX" |
"python3-venv" | "Venv module for python3" | "WeeWX" |
"python3-vobject" | "Parse iCalendar and VCards in python" | "Android" |
"python3-xdg" | "Freedesktop.org standards" | "Tonto2" |
"qgit" | "Qt application for viewing GIT trees" | "Utils" |
"qrencode" | "QR code encoder into PNG image" | "Photo" |
"qtcreator" | "Integrated development environment (IDE) for Qt" | "Retroshare" |
"qtmultimedia5-dev" | "APIs for multimedia functionality" | "RetroShare" |
"qtox" | "Tox client" | "Retroshare" |
"qttools5-dev" | "Qt 5 tools development files" | "Retroshare" |
"rapidjson-dev" | "Fast JSON parser/generator for C++ with SAX/DOM style API" | "Retroshare" |
"rblcheck" | "Query real-time black list (RBL) servers" | "Mail" |
"retroshare-gui" | "Secure communication with friends" | "Retroshare" |
"rsync" | "Fast, versatile, remote (and local) file-copying tool" | "Utils" |
"sane" | "Scanner graphical frontends" | "Photo" |
"sqlite3" | "Command line interface for SQLite 3" | "Firefox Devel" |
"sqlitebrowser" | "GUI editor for sqlite databases" | "Unknown" |
"ssh" | "Secure shell client and server (metapackage)" | "Utils" |
"tcl8.6-dev" | "Tcl (the Tool Command Language) v8.6" | "Retroshare" |
"tesseract-ocr" | "Command line OCR tool" | "Unknown" |
"timeshift" | "System restore utility" | "Utils" |
"torsocks" | "Use socks-friendly applications with Tor" | "QTox" |
"trash-cli" | "Freedesktop.org trash implementation" | "Utils" |
"tree" | "Displays an indented directory tree, in color" | "Utils" |
"ttf-bitstream-vera" | "Bitstream Vera family of free Truetype fonts" | "Utils" |
"whois" | "Intelligent WHOIS client" | "is_tout.py" |
"xsane" | "Graphical frontend for Scanner Access Now Easy (SANE)" | "Photo" |
"zbar-tools" | "Bar Code Scanner and Decoder" | "Photo" |
"zip" | "Archiver for .zip files" | "Utils" |
Here are third-party packages I admire. These are not available in Debian repositories although some provide Debian-compatible repositories of their own.
Tor Browser Bundle: Anonymizing Network Browser
This is available from https://dist.torproject.org/torbrowser/ as a tarball. This should be unpacked and the whole tor-browser_en-US directory moved to the ~user folder. This is so that the browser can auto-update at user authority as the need arises.
RetroShare: Secure Communications with Friends
This has its own Debian-compatible repository.
metar: A Package to Parse METAR Coded Weather Reports
~/lab_pip/bin/activate
pip install metar --upgrade
weeWX: Open source software for backyard weather stations.
From http://weewx.com/docs/debian.htm. Although a Debian package exists, doing any development practically requires that all the code be in user-space, so don't install the package. Download it instead.
OpenHAB: Home Automation
This has its own Debian-compatible repository.
Ant: GTK3/4 Themes by eliverlara
From https://www.gnome-look.org/browse?cat=135&ord=latest.
This is for claws-mail. It provides better contrast.
Doctor, Doctor, my brother thinks he's a chicken!
Too much fun! Like many other Comp. Sci. students, I spent way too many hours trying to get Eliza, an automated psychiatrist from MIT, to say something shocking. Weizenbaum, the developer, "was surprised and shocked that individuals, including his secretary, attributed human-like feelings to the computer program." In this sense AI is nothing new because Eliza passed the Turing Test in 1967.
I can do better than that by using *.csv files on a desktop machine, and I'm squeamish about taking them mobile. so I don't have to deal with sync'ing them.
OK, I'm going to wade in here. It occurs to me that the OP could make use of my Tonto2 Python3 script for Linux and Windows. It puts a spreadsheet-like user interface over a *.csv file or files. You just need to make a home for the tag file(s). You can make bookmark lists that way and open the embedded http:// links in your browser. You could use file:/// links for local images. You could add as many columns as you want for all kinds of tags and sort and search the values to your heart's content.