You can have you cake and eat it too, just do:
dpkg-divert --add --no-rename /usr/share/applications/firefox.desktop
That will tell the packaging system to write any future version of /usr/share/applications/firefox.desktop file to /usr/share/applications/firefox.desktop.distrib instead so your local changes won't be over written... and if you find that stuff is acting weird in the future you can look in /usr/share/applications/firefox.desktop.distrib and see if anything has changed, and apply it to your locally changed version.

Brian Cluff

On 3/23/21 9:12 PM, Steve B via PLUG-discuss wrote:
Success -  I could not get any farther than what I posted the other day using ~./local/share/applications/sandfox.desktop, but I achieved 100% success by editing /usr/share/applications/firefox.desktop.

Under the main {Desktop Entry] I appended "sandbox" to the Actions parameter and then created a new [Desktop Action sandbox] submenu with the lines:
[Desktop Action sandbox]
Name=Open in a sandbox
Exec=firejail --apparmor --private --dns=89.233.43.71 --net=eno1 --netfilter=/etc/firejail/nolocal.net <http://nolocal.net> --seccomp firefox -no-remote

Now if I right click on Firefox I have "Open in a new window", "Open in a new private window" and "Open in a sandbox". A quick "firejail --list" confirms firefox is running with the full parameter string. Yes, I'll have to add it every time Firefox updates, but for now I'm willing to live with that. Gives me motivation to look into John's suggestion of learning to patch the file.

Also found that my firejail-profile package was corrupted and that is why I could not get --net= to work. Purged and reinstalled the package which solved that problem.



