1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. Mira_Belle

Beiträge von Mira_Belle

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 23:02

    2002Andreas Stimmt. Ich hatte mir aber nur den Codeschnipsel angeschaut!

    Ich war aber mal so frei, und habe das CSS korrigiert und mal sauber formatiert.

    CSS
    @-moz-document url("chrome://browser/content/sidebar/sidebar-bookmarks.html"),
                   url("chrome://browser/content/browser.xhtml") {
    	
        /* Suchsymbol in der Sidebar ausblenden */
        #input[type="search"] {
            padding-inline-start: var(--space-medium) !important;
            background-image: none !important;
        }
    
        /* Ordner aus der Sidebar ausblenden */
        [data-guid="unfiled_____"],
        [data-guid="toolbar_____"] {
            display: none !important;
        }	
    
        sidebar-bookmark-row {
            height: 20px !important;
        }
    
        ::placeholder  {
            color: transparent !important;
        }
    
        .sidebar-panel-heading {
            display: none !important;
        }
    
        details summary, 
        .bookmark-folder-label {
            font-size: 16px !important;
            font-family: Comic Sans MS, sans-serif !important;
        }
    
        .fxview-tab-row-main, .fxview-tab-row-title {
            font-size: 16px !important;
            font-family: Comic Sans MS, sans-serif !important;
            margin-top: -13px !important;
            margin-bottom: -13px !important;
            padding-top: 0px !important;
            padding-bottom: 0px !important;
        }
    
        #input {
            &[type="search"] {
                &.with-icon {
                    font-size: 16px !important;
                    font-family: Comic Sans MS, sans-serif !important;
                }
            }
        }
    
        .sidebar-panel {
            background: #c1e7bb !important;
        }
    
        details {
            margin-top: -3px !important;
            margin-left: -8px !important;
        }
    
        details summary {
            &::before {
                content: "" !important;
                display: none !important;
            }
        }
    
        details summary, .bookmark-folder-label {
            &::before {
                background-image: url("..//icons/Ordner.png")!important;
            }
    	}
    
        details > summary { 
            background-image: url("..//icons/Ordner.png")!important;	 
        }
    }
    
    @-moz-document url("chrome://browser/content/sidebar/sidebar-bookmarks.html"),
                   url("chrome://browser/content/browser.xhtml") {
    				   
        #sidebar-main > sidebar-main {
            display: none !important;
        }
    
        #sidebar-box {
            display: flex !important;
            position: absolute !important;
            top: 0;
            bottom: 5px;
            width: 260px !important;
            z-index: 100 !important;
            opacity: 0 !important;
            margin-left: -255px !important;
            transition: margin-left .5s linear .4s, opacity .6s ease-in .2s !important;
        }
    
        #sidebar-box:hover {
            z-index: 100 !important;
            opacity: 1 !important;
            margin-left: 0 !important;
            transition: margin-left .66s !important;
        }
    
        /* Sidebar Hintergrundfarbe */
        #sidebar {
            background: #c1e7bb !important;
            opacity: 1 !important;
        }
     }
    Alles anzeigen
  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 19:25
    Zitat von .DeJaVu

    Ich weiss zwar nicht warum, aber Helfer waren immer im Nachteil.

    Boesenfeger und ich sind mal aneinander geraten, Schwamm drüber.
    Aber er scheint mich zu ignorieren. OK, sein Problem, wenn das CSS wieder versagt!
    Es ist ja kaputt, dennoch bügelt Firefox das noch aus.
    Und was sein anderes Problem aus #41 betrifft,
    damit beschäftige ich mich nicht, es sei denn er meldet sich noch einmal.

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 18:22

    Boersenfeger Du läufst Gefahr, dass Dein CSS wieder irgendwann nicht funktioniert!!

    CSS
    details summary, .bookmark-folder-label {
        &::before 
    	background-image: url("..//icons/Ordner.png")!important;
      }
    	
    details > summary { 
    	background-image: url("..//icons/Ordner.png")!important;	 
    	}

    Ist FALSCH:!:
    Es ist da ein Syntaxfehler enthalten!
    Außerdem fehlt eine Klammer!

    Also, so wäre der Code richtig.

    CSS
    details summary, .bookmark-folder-label {
        &::before {
            background-image: url("../icons/Ordner.png") !important;
        }
    }
    	
    details > summary { 
        background-image: url("../icons/Ordner.png") !important;	 
    }

    Und damit ist auch klar, dass Dein CSS nicht direkt in chrome liegt!

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 17:03

    Oder anders!
    Wenn das CSS direkt in c:\Users\Ich\AppData\Roaming\Mozilla\Firefox\Profiles\12345678.default-nightly\chrome
    liegt, ein Punkt weniger!

    Also background-image: url("./icons/Ordner.png")
    Meine, dass das so richtig ist.

    Du kannst es aber auch ohne ./ schreiben, ist exakt dasselbe!

    background-image: url("icons/Ordner.png")


    Bei meinen Beispielen gehe ich davon aus, dass das CSS direkt in chrome liegt:!:

    CSS
    details summary, .bookmark-folder-label {
        &::before 
    	background-image: url("icons/Ordner.png");
      }
    	
    details > summary { 
    	background-image: url("icons/Ordner.png");	 
    	}

    bzw.

    CSS
    details summary, .bookmark-folder-label {
        &::before 
    	background-image: url("./icons/Ordner.png");
      }
    	
    details > summary { 
    	background-image: url("./icons/Ordner.png");	 
    	}
  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 16:59

    Und der Pfad zum CSS?

    Was passiert, wenn Du den kompletten Pfad vorgibst?

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 16:12
    Zitat von Boersenfeger

    Das hat es gebracht... vielen lieben Dank an alle Beteiligten!

    Super, dass mit vereintem Wissen und "Forschung" Dein Problem nun behoben ist!

    Zitat von Boersenfeger

    Jetzt muss ich nur noch mein altes Ordner Icon wiederfinden ...

    Viel Erfolg! :)

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 15. September 2026 um 09:51
    Zitat von Sören Hentzschel

    ... dem Fall irgendwann in den nächsten Monaten eine Anpassung des Codes notwendig sein wird. ...

    D.h. das würde so dann ja jetzt schon in der Nightly nicht mehr funktionieren, richtig?

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 14. September 2026 um 19:16
    Zitat von Boersenfeger

    Wie muss mans dann machen?

    War die Frage an mich gerichtet?
    Und von "müssen" ist eventuell etwas übertrieben, finde ich.
    Natürlich werdet Ihr das auch mit CSS hinbekommen, da bin ich mir Absolut sicher!
    Ich habe ein JS, da muss schon ziemlich lange nicht mehr daran was geändert werden.
    Für Dich müsste ich es dann aber doch etwas ändern, da Du ja ein anderes Design haben möchtest.
    Denke, das bekäme ich hin.
    Es funktioniert auch in der aktuellen Nightly!
    Wenn Du magst, stelle ich es mal zum Ausprobieren hier rein.
    Und wenn Du gefallen daran findest, bauen wir (ich) es Deinen Wünschen entsprechend um.

  • Sidebar CSS wird nicht umgesetzt

    • Mira_Belle
    • 14. September 2026 um 18:19

    Muss das unbedingt per CSS umgesetzt werden?

  • Nackter Firefox nach Update

    • Mira_Belle
    • 14. September 2026 um 18:08
    Zitat von BrokenHeart

    Beim Firefox verändert sich bis auf ein paar Lesezeichen doch recht selten etwas, was man ständig sichern müsste...

    Naja, kommt darauf an.
    Wenn bei einem Update die oder irgendein JS nicht mehr so will wie es soll.
    Oder wenn CSS-Selektoren im Programm geändert werden.
    Also ich mache bei jeder Änderung an den Scripten ein "kleines" Backup.
    Bei jedem Versionssprung ein "großes"!
    D.h. einmal nur die Profile, oder eben inkl. Installation!
    Dazu nutze ich ein PowerShell-Script, das ich heute auch um eine Funktion erweitert habe!
    Die "profiles.ini" kann jetzt auch gesichert werden.

    Wer es sich anschauen möchte, bitte.

    Beitrag

    RE: Wer mag testen? Firefox4backup

    Hier eine erweiterte Version der PowerShell-Scripts.
    Es kann auch die "profiles.ini" zur Sicherung ausgewählt werden.

    Es muss aber 7-Zip installiert sein:!:

    (Quelltext, 375 Zeilen)

    Wer so ein bisschen mit PowerShell kann, kann ja das ganze auf die interne Packfunktion umschreiben!
    Oben ist die ja schon, noch ohne "profiles.ini" sichern.
    Mira_Belle
    14. September 2026 um 18:07



    Und ein JavaScript, welches nur den Profilordner sichert, gibt es ja auch!

    Beitrag

    RE: BackupProfile.uc.js - div. Fragen dazu

    Bisher hatte ich ja das originale Script von #1 mit leichten Abwandlungen und Korrekturen genutzt!
    Mir persönlich gefällt, gefiel mir der Aufbau dieses Scripts nicht.
    Daher habe ich mir ein "Neues" gebaut!
    Grundsätzlich funktioniert es genau so, wie das Original,
    nur ist jetzt klarer ersichtlich, wo der Nutzer Hand anlegen kann!
    Aber was "labere ich, schaut selbst.

    (Quelltext, 156 Zeilen)

    Mira_Belle
    3. September 2026 um 17:35
  • Wer mag testen? Firefox4backup

    • Mira_Belle
    • 14. September 2026 um 18:07

    Hier eine erweiterte Version der PowerShell-Scripts.
    Es kann auch die "profiles.ini" zur Sicherung ausgewählt werden.

    Es muss aber 7-Zip installiert sein:!:

    Code
    Add-Type -A System.Windows.Forms
    
    #region Grundeinstellungen
    $7z = "$env:ProgramFiles\7-zip\7zG.exe"
    $Reg = "HKCU:\Software\FF_Backup"
    $Fonts = @(
        [Drawing.Font]::New("Microsoft Sans Serif", 12)
        [Drawing.Font]::New("Microsoft Sans Serif", 12, [Drawing.FontStyle]::Bold)
    )
    [Windows.Forms.Application]::EnableVisualStyles()
    #endregion
    
    # Funktion zur Anzeige des Hinweisfensters
    function Show-FirefoxRunningDialog {
        $Form = [Windows.Forms.Form]@{
            Text = "Hinweis"
            AutoSize = $false
            StartPosition = 'CenterScreen'
            Size = "565,155"
            Padding = '10,10,10,10'
            KeyPreview = $true
        }
        $Table = [Windows.Forms.TableLayoutPanel]@{
            Dock = 'Fill'
            AutoSize = $true
        }
        $Flow = [Windows.Forms.FlowLayoutPanel]@{
            Anchor = 'Top'
            AutoSize = $true
            AutoSizeMode = 'GrowAndShrink'
        }
    
        $Label = [Windows.Forms.Label]@{
            Font = $Fonts[0]
            Margin = '10,10,10,10'
            AutoSize = $true
            Text = "Firefox wird noch ausgeführt. Soll Firefox beendet werden?"
        }
    
        $OKButton = [Windows.Forms.Button]@{
            Size = "120,40"
            Text = "OK"
            Font = $Fonts[1]
            Margin = '10,10,10,10'
        }
        $OKButton.Add_Click({
            $Form.DialogResult = [System.Windows.Forms.DialogResult]::OK
            $Form.Close()
        })
    
        $CancelButton = [Windows.Forms.Button]@{
            Size = "120,40"
            Text = "Abbrechen"
            Font = $Fonts[1]
            Margin = '10,10,10,10'
        }
        $CancelButton.Add_Click({
            $Form.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
            $Form.Close()
        })
    
        $Flow.Controls.Add($OKButton)
        $Flow.Controls.Add($CancelButton)
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('AutoSize'))
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Percent', 10))
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Absolute', 190))
        $Table.Controls.Add($Label, 0, 0)
        $Table.Controls.Add($Flow, 0, 1)
        $Table.SetColumnSpan($Flow, 3)
    
        $Form.Controls.Add($Table)
        return $Form.ShowDialog()
    }
    
    # Überprüfen, ob Firefox noch läuft und entsprechend handeln
    if (Get-Process "Firefox" -ErrorAction SilentlyContinue) {
        $result = Show-FirefoxRunningDialog
        if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
            Get-Process "Firefox" | Stop-Process
        } else {
            exit
        }
    }
    
    #region Fensterelemente
    $Form = [Windows.Forms.Form]@{
        Text = "Firefox4backup"
        AutoSize = $false
        StartPosition = 'CenterScreen'
        Size = "565,280"  # Größe angepasst, um Platz für die neue Checkbox zu schaffen
        Padding = '10,10,10,10'
        KeyPreview = $true
    }
    $Table = [Windows.Forms.TableLayoutPanel]@{
        Dock = 'Fill'
        AutoSize = $true
    }
    $Flow = [Windows.Forms.FlowLayoutPanel]@{
        Anchor = 'Top'
        AutoSize = $true
        AutoSizeMode = 'GrowAndShrink'
    }
    
    $Open = [Windows.Forms.Button]@{
        Size = "100,40"
        Text = "Speicherort"
        Font = $Fonts[0]
        Anchor = 'Left'
    }
    
    $Textbox = @(
        [Windows.Forms.TextBox]@{
            Font = $Fonts[0]
            Margin = '10,10,0,10'
            Size = "80,50"
            Dock = 'Fill'
        },
        [Windows.Forms.TextBox]@{
            Font = $Fonts[1]
            Margin = '10,10,10,10'
            Dock = 'Fill'
            Text = "\BackupFirefox\$(Get-Date -Format 'yyyy.MM.dd')"
            Enabled = $false
        }
    )
    
    $Checkbox = @(
        [Windows.Forms.Checkbox]@{
            Text = "Programmverzeichnis sichern"
            AutoSize = $true
            Font = $Fonts[0]
            Margin = '10,10,0,10'
        },
        [Windows.Forms.Checkbox]@{
            Text = "vorhandenen Ordner überschreiben"
            AutoSize = $true
            Font = $Fonts[0]
            Margin = '10,0,5,10'
            Visible = $false
        },
        [Windows.Forms.Checkbox]@{
            Text = "profiles.ini sichern"
            AutoSize = $true
            Font = $Fonts[0]
            Margin = '10,1,0,10'
        }
    )
    
    $HS = @{
        Run = [Windows.Forms.Button]@{
            Size = "120,40"
            Text = "Ausführen"
            Font = $Fonts[1]
            Margin = '10,10,10,10'
            Enabled = $false
        }
        SavePath = $false
        overwrite = $true
    }
    #endregion
    
    #region Fensteranordnung
    $Flow.Controls.Add($HS.Run)
    [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('AutoSize'))
    [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Percent', 10))
    [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Absolute', 240))
    $Table.Controls.Add($Open, 0, 0)
    $Table.Controls.Add($Textbox[0], 1, 0)
    $Table.Controls.Add($Textbox[1], 2, 0)
    $Table.Controls.Add($Checkbox[0], 0, 3)
    $Table.Controls.Add($Checkbox[1], 0, 4)
    $Table.Controls.Add($Checkbox[2], 0, 5)  # Neue Checkbox für profiles.ini
    $Table.SetColumnSpan($Checkbox[0], 3)
    $Table.SetColumnSpan($Checkbox[1], 3)
    $Table.SetColumnSpan($Checkbox[2], 3)  # Neue Checkbox für profiles.ini
    $Table.Controls.Add($Flow, 0, 6)
    $Table.SetColumnSpan($Flow, 3)
    
    $Form.Controls.Add($Table)
    $Form.Size = "565,290"  # Größe des Formulars angepasst
    #endregion
    
    #region Runspace
    # Firefox-Status überwachen
    $RS = [powershell]::Create().AddScript({
        while ($true) {
            if (Get-Process "Firefox" -ErrorAction SilentlyContinue) {
                $HS.FirefoxRunning = $true
            } else {
                $HS.FirefoxRunning = $false
                $HS.Run.Enabled = $HS.SavePath -and $HS.overwrite
            }
        }
    })
    $RS.Runspace.SessionStateProxy.SetVariable('HS', $HS)
    #endregion
    
    #region Events
    $Form.Add_Load({
        $HS.handle = $RS.BeginInvoke()
        if (Test-Path $Reg) {
            $Textbox[0].Text = Get-ItemPropertyValue $Reg "(default)" -ErrorAction SilentlyContinue
        }
        [void]$this.ActivateControl($Checkbox[0])
    })
    
    $Form.Add_Closed({
        [void]$RS.Stop()
    })
    
    $Form.Add_KeyDown({
        switch ($_.KeyCode) {
            'Return' {$HS.Run.PerformClick()}
            'Escape' {$this.Hide()}
        }
    })
    
    $HS.Run.Add_Click({
        $this.TopLevelControl.Hide()
        $HS.Action = $true
        $HS.BackupCompleted = $true
        Set-ItemProperty -Path $Reg -Name "(default)" -Value $Textbox[0].Text.Replace('"', '') -Force
    })
    
    $Textbox.Add_TextChanged({
        if ($this.Text -and (Test-Path $this.Text.Replace('"', ''))) {
            $HS.SavePath = $true
            if (Test-Path (Join-Path $this.Text.Replace('"', '') "BackupFirefox\$(Get-Date -Format 'yyyy.MM.dd')")) {
                $Checkbox[1].Visible = $true
                $HS.overwrite = $false
            } else {
                $Checkbox[1].Visible = $false
                $HS.overwrite = $true
            }
        } else {
            $HS.SavePath = $false
        }
    })
    
    $Open.Add_Click({
        $Browse = [Windows.Forms.FolderBrowserDialog]@{
            RootFolder = "MyComputer"
            SelectedPath = if ($HS.SavePath) {$Textbox.Text.Replace('"', '')}
        }
        if ($Browse.ShowDialog() -eq 'ok') {$Textbox[0].Text = $Browse.SelectedPath}
    })
    
    $Checkbox[1].Add_CheckStateChanged({
        $HS.overwrite = $this.Checked
    })
    #endregion
    
    #region Ausführung
    [void]$Form.ShowDialog()
    $RS.Dispose()
    #endregion
    
    if ($HS.Action) {
        $LogPfad = Join-Path $Textbox[0].Text.Replace('"', '') $Textbox[1].Text.SubString(1)
        
        # Profilverzeichnis sichern
        if (Test-Path "$LogPfad\Profilverzeichnis.zip") { Remove-Item -Force "$LogPfad\Profilverzeichnis.zip" }
        &$7z a -mx5 -bso0 -bsp1 "$LogPfad\Profilverzeichnis.zip" "$env:appdata\Mozilla\Firefox\Profiles" | Out-String -Stream | Select-String -Pattern "\d+(?=%)" -AllMatches |
            ForEach-Object { Write-Progress -Activity "Profilverzeichnis wird archiviert... " -PercentComplete ([int]$_.Matches.Value) -Status " " }
        
        # Programmverzeichnis sichern (falls aktiviert)
        if ($Checkbox[0].Checked) {
            if (Test-Path "$LogPfad\Programmverzeichnis.zip") { Remove-Item -Force "$LogPfad\Programmverzeichnis.zip" }
            &$7z a -mx5 -bso0 -bsp1 "$LogPfad\Programmverzeichnis.zip" "$env:ProgramFiles\Mozilla Firefox" | Out-String -Stream | Select-String -Pattern "\d+(?=%)" -AllMatches |
                ForEach-Object { Write-Progress -Activity "Programmverzeichnis wird archiviert... " -PercentComplete ([int]$_.Matches.Value) -Status " " }
        }
    
        # profiles.ini sichern (falls aktiviert)
    #    if ($Checkbox[2].Checked) {
    #        $profilesIniPath = "$env:appdata\Mozilla\Firefox\profiles.ini"
    #        if (Test-Path $profilesIniPath) {
    #            if (Test-Path "$LogPfad\profiles.ini.zip") { Remove-Item -Force "$LogPfad\profiles.ini.zip" }
    #            &$7z a -mx5 -bso0 -bsp1 "$LogPfad\profiles.ini.zip" $profilesIniPath | Out-String -Stream | Select-String -Pattern "\d+(?=%)" -AllMatches |
    #                ForEach-Object { Write-Progress -Activity "profiles.ini wird archiviert... " -PercentComplete ([int]$_.Matches.Value) -Status " " }
    #        }
    #    }
    
        # profiles.ini sichern (falls aktiviert)
        if ($Checkbox[2].Checked) {
            $profilesIniPath = Join-Path -Path $env:appdata -ChildPath "Mozilla\Firefox\profiles.ini"
            if (Test-Path $profilesIniPath) {
                if (Test-Path "$LogPfad\profiles.ini.zip") { Remove-Item -Force "$LogPfad\profiles.ini.zip" }
                &$7z a -mx5 -bso0 -bsp1 "$LogPfad\profiles.ini.zip" "$profilesIniPath" | Out-String -Stream | Select-String -Pattern "\d+(?=%)" -AllMatches |
                    ForEach-Object { Write-Progress -Activity "profiles.ini wird archiviert... " -PercentComplete ([int]$_.Matches.Value) -Status " " }
            } else {
                Write-Warning "Die Datei profiles.ini wurde nicht gefunden unter: $profilesIniPath"
            }
        }
    
        $date = Get-Date -Format "yyyy.MM.dd - HH.mm.ss"
        $datum = Get-Date -Format "dd.MM.yyyy"
    
        if (!(Test-Path ("$LogPfad\Sicherung am $date.txt"))) {
            $FF_Version = Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' | Where-Object { $_.DisplayName -like "*firefox*" } | Select-Object -ExpandProperty DisplayVersion
            $Logfile = (New-Item -Path "$LogPfad\Sicherung vom $datum.txt" -ItemType File -Force).FullName
            Add-Content $Logfile ("Diese Sicherung ist vom $(Get-Date -Format 'dddd, dd. MMMM yyyy, HH:mm:ss') Uhr`n")
            Add-Content $Logfile ("Die gesicherte Firefox-Version ist: $FF_Version")
            Add-Content $Logfile "`n`n"
        }
    
        # Nachricht anzeigen
        Add-Type -AssemblyName System.Windows.Forms
    
        #region Grundeinstellungen
        $Fonts = @(
            [Drawing.Font]::New("Microsoft Sans Serif", 12)
            [Drawing.Font]::New("Microsoft Sans Serif", 12, [Drawing.FontStyle]::Bold)
        )
        [Windows.Forms.Application]::EnableVisualStyles()
        #endregion
    
        #region Fensterelemente
        $Form = [Windows.Forms.Form]@{
            Text = "Backup abgeschlossen"
            AutoSize = $false
            StartPosition = 'CenterScreen'
            Size = "565,160"
            Padding = '10,10,10,10'
            KeyPreview = $true
        }
        $Table = [Windows.Forms.TableLayoutPanel]@{
            Dock = 'Fill'
            AutoSize = $true
        }
        $Flow = [Windows.Forms.FlowLayoutPanel]@{
            Anchor = 'Top'
            AutoSize = $true
            AutoSizeMode = 'GrowAndShrink'
        }
    
        $Label = [Windows.Forms.Label]@{
            Font = $Fonts[0]
            Margin = '10,10,10,10'
            AutoSize = $true
            Text = "Backup erfolgreich abgeschlossen."
        }
    
        $HS = @{
            Run = [Windows.Forms.Button]@{
                Size = "120,40"
                Text = "OK"
                Font = $Fonts[1]
                Margin = '10,10,10,10'
                Enabled = $true
            }
        }
        #endregion
    
        #region Fensteranordnung
        $Flow.Controls.Add($HS.Run)
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('AutoSize'))
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Percent', 10))
        [void]$Table.ColumnStyles.Add([Windows.Forms.ColumnStyle]::New('Absolute', 190))
        $Table.Controls.Add($Label, 1, 0)
        $Table.Controls.Add($Flow, 0, 1)
        $Table.SetColumnSpan($Flow, 3)
    
        $Form.Controls.Add($Table)
        #endregion
    
        #region Button-Click-Event
        $HS.Run.Add_Click({
            $Form.Close()
        })
        #endregion
    
        #region Ausführung
        [void]$Form.ShowDialog()
        #endregion
    }
    Alles anzeigen

    Wer so ein bisschen mit PowerShell kann, kann ja das ganze auf die interne Packfunktion umschreiben!
    Oben ist die ja schon, noch ohne "profiles.ini" sichern.

  • winget meldet zwei Installationen von Firefox

    • Mira_Belle
    • 13. September 2026 um 15:46

    majofo
    Gib in der PowerShell, bei geschlossenem Firefox, folgendes ein.

    winget install --id Mozilla.Firefox.de --force --exact

    Beim erneutem aufruf von winget list firefox solle das Ergebnis so aussehen:

    $ winget list firefox
    Name ID Version Quelle
    -----------------------------------------------------------
    Mozilla Firefox (x64 de) Mozilla.Firefox.de 155.0.1 winget

  • Google Suchergebnisse Tab behalten

    • Mira_Belle
    • 12. September 2026 um 23:49

    .DeJaVu
    Im Script ist aber ein Logikfehler!

    Die Zeile var aLinks = el.querySelectorAll("a[href][target]"); müsste
    var aLinks = el.querySelectorAll("a[href]:not([target])"); lauten.

    Zitat von mistral.ai

    Warum der Fehler nicht auffällt

    1. Logikfehler im Skript:
      Der aktuelle Code wählt Links mit target aus, fügt ihnen dann aber trotzdem target="_blank" hinzu.
      Das bedeutet:
      • Links mit target werden überschrieben (z. B. target="_self" → target="_blank").
      • Links ohne target werden ignoriert (weil sie nicht von a[href][target] erfasst werden).
    2. Praktische Auswirkung:
      • Das Skript funktioniert nicht wie beabsichtigt, aber es bricht nicht – es ändert nur die falschen Links.
    Zitat von Google KI

    Wenn du genau dieses Skript unverändert installierst, wird es aktuell nicht funktionieren. Der Entwickler hat leider einen logischen Fehler in Zeile 49 eingebaut:

    • Das Problem: Dieser Befehl sucht nach Links, die bereits ein target-Attribut besitzen. Laut der Skript-Beschreibung im Kopfbereich soll es aber genau umgekehrt sein: Es soll Links verändern, die noch kein Ziel gesetzt haben.
    • Die Lösung: Damit das Skript das tut, was es verspricht, müsste das [target] in ein :not([target]) geändert werden (also el.querySelectorAll("a[href]:not([target])")).

    Ich wollte wissen, wozu das Script gut ist.

  • winget meldet zwei Installationen von Firefox

    • Mira_Belle
    • 12. September 2026 um 23:24
    Zitat von Sören Hentzschel

    Dennoch ist das die offizielle Firefox-ID aus dem Microsoft Store. Siehe auch:

    Das glaube ich Euch ja, ich finde es halt nur sehr komisch.
    Und irgendein Update habe ich auch nie über irgendein Tool gemacht,
    immer nur über die im Firefox integrierte Update Routine.


    Was Googles KI-Modus nicht so alles ans Tageslicht befördert!

    Zitat von Googl

    Das ist ein völlig normales Verhalten von winget.

    winget verknüpft lokal installierte Programme automatisch mit der passenden ID aus dem Microsoft Store, wenn die App dort existiert und die installierte Version übereinstimmt.

  • winget meldet zwei Installationen von Firefox

    • Mira_Belle
    • 12. September 2026 um 22:05
    Zitat von .DeJaVu

    9nzvdkpmr9rd ist aber die Version aus dem App-Store!

    Das ist aber merkwürdig!!
    Denn ich habe den Fuchs nie niemals nicht über den App-Store bezogen, noch installiert!

  • winget meldet zwei Installationen von Firefox

    • Mira_Belle
    • 12. September 2026 um 17:41

    Gerade bei mir auch die Installation über winget geprüft!

    $ winget list firefox
    Name ID Version Quelle
    -----------------------------------------------------
    Mozilla Firefox (x64 de) 9NZVDKPMR9RD 155.0.1 winget


    Die ID 9NZVDKPMR9RD scheint also ganz normal zu sein!
    Lösche einfach wie beschrieben den fehlerhaften Regitryeintrag und alles ist gut.

  • Nackter Firefox nach Update

    • Mira_Belle
    • 11. September 2026 um 20:19
    Zitat von Sensei

    meine Backupstrategie sollte ich aber trotzdem verbessern. 🤭

    Erst einmal Danke für die Rückmeldung.

    Für das Backup hätte ich ein PowerShellScript für Dich, wenn Du magst.
    Außerdem gibt es ein JavaScript, mit dem Du ebenfalls Dein Profil sichern kannst!

    JavaScript
    // BackupProfile.uc.js
    // Schaltfläche zum Sichern des Firefox-Profils
    
    /* ----------------------------------------------------------------------------------- */
    /*     Zu beachten ist, dass die Grafiken sich im richtigen Ordner befinden müssen     */
    /*            %appdata%\Mozilla\Firefox\Profiles\"Profilname"\chrome\icons             */
    /* ----------------------------------------------------------------------------------- */
    
    /* ----------------------------------------------------------------------------------- */
    /*  IMPORTANT!         This script was edited and modified using AI.                   */
    /* ----------------------------------------------------------------------------------- */
    
    'use strict';
    
    (function() {
      if (location.href !== 'chrome://browser/content/browser.xhtml')
        return;
    
      const
      // ■■ START UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
               id = 'backupProfile-button',          // ID des Buttons
            label = 'Profilsicherung',               // Bezeichnung des Buttons
      tooltiptext = 'Sichern der aktuellen Konfiguration',
             icon = 'backup.svg',                    // Name des SVG-Icons
           colour = '#faea00',                     // Farbe für das SVG-Icon
         iconPath = '/chrome/icons/',                // Pfad zum Icon-Ordner
         basePath = 'E:\\Firefox-Sicherung\\',       // Standard-Speicherpfad (leer lassen für Dialog)
         iconSize = '32px',                          // ⭐ NEU: Icon-Größe
       // Ausschlussliste (Dateien/Ordner, die nicht gesichert werden sollen)
       excludes = 'bookmarkbackups *cache* crashes fftmp *healthreport* minidumps safebrowsing *webapps* saved-telemetry-pings *thumbnails* *session* *Telemetry* *hotfix* *.sqlite-shm *.sqlite-wal *.bak parent.lock blocklist.xml content-prefs.sqlite directoryLinks.json mimeTypes.rdf compatibility.ini parent.lock formhistory.sqlite',
      // ■■ END UserConfiguration ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    
      curProfDir = PathUtils.toFileURI(PathUtils.join(PathUtils.profileDir));
    
      // SVG-Unterstützung aktivieren (falls nicht bereits aktiv)
      if (Services.prefs.getBoolPref('svg.context-properties.content.enabled') == false) {
        Services.prefs.setBoolPref('svg.context-properties.content.enabled', true);
      }
    
      // ---- BUTTON ERSTELLEN ----
      try {
        CustomizableUI.createWidget({
          id: id,
          defaultArea: CustomizableUI.AREA_NAVBAR,
          label: label,
          tooltiptext: tooltiptext,
          onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("' + curProfDir + iconPath + icon + '")';
            button.style.minWidth = 'fit-content';
            button.style.color = colour;
          }
        });
      } catch(e) {}
    
      // ---- ICON-GRÖßE ANPASSEN (CSS Injection) ----
      let sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
      let uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent(`
        #${id} .toolbarbutton-icon {
          width: ${iconSize} !important;
          height: ${iconSize} !important;
        }
      `), null, null);
      sss.loadAndRegisterSheet(uri, sss.AUTHOR_SHEET);
    
      // ---- FUNKTIONEN ----
      function showAlert(aTitle, aString) {
        const AlertNotification = Components.Constructor(
          '@mozilla.org/alert-notification;1',
          'nsIAlertNotification',
          'initWithObject'
        );
        Cc['@mozilla.org/alerts-service;1'].getService(Ci.nsIAlertsService).showAlert(
          new AlertNotification({ title: aTitle, text: aString })
        );
      }
    
      function performBackup() {
        let path = basePath;
    
        if (!path) {
          const nsIFilePicker = Ci.nsIFilePicker;
          const FP = Cc['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
          FP.init(window, 'Sicherungspfad wählen', nsIFilePicker.modeGetFolder);
    
          if (FP.show() !== nsIFilePicker.returnOK) {
            return;
          }
          path = FP.file.path;
        }
    
        const excludesRegex = new RegExp(
          excludes.replace(/\./g, '\\.').replace(/\*/g, '.*').replace(/\s+/g, '|'),
          'i'
        );
    
        const zw = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
        const pr = {PR_RDONLY: 0x01, PR_WRONLY: 0x02, PR_RDWR: 0x04, PR_CREATE_FILE: 0x08, PR_APPEND: 0x10, PR_TRUNCATE: 0x20, PR_SYNC: 0x40, PR_EXCL: 0x80};
        const fu = ChromeUtils.importESModule('resource://gre/modules/FileUtils.sys.mjs').FileUtils;
        const dir = new FileUtils.File(PathUtils.join(PathUtils.profileDir, []));
    
        const d = new Date();
        const dateStr = d.getDate().toString().padStart(2, '0') + '.' +
                       (d.getMonth() + 1).toString().padStart(2, '0') + '.' +
                       d.getFullYear() + ' - ' +
                       d.getHours().toString().padStart(2, '0') + '\u2236' +
                       d.getMinutes().toString().padStart(2, '0');
    
        const archiveName = 'Profil Andreas ' + AppConstants.MOZ_APP_VERSION_DISPLAY + ' - ' + dateStr + '.zip';
        const xpi = fu.File(path + '\\' + archiveName);
    
        zw.open(xpi, pr.PR_RDWR | pr.PR_CREATE_FILE | pr.PR_TRUNCATE);
        const dirArr = [dir];
    
        for (let i = 0; i < dirArr.length; i++) {
          const dirEntries = dirArr[i].directoryEntries;
          while (dirEntries.hasMoreElements()) {
            const entry = dirEntries.getNext().QueryInterface(Ci.nsIFile);
    
            if (entry.path === xpi.path) continue;
    
            if (entry.isDirectory()) {
              dirArr.push(entry);
            }
    
            const relPath = entry.path.replace(dirArr[0].path, '');
            if (relPath.match(excludesRegex)) continue;
    
            const saveInZipAs = relPath.substr(1).replace(/\\/g, '/');
            try {
              zw.addEntryFile(saveInZipAs, Ci.nsIZipWriter.COMPRESSION_FASTEST, entry, false);
            } catch (e) {}
          }
        }
        zw.close();
    
        showAlert('Profilsicherung', 'Die aktuelle Konfiguration wurde als:\n' + archiveName + '\ngesichert in:\n' + path);
      }
    
      // ---- KLICK-HANDLER ----
      (function setupClickHandler() {
        const button = document.getElementById(id);
        if (button) {
          button.addEventListener('click', event => {
            if (event.button !== 0) return;
            performBackup();
          });
        } else {
          setTimeout(setupClickHandler, 100);
        }
      })();
    
    })();
    Alles anzeigen
  • Nackter Firefox nach Update

    • Mira_Belle
    • 10. September 2026 um 20:27

    Sehr merkwürdig!
    Wenn Du den Firefox neu installierst, können "die" Dateien gar nicht da sein!
    Von welchen Dateien "sprechen" wir eigentlich?
    Weder das Unterverzeichnis userChromeJS mit den Dateien

    • main.js
    • utilities.js
    • Readme.txt

    noch die Datei config.js dürften vorhanden gewesen sein!

    Und im Profil dürfte es auch keinen Ordner chrome samt Inhalt geben!


    Es ist nicht wirklich Zielführen, wenn bei der Wiederherstellung einfach das, möglicherweise,
    kaputte Profilverzeichnis zurückgespielt wird.

    Besser wäre es, den Fuchs komplett "neu" zu machen!
    Vorzubereiten, dass es CSS kann und dass das mit JavaScript funktioniert.
    Und für den ersten Test nur ein einziges Script in das passende Verzeichnis kopiert.

    Ja, die bisherigen Erweiterungen muss man dann neu installieren, aber man kann dabei ja auch
    gleich mal putzen und unbenutzte Erweiterungen gleich mal links liegen lassen.

    Wenn dann der Firefox funktioniert, so wie er soll, eine Sicherung machen!

  • Nackter Firefox nach Update

    • Mira_Belle
    • 10. September 2026 um 10:32

    .DeJaVu Sensei hatte laut seiner Aussage, den Updateprozess noch gar nicht richtig abgeschlossen,
    und den Rechner einfach heruntergefahren!
    Das kann Windows schon mal aus dem Tritt bringen und wenn dann beim wieder Hochfahren die Setup.exe aus dem
    Temp ein wiederholtes Mal neu gestartet wird und Einträge in der Reg nicht mehr passen, ist's 'ne Neuinstallation.

    Ist aber nur ein Erklärungsversuch und lässt sich natürlich nicht mehr nachvollziehen, was der wirkliche Grund war!

    Und weil so etwas wieder passieren könnte, der Rat an Sensei einfach den Fuchs selber machen lassen!
    Neuinstallieren.

  • Aufruf von Shadow Dateien / Skript-Vorstellung: ShadowCSSLoader.uc.js

    • Mira_Belle
    • 10. September 2026 um 10:24

    .DeJaVu Da haust Du aber wieder einen Raus!

    Das kränkt mich ein wenig!

    Lass es mich zerpflücken.
    Ich glaube nicht, dass FuchsFan den Anspruch erhebt BrokenHeart oder aborix das Wasser zu reichen!
    Tu ich auch nicht!!
    Und ja, setzt Du mir ein mir unbekanntes Script vor die Nase, kann ich es nicht lesen.

    Was ich aber sehr wohl kann, ist bestehende Scripte, wenn es nur recht kleine Änderungen gibt,
    so ganz ohne KI wieder zum Leben zu erwecken!
    Natürlich brauche ich die Info's, was Mozilla da geändert hat!
    Denke aber, dass das eigentlich jeder hinbekommen könnte, ist ja kein Hexenwerk!

    So manches bestehende Script habe ich auch ohne KI neu formatiert,
    habe Variablen eingebaut und einen Konfigurationsbereich geschaffen!

    Auf diese Idee hatte mich einst Mitleser gebracht!

    So, nun das Komplizierte prompten!
    Du möchtest mehr darüber wissen.
    OK.
    Ja Du hast recht, manchmal braucht es mehrere Anläufe, UND hin und wieder nutze ich außer mistral auch noch
    die Google KI! Also das, was Du angeboten bekommst, wenn Du bei Google was suchst!
    Auch diese KI lässt sich bisweilen dazu missbrauchen.

    So hin und wieder nutze ich auch noch mal "LMArena", da treten dann zwei verschiedene KI's gegeneinander an,
    aber man weiß nie, welche das sind! Daher mache ich das nur noch sehr selten!

    Aber wenn Du wirklich mehr, also viel mehr wissen möchtest über die Entstehung eines bestimmten Scripts,
    kannst Du ja auch nachfragen!!
    Wenn ich z.B. es mit mistral erstellt habe, da habe ich einen Account, habe ich auch den Verlauf,
    den könnte ich Dir dann z.B. per PN zukommen lassen.

    Bei anderen KI's habe ich, so glaube ich, bisher noch keine Accounts und ich versuche so weit es eben geht,
    die "Amis" außen vorzulassen.

Unterstütze uns!

Jährlich (2026)

71,6 %

71,6% (554,79 von 775 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon