Old Github languages bar

move the languages bar to the top like the old github

  1. // ==UserScript==
  2. // @name Old Github languages bar
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.6
  5. // @description move the languages bar to the top like the old github
  6. // @author jrvgr
  7. // @match https://github.com/*/*
  8. // @exclude https://github.com/*/*/*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
  10. // @grant window.onurlchange
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. shiftLayout()
  17. if (window.onurlchange === null) addEventListener('urlchange', shiftLayout);
  18.  
  19. function shiftLayout() {
  20. setTimeout(() => {
  21. const cell = document.querySelector(".BorderGrid-row:has(li > .mr-3 > svg")
  22. const langs = document.querySelector(".BorderGrid-row ul:has(li > .mr-3 > svg)")
  23. const bar = document.querySelector(".mb-2:has(.Progress > span.Progress-item.color-bg-success-emphasis)")
  24. const legacyNewPlace = document.querySelector(".Layout-main div")
  25. const newPlace = document.querySelector("div[data-selector='repos-split-pane-content'] div:has(div + div) div")
  26. if (newPlace) {
  27. newPlace.insertAdjacentElement("afterEnd", bar)
  28. bar.insertAdjacentElement("afterEnd", langs)
  29. } else {
  30. legacyNewPlace.insertAdjacentElement("afterEnd", bar)
  31. bar.insertAdjacentElement("afterEnd", langs)
  32. }
  33. langs.setAttribute('style', 'margin-bottom: 1em !important; display: flex; justify-content: space-evenly; flex-wrap: wrap; background: var(--color-notifications-row-read-bg); border-radius: 5px; border: var(--color-bg-discussions-row-emoji-box) 1px solid; box-sizing: border-box; padding: 5px; padding-bottom: 3px; margin-top: 10px;');
  34. cell.remove()
  35. }, 0)
  36. }
  37. })();