• 0 Posts
  • 19 Comments
Joined 9 months ago
cake
Cake day: March 23rd, 2024

help-circle

  • Alternatively you can use a spreadsheet and generate lists there.

    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.



  • 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.



  • 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.




  • 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™ - 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’m agnostic about password managers, and I’m agnostic about sync’ing password repositories between devices. I believe there would be grave risks of losing access to my own repositories by misplacing their pass-phrases or bungling other kinds of authentication. I try not to put anything on portable devices that is super confidential. On the other hand, I restrict physical access to my desktop computer. I back it up continually, power it from an uninterruptible power supply, and run only a handful of server-side processes there. … so I feel safe … sort of.

    I suppose it may seem heretical to members of this community, but I put all my passwords in a plain-text *.csv file on my desktop machine that I maintain with my own python script.




  • I used to use [a Windows 3.1 shrink-wrapped software package] that offered notepads and appointment calendars. Then I switched to Linux. That was 16 years ago. To take the place of the Windows application, I had to write my own list-maker from scratch. Today, there’s a new python3-pyqt5 version (under GNU General Public License) of my script for Linux and Windows desktops to help maintain the equivalent of index-card files. Obviously this is not something you’d use just to be like everybody else. I use it because I don’t really know how others handle their everyday lists and I can’t think of an easier way. If you, too, suspect it ought to be easier than it is, it may be. Please look at Tonto2. Thanks.