Compare commits

...

6 Commits

Author SHA1 Message Date
exu
ad608fe769 Fix firefox path here. (Python version appears to be fixed already) 2024-01-10 20:58:36 +01:00
exu
5f6f83cb5c Update to lepton 8.5.1 2024-01-10 20:49:04 +01:00
exu
82e9f64e45 Add very bad no good workaround for nextcloud not showing in tray 2024-01-10 20:47:05 +01:00
exu
e1cafcfd6a Rewriting config-user.sh
The easy parts of config-user.sh have been rewritten to python.
I tried to avoid using subprocess wherever possible.
Some parts remain open (see TODOs), but it should mostly work. Probably
2024-01-04 16:34:23 +01:00
exu
c6116bac21 Move user, root and management parts into separate scripts 2024-01-04 10:08:23 +01:00
exu
891b19ad16 Remove previous python script 2024-01-04 10:07:52 +01:00
15 changed files with 1042 additions and 1184 deletions

View File

@ -309,8 +309,9 @@ font pango:Fira Mono 9
#Authentication dialog #Authentication dialog
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
#nextcloud # nextcloud
exec --no-startup-id nextcloud --background # **VERY BAD** workaround for issue https://github.com/Alexays/Waybar/issues/2437
exec --no-startup-id sleep 20; nextcloud --background
# network # network
exec --no-startup-id nm-applet exec --no-startup-id nm-applet

View File

@ -1,3 +1,3 @@
[Info] [Info]
Ver=v8.5.0 Ver=v8.5.1
Branch=photon-style Branch=photon-style

View File

@ -1945,7 +1945,7 @@
--input-color: var(--arrowpanel-color, FieldText); --input-color: var(--arrowpanel-color, FieldText);
} }
/*== Sidebar - Field Color ===================================================*/ /*== Sidebar - Field Color ===================================================*/
html[lwt-sidebar] body { html[lwt-sidebar]:not(#main-window) body {
background-color: var(--lwt-sidebar-background-color, Field) !important; background-color: var(--lwt-sidebar-background-color, Field) !important;
color: var(--lwt-sidebar-text-color, FieldText) !important; color: var(--lwt-sidebar-text-color, FieldText) !important;
} }
@ -6694,6 +6694,10 @@
--tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */ --tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */
--tab-selected-bgimage: unset !important; /* Above FF v101 */ --tab-selected-bgimage: unset !important; /* Above FF v101 */
} }
#TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon,
.tab-background:is([selected], [multiselected]) {
background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important;
}
#tabbrowser-tabs:not([movingtab]) #tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox
> .tabbrowser-tab > .tabbrowser-tab
@ -7189,18 +7193,21 @@
@supports -moz-bool-pref("userChrome.tab.photon_like_contextline") or -moz-bool-pref("userChrome.tab.static_separator") or -moz-bool-pref( @supports -moz-bool-pref("userChrome.tab.photon_like_contextline") or -moz-bool-pref("userChrome.tab.static_separator") or -moz-bool-pref(
"userChrome.tab.bar_separator" "userChrome.tab.bar_separator"
) { ) {
:root[lwtheme-mozlightdark] #tabbrowser-tabs, @supports -moz-bool-pref("userChrome.tab.blue_accent") {
:root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], :root,
:root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] { #tabbrowser-tabs {
--tab-line-color: rgb(10, 132, 255) !important; --tab-line-color: rgb(10, 132, 255) !important;
}
@media (-moz-gtk-csd-available) {
:root:not(:-moz-lwtheme) #tabbrowser-tabs {
--tab-line-color: AccentColor !important; /* -moz-accent-color */
} }
@supports -moz-bool-pref("userChrome.compatibility.accent_color") { }
@supports not -moz-bool-pref("userChrome.tab.blue_accent") {
@media (-moz-gtk-csd-available) {
:root:not(:-moz-lwtheme) #tabbrowser-tabs { :root:not(:-moz-lwtheme) #tabbrowser-tabs {
--tab-line-color: Highlight !important; /* -moz-accent-color */ --tab-line-color: AccentColor !important; /* -moz-accent-color */
}
@supports -moz-bool-pref("userChrome.compatibility.accent_color") {
:root:not(:-moz-lwtheme) #tabbrowser-tabs {
--tab-line-color: Highlight !important; /* -moz-accent-color */
}
} }
} }
} }
@ -8471,6 +8478,7 @@
--uc-multirow-bookmark-rows: 3; --uc-multirow-bookmark-rows: 3;
--uc-multirow-bookmark-row-margin: 2px; --uc-multirow-bookmark-row-margin: 2px;
max-height: none !important; max-height: none !important;
height: unset !important;
} }
#PlacesToolbar > hbox { #PlacesToolbar > hbox {
display: block; display: block;
@ -8484,7 +8492,7 @@
max-height: calc( max-height: calc(
var(--uc-multirow-bookmark-rows) * var(--uc-multirow-bookmark-rows) *
( (
var(--uc-bm-height, calc(20px + 2 * var(--bookmark-block-padding, 4px))) + 2 * var(--uc-bm-height, calc(20px + var(--bookmark-block-padding, 4px))) + 2 *
var(--uc-multirow-bookmark-row-margin) var(--uc-multirow-bookmark-row-margin)
) )
) !important; ) !important;
@ -11196,6 +11204,7 @@
#appMenu_troubleShooting { #appMenu_troubleShooting {
list-style-image: url("chrome://global/skin/icons/more.svg"); list-style-image: url("chrome://global/skin/icons/more.svg");
} }
#appMenu-report-broken-site-button,
#appMenu_help_reportSiteIssue { #appMenu_help_reportSiteIssue {
list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); list-style-image: url("chrome://global/skin/icons/lightbulb.svg");
} }
@ -11596,6 +11605,9 @@
padding-inline-start: var(--menu-background-padding-default) !important; padding-inline-start: var(--menu-background-padding-default) !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
.menupopup-arrowscrollbox {
padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */
}
} }
@media (-moz-platform: windows), (-moz-gtk-csd-available) { @media (-moz-platform: windows), (-moz-gtk-csd-available) {
@supports -moz-bool-pref("userChrome.theme.non_native_menu") { @supports -moz-bool-pref("userChrome.theme.non_native_menu") {
@ -11661,6 +11673,9 @@
padding-inline-start: var(--menu-background-padding-default) !important; padding-inline-start: var(--menu-background-padding-default) !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
.menupopup-arrowscrollbox {
padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */
}
} }
} }
} }
@ -12105,9 +12120,7 @@
#context-openlinkincurrent { #context-openlinkincurrent {
--menuitem-image: url("../icons/link-square.svg"); --menuitem-image: url("../icons/link-square.svg");
} }
#context-openlinkincontainertab { #context-openlinkincontainertab,
--menuitem-image: var(--uc-new-tab-icon);
}
#context-openlinkintab { #context-openlinkintab {
--menuitem-image: var(--uc-new-tab-icon); --menuitem-image: var(--uc-new-tab-icon);
} }
@ -12243,30 +12256,40 @@
#fill-login-generated-password { #fill-login-generated-password {
--menuitem-image: url("chrome://browser/skin/login.svg"); --menuitem-image: url("chrome://browser/skin/login.svg");
} }
#use-relay-mask {
--menuitem-image: url("../icons/relay-logo.svg");
}
#manage-saved-logins { #manage-saved-logins {
--menuitem-image: url("../icons/key-multiple.svg"); --menuitem-image: url("../icons/key-multiple.svg");
} }
#context-undo { #context-undo,
#context-pdfjs-undo {
--menuitem-image: url("../icons/undo.svg"); --menuitem-image: url("../icons/undo.svg");
} }
@supports -moz-bool-pref("userChrome.icon.menu.full") { @supports -moz-bool-pref("userChrome.icon.menu.full") {
#context-redo { #context-redo,
#context-pdfjs-redo {
--menuitem-image: url("../icons/redo.svg"); --menuitem-image: url("../icons/redo.svg");
} }
} }
#context-cut { #context-cut,
#context-pdfjs-cut {
--menuitem-image: url("../icons/edit-cut.svg"); --menuitem-image: url("../icons/edit-cut.svg");
} }
#context-copy { #context-copy,
#context-pdfjs-copy {
--menuitem-image: url("../icons/edit-copy.svg"); --menuitem-image: url("../icons/edit-copy.svg");
} }
#context-paste { #context-paste,
#context-pdfjs-paste {
--menuitem-image: url("../icons/edit-paste.svg"); --menuitem-image: url("../icons/edit-paste.svg");
} }
#context-delete { #context-delete,
#context-pdfjs-delete {
--menuitem-image: url("chrome://global/skin/icons/delete.svg"); --menuitem-image: url("chrome://global/skin/icons/delete.svg");
} }
#context-selectall { #context-selectall,
#context-pdfjs-selectall {
--menuitem-image: url("../icons/select-all-on.svg"); --menuitem-image: url("../icons/select-all-on.svg");
} }
#context-reveal-password { #context-reveal-password {
@ -13028,6 +13051,9 @@
#menu_openHelp { #menu_openHelp {
--menuitem-image: url("chrome://global/skin/icons/help.svg"); --menuitem-image: url("chrome://global/skin/icons/help.svg");
} }
#help_reportBrokenSite {
--menuitem-image: url("chrome://global/skin/icons/lightbulb.svg");
}
#feedbackPage { #feedbackPage {
--menuitem-image: url("../icons/send.svg"); --menuitem-image: url("../icons/send.svg");
} }
@ -13159,6 +13185,12 @@
} }
} }
/*= Floorp Browser ===========================================================*/ /*= Floorp Browser ===========================================================*/
#ssbPageAction-image {
list-style-image: url("../icons/pwa-install.svg");
}
#ssbPageAction-image[open-ssb="true"] {
list-style-image: url("../icons/pwa-launch.svg");
}
@supports -moz-bool-pref("userChrome.icon.panel") { @supports -moz-bool-pref("userChrome.icon.panel") {
#rebootappmenu { #rebootappmenu {
list-style-image: url("../icons/refresh-cw.svg"); list-style-image: url("../icons/refresh-cw.svg");
@ -13166,6 +13198,15 @@
#openprofiledir { #openprofiledir {
list-style-image: var(--uc-folder-icon); list-style-image: var(--uc-folder-icon);
} }
#appMenu-ssb-button {
list-style-image: url("../icons/pwa-manage.svg");
}
#appMenu-install-or-open-ssb-current-page-button {
list-style-image: url("../icons/pwa-install.svg");
}
#appMenu-install-or-open-ssb-current-page-button[open-ssb="true"] {
list-style-image: url("../icons/pwa-launch.svg");
}
} }
@supports -moz-bool-pref("userChrome.icon.menu") { @supports -moz-bool-pref("userChrome.icon.menu") {
#toggle_sharemode { #toggle_sharemode {
@ -13213,6 +13254,12 @@
#deleteWebpanelMenu { #deleteWebpanelMenu {
--menuitem-image: url("chrome://global/skin/icons/delete.svg"); --menuitem-image: url("chrome://global/skin/icons/delete.svg");
} }
#run-ssb-contextmenu {
--menuitem-image: url("../icons/pwa-launch.svg");
}
#uninstall-ssb-contextmenu {
--menuitem-image: url("../icons/pwa-remove.svg");
}
} }
} }
/*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /*@ NIGHTLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
@ -15206,7 +15253,7 @@
} }
} }
@media (-moz-bool-pref: "userChrome.theme.fully_color") { @media (-moz-bool-pref: "userChrome.theme.fully_color") {
html[lwt-sidebar] body { html[lwt-sidebar]:not(#main-window) body {
background-color: var(--lwt-sidebar-background-color, Field) !important; background-color: var(--lwt-sidebar-background-color, Field) !important;
color: var(--lwt-sidebar-text-color, FieldText) !important; color: var(--lwt-sidebar-text-color, FieldText) !important;
} }
@ -20505,6 +20552,10 @@
--tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */ --tab-selected-bgcolor: unset !important; /* Original: rgb(255,255,255); */
--tab-selected-bgimage: unset !important; /* Above FF v101 */ --tab-selected-bgimage: unset !important; /* Above FF v101 */
} }
#TabsToolbar #firefox-view-button[open] > .toolbarbutton-icon,
.tab-background:is([selected], [multiselected]) {
background-color: var(--tab-selected-bgcolor, var(--toolbar-bgcolor)) !important;
}
#tabbrowser-tabs:not([movingtab]) #tabbrowser-tabs:not([movingtab])
> #tabbrowser-arrowscrollbox > #tabbrowser-arrowscrollbox
> .tabbrowser-tab > .tabbrowser-tab
@ -21110,25 +21161,24 @@
} }
} }
/*= Selected Tab - Photon like contextline ===================================*/ /*= Selected Tab - Photon like contextline ===================================*/
@media (-moz-bool-pref: "userChrome.tab.photon_like_contextline"), @media (-moz-bool-pref: "userChrome.tab.photon_like_contextline") and (-moz-bool-pref: "userChrome.tab.blue_accent"),
(-moz-bool-pref: "userChrome.tab.static_separator"), (-moz-bool-pref: "userChrome.tab.static_separator") and (-moz-bool-pref: "userChrome.tab.blue_accent"),
(-moz-bool-pref: "userChrome.tab.bar_separator") { (-moz-bool-pref: "userChrome.tab.bar_separator") and (-moz-bool-pref: "userChrome.tab.blue_accent") {
:root[lwtheme-mozlightdark] #tabbrowser-tabs, :root,
:root[style*="--lwt-accent-color: rgb(240, 240, 244); --lwt-text-color: rgba(21, 20, 26);"], #tabbrowser-tabs {
:root[style*="--lwt-accent-color: rgb(28, 27, 34); --lwt-text-color: rgba(251, 251, 254);"] {
--tab-line-color: rgb(10, 132, 255) !important; --tab-line-color: rgb(10, 132, 255) !important;
} }
} }
@media (-moz-bool-pref: "userChrome.tab.photon_like_contextline") and (-moz-gtk-csd-available), @media (-moz-bool-pref: "userChrome.tab.photon_like_contextline") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available),
(-moz-bool-pref: "userChrome.tab.static_separator") and (-moz-gtk-csd-available), (-moz-bool-pref: "userChrome.tab.static_separator") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available),
(-moz-bool-pref: "userChrome.tab.bar_separator") and (-moz-gtk-csd-available) { (-moz-bool-pref: "userChrome.tab.bar_separator") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available) {
:root:not(:-moz-lwtheme) #tabbrowser-tabs { :root:not(:-moz-lwtheme) #tabbrowser-tabs {
--tab-line-color: AccentColor !important; /* -moz-accent-color */ --tab-line-color: AccentColor !important; /* -moz-accent-color */
} }
} }
@media (-moz-bool-pref: "userChrome.tab.photon_like_contextline") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color"), @media (-moz-bool-pref: "userChrome.tab.photon_like_contextline") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color"),
(-moz-bool-pref: "userChrome.tab.static_separator") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color"), (-moz-bool-pref: "userChrome.tab.static_separator") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color"),
(-moz-bool-pref: "userChrome.tab.bar_separator") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color") { (-moz-bool-pref: "userChrome.tab.bar_separator") and (not (-moz-bool-pref: "userChrome.tab.blue_accent")) and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.compatibility.accent_color") {
:root:not(:-moz-lwtheme) #tabbrowser-tabs { :root:not(:-moz-lwtheme) #tabbrowser-tabs {
--tab-line-color: Highlight !important; /* -moz-accent-color */ --tab-line-color: Highlight !important; /* -moz-accent-color */
} }
@ -22468,6 +22518,7 @@
--uc-multirow-bookmark-rows: 3; --uc-multirow-bookmark-rows: 3;
--uc-multirow-bookmark-row-margin: 2px; --uc-multirow-bookmark-row-margin: 2px;
max-height: none !important; max-height: none !important;
height: unset !important;
} }
#PlacesToolbar > hbox { #PlacesToolbar > hbox {
display: block; display: block;
@ -22481,7 +22532,7 @@
max-height: calc( max-height: calc(
var(--uc-multirow-bookmark-rows) * var(--uc-multirow-bookmark-rows) *
( (
var(--uc-bm-height, calc(20px + 2 * var(--bookmark-block-padding, 4px))) + 2 * var(--uc-bm-height, calc(20px + var(--bookmark-block-padding, 4px))) + 2 *
var(--uc-multirow-bookmark-row-margin) var(--uc-multirow-bookmark-row-margin)
) )
) !important; ) !important;
@ -25655,6 +25706,7 @@
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") {
#appMenu-report-broken-site-button,
#appMenu_help_reportSiteIssue { #appMenu_help_reportSiteIssue {
list-style-image: url("chrome://global/skin/icons/lightbulb.svg"); list-style-image: url("chrome://global/skin/icons/lightbulb.svg");
} }
@ -26128,6 +26180,9 @@
padding-inline-start: var(--menu-background-padding-default) !important; padding-inline-start: var(--menu-background-padding-default) !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
.menupopup-arrowscrollbox {
padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */
}
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available), @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available),
(not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) { (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-gtk-csd-available) and (-moz-bool-pref: "userChrome.theme.non_native_menu") and (-moz-gtk-csd-available) {
@ -26188,6 +26243,9 @@
padding-inline-start: var(--menu-background-padding-default) !important; padding-inline-start: var(--menu-background-padding-default) !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
.menupopup-arrowscrollbox {
padding-inline: 0 !important; /* Original: padding: var(--panel-padding); --panel-padding-block: 4px; */
}
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-platform: windows) {
:root { :root {
@ -26714,11 +26772,7 @@
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-openlinkincontainertab { #context-openlinkincontainertab,
--menuitem-image: var(--uc-new-tab-icon);
}
}
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-openlinkintab { #context-openlinkintab {
--menuitem-image: var(--uc-new-tab-icon); --menuitem-image: var(--uc-new-tab-icon);
} }
@ -26939,43 +26993,55 @@
--menuitem-image: url("chrome://browser/skin/login.svg"); --menuitem-image: url("chrome://browser/skin/login.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#use-relay-mask {
--menuitem-image: url("../icons/relay-logo.svg");
}
}
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#manage-saved-logins { #manage-saved-logins {
--menuitem-image: url("../icons/key-multiple.svg"); --menuitem-image: url("../icons/key-multiple.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-undo { #context-undo,
#context-pdfjs-undo {
--menuitem-image: url("../icons/undo.svg"); --menuitem-image: url("../icons/undo.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") and (-moz-bool-pref: "userChrome.icon.menu.full") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") and (-moz-bool-pref: "userChrome.icon.menu.full") {
#context-redo { #context-redo,
#context-pdfjs-redo {
--menuitem-image: url("../icons/redo.svg"); --menuitem-image: url("../icons/redo.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-cut { #context-cut,
#context-pdfjs-cut {
--menuitem-image: url("../icons/edit-cut.svg"); --menuitem-image: url("../icons/edit-cut.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-copy { #context-copy,
#context-pdfjs-copy {
--menuitem-image: url("../icons/edit-copy.svg"); --menuitem-image: url("../icons/edit-copy.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-paste { #context-paste,
#context-pdfjs-paste {
--menuitem-image: url("../icons/edit-paste.svg"); --menuitem-image: url("../icons/edit-paste.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-delete { #context-delete,
#context-pdfjs-delete {
--menuitem-image: url("chrome://global/skin/icons/delete.svg"); --menuitem-image: url("chrome://global/skin/icons/delete.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.context_menu") {
#context-selectall { #context-selectall,
#context-pdfjs-selectall {
--menuitem-image: url("../icons/select-all-on.svg"); --menuitem-image: url("../icons/select-all-on.svg");
} }
} }
@ -28080,6 +28146,11 @@
--menuitem-image: url("chrome://global/skin/icons/help.svg"); --menuitem-image: url("chrome://global/skin/icons/help.svg");
} }
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") {
#help_reportBrokenSite {
--menuitem-image: url("chrome://global/skin/icons/lightbulb.svg");
}
}
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") and (-moz-bool-pref: "userChrome.icon.global_menu") {
#feedbackPage { #feedbackPage {
--menuitem-image: url("../icons/send.svg"); --menuitem-image: url("../icons/send.svg");
@ -28245,6 +28316,14 @@
--menuitem-image: url("chrome://browser/skin/onion.svg"); --menuitem-image: url("chrome://browser/skin/onion.svg");
} }
} }
@media not (-moz-bool-pref: "userChrome.icon.disabled") {
#ssbPageAction-image {
list-style-image: url("../icons/pwa-install.svg");
}
#ssbPageAction-image[open-ssb="true"] {
list-style-image: url("../icons/pwa-launch.svg");
}
}
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.panel") {
#rebootappmenu { #rebootappmenu {
list-style-image: url("../icons/refresh-cw.svg"); list-style-image: url("../icons/refresh-cw.svg");
@ -28252,6 +28331,15 @@
#openprofiledir { #openprofiledir {
list-style-image: var(--uc-folder-icon); list-style-image: var(--uc-folder-icon);
} }
#appMenu-ssb-button {
list-style-image: url("../icons/pwa-manage.svg");
}
#appMenu-install-or-open-ssb-current-page-button {
list-style-image: url("../icons/pwa-install.svg");
}
#appMenu-install-or-open-ssb-current-page-button[open-ssb="true"] {
list-style-image: url("../icons/pwa-launch.svg");
}
} }
@media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") { @media (not (-moz-bool-pref: "userChrome.icon.disabled")) and (-moz-bool-pref: "userChrome.icon.menu") {
#toggle_sharemode { #toggle_sharemode {
@ -28299,4 +28387,10 @@
#deleteWebpanelMenu { #deleteWebpanelMenu {
--menuitem-image: url("chrome://global/skin/icons/delete.svg"); --menuitem-image: url("chrome://global/skin/icons/delete.svg");
} }
#run-ssb-contextmenu {
--menuitem-image: url("../icons/pwa-launch.svg");
}
#uninstall-ssb-contextmenu {
--menuitem-image: url("../icons/pwa-remove.svg");
}
} }

