summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/.gitignore12
-rw-r--r--.config/BetterDiscord/themes/nordic.theme.css26
-rw-r--r--.config/alacritty/alacritty.toml24
-rw-r--r--.config/alacritty/colours.toml50
-rw-r--r--.config/alacritty/fonts.toml7
-rw-r--r--.config/chrome/add.svg1
-rw-r--r--.config/chrome/left-arrow.svg1
-rw-r--r--.config/chrome/right-arrow.svg1
-rw-r--r--.config/chrome/userChrome.css298
-rw-r--r--.config/chrome/userContent.css17
-rw-r--r--.config/fuzzel/fuzzel.ini20
-rw-r--r--.config/grub_nord/background.pngbin61222 -> 0 bytes
-rw-r--r--.config/grub_nord/boot_menu2_c.pngbin105 -> 0 bytes
-rw-r--r--.config/grub_nord/dejavu_14.pf2bin176923 -> 0 bytes
-rw-r--r--.config/grub_nord/droidlogo_regular_17.pf2bin19148 -> 0 bytes
-rw-r--r--.config/grub_nord/highlight_c.pngbin431 -> 0 bytes
-rw-r--r--.config/grub_nord/highlight_w.pngbin380 -> 0 bytes
-rw-r--r--.config/grub_nord/progress_highlight_c.pngbin560 -> 0 bytes
-rw-r--r--.config/grub_nord/theme.txt45
-rw-r--r--.config/gtk-3.0/settings.ini3
-rw-r--r--.config/issue10
-rw-r--r--.config/kernel.config4229
-rw-r--r--.config/keyd.conf2
-rw-r--r--.config/mako/config1
-rw-r--r--.config/mimeapps.list20
-rw-r--r--.config/nvim/init.lua10
-rw-r--r--.config/nvim/lazy-lock.json30
-rw-r--r--.config/nvim/lua/chadrc.lua23
-rw-r--r--.config/nvim/lua/configs/conform.lua10
-rw-r--r--.config/nvim/lua/configs/lspconfig.lua13
-rw-r--r--.config/nvim/lua/configs/vimtex.lua5
-rw-r--r--.config/nvim/lua/mappings.lua1
-rw-r--r--.config/nvim/lua/plugins/init.lua (renamed from .config/nvim/lua/plugins.lua)15
-rw-r--r--.config/pkgdev/pkgdev.conf4
-rwxr-xr-x.config/scripts/mute_mac_chime.sh12
-rwxr-xr-x.config/scripts/power_menu.sh25
-rw-r--r--.config/starship.toml24
-rw-r--r--.config/sway/config37
-rw-r--r--.config/user-dirs.dirs4
-rw-r--r--.config/warpd/config6
-rw-r--r--.config/waybar/config73
-rw-r--r--.config/waybar/config.jsonc75
-rwxr-xr-x.config/waybar/date.sh (renamed from .config/scripts/date.sh)0
-rw-r--r--.config/waybar/style.css61
-rw-r--r--.config/wofi/config5
-rw-r--r--.config/wofi/style.css29
-rw-r--r--.gdbinit2382
-rw-r--r--.gitconfig6
-rw-r--r--.gitignore33
-rw-r--r--.img/fetch.pngbin2071921 -> 0 bytes
-rw-r--r--.img/gotop.pngbin1271369 -> 0 bytes
-rw-r--r--.img/lockscreen.pngbin104099 -> 0 bytes
-rw-r--r--.img/nvim.pngbin1082386 -> 0 bytes
-rw-r--r--.img/wallpaper/fish.pngbin0 -> 736534 bytes
-rw-r--r--.img/wofi.pngbin1984349 -> 0 bytes
-rw-r--r--.img/zathura.pngbin1211824 -> 0 bytes
-rw-r--r--.pkglist.txt148
-rw-r--r--.pkglist_full.txt920
-rw-r--r--.zshrc24
-rw-r--r--readme.md14
60 files changed, 403 insertions, 8353 deletions
diff --git a/.config/.gitignore b/.config/.gitignore
deleted file mode 100644
index bc623d5e..00000000
--- a/.config/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-BetterDiscord*
-dconf
-discord
-jgit
-kicad
-obsidian
-mimeapps.list
-pulse
-qmk
-rclone
-yadm
-Yubico
diff --git a/.config/BetterDiscord/themes/nordic.theme.css b/.config/BetterDiscord/themes/nordic.theme.css
deleted file mode 100644
index 078b76e1..00000000
--- a/.config/BetterDiscord/themes/nordic.theme.css
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * @name Nordic
- * @author orblazer#9152
- * @authorId 179681974879911946
- * @version 4.10.8
- * @description Complete theme for Nordic (https://www.nordtheme.com/)
- * @source https://github.com/orblazer/discord-nordic
- * @donate https://www.paypal.me/orblazer
- */
-/**
- * SOURCE CODE
- * /!\ DON'T TOUCH ! /!\
- */
-:root{--nord-dark1-hsl:220deg calc(var(--saturation-factor, 1) * 16.36%) 21.57%;--nord-dark1:hsl(var(--nord-dark1-hsl) / 1);--nord-dark2-hsl:221.74deg calc(var(--saturation-factor, 1) * 16.31%) 27.65%;--nord-dark2:hsl(var(--nord-dark2-hsl) / 1);--nord-dark3-hsl:220deg calc(var(--saturation-factor, 1) * 16.77%) 31.57%;--nord-dark3:hsl(var(--nord-dark3-hsl) / 1);--nord-dark4-hsl:220deg calc(var(--saturation-factor, 1) * 16.48%) 35.69%;--nord-dark4:hsl(var(--nord-dark4-hsl) / 1);--nord-light1-hsl:218.82deg calc(var(--saturation-factor, 1) * 27.87%) 88.04%;--nord-light1:hsl(var(--nord-light1-hsl) / 1);--nord-light2-hsl:218.18deg calc(var(--saturation-factor, 1) * 26.83%) 91.96%;--nord-light2:hsl(var(--nord-light2-hsl) / 1);--nord-light3-hsl:217.5deg calc(var(--saturation-factor, 1) * 26.67%) 94.12%;--nord-light3:hsl(var(--nord-light3-hsl) / 1);--nord-green-blue-hsl:178.67deg calc(var(--saturation-factor, 1) * 25.14%) 64.9%;--nord-green-blue:hsl(var(--nord-green-blue-hsl) / 1);--nord-turquoise-hsl:193.33deg calc(var(--saturation-factor, 1) * 43.37%) 67.45%;--nord-turquoise:hsl(var(--nord-turquoise-hsl) / 1);--nord-cyan-hsl:210deg calc(var(--saturation-factor, 1) * 34.04%) 63.14%;--nord-cyan:hsl(var(--nord-cyan-hsl) / 1);--nord-blue-hsl:213.08deg calc(var(--saturation-factor, 1) * 31.97%) 52.16%;--nord-blue:hsl(var(--nord-blue-hsl) / 1);--nord-red-hsl:354.26deg calc(var(--saturation-factor, 1) * 42.34%) 56.47%;--nord-red:hsl(var(--nord-red-hsl) / 1);--nord-orange-hsl:14.38deg calc(var(--saturation-factor, 1) * 50.53%) 62.75%;--nord-orange:hsl(var(--nord-orange-hsl) / 1);--nord-yellow-hsl:40deg calc(var(--saturation-factor, 1) * 70.59%) 73.33%;--nord-yellow:hsl(var(--nord-yellow-hsl) / 1);--nord-green-hsl:92.4deg calc(var(--saturation-factor, 1) * 27.78%) 64.71%;--nord-green:hsl(var(--nord-green-hsl) / 1);--nord-pink-hsl:311.05deg calc(var(--saturation-factor, 1) * 20.21%) 63.14%;--nord-pink:hsl(var(--nord-pink-hsl) / 1);--primary-130-hsl:240deg calc(var(--saturation-factor, 1) * 20%) 99.02%;--primary-160-hsl:var(--primary-130-hsl);--primary-200-hsl:var(--nord-light1-hsl);--primary-230-hsl:var(--primary-200-hsl);--primary-260-hsl:222.86deg calc(var(--saturation-factor, 1) * 18.42%) 85.1%;--primary-300-hsl:221.05deg calc(var(--saturation-factor, 1) * 14.96%) 75.1%;--primary-330-hsl:219.31deg calc(var(--saturation-factor, 1) * 16.2%) 64.9%;--primary-360-hsl:var(--primary-330-hsl);--primary-400-hsl:218.92deg calc(var(--saturation-factor, 1) * 16.16%) 55.1%;--primary-430-hsl:218.92deg calc(var(--saturation-factor, 1) * 16.16%) 44.9%;--primary-460-hsl:var(--nord-dark4-hsl);--primary-500-hsl:var(--nord-dark3-hsl);--primary-530-hsl:var(--primary-500-hsl);--primary-560-hsl:221.54deg calc(var(--saturation-factor, 1) * 16.46%) 30.98%;--primary-600-hsl:var(--nord-dark2-hsl);--primary-630-hsl:var(--nord-dark1-hsl);--primary-660-hsl:221.25deg calc(var(--saturation-factor, 1) * 15.69%) 20%;--primary-700-hsl:220deg calc(var(--saturation-factor, 1) * 15.79%) 14.9%;--primary-800-hsl:220deg calc(var(--saturation-factor, 1) * 17.65%) 10%;--green-230-hsl:var(--green-500-hsl);--green-330-hsl:var(--green-500-hsl);--green-360-hsl:var(--green-500-hsl);--green-400-hsl:var(--green-500-hsl);--green-430-hsl:var(--green-500-hsl);--green-500-hsl:var(--nord-green-hsl);--green-560-hsl:var(--green-500-hsl);--green-600-hsl:var(--green-500-hsl);--green-660-hsl:var(--green-500-hsl);--green-730-hsl:92.61deg calc(var(--saturation-factor, 1) * 21.7%) 58.43%;--green-760-hsl:92.86deg calc(var(--saturation-factor, 1) * 17.07%) 51.76%;--red-360-hsl:var(--red-500-hsl);--red-345-hsl:var(--red-500-hsl);--red-400-hsl:var(--red-500-hsl);--red-430-hsl:var(--red-500-hsl);--red-500-hsl:var(--nord-red-hsl);--red-530-hsl:var(--red-500-hsl);--red-560-hsl:353.57deg calc(var(--saturation-factor, 1) * 33.6%) 50.98%;--red-600-hsl:var(--red-560-hsl);--red-630-hsl:354.93deg calc(var(--saturation-factor, 1) * 30.74%) 45.29%;--yellow-260-hsl:var(--yellow-400-hsl);--yellow-300-hsl:var(--yellow-400-hsl);--yellow-360-hsl:var(--yellow-400-hsl);--yellow-400-hsl:var(--nord-yellow-hsl);--yellow-430-hsl:var(--yellow-400-hsl);--yellow-500-hsl:var(--yellow-400-hsl);--yellow-560-hsl:var(--yellow-400-hsl);--yellow-630-hsl:var(--orange-500-hsl);--yellow-660-hsl:var(--orange-500-hsl);--orange-345-hsl:var(--orange-500-hsl);--orange-360-hsl:var(--orange-500-hsl);--orange-500-hsl:var(--nord-orange-hsl);--white-500-hsl:var(--nord-light2-hsl);--black-500-hsl:var(--primary-660-hsl);--blue-330-hsl:var(--nord-blue-hsl);--blue-345-hsl:213.12deg calc(var(--saturation-factor, 1) * 75.49%) 60%;--brand-100-hsl:180deg calc(var(--saturation-factor, 1) * 15.38%) 94.9%;--brand-200-hsl:180deg calc(var(--saturation-factor, 1) * 23.81%) 87.65%;--brand-260-hsl:var(--brand-200-hsl);--brand-360-hsl:var(--brand-500-hsl);--brand-400-hsl:178.13deg calc(var(--saturation-factor, 1) * 25%) 74.9%;--brand-430-hsl:var(--brand-400-hsl);--brand-500-hsl:var(--nord-green-blue-hsl);--brand-530-hsl:180deg calc(var(--saturation-factor, 1) * 19.82%) 57.45%;--brand-560-hsl:var(--brand-530-hsl);--brand-600-hsl:180deg calc(var(--saturation-factor, 1) * 14.4%) 50.98%;--brand-800-hsl:180deg calc(var(--saturation-factor, 1) * 13.97%) 35.1%;--premium-tier-2-pink-hsl:var(--nord-pink-hsl);--premium-tier-2-pink-for-gradients-hsl:var(--premium-tier-2-pink-hsl);--premium-tier-2-pink-for-gradients-2-hsl:var( --premium-tier-2-pink-for-gradients-hsl );--premium-tier-2-purple-hsl:var(--premium-tier-2-pink-hsl);--premium-tier-2-purple-for-gradients-hsl:var( --premium-tier-2-pink-for-gradients-hsl );--premium-tier-2-purple-for-gradients-2-hsl:var( --premium-tier-2-pink-for-gradients-hsl );--premium-tier-0-blue-hsl:var(--nord-blue-hsl);--premium-tier-0-blue-for-gradients:hsl(var(--premium-tier-0-blue-hsl));--premium-tier-0-purple-hsl:var(--premium-tier-2-pink-hsl);--premium-tier-0-purple-for-gradients-hsl:var(--premium-tier-2-pink-hsl);--premium-tier-0-header-gradient-1-hsl:var(--premium-tier-0-blue-hsl);--premium-tier-0-header-gradient-2-hsl:var(--premium-tier-0-blue-hsl);--premium-tier-0-header-gradient-3-hsl:var(--premium-tier-0-purple-hsl);--premium-tier-0-header-gradient-4-hsl:var(--premium-tier-0-purple-hsl);--premium-tier-0-header-gradient-5-hsl:var(--premium-tier-0-purple-hsl);--custom-premium-colors-premium-gradient-tier-0:linear-gradient( to right, var(--premium-tier-0-blue-for-gradients), var(--premium-tier-0-blue-for-gradients) );--guild-boosting-pink-hsl:var(--premium-tier-2-pink-hsl);--guild-boosting-purple-hsl:var(--premium-tier-2-pink-hsl);--guild-boosting-blue-hsl:var(--premium-tier-0-blue-hsl);--guild-boosting-blue-for-gradients-hsl:var(--premium-tier-0-blue-hsl);--guild-boosting-purple-for-gradients-hsl:var( --premium-tier-2-purple-for-gradients-hsl );--premium-perk-purple-hsl:var(--premium-tier-2-pink-hsl);--premium-perk-pink-hsl:var(--premium-tier-2-pink-hsl);--premium-perk-green-hsl:var(--green-560-hsl);--premium-perk-yellow-hsl:var(--nord-yellow-hsl);--premium-perk-dark-blue-hsl:var(--nord-blue-hsl);--premium-perk-light-blue-hsl:var(--nord-turquoise-hsl);--premium-perk-blue-hsl:var(--nord-cyan-hsl);--premium-perk-orange-hsl:var(--yellow-500-hsl);--premium-perk-gold-hsl:var(--yellow-500-hsl);--partner-hsl:var(--nord-blue-hsl);--twitch-hsl:var(--nord-pink-hsl);--application-subscription-start-hsl:var(--nord-blue-hsl);--application-subscription-end-hsl:var(--nord-cyan-hsl);--button-danger-background-hover:var(--red-560);--button-danger-background-active:var(--red-630);--button-outline-danger-background-active:var(--red-560);--input-placeholder-text-dark-hsl:var(--primary-dark-360-hsl);--home-background:var(--background-secondary-alt)}.theme-dark,.theme-light{--status-positive-text:var(--black-500);--search-popout-date-picker-hint-value-text:var(--black-500);--button-positive-background-hover:var(--green-730);--button-positive-background-active:var(--green-760)}.theme-dark{--header-secondary:var(--primary-300);--text-muted:var(--primary-300);--interactive-muted:var(--primary-430);--background-mentioned:hsl(var(--brand-500-hsl) / 0.18);--background-mentioned-hover:hsl(var(--brand-500-hsl) / 0.15);--mention-background:hsl(var(--brand-500-hsl) / 0.25);--search-popout-option-fade-hover:linear-gradient( 90deg, hsl(var(--primary-530-hsl) / 0), hsl(var(--primary-530-hsl) / 0.2) 50% );--background-modifier-selected:hsl(var(--primary-460-hsl) / 0.6);--channel-text-area-placeholder:var(--primary-400);--channeltextarea-background:var(--primary-500);--scrollbar-thin-thumb:var(--primary-500);--scrollbar-auto-thumb:var(--primary-500)}.theme-light{--header-secondary:var(--primary-600);--interactive-muted:var(--primary-360);--background-message-hover:hsl(var(--primary-260-hsl) / 0.3);--background-mentioned:hsl(var(--brand-500-hsl) / 0.5);--background-mentioned-hover:hsl(var(--brand-500-hsl) / 0.4);--mention-foreground:var(--black-500);--mention-background:hsl(var(--brand-600-hsl) / 0.4);--scrollbar-thin-thumb:var(--primary-260);--scrollbar-auto-thumb:var(--primary-260);--scrollbar-auto-track:var(--background-message-hover);--search-popout-option-fade-hover:linear-gradient( 90deg, hsl(var(--primary-260-hsl) / 0), var(--primary-260) 50% );--background-primary:var(--nord-light3);--background-secondary:var(--nord-light2);--background-secondary-alt:var(--primary-200);--background-tertiary:var(--primary-260)}:root{--user-status-online-hsl:var(--green-560-hsl);--user-status-online:hsl(var(--user-status-online-hsl) / 1);--user-status-idle-hsl:var(--orange-500-hsl);--user-status-idle:hsl(var(--user-status-idle-hsl) / 1);--user-status-dnd-hsl:var(--red-500-hsl);--user-status-dnd:hsl(var(--user-status-dnd-hsl) / 1);--user-status-invisible-hsl:var(--primary-430-hsl);--user-status-invisible:hsl(var(--user-status-invisible-hsl) / 1);--user-status-twitch-hsl:var(--nord-pink-hsl);--user-status-twitch:hsl(var(--user-status-twitch-hsl) / 1)}::selection{background-color:hsl(var(--blue-345-hsl)/.25)}.notice__99c03>.header__72166,.notice__99c03>.lookOutlined__46d54.colorWhite__43488{color:var(--black-500)}.notice__99c03>.lookOutlined__46d54.colorWhite__43488{border-color:currentColor}.slider__41d94 rect[fill=white]{fill:var(--white-500)}.container__871ba[style*="background-color: rgb(35, 165, 90)"]{background-color:var(--green-560)!important}.slider__41d94 path[fill^="rgba(35, 165, 90"]{fill:var(--green-760)}.container__871ba[style*="background-color: rgb(128, 132, 142)"]{background-color:var(--primary-500)!important}.slider__41d94 path[fill^="rgba(128, 132, 142"]{fill:var(--primary-500)}.activeIcon_e452f7 circle[fill="var(--white-500)"],.activeIcon_e452f7 path[fill="var(--white-500)"],.checkCircleCompleted_c66388 circle[fill="#fff"],.checkIcon__5aa1f path[fill="var(--white-500)"],.checked__24ad6[style*="background-color: rgb(35, 165, 90)"] path[fill="var(--white-500)"],.checked__24ad6[style*="background-color: var(--brand-experiment-500)"] path[fill="var(--white-500)"],.checked__24ad6[style*="background-color: var(--text-brand)"] path[fill="var(--white-500)"],.checklistIcon_ce59b4 circle[fill="var(--white-500)"],.checkmarkCircle__11b1b circle[fill="var(--white-500)"],.descriptionIcon__2e291 circle[cx="12"][fill="var(--white-500)"],.icon__3117c circle[fill="var(--white-100)"],.premiumLabel_f2cd55.selected_d25ad4 path[fill="url(#paint0_linear_6413_12612)"],.premiumLabel_f2cd55.selected_d25ad4 path[fill="url(#paint1_linear_6413_12612)"]{fill:var(--black-500)}.theme-dark .bar_e58961{background-color:var(--primary-460)}.theme-light .bar_e58961{background-color:var(--primary-160)}.categoryItem_b1be5c.selectedCategoryItem__0bf4c,.colorBrand_b2253e .defaultColor__77578,.colorDefault__0b482.focused__27621:not(.colorDanger_eec36d):not(.menuItemFocused__1490f),.colorDefault__0b482.focused__27621:not(.colorDanger_eec36d):not(.menuItemFocused__1490f) .caret_ce50ce,.colorDefault__0b482.focused__27621:not(.colorDanger_eec36d):not(.menuItemFocused__1490f) .checkbox__45366,.colorDefault__0b482.focused__27621:not(.colorDanger_eec36d):not(.menuItemFocused__1490f) .radioSelection__5ed39,.colorDefault__0b482.focused__27621:not(.colorDanger_eec36d):not(.menuItemFocused__1490f) .subtext__8a015,.focused__27621 .userMenuUsername_f6de35,.lookFilled__19298.colorBrandNew_fd170a,.lookFilled__19298.colorBrand_b2253e:not(.button__66e8c),.lookOutlined__46d54.colorBrand_b2253e:hover{color:var(--black-500)}.activeButton__7a550,.colorBrand_b2253e .button_c388c8[style*="color: rgb(255, 255, 255)"],.upsellTextContainer__62647>div[style*="color: white"]{color:var(--black-500)!important}.activeCircle_b77e4d,.allow_bbc621.selected__47401,.button__66e8c.buttonColor_a6eb73.buttonActive__407a7,.calendarPicker__5c474 .react-datepicker__day.react-datepicker__day--keyboard-selected,.calendarPicker__5c474 .react-datepicker__day.react-datepicker__day--selected:hover,.calendarPicker__5c474 .react-datepicker__day:hover,.checkmark__0b63d,.checkmark__4dfc9,.colorDefault__0b482 .check__8d1bd,.lookFilled__19298.colorGreen__5f181,.uploadDropModal__73a36 .inner__7afe9 .instructions__9e259,.uploadDropModal__73a36 .inner__7afe9 .title__73a49,.uploadDropModal__73a36 .inner__7afe9 .title__73a49 strong{color:var(--black-500)}.content__96073 a{color:var(--text-link)}.fixed__61d41{color:var(--status-danger)}.fixed__61d41::after{background-color:var(--status-danger)}.theme-dark .improved_df526b{color:var(--brand-500)}.theme-dark .improved_df526b::after{background-color:var(--brand-500)}.streamerModeEnabledBtn__51c2f:hover{background-color:#a3759b}.searchAnswer_b452e7,.searchFilter__118cb{background-color:var(--background-primary)!important;color:var(--text-normal)}.icon__25b13.two_df01fc{filter:drop-shadow(0 0 48px hsla(var(--brand-500-hsl)/.5))}.document_ed6edd{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/global/upload-document.svg)}.code_c12073{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/global/upload-code.svg)}.image__00ac0{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/global/upload-image.svg)}.webcode_d3a040{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/global/upload-webcode.svg)}.wrapper_a7e7a8{background-color:var(--background-secondary-alt)!important}.panels__58331{border-left:1px solid var(--background-secondary)}.expandedFolderBackground__1bec6,.folder__17546:not(.hover__043de){background-color:var(--background-primary)!important}.theme-dark .folder__17546.hover__043de,.theme-dark .wrapper_ed1dea .wrapper__3af0b .wrapper_d281dd:not(.selected_f5ec8e) .childWrapper__01b9c{background-color:var(--primary-500)}.theme-light .folder__17546.hover__043de,.theme-light .wrapper_ed1dea .wrapper__3af0b .wrapper_d281dd:not(.selected_f5ec8e) .childWrapper__01b9c{background-color:var(--primary-160)}.childWrapper__01b9c rect[fill="#6370f4"]{fill:var(--brand-500)}.wrapper_d281dd.selected_f5ec8e .childWrapper__01b9c g[fill="var(--white-500)"]{fill:var(--white-100)}.circleIconButton_d8df29.selected__5250e,.iconBadge_fdf33a.isCurrentUserConnected_d9734f,.wrapper_d281dd.selected_f5ec8e .childWrapper__01b9c,.wrapper_d281dd:hover .childWrapper__01b9c{color:var(--black-500)}.iconContainer_cd2671 circle[fill="#5865f2"i]{fill:var(--brand-500)}.iconContainer_cd2671 circle[fill="#5865f2"i]+path[fill=white]{fill:var(--black-500)}.hljs-ansi-background-cyan,.hljs-ansi-background-green,.hljs-ansi-background-magenta,.hljs-ansi-background-white,.hljs-ansi-background-yellow,.hljs-ansi-foreground-black .hljs-ansi-background-black,.hljs-ansi-foreground-black .hljs-ansi-background-blue,.hljs-ansi-foreground-black .hljs-ansi-background-cyan,.hljs-ansi-foreground-black .hljs-ansi-background-green,.hljs-ansi-foreground-black .hljs-ansi-background-magenta,.hljs-ansi-foreground-black .hljs-ansi-background-red,.hljs-ansi-foreground-black .hljs-ansi-background-white,.hljs-ansi-foreground-black .hljs-ansi-background-yellow{color:var(--primary-800)}.hljs-ansi-foreground-black{color:var(--primary-430)}.hljs-ansi-foreground-red{color:var(--nord-red)}.hljs-ansi-foreground-green{color:var(--nord-green)}.hljs-ansi-foreground-yellow{color:var(--nord-yellow)}.hljs-ansi-foreground-blue{color:var(--nord-blue)}.hljs-ansi-foreground-magenta{color:var(--nord-pink)}.hljs-ansi-foreground-cyan{color:var(--nord-cyan)}.hljs-ansi-background-blue,.hljs-ansi-background-red,.hljs-ansi-foreground-white .hljs-ansi-background-black,.hljs-ansi-foreground-white .hljs-ansi-background-blue,.hljs-ansi-foreground-white .hljs-ansi-background-cyan,.hljs-ansi-foreground-white .hljs-ansi-background-green,.hljs-ansi-foreground-white .hljs-ansi-background-magenta,.hljs-ansi-foreground-white .hljs-ansi-background-red,.hljs-ansi-foreground-white .hljs-ansi-background-white,.hljs-ansi-foreground-white .hljs-ansi-background-yellow{color:var(--primary-160)}.hljs-ansi-background-black{background-color:var(--primary-700)}.hljs-ansi-background-red{background-color:var(--nord-orange)}.hljs-ansi-background-green{background-color:var(--nord-green)}.hljs-ansi-background-yellow{background-color:var(--nord-yellow)}.hljs-ansi-background-blue{background-color:var(--nord-blue)}.hljs-ansi-background-magenta{background-color:var(--nord-pink)}.hljs-ansi-background-cyan{background-color:var(--nord-cyan)}.hljs-ansi-background-white{background-color:var(--nord-light3)}.hljs-attribute,.hljs-params,.hljs-subst,.hljs-template-variable,.hljs-variable{color:var(--header-secondary)!important}.hljs-comment,.hljs-quote{color:var(--primary-430)!important}.theme-light .hljs-emphasis{color:var(--primary-600)}.theme-dark .hljs-emphasis{color:var(--primary-400)}.hljs-link{color:inherit}.hljs-builtin-name,.hljs-bullet,.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-operator,.hljs-selector-tag,.hljs-symbol,.hljs-tag{color:var(--nord-cyan)!important}.hljs-selector-id{font-weight:700}.hljs-attr,.hljs-built_in,.hljs-class,.hljs-code,.hljs-formula,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-title,.hljs-type{color:var(--nord-green-blue)!important}.hljs-function,.hljs-function>.hljs-title,.hljs-section,.hljs-selector-pseudo{color:var(--nord-turquoise)!important}.hljs-number{color:var(--nord-pink)!important}.hljs-regexp{color:var(--nord-yellow)!important}.hljs-meta-string,.hljs-string{color:var(--nord-green)!important}.hljs-link{text-decoration:underline}.hljs-meta-keyword,.hljs-template-tag{color:var(--nord-blue)!important}.hljs-meta{color:var(--nord-orange)!important}.hljs-addition,.hljs-deletion{color:var(--white-100)!important;background-color:hsl(var(--red-500-hsl)/.45)!important}.hljs-addition{background-color:hsl(var(--green-500-hsl)/.45)!important}.hljs-title~.hljs-title{font-weight:700}.abnf .hljs-attribute,.apache .hljs-attribute,.arduino .hljs-built_in,.aspectj>.hljs-title,.clojure .hljs-name,.coq .hljs-built_in,.css .hljs-built_in,.glsl .hljs-built_in,.julia .hljs-meta,.lisp .hljs-name,.lua .hljs-built_in,.moonscript .hljs-built_in,.nginx .hljs-attribute,.pf .hljs-built_in,.processing .hljs-built_in,.rb .hljs-subst,.ruby .hljs-subst,.swift .hljs-subst,.vim .hljs-built_in{color:var(--nord-turquoise)!important}.abnf .hljs-symbol,.clojure .hljs-symbol,.css .hljs-attribute,.less .hljs-attribute,.scss .hljs-attribute{color:var(--nord-yellow)!important}.apache .hljs-section,.bash .hljs-variable,.ini .hljs-variable,.makefile .hljs-variable,.powershell .hljs-operator,.powershell .hljs-type,.ps1 .hljs-operator,.ps1 .hljs-type,.rb .hljs-variable,.ruby .hljs-variable{color:var(--nord-cyan)!important}.aspectj .hljs-meta,.css .hljs-keyword,.groovy .hljs-meta:not(:first-child),.haxe .hljs-meta,.java .hljs-meta,.swift .hljs-meta,.yaml .hljs-meta{color:var(--nord-orange)!important}.bnf .hljs-attribute,.cpp .hljs-meta-string,.diff .hljs-meta,.ebnf .hljs-attribute,.ldif .hljs-attribute{color:var(--nord-green-blue)!important}.nginx .hljs-section{color:var(--nord-blue)!important}.vim .hljs-built_in{font-style:italic}.handlebars .hljs-template-tag{color:var(--header-secondary)!important}.markdown .hljs-string,.md .hljs-string{color:var(--nord-turquoise)!important}.ini .hljs-attr{color:var(--nord-cyan)!important}.icon__28d6c[src="/assets/42b086ee3d9863ea45bc.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/friends/discover.svg)}.pill__54751{color:var(--black-500)}.shop_b31ed2{background-color:var(--background-primary)}.profileBadge__1d2d3[src*="6bdc42827a38498929a4920da12695d9.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-active-developer.svg)}.profileBadge__1d2d3[src*="6f9e37f9029ff57aef81db857890005e.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-commands.svg)}.profileBadge__1d2d3[src="/assets/fee1624003e2fee35cb398e125dc479b.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-certified-moderator.svg)}.profileBadge__1d2d3[src*="bf01d1073931f921909045f3a39fd264.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-hypesquad.svg)}.profileBadge__1d2d3[src="/assets/8a88d63823d8a71cd5e390baa45efa02.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-hypesquad-house-1.svg)}.profileBadge__1d2d3[src="/assets/011940fd013da3f7fb926e4a1cd2e618.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-hypesquad-house-2.svg)}.profileBadge__1d2d3[src*="3aa41de486fa12454c3761e8e223442e.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-hypesquad-house-3.svg)}.profileBadge__1d2d3[src*="3f9748e53446a137a052f3454e2de41e.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-partner.svg)}.profileBadge__1d2d3[src="/assets/5e74e9b61934fc1f67c65515d1f7e60d.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-staff.svg)}.profileBadge__1d2d3[src="/assets/6df5892e0f35b051f8b61eace34f4967.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-verified-developer.svg)}.profileBadge__1d2d3[src="/assets/6de6d34650760ba5551a79732e98ed60.png"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/profile/badge-originaly-know-as.png)}.botTagRegular_c89c9a:not(.botTagOP_e48ddb){color:var(--black-500)}.mask__1979f rect[fill="#23a55a"],.status__1c26d[style="background-color: var(--green-360);"]{fill:var(--user-status-online)}.mask__1979f rect[fill="#f0b232"],.status__1c26d[style="background-color: var(--yellow-300);"]{fill:var(--user-status-idle)}.mask__1979f rect[fill="#f23f43"],.status__1c26d[style="background-color: var(--red-400);"]{fill:var(--user-status-dnd)}.mask__1979f rect[fill="#593695"]{fill:var(--user-status-twitch)}.mask__1979f rect[fill="#80848e"],.status__1c26d[style="background-color: var(--primary-400);"]{fill:var(--user-status-invisible)}.icon__8c32c[style*='background-image: url("/assets/a1d461025204711133ec.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/dm-channel/call-incoming.svg)!important}.icon__8c32c[style*='background-image: url("/assets/9f3b9c1b6e5f77294951.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/dm-channel/call-missed.svg)!important}.betaTagIcon__9c02c[style*="background-color: var(--brand-500)"],.premiumLabel_f2cd55.selected_d25ad4{color:var(--black-500)}.lockIcon_cf3a4d[src="/assets/2035204bfda605f5ac43.svg"],.secured__615be:before{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/settings/general/lock.svg)}.uploadIcon__68f2c{color:var(--primary-460-hsl)}.flowerStarContainer_d8d14b .childContainer__4e664 path[fill="var(--white-400)"],.selectedIcon__4b0ba circle[fill=white]{fill:var(--black-500)}.permissionCheckmark__27f79{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/settings/general/checkmark.svg)}.settingsTextContainer__65ea6>[style*="color: white"]{color:var(--header-primary)!important}.lookInverted_ee4261.colorBrand_b2253e,.upsellButton__56757{color:var(--brand-800)}.premiumCards__1b3a9 .pricePerInterval_c8c787[style*="color: white"],.premiumCards__1b3a9 .text-md-normal__4afad[style*="color: white"],.premiumCards__1b3a9 .text-md-normal__6a4eb[style*="color: white"],.tier2__1364f .heading-md-medium_bfad58[style*="color: white"],.tier2__1364f .heading-md-medium_dd6c29[style*="color: white"],.tier2__1364f .text-md-normal__4afad[style*="color: white"],.tier2__1364f .text-md-normal__6a4eb[style*="color: white"]{color:currentColor!important}.mostPopularText_a30e14,.tier2__1364f{color:var(--primary-660)}.planOptionDiscount__956f7[style*="color: white"]{color:var(--black-500)!important}.gameIcon__90c32.noItemsIcon_b1e42b,.noItemsIcon__38ca2{background:var(--primary-460-hsl)!important}.theme-dark .container__0c807{border-color:var(--primary-630)}.nowPlaying__353c3 .gameName_aeeab5,.nowPlaying__353c3 .lastPlayed_accc56{color:var(--black-500)!important}.default__3e2f5{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/settings/activity/cross.svg)}.newChannel_f99b92{color:var(--brand-900)}.container_b2ce9c .membersWrap__90226{flex-grow:1}.eventStatusContainer__92035 path[fill="#949cf7"]{fill:var(--brand-360)}.container__467eb[style*="background-color: rgb(17, 18, 20)"]{background-color:var(--background-floating)!important}.upsellTooltipWrapper_df8272 .content__904b3,.upsellTooltipWrapper_df8272 .upsellTooltipHeader_d74752{color:var(--black-500)!important}.newlyAddedHighlight_b1b06a{border-color:var(--green-500)}.newlyAddedBadge__97630{background-color:var(--green-500)}.newlyAddedBadgeIcon__0fee2,.newlyAddedBadgeStar_ac4dcc,.newlyAddedBadge__8109c .text-sm-semibold_a5824d[style*="color: white"],.newlyAddedBadge__97630 .text-xs-semibold__2181c[style*="color: white"]{color:var(--black-500)!important}.newlyAddedBadge__8109c{background:linear-gradient(268.26deg,var(--blue-330) 0%,var(--green-500) 102.45%)}.header__4f442{background:center 15%/90%auto url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/boost/sparks.svg)no-repeat,linear-gradient(359.37deg,rgba(0,0,0,.5) 12.68%,hsla(0deg,0%,100%,0) 50.4%),linear-gradient(159.15deg,var(--premium-tier-0-header-gradient-1) 8.49%,var(--premium-tier-0-header-gradient-2) 32.21%,var(--premium-tier-0-header-gradient-3) 62.9%,var(--premium-tier-0-header-gradient-4) 86.06%,var(--premium-tier-0-header-gradient-5) 91.4%)}.header__4f442 .guildName__4f47a,.header__4f442 .heading__03f06{color:var(--white-500)!important}.guildBoostCountWrapper__701cb{color:var(--white-100)}.guildBoostCtaBoostContent__06ba2{color:var(--brand-800)}.warnIcon_e73325{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/user/settings/payment/warn.svg)}.tierCardCurrentTier_df8c32{background:var(--guild-boosting-purple);color:var(--black-500)!important}.tierCardNewFeatureBadge__8a39a{background:var(--white-500);color:var(--black-500)}.tierCardBoostRequirement__2ae47{color:var(--primary-800)!important}.tierCardHeading_aa6988,.tierCardListItem_c78d02{color:var(--primary-700)!important}.tierCardListIcon_c601ae circle[fill=white],.tierCardListIcon_c601ae rect[fill=white]{fill:currentColor}.recommendedTierHighlightTag__82cc1{color:var(--black-500)!important;background:var(--guild-boosting-purple)}.premiumIcon__6b5cd[src="/assets/675e342482b30a050363.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/app-directory/dollar.svg)}.button_c1569f{color:var(--primary-700)!important}.scopeCheck_c4c2dd .icon__33514{color:var(--black-500)}.headerSuccess__8d8a4{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/app-directory/success.svg)}.checked__24ad6[style*="background-color: rgba(35, 165, 90, 0.15)"]{border-color:hsl(var(--green-360-hsl)/.15)!important;background-color:hsl(var(--green-360-hsl)/.15)!important}.checked__24ad6 path[fill="#23a55a"]{fill:var(--green-360)}.checked__24ad6[style*="background-color: rgb(35, 165, 90)"]{border-color:var(--green-360)!important;background-color:var(--green-360)!important}.serverBoostTabItem_b19426[aria-selected=true]{color:var(--black-500)!important}.serverBoostTabItem_b19426[aria-selected=true] .icon__11372{fill:var(--black-500)!important}.icon__11372[fill="#ff73fa"i]{fill:var(--guild-boosting-pink)}.upsellDescription_f4c5b8,.upsellHeader_a81048{color:var(--white-100)}.currentTierIcon_bca4bf{color:var(--black-500)!important}.textBadge__45d79[style*="background-color: var(--brand-500)"],.textBadge__9e179[style*="background-color: var(--brand-500)"]{color:var(--black-500)}.automodText_b20021{color:currentColor}.typeCreate__18a1f:after{background:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/moderation/type-create.svg)}.typeUpdate__7c320:after{background:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/moderation/type-update.svg)}.typeDelete__1e939:after{background:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/moderation/type-delete.svg)}.overviewSidebar__80841{background:linear-gradient(180deg,var(--brand-500) 6.65%,var(--brand-600) 69.44%,var(--brand-800) 106.24%)}.header_be1547,.selected_de8f03 .stepTitle__026a8,.stepIndex__1d9d1,.stepTitle__026a8{color:var(--black-500)}.selected_de8f03 .stepIndex__1d9d1{color:var(--brand-900)}.content__98380img[src="/assets/e30b03b1854a7d11fb6d.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/community/shield.svg)}.content__98380 img[src="/assets/58bf98682d30fb823326.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/community/wrench.svg)}.content__98380 img[src="/assets/b6193b9564ca0ecbbd1ed6b80f47646d.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/community/check.svg)}.colorPrimary__6ed40 .button_c388c8[style*="color: rgb(255, 255, 255)"]{color:var(--white-500)!important}.sparkles__67f09[src="/assets/d763245961e240231735.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/settings/community/discovery-stars.svg)}.earningsPreviewContainer__775cb[style*="background-color: rgb(46, 54, 56)"]{background-color:hsl(var(--green-760-hsl)/.1)!important}.subscriberCountValue__9f1fb{background-color:var(--brand-800)}.subscriberCountValue__9f1fb>div{color:var(--white-100)!important}.subscriberCountText__986fb path[fill="var(--white)"]{fill:var(--black-500)}.subscriberCountText__986fb>div{color:var(--black-500)!important}.background_cb0a80{background-color:var(--background-secondary-alt)}.theme-dark .headerBarInner__4f0f6:after{background:linear-gradient(180deg,rgba(var(--primary-660-rgb),0)0,var(--background-secondary-alt))}.theme-light .headerBarInner__4f0f6:after{background:linear-gradient(180deg,rgba(var(--primary-160-rgb),0)0,var(--background-secondary-alt))}.container__10dc7,.container__7590f,.emptyPage__3e15d,.header__60bef,.scrollerContainer_bf5dbd{background-color:var(--background-secondary-alt)!important}.innerHeader_afca2f:after{background:linear-gradient(180deg,rgba(var(--background-primary-rgb),0)0,var(--background-primary)) linear-gradient(180deg,rgba(var(--background-primary-rgb),0)0,var(--background-primary))!important}.newBadge_b013d6,.titleBadge__6322b{color:var(--brand-900)}.channelRow__96673:hover:not(.disabled__583e7){background-color:var(--background-modifier-hover)}.emptyIcon__3ebb5 path[fill="#58F287"]{fill:var(--green-500)}.emptyIcon__3ebb5 path[fill="#FFD01A"]{fill:var(--yellow-500)}.interactive:hover,.newMessagesBar__8b6d7 .barButtonBase__8fa46{color:var(--black-500)}.icon__02e89[style*='background-image: url("/assets/c5eb15a73957da1bb6e9.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/text/invite.svg)!important}.icon__02e89[style*='background-image: url("/assets/00bc91145392d3941bf7.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/text/customize.svg)!important}.icon__02e89[style*='background-image: url("/assets/0160dd25b3ba785c6008.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/text/chat.svg)!important}.icon__8c32c[style*='background-image: url("/assets/7378a83d74ce97d83380.svg")']{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/text/join.svg)!important}.mentioned__58017:before{background-color:var(--brand-500)}.theme-light .embedFull__8dc21,.theme-light .reaction_fef95b{background-color:var(--primary-160)}.theme-dark .header__4ef99{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/announcement/follow-bg.svg)}.theme-light .header__4ef99{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/announcement/follow-bg-light.svg)}.botTagOP_e48ddb,.newBadge_a2adb2[style*="background-color: var(--brand-260)"],.newBadge_f7859b[style*="background-color: var(--brand-260)"]{color:var(--brand-900)}.theme-dark .separator__3ec56{background-color:var(--primary-500)}.countText__6ebee,.countText__8c2eb,.discordIcon_aa2c2b,.stepStatus_f620c2[style*="background-color: var(--status-positive-background)"]{color:var(--black-500)}.stars_c83456 path[fill="#ADF3FF"]{fill:var(--nord-cyan)}.stars_c83456 path[fill="#FFD01A"]{fill:var(--nord-yellow)}.inline__99a93 img[src="/assets/e7c5287d6706ac82b14b.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/forum/guide.svg)}.theme-dark .matchingPostsRow__510be{background-color:var(--background-modifier-hover)}.container__0e8b9 rect[fill="var(--white-500)"]+path,.pinIcon__2e5b2 path[fill=white],.pinIcon__39b6e path[fill=white]{fill:var(--black-500)}.theme-dark .contentPreview_b317ee,.theme-dark .optionButtonWrapper__4072c:not(:hover):not(.selected__90dd8){background-color:var(--primary-500)}.container__15ddf:hover{background-color:var(--background-modifier-hover)}.reaction__70f84,.reaction_b90ab0{background-color:var(--background-primary)}.gradientContainer__9a5a6{--color-rgb:var(--primary-700-hsl);background-image:linear-gradient(hsl(var(--color-rgb)),hsl(var(--color-rgb)/.738) 19%,hsl(var(--color-rgb)/.541) 34%,hsl(var(--color-rgb)/.382) 47%,hsl(var(--color-rgb)/.278) 56.5%,hsl(var(--color-rgb)/.194) 65%,hsl(var(--color-rgb)/.126) 73%,hsl(var(--color-rgb)/.075) 80.2%,hsl(var(--color-rgb)/.042) 86.1%,hsl(var(--color-rgb)/.021) 91%,hsl(var(--color-rgb)/.008) 95.2%,hsl(var(--color-rgb)/.002) 98.2%,transparent)}.iconColor__6cd6f,.icon__4443b[style*="background-color: var(--brand-500)"],.icon__4443b[style*="background-color: var(--green-360)"],.selectorTextSelected_d7d560,.textLink__973c8,.upsellText_fe6864{color:var(--black-500)}.sparkleIcon__50612[src="/assets/f92a8b5812e2da52a179.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/stage/star.svg)}.sparkleIcon__50612[src="/assets/51063f34b3960c1d5da8.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/server/channel/stage/cross.svg)}.pageWrapper_fef757{background-color:var(--background-primary)!important}.card__86773,.iconMask__1aff7{background-color:var(--background-secondary)!important}.card__86773:hover,.iconMask__1aff7:hover{background-color:var(--background-modifier-hover)!important}.footerImage_b0b86b[src="/assets/f5fcce7c509fcb9e2e7f.svg"]{content:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/discover/discover.svg)}.icon__388ab{background-image:url(https://raw.githubusercontent.com/orblazer/discord-nordic/v4.10.8/assets/discover/hub.svg)}.addButton__7e2ae{color:var(--black-500)}
-.bd-settings-title{color:var(--header-primary)}.bd-switch input:checked+.bd-switch-body{--switch-color:var(--green-560)}.bd-switch-body{--switch-color:var(--primary-500)}.bd-switch-body .bd-switch-handle{fill:var(--white-500)}.bd-switch input:checked+.bd-switch-body .bd-switch-symbol path{fill:var(--green-760)}.bd-filled-checkmark{background:var(--green-560)}.bd-filled-checkmark svg{fill:var(--black-500)}.bd-empty-updates svg{fill:var(--green-560)}.bd-addon-modal-footer .bd-button,.bd-button{background-color:var(--brand-experiment);color:var(--black-500)}.bd-addon-modal-footer .bd-button:hover,.bd-button:hover{background-color:var(--brand-experiment-560)}.bd-addon-modal-footer .bd-button:active,.bd-button:active{background-color:var(--brand-experiment-600)}.bd-button.bd-button-danger{background-color:var(--button-danger-background)}.bd-button.bd-button-danger:hover{background-color:var(--button-danger-background-hover)}.bd-button.bd-button-danger:active{background-color:var(--button-danger-background-active)}.bd-controls>.bd-addon-button:not(.bd-button-danger) svg{fill:var(--black-500)}.bd-controls>.bd-addon-button.bd-button-danger svg{fill:var(--white-500)}.bd-addon-views .bd-view-button.selected{background-color:var(--brand-experiment)}.bd-addon-views .bd-view-button.selected svg,.checked__24ad6[style*="background-color: var(--brand-500)"] path[fill="hsl(0, calc(var(--saturation-factor, 1) * 0%), 100%)"]{fill:var(--black-500)}.banner.banner-danger{background-color:var(--info-danger-background);border-color:var(--info-danger-foreground)}.banner-danger .bd-icon{fill:var(--info-danger-foreground)}.react-error{color:var(--text-danger)}.container__871ba[style*="background-color: hsl(223, calc(var(--saturation-factor, 1) * 5.8%), 52.9%)"]{background-color:var(--primary-500)!important}.container__871ba[style*="background-color: hsl(235, calc(var(--saturation-factor, 1) * 85.6%), 64.7%)"]{background-color:var(--green-560)!important}.slider__41d94 path[fill="hsl(235, calc(var(--saturation-factor, 1) * 85.6%), 64.7%)"]{fill:var(--green-760)}.ownerIcon__827bd.icon__131d1.owner_FfFh3B{color:var(--text-muted)}.ownerIcon__827bd.icon__131d1.management_3fF_o8{color:var(--orange-500)}
-
-/**
- * CUSTOMIZATION
- * Add '!important' non hsl discord colors, like 'primary-dark-200'
- */
-:root {
-}
-.theme-dark {
-}
-.theme-light {
-} \ No newline at end of file
diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
new file mode 100644
index 00000000..64077932
--- /dev/null
+++ b/.config/alacritty/alacritty.toml
@@ -0,0 +1,24 @@
+[general]
+import = [
+ "colours.toml",
+ "fonts.toml"
+]
+
+[terminal.shell]
+program = "/usr/bin/zsh"
+
+[selection]
+save_to_clipboard = true
+
+[window]
+decorations = "none"
+dynamic_padding = true
+
+[window.padding]
+x = 8
+y = 8
+
+[keyboard]
+bindings = [
+ { key = "T", mods = "Control", action = "CreateNewWindow" },
+]
diff --git a/.config/alacritty/colours.toml b/.config/alacritty/colours.toml
new file mode 100644
index 00000000..57194527
--- /dev/null
+++ b/.config/alacritty/colours.toml
@@ -0,0 +1,50 @@
+[colors.normal]
+black = "#3b4252"
+blue = "#81a1c1"
+cyan = "#88c0d0"
+green = "#a3be8c"
+magenta = "#b48ead"
+red = "#bf616a"
+white = "#e5e9f0"
+yellow = "#ebcb8b"
+
+[colors.bright]
+black = "#4c566a"
+blue = "#81a1c1"
+cyan = "#8fbcbb"
+green = "#a3be8c"
+magenta = "#b48ead"
+red = "#bf616a"
+white = "#eceff4"
+yellow = "#ebcb8b"
+
+[colors.dim]
+black = "#373e4d"
+blue = "#68809a"
+cyan = "#6d96a5"
+green = "#809575"
+magenta = "#8c738c"
+red = "#94545d"
+white = "#aeb3bb"
+yellow = "#b29e75"
+
+[colors.cursor]
+cursor = "#d8dee9"
+text = "#2e3440"
+
+[colors.primary]
+background = "#2a303c"
+dim_foreground = "#a5abb6"
+foreground = "#d8dee9"
+
+[colors.search.matches]
+background = "#88c0d0"
+foreground = "CellBackground"
+
+[colors.selection]
+background = "#4c566a"
+text = "CellForeground"
+
+[colors.vi_mode_cursor]
+cursor = "#d8dee9"
+text = "#2e3440"
diff --git a/.config/alacritty/fonts.toml b/.config/alacritty/fonts.toml
new file mode 100644
index 00000000..65e75d26
--- /dev/null
+++ b/.config/alacritty/fonts.toml
@@ -0,0 +1,7 @@
+[font]
+size = 11
+
+normal = { family = "JetBrainsMono NF", style = "SemiBold" }
+bold = { family = "JetBrainsMono NF", style = "Bold" }
+italic = { family = "JetBrainsMono NF", style = "Italic" }
+bold_italic = { family = "JetBrainsMono NF", style = "Bold Italic" }
diff --git a/.config/chrome/add.svg b/.config/chrome/add.svg
deleted file mode 100644
index cb34a193..00000000
--- a/.config/chrome/add.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_99lNy5iVNzBT4GJ61eRvLV4FbIJfEq2X"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_99lNy5iVNzBT4GJ61eRvLV4FbIJfEq2X)"><clipPath id="_clipPath_PSmJUw238rlrF3iVjoZbuIy7ApS18eFZ"><rect x="0" y="0" width="16" height="16" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/></clipPath><g clip-path="url(#_clipPath_PSmJUw238rlrF3iVjoZbuIy7ApS18eFZ)"><g><defs><filter id="hr6gh2N39iEKGHUEUXPQ1VpI5CnFB6KP" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="0.65"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#hr6gh2N39iEKGHUEUXPQ1VpI5CnFB6KP)"><mask id="_mask_kcpkNUVqAh3jvumwkzpWdE5WZ1TZaYfV" x="-200%" y="-200%" width="400%" height="400%"><rect x="-200%" y="-200%" width="400%" height="400%" style="fill:white;"/><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="black" stroke="none"/></mask><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="rgb(0,0,0)" mask="url(#_mask_kcpkNUVqAh3jvumwkzpWdE5WZ1TZaYfV)" vector-effect="non-scaling-stroke" stroke-width="3" stroke="rgb(255,255,255)" stroke-opacity="100" stroke-linejoin="miter" stroke-linecap="round" stroke-miterlimit="3"/><path d=" M 12.487 8 L 3.513 8 M 8 3.513 L 8 12.487" fill-rule="evenodd" fill="rgb(0,0,0)"/></g></g></g></g></svg> \ No newline at end of file
diff --git a/.config/chrome/left-arrow.svg b/.config/chrome/left-arrow.svg
deleted file mode 100644
index 09199f05..00000000
--- a/.config/chrome/left-arrow.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_z1ZWMbJsyhiOU2QHbFJoUMhQtGZ43GMW"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_z1ZWMbJsyhiOU2QHbFJoUMhQtGZ43GMW)"><defs><filter id="VFDVuOTf5K98KT4GTZIfo6t2oUeOZ3OQ" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="1"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs><g filter="url(#VFDVuOTf5K98KT4GTZIfo6t2oUeOZ3OQ)"><path d=" M 6.459 8.003 L 12.444 2.018 C 12.609 1.853 12.7 1.633 12.7 1.399 C 12.7 1.164 12.609 0.945 12.444 0.78 L 11.92 0.256 C 11.755 0.091 11.535 0 11.301 0 C 11.067 0 10.847 0.091 10.682 0.256 L 3.555 7.382 C 3.39 7.548 3.3 7.768 3.3 8.003 C 3.3 8.239 3.39 8.459 3.555 8.625 L 10.676 15.744 C 10.84 15.909 11.06 16 11.294 16 C 11.529 16 11.749 15.909 11.913 15.744 L 12.438 15.22 C 12.779 14.879 12.779 14.323 12.438 13.982 L 6.459 8.003 L 6.459 8.003 Z " fill="rgb(255,255,255)"/></g></g></svg> \ No newline at end of file
diff --git a/.config/chrome/right-arrow.svg b/.config/chrome/right-arrow.svg
deleted file mode 100644
index b068928d..00000000
--- a/.config/chrome/right-arrow.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Generator: Gravit.io --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 16 16" width="16pt" height="16pt"><defs><clipPath id="_clipPath_eVFSl4zvN5oTHPzyWFXDKL3KvwnaLKzR"><rect width="16" height="16"/></clipPath></defs><g clip-path="url(#_clipPath_eVFSl4zvN5oTHPzyWFXDKL3KvwnaLKzR)"><clipPath id="_clipPath_whDLWxO2Es9F8hEuhZ0p3GS4myfSGk47"><rect x="0" y="0" width="16" height="16" transform="matrix(1,0,0,1,0,0)" fill="rgb(255,255,255)"/></clipPath><g clip-path="url(#_clipPath_whDLWxO2Es9F8hEuhZ0p3GS4myfSGk47)"><g><g filter="url(#ypa27OiaF8P4AvdUhn4W059B0fCNWPt7)"><path d=" M 9.541 8.003 L 3.556 2.018 C 3.391 1.853 3.3 1.633 3.3 1.399 C 3.3 1.164 3.391 0.945 3.556 0.78 L 4.08 0.256 C 4.245 0.091 4.465 0 4.699 0 C 4.933 0 5.153 0.091 5.318 0.256 L 12.445 7.382 C 12.61 7.548 12.7 7.768 12.7 8.003 C 12.7 8.239 12.61 8.459 12.445 8.625 L 5.324 15.744 C 5.16 15.909 4.94 16 4.706 16 C 4.471 16 4.251 15.909 4.087 15.744 L 3.562 15.22 C 3.221 14.879 3.221 14.323 3.562 13.982 L 9.541 8.003 L 9.541 8.003 Z " fill="rgb(255,255,255)"/></g><defs><filter id="ypa27OiaF8P4AvdUhn4W059B0fCNWPt7" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB"><feGaussianBlur xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" stdDeviation="1.42936090628390283"/><feOffset xmlns="http://www.w3.org/2000/svg" dx="0" dy="0" result="pf_100_offsetBlur"/><feFlood xmlns="http://www.w3.org/2000/svg" flood-color="#000000" flood-opacity="1"/><feComposite xmlns="http://www.w3.org/2000/svg" in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow"/><feBlend xmlns="http://www.w3.org/2000/svg" in="SourceGraphic" in2="pf_100_dropShadow" mode="normal"/></filter></defs></g></g></g></svg> \ No newline at end of file
diff --git a/.config/chrome/userChrome.css b/.config/chrome/userChrome.css
deleted file mode 100644
index 005518c3..00000000
--- a/.config/chrome/userChrome.css
+++ /dev/null
@@ -1,298 +0,0 @@
-@import url("../colours.css");
-
-:root {
- --bg: @base00;
- --icon-color: @base05;
- --nav-toolbar-padding: 8px;
- --sidebar-bg: var(--bg);
- --sidebar-color: @base05;
- --tab-border-radius: 0px;
- --tab-color: @base03;
- --tab-font-family: "JetBrainsMono Nerd Font";
- --tab-font-size: 11pt;
- --tab-font-weight: 400;
- --tab-height: 32px;
- --tab-pinned-bg: @base01;
- --tab-selected-bg: @base08;
- --tab-soundplaying-bg: @base01;
- --urlbar-color: @base0A;
- --urlbar-focused-color: @base05;
- --urlbar-font-family: "JetBrainsMono Nerd Font";
- --urlbar-font-size: 12pt;
- --urlbar-font-weight: 700;
- --urlbar-results-color: @base05;
- --urlbar-results-font-family: "JetBrainsMono Nerd Font";
- --urlbar-results-font-size: 12pt;
- --urlbar-results-font-weight: 700;
- --urlbar-results-url-color: @base03;
- --autocomplete-popup-background: var(--bg) !important;
- --default-arrowpanel-background: var(--bg) !important;
- --default-arrowpanel-color: @base06 !important;
- --lwt-toolbarbutton-icon-fill: var(--icon-color) !important;
- --panel-disabled-color: @base06;
- --toolbar-bgcolor: var(--bg) !important;
- --urlbar-separator-color: transparent !important;
-}
-
-.tab-background[selected="true"] {
- background: var(--tab-selected-bg) !important;
-}
-
-.tab-background:not[visuallyselected] {
- background: var(--tab-selected-bg) !important;
- opacity: 0.5 !important;
-}
-
-#titlebar {
- -moz-box-ordinal-group: 3 !important;
-}
-
-.tabbrowser-tab::after,
-.tabbrowser-tab::before {
- border-left: none !important;
-}
-
-.tab-background {
- border: none !important;
-}
-
-.tabbrowser-arrowscrollbox {
- margin-inline-start: 4px !important;
- margin-inline-end: 0px !important;
-}
-
-.tab-close-button {
- display: none !important;
-}
-
-.tab-text {
- font-family: var(--tab-font-family);
- font-weight: var(--tab-font-weight);
- font-size: var(--tab-font-size) !important;
- color: var(--tab-color);
-}
-
-hbox.tab-content .tab-icon-image {
- display: none !important;
-}
-
-hbox.tab-content[pinned=true] .tab-icon-image {
- display: initial !important;
-}
-
-hbox.tab-content[pinned=true] .tab-text {
- display: none !important;
-}
-
-#tabbrowser-tabs {
- --tab-loading-fill: @base0F !important;
-
-}
-
-.tab-label-container:not([textoverflow]) {
- display: flex;
- overflow: hidden;
- justify-content: center;
- width: 50% !important;
- max-width: 50% !important;
- min-width: 50% !important;
-}
-
-.tab-line {
- display: none !important;
-}
-
-.tabbrowser-tab {
- border-radius: var(--tab-border-radius) !important;
- border-width: 0;
- height: var(--tab-height) !important;
- margin-bottom: 4px !important;
- margin-inline-end: 4px !important;
- margin-top: 4px !important;
- max-height: var(--tab-height) !important;
- min-height: var(--tab-height) !important;
-}
-
-.tabbrowser-tab[soundplaying="true"] {
- background-color: var(--tab-soundplaying-bg) !important;
-}
-
-#tabs-newtab-button {
- list-style-image: url("add.svg") !important;
- opacity: 0.7;
-}
-
-.tab-icon-sound {
- display: none !important;
-}
-
-.urlbar-icon > image {
- fill: var(--icon-color) !important;
- color: var(--icon-color) !important;
-}
-
-.toolbarbutton-text {
- color: var(--icon-color) !important;
-}
-.urlbar-icon {
- color: var(--icon-color) !important;
-
-}
-
-#urlbar-results {
- font-family: var(--urlbar-results-font-family);
- font-weight: var(--urlbar-results-font-weight);
- font-size: var(--urlbar-results-font-size) !important;
- color: var(--urlbar-results-color) !important;
-}
-
-.urlbarView-row[type="bookmark"] > span{
- color: @base0E !important;
-}
-
-.urlbarView-row[type="switchtab"] > span{
- color: @base0C !important;
-}
-
-.urlbarView-url, .search-panel-one-offs-container {
- color: var(--urlbar-results-url-color) !important;
- font-family: var(--urlbar-font-family);
- font-weight: var(--urlbar-results-font-weight);
- font-size: var(--urlbar-font-size) !important;
-}
-
-.urlbarView-favicon, .urlbarView-type-icon {
- display: none !important;
-}
-
-#urlbar-input {
- font-size: var(--urlbar-font-size) !important;
- color: var(--urlbar-color) !important;
- font-family: var(--urlbar-font-family) !important;
- font-weight: var(--urlbar-font-weight)!important;
- text-align: center !important;
-}
-
-#tracking-protection-icon-container, #identity-box {
- display: none;
-}
-
-#back-button > .toolbarbutton-icon{
- --backbutton-background: transparent !important;
- border: none !important;
-}
-
-#back-button {
- list-style-image: url("left-arrow.svg") !important;
-}
-
-#forward-button {
- list-style-image: url("right-arrow.svg") !important;
-}
-
-toolbar {
- background-image: none !important;
-}
-
-#urlbar-background {
- opacity: .98 !important;
-}
-
-#navigator-toolbox, toolbaritem {
- border: none !important;
-}
-
-#urlbar-background {
- background-color: var(--bg) !important;
- border: none !important;
-}
-
-.toolbar-items {
- background-color: var(--bg) !important;
-}
-
-#sidebar-search-container {
- background-color: var(--sidebar-bg) !important;
-}
-
-box.panel-arrowbox {
- display: none;
-}
-
-box.panel-arrowcontent {
- border-radius: 8px !important;
- border: none !important;
-}
-
-tab.tabbrowser-tab {
- overflow: hidden;
-}
-
-tab.tabbrowser-tab:hover {
- box-shadow: 0 1px 4px rgba(0,0,0,.05);
-}
-
-image#star-button {
- display: none;
-}
-
-toolbar#nav-bar {
- padding: var(--nav-toolbar-padding) !important;
-}
-
-toolbar#nav-bar {
- padding: 4px !important;
-}
-
-#urlbar {
- max-width: 70% !important;
- margin: 0 15% !important;
-}
-
-#urlbar-input:focus {
- color: var(--urlbar-focused-color) !important;
-}
-
-
-.megabar[breakout-extend="true"]:not([open="true"]) > #urlbar-background {
- box-shadow: none !important;
- background-color: transparent !important;
-}
-
-toolbarbutton {
- box-shadow: none !important;
-}
-
-.close-icon, .urlbar-icon {
- fill: var(--icon-color) !important;
-}
-
-.sidebar-placesTree {
- color: var(--sidebar-color) !important;
-}
-
-#sidebar-box {
- --sidebar-background-color: var(--sidebar-bg) !important;
-}
-
-splitter#sidebar-splitter {
- opacity: 0 !important;
-}
-
-splitter#sidebar-splitter {
- border: none !important;
- background-color: transparent !important;
-}
-
-image#sidebar-icon {
- display: none;
-}
-
-.panel-arrowcontent {
- padding: 0px !important;
- margin: 0px !important;
-}
-
-toolbarseparator {
- display: none;
-}
diff --git a/.config/chrome/userContent.css b/.config/chrome/userContent.css
deleted file mode 100644
index b64893ab..00000000
--- a/.config/chrome/userContent.css
+++ /dev/null
@@ -1,17 +0,0 @@
-@import url("userChrome.css");
-
-@-moz-document url(about:blank), url(about:newtab), url(about:home) {
- html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
- background: var(--mff-bg) !important;
- }
-}
-
-:root{
- scrollbar-width: none !important;
-}
-
-@-moz-document url(about:privatebrowsing) {
- :root{
- scrollbar-width: none !important;
- }
-}
diff --git a/.config/fuzzel/fuzzel.ini b/.config/fuzzel/fuzzel.ini
new file mode 100644
index 00000000..cd84f69f
--- /dev/null
+++ b/.config/fuzzel/fuzzel.ini
@@ -0,0 +1,20 @@
+font=JetBrainsMono Nerd Font:size=8
+icons-enabled=no
+width=40
+
+[colors]
+background=3B4252ff
+text=D8DEE9ff
+prompt=E5E9F0ff
+placeholder=2E3440ff
+input=D8DEE9ff
+match=BF616Aff
+selection=88C0D0ff
+selection-text=3B4252ff
+selection-match=BF616Aff
+counter=4C566Aff
+border=A3BE8Cff
+
+[border]
+width=3
+radius=0
diff --git a/.config/grub_nord/background.png b/.config/grub_nord/background.png
deleted file mode 100644
index c26c2536..00000000
--- a/.config/grub_nord/background.png
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/boot_menu2_c.png b/.config/grub_nord/boot_menu2_c.png
deleted file mode 100644
index 8b84eab8..00000000
--- a/.config/grub_nord/boot_menu2_c.png
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/dejavu_14.pf2 b/.config/grub_nord/dejavu_14.pf2
deleted file mode 100644
index e85fe3a1..00000000
--- a/.config/grub_nord/dejavu_14.pf2
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/droidlogo_regular_17.pf2 b/.config/grub_nord/droidlogo_regular_17.pf2
deleted file mode 100644
index 607bcf29..00000000
--- a/.config/grub_nord/droidlogo_regular_17.pf2
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/highlight_c.png b/.config/grub_nord/highlight_c.png
deleted file mode 100644
index 6cad7f5c..00000000
--- a/.config/grub_nord/highlight_c.png
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/highlight_w.png b/.config/grub_nord/highlight_w.png
deleted file mode 100644
index 334ca6bf..00000000
--- a/.config/grub_nord/highlight_w.png
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/progress_highlight_c.png b/.config/grub_nord/progress_highlight_c.png
deleted file mode 100644
index 34005255..00000000
--- a/.config/grub_nord/progress_highlight_c.png
+++ /dev/null
Binary files differ
diff --git a/.config/grub_nord/theme.txt b/.config/grub_nord/theme.txt
deleted file mode 100644
index 21db1c62..00000000
--- a/.config/grub_nord/theme.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-# general settings
- title-text: ""
- title-color: "#80C0D0"
- message-font: "DejaVu Sans Regular 14"
- message-color: "#BF616A"
- message-bg-color: "#434C5E"
- desktop-image: "background.png"
- desktop-color: "#434C5E"
- terminal-font: "DejaVu Sans Regular 14"
-
-
-# boot menu
-+ boot_menu {
- left = 28%
- width = 50%
- top = 22%
- height = 45%
- item_font = "DroidLogo Regular 17"
- item_color = "#BF616A"
- selected_item_font = "DroidLogo Regular 17"
- selected_item_color = "#81A1C1"
- icon_width = 16
- icon_height = 16
- item_height = 33
- item_padding = 20
- item_icon_space = 5
- item_spacing = 5
- menu_pixmap_style = "boot_menu2_*.png"
- selected_item_pixmap_style = "highlight_*.png"
-}
-
-# Show progress
-+ progress_bar {
- id = "__timeout__"
- left = 0%
- width = 100%
- top = 99%
- height = 31
- show_text = false
- text = ""
- fg_color = "#A3BE8C"
- bg_color = "#2E3440"
- border_color = "#2E3440"
- highlight_style = "progress_highlight_*.png"
-}
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
index 8a0137f6..e604aff8 100644
--- a/.config/gtk-3.0/settings.ini
+++ b/.config/gtk-3.0/settings.ini
@@ -1,5 +1,4 @@
[Settings]
-#gtk-icon-theme-name = nord_icons
gtk-theme-name = nordic
-gtk-cursor-theme-name = nord_cursors_light
+gtk-cursor-theme-name = nordic_cursors
gtk-font-name = JetBrainsMono Nerd Font
diff --git a/.config/issue b/.config/issue
index 89ed34e4..e9ac3900 100644
--- a/.config/issue
+++ b/.config/issue
@@ -1,14 +1,4 @@
]P02E3440]P83BB4252]P7D8DEE9]PFE5E9F0]P1BF616A]P9BF616A]P2A3BE8C]PAA3BE8C]P3EBCB8B]PBEBCB8B]P488C0D0]PC88C0D0]P5B48EAD]PDB48EAD]P68FBCBB]PE8FBCBB]P02E3440]P83BB4252]P7D8DEE9]PFE5E9F0]P1BF616A]P9BF616A]P2A3BE8C]PAA3BE8C]P3EBCB8B]PBEBCB8B]P488C0D0]PC88C0D0]P5B48EAD]PDB48EAD]P68FBCBB]PE8FBCBB
- .
- .vir. d$b
- .d$$$$$$b. .cd$$b. .d$$b. d$$$$$$$$$$$b .d$$b. .d$$b.
- $$$$( )$$$b d$$$()$$$. d$$$$$$$b Q$$$$$$$P$$$P.$$$$$$$b. .$$$$$$$b.
- Q$$$$$$$$$$B$$$$$$$$P" d$$$PQ$$$$b. $$$$. .$$$P' `$$$ .$$$P' `$$$
- "$$$$$$$P Q$$$$$$$b d$$$P Q$$$$b $$$$b $$$$b..d$$$ $$$$b..d$$$
- d$$$$$$P" "$$$$$$$$ Q$$$ Q$$$$ $$$$$ `Q$$$$$$$P `Q$$$$$$$P
- $$$$$$$P `""""" "" "" Q$$$P "Q$$$P" "Q$$$P"
- `Q$$P" """
-
\n (\s \m \r) \t \d
diff --git a/.config/kernel.config b/.config/kernel.config
deleted file mode 100644
index 8907af5f..00000000
--- a/.config/kernel.config
+++ /dev/null
@@ -1,4229 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.11.1-gentoo Kernel Configuration
-#
-CONFIG_CC_VERSION_TEXT="clang version 18.1.8"
-CONFIG_GCC_VERSION=0
-CONFIG_CC_IS_CLANG=y
-CONFIG_CLANG_VERSION=180108
-CONFIG_AS_IS_LLVM=y
-CONFIG_AS_VERSION=180108
-CONFIG_LD_VERSION=0
-CONFIG_LD_IS_LLD=y
-CONFIG_LLD_VERSION=190101
-CONFIG_CC_CAN_LINK=y
-CONFIG_CC_CAN_LINK_STATIC=y
-CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
-CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
-CONFIG_TOOLS_SUPPORT_RELR=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
-CONFIG_PAHOLE_VERSION=0
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-# CONFIG_WERROR is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_HAVE_KERNEL_ZSTD=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_KERNEL_ZSTD=y
-CONFIG_DEFAULT_INIT=""
-CONFIG_DEFAULT_HOSTNAME="xena"
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_WATCH_QUEUE is not set
-# CONFIG_CROSS_MEMORY_ATTACH is not set
-# CONFIG_USELIB is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
-CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# end of IRQ subsystem
-
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_ARCH_CLOCKSOURCE_INIT=y
-CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y
-CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
-CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
-CONFIG_CONTEXT_TRACKING=y
-CONFIG_CONTEXT_TRACKING_IDLE=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100
-# end of Timers subsystem
-
-CONFIG_BPF=y
-CONFIG_HAVE_EBPF_JIT=y
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-
-#
-# BPF subsystem
-#
-# CONFIG_BPF_SYSCALL is not set
-# CONFIG_BPF_JIT is not set
-# end of BPF subsystem
-
-CONFIG_PREEMPT_BUILD=y
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
-CONFIG_PREEMPTION=y
-# CONFIG_PREEMPT_DYNAMIC is not set
-CONFIG_SCHED_CORE=y
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_PSI is not set
-# end of CPU/Task time and stats accounting
-
-# CONFIG_CPU_ISOLATION is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_TREE_SRCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
-CONFIG_CC_HAS_INT128=y
-CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough"
-CONFIG_GCC10_NO_ARRAY_BOUNDS=y
-CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_SLAB_OBJ_EXT=y
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-# CONFIG_CGROUP_FAVOR_DYNMODS is not set
-CONFIG_MEMCG=y
-# CONFIG_MEMCG_V1 is not set
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_CFS_BANDWIDTH is not set
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_SCHED_MM_CID=y
-# CONFIG_CGROUP_PIDS is not set
-# CONFIG_CGROUP_RDMA is not set
-# CONFIG_CGROUP_FREEZER is not set
-# CONFIG_CPUSETS is not set
-# CONFIG_CGROUP_DEVICE is not set
-CONFIG_CGROUP_CPUACCT=y
-# CONFIG_CGROUP_PERF is not set
-CONFIG_CGROUP_MISC=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_TIME_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_CHECKPOINT_RESTORE is not set
-# CONFIG_SCHED_AUTOGROUP is not set
-CONFIG_RELAY=y
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_BOOT_CONFIG is not set
-# CONFIG_INITRAMFS_PRESERVE_MTIME is not set
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_LD_ORPHAN_WARN=y
-CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
-CONFIG_SYSCTL=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_EXPERT=y
-CONFIG_MULTIUSER=y
-# CONFIG_SGETMASK_SYSCALL is not set
-# CONFIG_SYSFS_SYSCALL is not set
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-# CONFIG_PCSPKR_PLATFORM is not set
-# CONFIG_BASE_SMALL is not set
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_MEMBARRIER=y
-CONFIG_KCMP=y
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-CONFIG_CACHESTAT_SYSCALL=y
-# CONFIG_PC104 is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_SELFTEST is not set
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-# CONFIG_PROFILING is not set
-
-#
-# Kexec and crash features
-#
-# CONFIG_KEXEC is not set
-# CONFIG_KEXEC_FILE is not set
-# end of Kexec and crash features
-# end of General setup
-
-CONFIG_64BIT=y
-CONFIG_X86_64=y
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=28
-CONFIG_ARCH_MMAP_RND_BITS_MAX=32
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_AUDIT_ARCH=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_64_SMP=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
-CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
-
-#
-# Processor type and features
-#
-CONFIG_SMP=y
-# CONFIG_X86_MPPARSE is not set
-# CONFIG_X86_CPU_RESCTRL is not set
-# CONFIG_X86_FRED is not set
-# CONFIG_X86_EXTENDED_PLATFORM is not set
-# CONFIG_X86_INTEL_LPSS is not set
-# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
-CONFIG_IOSF_MBI=y
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-# CONFIG_HYPERVISOR_GUEST is not set
-# CONFIG_MK8 is not set
-# CONFIG_MPSC is not set
-CONFIG_MCORE2=y
-# CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_USE_PPRO_CHECKSUM=y
-CONFIG_X86_P6_NOP=y
-CONFIG_X86_TSC=y
-CONFIG_X86_HAVE_PAE=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=64
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_IA32_FEAT_CTL=y
-CONFIG_X86_VMX_FEATURE_NAMES=y
-# CONFIG_PROCESSOR_SELECT is not set
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_HYGON=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_ZHAOXIN=y
-CONFIG_HPET_TIMER=y
-CONFIG_DMI=y
-# CONFIG_GART_IOMMU is not set
-CONFIG_BOOT_VESA_SUPPORT=y
-# CONFIG_MAXSMP is not set
-CONFIG_NR_CPUS_RANGE_BEGIN=2
-CONFIG_NR_CPUS_RANGE_END=512
-CONFIG_NR_CPUS_DEFAULT=64
-CONFIG_NR_CPUS=4
-CONFIG_SCHED_CLUSTER=y
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_MC_PRIO=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_ACPI_MADT_WAKEUP=y
-CONFIG_X86_IO_APIC=y
-# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCELOG_LEGACY is not set
-CONFIG_X86_MCE_INTEL=y
-# CONFIG_X86_MCE_AMD is not set
-CONFIG_X86_MCE_THRESHOLD=y
-
-#
-# Performance monitoring
-#
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
-CONFIG_PERF_EVENTS_INTEL_RAPL=y
-CONFIG_PERF_EVENTS_INTEL_CSTATE=y
-# CONFIG_PERF_EVENTS_AMD_POWER is not set
-# CONFIG_PERF_EVENTS_AMD_UNCORE is not set
-# CONFIG_PERF_EVENTS_AMD_BRS is not set
-# end of Performance monitoring
-
-# CONFIG_X86_VSYSCALL_EMULATION is not set
-# CONFIG_X86_IOPL_IOPERM is not set
-CONFIG_MICROCODE=y
-# CONFIG_MICROCODE_LATE_LOADING is not set
-CONFIG_X86_MSR=y
-CONFIG_X86_CPUID=y
-# CONFIG_X86_5LEVEL is not set
-CONFIG_X86_DIRECT_GBPAGES=y
-# CONFIG_AMD_MEM_ENCRYPT is not set
-# CONFIG_NUMA is not set
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_X86_UMIP=y
-CONFIG_CC_HAS_IBT=y
-# CONFIG_X86_KERNEL_IBT is not set
-CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
-# CONFIG_X86_INTEL_TSX_MODE_OFF is not set
-# CONFIG_X86_INTEL_TSX_MODE_ON is not set
-CONFIG_X86_INTEL_TSX_MODE_AUTO=y
-# CONFIG_X86_USER_SHADOW_STACK is not set
-CONFIG_EFI=y
-CONFIG_EFI_STUB=y
-# CONFIG_EFI_HANDOVER_PROTOCOL is not set
-# CONFIG_EFI_MIXED is not set
-# CONFIG_EFI_RUNTIME_MAP is not set
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_SCHED_HRTICK=y
-CONFIG_ARCH_SUPPORTS_KEXEC=y
-CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
-CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
-CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
-CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y
-CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y
-CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y
-CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
-CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y
-CONFIG_PHYSICAL_START=0x1000000
-CONFIG_RELOCATABLE=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x200000
-CONFIG_DYNAMIC_MEMORY_LAYOUT=y
-CONFIG_RANDOMIZE_MEMORY=y
-CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
-# CONFIG_ADDRESS_MASKING is not set
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_LEGACY_VSYSCALL_XONLY is not set
-CONFIG_LEGACY_VSYSCALL_NONE=y
-CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="root=PARTUUID=565a0718-55fb-c04d-a61b-7caa3211161e ro"
-# CONFIG_CMDLINE_OVERRIDE is not set
-# CONFIG_MODIFY_LDT_SYSCALL is not set
-# CONFIG_STRICT_SIGALTSTACK_SIZE is not set
-CONFIG_HAVE_LIVEPATCH=y
-# end of Processor type and features
-
-CONFIG_CC_HAS_SLS=y
-CONFIG_CC_HAS_RETURN_THUNK=y
-CONFIG_CC_HAS_ENTRY_PADDING=y
-CONFIG_FUNCTION_PADDING_CFI=11
-CONFIG_FUNCTION_PADDING_BYTES=16
-CONFIG_CALL_PADDING=y
-CONFIG_HAVE_CALL_THUNKS=y
-CONFIG_CALL_THUNKS=y
-CONFIG_PREFIX_SYMBOLS=y
-CONFIG_CPU_MITIGATIONS=y
-CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y
-CONFIG_MITIGATION_RETPOLINE=y
-CONFIG_MITIGATION_RETHUNK=y
-CONFIG_MITIGATION_UNRET_ENTRY=y
-CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y
-# CONFIG_CALL_THUNKS_DEBUG is not set
-CONFIG_MITIGATION_IBPB_ENTRY=y
-CONFIG_MITIGATION_IBRS_ENTRY=y
-CONFIG_MITIGATION_SRSO=y
-# CONFIG_MITIGATION_SLS is not set
-# CONFIG_MITIGATION_GDS_FORCE is not set
-CONFIG_MITIGATION_RFDS=y
-CONFIG_MITIGATION_SPECTRE_BHI=y
-CONFIG_ARCH_HAS_ADD_PAGES=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_SUSPEND_SKIP_SYNC is not set
-# CONFIG_HIBERNATION is not set
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
-CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
-CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
-CONFIG_ACPI_THERMAL_LIB=y
-# CONFIG_ACPI_DEBUGGER is not set
-# CONFIG_ACPI_SPCR_TABLE is not set
-CONFIG_ACPI_FPDT=y
-CONFIG_ACPI_LPIT=y
-CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_REV_OVERRIDE_POSSIBLE is not set
-# CONFIG_ACPI_EC_DEBUGFS is not set
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=y
-CONFIG_ACPI_VIDEO=y
-CONFIG_ACPI_FAN=y
-CONFIG_ACPI_TAD=y
-# CONFIG_ACPI_DOCK is not set
-CONFIG_ACPI_CPU_FREQ_PSS=y
-CONFIG_ACPI_PROCESSOR_CSTATE=y
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_CPPC_LIB=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_PROCESSOR_AGGREGATOR=y
-CONFIG_ACPI_THERMAL=y
-CONFIG_ACPI_CUSTOM_DSDT_FILE=""
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-# CONFIG_ACPI_PCI_SLOT is not set
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_IOAPIC=y
-CONFIG_ACPI_SBS=y
-CONFIG_ACPI_HED=y
-# CONFIG_ACPI_BGRT is not set
-# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
-CONFIG_ACPI_NHLT=y
-CONFIG_HAVE_ACPI_APEI=y
-CONFIG_HAVE_ACPI_APEI_NMI=y
-CONFIG_ACPI_APEI=y
-CONFIG_ACPI_APEI_GHES=y
-# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-CONFIG_ACPI_DPTF=y
-CONFIG_DPTF_POWER=y
-CONFIG_DPTF_PCH_FIVR=y
-# CONFIG_ACPI_CONFIGFS is not set
-# CONFIG_ACPI_PFRUT is not set
-CONFIG_ACPI_PCC=y
-# CONFIG_ACPI_FFH is not set
-# CONFIG_PMIC_OPREGION is not set
-CONFIG_ACPI_PRMT=y
-CONFIG_X86_PM_TIMER=y
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_X86_INTEL_PSTATE=y
-# CONFIG_X86_PCC_CPUFREQ is not set
-CONFIG_X86_AMD_PSTATE=y
-CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
-# CONFIG_X86_AMD_PSTATE_UT is not set
-# CONFIG_X86_ACPI_CPUFREQ is not set
-# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
-# CONFIG_X86_P4_CLOCKMOD is not set
-
-#
-# shared options
-#
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-# CONFIG_CPU_IDLE_GOV_LADDER is not set
-CONFIG_CPU_IDLE_GOV_MENU=y
-# CONFIG_CPU_IDLE_GOV_TEO is not set
-# end of CPU Idle
-
-CONFIG_INTEL_IDLE=y
-# end of Power management and ACPI options
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_MMCONF_FAM10H=y
-# CONFIG_PCI_CNB20LE_QUIRK is not set
-# CONFIG_ISA_BUS is not set
-# CONFIG_ISA_DMA_API is not set
-CONFIG_AMD_NB=y
-# end of Bus options (PCI etc.)
-
-#
-# Binary Emulations
-#
-# CONFIG_IA32_EMULATION is not set
-# end of Binary Emulations
-
-# CONFIG_VIRTUALIZATION is not set
-CONFIG_AS_AVX512=y
-CONFIG_AS_SHA1_NI=y
-CONFIG_AS_SHA256_NI=y
-CONFIG_AS_TPAUSE=y
-CONFIG_AS_GFNI=y
-CONFIG_AS_VAES=y
-CONFIG_AS_VPCLMULQDQ=y
-CONFIG_AS_WRUSS=y
-CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y
-
-#
-# General architecture-dependent options
-#
-CONFIG_HOTPLUG_SMT=y
-CONFIG_HOTPLUG_CORE_SYNC=y
-CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
-CONFIG_HOTPLUG_CORE_SYNC_FULL=y
-CONFIG_HOTPLUG_SPLIT_STARTUP=y
-CONFIG_HOTPLUG_PARALLEL=y
-CONFIG_GENERIC_ENTRY=y
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-# CONFIG_STATIC_CALL_SELFTEST is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_KPROBES_ON_FTRACE=y
-CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
-CONFIG_ARCH_WANTS_NO_INSTR=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_RUST=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_MERGE_VMAS=y
-CONFIG_MMU_LAZY_TLB_REFCOUNT=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_HAVE_ARCH_SECCOMP=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP=y
-CONFIG_SECCOMP_FILTER=y
-# CONFIG_SECCOMP_CACHE_DEBUG is not set
-CONFIG_HAVE_ARCH_STACKLEAK=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
-CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
-CONFIG_HAS_LTO_CLANG=y
-CONFIG_LTO_NONE=y
-# CONFIG_LTO_CLANG_FULL is not set
-# CONFIG_LTO_CLANG_THIN is not set
-CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
-# CONFIG_CFI_CLANG is not set
-CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
-CONFIG_HAVE_CONTEXT_TRACKING_USER=y
-CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOVE_PUD=y
-CONFIG_HAVE_MOVE_PMD=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_HAVE_ARCH_SOFT_DIRTY=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
-CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
-CONFIG_SOFTIRQ_ON_OWN_STACK=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=28
-CONFIG_HAVE_PAGE_SIZE_4KB=y
-CONFIG_PAGE_SIZE_4KB=y
-CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
-CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
-CONFIG_PAGE_SHIFT=12
-CONFIG_HAVE_OBJTOOL=y
-CONFIG_HAVE_JUMP_LABEL_HACK=y
-CONFIG_HAVE_NOINSTR_HACK=y
-CONFIG_HAVE_NOINSTR_VALIDATION=y
-CONFIG_HAVE_UACCESS_VALIDATION=y
-CONFIG_HAVE_STACK_VALIDATION=y
-CONFIG_HAVE_RELIABLE_STACKTRACE=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_VMAP_STACK=y
-CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
-CONFIG_RANDOMIZE_KSTACK_OFFSET=y
-CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-CONFIG_ARCH_HAS_MEM_ENCRYPT=y
-CONFIG_HAVE_STATIC_CALL=y
-CONFIG_HAVE_STATIC_CALL_INLINE=y
-CONFIG_HAVE_PREEMPT_DYNAMIC=y
-CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
-CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
-CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
-CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
-CONFIG_DYNAMIC_SIGFRAME=y
-CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
-CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
-CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_HAVE_GCC_PLUGINS=y
-CONFIG_FUNCTION_ALIGNMENT_4B=y
-CONFIG_FUNCTION_ALIGNMENT_16B=y
-CONFIG_FUNCTION_ALIGNMENT=16
-CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-# CONFIG_MODULES is not set
-CONFIG_BLOCK=y
-# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG_COMMON=y
-CONFIG_BLK_ICQ=y
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-CONFIG_BLK_DEV_WRITE_MOUNTED=y
-# CONFIG_BLK_DEV_ZONED is not set
-# CONFIG_BLK_DEV_THROTTLING is not set
-CONFIG_BLK_WBT=y
-# CONFIG_BLK_WBT_MQ is not set
-# CONFIG_BLK_CGROUP_IOLATENCY is not set
-# CONFIG_BLK_CGROUP_IOCOST is not set
-# CONFIG_BLK_CGROUP_IOPRIO is not set
-# CONFIG_BLK_SED_OPAL is not set
-# CONFIG_BLK_INLINE_ENCRYPTION is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-# CONFIG_MQ_IOSCHED_DEADLINE is not set
-# CONFIG_MQ_IOSCHED_KYBER is not set
-CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
-# CONFIG_BFQ_CGROUP_DEBUG is not set
-# end of IO Schedulers
-
-CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ELFCORE=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SWAP=y
-# CONFIG_ZSWAP is not set
-CONFIG_HAVE_ZSMALLOC=y
-
-#
-# Slab allocator options
-#
-CONFIG_SLUB=y
-# CONFIG_SLUB_TINY is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SLAB_FREELIST_HARDENED=y
-CONFIG_SLAB_BUCKETS=y
-# CONFIG_SLUB_STATS is not set
-CONFIG_SLUB_CPU_PARTIAL=y
-# CONFIG_RANDOM_KMALLOC_CACHES is not set
-# end of Slab allocator options
-
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SPARSEMEM=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
-CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
-CONFIG_HAVE_GUP_FAST=y
-CONFIG_EXCLUSIVE_SYSTEM_RAM=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-# CONFIG_MEMORY_HOTPLUG is not set
-CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_COMPACTION=y
-CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
-# CONFIG_PAGE_REPORTING is not set
-CONFIG_MIGRATION=y
-CONFIG_PCP_BATCH_SCALE_MAX=5
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_MMU_NOTIFIER=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_MEMORY_FAILURE is not set
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ARCH_WANTS_THP_SWAP=y
-# CONFIG_TRANSPARENT_HUGEPAGE is not set
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-# CONFIG_CMA is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
-CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_ARCH_HAS_ZONE_DMA_SET=y
-CONFIG_ZONE_DMA=y
-CONFIG_ZONE_DMA32=y
-CONFIG_VMAP_PFN=y
-CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
-CONFIG_ARCH_HAS_PKEYS=y
-CONFIG_VM_EVENT_COUNTERS=y
-# CONFIG_PERCPU_STATS is not set
-
-#
-# GUP_TEST needs to have DEBUG_FS enabled
-#
-# CONFIG_DMAPOOL_TEST is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_SECRETMEM=y
-# CONFIG_ANON_VMA_NAME is not set
-# CONFIG_USERFAULTFD is not set
-# CONFIG_LRU_GEN is not set
-CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
-CONFIG_PER_VMA_LOCK=y
-CONFIG_LOCK_MM_AND_FIND_VMA=y
-
-#
-# Data Access Monitoring
-#
-# CONFIG_DAMON is not set
-# end of Data Access Monitoring
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=y
-CONFIG_UNIX=y
-CONFIG_AF_UNIX_OOB=y
-CONFIG_UNIX_DIAG=y
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_XFRM_INTERFACE is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_AH=y
-CONFIG_XFRM_ESP=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-CONFIG_NET_IP_TUNNEL=y
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_NET_IPVTI is not set
-# CONFIG_NET_FOU is not set
-# CONFIG_NET_FOU_IP_TUNNELS is not set
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-# CONFIG_INET_ESP_OFFLOAD is not set
-# CONFIG_INET_ESPINTCP is not set
-# CONFIG_INET_IPCOMP is not set
-CONFIG_INET_TABLE_PERTURB_ORDER=16
-CONFIG_INET_TUNNEL=y
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_AO is not set
-# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=y
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-# CONFIG_INET6_ESP_OFFLOAD is not set
-# CONFIG_INET6_ESPINTCP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_IPV6_ILA is not set
-# CONFIG_IPV6_VTI is not set
-CONFIG_IPV6_SIT=y
-# CONFIG_IPV6_SIT_6RD is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE is not set
-# CONFIG_IPV6_SEG6_LWTUNNEL is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_IPV6_RPL_LWTUNNEL is not set
-# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
-# CONFIG_MPTCP is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_EGRESS=y
-CONFIG_NETFILTER_NETLINK=y
-# CONFIG_NETFILTER_NETLINK_ACCT is not set
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-CONFIG_NETFILTER_NETLINK_OSF=y
-# CONFIG_NF_CONNTRACK is not set
-CONFIG_NF_LOG_SYSLOG=y
-# CONFIG_NF_TABLES is not set
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=y
-
-#
-# Xtables targets
-#
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
-# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
-# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
-# CONFIG_NETFILTER_XT_TARGET_LOG is not set
-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-# CONFIG_NETFILTER_XT_TARGET_TEE is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-
-#
-# Xtables matches
-#
-# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_BPF is not set
-# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_CPU is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ECN is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_HL is not set
-# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
-# CONFIG_NETFILTER_XT_MATCH_OSF is not set
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# end of Core Netfilter Configuration
-
-# CONFIG_IP_SET is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV4=y
-CONFIG_NF_TPROXY_IPV4=y
-CONFIG_NF_DUP_IPV4=y
-CONFIG_NF_LOG_ARP=y
-CONFIG_NF_LOG_IPV4=y
-CONFIG_NF_REJECT_IPV4=y
-# CONFIG_IP_NF_IPTABLES is not set
-# CONFIG_IP_NF_ARPFILTER is not set
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=y
-CONFIG_NF_TPROXY_IPV6=y
-CONFIG_NF_DUP_IPV6=y
-CONFIG_NF_REJECT_IPV6=y
-CONFIG_NF_LOG_IPV6=y
-# CONFIG_IP6_NF_IPTABLES is not set
-# end of IPv6: Netfilter Configuration
-
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_LLC2 is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_PHONET is not set
-# CONFIG_6LOWPAN is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-# CONFIG_NET_SCH_HTB is not set
-# CONFIG_NET_SCH_HFSC is not set
-# CONFIG_NET_SCH_PRIO is not set
-# CONFIG_NET_SCH_MULTIQ is not set
-# CONFIG_NET_SCH_RED is not set
-# CONFIG_NET_SCH_SFB is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_CBS is not set
-# CONFIG_NET_SCH_ETF is not set
-# CONFIG_NET_SCH_TAPRIO is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_DRR is not set
-# CONFIG_NET_SCH_MQPRIO is not set
-# CONFIG_NET_SCH_SKBPRIO is not set
-# CONFIG_NET_SCH_CHOKE is not set
-# CONFIG_NET_SCH_QFQ is not set
-# CONFIG_NET_SCH_CODEL is not set
-# CONFIG_NET_SCH_FQ_CODEL is not set
-# CONFIG_NET_SCH_CAKE is not set
-# CONFIG_NET_SCH_FQ is not set
-# CONFIG_NET_SCH_HHF is not set
-# CONFIG_NET_SCH_PIE is not set
-# CONFIG_NET_SCH_PLUG is not set
-# CONFIG_NET_SCH_ETS is not set
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_CLS_CGROUP is not set
-# CONFIG_NET_CLS_BPF is not set
-# CONFIG_NET_CLS_FLOWER is not set
-# CONFIG_NET_CLS_MATCHALL is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-# CONFIG_DNS_RESOLVER is not set
-# CONFIG_BATMAN_ADV is not set
-# CONFIG_OPENVSWITCH is not set
-# CONFIG_VSOCKETS is not set
-# CONFIG_NETLINK_DIAG is not set
-# CONFIG_MPLS is not set
-# CONFIG_NET_NSH is not set
-# CONFIG_HSR is not set
-# CONFIG_NET_SWITCHDEV is not set
-# CONFIG_NET_L3_MASTER_DEV is not set
-# CONFIG_QRTR is not set
-# CONFIG_NET_NCSI is not set
-CONFIG_PCPU_DEV_REFCNT=y
-CONFIG_MAX_SKB_FRAGS=17
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_SOCK_RX_QUEUE_MAPPING=y
-CONFIG_XPS=y
-# CONFIG_CGROUP_NET_PRIO is not set
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# end of Network testing
-# end of Networking options
-
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-CONFIG_BT=y
-CONFIG_BT_BREDR=y
-CONFIG_BT_RFCOMM=y
-# CONFIG_BT_RFCOMM_TTY is not set
-# CONFIG_BT_BNEP is not set
-CONFIG_BT_HIDP=y
-CONFIG_BT_LE=y
-CONFIG_BT_LE_L2CAP_ECRED=y
-# CONFIG_BT_LEDS is not set
-# CONFIG_BT_MSFTEXT is not set
-# CONFIG_BT_AOSPEXT is not set
-# CONFIG_BT_SELFTEST is not set
-# CONFIG_BT_FEATURE_DEBUG is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=y
-CONFIG_BT_BCM=y
-CONFIG_BT_HCIBTUSB=y
-# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
-CONFIG_BT_HCIBTUSB_POLL_SYNC=y
-CONFIG_BT_HCIBTUSB_BCM=y
-# CONFIG_BT_HCIBTUSB_MTK is not set
-# CONFIG_BT_HCIBTUSB_RTL is not set
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBCM4377 is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_BT_MRVL is not set
-# CONFIG_BT_ATH3K is not set
-# CONFIG_BT_INTEL_PCIE is not set
-# end of Bluetooth device drivers
-
-# CONFIG_AF_RXRPC is not set
-# CONFIG_AF_KCM is not set
-# CONFIG_MCTP is not set
-CONFIG_WIRELESS=y
-CONFIG_CFG80211=y
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-# CONFIG_CFG80211_WEXT is not set
-CONFIG_MAC80211=y
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-# CONFIG_MAC80211_LEDS is not set
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_RFKILL=y
-# CONFIG_RFKILL_INPUT is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-# CONFIG_PSAMPLE is not set
-# CONFIG_NET_IFE is not set
-# CONFIG_LWTUNNEL is not set
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-# CONFIG_FAILOVER is not set
-# CONFIG_ETHTOOL_NETLINK is not set
-
-#
-# Device Drivers
-#
-CONFIG_HAVE_EISA=y
-# CONFIG_EISA is not set
-CONFIG_HAVE_PCI=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-# CONFIG_PCIEAER is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-# CONFIG_PCIE_PTM is not set
-CONFIG_PCI_MSI=y
-# CONFIG_PCI_QUIRKS is not set
-# CONFIG_PCI_DEBUG is not set
-# CONFIG_PCI_STUB is not set
-CONFIG_PCI_ATS=y
-CONFIG_PCI_LOCKLESS_CONFIG=y
-# CONFIG_PCI_IOV is not set
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-CONFIG_PCI_LABEL=y
-# CONFIG_PCIE_BUS_TUNE_OFF is not set
-CONFIG_PCIE_BUS_DEFAULT=y
-# CONFIG_PCIE_BUS_SAFE is not set
-# CONFIG_PCIE_BUS_PERFORMANCE is not set
-# CONFIG_PCIE_BUS_PEER2PEER is not set
-# CONFIG_VGA_ARB is not set
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# PCI controller drivers
-#
-# CONFIG_VMD is not set
-
-#
-# Cadence-based PCIe controllers
-#
-# end of Cadence-based PCIe controllers
-
-#
-# DesignWare-based PCIe controllers
-#
-# CONFIG_PCI_MESON is not set
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-# end of DesignWare-based PCIe controllers
-
-#
-# Mobiveil-based PCIe controllers
-#
-# end of Mobiveil-based PCIe controllers
-
-#
-# PLDA-based PCIe controllers
-#
-# end of PLDA-based PCIe controllers
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-# CONFIG_PCI_SW_SWITCHTEC is not set
-# end of PCI switch controller drivers
-
-# CONFIG_CXL_BUS is not set
-# CONFIG_PCCARD is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_AUXILIARY_BUS=y
-# CONFIG_UEVENT_HELPER is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_DEVTMPFS_SAFE is not set
-# CONFIG_STANDALONE is not set
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_EXTRA_FIRMWARE="intel-ucode/06-3a-09"
-CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
-# CONFIG_FW_LOADER_USER_HELPER is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
-CONFIG_FW_CACHE=y
-# CONFIG_FW_UPLOAD is not set
-# end of Firmware loader
-
-CONFIG_ALLOW_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-CONFIG_GENERIC_CPU_DEVICES=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_REGMAP=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-# CONFIG_MHI_BUS is not set
-# CONFIG_MHI_BUS_EP is not set
-# end of Bus devices
-
-#
-# Cache Drivers
-#
-# end of Cache Drivers
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-
-#
-# Firmware Drivers
-#
-
-#
-# ARM System Control and Management Interface Protocol
-#
-# end of ARM System Control and Management Interface Protocol
-
-# CONFIG_EDD is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-# CONFIG_FW_CFG_SYSFS is not set
-CONFIG_SYSFB=y
-CONFIG_SYSFB_SIMPLEFB=y
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=y
-# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
-CONFIG_EFI_DXE_MEM_ATTRIBUTES=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-# CONFIG_APPLE_PROPERTIES is not set
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
-# CONFIG_EFI_DISABLE_RUNTIME is not set
-# CONFIG_EFI_COCO_SECRET is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-
-#
-# Qualcomm firmware drivers
-#
-# end of Qualcomm firmware drivers
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-# CONFIG_GNSS is not set
-# CONFIG_MTD is not set
-# CONFIG_OF is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-# CONFIG_PARPORT is not set
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-# CONFIG_BLK_DEV is not set
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=y
-CONFIG_BLK_DEV_NVME=y
-# CONFIG_NVME_MULTIPATH is not set
-# CONFIG_NVME_VERBOSE_ERRORS is not set
-CONFIG_NVME_HWMON=y
-# CONFIG_NVME_FC is not set
-# CONFIG_NVME_TCP is not set
-# CONFIG_NVME_HOST_AUTH is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_DUMMY_IRQ is not set
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_SRAM is not set
-# CONFIG_DW_XDATA_PCIE is not set
-# CONFIG_PCI_ENDPOINT_TEST is not set
-# CONFIG_XILINX_SDFEC is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-# CONFIG_CB710_CORE is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-# end of Texas Instruments shared transport line discipline
-
-# CONFIG_SENSORS_LIS3_I2C is not set
-# CONFIG_ALTERA_STAPL is not set
-CONFIG_INTEL_MEI=y
-CONFIG_INTEL_MEI_ME=y
-CONFIG_INTEL_MEI_TXE=y
-# CONFIG_INTEL_MEI_GSC is not set
-CONFIG_INTEL_MEI_HDCP=y
-CONFIG_INTEL_MEI_PXP=y
-# CONFIG_INTEL_MEI_GSC_PROXY is not set
-# CONFIG_VMWARE_VMCI is not set
-# CONFIG_GENWQE is not set
-# CONFIG_ECHO is not set
-# CONFIG_BCM_VK is not set
-# CONFIG_MISC_ALCOR_PCI is not set
-# CONFIG_MISC_RTSX_PCI is not set
-# CONFIG_MISC_RTSX_USB is not set
-# CONFIG_UACCE is not set
-# CONFIG_PVPANIC is not set
-# CONFIG_KEBA_CP500 is not set
-# end of Misc devices
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI_COMMON=y
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_PROC_FS is not set
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-CONFIG_CHR_DEV_SG=y
-CONFIG_BLK_DEV_BSG=y
-# CONFIG_CHR_DEV_SCH is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-# end of SCSI Transports
-
-# CONFIG_SCSI_LOWLEVEL is not set
-# CONFIG_SCSI_DH is not set
-# end of SCSI device support
-
-CONFIG_ATA=y
-CONFIG_SATA_HOST=y
-# CONFIG_ATA_VERBOSE_ERROR is not set
-# CONFIG_ATA_FORCE is not set
-# CONFIG_ATA_ACPI is not set
-# CONFIG_SATA_PMP is not set
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=y
-CONFIG_SATA_MOBILE_LPM_POLICY=0
-# CONFIG_SATA_AHCI_PLATFORM is not set
-# CONFIG_AHCI_DWC is not set
-# CONFIG_SATA_INIC162X is not set
-# CONFIG_SATA_ACARD_AHCI is not set
-# CONFIG_SATA_SIL24 is not set
-# CONFIG_ATA_SFF is not set
-# CONFIG_MD is not set
-# CONFIG_TARGET_CORE is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_FIREWIRE_NOSY is not set
-# end of IEEE 1394 (FireWire) support
-
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_CORE is not set
-# CONFIG_ARCNET is not set
-# CONFIG_ETHERNET is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PHYLIB is not set
-# CONFIG_MDIO_DEVICE is not set
-
-#
-# PCS device drivers
-#
-# CONFIG_PCS_XPCS is not set
-# end of PCS device drivers
-
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_USB_NET_DRIVERS is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_VENDOR_ADMTEK is not set
-# CONFIG_WLAN_VENDOR_ATH is not set
-# CONFIG_WLAN_VENDOR_ATMEL is not set
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=y
-CONFIG_B43_BCMA=y
-# CONFIG_B43_BUSES_BCMA_AND_SSB is not set
-CONFIG_B43_BUSES_BCMA=y
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PHY_N=y
-# CONFIG_B43_PHY_HT is not set
-# CONFIG_B43_DEBUG is not set
-# CONFIG_B43LEGACY is not set
-CONFIG_BRCMUTIL=y
-CONFIG_BRCMSMAC=y
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-# CONFIG_WLAN_VENDOR_INTEL is not set
-# CONFIG_WLAN_VENDOR_INTERSIL is not set
-# CONFIG_WLAN_VENDOR_MARVELL is not set
-# CONFIG_WLAN_VENDOR_MEDIATEK is not set
-# CONFIG_WLAN_VENDOR_MICROCHIP is not set
-# CONFIG_WLAN_VENDOR_PURELIFI is not set
-# CONFIG_WLAN_VENDOR_RALINK is not set
-# CONFIG_WLAN_VENDOR_REALTEK is not set
-# CONFIG_WLAN_VENDOR_RSI is not set
-# CONFIG_WLAN_VENDOR_SILABS is not set
-# CONFIG_WLAN_VENDOR_ST is not set
-# CONFIG_WLAN_VENDOR_TI is not set
-# CONFIG_WLAN_VENDOR_ZYDAS is not set
-# CONFIG_WLAN_VENDOR_QUANTENNA is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_VIRT_WIFI is not set
-# CONFIG_WAN is not set
-
-#
-# Wireless WAN
-#
-# CONFIG_WWAN is not set
-# end of Wireless WAN
-
-# CONFIG_VMXNET3 is not set
-# CONFIG_FUJITSU_ES is not set
-# CONFIG_NET_FAILOVER is not set
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_LEDS is not set
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-# CONFIG_INPUT_MATRIXKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1440
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=900
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-CONFIG_INPUT_MOUSE=y
-# CONFIG_MOUSE_PS2 is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-CONFIG_MOUSE_BCM5974=y
-# CONFIG_MOUSE_CYAPA is not set
-# CONFIG_MOUSE_ELAN_I2C is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_MOUSE_SYNAPTICS_USB is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-# CONFIG_INPUT_BMA150 is not set
-# CONFIG_INPUT_E3X0_BUTTON is not set
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_APANEL is not set
-# CONFIG_INPUT_ATLAS_BTNS is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_KXTJ9 is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-CONFIG_INPUT_UINPUT=y
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_DA7280_HAPTICS is not set
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_IMS_PCU is not set
-# CONFIG_INPUT_IQS269A is not set
-# CONFIG_INPUT_IQS626A is not set
-# CONFIG_INPUT_IQS7222 is not set
-# CONFIG_INPUT_CMA3000 is not set
-# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
-# CONFIG_INPUT_DRV2665_HAPTICS is not set
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-# CONFIG_RMI4_CORE is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
-CONFIG_SERIO_I8042=y
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_CT82C710 is not set
-# CONFIG_SERIO_PCIPS2 is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_USERIO is not set
-# CONFIG_GAMEPORT is not set
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_LEGACY_TIOCSTI is not set
-# CONFIG_LDISC_AUTOLOAD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-# CONFIG_SERIAL_8250_CONSOLE is not set
-CONFIG_SERIAL_8250_PCILIB=y
-CONFIG_SERIAL_8250_PCI=y
-# CONFIG_SERIAL_8250_EXAR is not set
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-# CONFIG_SERIAL_8250_PCI1XXXX is not set
-# CONFIG_SERIAL_8250_DW is not set
-# CONFIG_SERIAL_8250_RT288X is not set
-# CONFIG_SERIAL_8250_LPSS is not set
-# CONFIG_SERIAL_8250_MID is not set
-# CONFIG_SERIAL_8250_PERICOM is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_LANTIQ is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_RP2 is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# CONFIG_SERIAL_SPRD is not set
-# end of Serial drivers
-
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_NOZOMI is not set
-# CONFIG_NULL_TTY is not set
-# CONFIG_SERIAL_DEV_BUS is not set
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_VIRTIO_CONSOLE is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_MWAVE is not set
-# CONFIG_DEVMEM is not set
-# CONFIG_NVRAM is not set
-# CONFIG_DEVPORT is not set
-CONFIG_HPET=y
-CONFIG_HPET_MMAP=y
-CONFIG_HPET_MMAP_DEFAULT=y
-# CONFIG_HANGCHECK_TIMER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-# CONFIG_XILLYBUS is not set
-# CONFIG_XILLYUSB is not set
-# end of Character devices
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-# CONFIG_ACPI_I2C_OPREGION is not set
-CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_COMPAT is not set
-# CONFIG_I2C_CHARDEV is not set
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=y
-CONFIG_I2C_ALGOBIT=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_AMD_MP2 is not set
-CONFIG_I2C_I801=y
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_ISMT is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_NVIDIA_GPU is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_ZHAOXIN is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_I2C_SCMI is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_DESIGNWARE_PCI is not set
-# CONFIG_I2C_EMEV2 is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_DIOLAN_U2C is not set
-# CONFIG_I2C_CP2615 is not set
-# CONFIG_I2C_PCI1XXXX is not set
-# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_MLXCPLD is not set
-# CONFIG_I2C_VIRTIO is not set
-# end of I2C Hardware Bus support
-
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-# CONFIG_I3C is not set
-# CONFIG_SPI is not set
-# CONFIG_SPMI is not set
-# CONFIG_HSI is not set
-# CONFIG_PPS is not set
-
-#
-# PTP clock support
-#
-# CONFIG_PTP_1588_CLOCK is not set
-CONFIG_PTP_1588_CLOCK_OPTIONAL=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-# end of PTP clock support
-
-# CONFIG_PINCTRL is not set
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_RESET is not set
-# CONFIG_POWER_SEQUENCING is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_POWER_SUPPLY_HWMON=y
-# CONFIG_IP5XXX_POWER is not set
-# CONFIG_TEST_POWER is not set
-# CONFIG_CHARGER_ADP5061 is not set
-# CONFIG_BATTERY_CW2015 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SAMSUNG_SDI is not set
-# CONFIG_BATTERY_SBS is not set
-# CONFIG_CHARGER_SBS is not set
-# CONFIG_BATTERY_BQ27XXX is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_MAX1720X is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-# CONFIG_CHARGER_LTC4162L is not set
-# CONFIG_CHARGER_MAX77976 is not set
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_BATTERY_GOLDFISH is not set
-# CONFIG_BATTERY_RT5033 is not set
-# CONFIG_CHARGER_BD99954 is not set
-# CONFIG_BATTERY_UG3105 is not set
-# CONFIG_FUEL_GAUGE_MM8013 is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM1177 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7410 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_AHT10 is not set
-# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
-# CONFIG_SENSORS_AS370 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set
-# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_K10TEMP is not set
-# CONFIG_SENSORS_FAM15H_POWER is not set
-CONFIG_SENSORS_APPLESMC=y
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_CHIPCAP2 is not set
-# CONFIG_SENSORS_CORSAIR_CPRO is not set
-# CONFIG_SENSORS_CORSAIR_PSU is not set
-# CONFIG_SENSORS_DRIVETEMP is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_DELL_SMM is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_FSCHMD is not set
-# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_G762 is not set
-# CONFIG_SENSORS_HIH6130 is not set
-# CONFIG_SENSORS_HS3001 is not set
-# CONFIG_SENSORS_I5500 is not set
-CONFIG_SENSORS_CORETEMP=y
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_POWERZ is not set
-# CONFIG_SENSORS_POWR1220 is not set
-# CONFIG_SENSORS_LENOVO_EC is not set
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LTC2945 is not set
-# CONFIG_SENSORS_LTC2947_I2C is not set
-# CONFIG_SENSORS_LTC2990 is not set
-# CONFIG_SENSORS_LTC2991 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4222 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4260 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LTC4282 is not set
-# CONFIG_SENSORS_MAX127 is not set
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX197 is not set
-# CONFIG_SENSORS_MAX31730 is not set
-# CONFIG_SENSORS_MAX31760 is not set
-# CONFIG_MAX31827 is not set
-# CONFIG_SENSORS_MAX6620 is not set
-# CONFIG_SENSORS_MAX6621 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_MAX6697 is not set
-# CONFIG_SENSORS_MAX31790 is not set
-# CONFIG_SENSORS_MC34VR500 is not set
-# CONFIG_SENSORS_MCP3021 is not set
-# CONFIG_SENSORS_TC654 is not set
-# CONFIG_SENSORS_TPS23861 is not set
-# CONFIG_SENSORS_MR75203 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LM95234 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_NCT6683 is not set
-# CONFIG_SENSORS_NCT6775 is not set
-# CONFIG_SENSORS_NCT6775_I2C is not set
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NPCM7XX is not set
-# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
-# CONFIG_SENSORS_NZXT_KRAKEN3 is not set
-# CONFIG_SENSORS_NZXT_SMART2 is not set
-# CONFIG_SENSORS_OCC_P8_I2C is not set
-# CONFIG_SENSORS_OXP is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_PT5161L is not set
-# CONFIG_SENSORS_SBTSI is not set
-# CONFIG_SENSORS_SBRMI is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SHT3x is not set
-# CONFIG_SENSORS_SHT4x is not set
-# CONFIG_SENSORS_SHTC1 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_EMC2305 is not set
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_STTS751 is not set
-# CONFIG_SENSORS_ADC128D818 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_INA209 is not set
-# CONFIG_SENSORS_INA2XX is not set
-# CONFIG_SENSORS_INA238 is not set
-# CONFIG_SENSORS_INA3221 is not set
-# CONFIG_SENSORS_SPD5118 is not set
-# CONFIG_SENSORS_TC74 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP103 is not set
-# CONFIG_SENSORS_TMP108 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_TMP464 is not set
-# CONFIG_SENSORS_TMP513 is not set
-# CONFIG_SENSORS_VIA_CPUTEMP is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 is not set
-# CONFIG_SENSORS_W83773G is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_XGENE is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_SENSORS_ACPI_POWER is not set
-# CONFIG_SENSORS_ATK0110 is not set
-# CONFIG_SENSORS_ASUS_WMI is not set
-# CONFIG_SENSORS_ASUS_EC is not set
-# CONFIG_SENSORS_HP_WMI is not set
-CONFIG_THERMAL=y
-CONFIG_THERMAL_NETLINK=y
-# CONFIG_THERMAL_STATISTICS is not set
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_HWMON=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
-CONFIG_THERMAL_GOV_STEP_WISE=y
-# CONFIG_THERMAL_GOV_BANG_BANG is not set
-CONFIG_THERMAL_GOV_USER_SPACE=y
-# CONFIG_THERMAL_EMULATION is not set
-
-#
-# Intel thermal drivers
-#
-CONFIG_INTEL_POWERCLAMP=y
-CONFIG_X86_THERMAL_VECTOR=y
-CONFIG_INTEL_TCC=y
-CONFIG_X86_PKG_TEMP_THERMAL=y
-# CONFIG_INTEL_SOC_DTS_THERMAL is not set
-
-#
-# ACPI INT340X thermal drivers
-#
-# CONFIG_INT340X_THERMAL is not set
-# end of ACPI INT340X thermal drivers
-
-CONFIG_INTEL_PCH_THERMAL=y
-CONFIG_INTEL_TCC_COOLING=y
-CONFIG_INTEL_HFI_THERMAL=y
-# end of Intel thermal drivers
-
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=y
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_PCI=y
-# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_AS3711 is not set
-# CONFIG_MFD_SMPRO is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_BD9571MWV is not set
-# CONFIG_MFD_AXP20X_I2C is not set
-# CONFIG_MFD_CS42L43_I2C is not set
-# CONFIG_MFD_MADERA is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_DA9052_I2C is not set
-# CONFIG_MFD_DA9055 is not set
-# CONFIG_MFD_DA9062 is not set
-# CONFIG_MFD_DA9063 is not set
-# CONFIG_MFD_DA9150 is not set
-# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-# CONFIG_MFD_MP2629 is not set
-# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
-CONFIG_LPC_ICH=y
-# CONFIG_LPC_SCH is not set
-# CONFIG_MFD_INTEL_LPSS_ACPI is not set
-# CONFIG_MFD_INTEL_LPSS_PCI is not set
-# CONFIG_MFD_INTEL_PMC_BXT is not set
-# CONFIG_MFD_IQS62X is not set
-# CONFIG_MFD_JANZ_CMODIO is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77541 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_MT6360 is not set
-# CONFIG_MFD_MT6370 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_MFD_VIPERBOARD is not set
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_SY7636A is not set
-# CONFIG_MFD_RDC321X is not set
-# CONFIG_MFD_RT4831 is not set
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RT5120 is not set
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SYSCON is not set
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_TI_LMU is not set
-# CONFIG_MFD_PALMAS is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TPS65090 is not set
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS6594_I2C is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TQMX86 is not set
-# CONFIG_MFD_VX855 is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_ATC260X_I2C is not set
-# CONFIG_MFD_CS40L50_I2C is not set
-# end of Multifunction device drivers
-
-# CONFIG_REGULATOR is not set
-# CONFIG_RC_CORE is not set
-
-#
-# CEC support
-#
-# CONFIG_MEDIA_CEC_SUPPORT is not set
-# end of CEC support
-
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-CONFIG_APERTURE_HELPERS=y
-CONFIG_SCREEN_INFO=y
-CONFIG_VIDEO=y
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_AGP is not set
-CONFIG_INTEL_GTT=y
-# CONFIG_VGA_SWITCHEROO is not set
-CONFIG_DRM=y
-CONFIG_DRM_MIPI_DSI=y
-# CONFIG_DRM_DEBUG_MM is not set
-CONFIG_DRM_KMS_HELPER=y
-# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
-# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
-CONFIG_DRM_DISPLAY_HELPER=y
-# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
-# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
-CONFIG_DRM_DISPLAY_DP_HELPER=y
-CONFIG_DRM_DISPLAY_HDCP_HELPER=y
-CONFIG_DRM_DISPLAY_HDMI_HELPER=y
-CONFIG_DRM_TTM=y
-CONFIG_DRM_BUDDY=y
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-# CONFIG_DRM_I2C_SIL164 is not set
-# CONFIG_DRM_I2C_NXP_TDA998X is not set
-# CONFIG_DRM_I2C_NXP_TDA9950 is not set
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-# end of ARM devices
-
-# CONFIG_DRM_RADEON is not set
-# CONFIG_DRM_AMDGPU is not set
-# CONFIG_DRM_NOUVEAU is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_PXP is not set
-
-#
-# drm/i915 Debugging
-#
-# CONFIG_DRM_I915_WERROR is not set
-# CONFIG_DRM_I915_REPLAY_GPU_HANGS_API is not set
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_SELFTEST is not set
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_WAKEREF is not set
-# end of drm/i915 Debugging
-
-#
-# drm/i915 Profile Guided Optimisation
-#
-CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-# end of drm/i915 Profile Guided Optimisation
-
-# CONFIG_DRM_VGEM is not set
-# CONFIG_DRM_VKMS is not set
-# CONFIG_DRM_GMA500 is not set
-# CONFIG_DRM_UDL is not set
-# CONFIG_DRM_AST is not set
-# CONFIG_DRM_MGAG200 is not set
-# CONFIG_DRM_QXL is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_ANALOGIX_ANX78XX is not set
-# end of Display Interface Bridges
-
-# CONFIG_DRM_ETNAVIV is not set
-# CONFIG_DRM_BOCHS is not set
-# CONFIG_DRM_CIRRUS_QEMU is not set
-# CONFIG_DRM_GM12U320 is not set
-# CONFIG_DRM_SIMPLEDRM is not set
-# CONFIG_DRM_VBOXVIDEO is not set
-# CONFIG_DRM_GUD is not set
-# CONFIG_DRM_SSD130X is not set
-# CONFIG_DRM_WERROR is not set
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB=y
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ARC is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_VGA16 is not set
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_VESA is not set
-CONFIG_FB_EFI=y
-# CONFIG_FB_N411 is not set
-# CONFIG_FB_HGA is not set
-# CONFIG_FB_OPENCORES is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_I740 is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_S3 is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_VT8623 is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-# CONFIG_FB_CARMINE is not set
-# CONFIG_FB_SMSCUFX is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-# CONFIG_FB_SIMPLE is not set
-# CONFIG_FB_SM712 is not set
-CONFIG_FB_CORE=y
-CONFIG_FB_NOTIFY=y
-# CONFIG_FIRMWARE_EDID is not set
-CONFIG_FB_DEVICE=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYSMEM_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_IOMEM_FOPS=y
-CONFIG_FB_IOMEM_HELPERS=y
-CONFIG_FB_SYSMEM_HELPERS=y
-CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_KTD2801 is not set
-# CONFIG_BACKLIGHT_KTZ8866 is not set
-CONFIG_BACKLIGHT_APPLE=y
-# CONFIG_BACKLIGHT_QCOM_WLED is not set
-# CONFIG_BACKLIGHT_SAHARA is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3509 is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-# end of Backlight & LCD device support
-
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-# CONFIG_DRM_ACCEL is not set
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-# CONFIG_SND_OSSEMUL is not set
-# CONFIG_SND_PCM_TIMER is not set
-CONFIG_SND_HRTIMER=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_SND_PROC_FS=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-CONFIG_SND_CTL_FAST_LOOKUP=y
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_CTL_INPUT_VALIDATION=y
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_SEQUENCER is not set
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_PCI=y
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ASIHPI is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AW2 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_OXYGEN is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CTXFI is not set
-# CONFIG_SND_DARLA20 is not set
-# CONFIG_SND_GINA20 is not set
-# CONFIG_SND_LAYLA20 is not set
-# CONFIG_SND_DARLA24 is not set
-# CONFIG_SND_GINA24 is not set
-# CONFIG_SND_LAYLA24 is not set
-# CONFIG_SND_MONA is not set
-# CONFIG_SND_MIA is not set
-# CONFIG_SND_ECHO3G is not set
-# CONFIG_SND_INDIGO is not set
-# CONFIG_SND_INDIGOIO is not set
-# CONFIG_SND_INDIGODJ is not set
-# CONFIG_SND_INDIGOIOX is not set
-# CONFIG_SND_INDIGODJX is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_LOLA is not set
-# CONFIG_SND_LX6464ES is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_PCXHR is not set
-# CONFIG_SND_RIPTIDE is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_SE6X is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=y
-CONFIG_SND_HDA_INTEL=y
-# CONFIG_SND_HDA_HWDEP is not set
-CONFIG_SND_HDA_RECONFIG=y
-# CONFIG_SND_HDA_INPUT_BEEP is not set
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-# CONFIG_SND_HDA_CODEC_REALTEK is not set
-# CONFIG_SND_HDA_CODEC_ANALOG is not set
-# CONFIG_SND_HDA_CODEC_SIGMATEL is not set
-# CONFIG_SND_HDA_CODEC_VIA is not set
-CONFIG_SND_HDA_CODEC_HDMI=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-# CONFIG_SND_HDA_CODEC_CS8409 is not set
-# CONFIG_SND_HDA_CODEC_CONEXANT is not set
-# CONFIG_SND_HDA_CODEC_SENARYTECH is not set
-# CONFIG_SND_HDA_CODEC_CA0110 is not set
-# CONFIG_SND_HDA_CODEC_CA0132 is not set
-# CONFIG_SND_HDA_CODEC_CMEDIA is not set
-# CONFIG_SND_HDA_CODEC_SI3054 is not set
-CONFIG_SND_HDA_GENERIC=y
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set
-# CONFIG_SND_HDA_CTL_DEV_ID is not set
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_PREALLOC_SIZE=0
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=y
-CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
-# CONFIG_SND_USB is not set
-# CONFIG_SND_SOC is not set
-# CONFIG_SND_X86 is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_BATTERY_STRENGTH is not set
-CONFIG_HIDRAW=y
-CONFIG_UHID=y
-CONFIG_HID_GENERIC=y
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACCUTOUCH is not set
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=y
-# CONFIG_HID_APPLEIR is not set
-# CONFIG_HID_ASUS is not set
-# CONFIG_HID_AUREAL is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_BETOP_FF is not set
-# CONFIG_HID_BIGBEN_FF is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CORSAIR is not set
-# CONFIG_HID_COUGAR is not set
-# CONFIG_HID_MACALLY is not set
-# CONFIG_HID_PRODIKEYS is not set
-# CONFIG_HID_CMEDIA is not set
-# CONFIG_HID_CREATIVE_SB0540 is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-# CONFIG_HID_ELAN is not set
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_ELO is not set
-# CONFIG_HID_EVISION is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_FT260 is not set
-# CONFIG_HID_GEMBIRD is not set
-# CONFIG_HID_GFRM is not set
-# CONFIG_HID_GLORIOUS is not set
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_GOOGLE_STADIA_FF is not set
-# CONFIG_HID_VIVALDI is not set
-# CONFIG_HID_GT683R is not set
-# CONFIG_HID_KEYTOUCH is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_VIEWSONIC is not set
-# CONFIG_HID_VRC2 is not set
-# CONFIG_HID_XIAOMI is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_ICADE is not set
-# CONFIG_HID_ITE is not set
-# CONFIG_HID_JABRA is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LCPOWER is not set
-# CONFIG_HID_LED is not set
-# CONFIG_HID_LENOVO is not set
-# CONFIG_HID_LETSKETCH is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MAGICMOUSE is not set
-# CONFIG_HID_MALTRON is not set
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_MEGAWORLD_FF is not set
-# CONFIG_HID_REDRAGON is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_MULTITOUCH is not set
-# CONFIG_HID_NINTENDO is not set
-# CONFIG_HID_NTI is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_NVIDIA_SHIELD is not set
-# CONFIG_HID_ORTEK is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PENMOUNT is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_PICOLCD is not set
-# CONFIG_HID_PLANTRONICS is not set
-# CONFIG_HID_PXRC is not set
-# CONFIG_HID_RAZER is not set
-# CONFIG_HID_PRIMAX is not set
-# CONFIG_HID_RETRODE is not set
-# CONFIG_HID_ROCCAT is not set
-# CONFIG_HID_SAITEK is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SEMITEK is not set
-# CONFIG_HID_SIGMAMICRO is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SPEEDLINK is not set
-# CONFIG_HID_STEAM is not set
-# CONFIG_HID_STEELSERIES is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_RMI is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TIVO is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_TOPRE is not set
-# CONFIG_HID_THINGM is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_UDRAW_PS3 is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_WIIMOTE is not set
-# CONFIG_HID_WINWING is not set
-# CONFIG_HID_XINMO is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-# CONFIG_HID_SENSOR_HUB is not set
-# CONFIG_HID_ALPS is not set
-# CONFIG_HID_MCP2221 is not set
-# end of Special HID drivers
-
-#
-# HID-BPF support
-#
-# end of HID-BPF support
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-CONFIG_USB_HIDDEV=y
-# end of USB HID support
-
-# CONFIG_I2C_HID is not set
-
-#
-# Intel ISH HID support
-#
-# CONFIG_INTEL_ISH_HID is not set
-# end of Intel ISH HID support
-
-#
-# AMD SFH HID Support
-#
-# CONFIG_AMD_SFH_HID is not set
-# end of AMD SFH HID Support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-# CONFIG_USB_ULPI_BUS is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_PCI=y
-# CONFIG_USB_PCI_AMD is not set
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_FEW_INIT_RETRIES is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_PRODUCTLIST is not set
-# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1
-# CONFIG_USB_MON is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=y
-# CONFIG_USB_XHCI_PCI_RENESAS is not set
-# CONFIG_USB_XHCI_PLATFORM is not set
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_PCI=y
-# CONFIG_USB_EHCI_FSL is not set
-# CONFIG_USB_EHCI_HCD_PLATFORM is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HCD_BCMA is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_REALTEK is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_STORAGE_ENE_UB6250 is not set
-# CONFIG_USB_UAS is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USBIP_CORE is not set
-
-#
-# USB dual-mode controller drivers
-#
-# CONFIG_USB_CDNS_SUPPORT is not set
-# CONFIG_USB_MUSB_HDRC is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_DWC2 is not set
-# CONFIG_USB_CHIPIDEA is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_APPLE_MFI_FASTCHARGE is not set
-# CONFIG_USB_LJCA is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_EHSET_TEST_FIXTURE is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
-# CONFIG_USB_EZUSB_FX2 is not set
-# CONFIG_USB_HUB_USB251XB is not set
-# CONFIG_USB_HSIC_USB3503 is not set
-# CONFIG_USB_HSIC_USB4604 is not set
-# CONFIG_USB_LINK_LAYER_TEST is not set
-
-#
-# USB Physical Layer drivers
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_USB_ISP1301 is not set
-# end of USB Physical Layer drivers
-
-# CONFIG_USB_GADGET is not set
-# CONFIG_TYPEC is not set
-# CONFIG_USB_ROLE_SWITCH is not set
-# CONFIG_MMC is not set
-# CONFIG_SCSI_UFSHCD is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-# CONFIG_LEDS_CLASS_FLASH is not set
-# CONFIG_LEDS_CLASS_MULTICOLOR is not set
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_APU is not set
-# CONFIG_LEDS_AW200XX is not set
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_LP3944 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
-# CONFIG_LEDS_PCA995X is not set
-# CONFIG_LEDS_BD2606MVV is not set
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_INTEL_SS4200 is not set
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_IS31FL319X is not set
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_MLXCPLD is not set
-# CONFIG_LEDS_MLXREG is not set
-# CONFIG_LEDS_USER is not set
-# CONFIG_LEDS_NIC78BX is not set
-
-#
-# Flash and Torch LED drivers
-#
-
-#
-# RGB LED drivers
-#
-
-#
-# LED Triggers
-#
-# CONFIG_LEDS_TRIGGERS is not set
-
-#
-# Simple LED drivers
-#
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_HCTOSYS is not set
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-# CONFIG_RTC_NVMEM is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_MAX31335 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8523 is not set
-# CONFIG_RTC_DRV_PCF85063 is not set
-# CONFIG_RTC_DRV_PCF85363 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_BQ32K is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8010 is not set
-# CONFIG_RTC_DRV_RX8111 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3028 is not set
-# CONFIG_RTC_DRV_RV3032 is not set
-# CONFIG_RTC_DRV_RV8803 is not set
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_PCF2127 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-# CONFIG_RTC_DRV_RX6110 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1685_FAMILY is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_DS2404 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_RTC_DRV_FTRTC010 is not set
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_GOLDFISH is not set
-# CONFIG_DMADEVICES is not set
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_MOVE_NOTIFY is not set
-# CONFIG_DMABUF_DEBUG is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# CONFIG_DMABUF_SYSFS_STATS is not set
-# end of DMABUF options
-
-# CONFIG_UIO is not set
-# CONFIG_VFIO is not set
-# CONFIG_VIRT_DRIVERS is not set
-# CONFIG_VIRTIO_MENU is not set
-# CONFIG_VDPA is not set
-# CONFIG_VHOST_MENU is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-# CONFIG_GREYBUS is not set
-# CONFIG_COMEDI is not set
-# CONFIG_STAGING is not set
-# CONFIG_GOLDFISH is not set
-# CONFIG_CHROME_PLATFORMS is not set
-# CONFIG_CZNIC_PLATFORMS is not set
-# CONFIG_MELLANOX_PLATFORM is not set
-# CONFIG_SURFACE_PLATFORMS is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACPI_WMI=y
-# CONFIG_WMI_BMOF is not set
-# CONFIG_HUAWEI_WMI is not set
-# CONFIG_MXM_WMI is not set
-# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set
-# CONFIG_XIAOMI_WMI is not set
-# CONFIG_GIGABYTE_WMI is not set
-# CONFIG_YOGABOOK is not set
-# CONFIG_ACERHDF is not set
-# CONFIG_ACER_WIRELESS is not set
-# CONFIG_ACER_WMI is not set
-# CONFIG_AMD_PMC is not set
-# CONFIG_AMD_HSMP is not set
-# CONFIG_AMD_WBRF is not set
-# CONFIG_ADV_SWBUTTON is not set
-# CONFIG_APPLE_GMUX is not set
-# CONFIG_ASUS_LAPTOP is not set
-# CONFIG_ASUS_WIRELESS is not set
-# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set
-# CONFIG_AMILO_RFKILL is not set
-# CONFIG_FUJITSU_LAPTOP is not set
-# CONFIG_FUJITSU_TABLET is not set
-# CONFIG_GPD_POCKET_FAN is not set
-# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
-# CONFIG_WIRELESS_HOTKEY is not set
-# CONFIG_IBM_RTL is not set
-# CONFIG_IDEAPAD_LAPTOP is not set
-# CONFIG_SENSORS_HDAPS is not set
-# CONFIG_THINKPAD_ACPI is not set
-# CONFIG_THINKPAD_LMI is not set
-# CONFIG_INTEL_ATOMISP2_PM is not set
-# CONFIG_INTEL_IFS is not set
-# CONFIG_INTEL_SAR_INT1092 is not set
-
-#
-# Intel Speed Select Technology interface support
-#
-# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set
-# end of Intel Speed Select Technology interface support
-
-# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
-# CONFIG_INTEL_WMI_THUNDERBOLT is not set
-
-#
-# Intel Uncore Frequency Control
-#
-# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
-# end of Intel Uncore Frequency Control
-
-# CONFIG_INTEL_HID_EVENT is not set
-# CONFIG_INTEL_VBTN is not set
-# CONFIG_INTEL_OAKTRAIL is not set
-# CONFIG_INTEL_PUNIT_IPC is not set
-# CONFIG_INTEL_RST is not set
-# CONFIG_INTEL_SMARTCONNECT is not set
-# CONFIG_INTEL_TURBO_MAX_3 is not set
-# CONFIG_INTEL_VSEC is not set
-# CONFIG_ACPI_QUICKSTART is not set
-# CONFIG_MSI_EC is not set
-# CONFIG_MSI_LAPTOP is not set
-# CONFIG_MSI_WMI is not set
-# CONFIG_MSI_WMI_PLATFORM is not set
-# CONFIG_SAMSUNG_LAPTOP is not set
-# CONFIG_SAMSUNG_Q10 is not set
-# CONFIG_TOSHIBA_BT_RFKILL is not set
-# CONFIG_TOSHIBA_HAPS is not set
-# CONFIG_TOSHIBA_WMI is not set
-# CONFIG_ACPI_CMPC is not set
-# CONFIG_COMPAL_LAPTOP is not set
-# CONFIG_LG_LAPTOP is not set
-# CONFIG_PANASONIC_LAPTOP is not set
-# CONFIG_SONY_LAPTOP is not set
-# CONFIG_SYSTEM76_ACPI is not set
-# CONFIG_TOPSTAR_LAPTOP is not set
-# CONFIG_MLX_PLATFORM is not set
-# CONFIG_INSPUR_PLATFORM_PROFILE is not set
-# CONFIG_LENOVO_WMI_CAMERA is not set
-# CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_SCU_PCI is not set
-# CONFIG_INTEL_SCU_PLATFORM is not set
-# CONFIG_SIEMENS_SIMATIC_IPC is not set
-# CONFIG_WINMATE_FM07_KEYS is not set
-CONFIG_P2SB=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-# CONFIG_COMMON_CLK_MAX9485 is not set
-# CONFIG_COMMON_CLK_SI5341 is not set
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI544 is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-# CONFIG_XILINX_VCU is not set
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKEVT_I8253=y
-CONFIG_CLKBLD_I8253=y
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-CONFIG_PCC=y
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
-CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_IOMMU_DMA=y
-# CONFIG_AMD_IOMMU is not set
-CONFIG_DMAR_TABLE=y
-CONFIG_INTEL_IOMMU=y
-# CONFIG_INTEL_IOMMU_SVM is not set
-# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_INTEL_IOMMU_FLOPPY_WA=y
-CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
-CONFIG_INTEL_IOMMU_PERF_EVENTS=y
-# CONFIG_IOMMUFD is not set
-# CONFIG_IRQ_REMAP is not set
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
-# CONFIG_RPMSG_VIRTIO is not set
-# end of Rpmsg drivers
-
-# CONFIG_SOUNDWIRE is not set
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-# end of Amlogic SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# fujitsu SoC drivers
-#
-# end of fujitsu SoC drivers
-
-#
-# i.MX SoC drivers
-#
-# end of i.MX SoC drivers
-
-#
-# Enable LiteX SoC Builder specific drivers
-#
-# end of Enable LiteX SoC Builder specific drivers
-
-# CONFIG_WPCM450_SOC is not set
-
-#
-# Qualcomm SoC drivers
-#
-# end of Qualcomm SoC drivers
-
-# CONFIG_SOC_TI is not set
-
-#
-# Xilinx SoC drivers
-#
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-#
-# PM Domains
-#
-
-#
-# Amlogic PM Domains
-#
-# end of Amlogic PM Domains
-
-#
-# Broadcom PM Domains
-#
-# end of Broadcom PM Domains
-
-#
-# i.MX PM Domains
-#
-# end of i.MX PM Domains
-
-#
-# Qualcomm PM Domains
-#
-# end of Qualcomm PM Domains
-# end of PM Domains
-
-# CONFIG_PM_DEVFREQ is not set
-# CONFIG_EXTCON is not set
-# CONFIG_MEMORY is not set
-# CONFIG_IIO is not set
-# CONFIG_NTB is not set
-# CONFIG_PWM is not set
-
-#
-# IRQ chip support
-#
-# CONFIG_LAN966X_OIC is not set
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-
-#
-# PHY Subsystem
-#
-# CONFIG_GENERIC_PHY is not set
-# CONFIG_USB_LGM_PHY is not set
-# CONFIG_PHY_CAN_TRANSCEIVER is not set
-
-#
-# PHY drivers for Broadcom platforms
-#
-# CONFIG_BCM_KONA_USB2_PHY is not set
-# end of PHY drivers for Broadcom platforms
-
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_INTEL_LGM_EMMC is not set
-# end of PHY Subsystem
-
-CONFIG_POWERCAP=y
-# CONFIG_INTEL_RAPL is not set
-CONFIG_IDLE_INJECT=y
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-# CONFIG_DWC_PCIE_PMU is not set
-# end of Performance monitor support
-
-CONFIG_RAS=y
-# CONFIG_USB4 is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID_BINDER_IPC is not set
-# end of Android
-
-# CONFIG_DAX is not set
-# CONFIG_NVMEM is not set
-
-#
-# HW tracing support
-#
-# CONFIG_STM is not set
-# CONFIG_INTEL_TH is not set
-# end of HW tracing support
-
-# CONFIG_FPGA is not set
-# CONFIG_TEE is not set
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-# CONFIG_INTERCONNECT is not set
-# CONFIG_COUNTER is not set
-# CONFIG_PECI is not set
-# CONFIG_HTE is not set
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_VALIDATE_FS_PARSER is not set
-CONFIG_FS_IOMAP=y
-CONFIG_FS_STACK=y
-CONFIG_BUFFER_HEAD=y
-CONFIG_LEGACY_DIRECT_IO=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=y
-# CONFIG_EXT4_FS_POSIX_ACL is not set
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-# CONFIG_F2FS_FS is not set
-# CONFIG_BCACHEFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-# CONFIG_EXPORTFS_BLOCK_OPS is not set
-CONFIG_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-# CONFIG_FS_VERITY is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-CONFIG_FUSE_FS=y
-# CONFIG_CUSE is not set
-# CONFIG_VIRTIO_FS is not set
-CONFIG_FUSE_PASSTHROUGH=y
-# CONFIG_OVERLAY_FS is not set
-
-#
-# Caches
-#
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/EXFAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-# CONFIG_MSDOS_FS is not set
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-# CONFIG_EXFAT_FS is not set
-# CONFIG_NTFS3_FS is not set
-# CONFIG_NTFS_FS is not set
-# end of DOS/FAT/EXFAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-# CONFIG_PROC_KCORE is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-# CONFIG_PROC_CHILDREN is not set
-CONFIG_PROC_PID_ARCH_STATUS=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_TMPFS_INODE64 is not set
-# CONFIG_TMPFS_QUOTA is not set
-# CONFIG_HUGETLBFS is not set
-CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_EFIVAR_FS=y
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ORANGEFS_FS is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX6FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
-# CONFIG_PSTORE_COMPRESS is not set
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-# CONFIG_PSTORE_RAM is not set
-# CONFIG_PSTORE_BLK is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_EROFS_FS is not set
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_MAC_ROMAN is not set
-# CONFIG_NLS_MAC_CELTIC is not set
-# CONFIG_NLS_MAC_CENTEURO is not set
-# CONFIG_NLS_MAC_CROATIAN is not set
-# CONFIG_NLS_MAC_CYRILLIC is not set
-# CONFIG_NLS_MAC_GAELIC is not set
-# CONFIG_NLS_MAC_GREEK is not set
-# CONFIG_NLS_MAC_ICELAND is not set
-# CONFIG_NLS_MAC_INUIT is not set
-# CONFIG_NLS_MAC_ROMANIAN is not set
-# CONFIG_NLS_MAC_TURKISH is not set
-CONFIG_NLS_UTF8=y
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_KEYS_REQUEST_CACHE is not set
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_TRUSTED_KEYS is not set
-# CONFIG_ENCRYPTED_KEYS is not set
-CONFIG_KEY_DH_OPERATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_INTEL_TXT is not set
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_LSM="yama,loadpin,safesetid,integrity"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
-CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
-CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
-# CONFIG_INIT_STACK_NONE is not set
-# CONFIG_INIT_STACK_ALL_PATTERN is not set
-CONFIG_INIT_STACK_ALL_ZERO=y
-# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
-# CONFIG_ZERO_CALL_USED_REGS is not set
-# end of Memory initialization
-
-#
-# Hardening of kernel data structures
-#
-CONFIG_LIST_HARDENED=y
-CONFIG_BUG_ON_DATA_CORRUPTION=y
-# end of Hardening of kernel data structures
-
-CONFIG_CC_HAS_RANDSTRUCT=y
-CONFIG_RANDSTRUCT_NONE=y
-# CONFIG_RANDSTRUCT_FULL is not set
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_SIG=y
-CONFIG_CRYPTO_SIG2=y
-CONFIG_CRYPTO_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=y
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_NULL=y
-CONFIG_CRYPTO_NULL2=y
-# CONFIG_CRYPTO_PCRYPT is not set
-CONFIG_CRYPTO_CRYPTD=y
-CONFIG_CRYPTO_AUTHENC=y
-# CONFIG_CRYPTO_TEST is not set
-CONFIG_CRYPTO_SIMD=y
-# end of Crypto core or helper
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
-CONFIG_CRYPTO_ECC=y
-CONFIG_CRYPTO_ECDH=y
-# CONFIG_CRYPTO_ECDSA is not set
-# CONFIG_CRYPTO_ECRDSA is not set
-# CONFIG_CRYPTO_CURVE25519 is not set
-# end of Public-key cryptography
-
-#
-# Block ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-# CONFIG_CRYPTO_ARIA is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_SM4_GENERIC is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# end of Block ciphers
-
-#
-# Length-preserving ciphers and modes
-#
-# CONFIG_CRYPTO_ADIANTUM is not set
-# CONFIG_CRYPTO_CHACHA20 is not set
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=y
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-# CONFIG_CRYPTO_HCTR2 is not set
-# CONFIG_CRYPTO_KEYWRAP is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-# end of Length-preserving ciphers and modes
-
-#
-# AEAD (authenticated encryption with associated data) ciphers
-#
-# CONFIG_CRYPTO_AEGIS128 is not set
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_CCM=y
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_GENIV=y
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_ECHAINIV=y
-# CONFIG_CRYPTO_ESSIV is not set
-# end of AEAD (authenticated encryption with associated data) ciphers
-
-#
-# Hashes, digests, and MACs
-#
-# CONFIG_CRYPTO_BLAKE2B is not set
-CONFIG_CRYPTO_CMAC=y
-CONFIG_CRYPTO_GHASH=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_POLY1305 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=y
-# CONFIG_CRYPTO_SM3_GENERIC is not set
-# CONFIG_CRYPTO_STREEBOG is not set
-# CONFIG_CRYPTO_VMAC is not set
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_XXHASH is not set
-# end of Hashes, digests, and MACs
-
-#
-# CRCs (cyclic redundancy checks)
-#
-CONFIG_CRYPTO_CRC32C=y
-# CONFIG_CRYPTO_CRC32 is not set
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_CRC64_ROCKSOFT=y
-# end of CRCs (cyclic redundancy checks)
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_LZO is not set
-# CONFIG_CRYPTO_842 is not set
-# CONFIG_CRYPTO_LZ4 is not set
-# CONFIG_CRYPTO_LZ4HC is not set
-CONFIG_CRYPTO_ZSTD=y
-# end of Compression
-
-#
-# Random number generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DRBG_MENU=y
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=y
-CONFIG_CRYPTO_JITTERENTROPY=y
-CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
-CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
-CONFIG_CRYPTO_JITTERENTROPY_OSR=1
-CONFIG_CRYPTO_KDF800108_CTR=y
-# end of Random number generation
-
-#
-# Userspace interface
-#
-CONFIG_CRYPTO_USER_API=y
-CONFIG_CRYPTO_USER_API_HASH=y
-CONFIG_CRYPTO_USER_API_SKCIPHER=y
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
-# end of Userspace interface
-
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Accelerated Cryptographic Algorithms for CPU (x86)
-#
-# CONFIG_CRYPTO_CURVE25519_X86 is not set
-CONFIG_CRYPTO_AES_NI_INTEL=y
-# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set
-# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
-# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
-# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
-# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
-# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
-CONFIG_CRYPTO_DES3_EDE_X86_64=y
-# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
-# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
-# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
-# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set
-# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set
-# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
-# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set
-# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set
-# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set
-# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set
-# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set
-# CONFIG_CRYPTO_CHACHA20_X86_64 is not set
-# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set
-# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set
-# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set
-# CONFIG_CRYPTO_BLAKE2S_X86 is not set
-# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set
-# CONFIG_CRYPTO_POLY1305_X86_64 is not set
-CONFIG_CRYPTO_SHA1_SSSE3=y
-CONFIG_CRYPTO_SHA256_SSSE3=y
-CONFIG_CRYPTO_SHA512_SSSE3=y
-# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set
-# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
-# CONFIG_CRYPTO_CRC32C_INTEL is not set
-# CONFIG_CRYPTO_CRC32_PCLMUL is not set
-# end of Accelerated Cryptographic Algorithms for CPU (x86)
-
-# CONFIG_CRYPTO_HW is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_X509_CERTIFICATE_PARSER=y
-# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
-# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
-
-#
-# Certificates for signature checking
-#
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-#
-# Library routines
-#
-# CONFIG_PACKING is not set
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_CORDIC=y
-# CONFIG_PRIME_NUMBERS is not set
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_UTILS=y
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=y
-CONFIG_CRYPTO_LIB_GF128MUL=y
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
-# CONFIG_CRYPTO_LIB_CHACHA is not set
-# CONFIG_CRYPTO_LIB_CURVE25519 is not set
-CONFIG_CRYPTO_LIB_DES=y
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
-# CONFIG_CRYPTO_LIB_POLY1305 is not set
-# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
-CONFIG_CRYPTO_LIB_SHA1=y
-CONFIG_CRYPTO_LIB_SHA256=y
-# end of Crypto library routines
-
-# CONFIG_CRC_CCITT is not set
-CONFIG_CRC16=y
-# CONFIG_CRC_T10DIF is not set
-CONFIG_CRC64_ROCKSOFT=y
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-CONFIG_CRC64=y
-# CONFIG_CRC4 is not set
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_CRC8 is not set
-CONFIG_XXHASH=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZSTD_COMMON=y
-CONFIG_ZSTD_COMPRESS=y
-CONFIG_ZSTD_DECOMPRESS=y
-# CONFIG_XZ_DEC is not set
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_XARRAY_MULTI=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_DMA_OPS=y
-CONFIG_NEED_SG_DMA_FLAGS=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_SWIOTLB=y
-# CONFIG_SWIOTLB_DYNAMIC is not set
-CONFIG_DMA_NEED_SYNC=y
-# CONFIG_DMA_API_DEBUG is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_CLZ_TAB=y
-# CONFIG_IRQ_POLL is not set
-CONFIG_MPILIB=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_TIME_NS=y
-CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
-CONFIG_VDSO_GETRANDOM=y
-CONFIG_FONT_SUPPORT=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_SG_POOL=y
-CONFIG_ARCH_HAS_PMEM_API=y
-CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
-CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
-CONFIG_ARCH_HAS_COPY_MC=y
-CONFIG_ARCH_STACKWALK=y
-CONFIG_SBITMAP=y
-# CONFIG_LWQ_TEST is not set
-# end of Library routines
-
-CONFIG_FIRMWARE_TABLE=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-# CONFIG_STACKTRACE_BUILD_ID is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DYNAMIC_DEBUG_CORE is not set
-# CONFIG_SYMBOLIC_ERRNAME is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# end of printk and dmesg options
-
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_MISC is not set
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_AS_HAS_NON_CONST_ULEB128=y
-CONFIG_DEBUG_INFO_NONE=y
-# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
-# CONFIG_DEBUG_INFO_DWARF4 is not set
-# CONFIG_DEBUG_INFO_DWARF5 is not set
-CONFIG_FRAME_WARN=2048
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_HEADERS_INSTALL is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
-CONFIG_OBJTOOL=y
-# CONFIG_VMLINUX_MAP is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_DEBUG_FS is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARCH_HAS_UBSAN=y
-# CONFIG_UBSAN is not set
-CONFIG_HAVE_ARCH_KCSAN=y
-CONFIG_HAVE_KCSAN_COMPILER=y
-# CONFIG_KCSAN is not set
-# end of Generic Kernel Debugging Instruments
-
-#
-# Networking Debugging
-#
-# CONFIG_NET_DEV_REFCNT_TRACKER is not set
-# CONFIG_NET_NS_REFCNT_TRACKER is not set
-# CONFIG_DEBUG_NET is not set
-# end of Networking Debugging
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_PAGE_OWNER is not set
-# CONFIG_PAGE_TABLE_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_ARCH_HAS_DEBUG_WX=y
-CONFIG_DEBUG_WX=y
-CONFIG_GENERIC_PTDUMP=y
-CONFIG_PTDUMP_CORE=y
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_PER_VMA_LOCK_STATS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_SCHED_STACK_END_CHECK is not set
-CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_VM_PGTABLE is not set
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-# CONFIG_DEBUG_VIRTUAL is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
-# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set
-# CONFIG_MEM_ALLOC_PROFILING is not set
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_CC_HAS_KASAN_SW_TAGS=y
-CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
-# CONFIG_KASAN is not set
-CONFIG_HAVE_ARCH_KFENCE=y
-# CONFIG_KFENCE is not set
-CONFIG_HAVE_ARCH_KMSAN=y
-CONFIG_HAVE_KMSAN_COMPILER=y
-# CONFIG_KMSAN is not set
-# end of Memory Debugging
-
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Oops, Lockups and Hangs
-#
-CONFIG_PANIC_ON_OOPS=y
-CONFIG_PANIC_ON_OOPS_VALUE=1
-CONFIG_PANIC_TIMEOUT=-1
-# CONFIG_SOFTLOCKUP_DETECTOR is not set
-CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_WQ_WATCHDOG is not set
-# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-# CONFIG_SCHEDSTATS is not set
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-# CONFIG_DEBUG_PREEMPT is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-# CONFIG_WW_MUTEX_SELFTEST is not set
-# CONFIG_SCF_TORTURE_TEST is not set
-# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_NMI_CHECK_CPU is not set
-# CONFIG_DEBUG_IRQFLAGS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-
-#
-# Debug kernel data structures
-#
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_MAPLE_TREE is not set
-# end of Debug kernel data structures
-
-#
-# RCU Debugging
-#
-# CONFIG_RCU_SCALE_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_REF_SCALE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=21
-CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
-# CONFIG_RCU_CPU_STALL_CPUTIME is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_RETHOOK=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_FENTRY=y
-CONFIG_HAVE_OBJTOOL_MCOUNT=y
-CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
-CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-# CONFIG_STRICT_DEVMEM is not set
-
-#
-# x86 Debugging
-#
-CONFIG_X86_VERBOSE_BOOTUP=y
-# CONFIG_EARLY_PRINTK is not set
-# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_DEBUG_TLBFLUSH is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-# CONFIG_X86_DECODER_SELFTEST is not set
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-# CONFIG_CPA_DEBUG is not set
-# CONFIG_DEBUG_ENTRY is not set
-# CONFIG_DEBUG_NMI_SELFTEST is not set
-# CONFIG_X86_DEBUG_FPU is not set
-# CONFIG_PUNIT_ATOM_DEBUG is not set
-CONFIG_UNWINDER_ORC=y
-# CONFIG_UNWINDER_FRAME_POINTER is not set
-# CONFIG_UNWINDER_GUESS is not set
-# end of x86 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-# CONFIG_NOTIFIER_ERROR_INJECTION is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-# CONFIG_RUNTIME_TESTING_MENU is not set
-CONFIG_ARCH_USE_MEMTEST=y
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-
-#
-# Rust hacking
-#
-# end of Rust hacking
-# end of Kernel hacking
-
-#
-# Gentoo Linux
-#
-CONFIG_GENTOO_LINUX=y
-CONFIG_GENTOO_LINUX_UDEV=y
-CONFIG_GENTOO_LINUX_PORTAGE=y
-
-#
-# Support for init systems, system and service managers
-#
-CONFIG_GENTOO_LINUX_INIT_SCRIPT=y
-# CONFIG_GENTOO_LINUX_INIT_SYSTEMD is not set
-# end of Support for init systems, system and service managers
-
-# CONFIG_GENTOO_KERNEL_SELF_PROTECTION is not set
-CONFIG_GENTOO_PRINT_FIRMWARE_INFO=y
-# end of Gentoo Linux
diff --git a/.config/keyd.conf b/.config/keyd.conf
index 41ef1698..be29b8c9 100644
--- a/.config/keyd.conf
+++ b/.config/keyd.conf
@@ -1,5 +1,5 @@
[ids]
-k:05ac:024c
+k:05ac:0291
[global]
chord_timeout = 40
diff --git a/.config/mako/config b/.config/mako/config
index d4b54d76..20de6331 100644
--- a/.config/mako/config
+++ b/.config/mako/config
@@ -1,4 +1,5 @@
margin=20
+border-size=3
border-radius=7
max-icon-size=48
text-color=#D8DEE9
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644
index 00000000..60c8a7a4
--- /dev/null
+++ b/.config/mimeapps.list
@@ -0,0 +1,20 @@
+[Default Applications]
+text/html=firefox.desktop
+x-scheme-handler/http=firefox.desktop
+x-scheme-handler/https=firefox.desktop
+x-scheme-handler/about=firefox.desktop
+x-scheme-handler/unknown=firefox.desktop
+x-scheme-handler/betterdiscord=discord.desktop
+x-scheme-handler/mailto=userapp-Thunderbird-BYRY32.desktop
+message/rfc822=userapp-Thunderbird-BYRY32.desktop
+x-scheme-handler/mid=userapp-Thunderbird-BYRY32.desktop
+x-scheme-handler/webcal=userapp-Thunderbird-Q37Z32.desktop
+text/calendar=userapp-Thunderbird-Q37Z32.desktop
+application/x-extension-ics=userapp-Thunderbird-Q37Z32.desktop
+x-scheme-handler/webcals=userapp-Thunderbird-Q37Z32.desktop
+
+[Added Associations]
+x-scheme-handler/mailto=userapp-Thunderbird-BYRY32.desktop;
+x-scheme-handler/mid=userapp-Thunderbird-BYRY32.desktop;
+x-scheme-handler/webcal=userapp-Thunderbird-Q37Z32.desktop;
+x-scheme-handler/webcals=userapp-Thunderbird-Q37Z32.desktop;
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 6a78ddf6..fda0e353 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -1,10 +1,10 @@
-vim.g.base46_cache = vim.fn.stdpath("data") .. "/nvchad/base46/"
+vim.g.base46_cache = vim.fn.stdpath("data") .. "/base46/"
vim.g.mapleader = " "
-- bootstrap lazy and all plugins
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
-if not vim.loop.fs_stat(lazypath) then
+if not vim.uv.fs_stat(lazypath) then
local repo = "https://github.com/folke/lazy.nvim.git"
vim.fn.system({ "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath })
end
@@ -20,18 +20,16 @@ require("lazy").setup({
lazy = false,
branch = "v2.5",
import = "nvchad.plugins",
- config = function()
- require("nvchad.options")
- end,
},
- { require("plugins") },
+ { import = "plugins" },
}, lazy_config)
-- load theme
dofile(vim.g.base46_cache .. "defaults")
dofile(vim.g.base46_cache .. "statusline")
+require("nvchad.options")
require("nvchad.autocmds")
vim.schedule(function()
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
deleted file mode 100644
index 22b963c0..00000000
--- a/.config/nvim/lazy-lock.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" },
- "NvChad": { "branch": "v2.5", "commit": "5faca055a826006ae0e51c14a362ad64c97a95ff" },
- "base46": { "branch": "v2.5", "commit": "b18a012f9ef6eb5a8d980fee81bfb0ce95b149dd" },
- "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
- "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
- "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
- "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
- "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
- "conform.nvim": { "branch": "master", "commit": "40d4e98fcc3e6f485f0e8924c63734bc7e305967" },
- "friendly-snippets": { "branch": "main", "commit": "00ba9dd3df89509f95437b8d595553707c46d5ea" },
- "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" },
- "indent-blankline.nvim": { "branch": "master", "commit": "3af6493bf69e4a857a8b1fab36f333629d413a18" },
- "lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" },
- "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
- "menu": { "branch": "main", "commit": "ea606f6ab2430db0aece8075e62c14132b815ae1" },
- "minty": { "branch": "main", "commit": "8809b2c7c2edbeb3fa9c3b05bd2e89934d54f526" },
- "nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
- "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
- "nvim-lspconfig": { "branch": "master", "commit": "dcf511d53fae9675c6fde4241d94b2daaa5e0cd5" },
- "nvim-tree.lua": { "branch": "master", "commit": "c9104a5d079db5a158c9562c54689df27d52dccc" },
- "nvim-treesitter": { "branch": "master", "commit": "4f04fb7027ce786ac4adfd1c629ca40aea96ffec" },
- "nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" },
- "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
- "telescope.nvim": { "branch": "master", "commit": "dc6fc321a5ba076697cca89c9d7ea43153276d81" },
- "ui": { "branch": "v3.0", "commit": "5fc2fa71c4f5ca04caa3b8fc0863c72599c0eb96" },
- "vimtex": { "branch": "master", "commit": "fcbaf66887bd19f5d973406848cf2a5ac46bd65e" },
- "volt": { "branch": "main", "commit": "43f72b49037c191eb3cfe26ba7a5574b4bfce226" },
- "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" }
-}
diff --git a/.config/nvim/lua/chadrc.lua b/.config/nvim/lua/chadrc.lua
index 5bb043eb..e65b336e 100644
--- a/.config/nvim/lua/chadrc.lua
+++ b/.config/nvim/lua/chadrc.lua
@@ -1,30 +1,15 @@
----@type ChadrcConfig
local M = {}
-M.ui = {
+M.base46 = {
theme = "onenord",
- theme_toggle = { "onenord", "onenord_light" },
- changed_themes = {
- onenord = {
- base_16 = {
- base00 = "#2E3440",
- },
- },
- },
- statusline = { theme = "vscode_colored" },
- tabufline = { lazyload = true },
- nvdash = { load_on_startup = true },
}
M.mason.pkgs = {
- "lua-language-server",
- "stylua",
- "html-lsp",
- "css-lsp",
- "prettier",
- "texlab",
"ruff",
"python-lsp-server",
+ "tinymist",
+ "typstyle",
+ "prettier",
}
return M
diff --git a/.config/nvim/lua/configs/conform.lua b/.config/nvim/lua/configs/conform.lua
index 80c68991..24342a6e 100644
--- a/.config/nvim/lua/configs/conform.lua
+++ b/.config/nvim/lua/configs/conform.lua
@@ -1,13 +1,11 @@
local options = {
formatters_by_ft = {
+ css = { "prettier" },
+ html = { "prettier" },
python = { "ruff_format" },
- rust = { "rustfmt" },
- lua = { "stylua" },
cpp = { "clang-format" },
c = { "clang-format" },
- css = { "prettier" },
- html = { "prettier" },
- scala = { "scalafmt" },
+ typst = { "typstyle" },
},
format_on_save = {
timeout_ms = 500,
@@ -15,4 +13,4 @@ local options = {
},
}
-require("conform").setup(options)
+return options
diff --git a/.config/nvim/lua/configs/lspconfig.lua b/.config/nvim/lua/configs/lspconfig.lua
index b5379bb6..b685abd9 100644
--- a/.config/nvim/lua/configs/lspconfig.lua
+++ b/.config/nvim/lua/configs/lspconfig.lua
@@ -1,14 +1,13 @@
-local on_attach = require("nvchad.configs.lspconfig").on_attach
-local on_init = require("nvchad.configs.lspconfig").on_init
-local capabilities = require("nvchad.configs.lspconfig").capabilities
+require("nvchad.configs.lspconfig").defaults()
local lspconfig = require("lspconfig")
-local servers = { "pylsp", "clangd", "cssls", "rust_analyzer", "texlab" }
+local servers = { "html", "cssls", "pylsp", "clangd", "tinymist" }
+local nvlsp = require("nvchad.configs.lspconfig")
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup({
- on_attach = on_attach,
- on_init = on_init,
- capabilities = capabilities,
+ on_attach = nvlsp.on_attach,
+ on_init = nvlsp.on_init,
+ capabilities = nvlsp.capabilities,
})
end
diff --git a/.config/nvim/lua/configs/vimtex.lua b/.config/nvim/lua/configs/vimtex.lua
deleted file mode 100644
index c25558d5..00000000
--- a/.config/nvim/lua/configs/vimtex.lua
+++ /dev/null
@@ -1,5 +0,0 @@
-vim.g.tex_flavor='latex'
-vim.g.vimtex_view_method='zathura'
-vim.g.vimtex_quickfix_mode=0
-vim.opt.conceallevel = 1
-vim.g.tex_conceal='abdmg'
diff --git a/.config/nvim/lua/mappings.lua b/.config/nvim/lua/mappings.lua
index 73fba0de..dcb3a2e3 100644
--- a/.config/nvim/lua/mappings.lua
+++ b/.config/nvim/lua/mappings.lua
@@ -3,3 +3,4 @@ require("nvchad.mappings")
local map = vim.keymap.set
map("n", ";", ":", { desc = "CMD enter command mode" })
+map("i", "jk", "<ESC>")
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins/init.lua
index ac64bcac..6a669117 100644
--- a/.config/nvim/lua/plugins.lua
+++ b/.config/nvim/lua/plugins/init.lua
@@ -2,14 +2,11 @@ return {
{
"stevearc/conform.nvim",
event = "BufWritePre",
- config = function()
- require("configs.conform")
- end,
+ opts = require("configs.conform"),
},
{
"neovim/nvim-lspconfig",
config = function()
- require("nvchad.configs.lspconfig").defaults()
require("configs.lspconfig")
end,
},
@@ -25,17 +22,7 @@ return {
"cpp",
"c",
"bash",
- "html",
- "markdown",
- "scala",
},
},
},
- {
- "lervag/vimtex",
- lazy = false,
- config = function()
- require("configs.vimtex")
- end,
- },
}
diff --git a/.config/pkgdev/pkgdev.conf b/.config/pkgdev/pkgdev.conf
deleted file mode 100644
index eae5bb98..00000000
--- a/.config/pkgdev/pkgdev.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[DEFAULT]
-commit.scan = true
-commit.signoff = true
-push.ask = true
diff --git a/.config/scripts/mute_mac_chime.sh b/.config/scripts/mute_mac_chime.sh
deleted file mode 100755
index a00c8e3e..00000000
--- a/.config/scripts/mute_mac_chime.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-# this needs to be ran as proper root (> su)
-
-# remove immutable flag
-chattr -i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
-
-# macos terminal uses BELL code (0x07) to audibly play system messages/warnings (such as the startup chime
-# that simply confirms POST was successful and lets everyone else in the room know as well) so set it to null
-printf "\x07\x00\x00\x00\x00" > /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
-
-# replace immutable flag
-chattr +i /sys/firmware/efi/efivars/SystemAudioVolume-7c436110-ab2a-4bbb-a880-fe41995c9f82
diff --git a/.config/scripts/power_menu.sh b/.config/scripts/power_menu.sh
deleted file mode 100755
index 5e76ee0a..00000000
--- a/.config/scripts/power_menu.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# call this script in button/power function of /etc/acpi/default.sh
-
-OPTIONS="\uf023 lock\n
- \uf186 suspend\n
- \uf2f5 logout\n
- \uf011 shutdown\n
- \uf2f1 reboot\n"
-
-SELECTED=$(echo -e $OPTIONS |
- wofi -H 260 -d -p "power menu:" |
- awk '{print tolower($2)}')
-
-case $SELECTED in
- lock)
- swaylock;;
- suspend)
- loginctl suspend;;
- logout)
- swaymsg exit;;
- shutdown)
- openrc-shutdown -p now;;
- reboot)
- reboot;;
-esac
diff --git a/.config/starship.toml b/.config/starship.toml
deleted file mode 100644
index 336fdc59..00000000
--- a/.config/starship.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-disabled = true
-[python]
-disabled = true
-[rust]
-disabled = true
-[vagrant]
-disabled = true
-[lua]
-disabled = true
-[nodejs]
-disabled = true
-[cmake]
-disabled = true
-[perl]
-disabled = true
-[c]
-disabled = true
-[rlang]
-disabled = true
-[scala]
-disabled = true
-[java]
-disabled = true
diff --git a/.config/sway/config b/.config/sway/config
index 60f2f518..2c74520d 100644
--- a/.config/sway/config
+++ b/.config/sway/config
@@ -14,33 +14,41 @@ set $down j
set $up k
set $right l
-output * bg /home/jack/.img/wallpaper/swirl.png fill
+output * bg $HOME/.img/wallpaper/swirl.png fill
-exec /usr/bin/mako
-exec /usr/bin/gentoo-pipewire-launcher &
-
-input "1452:588:bcm5974" {
+input "1452:657:bcm5974" {
dwt enabled
tap enabled
- natural_scroll disabled
+ natural_scroll disabled
middle_emulation enabled
}
+exec /usr/bin/pipewire &
+exec /usr/bin/pipewire-pulse &
+exec /usr/bin/wireplumber &
+exec /usr/bin/mako
+
+exec_always {
+ gsettings set $gnome-schema gtk-theme 'nordic'
+ gsettings set $gnome-schema cursor-theme 'nordic_cursors'
+ gsettings set $gnome-schema font-name 'JetBrainsMono Nerd Font 10'
+}
+
### key bindings
# applications
bindsym $mod+q kill
-bindsym $mod+t exec st
-bindsym $mod+f exec firefox-bin
-bindsym $mod+r exec wofi
+bindsym $mod+t exec alacritty
+bindsym $mod+f exec firefox
+bindsym $mod+r exec fuzzel
bindsym $mod+p exec grim -g "$(slurp)" - | wl-copy
bindsym $mod+Shift+p exec grim -g "$(slurp)"
bindsym $mod+Escape exec gtklock -d
# audio
-bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
-bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
-bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
@@ -51,11 +59,6 @@ bindsym XF86MonBrightnessUp exec brightnessctl -q set +10%
bindsym XF86KbdBrightnessDown exec brightnessctl -q --device='smc::kbd_backlight' set 10%-
bindsym XF86KbdBrightnessUp exec brightnessctl -q --device='smc::kbd_backlight' set +10%
-# warpd
-bindsym $mod+z exec warpd --hint
-bindsym $mod+x exec warpd --normal
-bindsym $mod+c exec warpd --grid
-
# reload configuration file
bindsym $mod+Shift+c reload
# exit wayland session
diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs
index 0e1c7c56..0539e5f5 100644
--- a/.config/user-dirs.dirs
+++ b/.config/user-dirs.dirs
@@ -2,3 +2,7 @@ XDG_DESKTOP_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_PICTURES_DIR="$HOME/Pictures"
+XDG_TEMPLATES_DIR="$HOME/"
+XDG_PUBLICSHARE_DIR="$HOME/"
+XDG_MUSIC_DIR="$HOME/"
+XDG_VIDEOS_DIR="$HOME/"
diff --git a/.config/warpd/config b/.config/warpd/config
deleted file mode 100644
index 48fb6433..00000000
--- a/.config/warpd/config
+++ /dev/null
@@ -1,6 +0,0 @@
-hint_font: JetBrainsMono Nerd Font
-cursor_color: #BF616A
-grid_color: #4C566A
-hint_bgcolor: #4C566A
-hint_fgcolor: #E5E9F0
-indicator_color: #A3BE8C
diff --git a/.config/waybar/config b/.config/waybar/config
deleted file mode 100644
index d8a7ac08..00000000
--- a/.config/waybar/config
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "battery": {
- "format": "{icon} {capacity}%",
- "format-charging": "\uf0e7 {capacity}%",
- "format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
- "states": {
- "critical": 10,
- "warning": 20
- }
- },
- "clock": {
- "format": "\uf017 {:%H:%M}",
- "tooltip-format": "<tt><small>{calendar}</small></tt>",
- "calendar": {
- "mode": "year",
- "mode-mon-col": 3,
- "weeks-pos": "right",
- "format": {
- "months": "<span color='#E5E9F0'><b>{}</b></span>",
- "days": "<span color='#D8DEE9'><b>{}</b></span>",
- "weeks": "<span color='#EBCB8B'><b>W{}</b></span>",
- "weekdays": "<span color='#A3BE8C'><b>{}</b></span>",
- "today": "<span color='#BF616A'><b><u>{}</u></b></span>"
- }
- }
- },
- "custom/date": {
- "exec": "~/.config/scripts/date.sh",
- "format": "\uf073 {}",
- "interval": 60
- },
- "network": {
- "format-wifi": "\uf1eb {ipaddr}",
- "format-disconnected": "\uf52f disconnected",
- "tooltip-format-wifi": "\uf1eb {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n\uf093 {bandwidthUpBits} \uf019 {bandwidthDownBits}",
- },
- "modules-center": ["sway/workspaces"],
- "modules-left": ["network", "battery", "temperature"],
- "modules-right": ["pulseaudio", "custom/date", "clock"],
- "position": "top",
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "format-icons": {
- "default": ["\uf027", "\uf028"],
- "headphone": "\uf025"
- },
- "format-muted": "\uf026 muted",
- "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
- },
- "sway/workspaces": {
- "all-outputs": true,
- "disable-scroll": true,
- "format": "{icon}",
- "format-icons": {
- "default": "\uf068"
- },
- "persistent-workspaces": {
- "1": [],
- "2": [],
- "3": [],
- "4": [],
- "5": [],
- "6": []
- }
- },
- "temperature": {
- "critical-threshold": 90,
- "format": "\uf2c8 {temperatureC}\u00b0C",
- "format-critical": "\uf071 {temperatureC}\u00b0C",
- "hwmon-path": "/sys/devices/platform/coretemp.0/hwmon/hwmon3/temp1_input",
- "interval": "5"
- }
-}
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
new file mode 100644
index 00000000..4a6f8f7c
--- /dev/null
+++ b/.config/waybar/config.jsonc
@@ -0,0 +1,75 @@
+{
+ "battery": {
+ "format": "{icon} {capacity}%",
+ "format-charging": "\uf0e7 {capacity}%",
+ "format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
+ "states": {
+ "critical": 10,
+ "warning": 20,
+ },
+ },
+ "clock": {
+ "format": "\uf017 {:%H:%M}",
+ "tooltip-format": "<tt><small>{calendar}</small></tt>",
+ "calendar": {
+ "mode": "year",
+ "mode-mon-col": 3,
+ "weeks-pos": "right",
+ "format": {
+ "months": "<span color='#E5E9F0'><b>{}</b></span>",
+ "days": "<span color='#D8DEE9'><b>{}</b></span>",
+ "weeks": "<span color='#EBCB8B'><b>W{}</b></span>",
+ "weekdays": "<span color='#A3BE8C'><b>{}</b></span>",
+ "today": "<span color='#BF616A'><b><u>{}</u></b></span>",
+ },
+ },
+ },
+ "custom/date": {
+ "exec": "$HOME/.config/waybar/date.sh",
+ "format": "\uf073 {}",
+ "interval": 60,
+ },
+ "network": {
+ "interface": "wlan0",
+ "family": "ipv4",
+ "format": "\uf1eb {ipaddr}",
+ "format-disconnected": "\uf52f disconnected",
+ "tooltip-format": "\uf1eb {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n\uf093 {bandwidthUpBits} \uf019 {bandwidthDownBits}",
+ },
+ "modules-center": ["sway/workspaces"],
+ "modules-left": ["network", "battery", "temperature"],
+ "modules-right": ["wireplumber", "custom/date", "clock"],
+ "position": "top",
+ "wireplumber": {
+ "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
+ "format": "{icon} {volume}%",
+ "format-muted": "\uf026 muted",
+ "format-icons": {
+ "default": ["\uf027", "\uf028"],
+ "headphone": "\uf025",
+ },
+ },
+ "sway/workspaces": {
+ "all-outputs": true,
+ "disable-scroll": true,
+ "format": "{icon}",
+ "format-icons": {
+ "default": "\uf068",
+ },
+ "persistent-workspaces": {
+ "1": [],
+ "2": [],
+ "3": [],
+ "4": [],
+ "5": [],
+ "6": [],
+ },
+ },
+ "temperature": {
+ "critical-threshold": 90,
+ "format": "\uf2c8 {temperatureC}\u00b0C",
+ "format-critical": "\uf071 {temperatureC}\u00b0C",
+ "hwmon-path": "/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp1_input",
+ "interval": "5",
+ },
+}
diff --git a/.config/scripts/date.sh b/.config/waybar/date.sh
index bfa6f09e..bfa6f09e 100755
--- a/.config/scripts/date.sh
+++ b/.config/waybar/date.sh
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index f634eea2..0ef54a47 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -21,9 +21,15 @@ tooltip * {
text-shadow: none;
}
-#workspaces button.focused { color: @base08; }
-#workspaces button.urgent { color: @base0B; }
-#workspaces button:hover { color: @base0F; }
+#workspaces button.focused {
+ color: @base08;
+}
+#workspaces button.urgent {
+ color: @base0B;
+}
+#workspaces button:hover {
+ color: @base0F;
+}
#workspaces button {
padding: 0px 5px;
color: @white1;
@@ -33,24 +39,45 @@ tooltip * {
#battery,
#temperature,
#workspaces,
-#pulseaudio,
+#wireplumber,
#custom-date,
-#clock
-{
+#clock {
margin: 5px 5px 0px 5px;
border-radius: 60px;
padding: 2px 8px;
color: @base02;
}
-#workspaces { background-color: @base01; }
-#clock { background-color: @base0E; }
-#custom-date { background-color: @base0D; }
-#network { background-color: @base0A; }
-#temperature { background-color: @base07; }
-#temperature.critical { background-color: @base0B; }
-#pulseaudio { background-color: @base0C; }
-#pulseaudio.muted { background-color: @base0B; }
-#battery { background-color: @base0F; }
-#battery.warning { color: @base0D; }
-#battery.critical { color: @base0B; }
+#workspaces {
+ background-color: @base00;
+}
+#clock {
+ background-color: @base0E;
+}
+#custom-date {
+ background-color: @base0D;
+}
+#network {
+ background-color: @base0A;
+}
+#temperature {
+ background-color: @base07;
+}
+#temperature.critical {
+ background-color: @base0B;
+}
+#wireplumber {
+ background-color: @base0C;
+}
+#wireplumber.muted {
+ background-color: @base0B;
+}
+#battery {
+ background-color: @base0F;
+}
+#battery.warning {
+ color: @base0D;
+}
+#battery.critical {
+ color: @base0B;
+}
diff --git a/.config/wofi/config b/.config/wofi/config
deleted file mode 100644
index ba9fbac5..00000000
--- a/.config/wofi/config
+++ /dev/null
@@ -1,5 +0,0 @@
-show=run
-width=500
-height=225
-prompt=search...
-content_halign=center
diff --git a/.config/wofi/style.css b/.config/wofi/style.css
deleted file mode 100644
index fed890ff..00000000
--- a/.config/wofi/style.css
+++ /dev/null
@@ -1,29 +0,0 @@
-window {
- border: 3px solid #81A1C1;
- background-color: #2E3440;
- color: #D8DEE9;
- font-family: "JetBrainsMono Nerd Font";
- font-size: 14px;
-}
-
-#input {
- margin: 5px;
- border: 2px solid #81A1C1;
- background-color: #81A1C1;
- border-radius: 15px;
-}
-
-#entry:selected {
- background-color: #B48EAD;
- border-radius: 15px;
-}
-
-#text:selected {
- background-color: #B48EAD;
- color: #2E3440;
- font-weight: normal;
-}
-
-#outer-box,
-#inner-box,
-#text { margin: 6px; }
diff --git a/.gdbinit b/.gdbinit
deleted file mode 100644
index 5e6c6cb8..00000000
--- a/.gdbinit
+++ /dev/null
@@ -1,2382 +0,0 @@
-python
-
-# GDB dashboard - Modular visual interface for GDB in Python.
-#
-# https://github.com/cyrus-and/gdb-dashboard
-
-# License ----------------------------------------------------------------------
-
-# Copyright (c) 2015-2024 Andrea Cardaci <[email protected]>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-# Imports ----------------------------------------------------------------------
-
-import ast
-import io
-import itertools
-import math
-import os
-import re
-import struct
-import traceback
-
-# Common attributes ------------------------------------------------------------
-
-class R():
-
- @staticmethod
- def attributes():
- return {
- # miscellaneous
- 'ansi': {
- 'doc': 'Control the ANSI output of the dashboard.',
- 'default': True,
- 'type': bool
- },
- 'syntax_highlighting': {
- 'doc': '''Pygments style to use for syntax highlighting.
-
-Using an empty string (or a name not in the list) disables this feature. The
-list of all the available styles can be obtained with (from GDB itself):
-
- python from pygments.styles import *
- python for style in get_all_styles(): print(style)''',
- 'default': 'monokai'
- },
- 'discard_scrollback': {
- 'doc': '''Discard the scrollback buffer at each redraw.
-
-This makes scrolling less confusing by discarding the previously printed
-dashboards but only works with certain terminals.''',
- 'default': True,
- 'type': bool
- },
- # values formatting
- 'compact_values': {
- 'doc': 'Display complex objects in a single line.',
- 'default': True,
- 'type': bool
- },
- 'max_value_length': {
- 'doc': 'Maximum length of displayed values before truncation.',
- 'default': 100,
- 'type': int
- },
- 'value_truncation_string': {
- 'doc': 'String to use to mark value truncation.',
- 'default': '…',
- },
- 'dereference': {
- 'doc': 'Annotate pointers with the pointed value.',
- 'default': True,
- 'type': bool
- },
- # prompt
- 'prompt': {
- 'doc': '''GDB prompt.
-
-This value is used as a Python format string where `{status}` is expanded with
-the substitution of either `prompt_running` or `prompt_not_running` attributes,
-according to the target program status. The resulting string must be a valid GDB
-prompt, see the command `python print(gdb.prompt.prompt_help())`''',
- 'default': '{status}'
- },
- 'prompt_running': {
- 'doc': '''Define the value of `{status}` when the target program is running.
-
-See the `prompt` attribute. This value is used as a Python format string where
-`{pid}` is expanded with the process identifier of the target program.''',
- 'default': r'\[\e[1;35m\]>>>\[\e[0m\]'
- },
- 'prompt_not_running': {
- 'doc': '''Define the value of `{status}` when the target program is running.
-
-See the `prompt` attribute. This value is used as a Python format string.''',
- 'default': r'\[\e[90m\]>>>\[\e[0m\]'
- },
- # divider
- 'omit_divider': {
- 'doc': 'Omit the divider in external outputs when only one module is displayed.',
- 'default': False,
- 'type': bool
- },
- 'divider_fill_char_primary': {
- 'doc': 'Filler around the label for primary dividers',
- 'default': '─'
- },
- 'divider_fill_char_secondary': {
- 'doc': 'Filler around the label for secondary dividers',
- 'default': '─'
- },
- 'divider_fill_style_primary': {
- 'doc': 'Style for `divider_fill_char_primary`',
- 'default': '36'
- },
- 'divider_fill_style_secondary': {
- 'doc': 'Style for `divider_fill_char_secondary`',
- 'default': '90'
- },
- 'divider_label_style_on_primary': {
- 'doc': 'Label style for non-empty primary dividers',
- 'default': '1;33'
- },
- 'divider_label_style_on_secondary': {
- 'doc': 'Label style for non-empty secondary dividers',
- 'default': '1;37'
- },
- 'divider_label_style_off_primary': {
- 'doc': 'Label style for empty primary dividers',
- 'default': '33'
- },
- 'divider_label_style_off_secondary': {
- 'doc': 'Label style for empty secondary dividers',
- 'default': '90'
- },
- 'divider_label_skip': {
- 'doc': 'Gap between the aligning border and the label.',
- 'default': 3,
- 'type': int,
- 'check': check_ge_zero
- },
- 'divider_label_margin': {
- 'doc': 'Number of spaces around the label.',
- 'default': 1,
- 'type': int,
- 'check': check_ge_zero
- },
- 'divider_label_align_right': {
- 'doc': 'Label alignment flag.',
- 'default': False,
- 'type': bool
- },
- # common styles
- 'style_selected_1': {
- 'default': '1;32'
- },
- 'style_selected_2': {
- 'default': '32'
- },
- 'style_low': {
- 'default': '90'
- },
- 'style_high': {
- 'default': '1;37'
- },
- 'style_error': {
- 'default': '31'
- },
- 'style_critical': {
- 'default': '0;41'
- }
- }
-
-# Common -----------------------------------------------------------------------
-
-class Beautifier():
-
- def __init__(self, hint, tab_size=4):
- self.tab_spaces = ' ' * tab_size if tab_size else None
- self.active = False
- if not R.ansi or not R.syntax_highlighting:
- return
- # attempt to set up Pygments
- try:
- import pygments
- from pygments.lexers import GasLexer, NasmLexer
- from pygments.formatters import Terminal256Formatter
- if hint == 'att':
- self.lexer = GasLexer()
- elif hint == 'intel':
- self.lexer = NasmLexer()
- else:
- from pygments.lexers import get_lexer_for_filename
- self.lexer = get_lexer_for_filename(hint, stripnl=False)
- self.formatter = Terminal256Formatter(style=R.syntax_highlighting)
- self.active = True
- except ImportError:
- # Pygments not available
- pass
- except pygments.util.ClassNotFound:
- # no lexer for this file or invalid style
- pass
-
- def process(self, source):
- # convert tabs if requested
- if self.tab_spaces:
- source = source.replace('\t', self.tab_spaces)
- if self.active:
- import pygments
- source = pygments.highlight(source, self.lexer, self.formatter)
- return source.rstrip('\n')
-
-def run(command):
- return gdb.execute(command, to_string=True)
-
-def ansi(string, style):
- if R.ansi:
- return '\x1b[{}m{}\x1b[0m'.format(style, string)
- else:
- return string
-
-def divider(width, label='', primary=False, active=True):
- if primary:
- divider_fill_style = R.divider_fill_style_primary
- divider_fill_char = R.divider_fill_char_primary
- divider_label_style_on = R.divider_label_style_on_primary
- divider_label_style_off = R.divider_label_style_off_primary
- else:
- divider_fill_style = R.divider_fill_style_secondary
- divider_fill_char = R.divider_fill_char_secondary
- divider_label_style_on = R.divider_label_style_on_secondary
- divider_label_style_off = R.divider_label_style_off_secondary
- if label:
- if active:
- divider_label_style = divider_label_style_on
- else:
- divider_label_style = divider_label_style_off
- skip = R.divider_label_skip
- margin = R.divider_label_margin
- before = ansi(divider_fill_char * skip, divider_fill_style)
- middle = ansi(label, divider_label_style)
- after_length = width - len(label) - skip - 2 * margin
- after = ansi(divider_fill_char * after_length, divider_fill_style)
- if R.divider_label_align_right:
- before, after = after, before
- return ''.join([before, ' ' * margin, middle, ' ' * margin, after])
- else:
- return ansi(divider_fill_char * width, divider_fill_style)
-
-def check_gt_zero(x):
- return x > 0
-
-def check_ge_zero(x):
- return x >= 0
-
-def to_unsigned(value, size=8):
- # values from GDB can be used transparently but are not suitable for
- # being printed as unsigned integers, so a conversion is needed
- mask = (2 ** (size * 8)) - 1
- return int(value.cast(gdb.Value(mask).type)) & mask
-
-def to_string(value):
- # attempt to convert an inferior value to string; OK when (Python 3 ||
- # simple ASCII); otherwise (Python 2.7 && not ASCII) encode the string as
- # utf8
- try:
- value_string = str(value)
- except UnicodeEncodeError:
- value_string = unicode(value).encode('utf8')
- except gdb.error as e:
- value_string = ansi(e, R.style_error)
- return value_string
-
-def format_address(address):
- pointer_size = gdb.parse_and_eval('$pc').type.sizeof
- return ('0x{{:0{}x}}').format(pointer_size * 2).format(address)
-
-def format_value(value, compact=None):
- # format references as referenced values
- # (TYPE_CODE_RVALUE_REF is not supported by old GDB)
- if value.type.code in (getattr(gdb, 'TYPE_CODE_REF', None),
- getattr(gdb, 'TYPE_CODE_RVALUE_REF', None)):
- try:
- value = value.referenced_value()
- except gdb.error as e:
- return ansi(e, R.style_error)
- # format the value
- out = to_string(value)
- # dereference up to the actual value if requested
- if R.dereference and value.type.code == gdb.TYPE_CODE_PTR:
- while value.type.code == gdb.TYPE_CODE_PTR:
- try:
- value = value.dereference()
- except gdb.error as e:
- break
- else:
- formatted = to_string(value)
- out += '{} {}'.format(ansi(':', R.style_low), formatted)
- # compact the value
- if compact is not None and compact or R.compact_values:
- out = re.sub(r'$\s*', '', out, flags=re.MULTILINE)
- # truncate the value
- if R.max_value_length > 0 and len(out) > R.max_value_length:
- out = out[0:R.max_value_length] + ansi(R.value_truncation_string, R.style_critical)
- return out
-
-# XXX parsing the output of `info breakpoints` is apparently the best option
-# right now, see: https://sourceware.org/bugzilla/show_bug.cgi?id=18385
-# XXX GDB version 7.11 (quire recent) does not have the pending field, so
-# fall back to the parsed information
-def fetch_breakpoints(watchpoints=False, pending=False):
- # fetch breakpoints addresses
- parsed_breakpoints = dict()
- catch_what_regex = re.compile(r'([^,]+".*")?[^,]*')
- for line in run('info breakpoints').split('\n'):
- # just keep numbered lines
- if not line or not line[0].isdigit():
- continue
- # extract breakpoint number, address and pending status
- fields = line.split()
- number = int(fields[0].split('.')[0])
- try:
- if len(fields) >= 5 and fields[1] == 'breakpoint':
- # multiple breakpoints have no address yet
- is_pending = fields[4] == '<PENDING>'
- is_multiple = fields[4] == '<MULTIPLE>'
- address = None if is_multiple or is_pending else int(fields[4], 16)
- is_enabled = fields[3] == 'y'
- address_info = address, is_enabled
- parsed_breakpoints[number] = [address_info], is_pending, ''
- elif len(fields) >= 5 and fields[1] == 'catchpoint':
- # only take before comma, but ignore commas in quotes
- what = catch_what_regex.search(' '.join(fields[4:]))[0].strip()
- parsed_breakpoints[number] = [], False, what
- elif len(fields) >= 3 and number in parsed_breakpoints:
- # add this address to the list of multiple locations
- address = int(fields[2], 16)
- is_enabled = fields[1] == 'y'
- address_info = address, is_enabled
- parsed_breakpoints[number][0].append(address_info)
- else:
- # watchpoints
- parsed_breakpoints[number] = [], False, ''
- except ValueError:
- pass
- # fetch breakpoints from the API and complement with address and source
- # information
- breakpoints = []
- # XXX in older versions gdb.breakpoints() returns None
- for gdb_breakpoint in gdb.breakpoints() or []:
- # skip internal breakpoints
- if gdb_breakpoint.number < 0:
- continue
- addresses, is_pending, what = parsed_breakpoints[gdb_breakpoint.number]
- is_pending = getattr(gdb_breakpoint, 'pending', is_pending)
- if not pending and is_pending:
- continue
- if not watchpoints and gdb_breakpoint.type != gdb.BP_BREAKPOINT:
- continue
- # add useful fields to the object
- breakpoint = dict()
- breakpoint['number'] = gdb_breakpoint.number
- breakpoint['type'] = gdb_breakpoint.type
- breakpoint['enabled'] = gdb_breakpoint.enabled
- breakpoint['location'] = gdb_breakpoint.location
- breakpoint['expression'] = gdb_breakpoint.expression
- breakpoint['condition'] = gdb_breakpoint.condition
- breakpoint['temporary'] = gdb_breakpoint.temporary
- breakpoint['hit_count'] = gdb_breakpoint.hit_count
- breakpoint['pending'] = is_pending
- breakpoint['what'] = what
- # add addresses and source information
- breakpoint['addresses'] = []
- for address, is_enabled in addresses:
- if address:
- sal = gdb.find_pc_line(address)
- breakpoint['addresses'].append({
- 'address': address,
- 'enabled': is_enabled,
- 'file_name': sal.symtab.filename if address and sal.symtab else None,
- 'file_line': sal.line if address else None
- })
- breakpoints.append(breakpoint)
- return breakpoints
-
-# Dashboard --------------------------------------------------------------------
-
-class Dashboard(gdb.Command):
- '''Redisplay the dashboard.'''
-
- def __init__(self):
- gdb.Command.__init__(self, 'dashboard', gdb.COMMAND_USER, gdb.COMPLETE_NONE, True)
- # setup subcommands
- Dashboard.ConfigurationCommand(self)
- Dashboard.OutputCommand(self)
- Dashboard.EnabledCommand(self)
- Dashboard.LayoutCommand(self)
- # setup style commands
- Dashboard.StyleCommand(self, 'dashboard', R, R.attributes())
- # main terminal
- self.output = None
- # used to inhibit redisplays during init parsing
- self.inhibited = None
- # enabled by default
- self.enabled = None
- self.enable()
-
- def on_continue(self, _):
- # try to contain the GDB messages in a specified area unless the
- # dashboard is printed to a separate file (dashboard -output ...)
- # or there are no modules to display in the main terminal
- enabled_modules = list(filter(lambda m: not m.output and m.enabled, self.modules))
- if self.is_running() and not self.output and len(enabled_modules) > 0:
- width, _ = Dashboard.get_term_size()
- gdb.write(Dashboard.clear_screen())
- gdb.write(divider(width, 'Output/messages', True))
- gdb.write('\n')
- gdb.flush()
-
- def on_stop(self, _):
- if self.is_running():
- self.render(clear_screen=False)
-
- def on_exit(self, _):
- if not self.is_running():
- return
- # collect all the outputs
- outputs = set()
- outputs.add(self.output)
- outputs.update(module.output for module in self.modules)
- outputs.remove(None)
- # reset the terminal status
- for output in outputs:
- try:
- with open(output, 'w') as fs:
- fs.write(Dashboard.reset_terminal())
- except:
- # skip cleanup for invalid outputs
- pass
-
- def enable(self):
- if self.enabled:
- return
- self.enabled = True
- # setup events
- gdb.events.cont.connect(self.on_continue)
- gdb.events.stop.connect(self.on_stop)
- gdb.events.exited.connect(self.on_exit)
-
- def disable(self):
- if not self.enabled:
- return
- self.enabled = False
- # setup events
- gdb.events.cont.disconnect(self.on_continue)
- gdb.events.stop.disconnect(self.on_stop)
- gdb.events.exited.disconnect(self.on_exit)
-
- def load_modules(self, modules):
- self.modules = []
- for module in modules:
- info = Dashboard.ModuleInfo(self, module)
- self.modules.append(info)
-
- def redisplay(self, style_changed=False):
- # manually redisplay the dashboard
- if self.is_running() and not self.inhibited:
- self.render(True, style_changed)
-
- def inferior_pid(self):
- return gdb.selected_inferior().pid
-
- def is_running(self):
- return self.inferior_pid() != 0
-
- def render(self, clear_screen, style_changed=False):
- # fetch module content and info
- all_disabled = True
- display_map = dict()
- for module in self.modules:
- # fall back to the global value
- output = module.output or self.output
- # add the instance or None if disabled
- if module.enabled:
- all_disabled = False
- instance = module.instance
- else:
- instance = None
- display_map.setdefault(output, []).append(instance)
- # process each display info
- for output, instances in display_map.items():
- try:
- buf = ''
- # use GDB stream by default
- fs = None
- if output:
- fs = open(output, 'w')
- fd = fs.fileno()
- fs.write(Dashboard.setup_terminal())
- else:
- fs = gdb
- fd = 1 # stdout
- # get the terminal size (default main terminal if either the
- # output is not a file)
- try:
- width, height = Dashboard.get_term_size(fd)
- except:
- width, height = Dashboard.get_term_size()
- # clear the "screen" if requested for the main terminal,
- # auxiliary terminals are always cleared
- if fs is not gdb or clear_screen:
- buf += Dashboard.clear_screen()
- # show message if all the modules in this output are disabled
- if not any(instances):
- # skip the main terminal
- if fs is gdb:
- continue
- # write the error message
- buf += divider(width, 'Warning', True)
- buf += '\n'
- if self.modules:
- buf += 'No module to display (see `dashboard -layout`)'
- else:
- buf += 'No module loaded'
- buf += '\n'
- fs.write(buf)
- continue
- # process all the modules for that output
- for n, instance in enumerate(instances, 1):
- # skip disabled modules
- if not instance:
- continue
- try:
- # ask the module to generate the content
- lines = instance.lines(width, height, style_changed)
- except Exception as e:
- # allow to continue on exceptions in modules
- stacktrace = traceback.format_exc().strip()
- lines = [ansi(stacktrace, R.style_error)]
- # create the divider if needed
- div = []
- if not R.omit_divider or len(instances) > 1 or fs is gdb:
- div = [divider(width, instance.label(), True, lines)]
- # write the data
- buf += '\n'.join(div + lines)
- # write the newline for all but last unless main terminal
- if n != len(instances) or fs is gdb:
- buf += '\n'
- # write the final newline and the terminator only if it is the
- # main terminal to allow the prompt to display correctly (unless
- # there are no modules to display)
- if fs is gdb and not all_disabled:
- buf += divider(width, primary=True)
- buf += '\n'
- fs.write(buf)
- except Exception as e:
- cause = traceback.format_exc().strip()
- Dashboard.err('Cannot write the dashboard\n{}'.format(cause))
- finally:
- # don't close gdb stream
- if fs and fs is not gdb:
- fs.close()
-
-# Utility methods --------------------------------------------------------------
-
- @staticmethod
- def start():
- # save the instance for customization convenience
- global dashboard
- # initialize the dashboard
- dashboard = Dashboard()
- Dashboard.set_custom_prompt(dashboard)
- # parse Python inits, load modules then parse GDB inits
- dashboard.inhibited = True
- Dashboard.parse_inits(True)
- modules = Dashboard.get_modules()
- dashboard.load_modules(modules)
- Dashboard.parse_inits(False)
- dashboard.inhibited = False
- # GDB overrides
- run('set pagination off')
- # display if possible (program running and not explicitly disabled by
- # some configuration file)
- if dashboard.enabled:
- dashboard.redisplay()
-
- @staticmethod
- def get_term_size(fd=1): # defaults to the main terminal
- try:
- if sys.platform == 'win32':
- import curses
- # XXX always neglects the fd parameter
- height, width = curses.initscr().getmaxyx()
- curses.endwin()
- return int(width), int(height)
- else:
- import termios
- import fcntl
- # first 2 shorts (4 byte) of struct winsize
- raw = fcntl.ioctl(fd, termios.TIOCGWINSZ, ' ' * 4)
- height, width = struct.unpack('hh', raw)
- return int(width), int(height)
- except (ImportError, OSError):
- # this happens when no curses library is found on windows or when
- # the terminal is not properly configured
- return 80, 24 # hardcoded fallback value
-
- @staticmethod
- def set_custom_prompt(dashboard):
- def custom_prompt(_):
- # render thread status indicator
- if dashboard.is_running():
- pid = dashboard.inferior_pid()
- status = R.prompt_running.format(pid=pid)
- else:
- status = R.prompt_not_running
- # build prompt
- prompt = R.prompt.format(status=status)
- prompt = gdb.prompt.substitute_prompt(prompt)
- return prompt + ' ' # force trailing space
- gdb.prompt_hook = custom_prompt
-
- @staticmethod
- def parse_inits(python):
- # paths where the .gdbinit.d directory might be
- search_paths = [
- '/etc/gdb-dashboard',
- '{}/gdb-dashboard'.format(os.getenv('XDG_CONFIG_HOME', '~/.config')),
- '~/Library/Preferences/gdb-dashboard',
- '~/.gdbinit.d'
- ]
- # expand the tilde and walk the paths
- inits_dirs = (os.walk(os.path.expanduser(path)) for path in search_paths)
- # process all the init files in order
- for root, dirs, files in itertools.chain.from_iterable(inits_dirs):
- dirs.sort()
- # skipping dotfiles
- for init in sorted(file for file in files if not file.startswith('.')):
- path = os.path.join(root, init)
- _, ext = os.path.splitext(path)
- # either load Python files or GDB
- if python == (ext == '.py'):
- gdb.execute('source ' + path)
-
- @staticmethod
- def get_modules():
- # scan the scope for modules
- modules = []
- for name in globals():
- obj = globals()[name]
- try:
- if issubclass(obj, Dashboard.Module):
- modules.append(obj)
- except TypeError:
- continue
- # sort modules alphabetically
- modules.sort(key=lambda x: x.__name__)
- return modules
-
- @staticmethod
- def create_command(name, invoke, doc, is_prefix, complete=None):
- if callable(complete):
- Class = type('', (gdb.Command,), {
- '__doc__': doc,
- 'invoke': invoke,
- 'complete': complete
- })
- Class(name, gdb.COMMAND_USER, prefix=is_prefix)
- else:
- Class = type('', (gdb.Command,), {
- '__doc__': doc,
- 'invoke': invoke
- })
- Class(name, gdb.COMMAND_USER, complete or gdb.COMPLETE_NONE, is_prefix)
-
- @staticmethod
- def err(string):
- print(ansi(string, R.style_error))
-
- @staticmethod
- def complete(word, candidates):
- return filter(lambda candidate: candidate.startswith(word), candidates)
-
- @staticmethod
- def parse_arg(arg):
- # encode unicode GDB command arguments as utf8 in Python 2.7
- if type(arg) is not str:
- arg = arg.encode('utf8')
- return arg
-
- @staticmethod
- def clear_screen():
- # ANSI: move the cursor to top-left corner and clear the screen
- # (optionally also clear the scrollback buffer if supported by the
- # terminal)
- return '\x1b[H\x1b[2J' + ('\x1b[3J' if R.discard_scrollback else '')
-
- @staticmethod
- def setup_terminal():
- # ANSI: enable alternative screen buffer and hide cursor
- return '\x1b[?1049h\x1b[?25l'
-
- @staticmethod
- def reset_terminal():
- # ANSI: disable alternative screen buffer and show cursor
- return '\x1b[?1049l\x1b[?25h'
-
-# Module descriptor ------------------------------------------------------------
-
- class ModuleInfo:
-
- def __init__(self, dashboard, module):
- self.name = module.__name__.lower() # from class to module name
- self.enabled = True
- self.output = None # value from the dashboard by default
- self.instance = module()
- self.doc = self.instance.__doc__ or '(no documentation)'
- self.prefix = 'dashboard {}'.format(self.name)
- # add GDB commands
- self.add_main_command(dashboard)
- self.add_output_command(dashboard)
- self.add_style_command(dashboard)
- self.add_subcommands(dashboard)
-
- def add_main_command(self, dashboard):
- module = self
- def invoke(self, arg, from_tty, info=self):
- arg = Dashboard.parse_arg(arg)
- if arg == '':
- info.enabled ^= True
- if dashboard.is_running():
- dashboard.redisplay()
- else:
- status = 'enabled' if info.enabled else 'disabled'
- print('{} module {}'.format(module.name, status))
- else:
- Dashboard.err('Wrong argument "{}"'.format(arg))
- doc_brief = 'Configure the {} module, with no arguments toggles its visibility.'.format(self.name)
- doc = '{}\n\n{}'.format(doc_brief, self.doc)
- Dashboard.create_command(self.prefix, invoke, doc, True)
-
- def add_output_command(self, dashboard):
- Dashboard.OutputCommand(dashboard, self.prefix, self)
-
- def add_style_command(self, dashboard):
- Dashboard.StyleCommand(dashboard, self.prefix, self.instance, self.instance.attributes())
-
- def add_subcommands(self, dashboard):
- for name, command in self.instance.commands().items():
- self.add_subcommand(dashboard, name, command)
-
- def add_subcommand(self, dashboard, name, command):
- action = command['action']
- doc = command['doc']
- complete = command.get('complete')
- def invoke(self, arg, from_tty, info=self):
- arg = Dashboard.parse_arg(arg)
- if info.enabled:
- try:
- action(arg)
- except Exception as e:
- Dashboard.err(e)
- return
- # don't catch redisplay errors
- dashboard.redisplay()
- else:
- Dashboard.err('Module disabled')
- prefix = '{} {}'.format(self.prefix, name)
- Dashboard.create_command(prefix, invoke, doc, False, complete)
-
-# GDB commands -----------------------------------------------------------------
-
- # handler for the `dashboard` command itself
- def invoke(self, arg, from_tty):
- arg = Dashboard.parse_arg(arg)
- # show messages for checks in redisplay
- if arg != '':
- Dashboard.err('Wrong argument "{}"'.format(arg))
- elif not self.is_running():
- Dashboard.err('Is the target program running?')
- else:
- self.redisplay()
-
- class ConfigurationCommand(gdb.Command):
- '''Dump or save the dashboard configuration.
-
-With an optional argument the configuration will be written to the specified
-file.
-
-This command allows to configure the dashboard live then make the changes
-permanent, for example:
-
- dashboard -configuration ~/.gdbinit.d/init
-
-At startup the `~/.gdbinit.d/` directory tree is walked and files are evaluated
-in alphabetical order but giving priority to Python files. This is where user
-configuration files must be placed.'''
-
- def __init__(self, dashboard):
- gdb.Command.__init__(self, 'dashboard -configuration',
- gdb.COMMAND_USER, gdb.COMPLETE_FILENAME)
- self.dashboard = dashboard
-
- def invoke(self, arg, from_tty):
- arg = Dashboard.parse_arg(arg)
- if arg:
- with open(os.path.expanduser(arg), 'w') as fs:
- fs.write('# auto generated by GDB dashboard\n\n')
- self.dump(fs)
- self.dump(gdb)
-
- def dump(self, fs):
- # dump layout
- self.dump_layout(fs)
- # dump styles
- self.dump_style(fs, R)
- for module in self.dashboard.modules:
- self.dump_style(fs, module.instance, module.prefix)
- # dump outputs
- self.dump_output(fs, self.dashboard)
- for module in self.dashboard.modules:
- self.dump_output(fs, module, module.prefix)
-
- def dump_layout(self, fs):
- layout = ['dashboard -layout']
- for module in self.dashboard.modules:
- mark = '' if module.enabled else '!'
- layout.append('{}{}'.format(mark, module.name))
- fs.write(' '.join(layout))
- fs.write('\n')
-
- def dump_style(self, fs, obj, prefix='dashboard'):
- attributes = getattr(obj, 'attributes', lambda: dict())()
- for name, attribute in attributes.items():
- real_name = attribute.get('name', name)
- default = attribute.get('default')
- value = getattr(obj, real_name)
- if value != default:
- fs.write('{} -style {} {!r}\n'.format(prefix, name, value))
-
- def dump_output(self, fs, obj, prefix='dashboard'):
- output = getattr(obj, 'output')
- if output:
- fs.write('{} -output {}\n'.format(prefix, output))
-
- class OutputCommand(gdb.Command):
- '''Set the output file/TTY for the whole dashboard or single modules.
-
-The dashboard/module will be written to the specified file, which will be
-created if it does not exist. If the specified file identifies a terminal then
-its geometry will be used, otherwise it falls back to the geometry of the main
-GDB terminal.
-
-When invoked without argument on the dashboard, the output/messages and modules
-which do not specify an output themselves will be printed on standard output
-(default).
-
-When invoked without argument on a module, it will be printed where the
-dashboard will be printed.
-
-An overview of all the outputs can be obtained with the `dashboard -layout`
-command.'''
-
- def __init__(self, dashboard, prefix=None, obj=None):
- if not prefix:
- prefix = 'dashboard'
- if not obj:
- obj = dashboard
- prefix = prefix + ' -output'
- gdb.Command.__init__(self, prefix, gdb.COMMAND_USER, gdb.COMPLETE_FILENAME)
- self.dashboard = dashboard
- self.obj = obj # None means the dashboard itself
-
- def invoke(self, arg, from_tty):
- arg = Dashboard.parse_arg(arg)
- # reset the terminal status
- if self.obj.output:
- try:
- with open(self.obj.output, 'w') as fs:
- fs.write(Dashboard.reset_terminal())
- except:
- # just do nothing if the file is not writable
- pass
- # set or open the output file
- if arg == '':
- self.obj.output = None
- else:
- self.obj.output = arg
- # redisplay the dashboard in the new output
- self.dashboard.redisplay()
-
- class EnabledCommand(gdb.Command):
- '''Enable or disable the dashboard.
-
-The current status is printed if no argument is present.'''
-
- def __init__(self, dashboard):
- gdb.Command.__init__(self, 'dashboard -enabled', gdb.COMMAND_USER)
- self.dashboard = dashboard
-
- def invoke(self, arg, from_tty):
- arg = Dashboard.parse_arg(arg)
- if arg == '':
- status = 'enabled' if self.dashboard.enabled else 'disabled'
- print('The dashboard is {}'.format(status))
- elif arg == 'on':
- self.dashboard.enable()
- self.dashboard.redisplay()
- elif arg == 'off':
- self.dashboard.disable()
- else:
- msg = 'Wrong argument "{}"; expecting "on" or "off"'
- Dashboard.err(msg.format(arg))
-
- def complete(self, text, word):
- return Dashboard.complete(word, ['on', 'off'])
-
- class LayoutCommand(gdb.Command):
- '''Set or show the dashboard layout.
-
-Accepts a space-separated list of directive. Each directive is in the form
-"[!]<module>". Modules in the list are placed in the dashboard in the same order
-as they appear and those prefixed by "!" are disabled by default. Omitted
-modules are hidden and placed at the bottom in alphabetical order.
-
-Without arguments the current layout is shown where the first line uses the same
-form expected by the input while the remaining depict the current status of
-output files.
-
-Passing `!` as a single argument resets the dashboard original layout.'''
-
- def __init__(self, dashboard):
- gdb.Command.__init__(self, 'dashboard -layout', gdb.COMMAND_USER)
- self.dashboard = dashboard
-
- def invoke(self, arg, from_tty):
- arg = Dashboard.parse_arg(arg)
- directives = str(arg).split()
- if directives:
- # apply the layout
- if directives == ['!']:
- self.reset()
- else:
- if not self.layout(directives):
- return # in case of errors
- # redisplay or otherwise notify
- if from_tty:
- if self.dashboard.is_running():
- self.dashboard.redisplay()
- else:
- self.show()
- else:
- self.show()
-
- def reset(self):
- modules = self.dashboard.modules
- modules.sort(key=lambda module: module.name)
- for module in modules:
- module.enabled = True
-
- def show(self):
- global_str = 'Dashboard'
- default = '(default TTY)'
- max_name_len = max(len(module.name) for module in self.dashboard.modules)
- max_name_len = max(max_name_len, len(global_str))
- fmt = '{{}}{{:{}s}}{{}}'.format(max_name_len + 2)
- print((fmt + '\n').format(' ', global_str, self.dashboard.output or default))
- for module in self.dashboard.modules:
- mark = ' ' if module.enabled else '!'
- style = R.style_high if module.enabled else R.style_low
- line = fmt.format(mark, module.name, module.output or default)
- print(ansi(line, style))
-
- def layout(self, directives):
- modules = self.dashboard.modules
- # parse and check directives
- parsed_directives = []
- selected_modules = set()
- for directive in directives:
- enabled = (directive[0] != '!')
- name = directive[not enabled:]
- if name in selected_modules:
- Dashboard.err('Module "{}" already set'.format(name))
- return False
- if next((False for module in modules if module.name == name), True):
- Dashboard.err('Cannot find module "{}"'.format(name))
- return False
- parsed_directives.append((name, enabled))
- selected_modules.add(name)
- # reset visibility
- for module in modules:
- module.enabled = False
- # move and enable the selected modules on top
- last = 0
- for name, enabled in parsed_directives:
- todo = enumerate(modules[last:], start=last)
- index = next(index for index, module in todo if name == module.name)
- modules[index].enabled = enabled
- modules.insert(last, modules.pop(index))
- last += 1
- return True
-
- def complete(self, text, word):
- all_modules = (m.name for m in self.dashboard.modules)
- return Dashboard.complete(word, all_modules)
-
- class StyleCommand(gdb.Command):
- '''Access the stylable attributes.
-
-Without arguments print all the stylable attributes.
-
-When only the name is specified show the current value.
-
-With name and value set the stylable attribute. Values are parsed as Python
-literals and converted to the proper type. '''
-
- def __init__(self, dashboard, prefix, obj, attributes):
- self.prefix = prefix + ' -style'
- gdb.Command.__init__(self, self.prefix, gdb.COMMAND_USER, gdb.COMPLETE_NONE, True)
- self.dashboard = dashboard
- self.obj = obj
- self.attributes = attributes
- self.add_styles()
-
- def add_styles(self):
- this = self
- for name, attribute in self.attributes.items():
- # fetch fields
- attr_name = attribute.get('name', name)
- attr_type = attribute.get('type', str)
- attr_check = attribute.get('check', lambda _: True)
- attr_default = attribute['default']
- # set the default value (coerced to the type)
- value = attr_type(attr_default)
- setattr(self.obj, attr_name, value)
- # create the command
- def invoke(self, arg, from_tty,
- name=name,
- attr_name=attr_name,
- attr_type=attr_type,
- attr_check=attr_check):
- new_value = Dashboard.parse_arg(arg)
- if new_value == '':
- # print the current value
- value = getattr(this.obj, attr_name)
- print('{} = {!r}'.format(name, value))
- else:
- try:
- # convert and check the new value
- parsed = ast.literal_eval(new_value)
- value = attr_type(parsed)
- if not attr_check(value):
- msg = 'Invalid value "{}" for "{}"'
- raise Exception(msg.format(new_value, name))
- except Exception as e:
- Dashboard.err(e)
- else:
- # set and redisplay
- setattr(this.obj, attr_name, value)
- this.dashboard.redisplay(True)
- prefix = self.prefix + ' ' + name
- doc = attribute.get('doc', 'This style is self-documenting')
- Dashboard.create_command(prefix, invoke, doc, False)
-
- def invoke(self, arg, from_tty):
- # an argument here means that the provided attribute is invalid
- if arg:
- Dashboard.err('Invalid argument "{}"'.format(arg))
- return
- # print all the pairs
- for name, attribute in self.attributes.items():
- attr_name = attribute.get('name', name)
- value = getattr(self.obj, attr_name)
- print('{} = {!r}'.format(name, value))
-
-# Base module ------------------------------------------------------------------
-
- # just a tag
- class Module():
- '''Base class for GDB dashboard modules.
-
- Modules are instantiated once at initialization time and kept during the
- whole the GDB session.
-
- The name of a module is automatically obtained by the class name.
-
- Optionally, a module may include a description which will appear in the
- GDB help system by specifying a Python docstring for the class. By
- convention the first line should contain a brief description.'''
-
- def label(self):
- '''Return the module label which will appear in the divider.'''
- pass
-
- def lines(self, term_width, term_height, style_changed):
- '''Return a list of strings which will form the module content.
-
- When a module is temporarily unable to produce its content, it
- should return an empty list; its divider will then use the styles
- with the "off" qualifier.
-
- term_width and term_height are the dimension of the terminal where
- this module will be displayed. If `style_changed` is `True` then
- some attributes have changed since the last time so the
- implementation may want to update its status.'''
- pass
-
- def attributes(self):
- '''Return the dictionary of available attributes.
-
- The key is the attribute name and the value is another dictionary
- with items:
-
- - `default` is the initial value for this attribute;
-
- - `doc` is the optional documentation of this attribute which will
- appear in the GDB help system;
-
- - `name` is the name of the attribute of the Python object (defaults
- to the key value);
-
- - `type` is the Python type of this attribute defaulting to the
- `str` type, it is used to coerce the value passed as an argument
- to the proper type, or raise an exception;
-
- - `check` is an optional control callback which accept the coerced
- value and returns `True` if the value satisfies the constraint and
- `False` otherwise.
-
- Those attributes can be accessed from the implementation using
- instance variables named `name`.'''
- return {}
-
- def commands(self):
- '''Return the dictionary of available commands.
-
- The key is the attribute name and the value is another dictionary
- with items:
-
- - `action` is the callback to be executed which accepts the raw
- input string from the GDB prompt, exceptions in these functions
- will be shown automatically to the user;
-
- - `doc` is the documentation of this command which will appear in
- the GDB help system;
-
- - `completion` is the optional completion policy, one of the
- `gdb.COMPLETE_*` constants defined in the GDB reference manual
- (https://sourceware.org/gdb/onlinedocs/gdb/Commands-In-Python.html).'''
- return {}
-
-# Default modules --------------------------------------------------------------
-
-class Source(Dashboard.Module):
- '''Show the program source code, if available.'''
-
- def __init__(self):
- self.file_name = None
- self.source_lines = []
- self.ts = None
- self.highlighted = False
- self.offset = 0
-
- def label(self):
- label = 'Source'
- if self.show_path and self.file_name:
- label += ': {}'.format(self.file_name)
- return label
-
- def lines(self, term_width, term_height, style_changed):
- # skip if the current thread is not stopped
- if not gdb.selected_thread().is_stopped():
- return []
- # try to fetch the current line (skip if no line information)
- sal = gdb.selected_frame().find_sal()
- current_line = sal.line
- if current_line == 0:
- self.file_name = None
- return []
- # try to lookup the source file
- candidates = [
- sal.symtab.fullname(),
- sal.symtab.filename,
- # XXX GDB also uses absolute filename but it is harder to implement
- # properly and IMHO useless
- os.path.basename(sal.symtab.filename)]
- for candidate in candidates:
- file_name = candidate
- ts = None
- try:
- ts = os.path.getmtime(file_name)
- break
- except:
- # try another or delay error check to open()
- continue
- # style changed, different file name or file modified in the meanwhile
- if style_changed or file_name != self.file_name or ts and ts > self.ts:
- try:
- # reload the source file if changed
- with io.open(file_name, errors='replace') as source_file:
- highlighter = Beautifier(file_name, self.tab_size)
- self.highlighted = highlighter.active
- source = highlighter.process(source_file.read())
- self.source_lines = source.split('\n')
- # store file name and timestamp only if success to have
- # persistent errors
- self.file_name = file_name
- self.ts = ts
- except IOError as e:
- msg = 'Cannot display "{}"'.format(file_name)
- return [ansi(msg, R.style_error)]
- # compute the line range
- height = self.height or (term_height - 1)
- start = current_line - 1 - int(height / 2) + self.offset
- end = start + height
- # extra at start
- extra_start = 0
- if start < 0:
- extra_start = min(-start, height)
- start = 0
- # extra at end
- extra_end = 0
- if end > len(self.source_lines):
- extra_end = min(end - len(self.source_lines), height)
- end = len(self.source_lines)
- else:
- end = max(end, 0)
- # return the source code listing
- breakpoints = fetch_breakpoints()
- out = []
- number_format = '{{:>{}}}'.format(len(str(end)))
- for number, line in enumerate(self.source_lines[start:end], start + 1):
- # properly handle UTF-8 source files
- line = to_string(line)
- if int(number) == current_line:
- # the current line has a different style without ANSI
- if R.ansi:
- if self.highlighted and not self.highlight_line:
- line_format = '{}' + ansi(number_format, R.style_selected_1) + ' {}'
- else:
- line_format = '{}' + ansi(number_format + ' {}', R.style_selected_1)
- else:
- # just show a plain text indicator
- line_format = '{}' + number_format + '> {}'
- else:
- line_format = '{}' + ansi(number_format, R.style_low) + ' {}'
- # check for breakpoint presence
- enabled = None
- for breakpoint in breakpoints:
- addresses = breakpoint['addresses']
- is_root_enabled = addresses[0]['enabled']
- for address in addresses:
- # note, despite the lookup path always use the relative
- # (sal.symtab.filename) file name to match source files with
- # breakpoints
- if address['file_line'] == number and address['file_name'] == sal.symtab.filename:
- enabled = enabled or (address['enabled'] and is_root_enabled)
- if enabled is None:
- breakpoint = ' '
- else:
- breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low)
- out.append(line_format.format(breakpoint, number, line.rstrip('\n')))
- # return the output along with scroll indicators
- if len(out) <= height:
- extra = [ansi('~', R.style_low)]
- return extra_start * extra + out + extra_end * extra
- else:
- return out
-
- def commands(self):
- return {
- 'scroll': {
- 'action': self.scroll,
- 'doc': 'Scroll by relative steps or reset if invoked without argument.'
- }
- }
-
- def attributes(self):
- return {
- 'height': {
- 'doc': '''Height of the module.
-
-A value of 0 uses the whole height.''',
- 'default': 10,
- 'type': int,
- 'check': check_ge_zero
- },
- 'tab-size': {
- 'doc': 'Number of spaces used to display the tab character.',
- 'default': 4,
- 'name': 'tab_size',
- 'type': int,
- 'check': check_gt_zero
- },
- 'path': {
- 'doc': 'Path visibility flag in the module label.',
- 'default': False,
- 'name': 'show_path',
- 'type': bool
- },
- 'highlight-line': {
- 'doc': 'Decide whether the whole current line should be highlighted.',
- 'default': False,
- 'name': 'highlight_line',
- 'type': bool
- }
- }
-
- def scroll(self, arg):
- if arg:
- self.offset += int(arg)
- else:
- self.offset = 0
-
-class Assembly(Dashboard.Module):
- '''Show the disassembled code surrounding the program counter.
-
-The instructions constituting the current statement are marked, if available.'''
-
- def __init__(self):
- self.offset = 0
- self.cache_key = None
- self.cache_asm = None
-
- def label(self):
- return 'Assembly'
-
- def lines(self, term_width, term_height, style_changed):
- # skip if the current thread is not stopped
- if not gdb.selected_thread().is_stopped():
- return []
- # flush the cache if the style is changed
- if style_changed:
- self.cache_key = None
- # prepare the highlighter
- try:
- flavor = gdb.parameter('disassembly-flavor')
- except:
- flavor = 'att' # not always defined (see #36)
- highlighter = Beautifier(flavor, tab_size=None)
- # fetch the assembly code
- line_info = None
- frame = gdb.selected_frame() # PC is here
- height = self.height or (term_height - 1)
- try:
- # disassemble the current block
- asm_start, asm_end = self.fetch_function_boundaries()
- asm = self.fetch_asm(asm_start, asm_end, False, highlighter)
- # find the location of the PC
- pc_index = next(index for index, instr in enumerate(asm)
- if instr['addr'] == frame.pc())
- # compute the instruction range
- start = pc_index - int(height / 2) + self.offset
- end = start + height
- # extra at start
- extra_start = 0
- if start < 0:
- extra_start = min(-start, height)
- start = 0
- # extra at end
- extra_end = 0
- if end > len(asm):
- extra_end = min(end - len(asm), height)
- end = len(asm)
- else:
- end = max(end, 0)
- # fetch actual interval
- asm = asm[start:end]
- # if there are line information then use it, it may be that
- # line_info is not None but line_info.last is None
- line_info = gdb.find_pc_line(frame.pc())
- line_info = line_info if line_info.last else None
- except (gdb.error, RuntimeError, StopIteration):
- # if it is not possible (stripped binary or the PC is not present in
- # the output of `disassemble` as per issue #31) start from PC
- try:
- extra_start = 0
- extra_end = 0
- # allow to scroll down nevertheless
- clamped_offset = min(self.offset, 0)
- asm = self.fetch_asm(frame.pc(), height - clamped_offset, True, highlighter)
- asm = asm[-clamped_offset:]
- except gdb.error as e:
- msg = '{}'.format(e)
- return [ansi(msg, R.style_error)]
- # fetch function start if available (e.g., not with @plt)
- func_start = None
- if self.show_function and frame.function():
- func_start = to_unsigned(frame.function().value())
- # compute the maximum offset size
- if asm and func_start:
- max_offset = max(len(str(abs(asm[0]['addr'] - func_start))),
- len(str(abs(asm[-1]['addr'] - func_start))))
- # return the machine code
- breakpoints = fetch_breakpoints()
- max_length = max(instr['length'] for instr in asm) if asm else 0
- inferior = gdb.selected_inferior()
- out = []
- for index, instr in enumerate(asm):
- addr = instr['addr']
- length = instr['length']
- text = instr['asm']
- addr_str = format_address(addr)
- if self.show_opcodes:
- # fetch and format opcode
- region = inferior.read_memory(addr, length)
- opcodes = (' '.join('{:02x}'.format(ord(byte)) for byte in region))
- opcodes += (max_length - len(region)) * 3 * ' ' + ' '
- else:
- opcodes = ''
- # compute the offset if available
- if self.show_function:
- if func_start:
- offset = '{:+d}'.format(addr - func_start)
- offset = offset.ljust(max_offset + 1) # sign
- func_info = '{}{}'.format(frame.function(), offset)
- else:
- func_info = '?'
- else:
- func_info = ''
- format_string = '{}{}{}{}{}{}'
- indicator = ' '
- text = ' ' + text
- if addr == frame.pc():
- if not R.ansi:
- indicator = '> '
- addr_str = ansi(addr_str, R.style_selected_1)
- indicator = ansi(indicator, R.style_selected_1)
- opcodes = ansi(opcodes, R.style_selected_1)
- func_info = ansi(func_info, R.style_selected_1)
- if not highlighter.active or self.highlight_line:
- text = ansi(text, R.style_selected_1)
- elif line_info and line_info.pc <= addr < line_info.last:
- if not R.ansi:
- indicator = ': '
- addr_str = ansi(addr_str, R.style_selected_2)
- indicator = ansi(indicator, R.style_selected_2)
- opcodes = ansi(opcodes, R.style_selected_2)
- func_info = ansi(func_info, R.style_selected_2)
- if not highlighter.active or self.highlight_line:
- text = ansi(text, R.style_selected_2)
- else:
- addr_str = ansi(addr_str, R.style_low)
- func_info = ansi(func_info, R.style_low)
- # check for breakpoint presence
- enabled = None
- for breakpoint in breakpoints:
- addresses = breakpoint['addresses']
- is_root_enabled = addresses[0]['enabled']
- for address in addresses:
- if address['address'] == addr:
- enabled = enabled or (address['enabled'] and is_root_enabled)
- if enabled is None:
- breakpoint = ' '
- else:
- breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low)
- out.append(format_string.format(breakpoint, addr_str, indicator, opcodes, func_info, text))
- # return the output along with scroll indicators
- if len(out) <= height:
- extra = [ansi('~', R.style_low)]
- return extra_start * extra + out + extra_end * extra
- else:
- return out
-
- def commands(self):
- return {
- 'scroll': {
- 'action': self.scroll,
- 'doc': 'Scroll by relative steps or reset if invoked without argument.'
- }
- }
-
- def attributes(self):
- return {
- 'height': {
- 'doc': '''Height of the module.
-
-A value of 0 uses the whole height.''',
- 'default': 10,
- 'type': int,
- 'check': check_ge_zero
- },
- 'opcodes': {
- 'doc': 'Opcodes visibility flag.',
- 'default': False,
- 'name': 'show_opcodes',
- 'type': bool
- },
- 'function': {
- 'doc': 'Function information visibility flag.',
- 'default': True,
- 'name': 'show_function',
- 'type': bool
- },
- 'highlight-line': {
- 'doc': 'Decide whether the whole current line should be highlighted.',
- 'default': False,
- 'name': 'highlight_line',
- 'type': bool
- }
- }
-
- def scroll(self, arg):
- if arg:
- self.offset += int(arg)
- else:
- self.offset = 0
-
- def fetch_function_boundaries(self):
- frame = gdb.selected_frame()
- # parse the output of the disassemble GDB command to find the function
- # boundaries, this should handle cases in which a function spans
- # multiple discontinuous blocks
- disassemble = run('disassemble')
- for block_start, block_end in re.findall(r'Address range 0x([0-9a-f]+) to 0x([0-9a-f]+):', disassemble):
- block_start = int(block_start, 16)
- block_end = int(block_end, 16)
- if block_start <= frame.pc() < block_end:
- return block_start, block_end - 1 # need to be inclusive
- # if function information is available then try to obtain the
- # boundaries by looking at the superblocks
- block = frame.block()
- if frame.function():
- while block and (not block.function or block.function.name != frame.function().name):
- block = block.superblock
- block = block or frame.block()
- return block.start, block.end - 1
-
- def fetch_asm(self, start, end_or_count, relative, highlighter):
- # fetch asm from cache or disassemble
- if self.cache_key == (start, end_or_count):
- asm = self.cache_asm
- else:
- kwargs = {
- 'start_pc': start,
- 'count' if relative else 'end_pc': end_or_count
- }
- asm = gdb.selected_frame().architecture().disassemble(**kwargs)
- self.cache_key = (start, end_or_count)
- self.cache_asm = asm
- # syntax highlight the cached entry
- for instr in asm:
- instr['asm'] = highlighter.process(instr['asm'])
- return asm
-
-class Variables(Dashboard.Module):
- '''Show arguments and locals of the selected frame.'''
-
- def label(self):
- return 'Variables'
-
- def lines(self, term_width, term_height, style_changed):
- return Variables.format_frame(
- gdb.selected_frame(), self.show_arguments, self.show_locals, self.compact, self.align, self.sort)
-
- def attributes(self):
- return {
- 'arguments': {
- 'doc': 'Frame arguments visibility flag.',
- 'default': True,
- 'name': 'show_arguments',
- 'type': bool
- },
- 'locals': {
- 'doc': 'Frame locals visibility flag.',
- 'default': True,
- 'name': 'show_locals',
- 'type': bool
- },
- 'compact': {
- 'doc': 'Single-line display flag.',
- 'default': True,
- 'type': bool
- },
- 'align': {
- 'doc': 'Align variables in column flag (only if not compact).',
- 'default': False,
- 'type': bool
- },
- 'sort': {
- 'doc': 'Sort variables by name.',
- 'default': False,
- 'type': bool
- }
- }
-
- @staticmethod
- def format_frame(frame, show_arguments, show_locals, compact, align, sort):
- out = []
- # fetch frame arguments and locals
- decorator = gdb.FrameDecorator.FrameDecorator(frame)
- separator = ansi(', ', R.style_low)
- if show_arguments:
- def prefix(line):
- return Stack.format_line('arg', line)
- frame_args = decorator.frame_args()
- args_lines = Variables.fetch(frame, frame_args, compact, align, sort)
- if args_lines:
- if compact:
- args_line = separator.join(args_lines)
- single_line = prefix(args_line)
- out.append(single_line)
- else:
- out.extend(map(prefix, args_lines))
- if show_locals:
- def prefix(line):
- return Stack.format_line('loc', line)
- frame_locals = decorator.frame_locals()
- locals_lines = Variables.fetch(frame, frame_locals, compact, align, sort)
- if locals_lines:
- if compact:
- locals_line = separator.join(locals_lines)
- single_line = prefix(locals_line)
- out.append(single_line)
- else:
- out.extend(map(prefix, locals_lines))
- return out
-
- @staticmethod
- def fetch(frame, data, compact, align, sort):
- lines = []
- name_width = 0
- if align and not compact:
- name_width = max(len(str(elem.sym)) for elem in data) if data else 0
- for elem in data or []:
- name = ansi(elem.sym, R.style_high) + ' ' * (name_width - len(str(elem.sym)))
- equal = ansi('=', R.style_low)
- value = format_value(elem.sym.value(frame), compact)
- lines.append('{} {} {}'.format(name, equal, value))
- if sort:
- lines.sort()
- return lines
-
-class Stack(Dashboard.Module):
- '''Show the current stack trace including the function name and the file location, if available.
-
-Optionally list the frame arguments and locals too.'''
-
- def label(self):
- return 'Stack'
-
- def lines(self, term_width, term_height, style_changed):
- # skip if the current thread is not stopped
- if not gdb.selected_thread().is_stopped():
- return []
- # find the selected frame level (XXX Frame.level() is a recent addition)
- start_level = 0
- frame = gdb.newest_frame()
- while frame:
- if frame == gdb.selected_frame():
- break
- frame = frame.older()
- start_level += 1
- # gather the frames
- more = False
- frames = [gdb.selected_frame()]
- going_down = True
- while True:
- # stack frames limit reached
- if len(frames) == self.limit:
- more = True
- break
- # zigzag the frames starting from the selected one
- if going_down:
- frame = frames[-1].older()
- if frame:
- frames.append(frame)
- else:
- frame = frames[0].newer()
- if frame:
- frames.insert(0, frame)
- start_level -= 1
- else:
- break
- else:
- frame = frames[0].newer()
- if frame:
- frames.insert(0, frame)
- start_level -= 1
- else:
- frame = frames[-1].older()
- if frame:
- frames.append(frame)
- else:
- break
- # switch direction
- going_down = not going_down
- # format the output
- lines = []
- for number, frame in enumerate(frames, start=start_level):
- selected = frame == gdb.selected_frame()
- lines.extend(self.get_frame_lines(number, frame, selected))
- # add the placeholder
- if more:
- lines.append('[{}]'.format(ansi('+', R.style_selected_2)))
- return lines
-
- def attributes(self):
- return {
- 'limit': {
- 'doc': 'Maximum number of displayed frames (0 means no limit).',
- 'default': 10,
- 'type': int,
- 'check': check_ge_zero
- },
- 'arguments': {
- 'doc': 'Frame arguments visibility flag.',
- 'default': False,
- 'name': 'show_arguments',
- 'type': bool
- },
- 'locals': {
- 'doc': 'Frame locals visibility flag.',
- 'default': False,
- 'name': 'show_locals',
- 'type': bool
- },
- 'compact': {
- 'doc': 'Single-line display flag.',
- 'default': False,
- 'type': bool
- },
- 'align': {
- 'doc': 'Align variables in column flag (only if not compact).',
- 'default': False,
- 'type': bool
- },
- 'sort': {
- 'doc': 'Sort variables by name.',
- 'default': False,
- 'type': bool
- }
- }
-
- def get_frame_lines(self, number, frame, selected=False):
- # fetch frame info
- style = R.style_selected_1 if selected else R.style_selected_2
- frame_id = ansi(str(number), style)
- info = Stack.get_pc_line(frame, style)
- frame_lines = []
- frame_lines.append('[{}] {}'.format(frame_id, info))
- # add frame arguments and locals
- variables = Variables.format_frame(
- frame, self.show_arguments, self.show_locals, self.compact, self.align, self.sort)
- frame_lines.extend(variables)
- return frame_lines
-
- @staticmethod
- def format_line(prefix, line):
- prefix = ansi(prefix, R.style_low)
- return '{} {}'.format(prefix, line)
-
- @staticmethod
- def get_pc_line(frame, style):
- frame_pc = ansi(format_address(frame.pc()), style)
- info = 'from {}'.format(frame_pc)
- # if a frame function symbol is available then use it to fetch the
- # current function name and address, otherwise fall back relying on the
- # frame name
- if frame.function():
- name = ansi(frame.function(), style)
- func_start = to_unsigned(frame.function().value())
- offset = ansi(str(frame.pc() - func_start), style)
- info += ' in {}+{}'.format(name, offset)
- elif frame.name():
- name = ansi(frame.name(), style)
- info += ' in {}'.format(name)
- sal = frame.find_sal()
- if sal and sal.symtab:
- file_name = ansi(sal.symtab.filename, style)
- file_line = ansi(str(sal.line), style)
- info += ' at {}:{}'.format(file_name, file_line)
- return info
-
-class History(Dashboard.Module):
- '''List the last entries of the value history.'''
-
- def label(self):
- return 'History'
-
- def lines(self, term_width, term_height, style_changed):
- out = []
- # fetch last entries
- for i in range(-self.limit + 1, 1):
- try:
- value = format_value(gdb.history(i))
- value_id = ansi('$${}', R.style_high).format(abs(i))
- equal = ansi('=', R.style_low)
- line = '{} {} {}'.format(value_id, equal, value)
- out.append(line)
- except gdb.error:
- continue
- return out
-
- def attributes(self):
- return {
- 'limit': {
- 'doc': 'Maximum number of values to show.',
- 'default': 3,
- 'type': int,
- 'check': check_gt_zero
- }
- }
-
-class Memory(Dashboard.Module):
- '''Allow to inspect memory regions.'''
-
- DEFAULT_LENGTH = 16
-
- class Region():
- def __init__(self, expression, length, module):
- self.expression = expression
- self.length = length
- self.module = module
- self.original = None
- self.latest = None
-
- def reset(self):
- self.original = None
- self.latest = None
-
- def format(self, per_line):
- # fetch the memory content
- try:
- address = Memory.parse_as_address(self.expression)
- inferior = gdb.selected_inferior()
- memory = inferior.read_memory(address, self.length)
- # set the original memory snapshot if needed
- if not self.original:
- self.original = memory
- except gdb.error as e:
- msg = 'Cannot access {} bytes starting at {}: {}'
- msg = msg.format(self.length, self.expression, e)
- return [ansi(msg, R.style_error)]
- # format the memory content
- out = []
- for i in range(0, len(memory), per_line):
- region = memory[i:i + per_line]
- pad = per_line - len(region)
- address_str = format_address(address + i)
- # compute changes
- hexa = []
- text = []
- for j in range(len(region)):
- rel = i + j
- byte = memory[rel]
- hexa_byte = '{:02x}'.format(ord(byte))
- text_byte = self.module.format_byte(byte)
- # differences against the latest have the highest priority
- if self.latest and memory[rel] != self.latest[rel]:
- hexa_byte = ansi(hexa_byte, R.style_selected_1)
- text_byte = ansi(text_byte, R.style_selected_1)
- # cumulative changes if enabled
- elif self.module.cumulative and memory[rel] != self.original[rel]:
- hexa_byte = ansi(hexa_byte, R.style_selected_2)
- text_byte = ansi(text_byte, R.style_selected_2)
- # format the text differently for clarity
- else:
- text_byte = ansi(text_byte, R.style_high)
- hexa.append(hexa_byte)
- text.append(text_byte)
- # output the formatted line
- hexa_placeholder = ' {}'.format(self.module.placeholder[0] * 2)
- text_placeholder = self.module.placeholder[0]
- out.append('{} {}{} {}{}'.format(
- ansi(address_str, R.style_low),
- ' '.join(hexa), ansi(pad * hexa_placeholder, R.style_low),
- ''.join(text), ansi(pad * text_placeholder, R.style_low)))
- # update the latest memory snapshot
- self.latest = memory
- return out
-
- def __init__(self):
- self.table = {}
-
- def label(self):
- return 'Memory'
-
- def lines(self, term_width, term_height, style_changed):
- out = []
- for expression, region in self.table.items():
- out.append(divider(term_width, expression))
- out.extend(region.format(self.get_per_line(term_width)))
- return out
-
- def commands(self):
- return {
- 'watch': {
- 'action': self.watch,
- 'doc': '''Watch a memory region by expression and length.
-
-The length defaults to 16 bytes.''',
- 'complete': gdb.COMPLETE_EXPRESSION
- },
- 'unwatch': {
- 'action': self.unwatch,
- 'doc': 'Stop watching a memory region by expression.',
- 'complete': gdb.COMPLETE_EXPRESSION
- },
- 'clear': {
- 'action': self.clear,
- 'doc': 'Clear all the watched regions.'
- }
- }
-
- def attributes(self):
- return {
- 'cumulative': {
- 'doc': 'Highlight changes cumulatively, watch again to reset.',
- 'default': False,
- 'type': bool
- },
- 'full': {
- 'doc': 'Take the whole horizontal space.',
- 'default': False,
- 'type': bool
- },
- 'placeholder': {
- 'doc': 'Placeholder used for missing items and unprintable characters.',
- 'default': '·'
- }
- }
-
- def watch(self, arg):
- if arg:
- expression, _, length_str = arg.partition(' ')
- length = Memory.parse_as_address(length_str) if length_str else Memory.DEFAULT_LENGTH
- # keep the length when the memory is watched to reset the changes
- region = self.table.get(expression)
- if region and not length_str:
- region.reset()
- else:
- self.table[expression] = Memory.Region(expression, length, self)
- else:
- raise Exception('Specify a memory location')
-
- def unwatch(self, arg):
- if arg:
- try:
- del self.table[arg]
- except KeyError:
- raise Exception('Memory expression not watched')
- else:
- raise Exception('Specify a matched memory expression')
-
- def clear(self, arg):
- self.table.clear()
-
- def format_byte(self, byte):
- # `type(byte) is bytes` in Python 3
- if 0x20 < ord(byte) < 0x7f:
- return chr(ord(byte))
- else:
- return self.placeholder[0]
-
- def get_per_line(self, term_width):
- if self.full:
- padding = 3 # two double spaces separator (one is part of below)
- elem_size = 4 # HH + 1 space + T
- address_length = gdb.parse_and_eval('$pc').type.sizeof * 2 + 2 # 0x
- return max(int((term_width - address_length - padding) / elem_size), 1)
- else:
- return Memory.DEFAULT_LENGTH
-
- @staticmethod
- def parse_as_address(expression):
- value = gdb.parse_and_eval(expression)
- return to_unsigned(value)
-
-class Registers(Dashboard.Module):
- '''Show the CPU registers and their values.'''
-
- def __init__(self):
- self.table = {}
-
- def label(self):
- return 'Registers'
-
- def lines(self, term_width, term_height, style_changed):
- # skip if the current thread is not stopped
- if not gdb.selected_thread().is_stopped():
- return []
- # obtain the registers to display
- if style_changed:
- self.table = {}
- if self.register_list:
- register_list = self.register_list.split()
- else:
- register_list = Registers.fetch_register_list()
- # fetch registers status
- registers = []
- for name in register_list:
- # exclude registers with a dot '.' or parse_and_eval() will fail
- if '.' in name:
- continue
- value = gdb.parse_and_eval('${}'.format(name))
- string_value = Registers.format_value(value)
- # exclude unavailable registers (see #255)
- if string_value == '<unavailable>':
- continue
- changed = self.table and (self.table.get(name, '') != string_value)
- self.table[name] = string_value
- registers.append((name, string_value, changed))
- # handle the empty register list
- if not registers:
- msg = 'No registers to show (check the "dashboard registers -style list" attribute)'
- return [ansi(msg, R.style_error)]
- # compute lengths considering an extra space between and around the
- # entries (hence the +2 and term_width - 1)
- max_name = max(len(name) for name, _, _ in registers)
- max_value = max(len(value) for _, value, _ in registers)
- max_width = max_name + max_value + 2
- columns = min(int((term_width - 1) / max_width) or 1, len(registers))
- rows = int(math.ceil(float(len(registers)) / columns))
- # build the registers matrix
- if self.column_major:
- matrix = list(registers[i:i + rows] for i in range(0, len(registers), rows))
- else:
- matrix = list(registers[i::columns] for i in range(columns))
- # compute the lengths column wise
- max_names_column = list(max(len(name) for name, _, _ in column) for column in matrix)
- max_values_column = list(max(len(value) for _, value, _ in column) for column in matrix)
- line_length = sum(max_names_column) + columns + sum(max_values_column)
- extra = term_width - line_length
- # compute padding as if there were one more column
- base_padding = int(extra / (columns + 1))
- padding_column = [base_padding] * columns
- # distribute the remainder among columns giving the precedence to
- # internal padding
- rest = extra % (columns + 1)
- while rest:
- padding_column[rest % columns] += 1
- rest -= 1
- # format the registers
- out = [''] * rows
- for i, column in enumerate(matrix):
- max_name = max_names_column[i]
- max_value = max_values_column[i]
- for j, (name, value, changed) in enumerate(column):
- name = ' ' * (max_name - len(name)) + ansi(name, R.style_low)
- style = R.style_selected_1 if changed else ''
- value = ansi(value, style) + ' ' * (max_value - len(value))
- padding = ' ' * padding_column[i]
- item = '{}{} {}'.format(padding, name, value)
- out[j] += item
- return out
-
- def attributes(self):
- return {
- 'column-major': {
- 'doc': 'Show registers in columns instead of rows.',
- 'default': False,
- 'name': 'column_major',
- 'type': bool
- },
- 'list': {
- 'doc': '''String of space-separated register names to display.
-
-The empty list (default) causes to show all the available registers. For
-architectures different from x86 setting this attribute might be mandatory.''',
- 'default': '',
- 'name': 'register_list',
- }
- }
-
- @staticmethod
- def format_value(value):
- try:
- if value.type.code in [gdb.TYPE_CODE_INT, gdb.TYPE_CODE_PTR]:
- int_value = to_unsigned(value, value.type.sizeof)
- value_format = '0x{{:0{}x}}'.format(2 * value.type.sizeof)
- return value_format.format(int_value)
- except (gdb.error, ValueError):
- # convert to unsigned but preserve code and flags information
- pass
- return str(value)
-
- @staticmethod
- def fetch_register_list(*match_groups):
- names = []
- for line in run('maintenance print register-groups').split('\n'):
- fields = line.split()
- if len(fields) != 7:
- continue
- name, _, _, _, _, _, groups = fields
- if not re.match(r'\w', name):
- continue
- for group in groups.split(','):
- if group in (match_groups or ('general',)):
- names.append(name)
- break
- return names
-
-class Threads(Dashboard.Module):
- '''List the currently available threads.'''
-
- def label(self):
- return 'Threads'
-
- def lines(self, term_width, term_height, style_changed):
- out = []
- selected_thread = gdb.selected_thread()
- # do not restore the selected frame if the thread is not stopped
- restore_frame = gdb.selected_thread().is_stopped()
- if restore_frame:
- selected_frame = gdb.selected_frame()
- # fetch the thread list
- threads = []
- for inferior in gdb.inferiors():
- if self.all_inferiors or inferior == gdb.selected_inferior():
- threads += gdb.Inferior.threads(inferior)
- for thread in threads:
- # skip running threads if requested
- if self.skip_running and thread.is_running():
- continue
- is_selected = (thread.ptid == selected_thread.ptid)
- style = R.style_selected_1 if is_selected else R.style_selected_2
- if self.all_inferiors:
- number = '{}.{}'.format(thread.inferior.num, thread.num)
- else:
- number = str(thread.num)
- number = ansi(number, style)
- tid = ansi(str(thread.ptid[1] or thread.ptid[2]), style)
- info = '[{}] id {}'.format(number, tid)
- if thread.name:
- info += ' name {}'.format(ansi(thread.name, style))
- # switch thread to fetch info (unless is running in non-stop mode)
- try:
- thread.switch()
- frame = gdb.newest_frame()
- info += ' ' + Stack.get_pc_line(frame, style)
- except gdb.error:
- info += ' (running)'
- out.append(info)
- # restore thread and frame
- selected_thread.switch()
- if restore_frame:
- selected_frame.select()
- return out
-
- def attributes(self):
- return {
- 'skip-running': {
- 'doc': 'Skip running threads.',
- 'default': False,
- 'name': 'skip_running',
- 'type': bool
- },
- 'all-inferiors': {
- 'doc': 'Show threads from all inferiors.',
- 'default': False,
- 'name': 'all_inferiors',
- 'type': bool
- },
- }
-
-class Expressions(Dashboard.Module):
- '''Watch user expressions.'''
-
- def __init__(self):
- self.table = []
-
- def label(self):
- return 'Expressions'
-
- def lines(self, term_width, term_height, style_changed):
- out = []
- label_width = 0
- if self.align:
- label_width = max(len(expression) for expression in self.table) if self.table else 0
- default_radix = Expressions.get_default_radix()
- for number, expression in enumerate(self.table, start=1):
- label = expression
- match = re.match(r'^/(\d+) +(.+)$', expression)
- try:
- if match:
- radix, expression = match.groups()
- run('set output-radix {}'.format(radix))
- value = format_value(gdb.parse_and_eval(expression))
- except gdb.error as e:
- value = ansi(e, R.style_error)
- finally:
- if match:
- run('set output-radix {}'.format(default_radix))
- number = ansi(str(number), R.style_selected_2)
- label = ansi(expression, R.style_high) + ' ' * (label_width - len(expression))
- equal = ansi('=', R.style_low)
- out.append('[{}] {} {} {}'.format(number, label, equal, value))
- return out
-
- def commands(self):
- return {
- 'watch': {
- 'action': self.watch,
- 'doc': 'Watch an expression using the format `[/<radix>] <expression>`.',
- 'complete': gdb.COMPLETE_EXPRESSION
- },
- 'unwatch': {
- 'action': self.unwatch,
- 'doc': 'Stop watching an expression by index.'
- },
- 'clear': {
- 'action': self.clear,
- 'doc': 'Clear all the watched expressions.'
- }
- }
-
- def attributes(self):
- return {
- 'align': {
- 'doc': 'Align variables in column flag.',
- 'default': False,
- 'type': bool
- }
- }
-
- def watch(self, arg):
- if arg:
- if arg not in self.table:
- self.table.append(arg)
- else:
- raise Exception('Expression already watched')
- else:
- raise Exception('Specify an expression')
-
- def unwatch(self, arg):
- if arg:
- try:
- number = int(arg) - 1
- except:
- number = -1
- if 0 <= number < len(self.table):
- self.table.pop(number)
- else:
- raise Exception('Expression not watched')
- else:
- raise Exception('Specify an expression')
-
- def clear(self, arg):
- self.table.clear()
-
- @staticmethod
- def get_default_radix():
- try:
- return gdb.parameter('output-radix')
- except RuntimeError:
- # XXX this is a fix for GDB <8.1.x see #161
- message = run('show output-radix')
- match = re.match(r'^Default output radix for printing of values is (\d+)\.$', message)
- return match.groups()[0] if match else 10 # fallback
-
-# XXX workaround to support BP_BREAKPOINT in older GDB versions
-setattr(gdb, 'BP_CATCHPOINT', getattr(gdb, 'BP_CATCHPOINT', 26))
-
-class Breakpoints(Dashboard.Module):
- '''Display the breakpoints list.'''
-
- NAMES = {
- gdb.BP_BREAKPOINT: 'break',
- gdb.BP_WATCHPOINT: 'watch',
- gdb.BP_HARDWARE_WATCHPOINT: 'write watch',
- gdb.BP_READ_WATCHPOINT: 'read watch',
- gdb.BP_ACCESS_WATCHPOINT: 'access watch',
- gdb.BP_CATCHPOINT: 'catch'
- }
-
- def label(self):
- return 'Breakpoints'
-
- def lines(self, term_width, term_height, style_changed):
- out = []
- breakpoints = fetch_breakpoints(watchpoints=True, pending=self.show_pending)
- for breakpoint in breakpoints:
- sub_lines = []
- # format common information
- style = R.style_selected_1 if breakpoint['enabled'] else R.style_selected_2
- number = ansi(breakpoint['number'], style)
- bp_type = ansi(Breakpoints.NAMES[breakpoint['type']], style)
- if breakpoint['temporary']:
- bp_type = bp_type + ' {}'.format(ansi('once', style))
- if not R.ansi and breakpoint['enabled']:
- bp_type = 'disabled ' + bp_type
- line = '[{}] {}'.format(number, bp_type)
- if breakpoint['type'] == gdb.BP_BREAKPOINT:
- for i, address in enumerate(breakpoint['addresses']):
- addr = address['address']
- if i == 0 and addr:
- # this is a regular breakpoint
- line += ' at {}'.format(ansi(format_address(addr), style))
- # format source information
- file_name = address.get('file_name')
- file_line = address.get('file_line')
- if file_name and file_line:
- file_name = ansi(file_name, style)
- file_line = ansi(file_line, style)
- line += ' in {}:{}'.format(file_name, file_line)
- elif i > 0:
- # this is a sub breakpoint
- sub_style = R.style_selected_1 if address['enabled'] else R.style_selected_2
- sub_number = ansi('{}.{}'.format(breakpoint['number'], i), sub_style)
- sub_line = '[{}]'.format(sub_number)
- sub_line += ' at {}'.format(ansi(format_address(addr), sub_style))
- # format source information
- file_name = address.get('file_name')
- file_line = address.get('file_line')
- if file_name and file_line:
- file_name = ansi(file_name, sub_style)
- file_line = ansi(file_line, sub_style)
- sub_line += ' in {}:{}'.format(file_name, file_line)
- sub_lines += [sub_line]
- # format user location
- location = breakpoint['location']
- line += ' for {}'.format(ansi(location, style))
- elif breakpoint['type'] == gdb.BP_CATCHPOINT:
- what = breakpoint['what']
- line += ' {}'.format(ansi(what, style))
- else:
- # format user expression
- expression = breakpoint['expression']
- line += ' for {}'.format(ansi(expression, style))
- # format condition
- condition = breakpoint['condition']
- if condition:
- line += ' if {}'.format(ansi(condition, style))
- # format hit count
- hit_count = breakpoint['hit_count']
- if hit_count:
- word = 'time{}'.format('s' if hit_count > 1 else '')
- line += ' hit {} {}'.format(ansi(breakpoint['hit_count'], style), word)
- # append the main line and possibly sub breakpoints
- out.append(line)
- out.extend(sub_lines)
- return out
-
- def attributes(self):
- return {
- 'pending': {
- 'doc': 'Also show pending breakpoints.',
- 'default': True,
- 'name': 'show_pending',
- 'type': bool
- }
- }
-
-# XXX traceback line numbers in this Python block must be increased by 1
-end
-
-# Better GDB defaults ----------------------------------------------------------
-
-set history save
-set verbose off
-set print pretty on
-set print array off
-set print array-indexes on
-set python print-stack full
-
-# Start ------------------------------------------------------------------------
-
-python Dashboard.start()
-
-# File variables ---------------------------------------------------------------
-
-# vim: filetype=python
-# Local Variables:
-# mode: python
-# End:
diff --git a/.gitconfig b/.gitconfig
index 09a3da93..b9f5d77b 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -6,7 +6,7 @@
editor = nvim
pager = less -F -X
[commit]
- gpgsign = true
+ gpgsign = true
[gpg]
program = /usr/bin/gpg
[advice]
@@ -18,4 +18,6 @@
ff = only
rebase = merges
[format]
- signOff = true
+ singOff = true
+[init]
+ defaultBranch = master
diff --git a/.gitignore b/.gitignore
index fbe857b7..a224ceed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,28 +1,25 @@
-.bsp
.cache
-.cargo
.cmake
-.deno
-.dbus
-.gentoo
+.config/dconf
+.config/*iscord
+.config/Electron
+.config/kicad
+.config/nvim/lazy-lock.json
+.config/pulse
+.config/typstfmt
+.config/Vencord
+.config/weechat
.gnupg
-.g8
-.ipython
-.ivy2
-.jupyter
.local
.mozilla
-.thunderbird
-.npm*
+.npm
.pki
-.sbt
-.scala*
.ssh
-.wget-hsts
-.wpa_cli_history
-.zcompdump
-.zsh_history
+.thunderbird
+.yarn
Documents
Downloads
-Pictures
git
+Pictures
+.zcompdump
+.zsh_history
diff --git a/.img/fetch.png b/.img/fetch.png
deleted file mode 100644
index 13597f32..00000000
--- a/.img/fetch.png
+++ /dev/null
Binary files differ
diff --git a/.img/gotop.png b/.img/gotop.png
deleted file mode 100644
index 40bb6b11..00000000
--- a/.img/gotop.png
+++ /dev/null
Binary files differ
diff --git a/.img/lockscreen.png b/.img/lockscreen.png
deleted file mode 100644
index 4bcc9816..00000000
--- a/.img/lockscreen.png
+++ /dev/null
Binary files differ
diff --git a/.img/nvim.png b/.img/nvim.png
deleted file mode 100644
index 6a49a5bf..00000000
--- a/.img/nvim.png
+++ /dev/null
Binary files differ
diff --git a/.img/wallpaper/fish.png b/.img/wallpaper/fish.png
new file mode 100644
index 00000000..cb9ee965
--- /dev/null
+++ b/.img/wallpaper/fish.png
Binary files differ
diff --git a/.img/wofi.png b/.img/wofi.png
deleted file mode 100644
index b50f0a0b..00000000
--- a/.img/wofi.png
+++ /dev/null
Binary files differ
diff --git a/.img/zathura.png b/.img/zathura.png
deleted file mode 100644
index 55c95c72..00000000
--- a/.img/zathura.png
+++ /dev/null
Binary files differ
diff --git a/.pkglist.txt b/.pkglist.txt
index c7a8f374..ebb0e32e 100644
--- a/.pkglist.txt
+++ b/.pkglist.txt
@@ -1,59 +1,89 @@
-app-admin/doas
-app-admin/yadm
-app-editors/neovim
-app-eselect/eselect-repository
-app-laptop/tlp
-app-misc/brightnessctl
-app-misc/keyd
-app-mobilephone/dfu-util
-app-office/obsidian
-app-portage/gentoolkit
-app-shells/zoxide
-app-shells/zsh
-app-shells/zsh-autosuggestions
-app-shells/zsh-syntax-highlighting
-app-text/zathura
-app-text/zathura-pdf-mupdf
-dev-debug/gdb
-dev-embedded/avrdude
-dev-embedded/dfu-programmer
-dev-java/openjdk-bin
-dev-lang/rust-bin
-dev-python/uv
-dev-util/pkgdev
-dev-util/tokei
-dev-util/uftrace
-gui-apps/grim
-gui-apps/gtklock
-gui-apps/mako
-gui-apps/slurp
-gui-apps/swaybg
-gui-apps/waybar
-gui-apps/wl-clipboard
-gui-apps/wofi
-gui-wm/sway
-media-fonts/noto
-media-fonts/noto-emoji
-media-gfx/imv
-net-im/discord
-net-libs/nodejs
-net-misc/chrony
-net-misc/rclone
-net-wireless/iwd
-sci-electronics/kicad
-sci-electronics/kicad-footprints
-sci-electronics/kicad-symbols
-sys-apps/bat
-sys-apps/lsd
-sys-apps/ripgrep
-sys-auth/pam_u2f
-sys-boot/efibootmgr
-sys-firmware/intel-microcode
-sys-kernel/gentoo-sources
-sys-kernel/linux-firmware
-sys-power/suspend
-sys-power/thermald
-sys-process/gotop
-www-client/firefox-bin
-x11-drivers/xf86-video-intel
-x11-libs/libnotify
+alacritty
+artix-archlinux-support
+avrdude
+base
+bat
+brightnessctl
+broadcom-wl-dkms
+chrony
+chrony-openrc
+clang
+cmake
+cryptsetup
+cryptsetup-openrc
+dfu-programmer
+dfu-util
+discord
+docker
+docker-compose
+docker-openrc
+dosfstools
+efibootmgr
+elogind-openrc
+fakeroot
+firefox
+fuse3
+fuzzel
+fzf
+git
+grim
+grub
+gtklock
+imv
+intel-ucode
+iwd
+iwd-openrc
+kicad
+kicad-library
+kicad-library-3d
+linux-firmware
+linux-lts
+linux-lts-headers
+llvm
+lsd
+mako
+man-db
+meson
+neovim
+ninja
+nodejs
+noto-fonts
+noto-fonts-cjk
+noto-fonts-emoji
+npm
+opendoas
+openrc
+openresolv
+openssh
+openssh-openrc
+pipewire
+pipewire-jack
+pipewire-pulse
+python-uv
+ripgrep
+slurp
+starship
+sway
+swaybg
+thermald
+thermald-openrc
+thunderbird
+tlp
+tlp-openrc
+tokei
+typst
+unzip
+waybar
+wayland
+weechat
+wl-clipboard
+xdg-utils
+xorg-xwayland
+yadm
+zathura
+zathura-pdf-mupdf
+zfs-dkms
+zoxide
+zsh
+zsh-autosuggestions
+zsh-syntax-highlighting
diff --git a/.pkglist_full.txt b/.pkglist_full.txt
deleted file mode 100644
index 7b91361a..00000000
--- a/.pkglist_full.txt
+++ /dev/null
@@ -1,920 +0,0 @@
-
-/var/db/pkg/acct-group:
-audio-0-r3
-cdrom-0-r3
-dialout-0-r3
-disk-0-r3
-floppy-0-r1
-input-0-r3
-keyd-2.4.3
-kmem-0-r3
-kvm-0-r3
-lp-0-r3
-lpadmin-0-r3
-man-0-r3
-messagebus-0-r3
-netdev-0-r3
-ntp-0-r3
-nullmail-0-r2
-pipewire-0-r2
-plugdev-0-r3
-polkitd-0-r3
-portage-0-r2
-render-0-r3
-root-0-r2
-sgx-0-r2
-sshd-0-r3
-tape-0-r3
-tty-0-r3
-usb-0-r3
-video-0-r3
-
-/var/db/pkg/acct-user:
-man-1-r3
-messagebus-0-r3
-ntp-0-r3
-nullmail-0-r2
-polkitd-0-r3
-portage-0-r3
-sshd-0-r3
-
-/var/db/pkg/app-accessibility:
-at-spi2-core-2.52.0
-
-/var/db/pkg/app-admin:
-doas-6.8.2
-eselect-1.4.27-r1
-metalog-20230719
-perl-cleaner-2.31-r2
-yadm-3.2.2
-
-/var/db/pkg/app-alternatives:
-awk-4
-bc-0
-bzip2-1
-cpio-0
-gzip-1
-lex-0-r1
-ninja-1
-sh-0
-tar-0
-yacc-1-r2
-
-/var/db/pkg/app-arch:
-bzip2-1.0.8-r5
-cpio-2.15
-gzip-1.13-r1
-libarchive-3.7.4
-ncompress-5.0-r1
-tar-1.35
-unzip-6.0_p27-r1
-xz-utils-5.6.2-r1
-zstd-1.5.6
-
-/var/db/pkg/app-crypt:
-gcr-3.41.1-r2
-gnupg-2.4.5-r2
-gpgme-1.23.2-r2
-libb2-0.98.1-r3
-libmd-1.1.0
-libsecret-0.21.1
-p11-kit-0.25.3-r2
-pinentry-1.3.1
-rhash-1.4.4-r1
-
-/var/db/pkg/app-editors:
-neovim-0.10.1-r1
-
-/var/db/pkg/app-eselect:
-eselect-fontconfig-20220403
-eselect-iptables-20220320
-eselect-java-0.5.1
-eselect-lib-bin-symlink-0.1.1-r1
-eselect-lua-4-r1
-eselect-mpg123-0.1-r1
-eselect-notify-send-0.1
-eselect-pinentry-0.7.4
-eselect-repository-14
-eselect-rust-20210703
-eselect-vi-20221122
-eselect-wxwidgets-20230114-r1
-
-/var/db/pkg/app-laptop:
-tlp-1.5.0
-
-/var/db/pkg/app-misc:
-brightnessctl-0.5.1
-ca-certificates-20240203.3.98
-editor-wrapper-4-r1
-keyd-2.5.0
-mime-types-2.1.54
-pax-utils-1.3.7
-
-/var/db/pkg/app-mobilephone:
-dfu-util-0.11
-
-/var/db/pkg/app-office:
-obsidian-1.6.7
-
-/var/db/pkg/app-portage:
-elt-patches-20240912
-gemato-20.6
-gentoolkit-0.6.8
-getuto-1.13
-portage-utils-0.97
-
-/var/db/pkg/app-shells:
-bash-5.2_p32-r1
-zoxide-0.9.4
-zsh-5.9-r6
-zsh-autosuggestions-0.7.0-r2
-zsh-syntax-highlighting-0.8.0
-
-/var/db/pkg/app-text:
-asciidoc-10.2.1
-build-docbook-catalog-2.4
-docbook-dsssl-stylesheets-1.79-r4
-docbook-sgml-dtd-3.0-r5
-docbook-xml-dtd-4.1.2-r7
-docbook-xml-dtd-4.2-r3
-docbook-xml-dtd-4.3-r2
-docbook-xml-dtd-4.4-r3
-docbook-xml-dtd-4.5-r2
-docbook-xsl-ns-stylesheets-1.79.1
-docbook-xsl-stylesheets-1.79.1-r4
-doxygen-1.12.0
-enchant-2.6.1
-ghostscript-gpl-10.03.1
-gspell-1.12.2
-hunspell-1.7.2-r1
-iso-codes-4.16.0
-libpaper-2.1.3
-mandoc-1.14.6
-manpager-1
-mupdf-1.24.8
-poppler-data-0.4.12
-scdoc-1.11.3
-sgml-common-0.6.3-r7
-texlive-core-2023-r10
-xmlto-0.0.28-r11
-zathura-0.5.6
-zathura-pdf-mupdf-0.4.3
-
-/var/db/pkg/dev-build:
-autoconf-2.13-r8
-autoconf-2.72-r1
-autoconf-archive-2023.02.20
-autoconf-wrapper-20231224
-automake-1.17-r1
-automake-wrapper-20240607
-b2-5.2.1
-cmake-3.30.3
-gtk-doc-am-1.33.2
-libtool-2.4.7-r4
-make-4.4.1-r1
-meson-1.5.1
-meson-format-array-0
-ninja-1.12.1
-
-/var/db/pkg/dev-cpp:
-abseil-cpp-20240722.0
-atkmm-2.28.3
-cairomm-1.14.4
-glibmm-2.66.7
-gtest-1.14.0-r1
-gtkmm-3.24.9
-pangomm-2.46.3
-
-/var/db/pkg/dev-db:
-sqlite-3.46.1
-unixODBC-2.3.12
-
-/var/db/pkg/dev-debug:
-gdb-15.1
-
-/var/db/pkg/dev-embedded:
-avrdude-7.2
-dfu-programmer-1.0.0
-
-/var/db/pkg/dev-java:
-java-config-2.3.4
-openjdk-bin-21.0.4_p7
-
-/var/db/pkg/dev-lang:
-go-1.23.0
-lua-5.1.5-r200
-lua-5.4.6
-luajit-2.1.1716656478
-mujs-1.3.5
-nasm-2.16.03
-orc-0.4.38
-perl-5.40.0
-python-3.12.6
-python-3.13.0_rc2
-python-exec-2.4.10
-python-exec-conf-2.4.6
-rust-bin-1.81.0
-spidermonkey-115.15.0
-swig-4.2.1
-tcl-8.6.14
-vala-0.56.17
-
-/var/db/pkg/dev-libs:
-atk-2.46.0
-boehm-gc-8.2.6
-boost-1.85.0-r1
-date-3.0.0
-double-conversion-3.3.0
-elfutils-0.191-r2
-ell-0.69
-expat-2.6.3
-fribidi-1.0.13
-girara-0.4.4
-glib-2.78.6
-gmp-6.3.0-r1
-gobject-introspection-1.78.1-r2
-gobject-introspection-common-1.78.1
-gumbo-0.12.1
-hidapi-0.14.0
-icu-75.1
-inih-58
-jemalloc-5.3.0-r1
-json-c-0.17
-json-glib-1.8.0
-jsoncpp-1.9.6
-kpathsea-6.3.5_p20230311
-libassuan-3.0.0
-libatomic_ops-7.8.2
-libbsd-0.11.8
-libcbor-0.11.0
-libclc-18.1.8
-libedit-20221030.3.1
-libevdev-1.13.3
-libffi-3.4.6
-libfido2-1.13.0
-libfmt-9.1.0-r2
-libgcrypt-1.11.0
-libgit2-1.8.1
-libgpg-error-1.50
-libgrapheme-2.0.2
-libgudev-238-r2
-libical-3.0.18
-libinput-1.26.2
-libksba-1.6.7
-libltdl-2.4.7-r1
-libmpack-1.0.5-r5
-libnl-3.10.0
-libpcre-8.45-r3
-libpcre2-10.44-r1
-libpipeline-1.5.8
-libsigc++-2.12.0
-libtasn1-4.19.0
-libunistring-1.2
-libusb-1.0.27-r1
-libusb-compat-0.1.8
-libutf8proc-2.9.0
-libuv-1.48.0
-libvterm-0.3.3
-libx86-1.1-r6
-libxml2-2.12.8
-libxslt-1.1.39
-libyaml-0.2.5
-lzo-2.10
-mpc-1.3.1
-mpdecimal-4.0.0
-mpfr-4.2.1
-msgpack-6.0.0-r1
-nettle-3.10
-npth-1.7-r1
-nspr-4.35-r2
-nss-3.104
-oniguruma-6.9.9
-openssl-3.3.1-r3
-popt-1.19-r1
-ptexenc-1.4.3_p20230311
-spdlog-1.14.1
-tree-sitter-0.23.0
-tree-sitter-bash-0.21.0-r1
-tree-sitter-c-0.21.4
-tree-sitter-lua-0.1.0
-tree-sitter-markdown-0.2.3
-tree-sitter-python-0.21.0-r1
-tree-sitter-query-0.4.0
-tree-sitter-vim-0.4.0
-tree-sitter-vimdoc-3.0.0
-unibilium-2.1.1-r1
-vala-common-0.56.17
-wayland-1.23.1
-wayland-protocols-1.37
-zziplib-0.13.77
-
-/var/db/pkg/dev-lua:
-lpeg-1.1.0
-luv-1.45.0.0
-mpack-1.0.12
-
-/var/db/pkg/dev-perl:
-Authen-SASL-2.170.0
-B-Hooks-EndOfScope-0.280.0
-Capture-Tiny-0.480.0-r1
-Class-Data-Inheritable-0.90.0
-Class-XSAccessor-1.190.0-r3
-Clone-0.460.0
-Config-AutoConf-0.320.0
-CPAN-Meta-Check-0.18.0
-Data-OptList-0.114.0
-Devel-Caller-2.70.0
-Devel-CheckLib-1.160.0-r1
-Devel-GlobalDestruction-0.140.0-r1
-Devel-LexAlias-0.50.0-r1
-Devel-StackTrace-2.40.0
-Digest-HMAC-1.40.0
-Dist-CheckConflicts-0.110.0-r1
-Encode-Locale-1.50.0-r1
-Error-0.170.290
-Eval-Closure-0.140.0-r1
-Exception-Class-1.450.0
-ExtUtils-HasCompiler-0.25.0
-File-BaseDir-0.90.0
-File-DesktopEntry-0.220.0-r1
-File-HomeDir-1.6.0
-File-Listing-6.160.0
-File-MimeInfo-0.330.0
-File-Slurper-0.14.0
-File-Which-1.270.0
-HTML-Parser-3.820.0
-HTML-Tagset-3.240.0
-HTTP-Cookies-6.110.0
-HTTP-Date-6.60.0
-HTTP-Message-6.460.0
-HTTP-Negotiate-6.10.0-r2
-IO-HTML-1.4.0
-IO-Socket-INET6-2.730.0
-IO-Socket-SSL-2.88.0
-IPC-System-Simple-1.300.0
-libwww-perl-6.770.0
-Log-Dispatch-2.710.0
-LWP-MediaTypes-6.40.0
-LWP-Protocol-https-6.140.0
-MailTools-2.210.0
-MIME-Charset-1.13.1
-Module-Build-0.423.400
-Module-Implementation-0.90.0-r1
-Module-Runtime-0.16.0-r1
-MRO-Compat-0.150.0
-namespace-autoclean-0.290.0
-namespace-clean-0.270.0-r1
-Net-HTTP-6.230.0
-Net-SSLeay-1.940.0
-Package-Stash-0.400.0
-Package-Stash-XS-0.300.0
-PadWalker-2.500.0
-Params-Util-1.102.0
-Params-ValidationCompiler-0.310.0-r1
-Perl-Tidy-20240511.0.0
-PerlIO-utf8_strict-0.10.0
-Ref-Util-0.204.0
-Ref-Util-XS-0.117.0
-Regexp-IPv6-0.30.0-r2
-Role-Tiny-2.2.4
-Socket6-0.290.0
-Specio-0.480.0
-Sub-Exporter-0.991.0
-Sub-Exporter-Progressive-0.1.13-r1
-Sub-Identify-0.140.0-r1
-Sub-Install-0.929.0
-Sub-Name-0.270.0
-Sub-Quote-2.6.8
-Test-Fatal-0.17.0
-TimeDate-2.330.0-r1
-Try-Tiny-0.310.0
-Unicode-LineBreak-2019.1.0
-URI-5.280.0
-Variable-Magic-0.640.0
-WWW-RobotRules-6.20.0-r2
-XML-Parser-2.470.0
-XString-0.5.0
-YAML-Tiny-1.740.0
-
-/var/db/pkg/dev-python:
-certifi-3024.7.22
-chardet-5.2.0
-charset-normalizer-3.3.2
-cython-3.0.11
-docstring-to-markdown-0.15
-docutils-0.21.2
-editables-0.5
-ensurepip-pip-24.2
-flit-core-3.9.0
-gentoo-common-1
-gpep517-16
-hatch-vcs-0.4.0
-hatchling-1.25.0
-idna-3.8
-installer-0.7.0
-jaraco-context-6.0.1
-jaraco-functools-4.0.2
-jaraco-text-4.0.0
-jedi-0.19.1_p20240706
-jinja-3.1.4
-lazy-object-proxy-1.10.0
-lxml-5.3.0
-mako-1.3.5
-markupsafe-2.1.5
-more-itertools-10.5.0
-olefile-0.47
-packaging-24.1
-parso-0.8.4
-pathspec-0.12.1
-pillow-10.4.0
-platformdirs-4.3.3
-pluggy-1.5.0
-ply-3.11-r2
-pygments-2.18.0
-PySocks-1.7.1-r2
-python-lsp-jsonrpc-1.1.2
-python-lsp-server-1.12.0
-pyyaml-6.0.2
-requests-2.32.3
-setuptools-74.1.2
-setuptools-scm-8.1.0
-sip-6.8.6-r1
-six-1.16.0-r1
-snakeoil-0.10.8
-tree-sitter-0.23.0
-trove-classifiers-2024.9.12
-ujson-5.10.0
-urllib3-2.2.3
-uv-0.4.10
-wheel-0.44.0
-wxpython-4.2.1-r2
-
-/var/db/pkg/dev-util:
-desktop-file-utils-0.27-r1
-gdbus-codegen-2.78.6
-glib-utils-2.78.6
-gperf-3.1-r2
-gtk-doc-1.33.2-r1
-gtk-update-icon-cache-3.24.42
-intel_clc-24.2.2
-intltool-0.51.0-r3
-itstool-2.0.7-r2
-patchelf-0.18.0
-pkgcheck-0.10.31
-pkgconf-2.3.0
-pkgdev-0.2.11
-re2c-3.1
-ruff-0.6.5
-spirv-headers-1.3.290.0
-spirv-llvm-translator-18.1.4
-spirv-tools-1.3.290.0
-tokei-12.1.2
-uftrace-0.16
-wayland-scanner-1.23.1
-
-/var/db/pkg/dev-vcs:
-git-2.46.0
-
-/var/db/pkg/gnome-base:
-dconf-0.40.0
-gnome-keyring-46.2
-librsvg-2.58.2
-
-/var/db/pkg/gui-apps:
-grim-1.4.1
-gtklock-3.0.0-r1
-mako-1.9.0
-slurp-1.5.0
-swaybg-1.2.1
-waybar-0.10.4
-wl-clipboard-2.2.1-r1
-wofi-1.4.1
-
-/var/db/pkg/gui-libs:
-display-manager-init-1.1.2
-gtk-layer-shell-0.8.2
-gtk-session-lock-0.2.0-r5
-libdecor-0.2.2-r1
-wlroots-0.17.4
-wlroots-0.18.0
-
-/var/db/pkg/gui-wm:
-sway-1.9-r1
-
-/var/db/pkg/mail-mta:
-nullmailer-2.2-r2
-
-/var/db/pkg/media-fonts:
-encodings-1.1.0
-font-util-1.4.1
-liberation-fonts-2.1.5
-noto-20240830
-noto-cjk-20190416
-noto-emoji-20231130-r1
-urw-fonts-20230503-r1
-
-/var/db/pkg/media-gfx:
-graphite2-1.3.14_p20210810-r3
-imv-4.5.0
-potrace-1.16-r1
-
-/var/db/pkg/media-libs:
-alsa-lib-1.2.12
-alsa-topology-conf-1.2.5.1
-alsa-ucm-conf-1.2.12
-fdk-aac-2.0.3
-flac-1.4.3
-fontconfig-2.15.0
-freeglut-3.6.0
-freetype-2.13.3
-gd-2.3.3-r4
-glew-2.2.0-r1
-glm-1.0.1
-glu-9.0.3
-graphene-1.10.8-r1
-gst-plugins-bad-1.22.11-r1
-gst-plugins-base-1.22.11-r1
-gstreamer-1.22.11
-harfbuzz-9.0.0
-jbig2dec-0.20
-lcms-2.16-r1
-libcanberra-0.30-r7
-libdisplay-info-0.2.0
-libepoxy-1.5.10-r3
-libfreeaptx-0.1.1-r1
-libglvnd-1.7.0
-libjpeg-turbo-3.0.3-r1
-libldac-2.0.2.3-r1
-libogg-1.3.5-r1
-libpng-1.6.43
-libpulse-17.0
-libsdl-1.2.68
-libsdl2-2.30.7
-libsndfile-1.2.2-r2
-libvorbis-1.3.7-r1
-mesa-24.2.2
-openjpeg-2.5.2
-opus-1.5.2
-sbc-2.0
-speexdsp-1.2.1
-tiff-4.6.0-r1
-webrtc-audio-processing-1.3-r3
-
-/var/db/pkg/media-plugins:
-alsa-plugins-1.2.12
-
-/var/db/pkg/media-sound:
-lame-3.100-r3
-mpg123-base-1.32.3
-
-/var/db/pkg/media-video:
-pipewire-1.2.3
-wireplumber-0.5.6-r1
-
-/var/db/pkg/net-dns:
-c-ares-1.33.1
-libidn-1.42
-libidn2-2.3.7
-openresolv-3.13.2-r1
-
-/var/db/pkg/net-firewall:
-iptables-1.8.10-r1
-
-/var/db/pkg/net-im:
-discord-0.0.68
-
-/var/db/pkg/net-libs:
-gnutls-3.8.7.1-r1
-http-parser-2.9.4-r2
-libasyncns-0.8-r4
-libmnl-1.0.5
-libnsl-2.0.1
-libpsl-0.21.5
-libssh2-1.11.0-r3
-libtirpc-1.3.5
-nghttp2-1.62.1
-nghttp3-1.5.0
-
-/var/db/pkg/net-mail:
-mailutils-3.17
-
-/var/db/pkg/net-misc:
-chrony-4.6
-curl-8.10.0
-iputils-20240117
-openssh-9.8_p1-r2
-rclone-1.68.0
-rsync-3.3.0-r1
-wget-1.24.5
-
-/var/db/pkg/net-print:
-cups-2.4.10
-
-/var/db/pkg/net-wireless:
-bluez-5.77
-iw-6.7
-iwd-2.21
-wireless-regdb-20240508
-
-/var/db/pkg/perl-core:
-File-Temp-0.231.100-r1
-
-/var/db/pkg/sci-electronics:
-electronics-menu-1.0-r1
-kicad-8.0.4
-kicad-footprints-8.0.4
-kicad-symbols-8.0.4
-ngspice-40
-
-/var/db/pkg/sci-libs:
-opencascade-7.8.1
-
-/var/db/pkg/sec-keys:
-openpgp-keys-gentoo-release-20240703
-
-/var/db/pkg/sys-apps:
-acl-2.3.2-r1
-attr-2.5.2-r1
-baselayout-2.15
-baselayout-java-0.1.0-r2
-bat-0.24.0-r1
-coreutils-9.5
-dbus-1.15.8
-diffutils-3.10
-ed-1.20.2
-ethtool-6.10
-file-5.45-r4
-findutils-4.10.0
-gawk-5.3.0-r1
-gentoo-functions-1.7.2
-grep-3.11-r1
-groff-1.23.0
-hdparm-9.65-r2
-help2man-1.49.3
-hwdata-0.383
-install-xattr-0.8-r1
-iproute2-6.10.0
-iucode_tool-2.3.1-r1
-kbd-2.6.4
-kmod-33
-less-661
-locale-gen-2.23-r1
-lsb-release-3.3
-lsd-1.1.3
-man-db-2.13.0
-man-pages-6.06
-net-tools-2.10
-openrc-0.55
-pciutils-3.13.0
-pkgcore-0.12.28
-portage-3.0.66
-ripgrep-14.1.1
-sandbox-2.39
-sed-4.9-r1
-shadow-4.14.8
-smartmontools-7.4-r1
-systemd-utils-255.11
-sysvinit-3.09
-texinfo-7.1.1
-usbutils-017
-util-linux-2.40.2
-which-2.21
-
-/var/db/pkg/sys-auth:
-elogind-255.5
-pam_u2f-1.3.0
-pambase-20240128
-passwdqc-2.0.3-r1
-polkit-125
-seatd-0.8.0
-
-/var/db/pkg/sys-boot:
-efibootmgr-18-r1
-
-/var/db/pkg/sys-devel:
--MERGING-gnuconfig-20230731
-bc-1.07.1-r6
-binutils-2.43-r1
-binutils-config-5.5.2
-bison-3.8.2-r2
-clang-18.1.8
-clang-common-18.1.8-r1
-clang-runtime-18.1.8
-clang-toolchain-symlinks-18
-flex-2.6.4-r6
-gcc-14.2.1_p20240817
-gcc-config-2.11
-gettext-0.22.5
-gnuconfig-20240728
-llvm-18.1.8-r4
-llvm-common-18.1.8
-llvm-toolchain-symlinks-18-r1
-llvmgold-18
-m4-1.4.19-r2
-patch-2.7.6-r5
-
-/var/db/pkg/sys-firmware:
-intel-microcode-20240813_p20240815
-
-/var/db/pkg/sys-fs:
-e2fsprogs-1.47.1
-fuse-3.16.2
-fuse-common-3.10.4
-udev-init-scripts-35
-
-/var/db/pkg/sys-kernel:
-gentoo-sources-6.10.10
-linux-firmware-20240909
-linux-headers-6.10
-
-/var/db/pkg/sys-libs:
-binutils-libs-2.43-r2
-compiler-rt-18.1.8
-compiler-rt-sanitizers-18.1.8
-efivar-39-r1
-gdbm-1.24
-glibc-2.40-r3
-libcap-2.70
-libomp-18.1.8
-libseccomp-2.5.5-r1
-libxcrypt-4.4.36-r3
-mtdev-1.1.7
-ncurses-6.4_p20240414
-pam-1.6.1
-readline-8.2_p13
-timezone-data-2024a-r1
-zlib-1.3.1-r1
-
-/var/db/pkg/sys-power:
-linux-x86-power-tools-4.20
-suspend-1.0_p20200924
-thermald-2.5.8
-upower-1.90.4-r1
-
-/var/db/pkg/sys-process:
-gotop-4.2.0
-procps-4.0.4-r1
-psmisc-23.7
-
-/var/db/pkg/virtual:
-acl-0-r2
-dev-manager-0-r2
-editor-0-r7
-freedesktop-icon-theme-0-r4
-glu-9.0-r2
-libc-1-r1
-libcrypt-2-r1
-libelf-3-r1
-libiconv-0-r2
-libintl-0-r2
-libudev-251-r2
-libusb-0-r2
-libusb-1-r2
-logger-0-r1
-mailx-4
-man-0-r4
-mta-1-r2
-notification-daemon-0
-opengl-7.0-r2
-openssh-0
-os-headers-0-r2
-package-manager-1
-pager-0-r1
-perl-Carp-1.540.0-r1
-perl-Compress-Raw-Bzip2-2.212.0
-perl-Compress-Raw-Zlib-2.212.0-r1
-perl-CPAN-2.360.0-r1
-perl-CPAN-Meta-2.150.10-r8
-perl-CPAN-Meta-Requirements-2.143.0
-perl-CPAN-Meta-YAML-0.18.0-r10
-perl-Data-Dumper-2.189.0
-perl-Digest-MD5-2.580.100_rc-r1
-perl-Digest-SHA-6.40.0-r1
-perl-Encode-3.210.0-r1
-perl-Exporter-5.780.0
-perl-ExtUtils-CBuilder-0.280.240
-perl-ExtUtils-Install-2.220.0-r1
-perl-ExtUtils-MakeMaker-7.700.0-r1
-perl-ExtUtils-Manifest-1.750.0
-perl-ExtUtils-ParseXS-3.510.0-r1
-perl-File-Path-2.180.0-r3
-perl-File-Spec-3.900.0
-perl-File-Temp-0.231.100-r1
-perl-Getopt-Long-2.570.0-r1
-perl-IO-1.550.0
-perl-IO-Compress-2.212.0
-perl-IO-Socket-IP-0.420.0
-perl-JSON-PP-4.160.0-r2
-perl-libnet-3.150.0-r1
-perl-Math-BigInt-2.3.2
-perl-MIME-Base64-3.160.100_rc-r1
-perl-Module-Load-0.360.0-r4
-perl-Module-Metadata-1.0.38
-perl-parent-0.241.0-r1
-perl-Parse-CPAN-Meta-2.150.10-r8
-perl-Perl-OSType-1.10.0-r8
-perl-podlators-5.10.200_rc
-perl-Scalar-List-Utils-1.630.0-r1
-perl-Storable-3.320.0-r1
-perl-Sys-Syslog-0.360.0-r4
-perl-Test-Harness-3.480.0
-perl-Test-Simple-1.302.199
-perl-Text-ParseWords-3.310.0-r3
-perl-Time-HiRes-1.977.700
-perl-Time-Local-1.350.0
-perl-Unicode-Collate-1.310.0-r2
-perl-version-0.993.0
-perl-XSLoader-0.320.0-r1
-pkgconfig-3
-resolvconf-1
-rust-1.81.0
-secret-service-0
-service-manager-1-r2
-ssh-0-r2
-tmpfiles-0-r5
-ttf-fonts-1-r2
-udev-217-r7
-w3m-1
-
-/var/db/pkg/www-client:
-firefox-bin-130.0
-w3m-0.5.3_p20230121
-
-/var/db/pkg/x11-apps:
-iceauth-1.0.10
-mkfontscale-1.2.3
-xauth-1.1.3
-xinit-1.4.2
-xkbcomp-1.4.7
-xprop-1.2.7
-xrdb-1.2.2
-xset-1.2.5
-
-/var/db/pkg/x11-base:
-xcb-proto-1.17.0
-xorg-drivers-21.1-r2
-xorg-proto-2024.1
-xorg-server-21.1.13-r1
-xwayland-24.1.2
-
-/var/db/pkg/x11-drivers:
-xf86-input-libinput-1.4.0
-xf86-video-intel-2.99.917_p20230201
-
-/var/db/pkg/x11-libs:
-cairo-1.18.2
-gdk-pixbuf-2.42.12
-gtk+-3.24.42-r1
-libdrm-2.4.123-r1
-libfontenc-1.1.8
-libICE-1.1.1-r1
-libnotify-0.8.3
-libpciaccess-0.18.1
-libSM-1.2.4
-libX11-1.8.10
-libXau-1.0.11
-libXaw-1.0.16
-libxcb-1.17.0
-libXcomposite-0.4.6
-libXcursor-1.2.2
-libxcvt-0.1.2
-libXdamage-1.1.6
-libXdmcp-1.1.5
-libXext-1.3.6
-libXfixes-6.0.1
-libXfont2-2.0.7
-libXft-2.3.8
-libXi-1.8.2
-libxkbcommon-1.7.0-r1
-libxkbfile-1.1.3
-libXmu-1.2.1
-libXpm-3.5.17
-libXrandr-1.5.4
-libXrender-0.9.11
-libXScrnSaver-1.2.4
-libxshmfence-1.3.2
-libXt-1.3.0
-libXtst-1.2.5
-libXv-1.0.12
-libXxf86vm-1.1.5
-pango-1.52.2
-pixman-0.43.4
-wxGTK-3.2.5
-xcb-util-keysyms-0.4.1
-xcb-util-wm-0.4.2
-xtrans-1.5.0
-
-/var/db/pkg/x11-misc:
-compose-tables-1.8.10
-shared-mime-info-2.4-r1
-util-macros-1.20.1
-xbitmaps-1.1.3
-xdg-user-dirs-0.18
-xdg-utils-1.2.1-r6
-xkeyboard-config-2.42
-
-/var/db/pkg/x11-themes:
-adwaita-icon-theme-46.2
-adwaita-icon-theme-legacy-46.2
-hicolor-icon-theme-0.17
-sound-theme-freedesktop-0.8-r1
diff --git a/.zshrc b/.zshrc
index 8f809805..ac615104 100644
--- a/.zshrc
+++ b/.zshrc
@@ -1,13 +1,5 @@
#!/bin/zsh
-if test -z "${XDG_RUNTIME_DIR}"; then
- export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
- if ! test -d "${XDG_RUNTIME_DIR}"; then
- mkdir "${XDG_RUNTIME_DIR}"
- chmod 0700 "${XDG_RUNTIME_DIR}"
- fi
-fi
-
if [ ! -S ~/.ssh/ssh_auth_sock ]; then
eval "$(ssh-agent)"
ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
@@ -23,16 +15,15 @@ export HISTFILE=~/.zsh_history
export HISTSIZE=20000
export SAVEHIST=20000
export LANG=en_GB.UTF-8
-export LC_CTYPE=en_US.UTF-8
-export BAT_THEME="Nord"
export GPG_TTY=$(tty)
+export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#4C566A"
+export BAT_THEME="Nord"
+export LESSHISTFILE="$HOME/.local/share/less-history"
+export PYTHON_HISTORY="$HOME/.local/share/python-history"
path+=(
"$HOME/.local/bin"
"$HOME/.local/qmk_toolchains_linuxX64/bin"
-"$HOME/.local/share/coursier/bin"
-"$HOME/.deno/bin"
-"/usr/local/texlive/2023/bin/x86_64-linux"
"$path[@]")
export PATH
@@ -53,12 +44,13 @@ alias l="lsd -la"
alias ls="lsd"
alias tree="lsd --tree"
alias cat="bat --paging=never"
-alias cd="z"
alias vi="nvim"
+alias cd="z"
alias sudo="doas"
alias cloc="tokei"
alias diff="diff --color=always"
alias fetch="clear && printf '\n' && pfetch && sleep 10"
+alias glp="git log --pretty=format:'%ad (%h) by %an, %s' --date=iso"
-source /usr/share/zsh/site-functions/zsh-autosuggestions.zsh
-source /usr/share/zsh/site-functions/zsh-syntax-highlighting.zsh
+source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
+source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
diff --git a/readme.md b/readme.md
deleted file mode 100644
index e44f7c0c..00000000
--- a/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-### nord dotfiles
-for more info, please see [website](https://lzycat.xyz/gentoo)
-
-![fetch](.img/fetch.png)
-#### nvim
-![nvim](.img/nvim.png)
-#### gotop
-![gotop](.img/gotop.png)
-#### wofi
-![wofi](.img/wofi.png)
-#### zathura
-![zathura](.img/zathura.png)
-#### gtklock
-![gtklock](.img/lockscreen.png)