On Mon, Mar 22, 2021 at 9:35 PM Brian Cluff via PLUG-discuss <plug-discuss@lists.phxlinux.org <mailto:plug-discuss@lists.phxlinux.org>> wrote:

    That's what we are talking about.  You can put your own
    firefox.desktop file in ~/.local/share/applications/ and it will
    supersede the package installed version of the file. I've found
    just about everything in linux has a similar directory hierarchy
    so you have control over a complete system and/or individual
    program by putting alternative versions of config files in their
    proper places.

    According to the spec
    (https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html
    
<https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html>)
    the order that the .desktop files are searched for is in
    $XDG_DATA_DIRS and the first one found is used.

    Brian Cluff

    On 3/22/21 6:40 PM, Michael Butash via PLUG-discuss wrote:
    You know, I fscking hate this between distros, but for arch on
    mine, it's /usr/share/applications/firefox.desktop, and every
    time I update it resets to defaults I hate.  I keep a copy of
    firefox.desktop as I need a menu to create a "choose profile"
    menu for firefox when I need many profiles for different
    customers, all with their own needs like different google and
    microsith profiles for orfice365.  Make sure you're hitting the
    right file for the distro as different from deb/ubuntu/mint.

    I'd say copy a working entry outside where you find the *.desktop
    files, and just replace what works in a remote location to
    upgrade when your dist.  Firefox is the only thing to overwrite
    and piss me off every time that I know to copy this when I
    update.  I normally just right click and do "Choose profile" for
    firefox for the plethora of profiles, adding that option to my
    firefox.desktop file, but apparently I'm the only person to do
    this, so shenanigans needed.  Same as yours I presume.  Start
    with a working one at least.

    I need to play with this some, as I'd love to relaunch my 6-7
    firefox profiles automatically, and not screw with my options to
    launch manually.  I'm sure there are easier ways to do this
    normally, but I'm lazy to do so.  /me shrugs

    -mb


    On Mon, Mar 22, 2021 at 11:31 AM Steve B via PLUG-discuss
    <plug-discuss@lists.phxlinux.org
    <mailto:plug-discuss@lists.phxlinux.org>> wrote:

        Thank you. The original goal was to add it to the menu in Pop
        OS. I'll look again, but don't recall seeing it after I
        created it in ~/.local/share/applications. Do I need to use
        "--register-app" to add it, or should it just show up?

        On Sat, Mar 20, 2021, 10:30 PM Brian Cluff via PLUG-discuss
        <plug-discuss@lists.phxlinux.org
        <mailto:plug-discuss@lists.phxlinux.org>> wrote:

            A desktop file is standardized configuration file for
            Linux desktops that describe how to represent a program
            in the menus (complete with multiple language support),
            and how to launch it.  So you can't just launch it
            directly because it doesn't mean anything to the command
            line. It should however be showing up in your menus now
            and so you can put it in your favorites and easily launch
            it that way.

            That being cause, you can kinda turn it into an
            executable by adding something like the following to the
            very top of the desktop file:
            #!/usr/bin/kioclient5 exec

            That will tell the system to execute the desktop file
            with kioclient... of course you need to be running KDE
            for that to work correctly.  I'm not sure what the GNOME
            equivalent of that command is.

            Personally I would just pretty alt+F2 or alt+space may
            work as well and just start to type  "Sandboxed Web
            Browser" and you may only have to type Sand or so before
            you can press enter and have it launch.

            Alternatives to starting it from the command line:
            Create a file called sandfox in /usr/local/bin/ and put
            the following into it.
            #!/bin/bash
            /usr/bin/firejail --apparmor firefox $@

            Then set it to be executable and then you can execute
            sandfox from anywhere.

            You could also set and alias with:
            alias sandfox="/usr/bin/firejail --apparmor firefox"

            That will allow you to type sandfox and internally it
            will replace that with "/usr/bin/firejail --apparmor
            firefox". That should also work in most places equally
            well, but only for your username.
            That's a one shot way of making that available.  If you
            want it to be permanent you'll need to add that line to
            your .bashrc file with:
            echo alias sandfox='"/usr/bin/firejail --apparmor
            firefox"' >>~/.bashrc

            I can't remember what your original goals were, so I hope
            the above isn't completely shooting the dark.

            Brian Cluff

            On 3/19/21 10:25 PM, Steve B via PLUG-discuss wrote:
            I took Brian's recommendation and created a file in
            ~/.local/share/applications called sandfox.desktop.
            Contents of that file are:

            [Desktop Entry]
            Encoding=UTF-8
            Type=Application
            Icon=/home/steve/Pictures/firejailed_firefox128.png
            Exec=/usr/bin/firejail --apparmor firefox
            Name=Sandboxed Web Browser
            Terminal=false

            I have it set to executable but when i try to run it
            "./sandfox.desktop" I get the error:
            ./sandfox.desktop: line 1: [Desktop: command not found
            ./sandfox.desktop: line 5: --apparmor: command not found
            ./sandfox.desktop: line 6: Web: command not found

            Is my file misconfigured or what do I not have correct?



            On Fri, Dec 25, 2020 at 5:47 PM Brian Cluff via
            PLUG-discuss <plug-discuss@lists.phxlinux.org
            <mailto:plug-discuss@lists.phxlinux.org>> wrote:

                Under debian based distros, overriding an overwrite
                of ANY installed file is easily done.
                There's a really cool tool called dpkg-divert that
                the system uses to take whatever files would
                normally be installed and steer them into a
                different place so that you can put your own version
                of the file in the same place without fear of it
                going away on the next update.

                Just do:
                dpkg-divert --add --rename
                /usr/share/applications/firefox.desktop

                In this case, that would be the overkill and less
                correct way of handing the problem.  A better way
                would be to put your own version of the
                firefox.desktop into certain directories and that
                cause it to override the system version of the
                config.  Put them in ~/.local/share/applications/ to
                change an individual user and||
                /usr/local/share/applications/ to effect every user
                on the system.

                Brian Cluff


            ---------------------------------------------------
            PLUG-discuss mailing list -PLUG-discuss@lists.phxlinux.org  
<mailto:PLUG-discuss@lists.phxlinux.org>
            To subscribe, unsubscribe, or to change your mail settings:
            https://lists.phxlinux.org/mailman/listinfo/plug-discuss  
<https://lists.phxlinux.org/mailman/listinfo/plug-discuss>

            ---------------------------------------------------
            PLUG-discuss mailing list -
            PLUG-discuss@lists.phxlinux.org
            <mailto:PLUG-discuss@lists.phxlinux.org>
            To subscribe, unsubscribe, or to change your mail settings:
            https://lists.phxlinux.org/mailman/listinfo/plug-discuss
            <https://lists.phxlinux.org/mailman/listinfo/plug-discuss>

        ---------------------------------------------------
        PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
        <mailto:PLUG-discuss@lists.phxlinux.org>
        To subscribe, unsubscribe, or to change your mail settings:
        https://lists.phxlinux.org/mailman/listinfo/plug-discuss
        <https://lists.phxlinux.org/mailman/listinfo/plug-discuss>


    ---------------------------------------------------
    PLUG-discuss mailing list -PLUG-discuss@lists.phxlinux.org  
<mailto:PLUG-discuss@lists.phxlinux.org>
    To subscribe, unsubscribe, or to change your mail settings:
    https://lists.phxlinux.org/mailman/listinfo/plug-discuss  
<https://lists.phxlinux.org/mailman/listinfo/plug-discuss>

    ---------------------------------------------------
    PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
    <mailto:PLUG-discuss@lists.phxlinux.org>
    To subscribe, unsubscribe, or to change your mail settings:
    https://lists.phxlinux.org/mailman/listinfo/plug-discuss
    <https://lists.phxlinux.org/mailman/listinfo/plug-discuss>


---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss

---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss

Reply via email to