View File

@ -1515,6 +1515,7 @@
background: var(--in-content-page-background) !important; background: var(--in-content-page-background) !important;
} }
/* Text */ /* Text */
blockquote,
.mzp-c-menu-category .mzp-c-menu-title, .mzp-c-menu-category .mzp-c-menu-title,
.mzp-c-menu-item .mzp-c-menu-item-link, .mzp-c-menu-item .mzp-c-menu-item-link,
.mzp-c-menu-item .mzp-c-menu-item-link > *, .mzp-c-menu-item .mzp-c-menu-item-link > *,
@ -1609,6 +1610,9 @@
.support-callouts > .card.is-inverse :is(h1, h2, h3, h4, h5, h6, li, p) { .support-callouts > .card.is-inverse :is(h1, h2, h3, h4, h5, h6, li, p) {
color: var(--in-content-page-color) !important; color: var(--in-content-page-color) !important;
} }
blockquote {
border-color: var(--in-content-border-color) !important;
}
.sumo-button.secondary-button { .sumo-button.secondary-button {
border-color: transparent !important; border-color: transparent !important;
} }
@ -5130,6 +5134,7 @@
background: var(--in-content-page-background) !important; background: var(--in-content-page-background) !important;
} }
/* Text */ /* Text */
blockquote,
.mzp-c-menu-category .mzp-c-menu-title, .mzp-c-menu-category .mzp-c-menu-title,
.mzp-c-menu-item .mzp-c-menu-item-link, .mzp-c-menu-item .mzp-c-menu-item-link,
.mzp-c-menu-item .mzp-c-menu-item-link > *, .mzp-c-menu-item .mzp-c-menu-item-link > *,
@ -5224,6 +5229,9 @@
.support-callouts > .card.is-inverse :is(h1, h2, h3, h4, h5, h6, li, p) { .support-callouts > .card.is-inverse :is(h1, h2, h3, h4, h5, h6, li, p) {
color: var(--in-content-page-color) !important; color: var(--in-content-page-color) !important;
} }
blockquote {
border-color: var(--in-content-border-color) !important;
}
.sumo-button.secondary-button { .sumo-button.secondary-button {
border-color: transparent !important; border-color: transparent !important;
} }

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity"><path fill-rule="evenodd" d="M3.63 2.255c-.76 0-1.375.616-1.375 1.375v5.74c0 .76.616 1.375 1.375 1.375h8.74c.76 0 1.375-.616 1.375-1.375V9a.625.625 0 1 1 1.25 0v.37a2.625 2.625 0 0 1-2.625 2.625H8.625V14a.625.625 0 1 1-1.25 0v-2.005H3.63A2.625 2.625 0 0 1 1.005 9.37V3.63A2.625 2.625 0 0 1 3.63 1.005H8a.625.625 0 1 1 0 1.25H3.63Z" clip-rule="evenodd"/><path d="M4 14.375c0-.345.28-.625.625-.625h6.75a.625.625 0 1 1 0 1.25h-6.75A.625.625 0 0 1 4 14.375Z"/><path fill-rule="evenodd" d="M14.313 4.689a.625.625 0 0 1-.002.884l-2.25 2.24a.625.625 0 0 1-.859.022l-2.49-2.24a.625.625 0 0 1 .836-.93l1.447 1.302V1.63a.625.625 0 1 1 1.25 0v4.236l1.184-1.179a.625.625 0 0 1 .884.002Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 845 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity"><path fill-rule="evenodd" d="M3.63 2.255c-.76 0-1.375.616-1.375 1.375v5.74c0 .76.616 1.375 1.375 1.375h8.74c.76 0 1.375-.616 1.375-1.375V9a.625.625 0 1 1 1.25 0v.37a2.625 2.625 0 0 1-2.625 2.625H8.625V14a.625.625 0 1 1-1.25 0v-2.005H3.63A2.625 2.625 0 0 1 1.005 9.37V3.63A2.625 2.625 0 0 1 3.63 1.005H7a.625.625 0 1 1 0 1.25H3.63Z" clip-rule="evenodd"/><path d="M4 14.375c0-.345.28-.625.625-.625h6.75a.625.625 0 1 1 0 1.25h-6.75A.625.625 0 0 1 4 14.375Z"/><path fill-rule="evenodd" d="M9.005 1.63c0-.345.28-.625.625-.625h4.74c.345 0 .625.28.625.625v4.74a.625.625 0 1 1-1.25 0V3.139l-3.673 3.673a.625.625 0 1 1-.884-.884l3.673-3.673H9.63a.625.625 0 0 1-.625-.625Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 833 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity"><path fill-rule="evenodd" d="M3.63 2.255c-.76 0-1.375.616-1.375 1.375v5.74c0 .76.616 1.375 1.375 1.375h8.74c.76 0 1.375-.616 1.375-1.375V3.63c0-.76-.616-1.375-1.375-1.375H3.63ZM1.005 3.63A2.625 2.625 0 0 1 3.63 1.005h8.74a2.625 2.625 0 0 1 2.625 2.625v5.74a2.625 2.625 0 0 1-2.625 2.625H8.625V14a.625.625 0 1 1-1.25 0v-2.005H3.63A2.625 2.625 0 0 1 1.005 9.37V3.63Z" clip-rule="evenodd"/><path d="M4 14.375c0-.345.28-.625.625-.625h6.75a.625.625 0 1 1 0 1.25h-6.75A.625.625 0 0 1 4 14.375ZM7 5a1 1 0 0 1 2 0 1 1 0 0 1-2 0ZM10 5a1 1 0 1 1 2 0 1 1 0 1 1-2 0ZM4 8a1 1 0 0 1 2 0 1 1 0 0 1-2 0ZM7 8a1 1 0 0 1 2 0 1 1 0 0 1-2 0ZM10 8a1 1 0 1 1 2 0 1 1 0 1 1-2 0Z"/></svg>

After

Width:  |  Height:  |  Size: 804 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="context-fill" fill-opacity="context-fill-opacity"><path fill-rule="evenodd" d="M3.63 2.255c-.76 0-1.375.616-1.375 1.375v5.74c0 .76.616 1.375 1.375 1.375h8.74c.76 0 1.375-.616 1.375-1.375V9a.625.625 0 1 1 1.25 0v.37a2.625 2.625 0 0 1-2.625 2.625H8.625V14a.625.625 0 1 1-1.25 0v-2.005H3.63A2.625 2.625 0 0 1 1.005 9.37V3.63A2.625 2.625 0 0 1 3.63 1.005H7a.625.625 0 1 1 0 1.25H3.63Z" clip-rule="evenodd"/><path d="M4 14.375c0-.345.28-.625.625-.625h6.75a.625.625 0 1 1 0 1.25h-6.75A.625.625 0 0 1 4 14.375Z"/><path fill-rule="evenodd" d="M9.188 1.188a.625.625 0 0 1 .884 0l1.933 1.933 1.933-1.933a.625.625 0 1 1 .884.884l-1.933 1.933 1.933 1.933a.625.625 0 1 1-.884.884l-1.933-1.933-1.933 1.933a.625.625 0 1 1-.884-.884l1.933-1.933-1.933-1.933a.625.625 0 0 1 0-.884Z" clip-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 884 B

View File

@ -0,0 +1,6 @@
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<svg width="22" height="22" viewBox="0 0 22 22" fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg">
<path d="M20.054,4.777l-8.112-4.542c-0.579-0.313-1.277-0.313-1.856,0l-8.14,4.542C1.347,5.115,0.977,5.748,0.975,6.434v9.112c-0.005,0.689,0.368,1.324,0.971,1.655l8.112,4.542c0.283,0.17,0.61,0.26,0.942,0.257c0.331-0.001,0.657-0.089,0.943-0.257l8.112-4.542c0.598-0.337,0.969-0.969,0.971-1.655V6.434C21.022,5.748,20.652,5.115,20.054,4.777z M6.421,14.289c-0.054,0.194-0.183,0.357-0.359,0.455l-0.485,0.285c-0.115,0.055-0.243,0.085-0.371,0.087c-0.275-0.004-0.528-0.158-0.657-0.4c-0.1-0.173-0.126-0.381-0.073-0.573c0.054-0.194,0.183-0.357,0.359-0.454l0.481-0.283c0.371-0.228,0.826-0.087,1.033,0.312C6.449,13.889,6.475,14.095,6.421,14.289z M6.348,8.205c-0.131,0.242-0.382,0.396-0.657,0.4C5.562,8.603,5.435,8.574,5.32,8.519L4.834,8.233C4.649,8.141,4.508,7.978,4.447,7.78C4.385,7.582,4.408,7.367,4.51,7.186c0.102-0.18,0.274-0.312,0.474-0.362C5.185,6.773,5.398,6.809,5.573,6.92l0.485,0.285C6.431,7.404,6.572,7.861,6.348,8.205z M9.416,12.576c-0.054,0.193-0.183,0.357-0.357,0.454l-1.001,0.572c-0.115,0.055-0.242,0.084-0.37,0.085c-0.276-0.004-0.527-0.157-0.657-0.4c-0.1-0.173-0.126-0.381-0.073-0.573c0.054-0.192,0.183-0.356,0.359-0.454l1-0.572c0.177-0.095,0.386-0.115,0.579-0.056c0.192,0.059,0.355,0.193,0.448,0.371C9.442,12.176,9.468,12.382,9.416,12.576z M9.343,9.918c-0.131,0.243-0.381,0.396-0.656,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-1-0.572C6.952,9.442,6.827,8.976,7.03,8.605c0.098-0.176,0.261-0.304,0.454-0.357c0.194-0.054,0.4-0.028,0.573,0.073l1,0.571c0.176,0.098,0.304,0.261,0.357,0.455C9.469,9.537,9.443,9.745,9.343,9.918z M12.342,11.604c-0.081,0.164-0.225,0.287-0.4,0.342v5.793c0,0.426-0.345,0.771-0.771,0.771s-0.771-0.345-0.771-0.771v-5.767c-0.173-0.055-0.318-0.179-0.4-0.342c-0.107-0.203-0.118-0.445-0.028-0.657c-0.091-0.212-0.08-0.454,0.029-0.657c0.081-0.164,0.225-0.287,0.4-0.342V4.206c0-0.426,0.345-0.771,0.771-0.771s0.771,0.345,0.771,0.771v5.741c0.175,0.055,0.319,0.179,0.4,0.344c0.109,0.203,0.12,0.444,0.029,0.656C12.461,11.158,12.45,11.4,12.342,11.604z M15.313,13.26c-0.131,0.242-0.382,0.395-0.657,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-1-0.572c-0.349-0.212-0.467-0.661-0.267-1.017s0.648-0.487,1.009-0.297l1,0.572C15.398,12.46,15.513,12.946,15.313,13.26z M15.385,9.207c-0.054,0.194-0.183,0.357-0.359,0.455l-1,0.571c-0.115,0.055-0.242,0.085-0.371,0.085c-0.275-0.004-0.527-0.157-0.657-0.4c-0.099-0.173-0.125-0.379-0.071-0.573c0.054-0.194,0.183-0.357,0.359-0.455l1-0.571c0.179-0.095,0.386-0.115,0.58-0.056c0.192,0.059,0.355,0.192,0.45,0.371C15.414,8.807,15.44,9.014,15.385,9.207z M17.798,14.657c-0.131,0.242-0.382,0.396-0.657,0.4c-0.128-0.001-0.256-0.03-0.371-0.085l-0.487-0.286c-0.344-0.213-0.459-0.66-0.258-1.013c0.199-0.352,0.642-0.484,1.002-0.298l0.485,0.285C17.883,13.887,17.997,14.345,17.798,14.657z M17.868,7.806c-0.054,0.192-0.181,0.356-0.356,0.455l-0.485,0.286c-0.115,0.055-0.242,0.084-0.371,0.085c-0.271,0.01-0.525-0.135-0.657-0.371c-0.1-0.173-0.126-0.381-0.073-0.573s0.183-0.356,0.358-0.454l0.487-0.286c0.175-0.099,0.379-0.124,0.573-0.07c0.192,0.054,0.356,0.181,0.455,0.356C17.895,7.407,17.922,7.613,17.868,7.806z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -13,17 +13,17 @@ user_pref("accessibility.typeaheadfind.flashBar", 0);
user_pref("app.normandy.first_run", false); user_pref("app.normandy.first_run", false);
user_pref("app.normandy.migrationsApplied", 12); user_pref("app.normandy.migrationsApplied", 12);
user_pref("app.normandy.user_id", "386ca480-d13e-460a-b05c-42200328125f"); user_pref("app.normandy.user_id", "386ca480-d13e-460a-b05c-42200328125f");
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1700809591); user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1704910507);
user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1700809591); user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1704914107);
user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1700809591); user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1704910507);
user_pref("app.update.lastUpdateTime.region-update-timer", 1700809591); user_pref("app.update.lastUpdateTime.region-update-timer", 1704461757);
user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1700809639); user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1704910507);
user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1700809591); user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1704910507);
user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1699804270); user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1704465357);
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1700809591); user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1704910507);
user_pref("browser.aboutConfig.showWarning", false); user_pref("browser.aboutConfig.showWarning", false);
user_pref("browser.bookmarks.defaultLocation", "Sf1F8MX-syPh"); user_pref("browser.bookmarks.defaultLocation", "Sf1F8MX-syPh");
user_pref("browser.bookmarks.editDialog.confirmationHintShowCount", 1); user_pref("browser.bookmarks.editDialog.confirmationHintShowCount", 2);
user_pref("browser.bookmarks.showMobileBookmarks", true); user_pref("browser.bookmarks.showMobileBookmarks", true);
user_pref("browser.compactmode.show", true); user_pref("browser.compactmode.show", true);
user_pref("browser.contentblocking.category", "strict"); user_pref("browser.contentblocking.category", "strict");
@ -36,6 +36,7 @@ user_pref("browser.engagement.downloads-button.has-used", true);
user_pref("browser.engagement.fxa-toolbar-menu-button.has-used", true); user_pref("browser.engagement.fxa-toolbar-menu-button.has-used", true);
user_pref("browser.engagement.home-button.has-used", true); user_pref("browser.engagement.home-button.has-used", true);
user_pref("browser.firefox-view.feature-tour", "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}"); user_pref("browser.firefox-view.feature-tour", "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}");
user_pref("browser.firefox-view.view-count", 10);
user_pref("browser.migration.version", 142); user_pref("browser.migration.version", 142);
user_pref("browser.newtab.extensionControlled", true); user_pref("browser.newtab.extensionControlled", true);
user_pref("browser.newtab.privateAllowed", false); user_pref("browser.newtab.privateAllowed", false);
@ -53,27 +54,29 @@ user_pref("browser.pdfjs.feature-tour", "{\"screen\":\"\",\"complete\":true}");
user_pref("browser.protections_panel.infoMessage.seen", true); user_pref("browser.protections_panel.infoMessage.seen", true);
user_pref("browser.proton.enabled", true); user_pref("browser.proton.enabled", true);
user_pref("browser.proton.toolbar.version", 3); user_pref("browser.proton.toolbar.version", 3);
user_pref("browser.region.update.updated", 1700809592); user_pref("browser.region.update.updated", 1704461758);
user_pref("browser.rights.3.shown", true); user_pref("browser.rights.3.shown", true);
user_pref("browser.safebrowsing.malware.enabled", false); user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false); user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1700809562758"); user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1704910480199");
user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1700831162758"); user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1704932080199");
user_pref("browser.search.region", "CH"); user_pref("browser.search.region", "CH");
user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20230925122949"); user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20230925122949");
user_pref("browser.shell.mostRecentDateSetAsDefault", "1700809638"); user_pref("browser.shell.checkDefaultBrowser", true);
user_pref("browser.shell.mostRecentDateSetAsDefault", "1704910478");
user_pref("browser.startup.couldRestoreSession.count", 1); user_pref("browser.startup.couldRestoreSession.count", 1);
user_pref("browser.startup.homepage", "wiki.exu.li"); user_pref("browser.startup.homepage", "wiki.exu.li");
user_pref("browser.startup.homepage_override.buildID", "20231120231815"); user_pref("browser.startup.homepage_override.buildID", "20240109145044");
user_pref("browser.startup.homepage_override.mstone", "120.0"); user_pref("browser.startup.homepage_override.mstone", "121.0.1");
user_pref("browser.startup.lastColdStartupCheck", 1700809638); user_pref("browser.startup.lastColdStartupCheck", 1704910478);
user_pref("browser.startup.upgradeDialog.version", 106); user_pref("browser.startup.upgradeDialog.version", 106);
user_pref("browser.tabs.firefox-view.ui-state.tab-pickup.open", true);
user_pref("browser.toolbars.bookmarks.visibility", "always"); user_pref("browser.toolbars.bookmarks.visibility", "always");
user_pref("browser.translation.detectLanguage", false); user_pref("browser.translation.detectLanguage", false);
user_pref("browser.translation.neverForLanguages", "de"); user_pref("browser.translation.neverForLanguages", "de");
user_pref("browser.translation.ui.show", false); user_pref("browser.translation.ui.show", false);
user_pref("browser.translations.panelShown", true); user_pref("browser.translations.panelShown", true);
user_pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"unified-extensions-area\":[\"sponsorblocker_ajay_app-browser-action\",\"_e58d3966-3d76-4cd9-8552-1582fbc800c1_-browser-action\",\"clearcache_michel_de_almeida-browser-action\",\"search_kagi_com-browser-action\",\"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action\",\"_12cf650b-1822-40aa-bff0-996df6948878_-browser-action\",\"webtoepub_baka-tsuki_org-browser-action\",\"gdpr_cavi_au_dk-browser-action\",\"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action\",\"_6706d386-2d33-4e1e-bbf1-51b9e1ce47e1_-browser-action\",\"languagetool-webextension_languagetool_org-browser-action\",\"floccus_handmadeideas_org-browser-action\",\"contact_nhentaidownloader_zirk_eu-browser-action\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"home-button\",\"customizableui-special-spring1\",\"urlbar-container\",\"customizableui-special-spring2\",\"downloads-button\",\"ublock0_raymondhill_net-browser-action\",\"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action\",\"firefox-translations-addon_mozilla_org-browser-action\",\"_testpilot-containers-browser-action\",\"wayback_machine_mozilla_org-browser-action\",\"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action\",\"7esoorv3_alefvanoon_anonaddy_me-browser-action\",\"unified-extensions-button\",\"reset-pbm-toolbar-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"firefox-view-button\",\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"seen\":[\"save-to-pocket-button\",\"developer-button\",\"sponsorblocker_ajay_app-browser-action\",\"wayback_machine_mozilla_org-browser-action\",\"_e58d3966-3d76-4cd9-8552-1582fbc800c1_-browser-action\",\"clearcache_michel_de_almeida-browser-action\",\"search_kagi_com-browser-action\",\"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action\",\"ublock0_raymondhill_net-browser-action\",\"_12cf650b-1822-40aa-bff0-996df6948878_-browser-action\",\"_testpilot-containers-browser-action\",\"webtoepub_baka-tsuki_org-browser-action\",\"gdpr_cavi_au_dk-browser-action\",\"firefox-translations-addon_mozilla_org-browser-action\",\"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action\",\"7esoorv3_alefvanoon_anonaddy_me-browser-action\",\"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action\",\"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action\",\"_6706d386-2d33-4e1e-bbf1-51b9e1ce47e1_-browser-action\",\"languagetool-webextension_languagetool_org-browser-action\",\"floccus_handmadeideas_org-browser-action\",\"contact_nhentaidownloader_zirk_eu-browser-action\"],\"dirtyAreaCache\":[\"nav-bar\",\"unified-extensions-area\",\"toolbar-menubar\",\"TabsToolbar\",\"PersonalToolbar\"],\"currentVersion\":20,\"newElementCount\":4}"); user_pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"unified-extensions-area\":[\"sponsorblocker_ajay_app-browser-action\",\"_e58d3966-3d76-4cd9-8552-1582fbc800c1_-browser-action\",\"clearcache_michel_de_almeida-browser-action\",\"search_kagi_com-browser-action\",\"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action\",\"_12cf650b-1822-40aa-bff0-996df6948878_-browser-action\",\"webtoepub_baka-tsuki_org-browser-action\",\"gdpr_cavi_au_dk-browser-action\",\"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action\",\"_6706d386-2d33-4e1e-bbf1-51b9e1ce47e1_-browser-action\",\"languagetool-webextension_languagetool_org-browser-action\",\"floccus_handmadeideas_org-browser-action\",\"contact_nhentaidownloader_zirk_eu-browser-action\",\"_c49b13b1-5dee-4345-925e-0c793377e3fa_-browser-action\",\"_e4a8a97b-f2ed-450b-b12d-ee082ba24781_-browser-action\"],\"nav-bar\":[\"back-button\",\"forward-button\",\"stop-reload-button\",\"home-button\",\"customizableui-special-spring1\",\"urlbar-container\",\"customizableui-special-spring2\",\"downloads-button\",\"ublock0_raymondhill_net-browser-action\",\"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action\",\"firefox-translations-addon_mozilla_org-browser-action\",\"_testpilot-containers-browser-action\",\"wayback_machine_mozilla_org-browser-action\",\"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action\",\"7esoorv3_alefvanoon_anonaddy_me-browser-action\",\"unified-extensions-button\",\"reset-pbm-toolbar-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"TabsToolbar\":[\"firefox-view-button\",\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"PersonalToolbar\":[\"personal-bookmarks\"]},\"seen\":[\"save-to-pocket-button\",\"developer-button\",\"sponsorblocker_ajay_app-browser-action\",\"wayback_machine_mozilla_org-browser-action\",\"_e58d3966-3d76-4cd9-8552-1582fbc800c1_-browser-action\",\"clearcache_michel_de_almeida-browser-action\",\"search_kagi_com-browser-action\",\"enhancerforyoutube_maximerf_addons_mozilla_org-browser-action\",\"ublock0_raymondhill_net-browser-action\",\"_12cf650b-1822-40aa-bff0-996df6948878_-browser-action\",\"_testpilot-containers-browser-action\",\"webtoepub_baka-tsuki_org-browser-action\",\"gdpr_cavi_au_dk-browser-action\",\"firefox-translations-addon_mozilla_org-browser-action\",\"_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action\",\"7esoorv3_alefvanoon_anonaddy_me-browser-action\",\"_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action\",\"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action\",\"_6706d386-2d33-4e1e-bbf1-51b9e1ce47e1_-browser-action\",\"languagetool-webextension_languagetool_org-browser-action\",\"floccus_handmadeideas_org-browser-action\",\"contact_nhentaidownloader_zirk_eu-browser-action\",\"_c49b13b1-5dee-4345-925e-0c793377e3fa_-browser-action\",\"_e4a8a97b-f2ed-450b-b12d-ee082ba24781_-browser-action\"],\"dirtyAreaCache\":[\"nav-bar\",\"unified-extensions-area\",\"toolbar-menubar\",\"TabsToolbar\",\"PersonalToolbar\"],\"currentVersion\":20,\"newElementCount\":4}");
user_pref("browser.urlbar.quicksuggest.migrationVersion", 2); user_pref("browser.urlbar.quicksuggest.migrationVersion", 2);
user_pref("browser.urlbar.quicksuggest.scenario", "history"); user_pref("browser.urlbar.quicksuggest.scenario", "history");
user_pref("browser.urlbar.suggest.calculator", true); user_pref("browser.urlbar.suggest.calculator", true);
@ -90,13 +93,12 @@ user_pref("devtools.netmonitor.msg.visibleColumns", "[\"data\",\"time\"]");
user_pref("devtools.responsive.reloadNotification.enabled", false); user_pref("devtools.responsive.reloadNotification.enabled", false);
user_pref("devtools.toolbox.host", "right"); user_pref("devtools.toolbox.host", "right");
user_pref("devtools.toolbox.previousHost", "bottom"); user_pref("devtools.toolbox.previousHost", "bottom");
user_pref("devtools.toolbox.selectedTool", "netmonitor");
user_pref("devtools.toolbox.sidebar.width", 588); user_pref("devtools.toolbox.sidebar.width", 588);
user_pref("devtools.toolsidebar-height.inspector", 468); user_pref("devtools.toolsidebar-height.inspector", 468);
user_pref("devtools.toolsidebar-width.inspector", 500); user_pref("devtools.toolsidebar-width.inspector", 500);
user_pref("devtools.toolsidebar-width.inspector.splitsidebar", 225); user_pref("devtools.toolsidebar-width.inspector.splitsidebar", 225);
user_pref("distribution.archlinux.bookmarksProcessed", true); user_pref("distribution.archlinux.bookmarksProcessed", true);
user_pref("distribution.iniFile.exists.appversion", "120.0"); user_pref("distribution.iniFile.exists.appversion", "121.0.1");
user_pref("distribution.iniFile.exists.value", true); user_pref("distribution.iniFile.exists.value", true);
user_pref("doh-rollout.disable-heuristics", true); user_pref("doh-rollout.disable-heuristics", true);
user_pref("doh-rollout.doneFirstRun", true); user_pref("doh-rollout.doneFirstRun", true);
@ -107,12 +109,12 @@ user_pref("dom.security.https_only_mode_ever_enabled", true);
user_pref("extensions.activeThemeID", "default-theme@mozilla.org"); user_pref("extensions.activeThemeID", "default-theme@mozilla.org");
user_pref("extensions.blocklist.pingCountVersion", -1); user_pref("extensions.blocklist.pingCountVersion", -1);
user_pref("extensions.databaseSchema", 35); user_pref("extensions.databaseSchema", 35);
user_pref("extensions.dnr.lastStoreUpdateTag.5f25abbb-d076-4c4f-b285-9a0086d69305", "{a5cd49b5-6850-405d-bf8f-059064219c87}"); user_pref("extensions.dnr.lastStoreUpdateTag.5f25abbb-d076-4c4f-b285-9a0086d69305", "{a4f6b7d4-4808-472d-9b09-df8eb88da81d}");
user_pref("extensions.getAddons.cache.lastUpdate", 1700809638); user_pref("extensions.getAddons.cache.lastUpdate", 1704910509);
user_pref("extensions.getAddons.databaseSchema", 6); user_pref("extensions.getAddons.databaseSchema", 6);
user_pref("extensions.lastAppBuildId", "20231120231815"); user_pref("extensions.lastAppBuildId", "20240109145044");
user_pref("extensions.lastAppVersion", "120.0"); user_pref("extensions.lastAppVersion", "121.0.1");
user_pref("extensions.lastPlatformVersion", "120.0"); user_pref("extensions.lastPlatformVersion", "121.0.1");
user_pref("extensions.pendingOperations", false); user_pref("extensions.pendingOperations", false);
user_pref("extensions.pictureinpicture.enable_picture_in_picture_overrides", true); user_pref("extensions.pictureinpicture.enable_picture_in_picture_overrides", true);
user_pref("extensions.quarantinedDomains.list", "autoatendimento.bb.com.br,ibpf.sicredi.com.br,ibpj.sicredi.com.br,internetbanking.caixa.gov.br,www.ib12.bradesco.com.br,www2.bancobrasil.com.br"); user_pref("extensions.quarantinedDomains.list", "autoatendimento.bb.com.br,ibpf.sicredi.com.br,ibpj.sicredi.com.br,internetbanking.caixa.gov.br,www.ib12.bradesco.com.br,www2.bancobrasil.com.br");
@ -121,7 +123,7 @@ user_pref("extensions.translations.disabled", false);
user_pref("extensions.ui.dictionary.hidden", true); user_pref("extensions.ui.dictionary.hidden", true);
user_pref("extensions.ui.extension.hidden", false); user_pref("extensions.ui.extension.hidden", false);
user_pref("extensions.ui.lastCategory", "addons://list/extension"); user_pref("extensions.ui.lastCategory", "addons://list/extension");
user_pref("extensions.ui.locale.hidden", true); user_pref("extensions.ui.locale.hidden", false);
user_pref("extensions.ui.sitepermission.hidden", true); user_pref("extensions.ui.sitepermission.hidden", true);
user_pref("extensions.webcompat.enable_shims", true); user_pref("extensions.webcompat.enable_shims", true);
user_pref("extensions.webcompat.perform_injections", true); user_pref("extensions.webcompat.perform_injections", true);
@ -146,31 +148,35 @@ user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{1be309c5-3e4f-
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{446900e4-71c2-419f-a6a7-df9c091e268b}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{446900e4-71c2-419f-a6a7-df9c091e268b}", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{762f9885-5a13-4abd-9c77-433dcd38b8fd}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{762f9885-5a13-4abd-9c77-433dcd38b8fd}", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{c49b13b1-5dee-4345-925e-0c793377e3fa}", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{e4a8a97b-f2ed-450b-b12d-ee082ba24781}", true);
user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{e58d3966-3d76-4cd9-8552-1582fbc800c1}", true); user_pref("extensions.webextensions.ExtensionStorageIDB.migrated.{e58d3966-3d76-4cd9-8552-1582fbc800c1}", true);
user_pref("extensions.webextensions.uuids", "{\"formautofill@mozilla.org\":\"5a284c72-f65d-4cb7-a47a-dfbf48f804a1\",\"pictureinpicture@mozilla.org\":\"4a1c43d6-b945-4368-9573-558a5fc81d4f\",\"screenshots@mozilla.org\":\"ee97a718-8f28-4c39-81a6-991b485b9943\",\"webcompat-reporter@mozilla.org\":\"57c83f80-a1a8-4c98-a5c6-fa2365687f15\",\"webcompat@mozilla.org\":\"08f69277-7ddb-447d-a3c4-34a14f4b19a2\",\"default-theme@mozilla.org\":\"9b164090-e1da-43cb-8214-4a2c15516810\",\"addons-search-detection@mozilla.com\":\"d00c2b31-fa03-4594-8dfa-63266348fa91\",\"google@search.mozilla.org\":\"b2b9cde9-7495-4a1f-a5a5-25493e859a7c\",\"wikipedia@search.mozilla.org\":\"74a35fe8-13e6-4d18-b4bd-32d59f271587\",\"bing@search.mozilla.org\":\"6f1af1b9-310d-47e5-9abc-b640a5ea32b7\",\"ddg@search.mozilla.org\":\"07054b9a-dc51-4984-aefb-1dedbdf3b68c\",\"amazon@search.mozilla.org\":\"8d7ed816-22a3-464c-9767-1a7f4b9b8e15\",\"ebay@search.mozilla.org\":\"6f8e97f3-6609-43ef-9399-c905741a0f2b\",\"tridactyl.vim@cmcaine.co.uk\":\"2476b220-53a2-4175-a539-1bfabede41b7\",\"sponsorBlocker@ajay.app\":\"009d83bd-dd0c-48c1-9ff4-a8ccf60e78c5\",\"wayback_machine@mozilla.org\":\"e254a988-11f9-43de-95ed-5bcfb35c46a4\",\"{1be309c5-3e4f-4b99-927d-bb500eb4fa88}\":\"d1344d9c-6d78-46c4-a58e-6b967d85286f\",\"{e58d3966-3d76-4cd9-8552-1582fbc800c1}\":\"3cda5ae3-6d5c-404a-8d16-1703f0d99c55\",\"clearcache@michel.de.almeida\":\"922bb564-3645-4119-9cdb-38233b1f7e9e\",\"search@kagi.com\":\"5f25abbb-d076-4c4f-b285-9a0086d69305\",\"enhancerforyoutube@maximerf.addons.mozilla.org\":\"045ae8d5-33c7-48dc-9c49-a92e17a9e319\",\"uBlock0@raymondhill.net\":\"acc864fe-5b54-449e-b624-96903d6e403f\",\"{12cf650b-1822-40aa-bff0-996df6948878}\":\"e1cf7a8c-d7e9-4d1e-87ed-a5a3192a72b4\",\"@testpilot-containers\":\"3e1d108c-2678-4dbd-acc9-b6863f30f4c5\",\"WebToEpub@Baka-tsuki.org\":\"f6549b5b-eddf-4529-8968-2ed336ee2cf6\",\"gdpr@cavi.au.dk\":\"f66e0908-9382-487d-a1a0-4ffb3ba24a5e\",\"firefox-translations-addon@mozilla.org\":\"c8b86033-bc43-4e2b-97a6-2a5b91a087be\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\":\"bea34374-9e4d-4696-aa53-01dc23e13a39\",\"7esoorv3@alefvanoon.anonaddy.me\":\"2f7f99c3-4b77-4c09-82b1-18891564832b\",\"{762f9885-5a13-4abd-9c77-433dcd38b8fd}\":\"490f89dd-dc51-4790-b4d7-33f95c815541\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\":\"dca6a399-8ae4-4dee-bff7-2f464c90409d\",\"languagetool-webextension@languagetool.org\":\"8ebe07a0-a41e-482a-8f6c-f9d615f422c8\",\"addons-restricted-domains@mozilla.com\":\"149dfabc-ace0-4035-85a5-5d09804c6df9\",\"floccus@handmadeideas.org\":\"60eae207-1578-4c4c-a4f4-524f7c570899\",\"contact.nhentaidownloader@zirk.eu\":\"31f7d26f-c849-4298-9255-6c8a91b60a19\",\"leo_ende_de@search.mozilla.org\":\"7f3317ec-93d0-41f7-9b47-20d9705f9eb8\",\"ecosia@search.mozilla.org\":\"49705786-25b6-4949-9257-3ba1c1ed7505\"}"); user_pref("extensions.webextensions.uuids", "{\"formautofill@mozilla.org\":\"5a284c72-f65d-4cb7-a47a-dfbf48f804a1\",\"pictureinpicture@mozilla.org\":\"4a1c43d6-b945-4368-9573-558a5fc81d4f\",\"screenshots@mozilla.org\":\"ee97a718-8f28-4c39-81a6-991b485b9943\",\"webcompat-reporter@mozilla.org\":\"57c83f80-a1a8-4c98-a5c6-fa2365687f15\",\"webcompat@mozilla.org\":\"08f69277-7ddb-447d-a3c4-34a14f4b19a2\",\"default-theme@mozilla.org\":\"9b164090-e1da-43cb-8214-4a2c15516810\",\"addons-search-detection@mozilla.com\":\"d00c2b31-fa03-4594-8dfa-63266348fa91\",\"google@search.mozilla.org\":\"b2b9cde9-7495-4a1f-a5a5-25493e859a7c\",\"wikipedia@search.mozilla.org\":\"74a35fe8-13e6-4d18-b4bd-32d59f271587\",\"bing@search.mozilla.org\":\"6f1af1b9-310d-47e5-9abc-b640a5ea32b7\",\"ddg@search.mozilla.org\":\"07054b9a-dc51-4984-aefb-1dedbdf3b68c\",\"amazon@search.mozilla.org\":\"8d7ed816-22a3-464c-9767-1a7f4b9b8e15\",\"ebay@search.mozilla.org\":\"6f8e97f3-6609-43ef-9399-c905741a0f2b\",\"tridactyl.vim@cmcaine.co.uk\":\"2476b220-53a2-4175-a539-1bfabede41b7\",\"sponsorBlocker@ajay.app\":\"009d83bd-dd0c-48c1-9ff4-a8ccf60e78c5\",\"wayback_machine@mozilla.org\":\"e254a988-11f9-43de-95ed-5bcfb35c46a4\",\"{1be309c5-3e4f-4b99-927d-bb500eb4fa88}\":\"d1344d9c-6d78-46c4-a58e-6b967d85286f\",\"{e58d3966-3d76-4cd9-8552-1582fbc800c1}\":\"3cda5ae3-6d5c-404a-8d16-1703f0d99c55\",\"clearcache@michel.de.almeida\":\"922bb564-3645-4119-9cdb-38233b1f7e9e\",\"search@kagi.com\":\"5f25abbb-d076-4c4f-b285-9a0086d69305\",\"enhancerforyoutube@maximerf.addons.mozilla.org\":\"045ae8d5-33c7-48dc-9c49-a92e17a9e319\",\"uBlock0@raymondhill.net\":\"acc864fe-5b54-449e-b624-96903d6e403f\",\"{12cf650b-1822-40aa-bff0-996df6948878}\":\"e1cf7a8c-d7e9-4d1e-87ed-a5a3192a72b4\",\"@testpilot-containers\":\"3e1d108c-2678-4dbd-acc9-b6863f30f4c5\",\"WebToEpub@Baka-tsuki.org\":\"f6549b5b-eddf-4529-8968-2ed336ee2cf6\",\"gdpr@cavi.au.dk\":\"f66e0908-9382-487d-a1a0-4ffb3ba24a5e\",\"firefox-translations-addon@mozilla.org\":\"c8b86033-bc43-4e2b-97a6-2a5b91a087be\",\"{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}\":\"bea34374-9e4d-4696-aa53-01dc23e13a39\",\"7esoorv3@alefvanoon.anonaddy.me\":\"2f7f99c3-4b77-4c09-82b1-18891564832b\",\"{762f9885-5a13-4abd-9c77-433dcd38b8fd}\":\"490f89dd-dc51-4790-b4d7-33f95c815541\",\"{446900e4-71c2-419f-a6a7-df9c091e268b}\":\"dca6a399-8ae4-4dee-bff7-2f464c90409d\",\"languagetool-webextension@languagetool.org\":\"8ebe07a0-a41e-482a-8f6c-f9d615f422c8\",\"addons-restricted-domains@mozilla.com\":\"149dfabc-ace0-4035-85a5-5d09804c6df9\",\"floccus@handmadeideas.org\":\"60eae207-1578-4c4c-a4f4-524f7c570899\",\"contact.nhentaidownloader@zirk.eu\":\"31f7d26f-c849-4298-9255-6c8a91b60a19\",\"{c49b13b1-5dee-4345-925e-0c793377e3fa}\":\"2d7f3200-b3bb-40aa-a6da-b17aa3319bfe\",\"{e4a8a97b-f2ed-450b-b12d-ee082ba24781}\":\"5dcdc798-be6f-449b-b601-be4faef4b5b8\"}");
user_pref("gecko.handlerService.defaultHandlersVersion", 1); user_pref("gecko.handlerService.defaultHandlersVersion", 1);
user_pref("general.smoothScroll", false); user_pref("general.smoothScroll", false);
user_pref("identity.fxaccounts.account.device.name", "marcs Firefox on lupusregina"); user_pref("identity.fxaccounts.account.device.name", "marcs Firefox on lupusregina");
user_pref("identity.fxaccounts.account.telemetry.sanitized_uid", "7d43bb2e98e00c17c235782ba1e87861"); user_pref("identity.fxaccounts.account.telemetry.sanitized_uid", "7d43bb2e98e00c17c235782ba1e87861");
user_pref("identity.fxaccounts.commands.missed.last_fetch", 1700156787); user_pref("identity.fxaccounts.commands.missed.last_fetch", 1704911084);
user_pref("identity.fxaccounts.lastSignedInUserHash", "WOuDey3lDC6Fz01LOxx4O9rXzUcqVqYQ6s3ELNeHdTM="); user_pref("identity.fxaccounts.lastSignedInUserHash", "WOuDey3lDC6Fz01LOxx4O9rXzUcqVqYQ6s3ELNeHdTM=");
user_pref("identity.fxaccounts.toolbar.accessed", true); user_pref("identity.fxaccounts.toolbar.accessed", true);
user_pref("idle.lastDailyNotification", 1700156953); user_pref("identity.fxaccounts.toolbar.defaultVisible", true);
user_pref("idle.lastDailyNotification", 1704746135);
user_pref("intl.accept_languages", "en-us,en,de-ch,de"); user_pref("intl.accept_languages", "en-us,en,de-ch,de");
user_pref("layout.css.has-selector.enabled", true); user_pref("intl.locale.requested", "en-US,de-CH");
user_pref("intl.regional_prefs.use_os_locales", true);
user_pref("media.eme.enabled", true); user_pref("media.eme.enabled", true);
user_pref("media.ffmpeg.vaapi.enabled", true); user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3"); user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3");
user_pref("media.gmp-gmpopenh264.hashValue", "53a58bfb4c8124ad4f7655b99bfdea290033a085e0796b19245b33b91c0948fdac9f0c3e817130b352493a65d9a7a0fc8a7c1eedc618cdaa2b4580734a11cd9c"); user_pref("media.gmp-gmpopenh264.hashValue", "53a58bfb4c8124ad4f7655b99bfdea290033a085e0796b19245b33b91c0948fdac9f0c3e817130b352493a65d9a7a0fc8a7c1eedc618cdaa2b4580734a11cd9c");
user_pref("media.gmp-gmpopenh264.lastDownload", 1690222444); user_pref("media.gmp-gmpopenh264.lastDownload", 1702915653);
user_pref("media.gmp-gmpopenh264.lastDownloadFailReason", "Error: Failed downloading via ServiceRequest, status: 0, channelStatus: 2152398862, errorCode: 2, reason: error"); user_pref("media.gmp-gmpopenh264.lastDownloadFailReason", "Error: Failed downloading via ServiceRequest, status: 0, channelStatus: 2152398862, errorCode: 2, reason: error");
user_pref("media.gmp-gmpopenh264.lastDownloadFailed", 1699892156); user_pref("media.gmp-gmpopenh264.lastDownloadFailed", 1699892156);
user_pref("media.gmp-gmpopenh264.lastInstallStart", 1699892066); user_pref("media.gmp-gmpopenh264.lastInstallStart", 1702915652);
user_pref("media.gmp-gmpopenh264.lastUpdate", 1690222444); user_pref("media.gmp-gmpopenh264.lastUpdate", 1702915653);
user_pref("media.gmp-gmpopenh264.version", "2.3.2"); user_pref("media.gmp-gmpopenh264.version", "2.3.2");
user_pref("media.gmp-manager.buildID", "20231106235557"); user_pref("media.gmp-manager.buildID", "20240109145044");
user_pref("media.gmp-manager.lastCheck", 1700156200); user_pref("media.gmp-manager.lastCheck", 1704910499);
user_pref("media.gmp-manager.lastEmptyCheck", 1700156200); user_pref("media.gmp-manager.lastEmptyCheck", 1704910499);
user_pref("media.gmp-widevinecdm.abi", "x86_64-gcc3"); user_pref("media.gmp-widevinecdm.abi", "x86_64-gcc3");
user_pref("media.gmp-widevinecdm.hashValue", "661ad969099a89a278384f56a17ae912c3542d585ea4981f3b9a3c6e1a07f8da6ffad9db29cee194bf7834adc3ca258c775cd2b0980e3e6cb7ee8b39600dad58"); user_pref("media.gmp-widevinecdm.hashValue", "661ad969099a89a278384f56a17ae912c3542d585ea4981f3b9a3c6e1a07f8da6ffad9db29cee194bf7834adc3ca258c775cd2b0980e3e6cb7ee8b39600dad58");
user_pref("media.gmp-widevinecdm.lastDownload", 1697973759); user_pref("media.gmp-widevinecdm.lastDownload", 1697973759);
@ -182,6 +188,7 @@ user_pref("media.gmp-widevinecdm.version", "4.10.2710.0");
user_pref("media.gmp.storage.version.observed", 1); user_pref("media.gmp.storage.version.observed", 1);
user_pref("media.videocontrols.picture-in-picture.video-toggle.first-seen-secs", 1688477430); user_pref("media.videocontrols.picture-in-picture.video-toggle.first-seen-secs", 1688477430);
user_pref("media.videocontrols.picture-in-picture.video-toggle.has-used", true); user_pref("media.videocontrols.picture-in-picture.video-toggle.has-used", true);
user_pref("media.webspeech.synth.dont_notify_on_error", true);
user_pref("network.dns.disablePrefetch", true); user_pref("network.dns.disablePrefetch", true);
user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true); user_pref("network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation", true);
user_pref("network.http.speculative-parallel-limit", 0); user_pref("network.http.speculative-parallel-limit", 0);
@ -193,6 +200,8 @@ user_pref("nimbus.syncdatastore.firefoxViewNext.enabled", true);
user_pref("nimbus.syncdatastore.firefoxViewNext.newIcon", true); user_pref("nimbus.syncdatastore.firefoxViewNext.newIcon", true);
user_pref("nimbus.syncdefaultsstore.accessibilityCache", "{\"slug\":\"next-generation-accessibility-engine-powering-screen-readers\",\"branch\":{\"slug\":\"treatment-a\",\"ratio\":1,\"feature\":{\"value\":null,\"enabled\":true,\"featureId\":\"accessibilityCache\"},\"features\":null},\"active\":true,\"enrollmentId\":\"35b9b41f-9d05-4401-8279-3f120be5e72a\",\"experimentType\":\"rollout\",\"source\":\"rs-loader\",\"userFacingName\":\"Next generation accessibility engine powering screen readers\",\"userFacingDescription\":\"Evaluating a major re-architecture of Firefox's accessibility engine to improve performance of screen readers and other assistive technologies.\",\"lastSeen\":\"2023-07-04T13:10:56.503Z\",\"featureIds\":[\"accessibilityCache\"],\"prefs\":[{\"name\":\"accessibility.cache.enabled\",\"branch\":\"user\",\"featureId\":\"accessibilityCache\",\"variable\":\"enabled\",\"originalValue\":null}],\"isRollout\":true}"); user_pref("nimbus.syncdefaultsstore.accessibilityCache", "{\"slug\":\"next-generation-accessibility-engine-powering-screen-readers\",\"branch\":{\"slug\":\"treatment-a\",\"ratio\":1,\"feature\":{\"value\":null,\"enabled\":true,\"featureId\":\"accessibilityCache\"},\"features\":null},\"active\":true,\"enrollmentId\":\"35b9b41f-9d05-4401-8279-3f120be5e72a\",\"experimentType\":\"rollout\",\"source\":\"rs-loader\",\"userFacingName\":\"Next generation accessibility engine powering screen readers\",\"userFacingDescription\":\"Evaluating a major re-architecture of Firefox's accessibility engine to improve performance of screen readers and other assistive technologies.\",\"lastSeen\":\"2023-07-04T13:10:56.503Z\",\"featureIds\":[\"accessibilityCache\"],\"prefs\":[{\"name\":\"accessibility.cache.enabled\",\"branch\":\"user\",\"featureId\":\"accessibilityCache\",\"variable\":\"enabled\",\"originalValue\":null}],\"isRollout\":true}");
user_pref("nimbus.syncdefaultsstore.accessibilityCache.enabled", true); user_pref("nimbus.syncdefaultsstore.accessibilityCache.enabled", true);
user_pref("nimbus.syncdefaultsstore.fxaButtonVisibility", "{\"slug\":\"mozillaaccounts-toolbar-button-default-visibility-existing-user\",\"branch\":{\"slug\":\"treatment-a\",\"ratio\":1,\"feature\":{\"value\":null,\"enabled\":true,\"featureId\":\"fxaButtonVisibility\"},\"features\":null},\"active\":true,\"enrollmentId\":\"21176b46-ec08-4f5b-a371-4022844333ed\",\"experimentType\":\"rollout\",\"source\":\"rs-loader\",\"userFacingName\":\"MozillaAccounts toolbar button default visibility rollout\",\"userFacingDescription\":\"This experiment measures the impact of showing the Firefox Accounts toolbar button by default for signed-out users.\",\"lastSeen\":\"2023-12-12T06:26:19.832Z\",\"featureIds\":[\"fxaButtonVisibility\"],\"prefs\":[{\"name\":\"identity.fxaccounts.toolbar.defaultVisible\",\"branch\":\"user\",\"featureId\":\"fxaButtonVisibility\",\"variable\":\"boolean\",\"originalValue\":null}],\"isRollout\":true}");
user_pref("nimbus.syncdefaultsstore.fxaButtonVisibility.boolean", true);
user_pref("nimbus.syncdefaultsstore.migrationWizard", "{\"slug\":\"extensions-migration-in-import-wizard-116-rollout\",\"branch\":{\"slug\":\"control\",\"ratio\":1,\"feature\":{\"value\":null,\"enabled\":true,\"featureId\":\"migrationWizard\"},\"features\":null},\"active\":true,\"enrollmentId\":\"b52ff5c2-4f7b-4266-a44a-871d23d2c7d8\",\"experimentType\":\"rollout\",\"source\":\"rs-loader\",\"userFacingName\":\"Extensions Migration in Import Wizard - 117+\",\"userFacingDescription\":\"This rollout makes extension migration available to users migrating from Chrome to Firefox.\",\"lastSeen\":\"2023-09-12T14:45:10.580Z\",\"featureIds\":[\"migrationWizard\"],\"prefs\":[{\"name\":\"browser.migrate.content-modal.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"useNewWizard\",\"originalValue\":null},{\"name\":\"browser.migrate.content-modal.import-all.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"showImportAll\",\"originalValue\":null},{\"name\":\"browser.migrate.chrome.extensions.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"migrateExtensions\",\"originalValue\":null},{\"name\":\"browser.migrate.preferences-entrypoint.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"showPreferencesEntrypoint\",\"originalValue\":null}],\"isRollout\":true}"); user_pref("nimbus.syncdefaultsstore.migrationWizard", "{\"slug\":\"extensions-migration-in-import-wizard-116-rollout\",\"branch\":{\"slug\":\"control\",\"ratio\":1,\"feature\":{\"value\":null,\"enabled\":true,\"featureId\":\"migrationWizard\"},\"features\":null},\"active\":true,\"enrollmentId\":\"b52ff5c2-4f7b-4266-a44a-871d23d2c7d8\",\"experimentType\":\"rollout\",\"source\":\"rs-loader\",\"userFacingName\":\"Extensions Migration in Import Wizard - 117+\",\"userFacingDescription\":\"This rollout makes extension migration available to users migrating from Chrome to Firefox.\",\"lastSeen\":\"2023-09-12T14:45:10.580Z\",\"featureIds\":[\"migrationWizard\"],\"prefs\":[{\"name\":\"browser.migrate.content-modal.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"useNewWizard\",\"originalValue\":null},{\"name\":\"browser.migrate.content-modal.import-all.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"showImportAll\",\"originalValue\":null},{\"name\":\"browser.migrate.chrome.extensions.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"migrateExtensions\",\"originalValue\":null},{\"name\":\"browser.migrate.preferences-entrypoint.enabled\",\"branch\":\"user\",\"featureId\":\"migrationWizard\",\"variable\":\"showPreferencesEntrypoint\",\"originalValue\":null}],\"isRollout\":true}");
user_pref("nimbus.syncdefaultsstore.migrationWizard.migrateExtensions", true); user_pref("nimbus.syncdefaultsstore.migrationWizard.migrateExtensions", true);
user_pref("nimbus.syncdefaultsstore.migrationWizard.showImportAll", true); user_pref("nimbus.syncdefaultsstore.migrationWizard.showImportAll", true);
@ -202,7 +211,8 @@ user_pref("nimbus.syncdefaultsstore.upgradeDialog", "{\"slug\":\"upgrade-spotlig
user_pref("nimbus.syncdefaultsstore.upgradeDialog.enabled", false); user_pref("nimbus.syncdefaultsstore.upgradeDialog.enabled", false);
user_pref("pdfjs.enabledCache.state", true); user_pref("pdfjs.enabledCache.state", true);
user_pref("pdfjs.migrationVersion", 2); user_pref("pdfjs.migrationVersion", 2);
user_pref("places.database.lastMaintenance", 1700069826); user_pref("places.database.lastMaintenance", 1704746135);
user_pref("pref.general.disable_button.default_browser", false);
user_pref("pref.privacy.disable_button.cookie_exceptions", false); user_pref("pref.privacy.disable_button.cookie_exceptions", false);
user_pref("print_printer", "Mozilla Save to PDF"); user_pref("print_printer", "Mozilla Save to PDF");
user_pref("privacy.annotate_channels.strict_list.enabled", true); user_pref("privacy.annotate_channels.strict_list.enabled", true);
@ -214,7 +224,7 @@ user_pref("privacy.partition.network_state.ocsp_cache", true);
user_pref("privacy.purge_trackers.date_in_cookie_database", "0"); user_pref("privacy.purge_trackers.date_in_cookie_database", "0");
user_pref("privacy.query_stripping.enabled", true); user_pref("privacy.query_stripping.enabled", true);
user_pref("privacy.query_stripping.enabled.pbmode", true); user_pref("privacy.query_stripping.enabled.pbmode", true);
user_pref("privacy.sanitize.pending", "[{\"id\":\"shutdown\",\"itemsToClear\":[\"cache\",\"cookies\",\"offlineApps\",\"history\",\"formdata\",\"downloads\",\"sessions\"],\"options\":{}},{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}}]"); user_pref("privacy.sanitize.pending", "[]");
user_pref("privacy.sanitize.sanitizeOnShutdown", true); user_pref("privacy.sanitize.sanitizeOnShutdown", true);
user_pref("privacy.trackingprotection.emailtracking.enabled", true); user_pref("privacy.trackingprotection.emailtracking.enabled", true);
user_pref("privacy.trackingprotection.enabled", true); user_pref("privacy.trackingprotection.enabled", true);
@ -223,57 +233,58 @@ user_pref("privacy.userContext.enabled", true);
user_pref("privacy.userContext.extension", "@testpilot-containers"); user_pref("privacy.userContext.extension", "@testpilot-containers");
user_pref("privacy.userContext.ui.enabled", true); user_pref("privacy.userContext.ui.enabled", true);
user_pref("security.sandbox.content.tempDirSuffix", "0ec89991-bbb0-4f09-a47f-db3033d66f09"); user_pref("security.sandbox.content.tempDirSuffix", "0ec89991-bbb0-4f09-a47f-db3033d66f09");
user_pref("services.settings.blocklists.addons-bloomfilters.last_check", 1700809591); user_pref("services.settings.blocklists.addons-bloomfilters.last_check", 1704912283);
user_pref("services.settings.blocklists.gfx.last_check", 1700809591); user_pref("services.settings.blocklists.gfx.last_check", 1704912283);
user_pref("services.settings.clock_skew_seconds", 0); user_pref("services.settings.clock_skew_seconds", 0);
user_pref("services.settings.last_etag", "\"1700798234584\""); user_pref("services.settings.last_etag", "\"1704913010476\"");
user_pref("services.settings.last_update_seconds", 1700809591); user_pref("services.settings.last_update_seconds", 1704914087);
user_pref("services.settings.main.addons-manager-settings.last_check", 1700809591); user_pref("services.settings.main.addons-manager-settings.last_check", 1704912283);
user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1700809591); user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1704912283);
user_pref("services.settings.main.cfr.last_check", 1700809591); user_pref("services.settings.main.cfr.last_check", 1704912283);
user_pref("services.settings.main.cookie-banner-rules-list.last_check", 1700809591); user_pref("services.settings.main.cookie-banner-rules-list.last_check", 1704912283);
user_pref("services.settings.main.devtools-compatibility-browsers.last_check", 1700809591); user_pref("services.settings.main.devtools-compatibility-browsers.last_check", 1704912283);
user_pref("services.settings.main.devtools-devices.last_check", 1700809591); user_pref("services.settings.main.devtools-devices.last_check", 1704912283);
user_pref("services.settings.main.doh-config.last_check", 1700809591); user_pref("services.settings.main.doh-config.last_check", 1704912283);
user_pref("services.settings.main.doh-providers.last_check", 1700809591); user_pref("services.settings.main.doh-providers.last_check", 1704912283);
user_pref("services.settings.main.fingerprinting-protection-overrides.last_check", 1700809591); user_pref("services.settings.main.fingerprinting-protection-overrides.last_check", 1704912283);
user_pref("services.settings.main.fxmonitor-breaches.last_check", 1700809591); user_pref("services.settings.main.fxmonitor-breaches.last_check", 1704912283);
user_pref("services.settings.main.hijack-blocklists.last_check", 1700809591); user_pref("services.settings.main.hijack-blocklists.last_check", 1704912283);
user_pref("services.settings.main.language-dictionaries.last_check", 1700809591); user_pref("services.settings.main.language-dictionaries.last_check", 1704912283);
user_pref("services.settings.main.message-groups.last_check", 1700809591); user_pref("services.settings.main.message-groups.last_check", 1704912283);
user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1700809591); user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1704912283);
user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1700809591); user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1704912283);
user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1700809591); user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1704912283);
user_pref("services.settings.main.password-recipes.last_check", 1700809591); user_pref("services.settings.main.password-recipes.last_check", 1704912283);
user_pref("services.settings.main.password-rules.last_check", 1700809591); user_pref("services.settings.main.password-rules.last_check", 1704912283);
user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1700809591); user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1704912283);
user_pref("services.settings.main.public-suffix-list.last_check", 1700809591); user_pref("services.settings.main.public-suffix-list.last_check", 1704912283);
user_pref("services.settings.main.query-stripping.last_check", 1700809591); user_pref("services.settings.main.query-stripping.last_check", 1704912283);
user_pref("services.settings.main.search-config.last_check", 1700809591); user_pref("services.settings.main.search-config-v2.last_check", 1704912283);
user_pref("services.settings.main.search-default-override-allowlist.last_check", 1700809591); user_pref("services.settings.main.search-config.last_check", 1704912283);
user_pref("services.settings.main.search-telemetry-v2.last_check", 1700809591); user_pref("services.settings.main.search-default-override-allowlist.last_check", 1704912283);
user_pref("services.settings.main.sites-classification.last_check", 1700809591); user_pref("services.settings.main.search-telemetry-v2.last_check", 1704912283);
user_pref("services.settings.main.tippytop.last_check", 1700809591); user_pref("services.settings.main.sites-classification.last_check", 1704912283);
user_pref("services.settings.main.top-sites.last_check", 1700809591); user_pref("services.settings.main.tippytop.last_check", 1704912283);
user_pref("services.settings.main.translations-identification-models.last_check", 1700809591); user_pref("services.settings.main.top-sites.last_check", 1704912283);
user_pref("services.settings.main.translations-models.last_check", 1700809591); user_pref("services.settings.main.translations-identification-models.last_check", 1704912283);
user_pref("services.settings.main.translations-wasm.last_check", 1700809591); user_pref("services.settings.main.translations-models.last_check", 1704912283);
user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1700809591); user_pref("services.settings.main.translations-wasm.last_check", 1704912283);
user_pref("services.settings.main.websites-with-shared-credential-backends.last_check", 1700809591); user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1704912283);
user_pref("services.settings.main.whats-new-panel.last_check", 1700809591); user_pref("services.settings.main.websites-with-shared-credential-backends.last_check", 1704912283);
user_pref("services.settings.security-state.cert-revocations.last_check", 1700211672); user_pref("services.settings.main.whats-new-panel.last_check", 1704912283);
user_pref("services.settings.security-state.intermediates.last_check", 1700210156); user_pref("services.settings.security-state.cert-revocations.last_check", 1704912283);
user_pref("services.settings.security-state.onecrl.last_check", 1700210156); user_pref("services.settings.security-state.intermediates.last_check", 1704912283);
user_pref("services.sync.addons.lastSync", "1700763792.62"); user_pref("services.settings.security-state.onecrl.last_check", 1704912283);
user_pref("services.sync.addons.lastSync", "1702904387.98");
user_pref("services.sync.addons.syncID", "L7k31iPXEMk6"); user_pref("services.sync.addons.syncID", "L7k31iPXEMk6");
user_pref("services.sync.addresses.lastSync", "0"); user_pref("services.sync.addresses.lastSync", "0");
user_pref("services.sync.addresses.syncID", "K1UPMHJ4W0vv"); user_pref("services.sync.addresses.syncID", "K1UPMHJ4W0vv");
user_pref("services.sync.client.GUID", "Q6SQRH7f1es-"); user_pref("services.sync.client.GUID", "Q6SQRH7f1es-");
user_pref("services.sync.client.syncID", "MtJM9DyW2j2m"); user_pref("services.sync.client.syncID", "MtJM9DyW2j2m");
user_pref("services.sync.clients.devices.desktop", 3); user_pref("services.sync.clients.devices.desktop", 2);
user_pref("services.sync.clients.devices.mobile", 1); user_pref("services.sync.clients.devices.mobile", 1);
user_pref("services.sync.clients.lastRecordUpload", 1700809640); user_pref("services.sync.clients.lastRecordUpload", 1704910483);
user_pref("services.sync.clients.lastSync", "1700809640.65"); user_pref("services.sync.clients.lastSync", "1704910483.56");
user_pref("services.sync.clients.syncID", "-UKRQIkr1Rru"); user_pref("services.sync.clients.syncID", "-UKRQIkr1Rru");
user_pref("services.sync.creditcards.lastSync", "0"); user_pref("services.sync.creditcards.lastSync", "0");
user_pref("services.sync.creditcards.syncID", "yp8F-l4YaopB"); user_pref("services.sync.creditcards.syncID", "yp8F-l4YaopB");
@ -288,10 +299,10 @@ user_pref("services.sync.engine.prefs.modified", false);
user_pref("services.sync.engine.tabs", false); user_pref("services.sync.engine.tabs", false);
user_pref("services.sync.forms.lastSync", "0"); user_pref("services.sync.forms.lastSync", "0");
user_pref("services.sync.globalScore", 0); user_pref("services.sync.globalScore", 0);
user_pref("services.sync.lastPing", 1700809563); user_pref("services.sync.lastPing", 1704910482);
user_pref("services.sync.lastSync", "Fri Nov 24 2023 08:07:20 GMT+0100 (Mitteleuropäische Normalzeit)"); user_pref("services.sync.lastSync", "Wed Jan 10 2024 20:41:46 GMT+0100 (Mitteleuropäische Normalzeit)");
user_pref("services.sync.nextSync", 1700810240); user_pref("services.sync.nextSync", 0);
user_pref("services.sync.prefs.lastSync", "1700309262.24"); user_pref("services.sync.prefs.lastSync", "1702213177.07");
user_pref("services.sync.prefs.sync-seen.browser.contentblocking.category", true); user_pref("services.sync.prefs.sync-seen.browser.contentblocking.category", true);
user_pref("services.sync.prefs.sync-seen.browser.firefox-view.feature-tour", true); user_pref("services.sync.prefs.sync-seen.browser.firefox-view.feature-tour", true);
user_pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.feeds.section.topstories", true); user_pref("services.sync.prefs.sync-seen.browser.newtabpage.activity-stream.feeds.section.topstories", true);
@ -309,9 +320,11 @@ user_pref("services.sync.prefs.sync-seen.extensions.activeThemeID", true);
user_pref("services.sync.prefs.sync-seen.general.autoScroll", true); user_pref("services.sync.prefs.sync-seen.general.autoScroll", true);
user_pref("services.sync.prefs.sync-seen.general.smoothScroll", true); user_pref("services.sync.prefs.sync-seen.general.smoothScroll", true);
user_pref("services.sync.prefs.sync-seen.intl.accept_languages", true); user_pref("services.sync.prefs.sync-seen.intl.accept_languages", true);
user_pref("services.sync.prefs.sync-seen.intl.regional_prefs.use_os_locales", true);
user_pref("services.sync.prefs.sync-seen.media.eme.enabled", true); user_pref("services.sync.prefs.sync-seen.media.eme.enabled", true);
user_pref("services.sync.prefs.sync-seen.pref.privacy.disable_button.cookie_exceptions", true); user_pref("services.sync.prefs.sync-seen.pref.privacy.disable_button.cookie_exceptions", true);
user_pref("services.sync.prefs.sync-seen.privacy.clearOnShutdown.offlineApps", true); user_pref("services.sync.prefs.sync-seen.privacy.clearOnShutdown.offlineApps", true);
user_pref("services.sync.prefs.sync-seen.privacy.donottrackheader.enabled", true);
user_pref("services.sync.prefs.sync-seen.privacy.sanitize.sanitizeOnShutdown", true); user_pref("services.sync.prefs.sync-seen.privacy.sanitize.sanitizeOnShutdown", true);
user_pref("services.sync.prefs.sync-seen.privacy.trackingprotection.enabled", true); user_pref("services.sync.prefs.sync-seen.privacy.trackingprotection.enabled", true);
user_pref("services.sync.prefs.sync-seen.privacy.userContext.enabled", true); user_pref("services.sync.prefs.sync-seen.privacy.userContext.enabled", true);
@ -321,15 +334,15 @@ user_pref("services.sync.syncInterval", 600000);
user_pref("services.sync.syncThreshold", 300); user_pref("services.sync.syncThreshold", 300);
user_pref("services.sync.username", "mrc@frm01.net"); user_pref("services.sync.username", "mrc@frm01.net");
user_pref("signon.rememberSignons", false); user_pref("signon.rememberSignons", false);
user_pref("storage.vacuum.last.content-prefs.sqlite", 1699461984); user_pref("storage.vacuum.last.content-prefs.sqlite", 1704746135);
user_pref("storage.vacuum.last.index", 2); user_pref("storage.vacuum.last.index", 1);
user_pref("storage.vacuum.last.places.sqlite", 1699373320); user_pref("storage.vacuum.last.places.sqlite", 1704659626);
user_pref("svg.context-properties.content.enabled", true); user_pref("svg.context-properties.content.enabled", true);
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("toolkit.startup.last_success", 1700809560); user_pref("toolkit.startup.last_success", 1704910476);
user_pref("toolkit.telemetry.cachedClientID", "4667ece1-0d96-427c-9c16-a09251099634"); user_pref("toolkit.telemetry.cachedClientID", "4667ece1-0d96-427c-9c16-a09251099634");
user_pref("toolkit.telemetry.pioneer-new-studies-available", true); user_pref("toolkit.telemetry.pioneer-new-studies-available", true);
user_pref("toolkit.telemetry.previousBuildID", "20231120231815"); user_pref("toolkit.telemetry.previousBuildID", "20240109145044");
user_pref("toolkit.telemetry.reportingpolicy.firstRun", false); user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
user_pref("trailhead.firstrun.didSeeAboutWelcome", true); user_pref("trailhead.firstrun.didSeeAboutWelcome", true);
user_pref("userChrome.compatibility.os", true); user_pref("userChrome.compatibility.os", true);

View File

@ -1,563 +0,0 @@
#!/usr/bin/env python3
import subprocess
import os
import uuid
import glob
import shutil
import filecmp
import importlib.util
import sys
def select_theme():
"""
Function to select a different theme
"""
pass
def install_theme():
"""
Install most up to date version of the theme
"""
"""
# remove old themes folder
rm -rf ./themes
# install theme selected in themes file
git clone https://gitlab.com/RealStickman-arch/themes.git &>/dev/null
seltheme="$(cat "$HOME/.seltheme")"
if [[ "$seltheme" == "nyarch" ]]; then
#cp -r "./themes/nyarch/i3" "$HOME/.config/"
cat "./themes/nyarch/i3/color" >>"$HOME/.config/i3/config"
cp -r "./themes/nyarch/polybar" "$HOME/.config/"
cp -r "./themes/nyarch/neofetch/lowpoly_flamegirl_blue.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-nyarch" "$HOME/.fehbg"
#sed -i 's/^NAME=".*"/NAME="Rawrch Linyux"/' /etc/os-release
elif [[ "$seltheme" == "space-pink" ]]; then
#cp -r "./themes/space-pink/i3" "$HOME/.config/"
cat "./themes/space-pink/i3/color" >>"$HOME/.config/i3/config"
cp -r "./themes/space-pink/polybar" "$HOME/.config/"
cp -r "./themes/space-pink/neofetch/lowpoly_flamegirl_orange.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-space-pink" "$HOME/.fehbg"
fi
rm -rf ./themes
# make fehbg executable
chmod +x ~/.fehbg
"""
pass
def install_bash_cat():
"""
Install a cute cat
"""
"""
# download cat as cat
echo "Installing bash cat"
git clone https://github.com/RealStickman/bash-cat-with-cat.git &>/dev/null
cp ./bash-cat-with-cat/cat.sh "$HOME/scripts/pieces/cat.sh"
rm -rf ./bash-cat-with-cat
"""
pass
def install_psipcalc():
"""
A PowerShell ip calculator
"""
"""
# download ip-calculator with powershell
echo "Installing powershell ip calculator"
git clone https://github.com/RealStickman/PSipcalc &>/dev/null
cp ./PSipcalc/PSipcalc.ps1 "$HOME/scripts/in_path/sc-psipcalc"
rm -rf ./PSipcalc
"""
pass
def update_firefox():
"""
Function to also update firefox config
"""
pass
def autostart():
"""
Programs with autostart functionality
"""
"""
# copy corectrl desktop file
if [[ $(pacman -Q | grep corectrl) ]]; then
cp /usr/share/applications/org.corectrl.corectrl.desktop ~/.config/autostart/org.corectrl.corectrl.desktop
fi
"""
pass
def services():
"""
Enable and start systemd services
"""
"""
# set systemd services for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
sudo systemctl enable --now vmware-networks.service || echo "Service failed, continuing"
sudo systemctl enable --now vmware-usbarbitrator.service || echo "Service failed, continuing"
fi
# NOTE temporary
# remove old vmware services
if [ -f "/etc/systemd/system/vmware.service" ]; then
sudo rm "/etc/systemd/system/vmware.service"
fi
if [ -f "/etc/systemd/system/vmware-networks-server.service" ]; then
sudo rm "/etc/systemd/system/vmware-networks-server.service"
fi
if [ -f "/etc/systemd/system/vmware-usbarbitrator.service" ]; then
sudo rm "/etc/systemd/system/vmware-usbarbitrator.service"
fi
# enable fstrim timer
sudo systemctl enable fstrim.timer
# enable btrfs maintenance timers
if [[ $(pacman -Q | grep btrfsmaintenance) ]]; then
sudo systemctl restart btrfsmaintenance-refresh.service
sudo systemctl enable btrfs-balance.timer
sudo systemctl enable btrfs-scrub.timer
fi
# enable systemd-timesyncd (ntp service)
sudo timedatectl set-ntp true
# enable ssh-agent
systemctl --user enable --now ssh-agent
"""
pass
def groupmanagement():
"""
Manage user groups
"""
"""
# set systemd and group for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
echo "Setting up group for vmware"
sudo groupadd -f vmware
sudo gpasswd -a "$USER" vmware 1>/dev/null
sudo chgrp vmware /dev/vmnet*
sudo chmod g+rw /dev/vmnet*
fi
# set group for libvirt
if [[ $(pacman -Q | grep libvirt) ]]; then
echo "Setting group for libvirt"
sudo gpasswd -a "$USER" libvirt 1>/dev/null
fi
# set group for wireshark (only if installed)
if [[ $(pacman -Q | grep wireshark-qt) ]]; then
echo "Setting up group for wireshark"
sudo groupadd -f wireshark
sudo gpasswd -a "$USER" wireshark 1>/dev/null
fi
# add group for corectrl
if [[ $(pacman -Q | grep corectrl) ]]; then
echo "Setting up group for corectrl"
sudo groupadd -f corectrl
sudo gpasswd -a "$USER" corectrl 1>/dev/null
fi
# group for controlling backlight
echo "Setting group for backlight"
sudo groupadd -f video
sudo gpasswd -a "$USER" video 1>/dev/null
# group for monitoring wireguard
echo "Setting group for wireguard"
sudo groupadd -f wireguard
sudo gpasswd -a "$USER" wireguard 1>/dev/null
"""
pass
def miscellaneous():
"""
Miscellaneous config items
"""
"""
# automatically add ssh keys to agent
#if ! grep -q "AddKeysToAgent yes" "$HOME/.ssh/config"; then
# echo 'AddKeysToAgent yes' | cat - "$HOME/.ssh/config" > temp && mv temp "$HOME/.ssh/config"
#fi
# set permissions for sudoers.d to root only
sudo chown root:root -R /etc/sudoers.d/
sudo chmod 600 -R /etc/sudoers.d/
# unzip gimp plugins
echo Unzipping gimp plugins
unzip -o ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip -d ~/.config/GIMP/2.10/plug-ins/ >/dev/null
rm ~/.config/GIMP/2.10/plug-ins/export_layers-3.3.1.zip >/dev/null
# xfce settings
# disable screensaver & locker
/usr/bin/xfconf-query -c xfce4-session -n -t bool -p /startup/screensaver/enabled -s false
#make bash scripts executable
chmod +x -R ~/.config/polybar/
chmod +x -R ~/.config/i3/scripts
chmod +x -R ~/scripts
# make applications executable
chmod +x -R ~/.local/share/applications
# set settings for nemo
bash ~/config/scripts/nemo-config.sh
#remove downloaded folder
rm -rf ~/config
"""
pass
def create_backup():
"""
Create a backup of old config files
"""
"""
# make new backup
echo Creating backup
mkdir -p ~/old_dat/.config
mkdir -p ~/old_dat/.doom.d
mkdir -p ~/old_dat/.easystroke
mkdir -p ~/old_dat/.mozilla
mkdir -p ~/old_dat/scripts
mkdir -p ~/old_dat/.elvish
mkdir -p ~/old_dat/.ssh
# make subdirectories
mkdir -p ~/old_dat/.local/share
#config folders
if [[ -d ~/.config/MangoHud ]]; then
rsync -ah ~/.config/MangoHud ~/old_dat/.config/
fi
if [[ -d ~/.config/fish ]]; then
rsync -ah ~/.config/fish ~/old_dat/.config/
fi
if [[ -d ~/.config/gtk-3.0 ]]; then
rsync -ah ~/.config/gtk-3.0 ~/old_dat/.config/
fi
if [[ -d ~/.config/i3 ]]; then
rsync -ah ~/.config/i3 ~/old_dat/.config/
fi
if [[ -d ~/.config/neofetch ]]; then
rsync -ah ~/.config/neofetch ~/old_dat/.config/
fi
if [[ -d ~/.config/openbox ]]; then
rsync -ah ~/.config/openbox ~/old_dat/.config/
fi
if [[ -d ~/.config/polybar ]]; then
rsync -ah ~/.config/polybar ~/old_dat/.config/
fi
if [[ -d ~/.config/termite ]]; then
rsync -ah ~/.config/termite ~/old_dat/.config/
fi
if [[ -d ~/.config/variety ]]; then
rsync -ah ~/.config/variety ~/old_dat/.config/
fi
# doom.d folder
if [[ -d ~/.doom.d ]]; then
rsync -ah ~/.doom.d ~/old_dat/
fi
# .ssh folder
if [[ -d ~/.ssh ]]; then
rsync -ah ~/.ssh ~/old_dat/
fi
# easystroke
if [[ -d ~/.easystroke ]]; then
rsync -ah ~/.easystroke ~/old_dat/
fi
# elvish
if [[ -d ~/.elvish ]]; then
rsync -ah ~/.elvish ~/old_dat/
fi
# local folder
if [[ -d ~/.local/share/applications ]]; then
rsync -ah ~/.local/share/applications/ ~/old_dat/.local/share/
fi
# mozilla
if [[ -d ~/.mozilla ]]; then
rsync -ah ~/.mozilla ~/old_dat/
fi
# scripts
if [[ -d ~/scripts ]]; then
rsync -ah ~/scripts ~/old_dat/
fi
# remove old templates
if [[ -d ~/.config/Vorlagen ]]; then
rm -r ~/.config/Vorlagen
fi
# remove old scripts in path
if [[ -d ~/scripts/in_path ]]; then
rm -r ~/scripts/in_path
fi
"""
pass
def new_config():
"""
Copy files for new config
"""
"""
#copy folders
cp -r ~/config/.config/ ~/
cp -r ~/config/.local/ ~/
#cp -r ~/config/Dokumente ~/
cp -r ~/config/.mozilla/firefox/default-release/* ~/.mozilla/firefox/*.default-release/
cp -r ~/config/.easystroke ~/
cp -r ~/config/.elvish ~/
cp -r ~/config/.doom.d ~/
cp -r ~/config/.ssh ~/
echo Copied folders
#copy single files
cp -r ~/config/.bashrc ~/
cp -r ~/config/.face ~/
cp -r ~/config/.gtkrc-2.0 ~/
cp -r ~/config/.gitconfig ~/
cp -r ~/config/.tmux.conf ~/
cp -r ~/config/.xinitrc ~/
cp -r ~/config/.kopiaignore ~/
echo Copied files
# make .xinitrc executable
chmod +x ~/.xinitrc
#copy scripts
cp -r ~/config/scripts/ ~/
# copy cache
cp -r ~/config/.cache ~/
#copy stuff to /etc
sudo cp -r ~/config/etc /
#sudo rsync --exclude=default/grub ~/config/etc /etc/
#read -r -p "Do you want to overwrite the grub config? [y/N] " response
#if [[ "$response" =~ ^([yY][eE][sS][jJ]|[yY])$ ]]
#then
# copy config
# sudo cp ~/config/etc/default/grub /etc/default/
# update grub
# sudo grub-mkconfig -o /boot/grub/grub.cfg
#fi
# NOTE Distro specific stuff
distro=$(cat /etc/*-release | grep "^ID=")
if [ "$distro" == "ID=arcolinux" ]; then
sudo mv /etc/arco-pacman.conf /etc/pacman.conf
fi
if [ "$distro" == "ID=arch" ]; then
sudo mv /etc/arch-pacman.conf /etc/pacman.conf
fi
# NOTE only for webkit2gtk version of lightdm
#copy old lightdm themes (and maybe other stuff, idk)
#sudo cp -r ~/config/var /
#copy usr stuff
sudo cp -r ~/config/usr /
# copy xresources
cp ~/config/.Xresources ~/
"""
pass
def reloading():
"""
Reload changes into the running system
"""
"""
# reload applications
update-desktop-database ~/.local/share/applications/
#sync doom-emacs
~/.emacs.d/bin/doom sync
# disable freedesktop notification daemon
if [[ -f "/usr/share/dbus-1/services/org.freedesktop.Notifications.service" ]]; then
sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled
fi
# dunst
pkill dunst && nohup dunst &
# reload systemd user scripts
systemctl --user daemon-reload
# reload .Xresources
if [[ -f "$HOME/.Xresources" ]]; then
xrdb ~/.Xresources
fi
# execute feh
"$HOME/.fehbg"
# NOTE working now
# if [[ "$(ps aux | grep "FIXME")" ]]; then ...
# ps aux | grep "\si3\s" breaks if i3 hasn't been restarted yet
# ps aux | grep "\si3" works for both, not certain if other stuff could be detected as well
# ps aux | grep "\si3\$" breaks if i3 has been restarted already in this session
if ps aux | grep -E "\si3(\s|$)" &>/dev/null; then
i3-msg restart 1>/dev/null
fi
"""
pass
def final_output():
"""
Some last words
"""
"""
#output
echo -e "\033[38;2;20;200;20mFinished updating everything!\033[0m"
echo Launching new shell!
# remind user of cgroupsv2 if using podman
if [[ $(pacman -Q | grep podman) ]]; then
echo -e "\033[38;2;200;20;20mRemember to set \"systemd.unified_cgroup_hierarchy=1\" in the kernel!!\033[0m"
fi
# reminder for enable additional gpu features for corectrl with amd gpus
if [[ $(pacman -Q | grep podman) ]]; then
echo -e "\033[38;2;200;20;20mRemember to set \"amdgpu.ppfeaturemask=0xffffffff\" in the kernel!!\033[0m"
fi
# reload user default shell
exec "$(getent passwd $LOGNAME | cut -d: -f7)"
"""
pass
def main():
# TODO
if not os.path.isfile(os.path.join(home, ".seltheme")):
select_theme()
# TODO remove previous backup
# ~/old_dat
# TODO create new backup
create_backup()
# TODO copy new config files
new_config()
# TODO install theme
install_theme()
# TODO install bash cat
install_bash_cat()
# TODO install psipcalc
install_psipcalc()
# TODO autostart programs
autostart()
# TODO systemd services
services()
# TODO user groups and permissions
groupmanagement()
# TODO miscellaneous items
miscellaneous()
# TODO reloading changes
reloading()
# TODO final outputs
final_output()
# Set home path
home = os.path.expanduser("~")
# Check root or run as sudo
if os.getuid() != 0:
subprocess.run("sudo -v", shell=True, check=True)
if __name__ == "__main__":
# TODO arguments
# -t: select theme
# -f: update firefox config
# -h: help
# change to home directory
os.chdir(home)
# slightly random uuid for our config location
configdir = "config-" + str(uuid.uuid1())
# TODO remove old "config-" folder(s)
# https://stackoverflow.com/a/70860760
# clone git repo
subprocess.run(
"git clone https://gitlab.com/RealStickman-arch/config.git {configdir}".format(
configdir=configdir
),
shell=True,
check=True,
)
os.chdir(configdir)
subprocess.run(
"git checkout master",
shell=True,
check=True,
stderr=subprocess.STDOUT,
stdout=subprocess.DEVNULL,
)
os.chdir(home)
# check if downloaded script is different
if not filecmp.cmp(
os.path.join(home, "scripts/arch-config.py"),
os.path.join(configdir, "scripts/arch-config.py"),
):
print("Found newer config file")
# import newer script version
spec = importlib.util.spec_from_file_location(
"config",
os.path.join(configdir, "scripts/arch-config.py"),
)
config = importlib.util.module_from_spec(spec)
sys.modules["config"] = config
spec.loader.exec_module(config)
# call new main function
config.main()
else:
print("Config is up to date")
# call main function
main()

View File

@ -24,26 +24,6 @@ cat <<EOF
############################################################ ############################################################
EOF EOF
# function to select theme
function func_seltheme {
cmd=(dialog --separate-output --checklist "Select theme (Only select one)" 22 76 16)
options=(1 "Nyarch" off # any option can be set to default to "on"
2 "Spaceengine Pink" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
1)
echo "nyarch" >"$HOME/.seltheme"
;;
2)
echo "space-pink" >"$HOME/.seltheme"
;;
esac
done
}
echo
cat <<EOF cat <<EOF
######################################## ########################################
################ Setup ################ ################ Setup ################
@ -52,23 +32,14 @@ EOF
# get script directory # get script directory
scriptloc="$BASH_SOURCE" scriptloc="$BASH_SOURCE"
#scriptpath="$(dirname "$scriptloc")"
# change to home
#cd "$HOME"
# remove old installs
#rm -rf ~/configs
# Use temporary directory for download # Use temporary directory for download
# FIXME probably lots of issues at first
tempdir="$(mktemp -d)" tempdir="$(mktemp -d)"
#cd "$tempdir"
echo "Checking config file" echo "Checking config file"
#clone this repo #clone this repo
git clone -b main https://gitea.exu.li/realstickman/configs.git "$tempdir" &>/dev/null git clone -b rewrite-in-python https://gitea.exu.li/realstickman/configs.git "$tempdir" &>/dev/null
# check if the install scripts are the same # check if the install scripts are the same
# NOTE Arguments get passed automatically now # NOTE Arguments get passed automatically now
@ -77,468 +48,26 @@ if ! cmp --silent "$scriptloc" "$HOME/scripts/arch-config.sh"; then
cp "$tempdir/arch-config/scripts/arch-config.sh" "$HOME/scripts/" && bash ~/scripts/arch-config.sh "$@" cp "$tempdir/arch-config/scripts/arch-config.sh" "$HOME/scripts/" && bash ~/scripts/arch-config.sh "$@"
fi fi
# if no seltheme file exists, ask to select a theme
if [[ ! -f "$HOME/.seltheme" ]]; then
func_seltheme
fi
####################
#### Arguments ####
####################
copy_firefox=0
# handle arguments
if [[ "$#" -eq 1 ]]; then
# -t/--theme to change theme
if [[ "$1" == "-t" || "$1" == "--theme" ]]; then
func_seltheme
elif [[ "$1" == "-f" || "$1" == "--firefox" ]]; then
copy_firefox=1
elif [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo "-h, --help Show help menu"
echo "-t, --theme Show theme selection screen"
echo "-f, --firefox Update firefox config"
exit 0
fi
elif [[ "$#" -gt 1 ]]; then
echo "Too many arguments"
exit 1
fi
echo
cat <<EOF cat <<EOF
######################################## ########################################
################ Backup ################ ############## Start Setup #############
######################################## ########################################
EOF EOF
# Collect all PIDs of background processes that shoulb be waited for # Collect all PIDs of background processes that should be waited for
pids="" pids=""
#################### # call user script
##### Cleaning ##### python "$tempdir/arch-config/scripts/config-user.py" &
#################### pids="$pids $!"
#delete previous backups # call root script
echo Removing old backup bash "$tempdir/arch-config/scripts/config-root.sh" &
if [[ -d ~/old_dat ]]; then pids="$pids $!"
rm -rf ~/old_dat
fi
####################
##### Creating #####
####################
# make new backup
echo Creating backup
mkdir -p ~/old_dat/.config
mkdir -p ~/old_dat/.doom.d
#mkdir -p ~/old_dat/.easystroke
mkdir -p ~/old_dat/.mozilla
mkdir -p ~/old_dat/scripts
mkdir -p ~/old_dat/.elvish
mkdir -p ~/old_dat/.ssh
# make subdirectories
mkdir -p ~/old_dat/.local/share
#config folders
if [[ -d ~/.config/MangoHud ]]; then
rsync -ah ~/.config/MangoHud ~/old_dat/.config/
fi
if [[ -d ~/.config/fish ]]; then
rsync -ah ~/.config/fish ~/old_dat/.config/
fi
if [[ -d ~/.config/gtk-3.0 ]]; then
rsync -ah ~/.config/gtk-3.0 ~/old_dat/.config/
fi
if [[ -d ~/.config/sway ]]; then
rsync -ah ~/.config/sway ~/old_dat/.config/
fi
if [[ -d ~/.config/polybar ]]; then
rsync -ah ~/.config/polybar ~/old_dat/.config/
fi
# doom.d folder
if [[ -d ~/.doom.d ]]; then
rsync -ah ~/.doom.d ~/old_dat/
fi
# .ssh folder
if [[ -d ~/.ssh ]]; then
rsync -ah ~/.ssh ~/old_dat/
fi
# easystroke
if [[ -d ~/.easystroke ]]; then
rsync -ah ~/.easystroke ~/old_dat/
fi
# local folder
if [[ -d ~/.local/share/applications ]]; then
rsync -ah ~/.local/share/applications/ ~/old_dat/.local/share/
fi
# mozilla
if [[ -d ~/.mozilla ]]; then
rsync -ah ~/.mozilla ~/old_dat/
fi
# scripts
if [[ -d ~/scripts ]]; then
rsync -ah ~/scripts ~/old_dat/
fi
# remove old templates
if [[ -d ~/.config/Vorlagen ]]; then
rm -r ~/.config/Vorlagen
fi
# remove old scripts in path
if [[ -d ~/scripts/in_path ]]; then
rm -r ~/scripts/in_path
fi
# remove old script pieces
if [[ -d ~/scripts/pieces ]]; then
rm -r ~/scripts/pieces
fi
# remove old polybar scripts
if [[ -d ~/scripts/polybar ]]; then
rm -r ~/scripts/polybar
fi
# remove archived scripts
if [[ -d ~/scripts/archive ]]; then
rm -r ~/scripts/archive
fi
echo
cat <<EOF
########################################
########### Copy New Config ###########
########################################
EOF
#copy folders
cp -r "$tempdir/arch-config/.config/" ~/
cp -r "$tempdir/arch-config/.local/" ~/
cp -r "$tempdir/arch-config/.ssh" ~/
# copy firefox only if "-f" or "--firefox" is given as argument
if [[ copy_firefox -eq 1 ]]; then
if [[ -d ~/.mozilla/firefox ]]; then
# NOTE check if firefox default-release directory exists. 1 is good, 0 is bad
firefoxdir=$(find ~/.mozilla/firefox/ -name \*.default-release | wc -l)
if [[ $firefoxdir -eq 1 ]]; then
cp -r "$tempdir/configs/arch-config/.mozilla/firefox/default-release/"* ~/.mozilla/firefox/*.default-release/
else
echo "Please launch firefox and then update the config again"
fi
else
echo "Please launch firefox and then update the config again"
fi
fi
#copy single files
cp -r "$tempdir/arch-config/.face" ~/
cp -r "$tempdir/arch-config/.gtkrc-2.0" ~/
cp -r "$tempdir/arch-config/.gitconfig" ~/
cp -r "$tempdir/arch-config/.xinitrc" ~/
cp -r "$tempdir/arch-config/.kopiaignore" ~/
echo Copied files
# make .xinitrc executable
chmod +x ~/.xinitrc
#copy scripts
cp -r "$tempdir/arch-config/scripts/" ~/
#copy stuff to /etc
sudo cp -r "$tempdir/arch-config/etc" /
echo Copied folders
# NOTE Distro specific stuff
# TODO simplify for Arch only
distro=$(cat /etc/*-release | grep "^ID=")
if [ "$distro" == "ID=arch" ]; then
sudo mv /etc/arch-pacman.conf /etc/pacman.conf
fi
#copy usr stuff
sudo cp -r "$tempdir/arch-config/usr" /
# copy xresources for sway
cp "$tempdir/arch-config/.Xdefaults" ~/
echo
cat <<EOF
##############################
##### Per Device Settings ####
##############################
EOF
# lupusregina
# TODO analyse parts necessary for Wayland with Alita
if [ "$(hostname)" == "lupusregina" ]; then
echo "Applying overrides for $(hostname)"
# polybar dpi
polybardpi="$(cat ~/configs/arch-config/per-device/lupusregina/polybar-dpi-override.ini)"
awk -v polybardpi="$polybardpi" '/;per-device dpi insert/{print;print polybardpi;next}1' ~/.config/polybar/i3config.ini >/tmp/i3config.ini
cp /tmp/i3config.ini ~/.config/polybar/i3config.ini
# xresources dpi
xftdpi="$(cat ~/configs/arch-config/per-device/lupusregina/xresources-dpi-override)"
awk -v xftdpi="$xftdpi" '/!per-device dpi insert/{print;print xftdpi;next}1' ~/.Xdefaults >/tmp/.Xdefaults
cp /tmp/.Xdefaults ~/.Xdefaults
sudo cp ~/configs/arch-config/per-device/lupusregina/10-monitor.conf /etc/X11/xorg.conf.d/
sudo cp ~/configs/arch-config/per-device/lupusregina/20-amdgpu.conf /etc/X11/xorg.conf.d/
fi
echo
cat <<EOF
####################
###### Theme ######
####################
EOF
# install theme selected in themes file
seltheme="$(cat "$HOME/.seltheme")"
if [[ "$seltheme" == "nyarch" ]]; then
#cp -r "./themes/nyarch/i3" "$HOME/.config/"
cp "$tempdir/arch-themes/nyarch/sway/color" "$HOME/.config/sway/config.d/"
#cp -r "$HOME/configs/arch-themes/nyarch/polybar" "$HOME/.config/"
#cp -r "./themes/nyarch/neofetch/lowpoly_flamegirl_blue.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-nyarch" "$HOME/.fehbg"
#sed -i 's/^NAME=".*"/NAME="Rawrch Linyux"/' /etc/os-release
elif [[ "$seltheme" == "space-pink" ]]; then
#cp -r "./themes/space-pink/i3" "$HOME/.config/"
cp "$tempdir/arch-themes/space-pink/sway/color" "$HOME/.config/sway/config.d/"
#cp -r "$HOME/configs/arch-themes/space-pink/polybar" "$HOME/.config/"
#cp -r "./themes/space-pink/neofetch/lowpoly_flamegirl_orange.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-space-pink" "$HOME/.fehbg"
fi
# make fehbg executable
#if [[ -f "$HOME/.fehbg" ]]; then
# chmod +x ~/.fehbg
# copy chosen image for lockscreen and desktop
backgroundimage="/home/exu/Bilder/Backgrounds/artstation/dk-lan/artstation_14224733_55806391_月半与鬼哭.jpg"
mkdir -p "$HOME/.cache/backgrounds"
cp "$backgroundimage" "$HOME/.cache/backgrounds/desktop"
cp "$backgroundimage" "$HOME/.cache/backgrounds/lockscreen"
chmod +x "$HOME/scripts/gsettings.sh"
bash "$HOME/scripts/gsettings.sh"
echo "Set theme using gsettings"
echo
cat <<EOF
####################
##### Bash Cat #####
####################
EOF
# download cat as cat
echo "Installing bash cat"
mkdir "$tempdir/bash-cat-with-cat"
git clone https://github.com/RealStickman/bash-cat-with-cat.git "$tempdir/bash-cat-with-cat" &>/dev/null
cp "$tempdir/bash-cat-with-cat/cat.sh" "$HOME/scripts/pieces/cat.sh"
#rm -rf ./bash-cat-with-cat
echo
cat <<EOF
########################################
############### Autostart ##############
########################################
EOF
# create autostart directory
mkdir -p ~/.config/autostart/
# copy corectrl desktop file
if [[ $(pacman -Q | grep corectrl) ]]; then
cp /usr/share/applications/org.corectrl.corectrl.desktop ~/.config/autostart/org.corectrl.corectrl.desktop
fi
echo
cat <<EOF
########################################
############### Services ###############
########################################
EOF
# generate betterlockscreen cache image in background
#imagepath="/home/exu/Bilder/Backgrounds/artstation/dk-lan/artstation_14224733_55806391_月半与鬼哭.jpg"
#if [ -f "$imagepath" ]; then
# betterlockscreen -u "$imagepath" &
# pids="$pids $!"
#fi
# reload systemd user scripts
systemctl --user daemon-reload
# set systemd services for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
sudo systemctl enable --now vmware-networks.service || echo "Service failed, continuing"
sudo systemctl enable --now vmware-usbarbitrator.service || echo "Service failed, continuing"
fi
# FIXME temporary
#if [ -f "/etc/pipewire/pipewire.conf" ]; then
# sudo rm "/etc/pipewire/pipewire.conf"
#fi
# FIXME temporary migrate container store
if [ -f "$HOME/.config/containers/storage.conf" ]; then
rm "$HOME/.config/containers/storage.conf"
podman system reset -f
fi
# enable fstrim timer
sudo systemctl enable fstrim.timer
# enable btrfs maintenance timers
if [[ $(pacman -Q | grep btrfsmaintenance) ]]; then
sudo systemctl restart btrfsmaintenance-refresh.service
sudo systemctl enable btrfs-balance.timer
sudo systemctl enable btrfs-scrub.timer
fi
# enable systemd-timesyncd (ntp service)
sudo timedatectl set-ntp true
# enable ssh-agent
systemctl --user enable --now ssh-agent
# enable reflector timer
sudo systemctl enable reflector.timer
# enable vnstat
sudo systemctl enable vnstat
echo
cat <<EOF
########################################
################ Groups ################
########################################
EOF
# set systemd and group for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
echo "Setting up group for vmware"
sudo groupadd -f vmware
sudo gpasswd -a "$USER" vmware 1>/dev/null
fi
# set group for libvirt
if [[ $(pacman -Q | grep libvirt) ]]; then
echo "Setting group for libvirt"
sudo gpasswd -a "$USER" libvirt 1>/dev/null
fi
# set group for wireshark (only if installed)
if [[ $(pacman -Q | grep wireshark-qt) ]]; then
echo "Setting up group for wireshark"
sudo groupadd -f wireshark
sudo gpasswd -a "$USER" wireshark 1>/dev/null
fi
# add group for corectrl
if [[ $(pacman -Q | grep corectrl) ]]; then
echo "Setting up group for corectrl"
sudo groupadd -f corectrl
sudo gpasswd -a "$USER" corectrl 1>/dev/null
fi
# group for controlling backlight
echo "Setting group for backlight"
sudo groupadd -f video
sudo gpasswd -a "$USER" video 1>/dev/null
# group for monitoring wireguard
echo "Setting group for wireguard"
sudo groupadd -f wireguard
sudo gpasswd -a "$USER" wireguard 1>/dev/null
echo
cat <<EOF
########################################
############# Misc Config #############
########################################
EOF
# set permissions for sudoers.d to root only
sudo chown root:root -R /etc/sudoers.d/
sudo chmod 600 -R /etc/sudoers.d/
# xfce settings
# disable screensaver & locker
/usr/bin/xfconf-query -c xfce4-session -n -t bool -p /startup/screensaver/enabled -s false
#make bash scripts executable
chmod +x -R ~/.config/polybar/
chmod +x -R ~/.config/sway/scripts
chmod +x -R ~/scripts
# make applications executable
chmod +x -R ~/.local/share/applications
#remove downloaded folder
rm -rf ~/config
echo
cat <<EOF
########################################
############## Reloading ##############
########################################
EOF
# reload applications
update-desktop-database ~/.local/share/applications/
# sync doom-emacs only if it is installed
if [[ -f ~/.config/emacs/bin/doom ]]; then
~/.config/emacs/bin/doom sync &
pids="$pids $!"
fi
# disable freedesktop notification daemon
if [[ -f "/usr/share/dbus-1/services/org.freedesktop.Notifications.service" ]]; then
sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled
fi
# dunst
#pkill dunst && nohup dunst &
# reload .Xresources
# TODO fails without display
#if [[ -f "$HOME/.Xresources" ]]; then
# xrdb ~/.Xresources
#fi
# execute feh
#if [[ -f "$HOME/.fehbg" ]]; then
# "$HOME/.fehbg"
#fi
#if ps aux | grep -E "\si3(\s|$)" &>/dev/null; then
# i3-msg restart 1>/dev/null
#fi
if [ $XDG_SESSION_DESKTOP == "sway" ]; then
swaymsg reload
echo "Reloaded sway"
fi
# wait for all background jobs to finish # wait for all background jobs to finish
wait $pids && echo "Finished background jobs" wait $pids && echo "Finished background jobs"
echo
cat <<EOF cat <<EOF
######################################## ########################################
############### Finished ############### ############### Finished ###############

View File

@ -0,0 +1,143 @@
#!/usr/bin/env bash
set -euo pipefail
# Collect all PIDs of background processes that should be waited for
pids=""
cat <<EOF
########################################
######### Copy New Config Root #########
########################################
EOF
#copy stuff to /etc
sudo cp -r "$tempdir/arch-config/etc" /
#copy usr stuff
sudo cp -r "$tempdir/arch-config/usr" /
echo Copied folders root
# NOTE Distro specific stuff
# TODO simplify for Arch only
distro=$(cat /etc/*-release | grep "^ID=")
if [ "$distro" == "ID=arch" ]; then
sudo mv /etc/arch-pacman.conf /etc/pacman.conf
fi
echo Copied single files
cat <<EOF
##############################
## Per Device Settings Root ##
##############################
EOF
# lupusregina
# TODO analyse parts necessary for Wayland with Alita
if [ "$(hostname)" == "lupusregina" ]; then
sudo cp ~/configs/arch-config/per-device/lupusregina/10-monitor.conf /etc/X11/xorg.conf.d/
sudo cp ~/configs/arch-config/per-device/lupusregina/20-amdgpu.conf /etc/X11/xorg.conf.d/
fi
cat <<EOF
########################################
############# Services Root ############
########################################
EOF
# reload systemd scripts
systemctl daemon-reload
# set systemd services for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
sudo systemctl enable --now vmware-networks.service || echo "Service failed, continuing"
sudo systemctl enable --now vmware-usbarbitrator.service || echo "Service failed, continuing"
fi
# enable fstrim timer
sudo systemctl enable fstrim.timer
# enable btrfs maintenance timers
if [[ $(pacman -Q | grep btrfsmaintenance) ]]; then
sudo systemctl restart btrfsmaintenance-refresh.service
sudo systemctl enable btrfs-balance.timer
sudo systemctl enable btrfs-scrub.timer
fi
# enable systemd-timesyncd (ntp service)
sudo timedatectl set-ntp true
# enable reflector timer
sudo systemctl enable reflector.timer
# enable vnstat
sudo systemctl enable vnstat
cat <<EOF
########################################
################ Groups ################
########################################
EOF
# set systemd and group for vmware (only if installed)
if [[ $(pacman -Q | grep vmware-workstation) ]]; then
echo "Setting up group for vmware"
sudo groupadd -f vmware
sudo gpasswd -a "$USER" vmware 1>/dev/null
fi
# set group for libvirt
if [[ $(pacman -Q | grep libvirt) ]]; then
echo "Setting group for libvirt"
sudo gpasswd -a "$USER" libvirt 1>/dev/null
fi
# set group for wireshark (only if installed)
if [[ $(pacman -Q | grep wireshark-qt) ]]; then
echo "Setting up group for wireshark"
sudo groupadd -f wireshark
sudo gpasswd -a "$USER" wireshark 1>/dev/null
fi
# add group for corectrl
if [[ $(pacman -Q | grep corectrl) ]]; then
echo "Setting up group for corectrl"
sudo groupadd -f corectrl
sudo gpasswd -a "$USER" corectrl 1>/dev/null
fi
# group for controlling backlight
echo "Setting group for backlight"
sudo groupadd -f video
sudo gpasswd -a "$USER" video 1>/dev/null
# group for monitoring wireguard
echo "Setting group for wireguard"
sudo groupadd -f wireguard
sudo gpasswd -a "$USER" wireguard 1>/dev/null
cat <<EOF
########################################
########### Misc Config Root ###########
########################################
EOF
# set permissions for sudoers.d to root only
sudo chown root:root -R /etc/sudoers.d/
sudo chmod 600 -R /etc/sudoers.d/
cat <<EOF
########################################
############ Reloading Root ############
########################################
EOF
# disable freedesktop notification daemon
if [[ -f "/usr/share/dbus-1/services/org.freedesktop.Notifications.service" ]]; then
sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled
fi
# wait for all background jobs to finish
wait $pids && echo "Finished background jobs"

View File

@ -0,0 +1,298 @@
#!/usr/bin/env python3
import argparse
import os
import shutil
import subprocess
import re
import dialog # install pythondialog
def func_seltheme():
"""
Dialogue to select a theme
"""
d = dialog.Dialog(dialog="dialog")
options = ["Nyarch", "Spaceengine Pink"]
response, selected_index = d.menu("Select theme", choices=options)
# User selects an option
if response == 0:
theme: str = options[selected_index]
# write theme name defined in `options` to .seltheme
with open(f"{home_dir}/.seltheme", "w") as file:
file.write(theme)
def copy_firefox():
"""
Copy configuration for Firefox
"""
pass
def main():
"""
Main function
"""
global home_dir
home_dir = os.environ["HOME"]
# find temporary directory
scriptloc = os.path.abspath(__file__)
tempdir = os.path.dirname(scriptloc)
# Force theme selection if none has been selected yet
if not os.path.isfile(os.path.join(home_dir, ".seltheme")):
func_seltheme()
print("""\
########################################
################ Backup ################
########################################\
""")
####################
##### Cleaning #####
####################
# Remove old backup
old_dat_path = os.path.join(home_dir, "old_dat")
if os.path.isdir(old_dat_path):
print("Removing old backup")
shutil.rmtree(old_dat_path)
####################
##### Creating #####
####################
# create folders
print("Creating backup")
os.makedirs(old_dat_path)
os.makedirs(os.path.join(old_dat_path, ".config"))
os.makedirs(os.path.join(old_dat_path, ".doom.d"))
os.makedirs(os.path.join(old_dat_path, ".mozilla"))
os.makedirs(os.path.join(old_dat_path, "scripts"))
os.makedirs(os.path.join(old_dat_path, ".ssh"))
os.makedirs(os.path.join(old_dat_path, ".local"))
os.makedirs(os.path.join(old_dat_path, ".local", "share"))
# backup config folders
config_folders = ["MangoHud","fish","gtk-3.0","sway","polybar"]
for folder in config_folders:
src = os.path.join(home_dir, f".config/{folder}")
if os.path.isdir(src):
dst = os.path.join(old_dat_path, ".config")
shutil.copytree(src, dst)
# backup main level folders
other_folders = [".ssh",".mozilla","scripts"]
for folder in other_folders:
src = os.path.join(home_dir, folder)
if os.path.isdir(src):
shutil.copytree(src, old_dat_path)
####################
###### Cleanup #####
####################
folders = [".config/Vorlagen","scripts/in_path","scripts/pieces","scripts/polybar","scripts/archive"]
for folder in folders:
path = os.path.join(home_dir, folder)
if os.path.isdir(path):
shutil.rmtree(path)
print("""\
########################################
########### Copy New Config ###########
########################################\
""")
# copy folders
copy_folders = [".config",".local",".ssh","scripts"]
for folder in copy_folders:
path = os.path.join(tempdir, "arch-config", folder)
shutil.copytree(path, home_dir)
# copy files
copy_files = [".face",".gtkrc-2.0",".gitconfig",".kopiaignore",".Xdefaults"]
for file in copy_files:
path = os.path.join(tempdir, "arch-config", file)
shutil.copy(path, home_dir)
# Copy firefox if argument "-f" or "--firefox" is given
if copy_firefox and os.path.isdir(os.path.join(home_dir, ".mozilla/firefox")):
firefox_dirs = [dirname for dirname in os.listdir(os.path.join(home_dir,".mozilla/firefox")) if re.search('.*default-release', dirname)]
if len(firefox_dirs) >= 1:
for directory in firefox_dirs:
src = os.path.join(tempdir, "arch-config/.mozilla/firefox/default-release")
shutil.copytree(src, directory)
else:
print("Please launch firefox and then update the config again")
else:
print("Please launch firefox and then update the config again")
print("Copied folder and files")
print("""\
##############################
##### Per Device Settings ####
##############################\
""")
# Skipped for now
# shell commands as reference
'''
# lupusregina
# TODO analyse parts necessary for Wayland with Alita
if [ "$(hostname)" == "lupusregina" ]; then
echo "Applying overrides for $(hostname)"
# polybar dpi
polybardpi="$(cat ~/configs/arch-config/per-device/lupusregina/polybar-dpi-override.ini)"
awk -v polybardpi="$polybardpi" '/;per-device dpi insert/{print;print polybardpi;next}1' ~/.config/polybar/i3config.ini >/tmp/i3config.ini
cp /tmp/i3config.ini ~/.config/polybar/i3config.ini
# xresources dpi
xftdpi="$(cat ~/configs/arch-config/per-device/lupusregina/xresources-dpi-override)"
awk -v xftdpi="$xftdpi" '/!per-device dpi insert/{print;print xftdpi;next}1' ~/.Xdefaults >/tmp/.Xdefaults
cp /tmp/.Xdefaults ~/.Xdefaults
fi
'''
print("""\
####################
###### Theme ######
####################\
""")
# read selected theme
seltheme = ""
with open(os.path.join(home_dir, ".seltheme"), "r") as file:
seltheme = file.read()
match seltheme:
case "Nyarch":
shutil.copy(os.path.join(tempdir, "arch-themes/nyarch/sway/color"), os.path.join(home_dir, ".config/sway/config.d"))
case "Spaceengine Pink":
shutil.copy(os.path.join(tempdir, "arch-themes/space-pink/sway/color"), os.path.join(home_dir, ".config/sway/config.d"))
case _:
raise ValueError("No theme defined")
# copy chosen image for lockscreen and desktop
backgroundimage = "/home/exu/Bilder/Backgrounds/artstation/dk-lan/artstation_14224733_55806391_月半与鬼哭.jpg"
os.makedirs(os.path.join(home_dir, ".cache"))
os.makedirs(os.path.join(home_dir, ".cache", "backgrounds"))
shutil.copy(backgroundimage,os.path.join(home_dir,".cache/backgrounds/desktop"))
shutil.copy(backgroundimage,os.path.join(home_dir,".cache/backgrounds/lockscreen"))
subprocess.run(["chmod", "+x", os.path.join(home_dir, "scripts/gsettings.sh")])
subprocess.run(["bash", os.path.join(home_dir, "scripts/gsettings.sh")])
print("Set theme using gsettings")
print("""\
####################
##### Bash Cat #####
####################\
""")
# TODO download bash cat
# shell command for reference
'''
echo "Installing bash cat"
mkdir "$tempdir/bash-cat-with-cat"
git clone https://github.com/RealStickman/bash-cat-with-cat.git "$tempdir/bash-cat-with-cat" &>/dev/null
cp "$tempdir/bash-cat-with-cat/cat.sh" "$HOME/scripts/pieces/cat.sh"
'''
print("""\
########################################
############### Autostart ##############
########################################\
""")
# create autostart directory
os.makedirs(os.path.join(home_dir, ".config", "autostart"))
# TODO check installed package with python
# shell commands for reference
'''
# copy corectrl desktop file
if [[ $(pacman -Q | grep corectrl) ]]; then
cp /usr/share/applications/org.corectrl.corectrl.desktop ~/.config/autostart/org.corectrl.corectrl.desktop
fi
'''
print("""\
########################################
############### Services ###############
########################################\
""")
# reload systemd user scripts
subprocess.run(["systemctl", "--user", "daemon-reload"])
# enable ssh-agent
subprocess.run(["systemctl", "--user", "enable" ,"--now" ,"ssh-agent"])
print("""\
########################################
############# Misc Config #############
########################################\
""")
# make scripts executable
subprocess.run(["chmod", "+x", "-R", os.path.join(home_dir, ".config/polybar")])
subprocess.run(["chmod", "+x", "-R", os.path.join(home_dir, ".config/sway/scripts")])
subprocess.run(["chmod", "+x", "-R", os.path.join(home_dir, "scripts")])
subprocess.run(["chmod", "+x", "-R", os.path.join(home_dir, ".local/share/applications")])
# remove downloaded folder
shutil.rmtree(tempdir)
print("""\
########################################
############## Reloading ##############
########################################\
""")
# TODO implement this stuff
# bash for reference
'''
# reload applications
update-desktop-database ~/.local/share/applications/
# sync doom-emacs only if it is installed
if [[ -f ~/.config/emacs/bin/doom ]]; then
~/.config/emacs/bin/doom sync &
pids="$pids $!"
fi
if [ $XDG_SESSION_DESKTOP == "sway" ]; then
swaymsg reload
echo "Reloaded sway"
fi
# wait for all background jobs to finish
wait $pids && echo "Finished background jobs"
'''
if __name__ == "__main__":
####################
#### Arguments ####
####################
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--theme", help="Select a different theme", action="store_true")
parser.add_argument("-f", "--firefox", help="Update firefox config", action="store_true")
# parse arguments
args = parser.parse_args()
select_theme = args.theme
copy_firefox = args.firefox
main()

View File

@ -0,0 +1,325 @@
#!/usr/bin/env bash
set -euo pipefail
# function to select theme
function func_seltheme {
cmd=(dialog --separate-output --checklist "Select theme (Only select one)" 22 76 16)
options=(1 "Nyarch" off # any option can be set to default to "on"
2 "Spaceengine Pink" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
clear
for choice in $choices; do
case $choice in
1)
echo "nyarch" >"$HOME/.seltheme"
;;
2)
echo "space-pink" >"$HOME/.seltheme"
;;
esac
done
}
# if no seltheme file exists, ask to select a theme
if [[ ! -f "$HOME/.seltheme" ]]; then
func_seltheme
fi
####################
#### Arguments ####
####################
copy_firefox=0
# handle arguments
if [[ "$#" -eq 1 ]]; then
# -t/--theme to change theme
if [[ "$1" == "-t" || "$1" == "--theme" ]]; then
func_seltheme
elif [[ "$1" == "-f" || "$1" == "--firefox" ]]; then
copy_firefox=1
elif [[ "$#" -gt 1 ]]; then
echo "Too many arguments"
exit 1
fi
cat <<EOF
########################################
################ Backup ################
########################################
EOF
# Collect all PIDs of background processes that should be waited for
pids=""
####################
##### Cleaning #####
####################
#delete previous backups
echo Removing old backup
if [[ -d ~/old_dat ]]; then
rm -rf ~/old_dat
fi
####################
##### Creating #####
####################
# make new backup
echo Creating backup
mkdir -p ~/old_dat/.config
mkdir -p ~/old_dat/.doom.d
mkdir -p ~/old_dat/.mozilla
mkdir -p ~/old_dat/scripts
mkdir -p ~/old_dat/.ssh
# make subdirectories
mkdir -p ~/old_dat/.local/share
#config folders
if [[ -d ~/.config/MangoHud ]]; then
rsync -ah ~/.config/MangoHud ~/old_dat/.config/
fi
if [[ -d ~/.config/fish ]]; then
rsync -ah ~/.config/fish ~/old_dat/.config/
fi
if [[ -d ~/.config/gtk-3.0 ]]; then
rsync -ah ~/.config/gtk-3.0 ~/old_dat/.config/
fi
if [[ -d ~/.config/sway ]]; then
rsync -ah ~/.config/sway ~/old_dat/.config/
fi
if [[ -d ~/.config/polybar ]]; then
rsync -ah ~/.config/polybar ~/old_dat/.config/
fi
# doom.d folder
if [[ -d ~/.doom.d ]]; then
rsync -ah ~/.doom.d ~/old_dat/
fi
# .ssh folder
if [[ -d ~/.ssh ]]; then
rsync -ah ~/.ssh ~/old_dat/
fi
# local folder
if [[ -d ~/.local/share/applications ]]; then
rsync -ah ~/.local/share/applications/ ~/old_dat/.local/share/
fi
# mozilla
if [[ -d ~/.mozilla ]]; then
rsync -ah ~/.mozilla ~/old_dat/
fi
# scripts
if [[ -d ~/scripts ]]; then
rsync -ah ~/scripts ~/old_dat/
fi
# remove old templates
if [[ -d ~/.config/Vorlagen ]]; then
rm -r ~/.config/Vorlagen
fi
# remove old scripts in path
if [[ -d ~/scripts/in_path ]]; then
rm -r ~/scripts/in_path
fi
# remove old script pieces
if [[ -d ~/scripts/pieces ]]; then
rm -r ~/scripts/pieces
fi
# remove old polybar scripts
if [[ -d ~/scripts/polybar ]]; then
rm -r ~/scripts/polybar
fi
# remove archived scripts
if [[ -d ~/scripts/archive ]]; then
rm -r ~/scripts/archive
fi
cat <<EOF
########################################
########### Copy New Config ###########
########################################
EOF
#copy folders
cp -r "$tempdir/arch-config/.config/" ~/
cp -r "$tempdir/arch-config/.local/" ~/
cp -r "$tempdir/arch-config/.ssh" ~/
# copy firefox only if "-f" or "--firefox" is given as argument
if [[ copy_firefox -eq 1 ]]; then
if [[ -d ~/.mozilla/firefox ]]; then
# NOTE check if firefox default-release directory exists. 1 is good, 0 is bad
firefoxdir=$(find ~/.mozilla/firefox/ -name \*.default-release | wc -l)
if [[ $firefoxdir -eq 1 ]]; then
cp -r "$tempdir/arch-config/.mozilla/firefox/default-release/"* ~/.mozilla/firefox/*.default-release/
else
echo "Please launch firefox and then update the config again"
fi
else
echo "Please launch firefox and then update the config again"
fi
fi
#copy single files
cp -r "$tempdir/arch-config/.face" ~/
cp -r "$tempdir/arch-config/.gtkrc-2.0" ~/
cp -r "$tempdir/arch-config/.gitconfig" ~/
cp -r "$tempdir/arch-config/.xinitrc" ~/
cp -r "$tempdir/arch-config/.kopiaignore" ~/
echo Copied files
# make .xinitrc executable
chmod +x ~/.xinitrc
#copy scripts
cp -r "$tempdir/arch-config/scripts/" ~/
echo Copied folders
# copy xresources for sway
cp "$tempdir/arch-config/.Xdefaults" ~/
echo Copied single files
cat <<EOF
##############################
##### Per Device Settings ####
##############################
EOF
# lupusregina
# TODO analyse parts necessary for Wayland with Alita
if [ "$(hostname)" == "lupusregina" ]; then
echo "Applying overrides for $(hostname)"
# polybar dpi
polybardpi="$(cat ~/configs/arch-config/per-device/lupusregina/polybar-dpi-override.ini)"
awk -v polybardpi="$polybardpi" '/;per-device dpi insert/{print;print polybardpi;next}1' ~/.config/polybar/i3config.ini >/tmp/i3config.ini
cp /tmp/i3config.ini ~/.config/polybar/i3config.ini
# xresources dpi
xftdpi="$(cat ~/configs/arch-config/per-device/lupusregina/xresources-dpi-override)"
awk -v xftdpi="$xftdpi" '/!per-device dpi insert/{print;print xftdpi;next}1' ~/.Xdefaults >/tmp/.Xdefaults
cp /tmp/.Xdefaults ~/.Xdefaults
fi
cat <<EOF
####################
###### Theme ######
####################
EOF
# install theme selected in themes file
seltheme="$(cat "$HOME/.seltheme")"
if [[ "$seltheme" == "nyarch" ]]; then
#cp -r "./themes/nyarch/i3" "$HOME/.config/"
cp "$tempdir/arch-themes/nyarch/sway/color" "$HOME/.config/sway/config.d/"
#cp -r "$HOME/configs/arch-themes/nyarch/polybar" "$HOME/.config/"
#cp -r "./themes/nyarch/neofetch/lowpoly_flamegirl_blue.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-nyarch" "$HOME/.fehbg"
#sed -i 's/^NAME=".*"/NAME="Rawrch Linyux"/' /etc/os-release
elif [[ "$seltheme" == "space-pink" ]]; then
#cp -r "./themes/space-pink/i3" "$HOME/.config/"
cp "$tempdir/arch-themes/space-pink/sway/color" "$HOME/.config/sway/config.d/"
#cp -r "$HOME/configs/arch-themes/space-pink/polybar" "$HOME/.config/"
#cp -r "./themes/space-pink/neofetch/lowpoly_flamegirl_orange.txt" "$HOME/.config/neofetch/lowpoly_flamegirl.txt"
#cp "./themes/.fehbg-space-pink" "$HOME/.fehbg"
fi
# copy chosen image for lockscreen and desktop
backgroundimage="/home/exu/Bilder/Backgrounds/artstation/dk-lan/artstation_14224733_55806391_月半与鬼哭.jpg"
mkdir -p "$HOME/.cache/backgrounds"
cp "$backgroundimage" "$HOME/.cache/backgrounds/desktop"
cp "$backgroundimage" "$HOME/.cache/backgrounds/lockscreen"
chmod +x "$HOME/scripts/gsettings.sh"
bash "$HOME/scripts/gsettings.sh"
echo "Set theme using gsettings"
cat <<EOF
####################
##### Bash Cat #####
####################
EOF
# download cat as cat
echo "Installing bash cat"
mkdir "$tempdir/bash-cat-with-cat"
git clone https://github.com/RealStickman/bash-cat-with-cat.git "$tempdir/bash-cat-with-cat" &>/dev/null
cp "$tempdir/bash-cat-with-cat/cat.sh" "$HOME/scripts/pieces/cat.sh"
cat <<EOF
########################################
############### Autostart ##############
########################################
EOF
# create autostart directory
mkdir -p ~/.config/autostart/
# copy corectrl desktop file
if [[ $(pacman -Q | grep corectrl) ]]; then
cp /usr/share/applications/org.corectrl.corectrl.desktop ~/.config/autostart/org.corectrl.corectrl.desktop
fi
cat <<EOF
########################################
############### Services ###############
########################################
EOF
# reload systemd user scripts
systemctl --user daemon-reload
# enable ssh-agent
systemctl --user enable --now ssh-agent
cat <<EOF
########################################
############# Misc Config #############
########################################
EOF
#make bash scripts executable
chmod +x -R ~/.config/polybar/
chmod +x -R ~/.config/sway/scripts
chmod +x -R ~/scripts
# make applications executable
chmod +x -R ~/.local/share/applications
#remove downloaded folder
rm -rf ~/config
cat <<EOF
########################################
############## Reloading ##############
########################################
EOF
# reload applications
update-desktop-database ~/.local/share/applications/
# sync doom-emacs only if it is installed
if [[ -f ~/.config/emacs/bin/doom ]]; then
~/.config/emacs/bin/doom sync &
pids="$pids $!"
fi
if [ $XDG_SESSION_DESKTOP == "sway" ]; then
swaymsg reload
echo "Reloaded sway"
fi
# wait for all background jobs to finish
wait $pids && echo "Finished background jobs"